Fix SFD700 build failures caused by Glass assembler IF scope limitations
Glass Z80 assembler (v0.5.1) makes labels inside IF blocks invisible from outside those blocks. This caused multiple build failures for the SFD700 target: - JP _PRTMZF/_PRTDBG in jump table: replaced with DB 0C3H + DW encoding which resolves same-condition scope forward references via DW - LD DE,MSG* across IF scopes: created LDDE macro (DB 011H + DW) that produces identical machine code to LD DE,nn for all build targets - SFD700 command table (CMDTABLE2): moved after all INCLUDE statements so DW function references resolve as backward same-scope references - Removed FD/FDDIR entry from SFD700 command table — FDDIR only exists for ROMDISK/picoZ80 builds (MZ-700 WD1773 FDC direct access) - Fixed PRTSTR→PRINTMSG undefined symbol in rfs_bank7.asm - Fixed BUILD_PICOZ80 comment (was incorrectly labelled as SFD700) All three build targets (ROMDISK, SFD700, picoZ80) verified clean. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,3 +1,11 @@
|
||||
; Load DE with immediate value, using DB+DW encoding to work around Glass
|
||||
; assembler forward reference scope limitation with LD instruction.
|
||||
; DB 011H + DW nn produces identical machine code to LD DE,nn.
|
||||
LDDE: MACRO ?val
|
||||
DB 011H
|
||||
DW ?val
|
||||
ENDM
|
||||
|
||||
; the following is only to get the original length of 2048 bytes
|
||||
ALIGN: MACRO ?boundary
|
||||
DS ?boundary - 1 - ($ + ?boundary - 1) % ?boundary, 0FFh
|
||||
|
||||
@@ -52,7 +52,7 @@ VIDEOMODULE_ENA EQU 0 ; Targe
|
||||
; 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 SFD700 Floppy Disk Controller.
|
||||
BUILD_PICOZ80 EQU 1 ; 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.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user