2014-05-04 23:15:45 +00:00
|
|
|
;**********************************************************
|
|
|
|
;*
|
2014-06-07 02:37:53 +00:00
|
|
|
;* APPLE ][ 64K/128K PLASMA INTERPETER
|
|
|
|
;*
|
|
|
|
;* SYSTEM ROUTINES AND LOCATIONS
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
|
|
|
;**********************************************************
|
|
|
|
;*
|
2014-05-14 05:03:09 +00:00
|
|
|
;* MONITOR SPECIAL LOCATIONS
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
2014-05-06 01:19:51 +00:00
|
|
|
CSWL = $36
|
|
|
|
CSWH = $37
|
|
|
|
PROMPT = $33
|
2014-05-14 05:03:09 +00:00
|
|
|
;*
|
|
|
|
;* PRODOS
|
|
|
|
;*
|
2014-05-06 01:19:51 +00:00
|
|
|
PRODOS = $BF00
|
2014-05-14 05:03:09 +00:00
|
|
|
DEVCNT = $BF31 ; GLOBAL PAGE DEVICE COUNT
|
|
|
|
DEVLST = $BF32 ; GLOBAL PAGE DEVICE LIST
|
|
|
|
MACHID = $BF98 ; GLOBAL PAGE MACHINE ID BYTE
|
|
|
|
RAMSLOT = $BF26 ; SLOT 3, DRIVE 2 IS /RAM'S DRIVER VECTOR
|
|
|
|
NODEV = $BF10
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
|
|
|
;* HARDWARE ADDRESSES
|
|
|
|
;*
|
2014-05-06 01:19:51 +00:00
|
|
|
KEYBD = $C000
|
|
|
|
CLRKBD = $C010
|
|
|
|
SPKR = $C030
|
2014-05-06 16:43:14 +00:00
|
|
|
LCRDEN = $C080
|
|
|
|
LCWTEN = $C081
|
|
|
|
ROMEN = $C082
|
|
|
|
LCRWEN = $C083
|
|
|
|
LCBNK2 = $00
|
|
|
|
LCBNK1 = $08
|
2014-05-06 01:19:51 +00:00
|
|
|
ALTZPOFF= $C008
|
|
|
|
ALTZPON = $C009
|
|
|
|
ALTRDOFF= $C002
|
|
|
|
ALTRDON = $C003
|
|
|
|
ALTWROFF= $C004
|
|
|
|
ALTWRON = $C005
|
2014-05-08 20:31:27 +00:00
|
|
|
!SOURCE "plvm02zp.inc"
|
2014-05-24 21:18:43 +00:00
|
|
|
STRBUF = $0280
|
2014-06-16 06:24:16 +00:00
|
|
|
INTERP = $03D0
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
2014-05-06 16:43:14 +00:00
|
|
|
;* INTERPRETER INSTRUCTION POINTER INCREMENT MACRO
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
2014-05-06 16:43:14 +00:00
|
|
|
!MACRO INC_IP {
|
|
|
|
INY
|
|
|
|
BNE * + 4
|
|
|
|
INC IPH
|
|
|
|
}
|
2014-06-13 01:40:04 +00:00
|
|
|
;******************************
|
|
|
|
;* *
|
|
|
|
;* INTERPRETER INITIALIZATION *
|
|
|
|
;* *
|
|
|
|
;******************************
|
2014-05-06 16:43:14 +00:00
|
|
|
* = $2000
|
2014-05-07 03:19:59 +00:00
|
|
|
LDX #$FF
|
2014-05-07 02:18:36 +00:00
|
|
|
TXS
|
2014-05-06 22:26:12 +00:00
|
|
|
;*
|
2014-05-14 05:03:09 +00:00
|
|
|
;* DISCONNECT /RAM
|
|
|
|
;*
|
|
|
|
SEI ; DISABLE /RAM
|
|
|
|
LDA MACHID
|
|
|
|
AND #$30
|
|
|
|
CMP #$30
|
|
|
|
BNE RAMDONE
|
|
|
|
LDA RAMSLOT
|
|
|
|
CMP NODEV
|
|
|
|
BNE RAMCONT
|
|
|
|
LDA RAMSLOT+1
|
|
|
|
CMP NODEV+1
|
|
|
|
BEQ RAMDONE
|
|
|
|
RAMCONT LDY DEVCNT
|
|
|
|
RAMLOOP LDA DEVLST,Y
|
|
|
|
AND #$F3
|
|
|
|
CMP #$B3
|
|
|
|
BEQ GETLOOP
|
|
|
|
DEY
|
|
|
|
BPL RAMLOOP
|
|
|
|
BMI RAMDONE
|
|
|
|
GETLOOP LDA DEVLST+1,Y
|
|
|
|
STA DEVLST,Y
|
|
|
|
BEQ RAMEXIT
|
|
|
|
INY
|
|
|
|
BNE GETLOOP
|
|
|
|
RAMEXIT LDA NODEV
|
|
|
|
STA RAMSLOT
|
|
|
|
LDA NODEV+1
|
|
|
|
STA RAMSLOT+1
|
|
|
|
DEC DEVCNT
|
|
|
|
RAMDONE CLI
|
|
|
|
;*
|
2014-05-06 22:26:12 +00:00
|
|
|
;* MOVE VM INTO LANGUAGE CARD
|
|
|
|
;*
|
2014-05-07 02:18:36 +00:00
|
|
|
BIT LCRWEN+LCBNK2
|
|
|
|
BIT LCRWEN+LCBNK2
|
2014-05-06 22:26:12 +00:00
|
|
|
LDA #<VMCORE
|
2014-05-07 02:18:36 +00:00
|
|
|
STA SRCL
|
2014-05-06 22:26:12 +00:00
|
|
|
LDA #>VMCORE
|
2014-05-07 02:18:36 +00:00
|
|
|
STA SRCH
|
2014-05-06 22:26:12 +00:00
|
|
|
LDA #$00
|
2014-05-07 02:18:36 +00:00
|
|
|
STA DSTL
|
2014-05-06 22:26:12 +00:00
|
|
|
LDA #$D0
|
2014-05-07 02:18:36 +00:00
|
|
|
STA DSTH
|
2014-05-06 22:26:12 +00:00
|
|
|
LDY #$00
|
2014-05-07 02:18:36 +00:00
|
|
|
- LDA (SRC),Y ; COPY VM+CMD INTO LANGUAGE CARD
|
|
|
|
STA (DST),Y
|
2014-05-06 22:26:12 +00:00
|
|
|
INY
|
|
|
|
BNE -
|
2014-05-07 02:18:36 +00:00
|
|
|
INC SRCH
|
|
|
|
INC DSTH
|
|
|
|
LDA DSTH
|
2014-05-06 22:26:12 +00:00
|
|
|
CMP #$E0
|
|
|
|
BNE -
|
|
|
|
;*
|
2014-05-07 21:25:19 +00:00
|
|
|
;* MOVE FIRST PAGE OF 'BYE' INTO PLACE
|
|
|
|
;*
|
|
|
|
LDY #$00
|
|
|
|
STY SRCL
|
|
|
|
LDA #$D1
|
|
|
|
STA SRCH
|
|
|
|
- LDA (SRC),Y
|
|
|
|
STA $1000,Y
|
|
|
|
INY
|
|
|
|
BNE -
|
|
|
|
;*
|
2014-05-24 21:18:43 +00:00
|
|
|
;* SAVE DEFAULT COMMAND INTERPRETER PATH IN LC
|
|
|
|
;*
|
|
|
|
JSR PRODOS ; GET PREFIX
|
|
|
|
!BYTE $C7
|
|
|
|
!WORD GETPFXPARMS
|
|
|
|
LDY STRBUF ; APPEND "CMD"
|
|
|
|
LDA #"/"
|
|
|
|
CMP STRBUF,Y
|
|
|
|
BEQ +
|
|
|
|
INY
|
|
|
|
STA STRBUF,Y
|
|
|
|
+ LDA #"C"
|
|
|
|
INY
|
|
|
|
STA STRBUF,Y
|
|
|
|
LDA #"M"
|
|
|
|
INY
|
|
|
|
STA STRBUF,Y
|
|
|
|
LDA #"D"
|
|
|
|
INY
|
|
|
|
STA STRBUF,Y
|
|
|
|
STY STRBUF
|
|
|
|
BIT LCRWEN+LCBNK2 ; COPY TO LC FOR BYE
|
|
|
|
BIT LCRWEN+LCBNK2
|
|
|
|
- LDA STRBUF,Y
|
2014-06-16 06:07:54 +00:00
|
|
|
STA LCDEFCMD,Y
|
2014-05-24 21:18:43 +00:00
|
|
|
DEY
|
|
|
|
BPL -
|
2014-06-13 01:40:04 +00:00
|
|
|
JMP CMDEXEC
|
2014-05-24 21:18:43 +00:00
|
|
|
GETPFXPARMS !BYTE 1
|
|
|
|
!WORD STRBUF ; PATH STRING GOES HERE
|
2014-06-13 01:40:04 +00:00
|
|
|
;************************************************
|
|
|
|
;* *
|
|
|
|
;* LANGUAGE CARD RESIDENT PLASMA VM STARTS HERE *
|
|
|
|
;* *
|
|
|
|
;************************************************
|
2014-05-06 22:26:12 +00:00
|
|
|
VMCORE = *
|
2014-05-06 01:19:51 +00:00
|
|
|
!PSEUDOPC $D000 {
|
2014-06-16 06:07:54 +00:00
|
|
|
;****************
|
|
|
|
;* *
|
|
|
|
;* OPCODE TABLE *
|
|
|
|
;* *
|
|
|
|
;****************
|
|
|
|
!ALIGN 255,0
|
2014-05-13 20:31:56 +00:00
|
|
|
OPTBL !WORD ZERO,ADD,SUB,MUL,DIV,MOD,INCR,DECR ; 00 02 04 06 08 0A 0C 0E
|
|
|
|
!WORD NEG,COMP,BAND,IOR,XOR,SHL,SHR,IDXW ; 10 12 14 16 18 1A 1C 1E
|
|
|
|
!WORD LNOT,LOR,LAND,LA,LLA,CB,CW,SWAP ; 20 22 24 26 28 2A 2C 2E
|
|
|
|
!WORD DROP,DUP,PUSH,PULL,BRGT,BRLT,BREQ,BRNE ; 30 32 34 36 38 3A 3C 3E
|
|
|
|
!WORD ISEQ,ISNE,ISGT,ISLT,ISGE,ISLE,BRFLS,BRTRU ; 40 42 44 46 48 4A 4C 4E
|
|
|
|
!WORD BRNCH,IBRNCH,CALL,ICAL,ENTER,LEAVE,RET,NEXTOP ; 50 52 54 56 58 5A 5C 5E
|
|
|
|
!WORD LB,LW,LLB,LLW,LAB,LAW,DLB,DLW ; 60 62 64 66 68 6A 6C 6E
|
|
|
|
!WORD SB,SW,SLB,SLW,SAB,SAW,DAB,DAW ; 70 72 74 76 78 7A 7C 7E
|
|
|
|
;*
|
2014-06-16 06:07:54 +00:00
|
|
|
;* ENTER INTO BYTECODE INTERPRETER
|
2014-05-06 22:26:12 +00:00
|
|
|
;*
|
2014-11-18 01:57:07 +00:00
|
|
|
DINTRP PLA
|
|
|
|
CLC
|
|
|
|
ADC #$01
|
2014-06-16 06:07:54 +00:00
|
|
|
STA IPL
|
|
|
|
PLA
|
2014-11-18 01:57:07 +00:00
|
|
|
ADC #$00
|
2014-06-16 06:07:54 +00:00
|
|
|
STA IPH
|
2014-11-18 01:57:07 +00:00
|
|
|
LDY #$00
|
2014-06-16 06:07:54 +00:00
|
|
|
LDA #>OPTBL
|
|
|
|
STA OPPAGE
|
|
|
|
JMP FETCHOP
|
2014-06-20 16:29:15 +00:00
|
|
|
IINTRP PLA
|
2014-06-16 06:07:54 +00:00
|
|
|
STA TMPL
|
|
|
|
PLA
|
|
|
|
STA TMPH
|
|
|
|
LDY #$02
|
|
|
|
LDA (TMP),Y
|
|
|
|
STA IPH
|
|
|
|
DEY
|
|
|
|
LDA (TMP),Y
|
|
|
|
STA IPL
|
|
|
|
DEY
|
|
|
|
LDA #>OPTBL
|
|
|
|
STA OPPAGE
|
|
|
|
JMP FETCHOP
|
2014-06-20 16:29:15 +00:00
|
|
|
IINTRPX PLA
|
2014-06-16 06:07:54 +00:00
|
|
|
STA TMPL
|
|
|
|
PLA
|
|
|
|
STA TMPH
|
|
|
|
LDY #$02
|
|
|
|
LDA (TMP),Y
|
|
|
|
STA IPH
|
|
|
|
DEY
|
|
|
|
LDA (TMP),Y
|
|
|
|
STA IPL
|
|
|
|
DEY
|
|
|
|
LDA #>OPXTBL
|
|
|
|
STA OPPAGE
|
|
|
|
SEI
|
|
|
|
STA ALTRDON
|
|
|
|
JMP FETCHOP
|
|
|
|
;************************************************************
|
|
|
|
;* *
|
|
|
|
;* 'BYE' PROCESSING - COPIED TO $1000 ON PRODOS BYE COMMAND *
|
|
|
|
;* *
|
|
|
|
;************************************************************
|
|
|
|
!ALIGN 255,0
|
2014-05-07 02:18:36 +00:00
|
|
|
!PSEUDOPC $1000 {
|
2014-06-16 06:07:54 +00:00
|
|
|
BYE LDY DEFCMD
|
2014-05-24 21:18:43 +00:00
|
|
|
- LDA DEFCMD,Y ; SET DEFAULT COMMAND WHEN CALLED FROM 'BYE'
|
|
|
|
STA STRBUF,Y
|
2014-05-07 03:19:59 +00:00
|
|
|
DEY
|
2014-05-24 21:18:43 +00:00
|
|
|
BPL -
|
2014-06-13 01:40:04 +00:00
|
|
|
CMDEXEC = *
|
|
|
|
;
|
|
|
|
; DEACTIVATE 80 COL CARDS
|
|
|
|
;
|
2014-05-07 02:18:36 +00:00
|
|
|
BIT ROMEN
|
|
|
|
LDY #4
|
|
|
|
- LDA DISABLE80,Y
|
2014-05-18 02:46:17 +00:00
|
|
|
ORA #$80
|
2014-05-07 02:18:36 +00:00
|
|
|
JSR $FDED
|
|
|
|
DEY
|
|
|
|
BPL -
|
|
|
|
BIT $C054 ; SET TEXT MODE
|
|
|
|
BIT $C051
|
2014-07-09 00:55:22 +00:00
|
|
|
BIT $C05F
|
2014-05-07 02:18:36 +00:00
|
|
|
JSR $FC58 ; HOME
|
2014-06-13 01:40:04 +00:00
|
|
|
;
|
2014-06-16 06:07:54 +00:00
|
|
|
; INSTALL PAGE 0 FETCHOP ROUTINE
|
|
|
|
;
|
2014-06-22 03:49:46 +00:00
|
|
|
LDY #$0F
|
2014-06-16 06:07:54 +00:00
|
|
|
- LDA PAGE0,Y
|
2014-06-16 17:31:50 +00:00
|
|
|
STA DROP,Y
|
2014-06-16 06:07:54 +00:00
|
|
|
DEY
|
|
|
|
BPL -
|
|
|
|
;
|
2014-06-16 06:24:16 +00:00
|
|
|
; INSTALL PAGE 3 VECTORS
|
|
|
|
;
|
2014-12-08 04:59:24 +00:00
|
|
|
LDY #$12
|
2014-06-16 06:24:16 +00:00
|
|
|
- LDA PAGE3,Y
|
|
|
|
STA INTERP,Y
|
|
|
|
DEY
|
|
|
|
BPL -
|
|
|
|
;
|
2014-06-13 01:40:04 +00:00
|
|
|
; READ CMD INTO MEMORY
|
|
|
|
;
|
|
|
|
JSR PRODOS ; CLOSE EVERYTHING
|
|
|
|
!BYTE $CC
|
|
|
|
!WORD CLOSEPARMS
|
|
|
|
BNE FAIL
|
|
|
|
JSR PRODOS ; OPEN CMD
|
|
|
|
!BYTE $C8
|
|
|
|
!WORD OPENPARMS
|
|
|
|
BNE FAIL
|
|
|
|
LDA REFNUM
|
|
|
|
STA READPARMS+1
|
|
|
|
JSR PRODOS
|
|
|
|
!BYTE $CA
|
|
|
|
!WORD READPARMS
|
|
|
|
BNE FAIL
|
|
|
|
JSR PRODOS
|
|
|
|
!BYTE $CC
|
|
|
|
!WORD CLOSEPARMS
|
|
|
|
BNE FAIL
|
|
|
|
JMP $2000 ; JUMP TO LOADED SYSTEM COMMAND
|
|
|
|
;
|
|
|
|
; PRINT FAIL MESSAGE, WAIT FOR KEYPRESS, AND REBOOT
|
|
|
|
;
|
|
|
|
FAIL INC $3F4 ; INVALIDATE POWER-UP BYTE
|
|
|
|
LDY #$01
|
|
|
|
- LDA FAILMSG,Y
|
|
|
|
ORA #$80
|
|
|
|
JSR $FDED
|
|
|
|
INY
|
|
|
|
CPY FAILMSG
|
|
|
|
BNE -
|
|
|
|
JSR $FD0C ; WAIT FOR KEYPRESS
|
|
|
|
JMP ($FFFC) ; RESET
|
|
|
|
OPENPARMS !BYTE 3
|
|
|
|
!WORD STRBUF
|
|
|
|
!WORD $0800
|
|
|
|
REFNUM !BYTE 0
|
|
|
|
READPARMS !BYTE 4
|
|
|
|
!BYTE 0
|
|
|
|
!WORD $2000
|
|
|
|
!WORD $1100
|
|
|
|
!WORD 0
|
|
|
|
CLOSEPARMS !BYTE 1
|
|
|
|
!BYTE 0
|
2014-05-18 02:46:17 +00:00
|
|
|
DISABLE80 !BYTE 21, 13, '1', 26, 13
|
2014-06-13 01:40:04 +00:00
|
|
|
FAILMSG !BYTE 39
|
|
|
|
!TEXT "MISSING CMD. PRESS ANY KEY TO RESET..."
|
2014-06-16 06:07:54 +00:00
|
|
|
PAGE0 = *
|
2014-06-20 16:29:15 +00:00
|
|
|
;******************************
|
|
|
|
;* *
|
|
|
|
;* INTERP BYTECODE INNER LOOP *
|
|
|
|
;* *
|
|
|
|
;******************************
|
2014-06-16 17:31:50 +00:00
|
|
|
!PSEUDOPC $00EF {
|
|
|
|
INX ; DROP @ $EF
|
|
|
|
INY ; NEXTOP @ $F0
|
2014-05-13 20:31:56 +00:00
|
|
|
BEQ NEXTOPH
|
2014-06-22 03:49:46 +00:00
|
|
|
LDA $FFFF,Y ; FETCHOP @ $F3, IP MAPS OVER $FFFF @ $F4
|
2014-06-16 06:07:54 +00:00
|
|
|
STA OPIDX
|
2014-06-22 03:49:46 +00:00
|
|
|
JMP (OPTBL) ; OPIDX AND OPPAGE MAP OVER OPTBL
|
2014-06-16 06:07:54 +00:00
|
|
|
NEXTOPH INC IPH
|
|
|
|
BNE FETCHOP
|
|
|
|
}
|
2014-06-16 06:24:16 +00:00
|
|
|
PAGE3 = *
|
|
|
|
;*
|
|
|
|
;* PAGE 3 VECTORS INTO INTERPRETER
|
|
|
|
;*
|
2014-06-20 16:29:15 +00:00
|
|
|
!PSEUDOPC $03D0 {
|
2014-06-16 06:24:16 +00:00
|
|
|
BIT LCRDEN+LCBNK2 ; $03D0 - DIRECT INTERP ENTRY
|
2014-11-18 01:57:07 +00:00
|
|
|
JMP DINTRP
|
2014-06-16 06:24:16 +00:00
|
|
|
BIT LCRDEN+LCBNK2 ; $03D6 - INDIRECT INTERP ENTRY
|
|
|
|
JMP IINTRP
|
|
|
|
BIT LCRDEN+LCBNK2 ; $03DC - INDIRECT INTERPX ENTRY
|
|
|
|
JMP IINTRPX
|
|
|
|
}
|
|
|
|
DEFCMD !FILL 33
|
2014-06-16 06:07:54 +00:00
|
|
|
ENDBYE = *
|
|
|
|
}
|
2014-06-16 06:24:16 +00:00
|
|
|
LCDEFCMD = *-33 ; DEFCMD IN LC MEMORY
|
2014-06-16 06:07:54 +00:00
|
|
|
;*****************
|
|
|
|
;* *
|
|
|
|
;* OPXCODE TABLE *
|
|
|
|
;* *
|
|
|
|
;*****************
|
|
|
|
!ALIGN 255,0
|
|
|
|
OPXTBL !WORD ZERO,ADD,SUB,MUL,DIV,MOD,INCR,DECR ; 00 02 04 06 08 0A 0C 0E
|
|
|
|
!WORD NEG,COMP,BAND,IOR,XOR,SHL,SHR,IDXW ; 10 12 14 16 18 1A 1C 1E
|
|
|
|
!WORD LNOT,LOR,LAND,LA,LLA,CB,CW,SWAP ; 20 22 24 26 28 2A 2C 2E
|
|
|
|
!WORD DROP,DUP,PUSH,PULL,BRGT,BRLT,BREQ,BRNE ; 30 32 34 36 38 3A 3C 3E
|
2014-11-18 01:57:07 +00:00
|
|
|
!WORD ISEQ,ISNE,ISGT,ISLT,ISGE,ISLE,BRFLS,BRTRU ; 40 42 44 46 48 4A 4C 4E
|
2014-06-16 06:07:54 +00:00
|
|
|
!WORD BRNCH,IBRNCH,CALLX,ICALX,ENTERX,LEAVEX,RETX,NEXTOP; 50 52 54 56 58 5A 5C 5E
|
|
|
|
!WORD LBX,LWX,LLBX,LLWX,LABX,LAWX,DLBX,DLWX ; 60 62 64 66 68 6A 6C 6E
|
|
|
|
!WORD SBX,SWX,SLBX,SLWX,SABX,SAWX,DABX,DAWX ; 70 72 74 76 78 7A 7C 7E
|
2014-05-13 20:31:56 +00:00
|
|
|
;*
|
2014-05-04 23:15:45 +00:00
|
|
|
;* ADD TOS TO TOS-1
|
|
|
|
;*
|
2014-05-06 01:19:51 +00:00
|
|
|
ADD LDA ESTKL,X
|
2014-05-04 23:15:45 +00:00
|
|
|
CLC
|
|
|
|
ADC ESTKL+1,X
|
|
|
|
STA ESTKL+1,X
|
|
|
|
LDA ESTKH,X
|
|
|
|
ADC ESTKH+1,X
|
|
|
|
STA ESTKH+1,X
|
2014-06-16 17:31:50 +00:00
|
|
|
INX
|
2014-05-06 01:19:51 +00:00
|
|
|
JMP NEXTOP
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
|
|
|
;* SUB TOS FROM TOS-1
|
|
|
|
;*
|
2014-05-06 01:19:51 +00:00
|
|
|
SUB LDA ESTKL+1,X
|
2014-05-04 23:15:45 +00:00
|
|
|
SEC
|
|
|
|
SBC ESTKL,X
|
|
|
|
STA ESTKL+1,X
|
|
|
|
LDA ESTKH+1,X
|
|
|
|
SBC ESTKH,X
|
|
|
|
STA ESTKH+1,X
|
|
|
|
INX
|
2014-05-06 01:19:51 +00:00
|
|
|
JMP NEXTOP
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
|
|
|
;* SHIFT TOS-1 LEFT BY 1, ADD TO TOS-1
|
|
|
|
;*
|
2014-05-06 01:19:51 +00:00
|
|
|
IDXW LDA ESTKL,X
|
2014-05-04 23:15:45 +00:00
|
|
|
ASL
|
|
|
|
ROL ESTKH,X
|
|
|
|
CLC
|
|
|
|
ADC ESTKL+1,X
|
|
|
|
STA ESTKL+1,X
|
|
|
|
LDA ESTKH,X
|
|
|
|
ADC ESTKH+1,X
|
|
|
|
STA ESTKH+1,X
|
|
|
|
INX
|
2014-05-06 01:19:51 +00:00
|
|
|
JMP NEXTOP
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
2014-06-16 06:07:54 +00:00
|
|
|
;* MUL TOS-1 BY TOS
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
2014-06-16 06:07:54 +00:00
|
|
|
MUL STY IPY
|
2014-05-04 23:15:45 +00:00
|
|
|
LDY #$10
|
2014-12-08 04:59:24 +00:00
|
|
|
LDA ESTKL+1,X
|
|
|
|
EOR #$FF
|
2014-05-04 23:15:45 +00:00
|
|
|
STA TMPL
|
2014-12-08 04:59:24 +00:00
|
|
|
LDA ESTKH+1,X
|
|
|
|
EOR #$FF
|
2014-05-04 23:15:45 +00:00
|
|
|
STA TMPH
|
2014-12-08 04:59:24 +00:00
|
|
|
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
|
2014-05-04 23:15:45 +00:00
|
|
|
DEY
|
2014-06-20 16:29:15 +00:00
|
|
|
BNE MULLP
|
2014-12-08 04:59:24 +00:00
|
|
|
STA ESTKH+1,X ; PRODH
|
2014-05-04 23:15:45 +00:00
|
|
|
INX
|
2014-05-06 01:19:51 +00:00
|
|
|
LDY IPY
|
|
|
|
JMP NEXTOP
|
|
|
|
;*
|
2014-05-04 23:15:45 +00:00
|
|
|
;* INTERNAL DIVIDE ALGORITHM
|
|
|
|
;*
|
2014-05-06 01:19:51 +00:00
|
|
|
_NEG LDA #$00
|
|
|
|
SEC
|
|
|
|
SBC ESTKL,X
|
|
|
|
STA ESTKL,X
|
|
|
|
LDA #$00
|
|
|
|
SBC ESTKH,X
|
|
|
|
STA ESTKH,X
|
|
|
|
RTS
|
|
|
|
_DIV STY IPY
|
2014-12-08 04:59:24 +00:00
|
|
|
LDY #$11 ; #BITS+1
|
|
|
|
LDA #$00
|
|
|
|
STA TMPL ; REMNDRL
|
|
|
|
STA TMPH ; REMNDRH
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA ESTKH,X
|
2014-05-04 23:15:45 +00:00
|
|
|
AND #$80
|
|
|
|
STA DVSIGN
|
2014-06-20 16:29:15 +00:00
|
|
|
BPL +
|
2014-05-06 01:19:51 +00:00
|
|
|
JSR _NEG
|
2014-05-04 23:15:45 +00:00
|
|
|
INC DVSIGN
|
2014-06-20 16:29:15 +00:00
|
|
|
+ LDA ESTKH+1,X
|
|
|
|
BPL +
|
2014-05-04 23:15:45 +00:00
|
|
|
INX
|
2014-05-06 01:19:51 +00:00
|
|
|
JSR _NEG
|
2014-05-04 23:15:45 +00:00
|
|
|
DEX
|
|
|
|
INC DVSIGN
|
2014-06-20 16:29:15 +00:00
|
|
|
BNE _DIV1
|
|
|
|
+ ORA ESTKL+1,X ; DVDNDL
|
2014-12-08 04:59:24 +00:00
|
|
|
BEQ _DIVEX
|
|
|
|
_DIV1 ASL ESTKL+1,X ; DVDNDL
|
2014-05-04 23:15:45 +00:00
|
|
|
ROL ESTKH+1,X ; DVDNDH
|
|
|
|
DEY
|
2014-12-08 04:59:24 +00:00
|
|
|
BCC _DIV1
|
2014-06-20 16:29:15 +00:00
|
|
|
_DIVLP ROL TMPL ; REMNDRL
|
2014-05-04 23:15:45 +00:00
|
|
|
ROL TMPH ; REMNDRH
|
|
|
|
LDA TMPL ; REMNDRL
|
2014-12-08 04:59:24 +00:00
|
|
|
CMP ESTKL,X ; DVSRL
|
2014-05-04 23:15:45 +00:00
|
|
|
LDA TMPH ; REMNDRH
|
|
|
|
SBC ESTKH,X ; DVSRH
|
2014-06-20 16:29:15 +00:00
|
|
|
BCC +
|
2014-05-04 23:15:45 +00:00
|
|
|
STA TMPH ; REMNDRH
|
2014-12-08 04:59:24 +00:00
|
|
|
LDA TMPL ; REMNDRL
|
|
|
|
SBC ESTKL,X ; DVSRL
|
|
|
|
STA TMPL ; REMNDRL
|
|
|
|
SEC
|
|
|
|
+ ROL ESTKL+1,X ; DVDNDL
|
2014-05-04 23:15:45 +00:00
|
|
|
ROL ESTKH+1,X ; DVDNDH
|
2014-12-08 04:59:24 +00:00
|
|
|
DEY
|
2014-06-20 16:29:15 +00:00
|
|
|
BNE _DIVLP
|
2014-12-08 04:59:24 +00:00
|
|
|
_DIVEX INX
|
2014-05-06 01:19:51 +00:00
|
|
|
LDY IPY
|
2014-05-04 23:15:45 +00:00
|
|
|
RTS
|
|
|
|
;*
|
|
|
|
;* NEGATE TOS
|
|
|
|
;*
|
2014-05-06 01:19:51 +00:00
|
|
|
NEG LDA #$00
|
2014-05-04 23:15:45 +00:00
|
|
|
SEC
|
|
|
|
SBC ESTKL,X
|
|
|
|
STA ESTKL,X
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA #$00
|
2014-05-04 23:15:45 +00:00
|
|
|
SBC ESTKH,X
|
|
|
|
STA ESTKH,X
|
2014-05-06 01:19:51 +00:00
|
|
|
JMP NEXTOP
|
|
|
|
;*
|
|
|
|
;* DIV TOS-1 BY TOS
|
|
|
|
;*
|
|
|
|
DIV JSR _DIV
|
|
|
|
INX
|
|
|
|
LSR DVSIGN ; SIGN(RESULT) = (SIGN(DIVIDEND) + SIGN(DIVISOR)) & 1
|
|
|
|
BCS NEG
|
|
|
|
JMP NEXTOP
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
2014-05-06 01:19:51 +00:00
|
|
|
;* MOD TOS-1 BY TOS
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
2014-05-06 01:19:51 +00:00
|
|
|
MOD JSR _DIV
|
|
|
|
INX
|
2014-05-04 23:15:45 +00:00
|
|
|
LDA TMPL ; REMNDRL
|
|
|
|
STA ESTKL,X
|
|
|
|
LDA TMPH ; REMNDRH
|
|
|
|
STA ESTKH,X
|
|
|
|
LDA DVSIGN ; REMAINDER IS SIGN OF DIVIDEND
|
2014-05-06 01:19:51 +00:00
|
|
|
BMI NEG
|
|
|
|
JMP NEXTOP
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
|
|
|
;* INCREMENT TOS
|
|
|
|
;*
|
2014-05-06 01:19:51 +00:00
|
|
|
INCR INC ESTKL,X
|
2014-05-04 23:15:45 +00:00
|
|
|
BNE INCR1
|
|
|
|
INC ESTKH,X
|
2014-05-06 01:19:51 +00:00
|
|
|
INCR1 JMP NEXTOP
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
|
|
|
;* DECREMENT TOS
|
|
|
|
;*
|
2014-05-06 01:19:51 +00:00
|
|
|
DECR LDA ESTKL,X
|
2014-05-04 23:15:45 +00:00
|
|
|
BNE DECR1
|
|
|
|
DEC ESTKH,X
|
2014-05-06 01:19:51 +00:00
|
|
|
DECR1 DEC ESTKL,X
|
|
|
|
JMP NEXTOP
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
|
|
|
;* BITWISE COMPLIMENT TOS
|
|
|
|
;*
|
2014-05-06 01:19:51 +00:00
|
|
|
COMP LDA #$FF
|
2014-05-04 23:15:45 +00:00
|
|
|
EOR ESTKL,X
|
|
|
|
STA ESTKL,X
|
|
|
|
LDA #$FF
|
|
|
|
EOR ESTKH,X
|
|
|
|
STA ESTKH,X
|
2014-05-06 01:19:51 +00:00
|
|
|
JMP NEXTOP
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
|
|
|
;* BITWISE AND TOS TO TOS-1
|
|
|
|
;*
|
2014-05-06 01:19:51 +00:00
|
|
|
BAND LDA ESTKL+1,X
|
2014-05-04 23:15:45 +00:00
|
|
|
AND ESTKL,X
|
|
|
|
STA ESTKL+1,X
|
|
|
|
LDA ESTKH+1,X
|
|
|
|
AND ESTKH,X
|
|
|
|
STA ESTKH+1,X
|
|
|
|
INX
|
2014-05-06 01:19:51 +00:00
|
|
|
JMP NEXTOP
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
|
|
|
;* INCLUSIVE OR TOS TO TOS-1
|
|
|
|
;*
|
2014-05-06 01:19:51 +00:00
|
|
|
IOR LDA ESTKL+1,X
|
2014-05-04 23:15:45 +00:00
|
|
|
ORA ESTKL,X
|
|
|
|
STA ESTKL+1,X
|
|
|
|
LDA ESTKH+1,X
|
|
|
|
ORA ESTKH,X
|
|
|
|
STA ESTKH+1,X
|
|
|
|
INX
|
2014-05-06 01:19:51 +00:00
|
|
|
JMP NEXTOP
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
|
|
|
;* EXLUSIVE OR TOS TO TOS-1
|
|
|
|
;*
|
2014-05-06 01:19:51 +00:00
|
|
|
XOR LDA ESTKL+1,X
|
2014-05-04 23:15:45 +00:00
|
|
|
EOR ESTKL,X
|
|
|
|
STA ESTKL+1,X
|
|
|
|
LDA ESTKH+1,X
|
|
|
|
EOR ESTKH,X
|
|
|
|
STA ESTKH+1,X
|
|
|
|
INX
|
2014-05-06 01:19:51 +00:00
|
|
|
JMP NEXTOP
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
|
|
|
;* SHIFT TOS-1 LEFT BY TOS
|
|
|
|
;*
|
2014-05-06 01:19:51 +00:00
|
|
|
SHL STY IPY
|
|
|
|
LDA ESTKL,X
|
2014-05-04 23:15:45 +00:00
|
|
|
CMP #$08
|
|
|
|
BCC SHL1
|
|
|
|
LDY ESTKL+1,X
|
|
|
|
STY ESTKH+1,X
|
|
|
|
LDY #$00
|
|
|
|
STY ESTKL+1,X
|
|
|
|
SBC #$08
|
2014-05-06 01:19:51 +00:00
|
|
|
SHL1 TAY
|
2014-05-04 23:15:45 +00:00
|
|
|
BEQ SHL3
|
2014-05-06 01:19:51 +00:00
|
|
|
SHL2 ASL ESTKL+1,X
|
2014-05-04 23:15:45 +00:00
|
|
|
ROL ESTKH+1,X
|
|
|
|
DEY
|
|
|
|
BNE SHL2
|
2014-05-06 01:19:51 +00:00
|
|
|
SHL3 INX
|
|
|
|
LDY IPY
|
2014-05-06 16:43:14 +00:00
|
|
|
JMP NEXTOP
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
|
|
|
;* SHIFT TOS-1 RIGHT BY TOS
|
|
|
|
;*
|
2014-05-06 01:19:51 +00:00
|
|
|
SHR STY IPY
|
|
|
|
LDA ESTKL,X
|
2014-05-04 23:15:45 +00:00
|
|
|
CMP #$08
|
|
|
|
BCC SHR2
|
|
|
|
LDY ESTKH+1,X
|
|
|
|
STY ESTKL+1,X
|
|
|
|
CPY #$80
|
|
|
|
LDY #$00
|
|
|
|
BCC SHR1
|
|
|
|
DEY
|
2014-05-06 01:19:51 +00:00
|
|
|
SHR1 STY ESTKH+1,X
|
2014-05-04 23:15:45 +00:00
|
|
|
SEC
|
|
|
|
SBC #$08
|
2014-05-06 01:19:51 +00:00
|
|
|
SHR2 TAY
|
2014-05-04 23:15:45 +00:00
|
|
|
BEQ SHR4
|
|
|
|
LDA ESTKH+1,X
|
2014-05-06 01:19:51 +00:00
|
|
|
SHR3 CMP #$80
|
2014-05-04 23:15:45 +00:00
|
|
|
ROR
|
|
|
|
ROR ESTKL+1,X
|
|
|
|
DEY
|
|
|
|
BNE SHR3
|
|
|
|
STA ESTKH+1,X
|
2014-05-06 01:19:51 +00:00
|
|
|
SHR4 INX
|
|
|
|
LDY IPY
|
|
|
|
JMP NEXTOP
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
|
|
|
;* LOGICAL NOT
|
|
|
|
;*
|
2014-05-06 16:43:14 +00:00
|
|
|
LNOT LDA ESTKL,X
|
2014-05-04 23:15:45 +00:00
|
|
|
ORA ESTKH,X
|
2014-05-06 16:43:14 +00:00
|
|
|
BEQ LNOT1
|
2014-05-04 23:15:45 +00:00
|
|
|
LDA #$FF
|
2014-05-06 16:43:14 +00:00
|
|
|
LNOT1 EOR #$FF
|
2014-05-04 23:15:45 +00:00
|
|
|
STA ESTKL,X
|
|
|
|
STA ESTKH,X
|
2014-05-06 01:19:51 +00:00
|
|
|
JMP NEXTOP
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
|
|
|
;* LOGICAL AND
|
|
|
|
;*
|
2014-07-04 17:20:01 +00:00
|
|
|
LAND LDA ESTKL+1,X
|
2014-05-04 23:15:45 +00:00
|
|
|
ORA ESTKH+1,X
|
2014-07-04 17:20:01 +00:00
|
|
|
BEQ LAND2
|
|
|
|
LDA ESTKL,X
|
|
|
|
ORA ESTKH,X
|
2014-05-04 23:15:45 +00:00
|
|
|
BEQ LAND1
|
|
|
|
LDA #$FF
|
2014-05-06 01:19:51 +00:00
|
|
|
LAND1 STA ESTKL+1,X
|
2014-05-04 23:15:45 +00:00
|
|
|
STA ESTKH+1,X
|
2014-07-04 17:20:01 +00:00
|
|
|
LAND2 INX
|
2014-05-06 01:19:51 +00:00
|
|
|
JMP NEXTOP
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
2014-05-06 16:43:14 +00:00
|
|
|
;* LOGICAL OR
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
2014-05-06 01:19:51 +00:00
|
|
|
LOR LDA ESTKL,X
|
2014-05-04 23:15:45 +00:00
|
|
|
ORA ESTKH,X
|
|
|
|
ORA ESTKL+1,X
|
|
|
|
ORA ESTKH+1,X
|
|
|
|
BEQ LOR1
|
|
|
|
LDA #$FF
|
2014-07-04 17:20:01 +00:00
|
|
|
STA ESTKL+1,X
|
2014-05-04 23:15:45 +00:00
|
|
|
STA ESTKH+1,X
|
2014-07-04 17:20:01 +00:00
|
|
|
LOR1 INX
|
2014-05-06 01:19:51 +00:00
|
|
|
JMP NEXTOP
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
|
|
|
;* SWAP TOS WITH TOS-1
|
|
|
|
;*
|
2014-05-06 01:19:51 +00:00
|
|
|
SWAP STY IPY
|
|
|
|
LDA ESTKL,X
|
2014-05-04 23:15:45 +00:00
|
|
|
LDY ESTKL+1,X
|
|
|
|
STA ESTKL+1,X
|
|
|
|
STY ESTKL,X
|
|
|
|
LDA ESTKH,X
|
|
|
|
LDY ESTKH+1,X
|
|
|
|
STA ESTKH+1,X
|
|
|
|
STY ESTKH,X
|
2014-05-06 01:19:51 +00:00
|
|
|
LDY IPY
|
|
|
|
JMP NEXTOP
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
|
|
|
;* DUPLICATE TOS
|
|
|
|
;*
|
2014-05-06 01:19:51 +00:00
|
|
|
DUP DEX
|
2014-05-04 23:15:45 +00:00
|
|
|
LDA ESTKL+1,X
|
|
|
|
STA ESTKL,X
|
|
|
|
LDA ESTKH+1,X
|
|
|
|
STA ESTKH,X
|
2014-05-06 01:19:51 +00:00
|
|
|
JMP NEXTOP
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
|
|
|
;* PUSH FROM EVAL STACK TO CALL STACK
|
|
|
|
;*
|
2014-05-06 01:19:51 +00:00
|
|
|
PUSH LDA ESTKL,X
|
2014-05-04 23:15:45 +00:00
|
|
|
PHA
|
|
|
|
LDA ESTKH,X
|
|
|
|
PHA
|
|
|
|
INX
|
2014-05-06 01:19:51 +00:00
|
|
|
JMP NEXTOP
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
|
|
|
;* PULL FROM CALL STACK TO EVAL STACK
|
|
|
|
;*
|
2014-05-06 01:19:51 +00:00
|
|
|
PULL DEX
|
2014-05-04 23:15:45 +00:00
|
|
|
PLA
|
2014-05-06 01:19:51 +00:00
|
|
|
STA ESTKH,X
|
|
|
|
PLA
|
|
|
|
STA ESTKL,X
|
|
|
|
JMP NEXTOP
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
|
|
|
;* CONSTANT
|
|
|
|
;*
|
2014-05-06 01:19:51 +00:00
|
|
|
ZERO DEX
|
|
|
|
LDA #$00
|
2014-05-04 23:15:45 +00:00
|
|
|
STA ESTKL,X
|
2014-05-06 01:19:51 +00:00
|
|
|
STA ESTKH,X
|
|
|
|
JMP NEXTOP
|
|
|
|
CB DEX
|
2014-05-06 16:43:14 +00:00
|
|
|
+INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
|
|
|
STA ESTKL,X
|
|
|
|
LDA #$00
|
|
|
|
STA ESTKH,X
|
|
|
|
JMP NEXTOP
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
2014-05-06 01:19:51 +00:00
|
|
|
;* LOAD ADDRESS & LOAD CONSTANT WORD (SAME THING, WITH OR WITHOUT FIXUP)
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
2014-05-06 16:43:14 +00:00
|
|
|
LA = *
|
2014-05-06 01:19:51 +00:00
|
|
|
CW DEX
|
2014-05-06 16:43:14 +00:00
|
|
|
+INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
2014-05-04 23:15:45 +00:00
|
|
|
STA ESTKL,X
|
2014-05-06 16:43:14 +00:00
|
|
|
+INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
2014-05-04 23:15:45 +00:00
|
|
|
STA ESTKH,X
|
2014-05-06 01:19:51 +00:00
|
|
|
JMP NEXTOP
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
|
|
|
;* LOAD VALUE FROM ADDRESS TAG
|
|
|
|
;*
|
2014-05-06 01:19:51 +00:00
|
|
|
LB LDA ESTKL,X
|
2014-05-04 23:15:45 +00:00
|
|
|
STA TMPL
|
|
|
|
LDA ESTKH,X
|
|
|
|
STA TMPH
|
2014-05-06 01:19:51 +00:00
|
|
|
STY IPY
|
|
|
|
LDY #$00
|
|
|
|
LDA (TMP),Y
|
2014-05-04 23:15:45 +00:00
|
|
|
STA ESTKL,X
|
2014-05-06 01:19:51 +00:00
|
|
|
STY ESTKH,X
|
|
|
|
LDY IPY
|
|
|
|
JMP NEXTOP
|
|
|
|
LW LDA ESTKL,X
|
2014-05-04 23:15:45 +00:00
|
|
|
STA TMPL
|
|
|
|
LDA ESTKH,X
|
|
|
|
STA TMPH
|
2014-05-06 01:19:51 +00:00
|
|
|
STY IPY
|
|
|
|
LDY #$00
|
|
|
|
LDA (TMP),Y
|
2014-05-04 23:15:45 +00:00
|
|
|
STA ESTKL,X
|
2014-05-06 01:19:51 +00:00
|
|
|
INY
|
|
|
|
LDA (TMP),Y
|
2014-05-04 23:15:45 +00:00
|
|
|
STA ESTKH,X
|
2014-05-06 01:19:51 +00:00
|
|
|
LDY IPY
|
|
|
|
JMP NEXTOP
|
|
|
|
;
|
2014-05-23 20:37:28 +00:00
|
|
|
LBX LDA ESTKL,X
|
2014-05-06 01:19:51 +00:00
|
|
|
STA TMPL
|
|
|
|
LDA ESTKH,X
|
|
|
|
STA TMPH
|
|
|
|
STY IPY
|
2014-05-23 20:37:28 +00:00
|
|
|
STA ALTRDOFF
|
2014-05-06 01:19:51 +00:00
|
|
|
LDY #$00
|
|
|
|
LDA (TMP),Y
|
|
|
|
STA ESTKL,X
|
|
|
|
STY ESTKH,X
|
|
|
|
LDY IPY
|
2014-05-23 20:37:28 +00:00
|
|
|
STA ALTRDON
|
2014-06-16 06:07:54 +00:00
|
|
|
JMP NEXTOP
|
2014-05-23 20:37:28 +00:00
|
|
|
LWX LDA ESTKL,X
|
2014-05-06 01:19:51 +00:00
|
|
|
STA TMPL
|
|
|
|
LDA ESTKH,X
|
|
|
|
STA TMPH
|
|
|
|
STY IPY
|
2014-05-23 20:37:28 +00:00
|
|
|
STA ALTRDOFF
|
|
|
|
LDY #$00
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (TMP),Y
|
|
|
|
STA ESTKL,X
|
|
|
|
INY
|
|
|
|
LDA (TMP),Y
|
|
|
|
STA ESTKH,X
|
|
|
|
LDY IPY
|
2014-05-23 20:37:28 +00:00
|
|
|
STA ALTRDON
|
2014-06-16 06:07:54 +00:00
|
|
|
JMP NEXTOP
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
|
|
|
;* LOAD ADDRESS OF LOCAL FRAME OFFSET
|
|
|
|
;*
|
2014-05-06 16:43:14 +00:00
|
|
|
LLA +INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
|
|
|
DEX
|
|
|
|
CLC
|
|
|
|
ADC IFPL
|
|
|
|
STA ESTKL,X
|
|
|
|
LDA #$00
|
|
|
|
ADC IFPH
|
|
|
|
STA ESTKH,X
|
|
|
|
JMP NEXTOP
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
|
|
|
;* LOAD VALUE FROM LOCAL FRAME OFFSET
|
|
|
|
;*
|
2014-05-06 16:43:14 +00:00
|
|
|
LLB +INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
|
|
|
STY IPY
|
2014-05-04 23:15:45 +00:00
|
|
|
TAY
|
|
|
|
DEX
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IFP),Y
|
2014-05-04 23:15:45 +00:00
|
|
|
STA ESTKL,X
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA #$00
|
|
|
|
STA ESTKH,X
|
|
|
|
LDY IPY
|
|
|
|
JMP NEXTOP
|
2014-05-06 16:43:14 +00:00
|
|
|
LLW +INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
|
|
|
STY IPY
|
2014-05-04 23:15:45 +00:00
|
|
|
TAY
|
|
|
|
DEX
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IFP),Y
|
2014-05-04 23:15:45 +00:00
|
|
|
STA ESTKL,X
|
|
|
|
INY
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IFP),Y
|
2014-05-04 23:15:45 +00:00
|
|
|
STA ESTKH,X
|
2014-05-06 01:19:51 +00:00
|
|
|
LDY IPY
|
|
|
|
JMP NEXTOP
|
|
|
|
;
|
2014-05-06 16:43:14 +00:00
|
|
|
LLBX +INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
|
|
|
STY IPY
|
|
|
|
TAY
|
|
|
|
DEX
|
2014-05-06 16:43:14 +00:00
|
|
|
STA ALTRDOFF
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IFP),Y
|
|
|
|
STA ESTKL,X
|
|
|
|
LDA #$00
|
|
|
|
STA ESTKH,X
|
2014-05-23 20:37:28 +00:00
|
|
|
STA ALTRDON
|
2014-05-06 01:19:51 +00:00
|
|
|
LDY IPY
|
2014-06-16 06:07:54 +00:00
|
|
|
JMP NEXTOP
|
2014-05-06 16:43:14 +00:00
|
|
|
LLWX +INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
|
|
|
STY IPY
|
|
|
|
TAY
|
|
|
|
DEX
|
2014-05-06 16:43:14 +00:00
|
|
|
STA ALTRDOFF
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IFP),Y
|
|
|
|
STA ESTKL,X
|
|
|
|
INY
|
|
|
|
LDA (IFP),Y
|
|
|
|
STA ESTKH,X
|
2014-05-23 20:37:28 +00:00
|
|
|
STA ALTRDON
|
2014-05-06 01:19:51 +00:00
|
|
|
LDY IPY
|
2014-06-16 06:07:54 +00:00
|
|
|
JMP NEXTOP
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
|
|
|
;* LOAD VALUE FROM ABSOLUTE ADDRESS
|
|
|
|
;*
|
2014-05-06 16:43:14 +00:00
|
|
|
LAB +INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
2014-05-04 23:15:45 +00:00
|
|
|
STA TMPL
|
2014-05-06 16:43:14 +00:00
|
|
|
+INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
2014-05-04 23:15:45 +00:00
|
|
|
STA TMPH
|
2014-05-06 01:19:51 +00:00
|
|
|
STY IPY
|
|
|
|
LDY #$00
|
|
|
|
LDA (TMP),Y
|
2014-05-04 23:15:45 +00:00
|
|
|
DEX
|
|
|
|
STA ESTKL,X
|
2014-05-06 01:19:51 +00:00
|
|
|
STY ESTKH,X
|
|
|
|
LDY IPY
|
|
|
|
JMP NEXTOP
|
2014-05-06 16:43:14 +00:00
|
|
|
LAW +INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
2014-05-04 23:15:45 +00:00
|
|
|
STA TMPL
|
2014-05-06 16:43:14 +00:00
|
|
|
+INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
2014-05-04 23:15:45 +00:00
|
|
|
STA TMPH
|
2014-05-06 01:19:51 +00:00
|
|
|
STY IPY
|
|
|
|
LDY #$00
|
|
|
|
LDA (TMP),Y
|
2014-05-04 23:15:45 +00:00
|
|
|
DEX
|
|
|
|
STA ESTKL,X
|
2014-05-06 01:19:51 +00:00
|
|
|
INY
|
|
|
|
LDA (TMP),Y
|
2014-05-04 23:15:45 +00:00
|
|
|
STA ESTKH,X
|
2014-05-06 01:19:51 +00:00
|
|
|
LDY IPY
|
|
|
|
JMP NEXTOP
|
|
|
|
;
|
2014-05-06 16:43:14 +00:00
|
|
|
LABX +INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
|
|
|
STA TMPL
|
2014-05-06 16:43:14 +00:00
|
|
|
+INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
|
|
|
STA TMPH
|
|
|
|
STY IPY
|
2014-05-06 16:43:14 +00:00
|
|
|
STA ALTRDOFF
|
2014-05-06 01:19:51 +00:00
|
|
|
LDY #$00
|
|
|
|
LDA (TMP),Y
|
|
|
|
DEX
|
|
|
|
STA ESTKL,X
|
|
|
|
STY ESTKH,X
|
2014-05-23 20:37:28 +00:00
|
|
|
STA ALTRDON
|
2014-05-06 01:19:51 +00:00
|
|
|
LDY IPY
|
2014-06-16 06:07:54 +00:00
|
|
|
JMP NEXTOP
|
2014-05-06 16:43:14 +00:00
|
|
|
LAWX +INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
|
|
|
STA TMPL
|
2014-05-06 16:43:14 +00:00
|
|
|
+INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
|
|
|
STA TMPH
|
|
|
|
STY IPY
|
2014-05-06 16:43:14 +00:00
|
|
|
STA ALTRDOFF
|
2014-05-06 01:19:51 +00:00
|
|
|
LDY #$00
|
|
|
|
LDA (TMP),Y
|
|
|
|
DEX
|
|
|
|
STA ESTKL,X
|
|
|
|
INY
|
|
|
|
LDA (TMP),Y
|
|
|
|
STA ESTKH,X
|
2014-05-23 20:37:28 +00:00
|
|
|
STA ALTRDON
|
2014-05-06 01:19:51 +00:00
|
|
|
LDY IPY
|
2014-06-16 06:07:54 +00:00
|
|
|
JMP NEXTOP
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
|
|
|
;* STORE VALUE TO ADDRESS
|
|
|
|
;*
|
2014-05-06 01:19:51 +00:00
|
|
|
SB LDA ESTKL+1,X
|
2014-05-04 23:15:45 +00:00
|
|
|
STA TMPL
|
|
|
|
LDA ESTKH+1,X
|
|
|
|
STA TMPH
|
|
|
|
LDA ESTKL,X
|
2014-05-06 01:19:51 +00:00
|
|
|
STY IPY
|
|
|
|
LDY #$00
|
|
|
|
STA (TMP),Y
|
2014-05-04 23:15:45 +00:00
|
|
|
INX
|
|
|
|
INX
|
2014-05-06 01:19:51 +00:00
|
|
|
LDY IPY
|
|
|
|
JMP NEXTOP
|
|
|
|
SW LDA ESTKL+1,X
|
2014-05-04 23:15:45 +00:00
|
|
|
STA TMPL
|
|
|
|
LDA ESTKH+1,X
|
|
|
|
STA TMPH
|
2014-05-06 01:19:51 +00:00
|
|
|
STY IPY
|
|
|
|
LDY #$00
|
2014-05-04 23:15:45 +00:00
|
|
|
LDA ESTKL,X
|
2014-05-06 01:19:51 +00:00
|
|
|
STA (TMP),Y
|
|
|
|
INY
|
2014-05-04 23:15:45 +00:00
|
|
|
LDA ESTKH,X
|
2014-05-06 01:19:51 +00:00
|
|
|
STA (TMP),Y
|
2014-05-04 23:15:45 +00:00
|
|
|
INX
|
|
|
|
INX
|
2014-05-06 01:19:51 +00:00
|
|
|
LDY IPY
|
|
|
|
JMP NEXTOP
|
|
|
|
;
|
|
|
|
SBX LDA ESTKL+1,X
|
|
|
|
STA TMPL
|
|
|
|
LDA ESTKH+1,X
|
|
|
|
STA TMPH
|
|
|
|
LDA ESTKL,X
|
|
|
|
STY IPY
|
2014-05-06 16:43:14 +00:00
|
|
|
STA ALTRDOFF
|
2014-05-06 01:19:51 +00:00
|
|
|
LDY #$00
|
|
|
|
STA (TMP),Y
|
2014-05-23 20:37:28 +00:00
|
|
|
STA ALTRDON
|
2014-05-06 01:19:51 +00:00
|
|
|
INX
|
|
|
|
INX
|
|
|
|
LDY IPY
|
2014-06-16 06:07:54 +00:00
|
|
|
JMP NEXTOP
|
2014-05-06 01:19:51 +00:00
|
|
|
SWX LDA ESTKL+1,X
|
|
|
|
STA TMPL
|
|
|
|
LDA ESTKH+1,X
|
|
|
|
STA TMPH
|
|
|
|
STY IPY
|
2014-05-06 16:43:14 +00:00
|
|
|
STA ALTRDOFF
|
2014-05-06 01:19:51 +00:00
|
|
|
LDY #$00
|
|
|
|
LDA ESTKL,X
|
|
|
|
STA (TMP),Y
|
|
|
|
INY
|
|
|
|
LDA ESTKH,X
|
|
|
|
STA (TMP),Y
|
2014-05-23 20:37:28 +00:00
|
|
|
STA ALTRDON
|
2014-05-06 01:19:51 +00:00
|
|
|
INX
|
|
|
|
INX
|
|
|
|
LDY IPY
|
2014-06-16 06:07:54 +00:00
|
|
|
JMP NEXTOP
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
|
|
|
;* STORE VALUE TO LOCAL FRAME OFFSET
|
|
|
|
;*
|
2014-05-06 16:43:14 +00:00
|
|
|
SLB +INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
|
|
|
STY IPY
|
|
|
|
TAY
|
|
|
|
LDA ESTKL,X
|
|
|
|
STA (IFP),Y
|
|
|
|
INX
|
|
|
|
LDY IPY
|
|
|
|
JMP NEXTOP
|
2014-05-06 16:43:14 +00:00
|
|
|
SLW +INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
|
|
|
STY IPY
|
2014-05-04 23:15:45 +00:00
|
|
|
TAY
|
|
|
|
LDA ESTKL,X
|
2014-05-06 16:43:14 +00:00
|
|
|
STA (IFP),Y
|
2014-05-06 01:19:51 +00:00
|
|
|
INY
|
|
|
|
LDA ESTKH,X
|
2014-05-06 16:43:14 +00:00
|
|
|
STA (IFP),Y
|
2014-05-04 23:15:45 +00:00
|
|
|
INX
|
2014-05-06 01:19:51 +00:00
|
|
|
LDY IPY
|
|
|
|
JMP NEXTOP
|
|
|
|
;
|
2014-05-06 16:43:14 +00:00
|
|
|
SLBX +INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
|
|
|
STY IPY
|
2014-05-06 16:43:14 +00:00
|
|
|
STA ALTRDOFF
|
2014-05-06 01:19:51 +00:00
|
|
|
TAY
|
|
|
|
LDA ESTKL,X
|
|
|
|
STA (IFP),Y
|
2014-05-23 20:37:28 +00:00
|
|
|
STA ALTRDON
|
2014-05-06 01:19:51 +00:00
|
|
|
INX
|
|
|
|
LDY IPY
|
2014-06-16 06:07:54 +00:00
|
|
|
JMP NEXTOP
|
2014-05-06 16:43:14 +00:00
|
|
|
SLWX +INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
|
|
|
STY IPY
|
2014-05-06 16:43:14 +00:00
|
|
|
STA ALTRDOFF
|
2014-05-04 23:15:45 +00:00
|
|
|
TAY
|
|
|
|
LDA ESTKL,X
|
2014-05-06 16:43:14 +00:00
|
|
|
STA (IFP),Y
|
2014-05-04 23:15:45 +00:00
|
|
|
INY
|
|
|
|
LDA ESTKH,X
|
2014-05-06 16:43:14 +00:00
|
|
|
STA (IFP),Y
|
2014-05-23 20:37:28 +00:00
|
|
|
STA ALTRDON
|
2014-05-04 23:15:45 +00:00
|
|
|
INX
|
2014-05-06 01:19:51 +00:00
|
|
|
LDY IPY
|
2014-06-16 06:07:54 +00:00
|
|
|
JMP NEXTOP
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
|
|
|
;* STORE VALUE TO LOCAL FRAME OFFSET WITHOUT POPPING STACK
|
|
|
|
;*
|
2014-05-06 16:43:14 +00:00
|
|
|
DLB +INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
|
|
|
STY IPY
|
2014-05-04 23:15:45 +00:00
|
|
|
TAY
|
|
|
|
LDA ESTKL,X
|
2014-05-06 01:19:51 +00:00
|
|
|
STA (IFP),Y
|
|
|
|
LDY IPY
|
|
|
|
JMP NEXTOP
|
2014-05-06 16:43:14 +00:00
|
|
|
DLW +INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
|
|
|
STY IPY
|
2014-05-04 23:15:45 +00:00
|
|
|
TAY
|
|
|
|
LDA ESTKL,X
|
2014-05-06 01:19:51 +00:00
|
|
|
STA (IFP),Y
|
2014-05-04 23:15:45 +00:00
|
|
|
INY
|
|
|
|
LDA ESTKH,X
|
2014-05-06 01:19:51 +00:00
|
|
|
STA (IFP),Y
|
|
|
|
LDY IPY
|
|
|
|
JMP NEXTOP
|
|
|
|
;
|
2014-05-06 16:43:14 +00:00
|
|
|
DLBX +INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
|
|
|
STY IPY
|
2014-05-18 02:46:17 +00:00
|
|
|
STA ALTRDOFF
|
2014-05-06 01:19:51 +00:00
|
|
|
TAY
|
|
|
|
LDA ESTKL,X
|
|
|
|
STA (IFP),Y
|
2014-05-23 20:37:28 +00:00
|
|
|
STA ALTRDON
|
2014-05-06 01:19:51 +00:00
|
|
|
LDY IPY
|
2014-06-16 06:07:54 +00:00
|
|
|
JMP NEXTOP
|
2014-05-06 16:43:14 +00:00
|
|
|
DLWX +INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
|
|
|
STY IPY
|
2014-05-06 16:43:14 +00:00
|
|
|
STA ALTRDOFF
|
2014-05-06 01:19:51 +00:00
|
|
|
TAY
|
|
|
|
LDA ESTKL,X
|
|
|
|
STA (IFP),Y
|
|
|
|
INY
|
|
|
|
LDA ESTKH,X
|
|
|
|
STA (IFP),Y
|
2014-05-23 20:37:28 +00:00
|
|
|
STA ALTRDON
|
2014-05-06 01:19:51 +00:00
|
|
|
LDY IPY
|
2014-06-16 06:07:54 +00:00
|
|
|
JMP NEXTOP
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
|
|
|
;* STORE VALUE TO ABSOLUTE ADDRESS
|
|
|
|
;*
|
2014-05-06 16:43:14 +00:00
|
|
|
SAB +INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
2014-05-04 23:15:45 +00:00
|
|
|
STA TMPL
|
2014-05-06 16:43:14 +00:00
|
|
|
+INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
2014-05-04 23:15:45 +00:00
|
|
|
STA TMPH
|
|
|
|
LDA ESTKL,X
|
2014-05-06 01:19:51 +00:00
|
|
|
STY IPY
|
|
|
|
LDY #$00
|
|
|
|
STA (TMP),Y
|
2014-05-04 23:15:45 +00:00
|
|
|
INX
|
2014-05-06 01:19:51 +00:00
|
|
|
LDY IPY
|
|
|
|
JMP NEXTOP
|
2014-05-06 16:43:14 +00:00
|
|
|
SAW +INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
2014-05-04 23:15:45 +00:00
|
|
|
STA TMPL
|
2014-05-06 16:43:14 +00:00
|
|
|
+INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
2014-05-04 23:15:45 +00:00
|
|
|
STA TMPH
|
2014-05-06 01:19:51 +00:00
|
|
|
STY IPY
|
|
|
|
LDY #$00
|
2014-05-04 23:15:45 +00:00
|
|
|
LDA ESTKL,X
|
2014-05-06 01:19:51 +00:00
|
|
|
STA (TMP),Y
|
|
|
|
INY
|
2014-05-04 23:15:45 +00:00
|
|
|
LDA ESTKH,X
|
2014-05-06 01:19:51 +00:00
|
|
|
STA (TMP),Y
|
2014-05-04 23:15:45 +00:00
|
|
|
INX
|
2014-05-06 01:19:51 +00:00
|
|
|
LDY IPY
|
|
|
|
JMP NEXTOP
|
|
|
|
;
|
2014-05-06 16:43:14 +00:00
|
|
|
SABX +INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
|
|
|
STA TMPL
|
2014-05-06 16:43:14 +00:00
|
|
|
+INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
|
|
|
STA TMPH
|
|
|
|
LDA ESTKL,X
|
|
|
|
STY IPY
|
2014-05-06 16:43:14 +00:00
|
|
|
STA ALTRDOFF
|
2014-05-06 01:19:51 +00:00
|
|
|
LDY #$00
|
|
|
|
STA (TMP),Y
|
2014-05-23 20:37:28 +00:00
|
|
|
STA ALTRDON
|
2014-05-06 01:19:51 +00:00
|
|
|
INX
|
|
|
|
LDY IPY
|
2014-06-16 06:07:54 +00:00
|
|
|
JMP NEXTOP
|
2014-05-06 16:43:14 +00:00
|
|
|
SAWX +INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
|
|
|
STA TMPL
|
2014-05-06 16:43:14 +00:00
|
|
|
+INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
|
|
|
STA TMPH
|
|
|
|
STY IPY
|
2014-05-06 16:43:14 +00:00
|
|
|
STA ALTRDOFF
|
2014-05-06 01:19:51 +00:00
|
|
|
LDY #$00
|
|
|
|
LDA ESTKL,X
|
|
|
|
STA (TMP),Y
|
|
|
|
INY
|
|
|
|
LDA ESTKH,X
|
|
|
|
STA (TMP),Y
|
2014-05-23 20:37:28 +00:00
|
|
|
STA ALTRDON
|
2014-05-06 01:19:51 +00:00
|
|
|
INX
|
|
|
|
LDY IPY
|
2014-06-16 06:07:54 +00:00
|
|
|
JMP NEXTOP
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
|
|
|
;* STORE VALUE TO ABSOLUTE ADDRESS WITHOUT POPPING STACK
|
|
|
|
;*
|
2014-05-06 16:43:14 +00:00
|
|
|
DAB +INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
2014-05-04 23:15:45 +00:00
|
|
|
STA TMPL
|
2014-05-06 16:43:14 +00:00
|
|
|
+INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
2014-05-04 23:15:45 +00:00
|
|
|
STA TMPH
|
2014-05-06 01:19:51 +00:00
|
|
|
STY IPY
|
|
|
|
LDY #$00
|
2014-05-04 23:15:45 +00:00
|
|
|
LDA ESTKL,X
|
2014-05-06 01:19:51 +00:00
|
|
|
STA (TMP),Y
|
|
|
|
LDY IPY
|
|
|
|
JMP NEXTOP
|
2014-05-06 16:43:14 +00:00
|
|
|
DAW +INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
2014-05-04 23:15:45 +00:00
|
|
|
STA TMPL
|
2014-05-06 16:43:14 +00:00
|
|
|
+INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
2014-05-04 23:15:45 +00:00
|
|
|
STA TMPH
|
2014-05-06 01:19:51 +00:00
|
|
|
STY IPY
|
|
|
|
LDY #$00
|
2014-05-04 23:15:45 +00:00
|
|
|
LDA ESTKL,X
|
2014-05-06 01:19:51 +00:00
|
|
|
STA (TMP),Y
|
|
|
|
INY
|
2014-05-04 23:15:45 +00:00
|
|
|
LDA ESTKH,X
|
2014-05-06 01:19:51 +00:00
|
|
|
STA (TMP),Y
|
|
|
|
LDY IPY
|
|
|
|
JMP NEXTOP
|
|
|
|
;
|
2014-05-06 16:43:14 +00:00
|
|
|
DABX +INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
|
|
|
STA TMPL
|
2014-05-06 16:43:14 +00:00
|
|
|
+INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
|
|
|
STA TMPH
|
|
|
|
STY IPY
|
2014-05-06 16:43:14 +00:00
|
|
|
STA ALTRDOFF
|
2014-05-06 01:19:51 +00:00
|
|
|
LDY #$00
|
|
|
|
LDA ESTKL,X
|
|
|
|
STA (TMP),Y
|
2014-05-23 20:37:28 +00:00
|
|
|
STA ALTRDON
|
2014-05-06 01:19:51 +00:00
|
|
|
LDY IPY
|
2014-06-16 06:07:54 +00:00
|
|
|
JMP NEXTOP
|
2014-05-06 16:43:14 +00:00
|
|
|
DAWX +INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
|
|
|
STA TMPL
|
2014-05-06 16:43:14 +00:00
|
|
|
+INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
|
|
|
STA TMPH
|
|
|
|
STY IPY
|
2014-05-06 16:43:14 +00:00
|
|
|
STA ALTRDOFF
|
2014-05-06 01:19:51 +00:00
|
|
|
LDY #$00
|
|
|
|
LDA ESTKL,X
|
|
|
|
STA (TMP),Y
|
|
|
|
INY
|
|
|
|
LDA ESTKH,X
|
|
|
|
STA (TMP),Y
|
2014-05-23 20:37:28 +00:00
|
|
|
STA ALTRDON
|
2014-05-06 01:19:51 +00:00
|
|
|
LDY IPY
|
2014-06-16 06:07:54 +00:00
|
|
|
JMP NEXTOP
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
|
|
|
;* COMPARES
|
|
|
|
;*
|
2014-06-24 01:55:52 +00:00
|
|
|
ISEQ LDA ESTKL,X
|
2014-05-04 23:15:45 +00:00
|
|
|
CMP ESTKL+1,X
|
2014-06-24 01:55:52 +00:00
|
|
|
BNE ISFLS
|
2014-05-04 23:15:45 +00:00
|
|
|
LDA ESTKH,X
|
|
|
|
CMP ESTKH+1,X
|
2014-06-24 01:55:52 +00:00
|
|
|
BNE ISFLS
|
|
|
|
ISTRU LDA #$FF
|
2014-05-04 23:15:45 +00:00
|
|
|
INX
|
2014-06-24 01:55:52 +00:00
|
|
|
STA ESTKL,X
|
|
|
|
STA ESTKH,X
|
2014-05-06 01:19:51 +00:00
|
|
|
JMP NEXTOP
|
|
|
|
;
|
2014-06-24 01:55:52 +00:00
|
|
|
ISNE LDA ESTKL,X
|
2014-05-04 23:15:45 +00:00
|
|
|
CMP ESTKL+1,X
|
2014-06-24 01:55:52 +00:00
|
|
|
BNE ISTRU
|
2014-05-04 23:15:45 +00:00
|
|
|
LDA ESTKH,X
|
|
|
|
CMP ESTKH+1,X
|
2014-06-24 01:55:52 +00:00
|
|
|
BNE ISTRU
|
|
|
|
ISFLS LDA #$00
|
2014-05-04 23:15:45 +00:00
|
|
|
INX
|
2014-06-24 01:55:52 +00:00
|
|
|
STA ESTKL,X
|
|
|
|
STA ESTKH,X
|
2014-05-06 01:19:51 +00:00
|
|
|
JMP NEXTOP
|
|
|
|
;
|
2014-06-24 01:55:52 +00:00
|
|
|
ISGE LDA ESTKL+1,X
|
2014-05-04 23:15:45 +00:00
|
|
|
CMP ESTKL,X
|
|
|
|
LDA ESTKH+1,X
|
|
|
|
SBC ESTKH,X
|
|
|
|
BVC ISGE1
|
|
|
|
EOR #$80
|
2014-06-24 01:55:52 +00:00
|
|
|
ISGE1 BPL ISTRU
|
|
|
|
BMI ISFLS
|
2014-05-06 01:19:51 +00:00
|
|
|
;
|
2014-06-24 01:55:52 +00:00
|
|
|
ISGT LDA ESTKL,X
|
2014-05-04 23:15:45 +00:00
|
|
|
CMP ESTKL+1,X
|
|
|
|
LDA ESTKH,X
|
|
|
|
SBC ESTKH+1,X
|
|
|
|
BVC ISGT1
|
|
|
|
EOR #$80
|
2014-06-24 01:55:52 +00:00
|
|
|
ISGT1 BMI ISTRU
|
|
|
|
BPL ISFLS
|
2014-05-06 01:19:51 +00:00
|
|
|
;
|
2014-06-24 01:55:52 +00:00
|
|
|
ISLE LDA ESTKL,X
|
2014-05-04 23:15:45 +00:00
|
|
|
CMP ESTKL+1,X
|
|
|
|
LDA ESTKH,X
|
|
|
|
SBC ESTKH+1,X
|
|
|
|
BVC ISLE1
|
|
|
|
EOR #$80
|
2014-06-24 01:55:52 +00:00
|
|
|
ISLE1 BPL ISTRU
|
|
|
|
BMI ISFLS
|
2014-05-06 01:19:51 +00:00
|
|
|
;
|
2014-06-24 01:55:52 +00:00
|
|
|
ISLT LDA ESTKL+1,X
|
2014-05-04 23:15:45 +00:00
|
|
|
CMP ESTKL,X
|
|
|
|
LDA ESTKH+1,X
|
|
|
|
SBC ESTKH,X
|
|
|
|
BVC ISLT1
|
|
|
|
EOR #$80
|
2014-06-24 01:55:52 +00:00
|
|
|
ISLT1 BMI ISTRU
|
|
|
|
BPL ISFLS
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
2014-05-06 01:19:51 +00:00
|
|
|
;* BRANCHES
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
2014-05-06 01:19:51 +00:00
|
|
|
BRTRU INX
|
2014-05-04 23:15:45 +00:00
|
|
|
LDA ESTKH-1,X
|
|
|
|
ORA ESTKL-1,X
|
2014-05-06 01:19:51 +00:00
|
|
|
BNE BRNCH
|
2014-05-06 16:43:14 +00:00
|
|
|
NOBRNCH +INC_IP
|
|
|
|
+INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
JMP NEXTOP
|
|
|
|
BRFLS INX
|
2014-05-04 23:15:45 +00:00
|
|
|
LDA ESTKH-1,X
|
|
|
|
ORA ESTKL-1,X
|
2014-05-06 01:19:51 +00:00
|
|
|
BNE NOBRNCH
|
2014-05-07 21:25:19 +00:00
|
|
|
BRNCH LDA IPH
|
2014-05-06 01:19:51 +00:00
|
|
|
STA TMPH
|
|
|
|
LDA IPL
|
2014-05-06 16:43:14 +00:00
|
|
|
+INC_IP
|
2014-05-04 23:15:45 +00:00
|
|
|
CLC
|
2014-05-06 01:19:51 +00:00
|
|
|
ADC (IP),Y
|
|
|
|
STA TMPL
|
|
|
|
LDA TMPH
|
2014-05-06 16:43:14 +00:00
|
|
|
+INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
ADC (IP),Y
|
|
|
|
STA IPH
|
|
|
|
LDA TMPL
|
|
|
|
STA IPL
|
2014-05-07 21:25:19 +00:00
|
|
|
DEY
|
|
|
|
DEY
|
|
|
|
JMP NEXTOP
|
2014-05-06 01:19:51 +00:00
|
|
|
BREQ INX
|
2014-05-04 23:15:45 +00:00
|
|
|
LDA ESTKL-1,X
|
|
|
|
CMP ESTKL,X
|
2014-05-06 01:19:51 +00:00
|
|
|
BNE NOBRNCH
|
2014-05-04 23:15:45 +00:00
|
|
|
LDA ESTKL-1,X
|
|
|
|
CMP ESTKL,X
|
2014-05-06 01:19:51 +00:00
|
|
|
BEQ BRNCH
|
|
|
|
BNE NOBRNCH
|
|
|
|
BRNE INX
|
2014-05-04 23:15:45 +00:00
|
|
|
LDA ESTKL-1,X
|
|
|
|
CMP ESTKL,X
|
2014-05-06 01:19:51 +00:00
|
|
|
BNE BRNCH
|
2014-05-04 23:15:45 +00:00
|
|
|
LDA ESTKL-1,X
|
|
|
|
CMP ESTKL,X
|
2014-05-06 01:19:51 +00:00
|
|
|
BEQ NOBRNCH
|
|
|
|
BNE BRNCH
|
|
|
|
BRGT INX
|
2014-05-04 23:15:45 +00:00
|
|
|
LDA ESTKL-1,X
|
|
|
|
CMP ESTKL,X
|
|
|
|
LDA ESTKH-1,X
|
|
|
|
SBC ESTKH,X
|
2014-05-06 01:19:51 +00:00
|
|
|
BMI BRNCH
|
|
|
|
BPL NOBRNCH
|
|
|
|
BRLT INX
|
2014-05-04 23:15:45 +00:00
|
|
|
LDA ESTKL,X
|
|
|
|
CMP ESTKL-1,X
|
|
|
|
LDA ESTKH,X
|
|
|
|
SBC ESTKH-1,X
|
2014-05-06 01:19:51 +00:00
|
|
|
BMI BRNCH
|
|
|
|
BPL NOBRNCH
|
|
|
|
IBRNCH LDA IPL
|
|
|
|
CLC
|
|
|
|
ADC ESTKL,X
|
|
|
|
STA IPL
|
|
|
|
LDA IPH
|
|
|
|
ADC ESTKH,X
|
|
|
|
STA IPH
|
|
|
|
INX
|
2014-05-07 21:25:19 +00:00
|
|
|
JMP NEXTOP
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
|
|
|
;* CALL INTO ABSOLUTE ADDRESS (NATIVE CODE)
|
|
|
|
;*
|
2014-05-06 16:43:14 +00:00
|
|
|
CALL +INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
2014-06-20 16:29:15 +00:00
|
|
|
STA TMPL
|
2014-05-06 16:43:14 +00:00
|
|
|
+INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
2014-06-20 16:29:15 +00:00
|
|
|
STA TMPH
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA IPH
|
2014-05-04 23:15:45 +00:00
|
|
|
PHA
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA IPL
|
|
|
|
PHA
|
|
|
|
TYA
|
2014-05-04 23:15:45 +00:00
|
|
|
PHA
|
2014-06-20 16:29:15 +00:00
|
|
|
JSR JMPTMP
|
2014-05-04 23:15:45 +00:00
|
|
|
PLA
|
2014-05-06 01:19:51 +00:00
|
|
|
TAY
|
|
|
|
PLA
|
|
|
|
STA IPL
|
2014-05-04 23:15:45 +00:00
|
|
|
PLA
|
2014-05-06 01:19:51 +00:00
|
|
|
STA IPH
|
2014-06-16 06:07:54 +00:00
|
|
|
LDA #>OPTBL ; MAKE SURE WE'RE INDEXING THE RIGHT TABLE
|
|
|
|
STA OPPAGE
|
2014-05-06 01:19:51 +00:00
|
|
|
JMP NEXTOP
|
|
|
|
;
|
2014-05-06 16:43:14 +00:00
|
|
|
CALLX +INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
2014-06-20 16:29:15 +00:00
|
|
|
STA TMPL
|
2014-05-06 16:43:14 +00:00
|
|
|
+INC_IP
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA (IP),Y
|
2014-06-20 16:29:15 +00:00
|
|
|
STA TMPH
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA IPH
|
|
|
|
PHA
|
|
|
|
LDA IPL
|
|
|
|
PHA
|
|
|
|
TYA
|
|
|
|
PHA
|
2014-05-23 19:23:51 +00:00
|
|
|
STA ALTRDOFF
|
|
|
|
CLI
|
2014-06-20 16:29:15 +00:00
|
|
|
JSR JMPTMP
|
2014-05-23 20:37:28 +00:00
|
|
|
SEI
|
|
|
|
STA ALTRDON
|
2014-05-06 01:19:51 +00:00
|
|
|
PLA
|
|
|
|
TAY
|
|
|
|
PLA
|
|
|
|
STA IPL
|
|
|
|
PLA
|
|
|
|
STA IPH
|
2014-06-16 06:07:54 +00:00
|
|
|
LDA #>OPXTBL ; MAKE SURE WE'RE INDEXING THE RIGHT TABLE
|
|
|
|
STA OPPAGE
|
|
|
|
JMP NEXTOP
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
|
|
|
;* INDIRECT CALL TO ADDRESS (NATIVE CODE)
|
|
|
|
;*
|
2014-05-06 01:19:51 +00:00
|
|
|
ICAL LDA ESTKL,X
|
2014-06-20 16:29:15 +00:00
|
|
|
STA TMPL
|
2014-05-04 23:15:45 +00:00
|
|
|
LDA ESTKH,X
|
2014-06-20 16:29:15 +00:00
|
|
|
STA TMPH
|
2014-05-04 23:15:45 +00:00
|
|
|
INX
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA IPH
|
|
|
|
PHA
|
|
|
|
LDA IPL
|
|
|
|
PHA
|
|
|
|
TYA
|
2014-05-04 23:15:45 +00:00
|
|
|
PHA
|
2014-06-20 16:29:15 +00:00
|
|
|
JSR JMPTMP
|
2014-05-04 23:15:45 +00:00
|
|
|
PLA
|
2014-05-06 01:19:51 +00:00
|
|
|
TAY
|
|
|
|
PLA
|
|
|
|
STA IPL
|
2014-05-04 23:15:45 +00:00
|
|
|
PLA
|
2014-05-06 01:19:51 +00:00
|
|
|
STA IPH
|
2014-06-16 06:07:54 +00:00
|
|
|
LDA #>OPTBL ; MAKE SURE WE'RE INDEXING THE RIGHT TABLE
|
|
|
|
STA OPPAGE
|
2014-05-06 01:19:51 +00:00
|
|
|
JMP NEXTOP
|
|
|
|
;
|
|
|
|
ICALX LDA ESTKL,X
|
2014-06-20 16:29:15 +00:00
|
|
|
STA TMPL
|
2014-05-06 01:19:51 +00:00
|
|
|
LDA ESTKH,X
|
2014-06-20 16:29:15 +00:00
|
|
|
STA TMPH
|
2014-05-06 01:19:51 +00:00
|
|
|
INX
|
|
|
|
LDA IPH
|
|
|
|
PHA
|
|
|
|
LDA IPL
|
|
|
|
PHA
|
|
|
|
TYA
|
|
|
|
PHA
|
2014-05-06 16:43:14 +00:00
|
|
|
STA ALTRDOFF
|
2014-05-23 19:23:51 +00:00
|
|
|
CLI
|
2014-06-20 16:29:15 +00:00
|
|
|
JSR JMPTMP
|
2014-05-23 20:37:28 +00:00
|
|
|
SEI
|
|
|
|
STA ALTRDON
|
2014-05-06 01:19:51 +00:00
|
|
|
PLA
|
|
|
|
TAY
|
|
|
|
PLA
|
|
|
|
STA IPL
|
|
|
|
PLA
|
|
|
|
STA IPH
|
2014-06-16 06:07:54 +00:00
|
|
|
LDA #>OPXTBL ; MAKE SURE WE'RE INDEXING THE RIGHT TABLE
|
|
|
|
STA OPPAGE
|
|
|
|
JMP NEXTOP
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
2014-06-20 16:29:15 +00:00
|
|
|
;* JUMP INDIRECT TRHOUGH TMP
|
|
|
|
;*
|
|
|
|
JMPTMP JMP (TMP)
|
|
|
|
;*
|
2014-05-04 23:15:45 +00:00
|
|
|
;* ENTER FUNCTION WITH FRAME SIZE AND PARAM COUNT
|
|
|
|
;*
|
2014-11-18 01:57:07 +00:00
|
|
|
ENTER INY
|
|
|
|
LDA (IP),Y
|
|
|
|
PHA ; SAVE ON STACK FOR LEAVE
|
|
|
|
EOR #$FF
|
2014-05-04 23:15:45 +00:00
|
|
|
SEC
|
2014-11-18 01:57:07 +00:00
|
|
|
ADC IFPL
|
2014-05-06 01:19:51 +00:00
|
|
|
STA IFPL
|
2014-11-18 01:57:07 +00:00
|
|
|
BCS +
|
|
|
|
DEC IFPH
|
|
|
|
+ INY
|
2014-06-30 20:46:36 +00:00
|
|
|
LDA (IP),Y
|
2014-05-04 23:15:45 +00:00
|
|
|
ASL
|
|
|
|
TAY
|
2014-11-18 01:57:07 +00:00
|
|
|
BEQ +
|
2014-06-30 20:46:36 +00:00
|
|
|
- LDA ESTKH,X
|
2014-05-04 23:15:45 +00:00
|
|
|
DEY
|
2014-05-06 01:19:51 +00:00
|
|
|
STA (IFP),Y
|
2014-11-18 01:57:07 +00:00
|
|
|
LDA ESTKL,X
|
2014-05-04 23:15:45 +00:00
|
|
|
INX
|
2014-06-30 20:46:36 +00:00
|
|
|
DEY
|
|
|
|
STA (IFP),Y
|
2014-11-18 01:57:07 +00:00
|
|
|
BNE -
|
|
|
|
+ LDY #$02
|
2014-05-06 01:19:51 +00:00
|
|
|
JMP NEXTOP
|
|
|
|
;
|
2014-11-18 01:57:07 +00:00
|
|
|
ENTERX INY
|
|
|
|
LDA (IP),Y
|
|
|
|
PHA ; SAVE ON STACK FOR LEAVEX
|
|
|
|
EOR #$FF
|
2014-05-06 01:19:51 +00:00
|
|
|
SEC
|
2014-11-18 01:57:07 +00:00
|
|
|
ADC IFPL
|
2014-05-06 01:19:51 +00:00
|
|
|
STA IFPL
|
2014-11-18 01:57:07 +00:00
|
|
|
BCS +
|
|
|
|
DEC IFPH
|
|
|
|
+ INY
|
2014-06-30 20:46:36 +00:00
|
|
|
LDA (IP),Y
|
|
|
|
STA ALTRDOFF
|
2014-05-06 01:19:51 +00:00
|
|
|
ASL
|
2014-05-04 23:15:45 +00:00
|
|
|
TAY
|
2014-11-18 01:57:07 +00:00
|
|
|
BEQ +
|
2014-06-30 20:46:36 +00:00
|
|
|
- LDA ESTKH,X
|
2014-05-06 01:19:51 +00:00
|
|
|
DEY
|
|
|
|
STA (IFP),Y
|
2014-11-18 01:57:07 +00:00
|
|
|
LDA ESTKL,X
|
2014-05-04 23:15:45 +00:00
|
|
|
INX
|
2014-06-30 20:46:36 +00:00
|
|
|
DEY
|
|
|
|
STA (IFP),Y
|
2014-11-18 01:57:07 +00:00
|
|
|
BNE -
|
|
|
|
+ STA ALTRDON
|
|
|
|
LDY #$02
|
2014-06-16 06:07:54 +00:00
|
|
|
JMP NEXTOP
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
2014-05-06 01:19:51 +00:00
|
|
|
;* LEAVE FUNCTION
|
2014-05-04 23:15:45 +00:00
|
|
|
;*
|
2014-11-18 01:57:07 +00:00
|
|
|
LEAVE PLA
|
|
|
|
CLC
|
|
|
|
ADC IFPL
|
2014-05-06 01:19:51 +00:00
|
|
|
STA IFPL
|
2014-11-18 01:57:07 +00:00
|
|
|
BCS LIFPH
|
|
|
|
RTS
|
|
|
|
LIFPH INC IFPH
|
2014-05-06 01:19:51 +00:00
|
|
|
RET RTS
|
|
|
|
;
|
2014-05-06 16:43:14 +00:00
|
|
|
LEAVEX STA ALTRDOFF
|
2014-05-23 20:37:28 +00:00
|
|
|
CLI
|
2014-05-04 23:15:45 +00:00
|
|
|
PLA
|
2014-11-18 01:57:07 +00:00
|
|
|
CLC
|
|
|
|
ADC IFPL
|
|
|
|
STA IFPL
|
|
|
|
BCS LIFPH
|
2014-05-06 01:19:51 +00:00
|
|
|
RTS
|
2014-05-06 16:43:14 +00:00
|
|
|
RETX STA ALTRDOFF
|
2014-05-23 19:23:51 +00:00
|
|
|
CLI
|
2014-05-04 23:15:45 +00:00
|
|
|
RTS
|
2014-05-07 02:18:36 +00:00
|
|
|
VMEND = *
|
2014-05-06 01:19:51 +00:00
|
|
|
}
|