AppleIIAsm-Collection/source/diskX_minidisk_A/T.MIN.SUB.ADIM82
nathanriggs c8cac53c5e Rev 0.4 updates
Massive updates that changes the way most subroutines are handled. Major bugfixes, various utilities added, started higher-level libraries.
2019-04-26 18:49:10 -04:00

134 lines
2.5 KiB
Plaintext

ADIM82
PLA
STA RETADR
PLA
STA RETADR+1
PLA
STA :FILL
PLA
STA :MCAND
PLA
STA :AYSIZE
STA :AYBAK
PLA
STA :AXSIZE
STA :AXBAK
PLA
STA ADDR1
PLA
STA ADDR1+1
LDA #0
STA :MCAND+1
LDA #0
TAY
STY SCRATCH
BEQ :ENTLP
:DOADD
CLC
ADC :AXSIZE
TAX
TYA
ADC SCRATCH
TAY
TXA
:LP
ASL :AXSIZE
ROL SCRATCH
:ENTLP
LSR :AYSIZE
BCS :DOADD
BNE :LP
STX :MLIER
STY :MLIER+1
LDA #0
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
INC :PROD
INC :PROD
INC :PROD
BCC :NOCAR
INC :PROD+1
:NOCAR
LDA :FILL
LDX :PROD+1
; GO BEYOND A 16BIT VALUE;
BEQ :PART
LDY #0
:FULL
STA (ADDR1),Y
INY
BNE :FULL
INC ADDR1+1
DEX
BNE :FULL
:PART
LDX :PROD
BEQ :MFEXIT
LDY #0
:PARTLP
STA (ADDR1),Y
INY
DEX
BNE :PARTLP
:MFEXIT
LDY #0
LDA :AXBAK
STA (ADDR1),Y
INY
LDA :AYBAK
STA (ADDR1),Y
INY
LDA :MCAND
STA (ADDR1),Y
LDA RETADR+1
PHA
LDA RETADR
PHA
LDY ADDR1
LDX ADDR1+1
LDA :PROD
STA RETURN
LDA :PROD+1
STA RETURN+1
LDA :PROD+2
STA RETURN+2
LDA :PROD+3
STA RETURN+3
LDA #4
STA RETLEN
LDA :MCAND
RTS
:PROD DS 4
:AXSIZE DS 1
:AYSIZE DS 1
:AXBAK DS 1
:AYBAK DS 1
:MLIER DS 2
:MCAND DS 2
:FILL DS 1