( 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 <BUILDS 129 MOD DUP 1- C, 0 DO  
  -FIND 0= IF DROP DROP [ ' OK CFA ]    
  LITERAL , ELSE DROP CFA , THEN LOOP   
  DOES> 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 ;