Merge pull request #149 from wwarthen/dev

MD Driver Bug Fixes
This commit is contained in:
b1ackmai1er
2020-12-11 16:50:40 +08:00
committed by GitHub
4 changed files with 11 additions and 4 deletions

View File

@@ -58,7 +58,7 @@ MD_INIT:
LD HL,ROMSIZE - 128
CALL PRTDEC
PRTS("KB RAMDISK=$")
LD HL,RAMSIZE - 128
LD HL,RAMSIZE - 256
CALL PRTDEC
PRTS("KB$")
;
@@ -136,15 +136,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
;
@@ -154,6 +157,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 DEFINITION
LD B,4 ; PREPARE TO DIVIDE BY 16
@@ -161,6 +165,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
;

View File

@@ -2,4 +2,4 @@
#DEFINE RMN 1
#DEFINE RUP 1
#DEFINE RTP 0
#DEFINE BIOSVER "3.1.1-pre.22"
#DEFINE BIOSVER "3.1.1-pre.23"

View File

@@ -3,5 +3,5 @@ rmn equ 1
rup equ 1
rtp equ 0
biosver macro
db "3.1.1-pre.22"
db "3.1.1-pre.23"
endm