mirror of
https://github.com/nathanriggs/AppleIIAsm-Collection.git
synced 2024-11-28 03:52:10 +00:00
82d0e74c1a
some minor bugfixes, directory shuffling, added demo and utility disks
60 lines
1.5 KiB
Plaintext
60 lines
1.5 KiB
Plaintext
MULT16
|
|
PLA
|
|
STA RETADR
|
|
PLA
|
|
STA RETADR+1
|
|
PLA
|
|
STA :MLIER
|
|
PLA
|
|
STA :MLIER+1
|
|
PLA
|
|
STA :MCAND
|
|
PLA
|
|
STA :MCAND+1
|
|
LDA #0
|
|
STA :HPROD ; ZERO HIGH WORD
|
|
STA :HPROD+1
|
|
LDX #17 ; # OF BITS IN MPLIER
|
|
; PLUS 1. EXTRA LOOP IS
|
|
; TO MOVE LAST CARRY INTO
|
|
; THE PRODUCT.
|
|
CLC ; CLEAR CARRY FOR 1ST TIME
|
|
; THROUGH LOOP.
|
|
:MULLP
|
|
ROR :HPROD+1
|
|
ROR :HPROD
|
|
ROR :MLIER+1
|
|
ROR :MLIER
|
|
BCC :DECCNT ; BR IF NEXT BIT OF
|
|
CLC ; NEXT BIT=1 SO ADD MCAND
|
|
LDA :MCAND
|
|
ADC :HPROD
|
|
STA :HPROD
|
|
LDA :MCAND+1
|
|
ADC :HPROD+1
|
|
STA :HPROD+1 ; CARRY = OVERFLOW
|
|
:DECCNT
|
|
DEX
|
|
BNE :MULLP ; CONTINUE UNTIL DONE
|
|
LDY :HPROD ; LOW BYTE OF HIGH WORD
|
|
LDX :HPROD+1 ; HIGH BYTE OF HIGH WORD
|
|
LDA :MLIER+1
|
|
TAX
|
|
STX RETURN+1
|
|
LDA :MLIER
|
|
TAY
|
|
STY RETURN
|
|
LDA :HPROD
|
|
STA RETURN+2
|
|
LDA #2
|
|
STA RETLEN
|
|
LDA RETADR+1
|
|
PHA
|
|
LDA RETADR
|
|
PHA
|
|
LDA :HPROD ;24BIT
|
|
RTS
|
|
:MCAND DS 3
|
|
:MLIER DS 3
|
|
:HPROD DS 2
|