123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- #importonce
- //------------------------------------
- // Basic commands
- //------------------------------------
- .pseudocommand mov arg1:arg2 {
- lda arg1
- sta arg2
- }
- .pseudocommand incLim tar:lim {
- inc tar
- lda tar
- cmp lim
- bne exit
- lda #0
- sta tar
- exit:
- }
- .pseudocommand mov16 src:tar {
- lda src
- sta tar
- lda _16bit_nextArgument(src)
- sta _16bit_nextArgument(tar)
- }
- .function _16bit_nextArgument(arg) {
- .if (arg.getType()==AT_IMMEDIATE) .return CmdArgument(arg.getType(),>arg.getValue())
- .return CmdArgument(arg.getType(),arg.getValue()+1)
- }
- //------------------------------------
- // Irq commands
- //------------------------------------
- .pseudocommand irqStart {
- pha
- txa
- pha
- tya
- pha
- mov #$ff : $d019
- }
- .pseudocommand irqEnd line : addr {
- .if (line.getType()!=AT_NONE) mov line : $d012
- .if (addr.getType()!=AT_NONE) mov addr : $fffe
- pla
- tay
- pla
- tax
- pla
- rti
- }
|