mirror of
https://github.com/nathanriggs/AppleIIAsm-Collection.git
synced 2025-02-15 10:31:35 +00:00
- 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
149 lines
3.4 KiB
NASM
149 lines
3.4 KiB
NASM
]ESIZE EQU VARTAB
|
|
]XIDX EQU VARTAB+2
|
|
]YIDX EQU VARTAB+4
|
|
]MCAND EQU VARTAB+6
|
|
]MLIER EQU VARTAB+8
|
|
]PBAK EQU VARTAB+10
|
|
]XLEN EQU VARTAB+12
|
|
]YLEN EQU VARTAB+14
|
|
]PROD EQU VARTAB+16
|
|
APUT162
|
|
PLA
|
|
TAX
|
|
PLA
|
|
TAY
|
|
PLA
|
|
STA ]YIDX
|
|
PLA
|
|
STA ]YIDX+1
|
|
PLA
|
|
STA ]XIDX
|
|
PLA
|
|
STA ]XIDX+1
|
|
PLA
|
|
STA ADDR4
|
|
PLA
|
|
STA ADDR4+1
|
|
PLA
|
|
STA ADDR3
|
|
PLA
|
|
STA ADDR3+1
|
|
TYA
|
|
PHA
|
|
TXA
|
|
PHA
|
|
LDY #4
|
|
LDA (ADDR4),Y
|
|
STA ]ESIZE
|
|
LDY #0
|
|
LDA (ADDR4),Y
|
|
STA ]XLEN
|
|
LDY #1
|
|
LDA (ADDR4),Y
|
|
STA ]XLEN+1
|
|
LDY #2
|
|
LDA (ADDR4),Y
|
|
STA ]YLEN
|
|
LDY #3
|
|
LDA (ADDR4),Y
|
|
STA ]YLEN+1
|
|
LDY #0
|
|
LDA ]YIDX
|
|
STA ]MLIER
|
|
LDA ]YIDX+1
|
|
STA ]MLIER+1
|
|
LDA ]YLEN
|
|
STA ]MCAND
|
|
LDA ]YLEN+1
|
|
STA ]MCAND+1
|
|
LDA #00
|
|
STA ]PROD
|
|
STA ]PROD+1
|
|
STA ]PROD+2
|
|
STA ]PROD+3
|
|
LDX #$10
|
|
:SHIFT_R
|
|
LSR ]MLIER+1
|
|
ROR ]MLIER
|
|
BCC :ROT_R
|
|
LDA ]PROD+2
|
|
CLC
|
|
ADC ]MCAND
|
|
STA ]PROD+2
|
|
LDA ]PROD+3
|
|
ADC ]MCAND+1
|
|
:ROT_R
|
|
ROR
|
|
STA ]PROD+3
|
|
ROR ]PROD+2
|
|
ROR ]PROD+1
|
|
ROR ]PROD
|
|
DEX
|
|
BNE :SHIFT_R
|
|
LDA ]PROD
|
|
STA ]PBAK
|
|
LDA ]PROD+1
|
|
STA ]PBAK+1
|
|
LDA ]XIDX
|
|
STA ]MLIER
|
|
LDA ]XIDX+1
|
|
STA ]MLIER+1
|
|
LDA ]ESIZE
|
|
STA ]MCAND
|
|
LDA #0
|
|
STA ]MCAND+1
|
|
STA ]PROD
|
|
STA ]PROD+1
|
|
STA ]PROD+2
|
|
STA ]PROD+3
|
|
LDX #$10
|
|
:SHIFTR LSR ]MLIER+1
|
|
ROR ]MLIER
|
|
BCC :ROTR
|
|
LDA ]PROD+2
|
|
CLC
|
|
ADC ]MCAND
|
|
STA ]PROD+2
|
|
LDA ]PROD+3
|
|
ADC ]MCAND+1
|
|
:ROTR
|
|
ROR
|
|
STA ]PROD+3
|
|
ROR ]PROD+2
|
|
ROR ]PROD+1
|
|
ROR ]PROD
|
|
DEX
|
|
BNE :SHIFTR
|
|
CLC
|
|
LDA ]PROD
|
|
ADC ]PBAK
|
|
STA ]PROD
|
|
LDA ]PROD+1
|
|
ADC ]PBAK+1
|
|
STA ]PROD+1
|
|
CLC
|
|
LDA ]PROD
|
|
ADC #5
|
|
STA ]PROD
|
|
LDA ]PROD+1
|
|
ADC #0
|
|
STA ]PROD+1
|
|
CLC
|
|
LDA ]PROD
|
|
ADC ADDR4
|
|
STA ADDR2 ; ELEMENT ADDRESS
|
|
LDA ]PROD+1
|
|
ADC ADDR4+1
|
|
STA ADDR2+1
|
|
LDY #0
|
|
:CLP
|
|
LDA (ADDR3),Y
|
|
STA (ADDR2),Y
|
|
INY
|
|
CPY ]ESIZE
|
|
BNE :CLP
|
|
LDY ADDR2+1
|
|
LDX ADDR2
|
|
LDA ]ESIZE
|
|
RTS
|