AppleIIAsm-Collection/source/d3_arrays/T.MIN.SUB.APUT82.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

109 lines
2.5 KiB
NASM

]ADDRS EQU WPAR1
]ADDRD EQU WPAR2
]XIDX EQU BPAR1
]YIDX EQU BPAR2
]ESIZE EQU VARTAB
]MCAND EQU VARTAB+1
]MLIER EQU VARTAB+3
]PROD EQU VARTAB+5
]XLEN EQU VARTAB+9
]YLEN EQU VARTAB+13
]PBAK EQU VARTAB+15
APUT82
LDY #0
LDA (]ADDRD),Y
STA ]XLEN
LDY #1
LDA (]ADDRD),Y
STA ]YLEN
LDY #2
LDA (]ADDRD),Y
STA ]ESIZE
LDA #0
TAY
STY SCRATCH
BEQ :ENTLP
:DOADD
CLC
ADC ]YIDX
TAX
TYA
ADC SCRATCH
TAY
TXA
:LP
ASL ]YIDX
ROL SCRATCH
:ENTLP
LSR ]YLEN
BCS :DOADD
BNE :LP
STX ]PBAK
STY ]PBAK+1
LDA ]XIDX
STA ]MLIER
LDA #0
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
LDA ]PBAK
CLC
ADC ]PROD
STA ]PROD
LDA ]PBAK+1
ADC ]PROD+1
STA ]PROD+1
LDA ]PROD
CLC
ADC #3
STA ]PROD
LDA ]PROD+1
ADC #0
STA ]PROD+1
CLC
LDA ]PROD
ADC ]ADDRD
STA ]PROD
LDA ]PROD+1
ADC ]ADDRD+1
STA ]PROD+1
LDX ]PROD
LDY ]PROD+1
STX ADDR2
STY ADDR2+1
LDY #0
:CLP
LDA (]ADDRS),Y
STA (ADDR2),Y
INY
CPY ]ESIZE
BNE :CLP
LDX ADDR2
LDY ADDR2+1
LDA ]ESIZE
RTS