diff --git a/asm/include/macros.asm b/asm/include/macros.asm
index c016fea..631e021 100644
--- a/asm/include/macros.asm
+++ b/asm/include/macros.asm
@@ -136,9 +136,9 @@ BNKSWSEL: MACRO
ENDIF
IF BUILD_SFD700 = 1
OUT (REG_EXXX),A ; Execute active bank switch for E000:EFFF.
- CP ROMBANK6 ; ROMBANK6/7 page in ROM from E300:FFFF
+ CP ROMBANK6 ; ROMBANK6:11 page in ROM from E300:FFFF
JR C,BNKSWJMP
- INC A ; FXXX are 4K banks, EXXX are 2K banks.
+ INC A ; FXXX are 4K banks, EXXX are 4K banks.
JR BNKSWJMP2
BNKSWJMP: LD A,(ROMBK1) ; All other banks place the current active ROM into F000:FXXX space.
BNKSWJMP2: OUT (REG_FXXX),A
diff --git a/asm/include/rfs_definitions.asm b/asm/include/rfs_definitions.asm
index 54b2fff..94c0ef7 100644
--- a/asm/include/rfs_definitions.asm
+++ b/asm/include/rfs_definitions.asm
@@ -51,8 +51,8 @@ VIDEOMODULE_ENA EQU 0 ; Targe
; Only enable one BUILD_<> operative. Customisations applied according
; to the target.
BUILD_ROMDISK EQU 0 ; RFS is built for the MZ-80A RomDisk card.
-BUILD_SFD700 EQU 0 ; RFS is built for the SFD700 Floppy Disk Controller.
-BUILD_PICOZ80 EQU 1 ; RFS is built for the picoZ80 board.
+BUILD_SFD700 EQU 1 ; RFS is built for the SFD700 Floppy Disk Controller.
+BUILD_PICOZ80 EQU 0 ; RFS is built for the picoZ80 board.
BUILD_MZ80A EQU 0 ; RFS is customised to operate on an MZ-80A.
BUILD_MZ700 EQU 1 ; RFS is customised to operate on an MZ-700.
@@ -421,14 +421,14 @@ ROMBANK4 EQU 4 + BNKDEFUROM ;
ROMBANK5 EQU 5 + BNKDEFUROM ; : RFS Bank 5
ROMBANK6 EQU 6 + BNKDEFUROM ; : RFS Bank 6
ROMBANK7 EQU 8 + BNKDEFUROM ; : RFS Bank 7 - Memory and timer test utilities.
-ROMBANK8 EQU 8 + BNKDEFUROM ; Free : RFS Bank 8 -
-ROMBANK9 EQU 9 + BNKDEFUROM ; Free : RFS Bank 9 -
-ROMBANK10 EQU 10 + BNKDEFUROM ; Free : RFS Bank 10 -
-ROMBANK11 EQU 11 + BNKDEFUROM ; Free : RFS Bank 11 -
-ROMBANK12 EQU 12 + BNKDEFUROM ; Free : CBIOS Bank 1 - Utilities
-ROMBANK13 EQU 13 + BNKDEFUROM ; Free : CBIOS Bank 2 - Screen / ANSI Terminal
-ROMBANK14 EQU 14 + BNKDEFUROM ; Free : CBIOS Bank 3 - SD Card
-ROMBANK15 EQU 15 + BNKDEFUROM ; Free : CBIOS Bank 4 - Floppy disk controller.
+ROMBANK8 EQU 10 + BNKDEFUROM ; Free : RFS Bank 8 -
+ROMBANK9 EQU 12 + BNKDEFUROM ; Free : RFS Bank 9 -
+ROMBANK10 EQU 14 + BNKDEFUROM ; Free : RFS Bank 10 -
+ROMBANK11 EQU 16 + BNKDEFUROM ; Free : RFS Bank 11 -
+ROMBANK12 EQU 17 + BNKDEFUROM ; Free : CBIOS Bank 1 - Utilities
+ROMBANK13 EQU 18 + BNKDEFUROM ; Free : CBIOS Bank 2 - Screen / ANSI Terminal
+ROMBANK14 EQU 19 + BNKDEFUROM ; Free : CBIOS Bank 3 - SD Card
+ROMBANK15 EQU 20 + BNKDEFUROM ; Free : CBIOS Bank 4 - Floppy disk controller.
ENDIF
; MMC/SD command (SPI mode)
diff --git a/asm/rfs.asm b/asm/rfs.asm
index 5694777..c10647b 100644
--- a/asm/rfs.asm
+++ b/asm/rfs.asm
@@ -48,6 +48,116 @@
; Bring in additional resources.
INCLUDE "rfs_definitions.asm"
+ ;============================================================
+ ;
+ ; SFD700 COMMAND TABLE
+ ;
+ ; Placed after all bank includes so DW forward references to
+ ; functions in various IF blocks are resolved as backward refs.
+ ;============================================================
+ IF BUILD_SFD700 = 1
+ ORG 0E000H
+ ALIGN 0E300H
+ ENDIF
+
+ ; Monitor command table (SFD700). This table contains the list of recognised commands along with the
+ ; handler function and bank in which it is located.
+ ;
+ ; 7 6:3 2:0
+ ; MATCH BANK SIZE
+CMDTABLE2: IF BUILD_SFD700 = 1
+ DB 000H | 038H | 003H
+ DB "ASM" ; Assembler.
+ DW ASM_MAIN
+ DB 000H | 000H | 005H
+ DB "BASIC" ; Load and run BASIC SA-5510.
+ DW LOADBASIC
+ DB 000H | 020H | 001H
+ DB 'B' ; Bell.
+ DW SGX
+ DB 000H | 000H | 003H
+ DB "CPM" ; Load and run CPM.
+ DW LOADCPM
+ DB 000H | 018H | 002H
+ DB "CP" ; Copy Memory.
+ DW MCOPY
+ DB 000H | 018H | 003H
+ DB "DUC" ; Dump SD Card file contents (hex or text).
+ DW DUMPSDCARD
+ DB 000H | 018H | 001H
+ DB 'C' ; Clear Memory.
+ DW INITMEMX
+ DB 000H | 038H | 004H
+ DB "DASM" ; Disassembler.
+ DW DASM_MAIN
+ DB 000H | 018H | 001H
+ DB 'D' ; Dump Memory.
+ DW DUMPX
+ DB 000H | 008H | 002H
+ DB "FL" ; 'FL' Floppy disk boot (built-in WD1773 FDC).
+ DW FLOPPY
+ DB 000H | 008H | 002H
+ DB "FD" ; 'FD' Floppy disk directory listing.
+ DW FDDIR
+ DB 000H | 058H | 001H
+ DB 'H' ; Help screen (bank 11).
+ DW HELP
+ DB 000H | 018H | 002H ; Bank 3, 2-char command.
+ DB "IN" ; I/O port input.
+ DW INX
+ DB 000H | 000H | 002H
+ DB "IR" ; List ROM directory.
+ DW DIRROM
+ DB 000H | 000H | 001H
+ DB 'J' ; Jump to address.
+ DW GOTOX
+ DB 000H | 020H | 004H
+ DB "LTNX" ; Load from CMT without auto execution.
+ DW LOADTAPENX
+ DB 000H | 020H | 002H
+ DB "LT" ; Load from CMT
+ DW LOADTAPE
+ DB 000H | 000H | 004H
+ DB "LRNX" ; Load from ROM without auto execution.
+ DW LOADROMNX
+ DB 000H | 000H | 002H
+ DB "LR" ; Load from ROM
+ DW LOADROM
+ DB 000H | 020H | 001H
+ DB "L" ; Original Load from CMT
+ DW LOADTAPE
+ DB 000H | 018H | 001H
+ DB 'M' ; Edit Memory.
+ DW MCORX
+ DB 000H | 018H | 003H ; Bank 3, 3-char command.
+ DB "OUT" ; I/O port output.
+ DW OUTX
+ DB 000H | 018H | 001H
+ DB 'P' ; Printer test.
+ DW PTESTX
+ DB 000H | 020H | 001H
+ DB 'R' ; Memory test.
+ DW MEMTEST
+ DB 000H | 020H | 002H
+ DB "ST" ; Save to CMT
+ DW SAVEX
+ DB 000H | 020H | 001H
+ DB 'S' ; Save to CMT
+ DW SAVEX
+ DB 000H | 000H | 004H
+ DB "TEST" ; A test function used in debugging.
+ DW LOCALTEST
+ DB 000H | 020H | 001H
+ DB 'T' ; Timer test.
+ DW TIMERTST
+ DB 000H | 000H | 001H
+ DB 'V' ; Verify CMT Save.
+ DW VRFYX
+ DB 0FFH ; END OF TABLE
+
+ ALIGN UROMADDR
+ ENDIF
+
;============================================================
;
; USER ROM BANK 0 - Main RFS Entry point and functions.
@@ -633,10 +743,10 @@ SETMODE80: IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
JP MONIT
ENDIF
-NOTZPU: LDDE MSGNOTZINST ; No tranZPUter installed.
- LD HL,PRINTMSG
- CALL BKSW0to6
- RET
+;NOTZPU: LDDE MSGNOTZINST ; No tranZPUter installed.
+; LD HL,PRINTMSG
+; CALL BKSW0to6
+; RET
; The RFS depends on variables stored in unused parts of the Monitor scratch area.
; When switching into a compatibility mode the memory is switched and these variables go
@@ -1490,111 +1600,3 @@ MEND:
INCLUDE "rfs_bank9.asm"
INCLUDE "rfs_bank10.asm"
INCLUDE "rfs_bank11.asm"
-
- ;============================================================
- ;
- ; SFD700 COMMAND TABLE
- ;
- ; Placed after all bank includes so DW forward references to
- ; functions in various IF blocks are resolved as backward refs.
- ;============================================================
- IF BUILD_SFD700 = 1
- ORG 0E000H
- ALIGN 0E300H
- ENDIF
-
- ; Monitor command table (SFD700). This table contains the list of recognised commands along with the
- ; handler function and bank in which it is located.
- ;
- ; 7 6:3 2:0
- ; MATCH BANK SIZE
-CMDTABLE2: IF BUILD_SFD700 = 1
- DB 000H | 038H | 003H
- DB "ASM" ; Assembler.
- DW ASM_MAIN
- DB 000H | 000H | 005H
- DB "BASIC" ; Load and run BASIC SA-5510.
- DW LOADBASIC
- DB 000H | 020H | 001H
- DB 'B' ; Bell.
- DW SGX
- DB 000H | 000H | 003H
- DB "CPM" ; Load and run CPM.
- DW LOADCPM
- DB 000H | 018H | 002H
- DB "CP" ; Copy Memory.
- DW MCOPY
- DB 000H | 018H | 003H
- DB "DUC" ; Dump SD Card file contents (hex or text).
- DW DUMPSDCARD
- DB 000H | 018H | 001H
- DB 'C' ; Clear Memory.
- DW INITMEMX
- DB 000H | 038H | 004H
- DB "DASM" ; Disassembler.
- DW DASM_MAIN
- DB 000H | 018H | 001H
- DB 'D' ; Dump Memory.
- DW DUMPX
- DB 000H | 008H | 002H
- DB "FL" ; 'FL' RFS Floppy load.
- DW FDCK
- ; NB: FD/FDDIR command not available on SFD700 — FDDIR only exists
- ; for ROMDISK/picoZ80 builds (MZ-700 WD1773 FDC). SFD700 uses
- ; AFI ROM at F000 via FDCK for floppy operations.
- DB 000H | 058H | 001H
- DB 'H' ; Help screen (bank 11).
- DW HELP
- DB 000H | 018H | 002H ; Bank 3, 2-char command.
- DB "IN" ; I/O port input.
- DW INX
- DB 000H | 000H | 002H
- DB "IR" ; List ROM directory.
- DW DIRROM
- DB 000H | 000H | 001H
- DB 'J' ; Jump to address.
- DW GOTOX
- DB 000H | 020H | 004H
- DB "LTNX" ; Load from CMT without auto execution.
- DW LOADTAPENX
- DB 000H | 020H | 002H
- DB "LT" ; Load from CMT
- DW LOADTAPE
- DB 000H | 000H | 004H
- DB "LRNX" ; Load from ROM without auto execution.
- DW LOADROMNX
- DB 000H | 000H | 002H
- DB "LR" ; Load from ROM
- DW LOADROM
- DB 000H | 020H | 001H
- DB "L" ; Original Load from CMT
- DW LOADTAPE
- DB 000H | 018H | 001H
- DB 'M' ; Edit Memory.
- DW MCORX
- DB 000H | 018H | 003H ; Bank 3, 3-char command.
- DB "OUT" ; I/O port output.
- DW OUTX
- DB 000H | 018H | 001H
- DB 'P' ; Printer test.
- DW PTESTX
- DB 000H | 020H | 001H
- DB 'R' ; Memory test.
- DW MEMTEST
- DB 000H | 020H | 002H
- DB "ST" ; Save to CMT
- DW SAVEX
- DB 000H | 020H | 001H
- DB 'S' ; Save to CMT
- DW SAVEX
- DB 000H | 000H | 004H
- DB "TEST" ; A test function used in debugging.
- DW LOCALTEST
- DB 000H | 020H | 001H
- DB 'T' ; Timer test.
- DW TIMERTST
- DB 000H | 000H | 001H
- DB 'V' ; Verify CMT Save.
- DW VRFYX
- DB 0FFH ; END OF TABLE
- ENDIF
diff --git a/asm/rfs_bank1.asm b/asm/rfs_bank1.asm
index c452040..bad7faa 100644
--- a/asm/rfs_bank1.asm
+++ b/asm/rfs_bank1.asm
@@ -159,7 +159,7 @@ FDCKROM: LD A,(0F000h)
OR A
RET
-FLOPPY: IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
+FLOPPY: IF BUILD_ROMDISK+BUILD_PICOZ80+BUILD_SFD700 = 1
IF BUILD_MZ80A = 1
PUSH DE ; Preserve pointer to input buffer.
LD DE,BPARA ; Copy disk parameter block into RAM work area. (From)
diff --git a/asm/rfs_bank10.asm b/asm/rfs_bank10.asm
index d49d4a1..0ee72bd 100644
--- a/asm/rfs_bank10.asm
+++ b/asm/rfs_bank10.asm
@@ -36,6 +36,13 @@
;- along with this program. If not, see .
;--------------------------------------------------------------------------------------------------------
+ IF BUILD_SFD700 = 1
+ ORG 0E000H
+ ALIGN 0E300H
+ DB "BANK10"
+ ALIGN UROMADDR
+ ENDIF
+
;===========================================================
;
; USER ROM BANK 10 -
@@ -144,6 +151,7 @@ BKSWRET10: POP AF ; G
ORG 0EFF8h
DB 0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh,0FFh
ENDIF
+
; SFD700 - Pad to 10000H
IF BUILD_SFD700 = 1
ALIGN 10000H
diff --git a/asm/rfs_bank11.asm b/asm/rfs_bank11.asm
index 9eba723..2d5c0c9 100644
--- a/asm/rfs_bank11.asm
+++ b/asm/rfs_bank11.asm
@@ -37,6 +37,13 @@
;- along with this program. If not, see .
;--------------------------------------------------------------------------------------------------------
+ IF BUILD_SFD700 = 1
+ ORG 0E000H
+ ALIGN 0E300H
+ DB "BANK11"
+ ALIGN UROMADDR
+ ENDIF
+
;===========================================================
;
; USER ROM BANK 11 -
@@ -391,7 +398,7 @@ HELPSCR: IF BUILD_ROMDISK+BUILD_PICOZ80 = 1
DB " - add NX for no exec, ie.LRNX.", 00DH
DB "MXXXX - edit memory starting at X.", 00DH
DB "P - test printer.", 00DH
- DB "QD/QL - QD dir/boot", 00DH
+ ;DB "QD/QL - QD dir/boot", 00DH
DB "R - test dram memory.", 00DH
DB "SD2T - copy sd card to tape.", 00DH
DB "ST[XXXXYYYYZZZZ] - save mem to tape.", 00DH
diff --git a/asm/rfs_bank7.asm b/asm/rfs_bank7.asm
index 78a8027..aec96be 100644
--- a/asm/rfs_bank7.asm
+++ b/asm/rfs_bank7.asm
@@ -149,12 +149,12 @@ DASM_FILL: LD (HL),A
CALL DASMBITINST ; Is This a BIT,SET or RES Inst.?
JP NZ,DASM_FIND ; NO=Do regular search
CALL DSMFINDOPCD ; Search For Matching BIT,SET,RES OP Code
- JP Z,DASM_ERR ; NOT FOUND - Error Message
+ JP Z,DASM_UNK ; NOT FOUND - output raw byte and continue
CALL DASMGETINST ; Copy 4 byte Assembler Inst. to ASM_BUF
- JP DASM_JUSTV ; VAL_BUF has already been populated
-
+ JP DASM_JUSTV ; VAL_BUF has already been populated
+
DASM_FIND: CALL DSMFINDOPCD ; Search For Matching OP Code
- JP Z,DASM_ERR ; NOT FOUND - Error Message
+ JP Z,DASM_UNK ; NOT FOUND - output raw byte and continue
CALL DASMGETINST ; Copy 4 byte Assembler Inst. to ASM_BUF
@@ -172,8 +172,8 @@ DASM_JUSTV: CALL DSMLFJVAL ; Left justify VAL_BUF(Trim leading zeros)
CALL DASMGETPARM ; Build parameter string with value data
CALL DSMRTRIMASM ; Trim trailing spaces from ASM_BUF
-
- LD A,0Fh ; Output Memory Bytes and Advance Address Pointer
+
+DASM_PROUT: LD A,0Fh ; Output Memory Bytes and Advance Address Pointer
LD C,A
LD HL,(ADDR_LO) ; Address ->HL
LD A,(ML_BTCOUNT) ;Get Total Byte count from lookup table
@@ -193,11 +193,13 @@ DASM_SPCOUT: CALL PRNTS ; Pad with spaces to 15 bytes
DEC C
JP NZ,DASM_SPCOUT ; DONE? NO=Continue
- LD HL,ASM_BUF ; Send Assembly string
+ LD HL,ASM_BUF ; Send Assembly string
EX DE,HL
LD HL,PRINTMSG
CALL BKSW7to6
-
+ LD A,ROMBANK7+1 ; Restore F-page (BNKSWSELRET sets it to ROMBK1).
+ OUT (REG_FXXX),A
+
LD A,(COUNT_C) ; Get Row Count
CP 0FFh ; Using End Address?
JP Z,DASM_CKEADR
@@ -212,11 +214,42 @@ DASM_CKEADR: LD HL,(ASM_ADDR) ; Get End Address
RET M ; If resulte negative - Exit
JP DASM_LOOP1 ; Otherwise Continue...
+ ; Unknown/undefined opcode — output as "DB" and advance 1 byte.
+DASM_UNK: LD A,1
+ LD (ML_BTCOUNT),A ; 1 byte only
+ LD HL,DASM_UNKDB ; "DB" string → ASM_BUF
+ LD DE,ASM_BUF
+ LD A,(HL)
+ LD (DE),A
+ INC HL
+ INC DE
+ LD A,(HL)
+ LD (DE),A
+ INC DE
+ XOR A
+ LD (DE),A ; Null-terminate "DB"
+ ; Put hex value of opcode into VAL_BUF
+ LD A,(ML_BUF)
+ CALL BYTE2ASCII ; H=LSB nib, L=MSB nib
+ LD A,L
+ LD (VAL_BUF),A
+ LD A,H
+ LD (VAL_BUF+1),A
+ LD A,'H'
+ LD (VAL_BUF+2),A
+ XOR A
+ LD (VAL_BUF+3),A ; Null-terminate
+ JP DASM_PROUT ; Go to print output
+
+DASM_UNKDB: DB "DB", 0
+
DASM_ERR: LD DE,MSGNOTFND
LD HL,PRINTMSG
CALL BKSW7to6
+ LD A,ROMBANK7+1 ; Restore F-page.
+ OUT (REG_FXXX),A
RET
-
+
;******************************************************************
; Dis-Assembler Routines
;******************************************************************
@@ -560,7 +593,8 @@ DASM_MOVINS: INC HL ; Inc Block Header data pointer
; Return with BLK_ADDR=block header address, ROW_ADDR=found row address
; ML_BYCOUNT=a non-zero count if match was found
;******************************************************************
-DSMFINDOPCD: PUSH BC
+DSMFINDOPCD: DI ;Disable interrupts during F-page table search.
+ PUSH BC
LD IX,OPCD_TABLE ;Set IX=Table Start Address
DSMFN_LOOP1: LD A,(IX+0)
CP '#' ;Is Row Byte0='#'?
@@ -605,8 +639,9 @@ DSMFN_MATCH: LD (ROW_ADDR),IX ; Save IX->ROW_ADDR
LD (ML_BUF+1),A ; Save row byte8 ->ML_BUF1
LD A,(IX+9)
LD (ML_BTCOUNT),A ; Save byte count->ML_BYCOUNT
- CP 0 ; Set Z flag if NOT FOUND
+ CP 0 ; Set Z flag if NOT FOUND
POP BC
+ EI ;Re-enable interrupts after table search.
RET
;******************************************************************
@@ -728,15 +763,19 @@ ASMLOOPEXIT: LD BC,VAL_BUF
ASM_ERR_INS: LD DE,MSGNOINSTR
LD HL,PRINTMSG
CALL BKSW7to6
- JP ASM_LOOP1 ; Get another line of ASM input...
-
+ LD A,ROMBANK7+1 ; Restore F-page.
+ OUT (REG_FXXX),A
+ JP ASM_LOOP1 ; Get another line of ASM input...
+
ASM_FINDPRM: CALL ASMFINDPARM ; Look for matching parameter pattern
- LD A,(ML_BUF+2) ; Found one? NO=ERROR
- CP 0
+ LD A,(ML_BUF+2) ; Found one? NO=ERROR
+ CP 0
JP NZ,ASMOUTML
LD DE,MSGNOPARAM
LD HL,PRINTMSG
CALL BKSW7to6
+ LD A,ROMBANK7+1 ; Restore F-page.
+ OUT (REG_FXXX),A
JP ASM_LOOP1 ; Get another line of ASM input...
@@ -988,12 +1027,12 @@ DASM_FILL: LD (HL),A
; BIT/SET/RES path: value already in VAL_BUF
CALL DSMFIND_BOTH ; Search both MROM banks
- JP Z,DASM_ERR2 ; NOT FOUND
+ JP Z,DASM_UNK2 ; NOT FOUND - output raw byte and continue
CALL DASMGETINST ; Copy instruction name (MROM still active)
JP DASM_JUSTV ; Skip to value justification
DASM_FIND: CALL DSMFIND_BOTH ; Search both MROM banks
- JP Z,DASM_ERR2 ; NOT FOUND
+ JP Z,DASM_UNK2 ; NOT FOUND - output raw byte and continue
CALL DASMGETINST ; Copy instruction name
; Set up VAL_BUF defaults
@@ -1014,7 +1053,7 @@ DASM_JUSTV: CALL DSMLFJVAL ; Left justify VAL_BUF
CALL DSMRTRIMASM ; Trim trailing spaces
- ; Output memory bytes and advance address pointer
+DASM_PROUT2: ; Output memory bytes and advance address pointer
LD A,0Fh
LD C,A
LD HL,(ADDR_LO)
@@ -1054,6 +1093,36 @@ DASM_CKEADR: LD HL,(ASM_ADDR)
RET M
JP DASM_LOOP1
+ ; Unknown/undefined opcode (picoZ80) — output as "DB" and advance 1 byte.
+DASM_UNK2: POP AF ; Restore MROM bank
+ LD (BNKSELMROM),A
+ LD A,1
+ LD (ML_BTCOUNT),A ; 1 byte only
+ LD HL,DASM_UNKDB2 ; "DB" string → ASM_BUF
+ LD DE,ASM_BUF
+ LD A,(HL)
+ LD (DE),A
+ INC HL
+ INC DE
+ LD A,(HL)
+ LD (DE),A
+ INC DE
+ XOR A
+ LD (DE),A ; Null-terminate "DB"
+ LD A,(ML_BUF)
+ CALL BYTE2ASCII ; H=LSB nib, L=MSB nib
+ LD A,L
+ LD (VAL_BUF),A
+ LD A,H
+ LD (VAL_BUF+1),A
+ LD A,'H'
+ LD (VAL_BUF+2),A
+ XOR A
+ LD (VAL_BUF+3),A
+ JP DASM_PROUT2 ; Go to print output
+
+DASM_UNKDB2: DB "DB", 0
+
DASM_ERR2: POP AF ; Restore MROM bank
LD (BNKSELMROM),A
DASM_ERR: LD DE,MSGNOTFND
diff --git a/asm/rfs_bank8.asm b/asm/rfs_bank8.asm
index 074bc0b..73adc61 100644
--- a/asm/rfs_bank8.asm
+++ b/asm/rfs_bank8.asm
@@ -36,6 +36,13 @@
;- along with this program. If not, see .
;--------------------------------------------------------------------------------------------------------
+ IF BUILD_SFD700 = 1
+ ORG 0E000H
+ ALIGN 0E300H
+ DB "BANK8"
+ ALIGN UROMADDR
+ ENDIF
+
;===========================================================
;
; USER ROM BANK 8 -
diff --git a/asm/rfs_bank9.asm b/asm/rfs_bank9.asm
index 7823091..4d63ade 100644
--- a/asm/rfs_bank9.asm
+++ b/asm/rfs_bank9.asm
@@ -38,6 +38,13 @@
;- along with this program. If not, see .
;--------------------------------------------------------------------------------------------------------
+ IF BUILD_SFD700 = 1
+ ORG 0E000H
+ ALIGN 0E300H
+ DB "BANK9"
+ ALIGN UROMADDR
+ ENDIF
+
;===========================================================
;
; USER ROM BANK 9 -
diff --git a/roms/rfs.rom b/roms/rfs.rom
index ff4fd1f..15e0738 100644
Binary files a/roms/rfs.rom and b/roms/rfs.rom differ
diff --git a/tools/make_roms.sh b/tools/make_roms.sh
index 35c72ad..4e11edf 100755
--- a/tools/make_roms.sh
+++ b/tools/make_roms.sh
@@ -217,15 +217,15 @@ ROM_INCLUDE_RSV1=""
# | | |------- Include in PICOZ80 Build
# | | | |----- Reserved
# | | | | |-- Name and path of the sectored version of the MZF file.
-addMZFToROMImageList 1 1 1 0 "${MZB_PATH}/Common/sa-5510_rfs.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/Common/sa-5510_rfs.${SECTORSIZE}.bin"
addMZFToROMImageList 1 1 1 0 "${MZB_PATH}/Common/1z-013b.${SECTORSIZE}.bin"
addMZFToROMImageList 1 1 1 0 "${MZB_PATH}/Common/mz2z009e_orig.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 1 1 0 "${MZB_PATH}/Common/mz2z009e_rfs.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/Common/mz2z009e_rfs.${SECTORSIZE}.bin"
addMZFToROMImageList 1 1 1 0 "${MZB_PATH}/Common/mz5z008_orig.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 1 1 0 "${MZB_PATH}/Common/mz5z008_rfs.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/Common/mz5z008_rfs.${SECTORSIZE}.bin"
addMZFToROMImageList 1 1 1 0 "${MZB_PATH}/Common/mz5z009.${SECTORSIZE}.bin"
addMZFToROMImageList 1 1 1 0 "${MZB_PATH}/Common/msbasic_mz80a.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 1 1 0 "${MZB_PATH}/Common/msbasic_rfs40.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/Common/msbasic_rfs40.${SECTORSIZE}.bin"
addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/Common/msbasic_rfs80.${SECTORSIZE}.bin"
#
addMZFToROMImageList 1 1 1 0 "${MZB_PATH}/Common/basic_sa5510.${SECTORSIZE}.bin"
@@ -259,7 +259,7 @@ addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/Common/kniforth.${SECTORSIZE}.bin"
addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/Common/tinylispmc.${SECTORSIZE}.bin"
addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/Common/apollo_word_1.9mmc_.${SECTORSIZE}.bin"
addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/Common/hucalc_80a_m.${SECTORSIZE}.bin"
-addMZFToROMImageList 1 0 1 0 "${MZB_PATH}/Common/send-1.${SECTORSIZE}.bin"
+addMZFToROMImageList 1 1 1 0 "${MZB_PATH}/Common/send-1.${SECTORSIZE}.bin"
addMZFToROMImageList 1 1 1 0 "${MZB_PATH}/Common/apollo_chess_v2a.${SECTORSIZE}.bin"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/Common/5z009-1b.mzf"
addMZFToROMImageList 0 0 0 0 "${MZB_PATH}/Common/basic.${SECTORSIZE}.bin"