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 - S?K: Support for Tiny Z80 by Sergey
- E?B: Support for v6 YM/AY sound card - E?B: Support for v6 YM/AY sound card
- C?M: Support for RC2014 bus PropIO V2 - 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 Version 3.1
----------- -----------

9
Source/HBIOS/md.asm

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

2
Source/ver.inc

@ -2,4 +2,4 @@
#DEFINE RMN 1 #DEFINE RMN 1
#DEFINE RUP 1 #DEFINE RUP 1
#DEFINE RTP 0 #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 rup equ 1
rtp equ 0 rtp equ 0
biosver macro biosver macro
db "3.1.1-pre.22"
db "3.1.1-pre.23"
endm endm

Loading…
Cancel
Save