Browse Source

Fix: If the Slice=0 and No CPM partition, boot the disk, ignore all Calculations and checks.

master
Mark Pruden 1 year ago
parent
commit
1f383a3639
  1. 14
      Source/HBIOS/hbios.asm

14
Source/HBIOS/hbios.asm

@ -5061,7 +5061,12 @@ EXT_SLICE3B:
JR EXT_SLICE4A ; CONTINUE AND COMPUTE THE SLICE
;
EXT_SLICE3C:
; NO PARTITION TABLE FOUND / NO CPM PARTITION FOUND -> HD512
; NO PARTITION TABLE FOUND / NO CPM PARTITION
LD A,(SLICE_SLICE) ; IF SLICE = 0, WE BOOT THE DISK ITSELF. IGNORE SLICE(S)
OR A ; SET FLAGS FOR SLICE ARGUMENT, IF SLICE==0
JR Z,EXT_SLICE5Z ; BYPASS ALL CALCS / CHECKS - JUST BOOT THE DISK
; BOOT SLICE WITH LEGACY SPS
LD BC,SPS_HD512 ; WITH HD512 SECTORS PER SLICE
LD (SLICE_SPS),BC ; STORE IT
@ -5089,8 +5094,7 @@ EXT_SLICE4A:
LD BC,(SLICE_SPS)
LD A,(SLICE_SLICE)
OR A ; SLICE NUMBER - SET FLAGS TO CHECK LOOP CTR
;JR Z,EXT_SLICE5A ; NOTHING TO COUNT
JR Z,EXT_SLICE6 ; BYPASS CAPACITY CHECK IF SLICE == 0
JR Z,EXT_SLICE5A ; NOTHING TO COUNT
EXT_SLICE4B:
ADD HL,BC ; ADD ONE SLICE (SPS) TO LOW WORD
JR NC,EXT_SLICE4C ; CHECK FOR CARRY
@ -5141,6 +5145,10 @@ EXT_SLICE5C:
OR A
RET
;
EXT_SLICE5Z:
LD HL,0 ; BOOT THE DISK TO LBA = 0
LD DE,0 ;
;
EXT_SLICE6:
; FINAL CALC AND RETURN SUCCESS
; ADD PARTITION OFFSET (START) TO DEHL TO GET ABSOLUTE SLICE OFFSET

Loading…
Cancel
Save