home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-03-04 | 17.4 KB | 1,215 lines |
- .ORG 60000
- .MEM:.BANK 1
- ; ****** CONSTANT VALUES **********
- LENGTH =22
- CR =29
- CL =CR+128
- CU =17+128
- UPARO =174
- ; ******* POINTERS *********
- BANK =59
- LIM =$1212
- SOB =45
- SOV =$1210
- BAS =251
- CODE =253
- YREG =255
- SYNTPTR =65
- MSGPTR =67
- BEG =71
- EOB =73
- ICRNCH =772
- ; ******* ADDRESSES ********
- IBUFFER =$200
- KGETIN =$FFE4
- KPRINT =$FFD2
- CLR =$51FD
-
- ; ***START OF CODING***
- SEI
- LDY >CATCH
- CPY ICRNCH+1
- BEQ +
-
- LDA #$7E; BANK 1 WITH I/O
- STA $FF00
- LDA $D506
- PHA
- ORA #%0110
- STA $D506; 8K OF SHARED LOW RAM
- LDA ICRNCH+1
- STA CRNCHSRV+1
- LDA ICRNCH
- STA CRNCHSRV
- STY ICRNCH+1
- LDA <CATCH
- STA ICRNCH
- PLA
- STA $D506; RESTORE RAM CONFIGURATION
- STA $FF02; NORMAL BANK 1
-
- + JSR MOVECODE
-
- JSR WRITE
- .ASC "BUD UNASM (C)1986 CHRIS MILLER"
- .BYT 0
- JMP READY
-
- WRITE =*
- LDY #0
- PLA
- STA MSGPTR
- PLA
- STA MSGPTR+1
- MSGLOOP =*
- INC MSGPTR
- BNE +
- INC MSGPTR+1
- + LDA (MSGPTR),Y
- BEQ MSGEND
- JSR PRINT
- BNE MSGLOOP
- MSGEND =*
- LDA MSGPTR+1
- PHA
- LDA MSGPTR
- PHA
- RTS
-
- PRINT =*
- STY YREG
- LDY <KPRINT
- JMP CALLROM
-
- GETIN =*
- STY YREG
- LDY <KGETIN
- JMP CALLROM
-
- UNASSEMBLE =*
- JSR MOVECODE
- JSR WRITE
- .BYT CU,CR,CR
- .ASC "ASSEMBLE FROM $":.BYT 0
- JSR GETRANGE
-
- JSR GETBANK
-
- WHATFORM =*
- JSR GETSTYLE
- ROR STYFLG
-
- JMP START
-
- ; ****START OF INPUT ANDM ADDRESS***
- GETRANGE =*
- JSR READKEY
- LDX #3
- MOV =*
- LDA INPUTK,X
- STA SOURCE,X
- DEX
- BPL MOV
-
- JSR READINP
- LDA END+1
- STA BEG+1
- LDA END
- STA BEG
-
- RANGE =*
- JSR WRITE
- .ASC " TO $":.BYT 0
- JSR READKEY
- JMP READINP
-
- GETBANK =*
- JSR WRITE
- .BYT 13:.ASC "WHICH BANK 0-F?":.BYT 164," ",0
-
- - JSR GETIN
- BEQ -
-
- LDX #15
- - CMP HEX,X
- BEQ +
- DEX
- BPL -
- BMI --
-
- + JSR PRINT
- LDA BANKSETS,X
- STA BANK
- RTS
-
- GETSTYLE =*
- JSR WRITE
- .BYT 13:.ASC "STANDARD FORMAT Y/N?":.BYT 164," ",0
-
- - JSR GETIN
- CMP "N"
- BEQ +
- CMP "Y"
- BNE -
-
- + JSR PRINT
- CMP "Y"
- RTS
-
- ; ******GET HEXADDRESS/INPUT ASCI***
- READKEY =*
- LDA #0
- STA OFFSET
-
- READLOOP =*
- JSR WRITE
- .BYT 164,CL,0
- - JSR GETIN
- LDX #HEXLEN
- HEXCHK =*
- CMP HEX,X
- BEQ DELETE
- DEX
- BPL HEXCHK
- BMI -
-
- DELETE =*
- CMP #20; DEL KEY
- BNE RETURN
- LDX OFFSET
- BEQ -
- JSR PRINT
- DEC OFFSET
- BPL READLOOP
-
- RETURN =*
- CMP #13
- BNE NUMBER
- LDA OFFSET
- CMP #4
- BNE -
- RTS
-
- NUMBER =*
- LDX OFFSET
- CPX #4
- BEQ -
- STA INPUTK,X
- JSR PRINT
- INC OFFSET
- BPL READLOOP
-
- ; START ACTUALLY DOING DISASSEMBLY**
- START =*
- SEI
-
- ; MAINLINE MODULE FOR PROGRAM
- JSR INIT
- JSR PASS1
- JSR INIT
-
- JSR WRITE
- .BYT 13:.ASC "[2]":.BYT 13,0
- JSR PASS2
- JMP READY; RETURN TO BASIC
-
- MOVECODE =*
- LDA #$7E
- STA $FF00; BANK 1 WITH I/O
- LDA $D506
- PHA
- ORA #%0110
- STA $D506
-
- LDX #0
- - LDA HCOD,X
- STA CATCH,X
- INX
- CPX #HBYTS
- BCC -
-
- LDX #0
- - LDA LCOD,X
- STA INIT,X
- INX
- CPX #LBYTS
- BCC -
-
- PLA
- STA $D506
- STA $FF02; BANK 1
- RTS
-
- ; CODE TO RELOCATE
- HCOD =*
- .OFF $1300; FREE RAM
-
- CATCH =*
- LDA IBUFFER
- CMP #"U"
- BNE +
- LDA IBUFFER+1
- CMP #"N"
- BNE +
-
- LDX #0
- - LDA INVOK,X
- STA CALLUNASM,X
- INX
- CPX #UNLEN
- BCC -
- JMP CALLUNASM
-
- INVOK =*
- SEI
- STA $FF02; BANK 1
- JMP UNASSEMBLE
- UNLEN =*-INVOK
-
- + JMP $00:CRNCHSRV =*-2; SELF MODIFY JUMP
- .OFE
- HBYTS =*-HCOD-2; DONT MOVE JMP DEST
-
- LCOD =*
- .OFF $140
- INIT =*
- STA $FF01
- LDX #1
- - LDA LIM,X
- STA EOB,X
- LDA SOB,X
- STA BAS,X
- LDA BEG,X
- STA CODE,X
- DEX
- BPL -
- STA $FF02
- RTS
-
- READY =*
- LDA #0
- STA $FF00
- CLI
- JSR CLR
- JMP $4003
-
- GETBYTE =*
- LDA BANK
- STA $FF00; USER BANK
- LDA (CODE),Y
- STA $FF02; BANK 1
- RTS
-
- GETSRC =*
- STA $FF01; BANK 0
- LDA (BAS),Y
- STA $FF02; BANK 1
- RTS
-
- PUTBYTE =*
- STA $FF01; BANK 0
- STA (BAS),Y
- STA $FF02; BANK 1
- RTS
-
- CALLROM =*
- STY DEST
- LDY #0
- STY $FF00
- LDY YREG
- CLI
- JSR $FFFF:DEST =*-2
- SEI
- STA $FF02; BANK 1
- RTS
-
- PUTSOV =*
- STA $FF01
- STA SOV
- STX SOV+1
- STA $FF02
- RTS
-
- CALLUNASM =*
- .OFE
- LBYTS =*-LCOD
-
- READINP =*
- LDY #0
- JSR CONVERT
- ASL
- ASL
- ASL
- ASL
- STA END+1
- JSR CONVERT
- ORA END+1
- STA END+1
- JSR CONVERT
- ASL
- ASL
- ASL
- ASL
- STA END
- JSR CONVERT
- ORA END
- STA END
- RTS
-
- CONVERT =*
- LDA INPUTK,Y
- INY
- SEC
- SBC #48
- CMP #10
- BCC +
- SBC #7
- + RTS
- ; *****WORK IN BASIC'S BUFFER NOW***
- PASS1 =*
- JSR GETOP
- LDY #4
- LDA #174; BASIC ^
-
- - JSR PUTBYTE
- LDA #" "
- INY
- CPY #LENGTH-1
- BCC -
- LDA #0
- JSR PUTBYTE
- ; *******SEE IF BYTE NEEDED******
- BIT BYTFLG
- BPL LOCATEM
-
- LDX #0
- LDY #10
-
- A'BYTE =*
- LDA BYTM,X; PUT .BYTE
- JSR PUTBYTE
- INX
- INY
- CPX #6
- BCC A'BYTE
-
- LDA #"$"
- JSR PUTBYTE
- INY
-
- LDA COMMAND
- PHA
- LSR:LSR:LSR:LSR
- TAX
- LDA HEX,X
- JSR PUTBYTE
- INY
-
- PLA
- AND #15
- TAX
- LDA HEX,X
- JSR PUTBYTE
- BNE PUTLNK
-
- ; ***LOCATE ASCI STRING MNEMONIC****
- LOCATEM =*
- LDA LO,X
- STA SYNTPTR
- LDA HI,X
- STA SYNTPTR+1
- LDY #3
- NAMEP =*
- LDA (SYNTPTR),Y
- PHA
- DEY
- BPL NAMEP
- PLA
- STA SYNTPTR
- PLA
- STA SYNTPTR+1
-
- LDY #0;
- PUTNAM =*
- LDA (SYNTPTR),Y
- TAX
- TYA
- CLC
- ADC #10
- TAY
- TXA
- JSR PUTBYTE
- TYA
- SEC
- SBC #9
- TAY
- CPY #3; THREE LETTERS
- BCC PUTNAM
-
- PLA; POINT TO MODE
- STA SYNTPTR
- PLA
- STA SYNTPTR+1
-
- ; *** PUT MODE PARTICULARS IN ******
- LDY #0
- LOOKATMNE =*
- LDA (SYNTPTR),Y
- CMP #"$"
- BNE QUIT
- STY INDEX
- QUIT =*
- CMP #"/"
- BEQ PUTLNK
- TAX
- TYA
- CLC
- ADC #14
- TAY
- TXA
- JSR PUTBYTE
- TYA
- SEC
- SBC #13
- TAY
- BNE LOOKATMNE
-
- ; *****PUT IN LINK************
- PUTLNK =*
- LDY #0
- LDX BAS+1
- LDA #LENGTH
- CLC
- ADC BAS
- BCC +
- INX
- + JSR PUTBYTE
- TXA
- INY
- JSR PUTBYTE; LINK SET
- INX
- CPX EOB+1
- BCC +
- LDA CODE:STA END
- LDA CODE+1:STA END+1
-
- ; *****PUT IN THE LINENUMBER*****
- + LDA CODE;
- STA WHERE
- INY
- JSR PUTBYTE
- LDA CODE+1
- STA WHERE+1
- INY
- JSR PUTBYTE
- BIT STYFLG
- BPL ARGU
-
- LDY #4
- LDA #"$"
- JSR PUTBYTE
- INY
- JSR HEXIT
-
- ; ****PUT IN THE ADDRESS CODE****
- ARGU =*
- LDY #0
- LDA BYTES
- CMP #1
- BEQ NEXTPASS
- CMP #2
- PHP
- PHP
- INY
-
- CNVHEX =*
- JSR GETBYTE
- STA ADDRESS
- AND #15
- TAX
- LDA INDEX
- CLC
- ADC #16; ADDRESS OFFSET
- TAY
- PLP
- BEQ TWOBYTES
- INY
- INY
-
- TWOBYTES =*
- LDA HEX,X
- JSR PUTBYTE
- LDA ADDRESS
- LSR
- LSR
- LSR
- LSR
- TAX
- LDA HEX,X
- DEY
- JSR PUTBYTE
- PLP
- BEQ NEXTPASS
- LDY #2
- LDA #0
- PHP
- PHP
- BEQ CNVHEX
- :
- NEXTPASS =*
- JSR NEWOP
- JMP PASS1
- ; ****UPDATE THE POINTERS***********
- NEWOP =*
- JSR NXTLNK
- LDA CODE+1; EOF TEST
- CMP END+1
- BCC AGAIN
- BNE THROUGH
- LDA CODE
- CMP END
- BCC AGAIN
- ; *******WE ARE FINISHED/CLOSE UP***
- THROUGH =*
- LDY #0
- TYA
- ZEROS3 =*
- JSR PUTBYTE
- INY
- CPY #3
- BNE ZEROS3
- LDA BAS
- LDX BAS+1
- CLC
- ADC #2
- BCC +
- INX
- + JSR PUTSOV
- PLA
- PLA
- RTS
- ; **RESET THE CODE PTR/ DO AGAIN****
- AGAIN =*
- LDY #0
- LDA CODE
- CLC
- ADC BYTES
- BCC *+4
- INC CODE+1
- STA CODE
- RTS
- ; ******BEGIN PASS TWO**************
- PASS2 =*
- JSR GETOP
- BIT STYFLG
- BMI BRTEST
- JSR ISADD; SEE IF LABEL ADDRESS
- ; *******SEE IF BRANCH COMMAND******
- BRTEST =*
- LDA #0
- STA BRAFLG
- LDA COMMAND
- LDX #7
-
- CHKB =*
- CMP BRANCHES,X
- BEQ BRANCH
- DEX
- BPL CHKB
- ; *******RESET THE POINTERS*********
- NEXTOP =*
- JSR NXTLNK
- LDA CODE+1; THE EOF TEST
- CMP END+1
- BCC MORE
- BNE EXIT
- LDA CODE
- CMP END
- BCC MORE
- EXIT =*
- RTS
-
- MORE =*
- LDA CODE
- CLC
- ADC BYTES
- BCC +
- INC CODE+1
- + STA CODE
- JMP PASS2
-
- ; ****BRANCHING COMMAND****
- BRANCH =*
- LDA #$FF
- STA BRAFLG
- LDY #1
- JSR GETBYTE
- BPL AHEAD
-
- BACK =*
- EOR #255
- STA OFFSET
- DEC OFFSET
- LDX CODE+1
- LDA CODE
- SEC
- SBC OFFSET
- BCS SHOWWHERE
- DEX
- SHOWWHERE =*
- STX WHERE+1
- STA WHERE
- JSR DOIFIN
- JMP NEXTOP
- ; *******BRANCH IS FORWARD*********
- AHEAD =*
- LDX CODE+1
- STA OFFSET
- CLC
- ADC #2
- ADC CODE
- BCC SHOWWHERE
- INX
- BCS SHOWWHERE
-
- ; *******GET NEW OPERATOR**********
- GETOP =*
- LDY #0
- LDX #0
- STX BYTFLG
- JSR GETBYTE
- STA COMMAND
-
- FINDOPC =*
- CMP OPCOD,X
- BEQ FOUNDOPC
- INX
- CPX #OPCODENUM
- BCC FINDOPC
-
- LDA #$FF
- STA BYTFLG
-
- FOUNDOPC =*
- LDA BYTTAK,X
- STA BYTES
- EXITO =*
- RTS
- ; *****SEE ABOUT ADDRESS LABELS*****
- ISADD =*
- LDY #1
- LDA BYTES
- CMP #3
- BCC EXITO
- JSR GETBYTE
- STA WHERE
- INY
- JSR GETBYTE
- STA WHERE+1
- ; *****SEE IF IN RANGE*************
- DOIFIN =*
- BIT STYFLG
- BPL MYWAY
-
- HEXJUMP =*
- LDY #15
- JMP HEXIT
-
- RETREAT =*
- LDA BASHLD
- STA BAS
- LDA BASHLD+1
- STA BAS+1
-
- BTEST =*
- BIT BRAFLG
- BMI HEXJUMP
- RTS
-
- MYWAY =*
- LDA WHERE+1
- CMP BEG+1
- BCC BTEST
- BEQ BEGQ
- CMP END+1
- BEQ ENDQ
- BCS BTEST
-
- ; *****FIND LINE FOR LABEL*********
- FINDLINE =*
- LDA BAS; *SAVE POINTER*
- STA BASHLD
- LDA BAS+1
- STA BASHLD+1
- LDY SOB+1
- LDX SOB
- STX BAS
- STY BAS+1
- ; ******FIND THE PAGE**************
- FINDHI =*
- LDY #3
- JSR GETSRC
- CMP WHERE+1
- BEQ FINDLO
- BCS RETREAT
- JSR NXTLNK
- JMP FINDHI
- ; ******FIND THE LINE**************
- FINDLO =*
- LDY #2
- JSR GETSRC
- LDY #1
- CMP WHERE
- BEQ HAVELINE
- BCS RETREAT
- JSR NXTLNK
- JMP FINDLO
- ; ******FOUND THE LINE TO LABEL****
- :
- HAVELINE =*
- JMP PUTLABEL
-
- BEGQ =*
- DEY
- LDA WHERE
- CMP BEG
- BCC BTEST
- LDA END+1
- CMP BEG+1
- BNE FINDLINE
-
- ENDQ =*
- LDY #1
- LDA WHERE
- CMP END
- BCC FINDLINE
- BCS BTEST
- ; *******WRITE LABEL TO BUFFER*****
- PUTLABEL =*
- LDY #4
-
- LDA "Z"
- JSR PUTBYTE
- INY
- JSR HEXIT
-
- LDA BASHLD+1
- STA BAS+1
- LDA BASHLD
- STA BAS
-
- LDY #14
- LDA COMMAND
- CMP #$6C; *INDIRECT JUMP*
- BNE +
- INY
- + LDA "Z"
- JSR PUTBYTE
- INY
-
- HEXIT =*
- LDA WHERE+1
- PHA
- LSR:LSR:LSR:LSR
- TAX
- LDA HEX,X
- JSR PUTBYTE
- INY
- PLA
- AND #15
- TAX
- LDA HEX,X
- JSR PUTBYTE
- INY
- LDA WHERE
- PHA
- LSR:LSR:LSR:LSR
- TAX
- LDA HEX,X
- JSR PUTBYTE
- INY
- PLA
- AND #15
- TAX
- LDA HEX,X
- JSR PUTBYTE
- RTS
-
- NXTLNK =*
- LDY #0
- JSR GETSRC
- TAX
- INY
- JSR GETSRC
- STA BAS+1
- STX BAS
- RTS
-
- OPCOD =*; ************OPCODES*******
- .BYTE $69,$65,$75,$6D,$7D,$79,$61,$71; ADC
- .BYTE $29,$25,$35,$2D,$3D,$39,$21,$31; AND
- .BYTE $0A,$06,$16,$0E,$1E; ASL
- .BYTE $90,$B0,$F0,$24,$2C,$30,$D0,$10,$00; BCC-BCS-BEQ-BIT-BMI-BNE-BPL-BRK
- .BYTE $50,$70,$18,$D8,$58,$B8; BVC-BVS-CLC-CLD-CLI-CLV
- .BYTE $C9,$C5,$D5,$CD,$DD,$D9,$C1,$D1; CMP
- .BYTE $E0,$E4,$EC,$C0,$C4,$CC; CPX-CPY
- .BYTE $C6,$D6,$CE,$DE,$CA,$88; DEC-DEX-DEY
- .BYTE $49,$45,$55,$4D,$5D,$59,$41,$51; EOR
- .BYTE $E6,$F6,$EE,$FE,$E8,$C8; INC-INX-INY
- .BYTE $4C,$6C,$20; JMP-JSR
- .BYTE $A9,$A5,$B5,$AD,$BD,$B9,$A1,$B1; LDA
- .BYTE $A2,$A6,$B6,$AE,$BE; LDX
- .BYTE $A0,$A4,$B4,$AC,$BC; LDY
- .BYTE $4A,$46,$56,$4E,$5E,$EA; LSR-NOP
- .BYTE $09,$05,$15,$0D,$1D,$19,$01,$11; ORA
- .BYTE $48,$08,$68,$28; PHA-PHP-PLA-PLP
- .BYTE $2A,$26,$36,$2E,$3E; ROL
- .BYTE $6A,$66,$76,$6E,$7E; ROR
- .BYTE $40,$60; RTI-RTS
- .BYTE $E9,$E5,$F5,$ED,$FD,$F9,$E1,$F1; SBC
- .BYTE $38,$F8,$78; SEC-SED-SEI
- .BYTE $85,$95,$8D,$9D,$99,$81,$91; STA
- .BYTE $86,$96,$8E,$84,$94,$8C; STX-STY
- .BYTE $AA,$A8,$BA,$8A,$9A,$98; TAX-TAY-TSX-TXA-TXS-TYA
- OPCODENUM =*-OPCOD
-
- ; ***LOW BYTE OF COMMAAND POINTER***
- LO =*
- .BYTE <ADC1,ADC2,ADC3,ADC4,ADC5,ADC6,ADC7,ADC8
- .BYTE <AND1,AND2,AND3,AND4,AND5,AND6,AND7,AND8
- .BYTE <ASL1,ASL2,ASL3,ASL4,ASL5
- .BYTE <BCC1,BCS1,BEQ1,BIT1,BIT2
- .BYTE <BMI1,BNE1,BPL1,BRK1,BVC1,BVS1
- .BYTE <CLC1,CLD1,CLI1,CLV1
- .BYTE <CMP1,CMP2,CMP3,CMP4,CMP5,CMP6,CMP7,CMP8
- .BYTE <CPX1,CPX2,CPX3,CPY1,CPY2,CPY3
- .BYTE <DEC1,DEC2,DEC3,DEC4,DEX1,DEY1
- .BYTE <EOR1,EOR2,EOR3,EOR4,EOR5,EOR6,EOR7,EOR8
- .BYTE <INC1,INC2,INC3,INC4
- .BYTE <INX1,INY1,JMP1,JMP2,JSR1
- .BYTE <LDA1,LDA2,LDA3,LDA4,LDA5,LDA6,LDA7,LDA8
- .BYTE <LDX1,LDX2,LDX3,LDX4,LDX5
- .BYTE <LDY1,LDY2,LDY3,LDY4,LDY5
- .BYTE <LSR1,LSR2,LSR3,LSR4,LSR5,NOP1
- .BYTE <ORA1,ORA2,ORA3,ORA4,ORA5,ORA6,ORA7,ORA8
- .BYTE <PHA1,PHP1,PLA1,PLP1
- .BYTE <ROL1,ROL2,ROL3,ROL4,ROL5
- .BYTE <ROR1,ROR2,ROR3,ROR4,ROR5,RTI1,RTS1
- .BYTE <SBC1,SBC2,SBC3,SBC4,SBC5,SBC6,SBC7,SBC8
- .BYTE <SEC1,SED1,SEI1
- .BYTE <STA1,STA2,STA3,STA4,STA5,STA6,STA7
- .BYTE <STX1,STX2,STX3,STY1,STY2,STY3
- .BYTE <TAX1,TAY1,TSX1,TXA1,TXS1,TYA1
-
- ; ***HI BYTE OF COMMAND POINTER******
- HI =*
- .BYTE >ADC1,ADC2,ADC3,ADC4,ADC5,ADC6,ADC7,ADC8
- .BYTE >AND1,AND2,AND3,AND4,AND5,AND6,AND7,AND8
- .BYTE >ASL1,ASL2,ASL3,ASL4,ASL5
- .BYTE >BCC1,BCS1,BEQ1,BIT1,BIT2
- .BYTE >BMI1,BNE1,BPL1,BRK1,BVC1,BVS1
- .BYTE >CLC1,CLD1,CLI1,CLV1
- .BYTE >CMP1,CMP2,CMP3,CMP4,CMP5,CMP6,CMP7,CMP8
- .BYTE >CPX1,CPX2,CPX3,CPY1,CPY2,CPY3
- .BYTE >DEC1,DEC2,DEC3,DEC4,DEX1,DEY1
- .BYTE >EOR1,EOR2,EOR3,EOR4,EOR5,EOR6,EOR7,EOR8
- .BYTE >INC1,INC2,INC3,INC4
- .BYTE >INX1,INY1,JMP1,JMP2,JSR1
- .BYTE >LDA1,LDA2,LDA3,LDA4,LDA5,LDA6,LDA7,LDA8
- .BYTE >LDX1,LDX2,LDX3,LDX4,LDX5
- .BYTE >LDY1,LDY2,LDY3,LDY4,LDY5
- .BYTE >LSR1,LSR2,LSR3,LSR4,LSR5,NOP1
- .BYTE >ORA1,ORA2,ORA3,ORA4,ORA5,ORA6,ORA7,ORA8
- .BYTE >PHA1,PHP1,PLA1,PLP1
- .BYTE >ROL1,ROL2,ROL3,ROL4,ROL5
- .BYTE >ROR1,ROR2,ROR3,ROR4,ROR5,RTI1,RTS1
- .BYTE >SBC1,SBC2,SBC3,SBC4,SBC5,SBC6,SBC7,SBC8
- .BYTE >SEC1,SED1,SEI1
- .BYTE >STA1,STA2,STA3,STA4,STA5,STA6,STA7
- .BYTE >STX1,STX2,STX3,STY1,STY2,STY3
- .BYTE >TAX1,TAY1,TSX1,TXA1,TXS1,TYA1
-
- HEX =*
- .ASC "0123456789ABCDEF"
- .BYTE 20,13
- HEXLEN =*-HEX
-
- BANKSETS =*; FOR MMU
- .BYT 63,127,191,255,22,86,150,214,42,106,170,234,6,10,1,0
-
- BYTTAK =*
- .BYTE 2,2,2,3,3,3,2,2
- .BYTE 2,2,2,3,3,3,2,2
- .BYTE 1,2,2,3,3,2,2,2,2,3,2
- .BYTE 2,2,1,2,2,1,1,1,1
- .BYTE 2,2,2,3,3,3,2,2
- .BYTE 2,2,3,2,2,3,2,2,3,3,1,1
- .BYTE 2,2,2,3,3,3,2,2,2,2,3,3
- .BYTE 1,1,3,3,3,2,2,2,3,3,3,2,2
- .BYTE 2,2,2,3,3,2,2,2,3,3
- .BYTE 1,2,2,3,3,1
- .BYTE 2,2,2,3,3,3,2,2
- .BYTE 1,1,1,1,1,2,2,3,3
- .BYTE 1,2,2,3,3,1,1
- .BYTE 2,2,2,3,3,3,2,2
- .BYTE 1,1,1,2,2,3,3,3,2,2
- .BYTE 2,2,3,2,2,3,1,1,1,1,1,1,1
-
- BRANCHES =*
- .BYTE $90,$B0,$F0,$30,$D0,$10,$50,$70
-
- JMPTBL =*
- ADC1 .WORD ADCM,IMD
- ADC2 .WORD ADCM,ZPG
- ADC3 .WORD ADCM,ZPX
- ADC4 .WORD ADCM,ABS
- ADC5 .WORD ADCM,ABX
- ADC6 .WORD ADCM,ABY
- ADC7 .WORD ADCM,IDX
- ADC8 .WORD ADCM,IDY
- AND1 .WORD ANDM,IMD
- AND2 .WORD ANDM,ZPG
- AND3 .WORD ANDM,ZPX
- AND4 .WORD ANDM,ABS
- AND5 .WORD ANDM,ABX
- AND6 .WORD ANDM,ABY
- AND7 .WORD ANDM,IDX
- AND8 .WORD ANDM,IDY
- ASL1 .WORD ASLM,IMP
- ASL2 .WORD ASLM,ZPG
- ASL3 .WORD ASLM,ZPX
- ASL4 .WORD ASLM,ABS
- ASL5 .WORD ASLM,ABX
- BCC1 .WORD BCCM,REL
- BCS1 .WORD BCSM,REL
- BEQ1 .WORD BEQM,REL
- BIT1 .WORD BITM,ZPG
- BIT2 .WORD BITM,ABS
- BMI1 .WORD BMIM,REL
- BNE1 .WORD BNEM,REL
- BPL1 .WORD BPLM,REL
- BRK1 .WORD BRKM,IMP
- BVC1 .WORD BVCM,REL
- BVS1 .WORD BVSM,REL
- CLC1 .WORD CLCM,IMP
- CLD1 .WORD CLDM,IMP
- CLI1 .WORD CLIM,IMP
- CLV1 .WORD CLVM,IMP
- CMP1 .WORD CMPM,IMD
- CMP2 .WORD CMPM,ZPG
- CMP3 .WORD CMPM,ZPX
- CMP4 .WORD CMPM,ABS
- CMP5 .WORD CMPM,ABX
- CMP6 .WORD CMPM,ABY
- CMP7 .WORD CMPM,IDX
- CMP8 .WORD CMPM,IDY
- CPX1 .WORD CPXM,IMD
- CPX2 .WORD CPXM,ZPG
- CPX3 .WORD CPXM,ABS
- CPY1 .WORD CPYM,IMD
- CPY2 .WORD CPYM,ZPG
- CPY3 .WORD CPYM,ABS
- DEC1 .WORD DECM,ZPG
- DEC2 .WORD DECM,ZPX
- DEC3 .WORD DECM,ABS
- DEC4 .WORD DECM,ABX
- DEX1 .WORD DEXM,IMP
- DEY1 .WORD DEYM,IMP
- EOR1 .WORD EORM,IMD
- EOR2 .WORD EORM,ZPG
- EOR3 .WORD EORM,ZPX
- EOR4 .WORD EORM,ABS
- EOR5 .WORD EORM,ABX
- EOR6 .WORD EORM,ABY
- EOR7 .WORD EORM,IDX
- EOR8 .WORD EORM,IDY
- INC1 .WORD INCM,ZPG
- INC2 .WORD INCM,ZPX
- INC3 .WORD INCM,ABS
- INC4 .WORD INCM,ABX
- INX1 .WORD INXM,IMP
- INY1 .WORD INYM,IMP
- JMP1 .WORD JMPM,ABS
- JMP2 .WORD JMPM,IDJ
- JSR1 .WORD JSRM,ABS
- LDA1 .WORD LDAM,IMD
- LDA2 .WORD LDAM,ZPG
- LDA3 .WORD LDAM,ZPX
- LDA4 .WORD LDAM,ABS
- LDA5 .WORD LDAM,ABX
- LDA6 .WORD LDAM,ABY
- LDA7 .WORD LDAM,IDX
- LDA8 .WORD LDAM,IDY
- LDX1 .WORD LDXM,IMD
- LDX2 .WORD LDXM,ZPG
- LDX3 .WORD LDXM,ZPY
- LDX4 .WORD LDXM,ABS
- LDX5 .WORD LDXM,ABY
- LDY1 .WORD LDYM,IMD
- LDY2 .WORD LDYM,ZPG
- LDY3 .WORD LDYM,ZPX
- LDY4 .WORD LDYM,ABS
- LDY5 .WORD LDYM,ABX
- LSR1 .WORD LSRM,IMP
- LSR2 .WORD LSRM,ZPG
- LSR3 .WORD LSRM,ZPX
- LSR4 .WORD LSRM,ABS
- LSR5 .WORD LSRM,ABX
- NOP1 .WORD NOPM,IMP
- ORA1 .WORD ORAM,IMD
- ORA2 .WORD ORAM,ZPG
- ORA3 .WORD ORAM,ZPX
- ORA4 .WORD ORAM,ABS
- ORA5 .WORD ORAM,ABX
- ORA6 .WORD ORAM,ABY
- ORA7 .WORD ORAM,IDX
- ORA8 .WORD ORAM,IDY
- PHA1 .WORD PHAM,IMP
- PHP1 .WORD PHPM,IMP
- PLA1 .WORD PLAM,IMP
- PLP1 .WORD PLPM,IMP
- ROL1 .WORD ROLM,IMP
- ROL2 .WORD ROLM,ZPG
- ROL3 .WORD ROLM,ZPX
- ROL4 .WORD ROLM,ABS
- ROL5 .WORD ROLM,ABX
- ROR1 .WORD RORM,IMP
- ROR2 .WORD RORM,ZPG
- ROR3 .WORD RORM,ZPX
- ROR4 .WORD RORM,ABS
- ROR5 .WORD RORM,ABX
- RTI1 .WORD RTIM,IMP
- RTS1 .WORD RTSM,IMP
- SBC1 .WORD SBCM,IMD
- SBC2 .WORD SBCM,ZPG
- SBC3 .WORD SBCM,ZPX
- SBC4 .WORD SBCM,ABS
- SBC5 .WORD SBCM,ABX
- SBC6 .WORD SBCM,ABY
- SBC7 .WORD SBCM,IDX
- SBC8 .WORD SBCM,IDY
- SEC1 .WORD SECM,IMP
- SED1 .WORD SEDM,IMP
- SEI1 .WORD SEIM,IMP
- STA1 .WORD STAM,ZPG
- STA2 .WORD STAM,ZPX
- STA3 .WORD STAM,ABS
- STA4 .WORD STAM,ABX
- STA5 .WORD STAM,ABY
- STA6 .WORD STAM,IDX
- STA7 .WORD STAM,IDY
- STX1 .WORD STXM,ZPG
- STX2 .WORD STXM,ZPY
- STX3 .WORD STXM,ABS
- STY1 .WORD STYM,ZPG
- STY2 .WORD STYM,ZPX
- STY3 .WORD STYM,ABS
- TAX1 .WORD TAXM,IMP
- TAY1 .WORD TAYM,IMP
- TSX1 .WORD TSXM,IMP
- TXA1 .WORD TXAM,IMP
- TXS1 .WORD TXSM,IMP
- TYA1 .WORD TYAM,IMP
-
- BYTM .ASC ".BYTE "
- ADCM .ASC "ADC"
- ANDM .ASC "AND"
- ASLM .ASC "ASL"
- BCCM .ASC "BCC"
- BCSM .ASC "BCS"
- BEQM .ASC "BEQ"
- BITM .ASC "BIT"
- BMIM .ASC "BMI"
- BNEM .ASC "BNE"
- BPLM .ASC "BPL"
- BRKM .ASC "BRK"
- BVCM .ASC "BVC"
- BVSM .ASC "BVS"
- CLCM .ASC "CLC"
- CLDM .ASC "CLD"
- CLIM .ASC "CLI"
- CLVM .ASC "CLV"
- CMPM .ASC "CMP"
- CPXM .ASC "CPX"
- CPYM .ASC "CPY"
- DECM .ASC "DEC"
- DEXM .ASC "DEX"
- DEYM .ASC "DEY"
- EORM .ASC "EOR"
- INCM .ASC "INC"
- INXM .ASC "INX"
- INYM .ASC "INY"
- JMPM .ASC "JMP"
- JSRM .ASC "JSR"
- LDAM .ASC "LDA"
- LDXM .ASC "LDX"
- LDYM .ASC "LDY"
- LSRM .ASC "LSR"
- NOPM .ASC "NOP"
- ORAM .ASC "ORA"
- PHAM .ASC "PHA"
- PHPM .ASC "PHP"
- PLAM .ASC "PLA"
- PLPM .ASC "PLP"
- ROLM .ASC "ROL"
- RORM .ASC "ROR"
- RTIM .ASC "RTI"
- RTSM .ASC "RTS"
- SBCM .ASC "SBC"
- SECM .ASC "SEC"
- SEDM .ASC "SED"
- SEIM .ASC "SEI"
- STAM .ASC "STA"
- STXM .ASC "STX"
- STYM .ASC "STY"
- TAXM .ASC "TAX"
- TAYM .ASC "TAY"
- TSXM .ASC "TSX"
- TXAM .ASC "TXA"
- TXSM .ASC "TXS"
- TYAM .ASC "TYA"
- IMP .ASC "/"
- ZPG =*
- ABS =*
- REL =*
- .ASC "$/"
- ZPX .ASC "$ ,X/"
- ZPY .ASC "$ ,Y/"
- ABX .ASC "$ ,X/"
- ABY .ASC "$ ,Y/"
- IDX .ASC "($ ,X)/"
- IDY .ASC "($ ),Y/"
- IMD .ASC "#$/"
- IDJ .ASC "($ )/"
- ASK .ASC "+1/"
-
- ; *****VARIABLE TABLE*****
- SOURCE =*; STRING VARS
- .ORG *+4
- INPUTK =*
- .ORG *+4
- BASHLD =*; POINTER VARS
- .ORG *+2
- END =*
- .ORG *+2
- WHERE =*
- .ORG *+2
- FND =*
- .ORG *+2
- OFFSET =*; VARIABLES
- .ORG *+1
- BYTES =*
- .ORG *+1
- INDEX =*
- .ORG *+1
- ADDRESS =*
- .ORG *+1
- COMMAND =*
- .ORG *+1
- STYFLG =*
- .ORG *+1
- BRAFLG =*
- .ORG *+1
- BYTFLG =*
-
-