Browse Source

MD Driver Bug Fixes

Corrected to return accurate block size (credit to Phil Summers) and to show correct capacity during boot.
pull/173/head
Wayne Warthen 5 years ago
parent
commit
7d4f01e9af
  1. 2
      Doc/ChangeLog.txt
  2. 9
      Source/HBIOS/md.asm
  3. 2
      Source/ver.inc
  4. 2
      Source/ver.lib

2
Doc/ChangeLog.txt

@ -10,6 +10,8 @@ Version 3.1.1
- S?K: Support for Tiny Z80 by Sergey
- E?B: Support for v6 YM/AY sound card
- C?M: Support for RC2014 bus PropIO V2
- W?S: Updated FLASH software to v1.3.3
- PMS: Preliminary support for writing to FLASH ROMs
Version 3.1
-----------

9
Source/HBIOS/md.asm

@ -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
;

2
Source/ver.inc

@ -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"

2
Source/ver.lib

@ -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

Loading…
Cancel
Save