Browse Source

Improved STRICTPART Implementation

- Improved implementation of STRICTPART conditional based on comments from @kiwisincebirth.  See Issue #490.
pull/503/head v3.5.0-beta.8
Wayne Warthen 12 months ago
parent
commit
da05245b4a
  1. 30
      Source/HBIOS/hbios.asm
  2. 2
      Source/ver.inc
  3. 2
      Source/ver.lib

30
Source/HBIOS/hbios.asm

@ -5137,20 +5137,10 @@ EXT_SLICE2A:
ADD HL,DE ; MOVE HL FWD TO GET TO LBA OFFSET ADD HL,DE ; MOVE HL FWD TO GET TO LBA OFFSET
CP $2E ; CP/M PARTITION? CP $2E ; CP/M PARTITION?
JR Z,EXT_SLICE3B ; HD1K, GRAB THE LBA OFFSET 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) #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 ; 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 ; ENSURE WE DON'T ACCESS AN HD512 SLICE THAT IS ACTUALLY INSIDE OF A
; FOREIGN PARTITION. HOWEVER, ROMWBW HAS PREVIOUSLY IGNORED FOREIGN ; FOREIGN PARTITION. HOWEVER, ROMWBW HAS PREVIOUSLY IGNORED FOREIGN
@ -5159,6 +5149,18 @@ EXT_SLICE3A:
; THE STRICTPART CONDITIONAL WILL ENABLE STRICT PARTITION TABLE ; THE STRICTPART CONDITIONAL WILL ENABLE STRICT PARTITION TABLE
; VALIDATION, IF DESIRED. ; 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 ; FOUND OTHER (NOT CPM) PARTITION
LD A,(SLICE_FND) ; HAVE WE ALREADY FOUND PROCESSED NON CPM LD A,(SLICE_FND) ; HAVE WE ALREADY FOUND PROCESSED NON CPM
OR A ; PARTITION, AND CAPTURED ITS START SECTOR, SO OR A ; PARTITION, AND CAPTURED ITS START SECTOR, SO
@ -5179,12 +5181,6 @@ EXT_SLICE3A:
LD DE,8 ; AND INC HL BY 8 TO GET TO NEXT PARITION LD DE,8 ; AND INC HL BY 8 TO GET TO NEXT PARITION
JR EXT_SLICE2C ; CONTINUE TO NEXT PARTITION JR EXT_SLICE2C ; CONTINUE TO NEXT PARTITION
; ;
#ELSE
;
JR EXT_SLICE2B ; IGNORE FOREIGN PARTITIONS AND GO TO NEXT PART
;
#ENDIF
;
EXT_SLICE3B: EXT_SLICE3B:
; FOUND CP/M (HD1K) PARTITION - RECORD THIS ; FOUND CP/M (HD1K) PARTITION - RECORD THIS
LD A,MID_HDNEW ; DISCOVERED HD1K MEDIA LD A,MID_HDNEW ; DISCOVERED HD1K MEDIA

2
Source/ver.inc

@ -2,7 +2,7 @@
#DEFINE RMN 5 #DEFINE RMN 5
#DEFINE RUP 0 #DEFINE RUP 0
#DEFINE RTP 0 #DEFINE RTP 0
#DEFINE BIOSVER "3.5.0-beta.7"
#DEFINE BIOSVER "3.5.0-beta.8"
#define rmj RMJ #define rmj RMJ
#define rmn RMN #define rmn RMN
#define rup RUP #define rup RUP

2
Source/ver.lib

@ -3,5 +3,5 @@ rmn equ 5
rup equ 0 rup equ 0
rtp equ 0 rtp equ 0
biosver macro biosver macro
db "3.5.0-beta.7"
db "3.5.0-beta.8"
endm endm

Loading…
Cancel
Save