mirror of
https://github.com/dschmenk/PLASMA.git
synced 2025-03-23 07:35:00 +00:00
Can't stop playing w/ MUL DIV. and removed profiler - didn't like it
This commit is contained in:
parent
a6e6bcffd8
commit
aafac44a46
@ -54,28 +54,30 @@ IINTERP PLA
|
||||
;*
|
||||
MUL STY IPY
|
||||
LDY #$10
|
||||
LDA #$00
|
||||
STA TMPL ; PRODL
|
||||
STA TMPH ; PRODH
|
||||
MULLP LSR ESTKH,X ; MULTPLRH
|
||||
ROR ESTKL,X ; MULTPLRL
|
||||
BCC +
|
||||
LDA ESTKL+1,X ; MULTPLNDL
|
||||
CLC
|
||||
ADC TMPL ; PRODL
|
||||
LDA ESTKL+1,X
|
||||
EOR #$FF
|
||||
STA TMPL
|
||||
LDA ESTKH+1,X ; MULTPLNDH
|
||||
ADC TMPH ; PRODH
|
||||
LDA ESTKH+1,X
|
||||
EOR #$FF
|
||||
STA TMPH
|
||||
+ ASL ESTKL+1,X ; MULTPLNDL
|
||||
ROL ESTKH+1,X ; MULTPLNDH
|
||||
LDA #$00
|
||||
STA ESTKL+1,X ; PRODL
|
||||
; STA ESTKH+1,X ; PRODH
|
||||
MULLP LSR TMPH ; MULTPLRH
|
||||
ROR TMPL ; MULTPLRL
|
||||
BCS +
|
||||
STA ESTKH+1,X ; PRODH
|
||||
LDA ESTKL,X ; MULTPLNDL
|
||||
ADC ESTKL+1,X ; PRODL
|
||||
STA ESTKL+1,X
|
||||
LDA ESTKH,X ; MULTPLNDH
|
||||
ADC ESTKH+1,X ; PRODH
|
||||
+ ASL ESTKL,X ; MULTPLNDL
|
||||
ROL ESTKH,X ; MULTPLNDH
|
||||
DEY
|
||||
BNE MULLP
|
||||
STA ESTKH+1,X ; PRODH
|
||||
INX
|
||||
; LDA TMPH ; PRODH
|
||||
STA ESTKH,X
|
||||
LDA TMPL ; PRODL
|
||||
STA ESTKL,X
|
||||
LDY IPY
|
||||
JMP NEXTOP
|
||||
;*
|
||||
@ -119,7 +121,6 @@ OPTBL !WORD ZERO,ADD,SUB,MUL,DIV,MOD,INCR,DECR ; 00 02 04 06 08 0A 0C 0E
|
||||
;* DIV TOS-1 BY TOS
|
||||
;*
|
||||
DIV JSR _DIV
|
||||
INX
|
||||
LSR DVSIGN ; SIGN(RESULT) = (SIGN(DIVIDEND) + SIGN(DIVISOR)) & 1
|
||||
BCS NEG
|
||||
JMP NEXTOP
|
||||
@ -127,7 +128,6 @@ DIV JSR _DIV
|
||||
;* MOD TOS-1 BY TOS
|
||||
;*
|
||||
MOD JSR _DIV
|
||||
INX
|
||||
LDA TMPL ; REMNDRL
|
||||
STA ESTKL,X
|
||||
LDA TMPH ; REMNDRH
|
||||
@ -184,23 +184,24 @@ _DIV1 LDY #$11 ; #BITS+1
|
||||
ROL ESTKH+1,X ; DVDNDH
|
||||
DEY
|
||||
BCC -
|
||||
STY ESTKL-1,X
|
||||
_DIVLP ROL TMPL ; REMNDRL
|
||||
ROL TMPH ; REMNDRH
|
||||
LDA TMPL ; REMNDRL
|
||||
SEC
|
||||
SBC ESTKL,X ; DVSRL
|
||||
TAY
|
||||
CMP ESTKL,X ; DVSRL
|
||||
LDA TMPH ; REMNDRH
|
||||
SBC ESTKH,X ; DVSRH
|
||||
BCC +
|
||||
STA TMPH ; REMNDRH
|
||||
STY TMPL ; REMNDRL
|
||||
+ ROL ESTKL+1,X ; DVDNDL
|
||||
LDA TMPL ; REMNDRL
|
||||
SBC ESTKL,X ; DVSRL
|
||||
STA TMPL ; REMNDRL
|
||||
SEC
|
||||
+ ROL ESTKL+1,X ; DVDNDL
|
||||
ROL ESTKH+1,X ; DVDNDH
|
||||
DEC ESTKL-1,X
|
||||
DEY
|
||||
BNE _DIVLP
|
||||
LDY IPY
|
||||
INX
|
||||
RTS
|
||||
;*
|
||||
;* ADD TOS TO TOS-1
|
||||
|
@ -300,7 +300,7 @@ CMDENTRY = *
|
||||
;
|
||||
; INSTALL PAGE 3 VECTORS
|
||||
;
|
||||
LDY #$17
|
||||
LDY #$12
|
||||
- LDA PAGE3,Y
|
||||
STA INTERP,Y
|
||||
DEY
|
||||
@ -381,13 +381,11 @@ PAGE3 = *
|
||||
JMP IINTRP
|
||||
BIT LCRDEN+LCBNK2 ; $03DC - INDIRECT INTERPX ENTRY
|
||||
JMP IINTRPX
|
||||
BIT LCRDEN+LCBNK2 ; $03E2 - PROFILER ENTRY
|
||||
JMP PROFILER
|
||||
}
|
||||
DEFCMD !FILL 27
|
||||
DEFCMD !FILL 30
|
||||
ENDBYE = *
|
||||
}
|
||||
LCDEFCMD = *-27 ; DEFCMD IN LC MEMORY
|
||||
LCDEFCMD = *-30 ; DEFCMD IN LC MEMORY
|
||||
;*****************
|
||||
;* *
|
||||
;* OPXCODE TABLE *
|
||||
@ -445,28 +443,30 @@ IDXW LDA ESTKL,X
|
||||
;*
|
||||
MUL STY IPY
|
||||
LDY #$10
|
||||
LDA #$00
|
||||
STA TMPL ; PRODL
|
||||
STA TMPH ; PRODH
|
||||
MULLP LSR ESTKH,X ; MULTPLRH
|
||||
ROR ESTKL,X ; MULTPLRL
|
||||
BCC +
|
||||
LDA ESTKL+1,X ; MULTPLNDL
|
||||
CLC
|
||||
ADC TMPL ; PRODL
|
||||
LDA ESTKL+1,X
|
||||
EOR #$FF
|
||||
STA TMPL
|
||||
LDA ESTKH+1,X ; MULTPLNDH
|
||||
ADC TMPH ; PRODH
|
||||
LDA ESTKH+1,X
|
||||
EOR #$FF
|
||||
STA TMPH
|
||||
+ ASL ESTKL+1,X ; MULTPLNDL
|
||||
ROL ESTKH+1,X ; MULTPLNDH
|
||||
LDA #$00
|
||||
STA ESTKL+1,X ; PRODL
|
||||
; STA ESTKH+1,X ; PRODH
|
||||
MULLP LSR TMPH ; MULTPLRH
|
||||
ROR TMPL ; MULTPLRL
|
||||
BCS +
|
||||
STA ESTKH+1,X ; PRODH
|
||||
LDA ESTKL,X ; MULTPLNDL
|
||||
ADC ESTKL+1,X ; PRODL
|
||||
STA ESTKL+1,X
|
||||
LDA ESTKH,X ; MULTPLNDH
|
||||
ADC ESTKH+1,X ; PRODH
|
||||
+ ASL ESTKL,X ; MULTPLNDL
|
||||
ROL ESTKH,X ; MULTPLNDH
|
||||
DEY
|
||||
BNE MULLP
|
||||
STA ESTKH+1,X ; PRODH
|
||||
INX
|
||||
; LDA TMPH ; PRODH
|
||||
STA ESTKH,X
|
||||
LDA TMPL ; PRODL
|
||||
STA ESTKL,X
|
||||
LDY IPY
|
||||
JMP NEXTOP
|
||||
;*
|
||||
@ -507,23 +507,24 @@ _DIV1 LDY #$11 ; #BITS+1
|
||||
ROL ESTKH+1,X ; DVDNDH
|
||||
DEY
|
||||
BCC -
|
||||
STY ESTKL-1,X
|
||||
_DIVLP ROL TMPL ; REMNDRL
|
||||
ROL TMPH ; REMNDRH
|
||||
LDA TMPL ; REMNDRL
|
||||
SEC
|
||||
SBC ESTKL,X ; DVSRL
|
||||
TAY
|
||||
CMP ESTKL,X ; DVSRL
|
||||
LDA TMPH ; REMNDRH
|
||||
SBC ESTKH,X ; DVSRH
|
||||
BCC +
|
||||
STA TMPH ; REMNDRH
|
||||
STY TMPL ; REMNDRL
|
||||
+ ROL ESTKL+1,X ; DVDNDL
|
||||
LDA TMPL ; REMNDRL
|
||||
SBC ESTKL,X ; DVSRL
|
||||
STA TMPL ; REMNDRL
|
||||
SEC
|
||||
+ ROL ESTKL+1,X ; DVDNDL
|
||||
ROL ESTKH+1,X ; DVDNDH
|
||||
DEC ESTKL-1,X
|
||||
DEY
|
||||
BNE _DIVLP
|
||||
LDY IPY
|
||||
INX
|
||||
RTS
|
||||
;*
|
||||
;* NEGATE TOS
|
||||
@ -540,7 +541,6 @@ NEG LDA #$00
|
||||
;* DIV TOS-1 BY TOS
|
||||
;*
|
||||
DIV JSR _DIV
|
||||
INX
|
||||
LSR DVSIGN ; SIGN(RESULT) = (SIGN(DIVIDEND) + SIGN(DIVISOR)) & 1
|
||||
BCS NEG
|
||||
JMP NEXTOP
|
||||
@ -548,7 +548,6 @@ DIV JSR _DIV
|
||||
;* MOD TOS-1 BY TOS
|
||||
;*
|
||||
MOD JSR _DIV
|
||||
INX
|
||||
LDA TMPL ; REMNDRL
|
||||
STA ESTKL,X
|
||||
LDA TMPH ; REMNDRH
|
||||
@ -1560,308 +1559,5 @@ LEAVEX STA ALTRDOFF
|
||||
RETX STA ALTRDOFF
|
||||
CLI
|
||||
RTS
|
||||
;*********************
|
||||
;* *
|
||||
;* BYTECODE PROFILER *
|
||||
;* *
|
||||
;*********************
|
||||
STATS = $DF00
|
||||
;*
|
||||
;* PROFILER CONTROL
|
||||
;*
|
||||
;* A = 0 : DISABLE
|
||||
;* A = 1 : ENABLE SYS+USER OPS
|
||||
;* A = 2 : ENABLE USER OPS
|
||||
;* A = 3 : WRITE STATS TO (DST), 260 BYTES
|
||||
;*
|
||||
PROFILER CMP #$00
|
||||
BNE +
|
||||
;
|
||||
; DISABLE PROFILER, RESTORE INTERP ENTRYPOINTS
|
||||
;
|
||||
LDA #<IINTRP
|
||||
STA $03DA
|
||||
LDA #>IINTRP
|
||||
STA $03DB
|
||||
LDA #<IINTRPX
|
||||
STA $03E0
|
||||
LDA #>IINTRPX
|
||||
STA $03E1
|
||||
RTS
|
||||
;
|
||||
; ENABLE PROFILER, SET PROFILING INTERP ENTRYPOINTS, CLEAR STATS
|
||||
;
|
||||
+ CMP #$01
|
||||
BNE +
|
||||
LDA #<PIINTRP
|
||||
STA $03DA
|
||||
LDA #>PIINTRP
|
||||
STA $03DB
|
||||
LDA #<PIINTRPX
|
||||
STA $03E0
|
||||
LDA #>PIINTRPX
|
||||
STA $03E1
|
||||
BIT LCRWEN+LCBNK2
|
||||
BIT LCRWEN+LCBNK2
|
||||
LDA #$00
|
||||
STA TTLOPS
|
||||
STA TTLOPS+1
|
||||
STA TTLOPS+2
|
||||
STA TTLOPS+3
|
||||
TAY
|
||||
- STA STATS,Y
|
||||
INY
|
||||
BNE -
|
||||
RTS
|
||||
;
|
||||
; COPY STATS TO MAIN MEMORY
|
||||
;
|
||||
+ CMP #$02
|
||||
BNE ++
|
||||
LDX #$00
|
||||
LDA TTLOPS
|
||||
STA (DST,X)
|
||||
INC DSTL
|
||||
BNE +
|
||||
INC DSTH
|
||||
+ LDA TTLOPS+1
|
||||
STA (DST,X)
|
||||
INC DSTL
|
||||
BNE +
|
||||
INC DSTH
|
||||
+ LDA TTLOPS+2
|
||||
STA (DST,X)
|
||||
INC DSTL
|
||||
BNE +
|
||||
INC DSTH
|
||||
+ LDA TTLOPS+3
|
||||
STA (DST,X)
|
||||
INC DSTL
|
||||
BNE +
|
||||
INC DSTH
|
||||
+ LDY #$00
|
||||
- LDA STATS,Y
|
||||
STA (DST,X)
|
||||
INC DSTL
|
||||
BNE +
|
||||
INC DSTH
|
||||
+ LDA STATS+64,Y
|
||||
STA (DST,X)
|
||||
INC DSTL
|
||||
BNE +
|
||||
INC DSTH
|
||||
+ LDA STATS+128,Y
|
||||
STA (DST,X)
|
||||
INC DSTL
|
||||
BNE +
|
||||
INC DSTH
|
||||
+ LDA STATS+192,Y
|
||||
STA (DST,X)
|
||||
INC DSTL
|
||||
BNE +
|
||||
INC DSTH
|
||||
+ INY
|
||||
CPY #64
|
||||
BNE -
|
||||
++ RTS
|
||||
;*
|
||||
;* ENTER INTO BYTECODE INTERPRETER
|
||||
;*
|
||||
PIINTRP PLA
|
||||
STA TMPL
|
||||
PLA
|
||||
STA TMPH
|
||||
LDY #$02
|
||||
LDA (TMP),Y
|
||||
STA IPH
|
||||
DEY
|
||||
LDA (TMP),Y
|
||||
STA IPL
|
||||
DEY
|
||||
LDA #>PROTBL
|
||||
STA OPPAGE
|
||||
BIT LCRWEN+LCBNK2
|
||||
BIT LCRWEN+LCBNK2
|
||||
JMP FETCHOP
|
||||
PIINTRPX PLA
|
||||
STA TMPL
|
||||
PLA
|
||||
STA TMPH
|
||||
LDY #$02
|
||||
LDA (TMP),Y
|
||||
STA IPH
|
||||
DEY
|
||||
LDA (TMP),Y
|
||||
STA IPL
|
||||
DEY
|
||||
LDA #>PROXTBL
|
||||
STA OPPAGE
|
||||
SEI
|
||||
STA ALTRDON
|
||||
BIT LCRWEN+LCBNK2
|
||||
BIT LCRWEN+LCBNK2
|
||||
JMP FETCHOP
|
||||
;*
|
||||
;* PROFILE OPS
|
||||
;*
|
||||
PROP ORA #$80
|
||||
STA PROPJMP+1
|
||||
AND #$7F
|
||||
JSR UPDTSTATS
|
||||
PROPJMP JMP (OPTBL)
|
||||
PROPX STA PROPXJMP+1
|
||||
JSR UPDTSTATS
|
||||
PROPXJMP JMP (OPXTBL)
|
||||
UPDTSTATS STX ESP
|
||||
LSR
|
||||
TAX
|
||||
INC STATS,X
|
||||
BNE +
|
||||
INC STATS+64,X
|
||||
BNE +
|
||||
INC STATS+128,X
|
||||
BNE +
|
||||
INC STATS+192,X
|
||||
+ LDX ESP
|
||||
INC TTLOPS
|
||||
BNE +
|
||||
INC TTLOPS+1
|
||||
BNE +
|
||||
INC TTLOPS+2
|
||||
BNE +
|
||||
INC TTLOPS+3
|
||||
+ RTS
|
||||
PROCALL JSR UPDTSTATS
|
||||
+INC_IP
|
||||
LDA (IP),Y
|
||||
STA TMPL
|
||||
+INC_IP
|
||||
LDA (IP),Y
|
||||
STA TMPH
|
||||
LDA IPH
|
||||
PHA
|
||||
LDA IPL
|
||||
PHA
|
||||
TYA
|
||||
PHA
|
||||
JSR JMPTMP
|
||||
PLA
|
||||
TAY
|
||||
PLA
|
||||
STA IPL
|
||||
PLA
|
||||
STA IPH
|
||||
LDA #>PROTBL ; MAKE SURE WE'RE INDEXING THE RIGHT TABLE
|
||||
STA OPPAGE
|
||||
BIT LCRWEN+LCBNK2
|
||||
BIT LCRWEN+LCBNK2
|
||||
JMP NEXTOP
|
||||
;
|
||||
PROCALLX JSR UPDTSTATS
|
||||
+INC_IP
|
||||
LDA (IP),Y
|
||||
STA TMPL
|
||||
+INC_IP
|
||||
LDA (IP),Y
|
||||
STA TMPH
|
||||
LDA IPH
|
||||
PHA
|
||||
LDA IPL
|
||||
PHA
|
||||
TYA
|
||||
PHA
|
||||
STA ALTRDOFF
|
||||
CLI
|
||||
JSR JMPTMP
|
||||
SEI
|
||||
STA ALTRDON
|
||||
PLA
|
||||
TAY
|
||||
PLA
|
||||
STA IPL
|
||||
PLA
|
||||
STA IPH
|
||||
LDA #>PROXTBL ; MAKE SURE WE'RE INDEXING THE RIGHT TABLE
|
||||
STA OPPAGE
|
||||
BIT LCRWEN+LCBNK2
|
||||
BIT LCRWEN+LCBNK2
|
||||
JMP NEXTOP
|
||||
;*
|
||||
;* INDIRECT CALL TO ADDRESS (NATIVE CODE)
|
||||
;*
|
||||
PROICAL JSR UPDTSTATS
|
||||
LDA ESTKL,X
|
||||
STA TMPL
|
||||
LDA ESTKH,X
|
||||
STA TMPH
|
||||
INX
|
||||
LDA IPH
|
||||
PHA
|
||||
LDA IPL
|
||||
PHA
|
||||
TYA
|
||||
PHA
|
||||
JSR JMPTMP
|
||||
PLA
|
||||
TAY
|
||||
PLA
|
||||
STA IPL
|
||||
PLA
|
||||
STA IPH
|
||||
LDA #>PROTBL ; MAKE SURE WE'RE INDEXING THE RIGHT TABLE
|
||||
STA OPPAGE
|
||||
BIT LCRWEN+LCBNK2
|
||||
BIT LCRWEN+LCBNK2
|
||||
JMP NEXTOP
|
||||
;
|
||||
PROICALX JSR UPDTSTATS
|
||||
LDA ESTKL,X
|
||||
STA TMPL
|
||||
LDA ESTKH,X
|
||||
STA TMPH
|
||||
INX
|
||||
LDA IPH
|
||||
PHA
|
||||
LDA IPL
|
||||
PHA
|
||||
TYA
|
||||
PHA
|
||||
STA ALTRDOFF
|
||||
CLI
|
||||
JSR JMPTMP
|
||||
SEI
|
||||
STA ALTRDON
|
||||
PLA
|
||||
TAY
|
||||
PLA
|
||||
STA IPL
|
||||
PLA
|
||||
STA IPH
|
||||
LDA #>PROXTBL ; MAKE SURE WE'RE INDEXING THE RIGHT TABLE
|
||||
STA OPPAGE
|
||||
BIT LCRWEN+LCBNK2
|
||||
BIT LCRWEN+LCBNK2
|
||||
JMP NEXTOP
|
||||
TTLOPS !WORD 0, 0
|
||||
;*
|
||||
;* PROFILING OP TABLE
|
||||
;*
|
||||
!ALIGN 255,0
|
||||
PROXTBL !WORD PROPX,PROPX,PROPX,PROPX,PROPX,PROPX,PROPX,PROPX
|
||||
!WORD PROPX,PROPX,PROPX,PROPX,PROPX,PROPX,PROPX,PROPX
|
||||
!WORD PROPX,PROPX,PROPX,PROPX,PROPX,PROPX,PROPX,PROPX
|
||||
!WORD PROPX,PROPX,PROPX,PROPX,PROPX,PROPX,PROPX,PROPX
|
||||
!WORD PROPX,PROPX,PROPX,PROPX,PROPX,PROPX,PROPX,PROPX
|
||||
!WORD PROPX,PROPX,PROCALLX,PROICALX,PROPX,PROPX,PROPX,PROPX
|
||||
!WORD PROPX,PROPX,PROPX,PROPX,PROPX,PROPX,PROPX,PROPX
|
||||
!WORD PROPX,PROPX,PROPX,PROPX,PROPX,PROPX,PROPX,PROPX
|
||||
PROTBL !WORD PROP,PROP,PROP,PROP,PROP,PROP,PROP,PROP
|
||||
!WORD PROP,PROP,PROP,PROP,PROP,PROP,PROP,PROP
|
||||
!WORD PROP,PROP,PROP,PROP,PROP,PROP,PROP,PROP
|
||||
!WORD PROP,PROP,PROP,PROP,PROP,PROP,PROP,PROP
|
||||
!WORD PROP,PROP,PROP,PROP,PROP,PROP,PROP,PROP
|
||||
!WORD PROP,PROP,PROCALL,PROICAL,PROP,PROP,PROP,PROP
|
||||
!WORD PROP,PROP,PROP,PROP,PROP,PROP,PROP,PROP
|
||||
!WORD PROP,PROP,PROP,PROP,PROP,PROP,PROP,PROP
|
||||
VMEND = *
|
||||
}
|
@ -174,23 +174,24 @@ _DIV1 LDY #$11 ; #BITS+1
|
||||
ROL ESTKH+1,X ; DVDNDH
|
||||
DEY
|
||||
BCC -
|
||||
STY ESTKL-1,X
|
||||
_DIVLP ROL TMPL ; REMNDRL
|
||||
ROL TMPH ; REMNDRH
|
||||
LDA TMPL ; REMNDRL
|
||||
SEC
|
||||
SBC ESTKL,X ; DVSRL
|
||||
TAY
|
||||
CMP ESTKL,X ; DVSRL
|
||||
LDA TMPH ; REMNDRH
|
||||
SBC ESTKH,X ; DVSRH
|
||||
BCC +
|
||||
STA TMPH ; REMNDRH
|
||||
STY TMPL ; REMNDRL
|
||||
+ ROL ESTKL+1,X ; DVDNDL
|
||||
LDA TMPL ; REMNDRL
|
||||
SBC ESTKL,X ; DVSRL
|
||||
STA TMPL ; REMNDRL
|
||||
SEC
|
||||
+ ROL ESTKL+1,X ; DVDNDL
|
||||
ROL ESTKH+1,X ; DVDNDH
|
||||
DEC ESTKL-1,X
|
||||
DEY
|
||||
BNE _DIVLP
|
||||
LDY IPY
|
||||
INX
|
||||
RTS
|
||||
;*
|
||||
;* OPCODE TABLE
|
||||
@ -209,28 +210,30 @@ OPTBL !WORD ZERO,ADD,SUB,MUL,DIV,MOD,INCR,DECR ; 00 02 04 06 08 0A 0C 0E
|
||||
;*
|
||||
MUL STY IPY
|
||||
LDY #$10
|
||||
LDA #$00
|
||||
STA TMPL ; PRODL
|
||||
STA TMPH ; PRODH
|
||||
MULLP LSR ESTKH,X ; MULTPLRH
|
||||
ROR ESTKL,X ; MULTPLRL
|
||||
BCC +
|
||||
LDA ESTKL+1,X ; MULTPLNDL
|
||||
CLC
|
||||
ADC TMPL ; PRODL
|
||||
LDA ESTKL+1,X
|
||||
EOR #$FF
|
||||
STA TMPL
|
||||
LDA ESTKH+1,X ; MULTPLNDH
|
||||
ADC TMPH ; PRODH
|
||||
LDA ESTKH+1,X
|
||||
EOR #$FF
|
||||
STA TMPH
|
||||
+ ASL ESTKL+1,X ; MULTPLNDL
|
||||
ROL ESTKH+1,X ; MULTPLNDH
|
||||
LDA #$00
|
||||
STA ESTKL+1,X ; PRODL
|
||||
; STA ESTKH+1,X ; PRODH
|
||||
MULLP LSR TMPH ; MULTPLRH
|
||||
ROR TMPL ; MULTPLRL
|
||||
BCS +
|
||||
STA ESTKH+1,X ; PRODH
|
||||
LDA ESTKL,X ; MULTPLNDL
|
||||
ADC ESTKL+1,X ; PRODL
|
||||
STA ESTKL+1,X
|
||||
LDA ESTKH,X ; MULTPLNDH
|
||||
ADC ESTKH+1,X ; PRODH
|
||||
+ ASL ESTKL,X ; MULTPLNDL
|
||||
ROL ESTKH,X ; MULTPLNDH
|
||||
DEY
|
||||
BNE MULLP
|
||||
STA ESTKH+1,X ; PRODH
|
||||
INX
|
||||
; LDA TMPH ; PRODH
|
||||
STA ESTKH,X
|
||||
LDA TMPL ; PRODL
|
||||
STA ESTKL,X
|
||||
LDY IPY
|
||||
JMP NEXTOP
|
||||
;*
|
||||
@ -248,7 +251,6 @@ NEG LDA #$00
|
||||
;* DIV TOS-1 BY TOS
|
||||
;*
|
||||
DIV JSR _DIV
|
||||
INX
|
||||
LSR DVSIGN ; SIGN(RESULT) = (SIGN(DIVIDEND) + SIGN(DIVISOR)) & 1
|
||||
BCS NEG
|
||||
JMP NEXTOP
|
||||
@ -256,7 +258,6 @@ DIV JSR _DIV
|
||||
;* MOD TOS-1 BY TOS
|
||||
;*
|
||||
MOD JSR _DIV
|
||||
INX
|
||||
LDA TMPL ; REMNDRL
|
||||
STA ESTKL,X
|
||||
LDA TMPH ; REMNDRH
|
||||
|
Loading…
x
Reference in New Issue
Block a user