mirror of
https://github.com/nathanriggs/AppleIIAsm-Collection.git
synced 2024-12-03 03:52:16 +00:00
94 lines
2.1 KiB
NASM
94 lines
2.1 KiB
NASM
|
]NACCUM EQU VARTAB
|
||
|
]SIGN EQU VARTAB+4
|
||
|
]NINDEX EQU VARTAB+6
|
||
|
]STR EQU WPAR1
|
||
|
INTASC2HEX
|
||
|
LDY #0
|
||
|
LDA (]STR),Y
|
||
|
TAX
|
||
|
LDA #1
|
||
|
STA ]NINDEX ;
|
||
|
LDA #0
|
||
|
STA ]NACCUM
|
||
|
STA ]NACCUM+1
|
||
|
STA ]SIGN
|
||
|
TXA
|
||
|
BNE :INIT1
|
||
|
JMP :EREXIT
|
||
|
:INIT1
|
||
|
LDY ]NINDEX
|
||
|
LDA (]STR),Y
|
||
|
CMP #173
|
||
|
BNE :PLUS
|
||
|
LDA #$0FF
|
||
|
STA ]SIGN
|
||
|
INC ]NINDEX
|
||
|
DEX
|
||
|
BEQ :EREXIT
|
||
|
JMP :CNVERT
|
||
|
:PLUS
|
||
|
CMP #'+'
|
||
|
BNE :CHKDIG
|
||
|
|
||
|
INC ]NINDEX
|
||
|
DEX ; DEC COUNT
|
||
|
BEQ :EREXIT
|
||
|
|
||
|
:CNVERT
|
||
|
LDY ]NINDEX
|
||
|
LDA (]STR),Y
|
||
|
:CHKDIG
|
||
|
CMP #$B0
|
||
|
BMI :EREXIT
|
||
|
CMP #$BA ; '9'+1
|
||
|
BPL :EREXIT
|
||
|
PHA
|
||
|
ASL ]NACCUM
|
||
|
ROL ]NACCUM+1
|
||
|
LDA ]NACCUM
|
||
|
LDY ]NACCUM+1
|
||
|
ASL ]NACCUM
|
||
|
ROL ]NACCUM+1
|
||
|
ASL ]NACCUM
|
||
|
ROL ]NACCUM+1
|
||
|
CLC
|
||
|
ADC ]NACCUM
|
||
|
STA ]NACCUM
|
||
|
TYA
|
||
|
ADC ]NACCUM+1
|
||
|
STA ]NACCUM+1
|
||
|
PLA
|
||
|
SEC
|
||
|
SBC #$B0
|
||
|
CLC
|
||
|
ADC ]NACCUM
|
||
|
STA ]NACCUM
|
||
|
LDA #0
|
||
|
ADC ]NACCUM+1
|
||
|
STA ]NACCUM+1
|
||
|
INC ]NINDEX ;INC TO NEXT CHARACTER
|
||
|
DEX
|
||
|
BNE :CNVERT
|
||
|
LDA ]SIGN
|
||
|
BPL :OKEXIT
|
||
|
LDA #0
|
||
|
SEC
|
||
|
SBC ]NACCUM
|
||
|
STA ]NACCUM
|
||
|
LDA #0
|
||
|
SBC ]NACCUM+1
|
||
|
STA ]NACCUM+1
|
||
|
:OKEXIT
|
||
|
CLC
|
||
|
BCC :EXIT
|
||
|
:EREXIT
|
||
|
SEC
|
||
|
:EXIT
|
||
|
LDA #2
|
||
|
STA RETLEN
|
||
|
LDX ]NACCUM+1
|
||
|
LDA ]NACCUM
|
||
|
STA RETURN
|
||
|
STX RETURN+1
|
||
|
RTS
|