|
|
|
@ -39,7 +39,7 @@ MD_INIT: |
|
|
|
LD HL,ROMSIZE - 128 |
|
|
|
CALL PRTDEC |
|
|
|
PRTS("KB RAMDISK=$") |
|
|
|
LD HL,RAMSIZE - 128 |
|
|
|
LD HL,RAMSIZE - 256 |
|
|
|
CALL PRTDEC |
|
|
|
PRTS("KB$") |
|
|
|
; |
|
|
|
@ -111,15 +111,18 @@ MD_CAP: |
|
|
|
RET |
|
|
|
MD_CAP0: |
|
|
|
LD A,(HCB + HCB_ROMBANKS) ; POINT TO ROM BANK COUNT |
|
|
|
LD B,4 ; SET # RESERVED ROM BANKS |
|
|
|
JR MD_CAP2 |
|
|
|
MD_CAP1: |
|
|
|
LD A,(HCB + HCB_RAMBANKS) ; POINT TO RAM BANK COUNT |
|
|
|
LD B,8 ; SET # RESERVED RAM BANKS |
|
|
|
MD_CAP2: |
|
|
|
SUB 4 ; SUBTRACT OUT RESERVED BANKS |
|
|
|
SUB B ; SUBTRACT OUT RESERVED BANKS |
|
|
|
LD H,A ; H := # BANKS |
|
|
|
LD E,64 ; # 512 BYTE BLOCKS / BANK |
|
|
|
CALL MULT8 ; HL := TOTAL # 512 BYTE BLOCKS |
|
|
|
LD DE,0 ; NEVER EXCEEDS 64K, ZERO HIGH WORD |
|
|
|
LD BC,512 ; 512 BYTE SECTOR |
|
|
|
XOR A |
|
|
|
RET |
|
|
|
; |
|
|
|
@ -129,6 +132,7 @@ MD_GEOM: |
|
|
|
; RAM/ROM DISKS ALLOW CHS STYLE ACCESS BY EMULATING |
|
|
|
; A DISK DEVICE WITH 1 HEAD AND 16 SECTORS / TRACK. |
|
|
|
CALL MD_CAP ; HL := CAPACITY IN BLOCKS |
|
|
|
PUSH BC ; SAVE SECTOR SIZE |
|
|
|
LD D,1 | $80 ; HEADS / CYL := 1 BY DEFINITION, SET LBA CAPABILITY BIT |
|
|
|
LD E,16 ; SECTORS / TRACK := 16 BY DEFINTION |
|
|
|
LD B,4 ; PREPARE TO DIVIDE BY 16 |
|
|
|
@ -136,6 +140,7 @@ MD_GEOM1: |
|
|
|
SRL H ; SHIFT H |
|
|
|
RR L ; SHIFT L |
|
|
|
DJNZ MD_GEOM1 ; DO 4 BITS TO DIVIDE BY 16 |
|
|
|
POP BC ; RECOVER SECTOR SIZE |
|
|
|
XOR A ; SIGNAL SUCCESS |
|
|
|
RET ; DONE |
|
|
|
; |
|
|
|
|