( DISASSEMB. 1985,2012 J AT KLASEK.AT ) HEX 0 VARIABLE OPCO -2 ALLOT 000B , 0523 , 0000 , 0000 , 833B , 0323 , 0303 , 8F3D , 0025 , 0123 , 0403 , 0000 , 823B , 0223 , 0203 , 903F , 0C0A , 0623 , 8E23 , 0000 , 833C , 0723 , 0703 , 8F3D , 000E , 0A23 , 8419 , 0000 , 823C , 0923 , 0903 , 903F , 021D , 0502 , 0000 , 0000 , 0307 , 0302 , 0328 , 8F3D , 0027 , 0102 , 0428 , 0000 , 0207 , 0202 , 0228 , 903F , 0C08 , 0602 , 8E02 , 0000 , 8707 , 0702 , 0728 , 8F3D , 002D , 0A02 , 8415 , 0000 , 8907 , 0902 , 0928 , 903F , 002A , 0518 , 0000 , 0000 , 0000 , 0318 , 0321 , 8F3D , 0024 , 0118 , 0421 , 0000 , 021C , 0218 , 0221 , 903F , 0C0C , 0618 , 8E18 , 0000 , 0000 , 0718 , 0721 , 8F3D , 0010 , 0A18 , 8042 , 0000 , 0000 , 0918 , 0921 , 903F , 002B , 0501 , 0000 , 0000 , 8339 , 0301 , 0329 , 8F3D , 0026 , 0101 , 0429 , 0000 , 0B1C , 0201 , 0229 , 903F , 0C0D , 0601 , --> 8E01 , 0000 , 8739 , 0701 , 0729 , 8F3D , 002F , 0A01 , 8041 , 0000 , 8D1C , 0901 , 0929 , 903F , 8C3A , 0530 , 0000 , 0000 , 0332 , 0330 , 0331 , 8F3E , 0017 , 8107 , 0036 , 0000 , 0232 , 0230 , 0231 , 9040 , 0C04 , 0630 , 8E30 , 0000 , 0732 , 0730 , 0831 , 8F3E , 0038 , 0A30 , 0037 , 0000 , 8239 , 0930 , 8939 , 9040 , 0120 , 051E , 011F , 0000 , 0320 , 031E , 031F , 8F3E , 0034 , 011E , 0033 , 0000 , 0220 , 021E , 021F , 9040 , 0C05 , 061E , 8E1E , 0000 , 0720 , 071E , 081F , 8F3E , 0011 , 0A1E , 0035 , 0000 , 0920 , 091E , 0A1F , 9040 , 0114 , 0512 , 0000 , 0000 , 0314 , 0312 , 0315 , 8F3E , 001B , 0112 , 0016 , 8045 , 0214 , 0212 , 0215 , 9040 , 0C09 , 0612 , 8E12 , 0000 , 0000 , 0712 , 0715 , 8F3E , 000F , 0A12 , 8044 , 8046 , 0000 , 0912 , 0915 , 9040 , 0113 , 052C , 0000 , 0000 , 0313 , 032C , 0319 , 8F3E , 001A , 012C , 0022 , 0000 , 0213 , 022C , 0219 , --> ( DISASSEMBLER ) 9040 , 0C06 , 062C , 8E2C , 0 , 0 , 072C , 0719 , 8F3E , 002E , 0A2C , 8043 , 0 , 0 , 092C , 0919 , 9040 , : CHAR -FIND IF DROP DROP THEN HERE C@ DUP HERE DUP 1+ SWAP ROT CMOVE ALLOT ; IMMEDIATE 0 VARIABLE MNO -2 ALLOT CHAR ???ADCANDASLBCCBCSBEQBITBMIBNEBPLB CHAR RKBVCBVSCLCCLDCLICLVCMPCPXCPYDECDE CHAR XDEYEORINCINXINYJMPJSRLDALDXLDYLSR CHAR NOPORAPHAPHPPLAPLPROLRORRTIRTSSBCS CHAR ECSEDSEISTASTXSTYTAXTAYTSXTXATXSTY CHAR ASTZBRATSBTRBRMBSMBBBRBBSPLYPHYPLX CHAR PHXWAISTP CODE ARA 2 X) LDA, 0 ,X CMP, CS IF, 0 ,X LDA, THEN, .A ASL, TAY, 2 ,X LDA, N STA, 3 ,X LDA, N 1+ STA, N INC, 0= IF, N 1+ INC, THEN, INX, INX, N )Y LDA, 0 ,X STA, INY, N )Y LDA, 1 ,X STA, NEXT JMP, FORTH : CASES SWAP ARA EXECUTE ; : .MNO 3 SPACES 3 TYPE SPACE ; --> ( DISASSEMBLER ) DECIMAL : .H2 S->D <# # # #> TYPE ; : .H4 S->D <# # # # # #> TYPE ; 0 VARIABLE DISACPU : DISA6502 0 DISACPU ! ; : DISA65C02 128 DISACPU ! ; 0 VARIABLE PC 1 VARIABLE AU : AU! AU ! ; ( 1 BYTE AND 2 BYTE OPERANDS ) : ADH1 PC @ C@ DUP .H2 2 SPACES SWAP .MNO 1 PC +! ; : ADH2 PC @ DUP C@ .H2 DUP 1+ C@ .H2 SWAP .MNO @ 2 PC +! ; --> ( DISASSEMBLER ) : AD0 4 SPACES .MNO 10 AU! ; : AD1 ADH1 ." #$" .H2 6 AU! ; : AD2 ADH2 36 EMIT .H4 ; : AD3 ADH1 36 EMIT .H2 7 AU! ; : AD4 4 SPACES .MNO 65 EMIT 9 AU! ; : AD5 ADH1 ." ($" .H2 ." ,X)" 3 AU! ; : AD6 ADH1 ." ($" .H2 ." ),Y" 3 AU! ; : AD7 ADH1 ." $" .H2 ." ,X" ; : AD8 ADH1 ." $" .H2 ." ,Y" ; : AD9 ADH2 ." $" .H4 ." ,X" 3 AU! ; : AD10 ADH2 ." $" .H4 ." ,Y" 3 AU! ; : AD11 ADH2 ." ($" .H4 41 EMIT 3 AU! ; : ADBR DUP 127 > IF 255 SWAP - PC @ 1- SWAP - ELSE PC @ + THEN 36 EMIT .H4 ; : AD12 ADH1 ADBR ; : AD13 ADH2 ." ($" .H4 ." ,X)" 1 AU! ; : AD14 ADH1 ." ($" .H2 ." )" ; : AD15 ADH1 PC @ 2- C@ 16 / 7 AND 48 + EMIT ." ,$" .H2 ; : AD16 ADH2 PC @ 3 - C@ 16 / 7 AND 48 + EMIT ." ,$" DUP 255 AND .H2 44 EMIT 256 / ADBR -1 AU! ; --> ( DISASSEMBLER ) HEX : DDMP AU @ 2+ SPACES 12 EMIT DO I C@ 7F AND DUP 20 < IF DROP 2E THEN EMIT LOOP CR 5 AU! ; 11 CASES ADRM AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 AD8 AD9 AD10 AD11 AD12 AD13 AD14 AD15 AD16 0 VARIABLE TOPADR HEX : DISA OVER + TOPADR ! PC ! CR BASE @ >R HEX BEGIN PC @ DUP DUP .H4 C@ DUP 3 SPACES .H2 2* OPCO + DUP C@ SWAP 1+ C@ SWAP 3 * MNO + SWAP 1 PC +! DUP E0 AND DISACPU @ > IF DROP DROP MNO 0 THEN 1F AND ADRM PC @ SWAP DDMP TOPADR @ PC @ U< ?TERMINAL OR UNTIL R> BASE ! SP! QUIT ; : DI 19 DISA ; : CONT 91 EMIT 91 EMIT PC @ DI ;