1
0
mirror of https://github.com/dschmenk/PLASMA.git synced 2025-02-22 00:29:01 +00:00

Better ENTER code

This commit is contained in:
David Schmenk 2014-06-30 13:44:31 -07:00
parent 047fae252a
commit c75a354254
3 changed files with 65 additions and 81 deletions

View File

@ -843,42 +843,38 @@ ICALADR JSR $FFFF
;* ENTER FUNCTION WITH FRAME SIZE AND PARAM COUNT ;* ENTER FUNCTION WITH FRAME SIZE AND PARAM COUNT
;* ;*
ENTER +INC_IP ENTER +INC_IP
LDA (IP),Y
STA FRMSZ
+INC_IP
LDA (IP),Y
STA NPARMS
STY IPY
LDA IFPL LDA IFPL
PHA PHA
SEC SEC
SBC FRMSZ SBC (IP),Y
STA IFPL STA IFPL
LDA IFPH LDA IFPH
PHA PHA
SBC #$00 SBC #$00
STA IFPH STA IFPH
LDY #$01 +INC_IP
PLA STY IPY
STA (IFP),Y LDA (IP),Y
DEY BEQ +
PLA
STA (IFP),Y
LDA NPARMS
BEQ ENTER5
ASL ASL
TAY TAY
INY INY
ENTER4 LDA ESTKH,X - LDA ESTKH,X
STA (IFP),Y STA (IFP),Y
DEY DEY
LDA ESTKL,X LDA ESTKL,X
STA (IFP),Y STA (IFP),Y
DEY
INX INX
DEC NPARMS DEY
BNE ENTER4 CPY #$01
ENTER5 LDY IPY BNE -
+ LDY #$01
PLA
STA (IFP),Y
DEY
PLA
STA (IFP),Y
LDY IPY
JMP NEXTOP JMP NEXTOP
;* ;*
;* LEAVE FUNCTION ;* LEAVE FUNCTION

View File

@ -1442,82 +1442,74 @@ JMPTMP JMP (TMP)
;* ENTER FUNCTION WITH FRAME SIZE AND PARAM COUNT ;* ENTER FUNCTION WITH FRAME SIZE AND PARAM COUNT
;* ;*
ENTER +INC_IP ENTER +INC_IP
LDA (IP),Y
STA FRMSZ
+INC_IP
LDA (IP),Y
STA NPARMS
STY IPY
LDA IFPL LDA IFPL
PHA PHA
SEC SEC
SBC FRMSZ SBC (IP),Y
STA IFPL STA IFPL
LDA IFPH LDA IFPH
PHA PHA
SBC #$00 SBC #$00
STA IFPH STA IFPH
LDY #$01 +INC_IP
PLA STY IPY
STA (IFP),Y LDA (IP),Y
DEY BEQ +
PLA
STA (IFP),Y
LDA NPARMS
BEQ ENTER5
ASL ASL
TAY TAY
INY INY
ENTER4 LDA ESTKH,X - LDA ESTKH,X
STA (IFP),Y STA (IFP),Y
DEY DEY
LDA ESTKL,X LDA ESTKL,X
STA (IFP),Y STA (IFP),Y
DEY
INX INX
DEC NPARMS DEY
BNE ENTER4 CPY #$01
ENTER5 LDY IPY BNE -
+ LDY #$01
PLA
STA (IFP),Y
DEY
PLA
STA (IFP),Y
LDY IPY
JMP NEXTOP JMP NEXTOP
; ;
ENTERX +INC_IP ENTERX +INC_IP
LDA (IP),Y
STA FRMSZ
+INC_IP
LDA (IP),Y
STA NPARMS
STY IPY
STA ALTRDOFF
LDA IFPL LDA IFPL
PHA PHA
SEC SEC
SBC FRMSZ SBC (IP),Y
STA IFPL STA IFPL
LDA IFPH LDA IFPH
PHA PHA
SBC #$00 SBC #$00
STA IFPH STA IFPH
LDY #$01 +INC_IP
PLA STY IPY
STA (IFP),Y LDA (IP),Y
DEY STA ALTRDOFF
PLA BEQ +
STA (IFP),Y
LDA NPARMS
BEQ ENTERX5
ASL ASL
TAY TAY
INY INY
ENTERX4 LDA ESTKH,X - LDA ESTKH,X
STA (IFP),Y STA (IFP),Y
DEY DEY
LDA ESTKL,X LDA ESTKL,X
STA (IFP),Y STA (IFP),Y
DEY
INX INX
DEC NPARMS DEY
BNE ENTERX4 CPY #$01
ENTERX5 STA ALTRDON BNE -
+ LDY #$01
PLA
STA (IFP),Y
DEY
PLA
STA (IFP),Y
STA ALTRDON
LDY IPY LDY IPY
JMP NEXTOP JMP NEXTOP
;* ;*

View File

@ -939,42 +939,38 @@ ICALADR JSR $FFFF
;* ENTER FUNCTION WITH FRAME SIZE AND PARAM COUNT ;* ENTER FUNCTION WITH FRAME SIZE AND PARAM COUNT
;* ;*
ENTER +INC_IP ENTER +INC_IP
LDA (IP),Y
STA FRMSZ
+INC_IP
LDA (IP),Y
STA NPARMS
STY IPY
LDA IFPL LDA IFPL
PHA PHA
SEC SEC
SBC FRMSZ SBC (IP),Y
STA IFPL STA IFPL
LDA IFPH LDA IFPH
PHA PHA
SBC #$00 SBC #$00
STA IFPH STA IFPH
LDY #$01 +INC_IP
PLA STY IPY
STA (IFP),Y LDA (IP),Y
DEY BEQ +
PLA
STA (IFP),Y
LDA NPARMS
BEQ ENTER5
ASL ASL
TAY TAY
INY INY
ENTER4 LDA ESTKH,X - LDA ESTKH,X
STA (IFP),Y STA (IFP),Y
DEY DEY
LDA ESTKL,X LDA ESTKL,X
STA (IFP),Y STA (IFP),Y
DEY
INX INX
DEC NPARMS DEY
BNE ENTER4 CPY #$01
ENTER5 LDY IPY BNE -
+ LDY #$01
PLA
STA (IFP),Y
DEY
PLA
STA (IFP),Y
LDY IPY
JMP NEXTOP JMP NEXTOP
;* ;*
;* LEAVE FUNCTION ;* LEAVE FUNCTION