Blame | Last modification | View Log | Download
# file opened: non_disp_adr_operator.asm1 0000 ;; DEVICE + DISP case2 0000 DEVICE ZXSPECTRUM10243 0000 SLOT 23 0000 ORG $8000, 23 8000 DISP $A000, 34 A000 ; inside DISP block displaced to fake $A000 and page 35 A000 ; machine code landing to $8000 and page 2 (physically)6 A000 dispAdr EQU $7 A000 dispPage EQU $$8 A000 noDispAdr EQU $$$ ; (!) this symbol has still "page" set to 3 (disp page)9 A000 noDispPage EQU $$$$ ; you must use `$$$$` operator to extract non-disp page10 A000 ENT11 800012 8000 ASSERT $A000 == dispAdr13 8000 ASSERT 3 == $$dispAdr14 8000 ASSERT 3 == dispPage15 8000 ASSERT $8000 == noDispAdr16 8000 ASSERT 2 == noDispPage17 800018 8000 ; "2 == $$noDispAdr" would be more logical, but impossible to implement in simple way19 8000 ASSERT 3 == $$noDispAdr20 800021 8000 ;; NO_DEVICE + DISP22 8000 DEVICE NONE23 8000 ORG $C00023 C000 DISP $E00024 E000 ; inside DISP block displaced to $E000, machine code landing to $C00025 E000 ; no pages, because no virtual device is used26 E000 dispAdr2 EQU $non_disp_adr_operator.asm(27): error: Unexpected: $27 E000 dispPage2 EQU $$ ; error: unexpected "$"28 E000 noDispAdr2 EQU $$$29 E000 noDispPage2 EQU $$$$30 E000 ENT31 C00032 C000 ASSERT $E000 == dispAdr233 C000 ASSERT $C000 == noDispAdr234 C000 ASSERT -1 == noDispPage235 C00036 C000 ;; NO_DEVICE + NO_DISP37 C000 ORG $400038 4000 ; NO disp block, no DEVICE block39 4000 dispAdr3 EQU $non_disp_adr_operator.asm(40): error: Unexpected: $40 4000 dispPage3 EQU $$ ; error: unexpected "$"non_disp_adr_operator.asm(41): error: Unexpected: $$41 4000 noDispAdr3 EQU $$$ ; error: unexpected "$$"non_disp_adr_operator.asm(42): error: Unexpected: $$$42 4000 noDispPage3 EQU $$$$ ; error: unexpected "$$$"43 400044 4000 ASSERT $4000 == dispAdr345 400046 4000 ;; DEVICE + NO_DISP47 4000 DEVICE ZXSPECTRUM102448 4000 SLOT 148 4000 ORG $6000, 449 6000 ; inside DISP block displaced to fake $A000 and page 350 6000 ; machine code landing to $8000 and page 2 (physically)51 6000 dispAdr4 EQU $52 6000 dispPage4 EQU $$non_disp_adr_operator.asm(53): error: Unexpected: $53 6000 noDispAdr4 EQU $$$ ; error: unexpected "$"non_disp_adr_operator.asm(54): error: Unexpected: $$54 6000 noDispPage4 EQU $$$$ ; error: unexpected "$$"55 600056 6000 ASSERT $6000 == dispAdr457 6000 ASSERT 4 == $$dispAdr458 6000 ASSERT 4 == dispPage459 600060 6000 ;;;; extended test/example after explicit ",pageNum" was added to EQU mechanics61 600062 6000 ;; DEVICE + DISP case63 6000 DEVICE ZXSPECTRUM102464 6000 SLOT 264 6000 ORG $8000, 264 8000 DISP $A000, 365 A000 nda1 EQU $$$,$$$$ ; this symbol has now page 2 (not disp page 3)66 A000 ENT67 800068 8000 ASSERT $8000 == nda169 8000 ASSERT 2 == $$nda170 800071 8000 ;; NO_DEVICE + DISP72 8000 DEVICE NONE73 8000 ORG $C00073 C000 DISP $E00074 E000 nda2 EQU $$$,$$$$ ; extended example after adding explicit ",pageNum" to EQU75 E000 ENT76 C00077 C000 ASSERT $C000 == nda2non_disp_adr_operator.asm(78): error: Unexpected: $nda278 C000 ASSERT $$nda2 ; error: "unexpected $nda2", $$label is disabled w/o device79 C00080 C000 ;; NO_DEVICE + NO_DISP81 C000 ORG $4000non_disp_adr_operator.asm(82): error: Unexpected: $$,$$$$82 4000 nda3 EQU $$$,$$$$ ; error: "unexpected $$,$$$$"83 400084 4000 ;; DEVICE + NO_DISP85 4000 DEVICE ZXSPECTRUM102486 4000 SLOT 186 4000 ORG $6000, 4non_disp_adr_operator.asm(87): error: Unexpected: $,$$$$87 6000 nda4 EQU $$$,$$$$ ; error: "unexpected $,$$$$"88 6000# file closed: non_disp_adr_operator.asmValue Label------ - -----------------------------------------------------------0xA000 dispAdr0xE000 dispAdr20x4000 dispAdr30x6000 dispAdr40x0003 dispPage0xE000 X dispPage20x4000 X dispPage30x0004 dispPage40x8000 nda10xC000 nda20x4000 X nda30x0004 X nda40x8000 noDispAdr0xC000 noDispAdr20x4000 X noDispAdr30x0004 X noDispAdr40x0002 noDispPage0xFFFFFFFF noDispPage20x4000 X noDispPage30x0004 X noDispPage4