diff --git a/Source/HBIOS/flashfs.asm b/Source/HBIOS/flashfs.asm index bfeee959..47c12eab 100644 --- a/Source/HBIOS/flashfs.asm +++ b/Source/HBIOS/flashfs.asm @@ -25,6 +25,9 @@ FF_DBG: .EQU 0 ; DEBUG FF_HBX: .EQU 1 ; =0 USE STACK, =1 USE HBX_BUF ; +FF_RW .DB 00h ; READ WRITE FLAG +FF_TGT .EQU 0BFB7H ; TARGET CHIP FOR R/W FILESYSTEM +; ;====================================================================== ; BIOS FLASH INITIALIZATION ; @@ -46,7 +49,7 @@ FF_PROBE: LD E,C ; LD H,D ; WE INCREASE E BY $08 LD L,D ; ON EACH CYCLE THROUGH -; +; PUSH BC CALL PC_SPACE LD A,+(ROMSIZE/512)+1 @@ -55,6 +58,20 @@ FF_PROBE: LD A,'=' ; NUMBER CALL COUT CALL FF_IINIT ; GET ID AT THIS ADDRESS +; + PUSH HL + PUSH DE + LD H,FF_TGT&$FF ; IF WE MATCH WITH + LD L,FF_TGT/$FF + CCF ; A NON 39SF040 + SBC HL,DE ; CHIP SET THE + LD A,(FF_RW) ; R/W FLAG TO R/O + OR H + OR L + LD (FF_RW),A + POP DE + POP HL +; CALL FF_LAND ; LOOKUP AND DISPLAY POP BC ; @@ -63,6 +80,13 @@ FF_PROBE: LD C,A ; DJNZ FF_PROBE ; ALWAYS AT LEAST ONE DEVICE +; + LD A,(FF_RW) + OR A + JR NZ,FF_PR1 + CALL PRTSTRD + .TEXT " FLASH FILESYSTEM ENABLED$" +FF_PR1: ; #IF (FF_DBG==1) CALL FF_TESTING