12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- ; 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,<string>
- 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
|