Skip to content

Commit

Permalink
Improved STRICTPART Implementation
Browse files Browse the repository at this point in the history
- Improved implementation of STRICTPART conditional based on comments from @kiwisincebirth.  See Issue #490.
  • Loading branch information
wwarthen committed Feb 14, 2025
1 parent 9469aaf commit da05245
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 19 deletions.
30 changes: 13 additions & 17 deletions Source/HBIOS/hbios.asm
Original file line number Diff line number Diff line change
Expand Up @@ -5137,20 +5137,10 @@ EXT_SLICE2A:
ADD HL,DE ; MOVE HL FWD TO GET TO LBA OFFSET
CP $2E ; CP/M PARTITION?
JR Z,EXT_SLICE3B ; HD1K, GRAB THE LBA OFFSET
CP $00 ; IS ANOTHER PARTITION TYPE, NOT CPM
JR NZ,EXT_SLICE3A ; OTHER VALID PART TYPE
EXT_SLICE2B:
LD DE,12 ; REMAINING SIZE TO GET TO NEXT PARTITION
EXT_SLICE2C:
ADD HL,DE ; BUMP TO NEXT PARTITION ENTRY - TYPE
DJNZ EXT_SLICE2A ; LOOP THRU TABLE
JR EXT_SLICE3C ; READ ALL - NO CP/M PARTITION FOUND
;
EXT_SLICE3A:
;
#IF (STRICTPART)
;
; THE FOLLOWING CODE RECORDS THE START OF A FOREIGN PARTITION AS THE IMPLIED
; THE FOLLOWING TEST RECORDS THE START OF A FOREIGN PARTITION AS THE IMPLIED
; END OF NON-PARTITIONED CP/M SPACE (HD512). THIS IS SUBSEQUENTLY USED TO
; ENSURE WE DON'T ACCESS AN HD512 SLICE THAT IS ACTUALLY INSIDE OF A
; FOREIGN PARTITION. HOWEVER, ROMWBW HAS PREVIOUSLY IGNORED FOREIGN
Expand All @@ -5159,6 +5149,18 @@ EXT_SLICE3A:
; THE STRICTPART CONDITIONAL WILL ENABLE STRICT PARTITION TABLE
; VALIDATION, IF DESIRED.
;
CP $00 ; IS ANOTHER PARTITION TYPE, NOT CPM
JR NZ,EXT_SLICE3A ; OTHER VALID PART TYPE
#ENDIF
;
EXT_SLICE2B:
LD DE,12 ; REMAINING SIZE TO GET TO NEXT PARTITION
EXT_SLICE2C:
ADD HL,DE ; BUMP TO NEXT PARTITION ENTRY - TYPE
DJNZ EXT_SLICE2A ; LOOP THRU TABLE
JR EXT_SLICE3C ; READ ALL - NO CP/M PARTITION FOUND
;
EXT_SLICE3A:
; FOUND OTHER (NOT CPM) PARTITION
LD A,(SLICE_FND) ; HAVE WE ALREADY FOUND PROCESSED NON CPM
OR A ; PARTITION, AND CAPTURED ITS START SECTOR, SO
Expand All @@ -5179,12 +5181,6 @@ EXT_SLICE3A:
LD DE,8 ; AND INC HL BY 8 TO GET TO NEXT PARITION
JR EXT_SLICE2C ; CONTINUE TO NEXT PARTITION
;
#ELSE
;
JR EXT_SLICE2B ; IGNORE FOREIGN PARTITIONS AND GO TO NEXT PART
;
#ENDIF
;
EXT_SLICE3B:
; FOUND CP/M (HD1K) PARTITION - RECORD THIS
LD A,MID_HDNEW ; DISCOVERED HD1K MEDIA
Expand Down
2 changes: 1 addition & 1 deletion Source/ver.inc
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
#DEFINE RMN 5
#DEFINE RUP 0
#DEFINE RTP 0
#DEFINE BIOSVER "3.5.0-beta.7"
#DEFINE BIOSVER "3.5.0-beta.8"
#define rmj RMJ
#define rmn RMN
#define rup RUP
Expand Down
2 changes: 1 addition & 1 deletion Source/ver.lib
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@ rmn equ 5
rup equ 0
rtp equ 0
biosver macro
db "3.5.0-beta.7"
db "3.5.0-beta.8"
endm

0 comments on commit da05245

Please sign in to comment.