; code: lang=asm-collection tabSize=8 JP_ERROR defl 0 JR_PROMOTE defl 0 .jperror JP_ERROR .jrpromote JR_PROMOTE dbi .macro string irpc char, db '`char`'|$80 .endm .endm dbz .macro string db "`string`", 0 .endm dbiz .macro string dbi "`string`" db 0 .endm nop12 .macro jr $+2 .endm ; interrupt vectors: these need to be located at 38h and 66h, so there is little ; code space before them. They should probably be present so that any incoming interrupts ; won't kill the test routines. The INT vector is probably unnecessary but the NMI should ; be present. ; to maximize space, PLACE_VEC .macro loc .assert $ <= loc .if $ < loc dc loc-$,$FF .endif org loc .endm ; PLACE_INTVEC .macro ; .assert $ <= $38 ; .if $ < $38 ; dc $38-$,$FF ; fill empty space ; .endif ; org $38 ; NMI vector ; .endm ; PLACE_NMIVEC .macro ; .assert $ <= $66 ; .if $ < $66 ; dc $66-$,$FF ; fill empty space ; .endif ; org $66 ; NMI vector ; .endm SKIP_INTVEC .macro jr .intvec_continue ; continue after the NMI vector PLACE_INTVEC reti .intvec_continue: .endm SKIP_NMIVEC .macro jr .nmivec_continue ; continue after the NMI vector ; PLACE_NMIVEC PLACE_VEC $66 retn .nmivec_continue: .endm