AppleIIAsm-Collection/source/d12_applechop/T.MIN.MAC.LOOPSTRUCT.ASM
nathanriggs 9b12b6fd9b HOUSEKEEPING
- getting ready for major changes for 0.6.0.
- be sure to download the 0.5.0 release to ensure proper functionality, as these rountines will not work together in the SRC or BIN folder during the transition
- Beginning to significantly alter documentation
2019-12-17 17:19:24 -05:00

159 lines
3.3 KiB
NASM

LOOP MAC
]PTR EQU *
STA SCRATCH
LDA #>]PTR
PHA
LDA #<]PTR
PHA
LDA SCRATCH
<<<
UNTIL MAC
STA SCRATCH
LDA ]1
CMP ]3
IF ]2,E
BEQ _LEXIT
FIN
IF ]2,N
BNE _LEXIT
FIN
IF ]2,G
BEQ SKPGT
BCS _LEXIT
SKPGT
FIN
IF ]2,L
BCC _LEXIT
FIN
IF ]2,)
BCS _LEXIT
FIN
IF ]2,(
BEQ _LEXIT
BCC _LEXIT
FIN
PLA
STA ADDR1
PLA
STA ADDR1+1
LDA SCRATCH
JMP (ADDR1)
_LEXIT
PLA
PLA
LDA SCRATCH
<<<
WHILE MAC
STA SCRATCH
LDA ]1
CMP ]3
IF ]2,E
BEQ _LJUMP
FIN
IF ]2,N
BNE _LJUMP
FIN
IF ]2,G
BEQ SKPGT
BCS _LJUMP
SKPGT
FIN
IF ]2,L
BCC _LJUMP
FIN
IF ]2,)
BCS _LJUMP
FIN
IF ]2,(
BEQ _LJUMP
BCC _LJUMP
FIN
JMP _LEXIT
_LJUMP
PLA
STA ADDR1
PLA
STA ADDR1+1
LDA SCRATCH
JMP (ADDR1)
_LEXIT
PLA
PLA
LDA SCRATCH
<<<
FOR MAC
STA SCRATCH
LDA ]1
STA ADDR4
LDA ]1/$100
STA ADDR4+1
LDY #0
LDA ]2
STA (ADDR4),Y
INY
LDA ]2/$100
STA (ADDR4),Y
LDA SCRATCH
]PTR EQU *
LDA #>]PTR
PHA
LDA #<]PTR
PHA
LDA ]1/$100
PHA
LDA ]1
PHA
LDA ]3/$100
PHA
LDA ]3
PHA
LDA ]4/$100
PHA
LDA ]4
PHA
<<<
NEXT MAC
JMP _VAR
]STEP DS 2
]HIGH DS 2
]SCRATCH DS 2
_VAR
PLA
STA ]STEP
PLA
STA ]STEP+1
PLA
STA ]HIGH
PLA
STA ]HIGH+1
PLA
STA ADDR4
PLA
STA ADDR4+1
PLA
STA ADDR2
PLA
STA ADDR2+1
LDY #0
LDA (ADDR4),Y
CMP ]HIGH
BCC LOOPER
INY
LDA (ADDR4),Y
CMP ]HIGH+1
BCC LOOPER
JMP _EXIT
LOOPER
LDY #0
LDA (ADDR4),Y
CLC
ADC ]STEP
STA (ADDR4),Y
INY
LDA (ADDR4),Y
ADC ]STEP+1
STA (ADDR4),Y
JMP (ADDR2)
_EXIT
<<<