Home » Personal collection » Acorn DFS disks » dfs_box03_disk08b_rq_forth_toolkit.scp » 100-119
100-119
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Personal collection » Acorn DFS disks » dfs_box03_disk08b_rq_forth_toolkit.scp |
Filename: | 100-119 |
Read OK: | ✔ |
File size: | 2800 bytes |
Load address: | 5000 |
Exec address: | 5000 |
Duplicates
There is 1 duplicate copy of this file in the archive:
- Personal collection » Acorn DFS disks » dfs_box03_disk08_rq_forth_toolkit.scp » 100-119
- Personal collection » Acorn DFS disks » dfs_box03_disk08b_rq_forth_toolkit.scp » 100-119
File contents
( Decompilers Load ) decimal 081 084 thru decimal 101 108 thru ( exit ) decimal 109 115 thru decimal 117 119 thru decimal 099 load exit This is the Load Block for TRANS,EXPAND,DECO, RANGE-DECO ( Decompilers 1 1/8 ) hex variable ADDR' variable INDT variable REPT : VAR= ( n __ n f ) dup [ ' addr cfa @ ] literal = ; : USR= ( n __ n f ) dup [ ' s0 cfa @ ] literal = ; : CON= ( n __ n f ) dup [ ' bl cfa @ ] literal = ; : VOC= ( n __ n f ) dup [ ' forth cfa @ ] literal = ; ( Decompilers 1 2/8 ) hex : DO= ( n __ n f ) dup [ ' (do) cfa ] literal = ; : JMP= 0 swap ( n __ n f ) br= or-else 0br= rot or ; : LOO= 0 swap ( n __ n f ) lp= or-else +lp= rot or ; : CEL= 0 swap ( n __ n f ) lit= or-else cmp= rot or ; ( Decompilers 1 3/8 ) hex : IX c/l out @ - spaces ; ( __ ): NL ix cr ; ( __ ): .I nl indt @ spaces ; ( __ ): <I -2 indt +! .i ; ( __ ): I> 2 indt +! ix ; ( __ ): ?I out @ + 2+ c/l ( n __ ) > if .i endif ; : FIND-PFA ( __ c pfa ) -find not ?error" ?" swap ; : NO-CAN-DO ( pfa n __ ) drop nfa id. ." unsuited " ; : ?IMMED ( c __ ) 40 and if 0A ?i ." IMMEDIATE " endif ; ( Decompilers 1 4/8 ) hex : SKIP 2 addr +! ; ( __ ): SKIP-STR ( __ ) addr @ c@ 1+ addr +! ; : PF@ addr @ @ ; ( __ n ): DEST addr @ dup @ + ; ( __ n ): .NAME ( __ ) addr @ 2- @ 2+ nfa dup c@ 1F and over c@ 40 and if A + endif ?i dup c@ 40 and if ." [COMPILE] " endif id. ; : .STR ( __ ) 22 emit space addr @ count type 22 emit space ; ( Decompilers 1 5/8 ) hex : COLON-TRANS ( pfa __ ) dup addr ! ." : " nfa id. begin cr addr @ u. pf@ skip .name cases jmp= :- dest u. skip // loo= :- dest u. skip // lit= :- pf@ u. skip // cmp= :- skip .name // str= :- .str skip-str // endcases end= not while drop repeat drop ; ( Decompilers 1 6/8 ) hex : (TRANS) ( c pfa __ ) cr cr dup cfa @ cases col= :- drop colon-trans // no-can-do endcases ?immed cr cr ; : TRANS ( __ ) find-pfa (trans) ; ( Decompilers 1 7/8 ) hex : COLON-EXP ( pfa __ ) addr ! i> begin pf@ skip .i .name cases jmp= :- skip // loo= :- skip // lit= :- pf@ u. skip // cmp= :- skip .name // str= :- .str skip-str // endcases dup @ col= swap drop if bell key bl = if addr @ over 2+ colon-exp addr ! endif endif end= ?escape or not while drop repeat drop <i ; ( Decompilers 1 8/8 ) hex : (EXPAND) ( c pfa __ ) cr dup cfa @ 3 indt ! cases col= :- drop colon-exp // no-can-do endcases ?immed cr ; : EXPAND ( __ ) find-pfa (expand) ; ( Decompilers 2 1/11 ) hex : RF 0 rept ! ; ( __ ): RT 1 rept ! ; ( __ ) : SHUFFLE ( stack __ stack ) 0 0 >r >r begin dup 4 pick > while rot >r rot >r repeat begin r> r> dup while repeat drop drop ; ( Decompilers 2 2/11 ) hex : "IF" .i ." IF " i> ; : "ELSE" <i ." ELSE " i> ; : "ENDIF" <i ." ENDIF " ix ; : "BEGIN" .i ." BEGIN " i> ; : "WHILE" <i ." WHILE " i> ; : "REPEAT" <i ." REPEAT " ix ; : "UNTIL" <i ." UNTIL " ix ; : "AGAIN" <i ." AGAIN " ix ; : "DO" .i ." DO " i> ; : "LOOP" <i ." LOOP " ix ; : "+LOOP" <i ." +LOOP " ix ; ( Decompilers 2 3/11 ) hex : "IF-ENDIF" "IF" 2 swap shuffle ; : "WHILE-REPEAT" "WHILE" 3 swap 4 - shuffle ; : DO-BRANCH ( stack __ stack ) pf@ 0< if rept @ if rf else "AGAIN" endif else "ELSE" 2 dest shuffle endif ; ( Decompilers 2 4/11 ) hex : DO-FORWARD-0BRANCH ( s __ s ) dest dup 4 - @ br= swap drop if dup 2- @ dup 0< if over + 2- addr @ u< if "WHILE-REPEAT" else "IF-ENDIF" endif else drop drop "IF" endif else "IF-ENDIF" endif ; : DO-0BRANCH ( stack __ stack ) pf@ 0< if "UNTIL" else do-forward-0branch endif ; ( Decompilers 2 5/11 ) hex : INSERT-CONTROLWORD-HERE? begin addr @ over = while drop cases dup 1 = :- "BEGIN" // dup 2 = :- "ENDIF" // dup 3 = :- "REPEAT" rt // endcases drop repeat ; ( Decompilers 2 6/11 ) hex : COLON-PASS-1 ( __ stack ) 7FFF 7FFF begin pf@ skip cases jmp= :- pf@ 0< if >r 1 dest shuffle r> endif skip // loo= :- skip // cel= :- skip // str= :- skip-str // endcases end= not while drop repeat drop ; ( Decompilers 2 7/11 ) hex : COLON-PASS-2 ( stack __ ) begin insert-controlword-here? pf@ skip cases br= :- >r do-branch r> skip // 0br= :- >r do-0branch r> skip // lp= :- "LOOP" skip // +lp= :- "+LOOP" skip // lit= :- 5 ?i pf@ u. skip // --> ( Decompilers 2 8/11 ) cmp= :- .name skip .name // ."= :- .i ." ." .str skip-str // er"= :- .i ." ?ERROR" .str skip-str // exi= :- 2 ?i ." ; " // ;co= :- 6 ?i ." ;CODE " // do= :- "DO" // .name endcases end= not while drop repeat drop drop drop ; ( Decompilers 2 9/11 ) hex : COLON-DECO ( pfa __ ) dup addr ! addr' ! colon-pass-1 addr' @ dup addr ! ." : " nfa id. 3 indt ! .i colon-pass-2 ; ( Decompilers 2 10/11 ) hex : VAR-DECO ( pfa __ ) ." VARIABLE " nfa id. ; : USER-DECO ( pfa __ ) dup @ u. ." USER " nfa id. ; : CONST-DECO ( pfa __ ) dup @ u. ." CONSTANT " nfa id. ; : VOCAB-DECO ( pfa __ ) ." VOCABULARY " nfa id. ; ( Decompilers 2 11/11 ) hex : (DECO) ( c pfa __ ) cr cr dup cfa @ cases col= :- drop colon-deco // var= :- drop var-deco // usr= :- drop user-deco // con= :- drop const-deco // voc= :- drop vocab-deco // no-can-do endcases ?immed cr cr ; : DECO ( __ ) find-pfa (deco) ;
00000000 28 20 44 65 63 6f 6d 70 69 6c 65 72 73 20 20 20 |( Decompilers | 00000010 20 20 20 20 20 20 20 20 20 20 4c 6f 61 64 20 29 | Load )| 00000020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00000040 20 20 64 65 63 69 6d 61 6c 20 20 30 38 31 20 30 | decimal 081 0| 00000050 38 34 20 74 68 72 75 20 20 20 20 20 20 20 20 20 |84 thru | 00000060 20 20 64 65 63 69 6d 61 6c 20 20 31 30 31 20 31 | decimal 101 1| 00000070 30 38 20 74 68 72 75 20 28 20 65 78 69 74 20 29 |08 thru ( exit )| 00000080 20 20 64 65 63 69 6d 61 6c 20 20 31 30 39 20 31 | decimal 109 1| 00000090 31 35 20 74 68 72 75 20 20 20 20 20 20 20 20 20 |15 thru | 000000a0 20 20 64 65 63 69 6d 61 6c 20 20 31 31 37 20 31 | decimal 117 1| 000000b0 31 39 20 74 68 72 75 20 20 20 20 20 20 20 20 20 |19 thru | 000000c0 20 20 64 65 63 69 6d 61 6c 20 20 20 20 20 20 30 | decimal 0| 000000d0 39 39 20 6c 6f 61 64 20 20 20 65 78 69 74 20 20 |99 load exit | 000000e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00000100 20 20 20 20 20 54 68 69 73 20 69 73 20 74 68 65 | This is the| 00000110 20 4c 6f 61 64 20 42 6c 6f 63 6b 20 20 20 20 20 | Load Block | 00000120 20 20 20 20 20 66 6f 72 20 54 52 41 4e 53 2c 45 | for TRANS,E| 00000130 58 50 41 4e 44 2c 44 45 43 4f 2c 20 20 20 20 20 |XPAND,DECO, | 00000140 20 20 20 20 20 52 41 4e 47 45 2d 44 45 43 4f 20 | RANGE-DECO | 00000150 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00000200 28 20 44 65 63 6f 6d 70 69 6c 65 72 73 20 31 20 |( Decompilers 1 | 00000210 20 20 20 20 20 20 20 20 20 20 20 31 2f 38 20 29 | 1/8 )| 00000220 20 20 68 65 78 20 20 20 20 20 20 20 20 20 20 20 | hex | 00000230 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00000240 20 20 76 61 72 69 61 62 6c 65 20 41 44 44 52 27 | variable ADDR'| 00000250 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00000260 20 20 76 61 72 69 61 62 6c 65 20 49 4e 44 54 20 | variable INDT | 00000270 20 20 76 61 72 69 61 62 6c 65 20 52 45 50 54 20 | variable REPT | 00000280 3a 20 56 41 52 3d 20 20 20 20 20 20 20 20 20 20 |: VAR= | 00000290 20 20 20 20 28 20 6e 20 5f 5f 20 6e 20 66 20 29 | ( n __ n f )| 000002a0 20 20 20 20 20 20 20 64 75 70 20 5b 20 27 20 61 | dup [ ' a| 000002b0 64 64 72 20 20 20 20 20 20 63 66 61 20 40 20 5d |ddr cfa @ ]| 000002c0 20 20 20 20 20 20 20 6c 69 74 65 72 61 6c 20 3d | literal =| 000002d0 20 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ; | 000002e0 3a 20 55 53 52 3d 20 20 20 20 20 20 20 20 20 20 |: USR= | 000002f0 20 20 20 20 28 20 6e 20 5f 5f 20 6e 20 66 20 29 | ( n __ n f )| 00000300 20 20 20 20 20 20 20 64 75 70 20 5b 20 27 20 73 | dup [ ' s| 00000310 30 20 20 20 20 20 20 20 20 63 66 61 20 40 20 5d |0 cfa @ ]| 00000320 20 20 20 20 20 20 20 6c 69 74 65 72 61 6c 20 3d | literal =| 00000330 20 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ; | 00000340 3a 20 43 4f 4e 3d 20 20 20 20 20 20 20 20 20 20 |: CON= | 00000350 20 20 20 20 28 20 6e 20 5f 5f 20 6e 20 66 20 29 | ( n __ n f )| 00000360 20 20 20 20 20 20 20 64 75 70 20 5b 20 27 20 62 | dup [ ' b| 00000370 6c 20 20 20 20 20 20 20 20 63 66 61 20 40 20 5d |l cfa @ ]| 00000380 20 20 20 20 20 20 20 6c 69 74 65 72 61 6c 20 3d | literal =| 00000390 20 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ; | 000003a0 3a 20 56 4f 43 3d 20 20 20 20 20 20 20 20 20 20 |: VOC= | 000003b0 20 20 20 20 28 20 6e 20 5f 5f 20 6e 20 66 20 29 | ( n __ n f )| 000003c0 20 20 20 20 20 20 20 64 75 70 20 5b 20 27 20 66 | dup [ ' f| 000003d0 6f 72 74 68 20 20 20 20 20 63 66 61 20 40 20 5d |orth cfa @ ]| 000003e0 20 20 20 20 20 20 20 6c 69 74 65 72 61 6c 20 3d | literal =| 000003f0 20 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ; | 00000400 28 20 44 65 63 6f 6d 70 69 6c 65 72 73 20 31 20 |( Decompilers 1 | 00000410 20 20 20 20 20 20 20 20 20 20 20 32 2f 38 20 29 | 2/8 )| 00000420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00000440 20 20 68 65 78 20 20 20 20 20 20 20 20 20 20 20 | hex | 00000450 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00000480 3a 20 44 4f 3d 20 20 20 20 20 20 20 20 20 20 20 |: DO= | 00000490 20 20 20 20 28 20 6e 20 5f 5f 20 6e 20 66 20 29 | ( n __ n f )| 000004a0 20 20 20 20 20 20 20 64 75 70 20 5b 20 27 20 28 | dup [ ' (| 000004b0 64 6f 29 20 20 20 20 20 20 63 66 61 20 5d 20 20 |do) cfa ] | 000004c0 20 20 20 20 20 20 20 6c 69 74 65 72 61 6c 20 3d | literal =| 000004d0 20 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ; | 000004e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00000500 3a 20 4a 4d 50 3d 20 20 30 20 73 77 61 70 20 20 |: JMP= 0 swap | 00000510 20 20 20 20 28 20 6e 20 5f 5f 20 6e 20 66 20 29 | ( n __ n f )| 00000520 20 20 20 62 72 3d 20 20 6f 72 2d 65 6c 73 65 20 | br= or-else | 00000530 30 62 72 3d 20 72 6f 74 20 6f 72 20 3b 20 20 20 |0br= rot or ; | 00000540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00000560 3a 20 4c 4f 4f 3d 20 20 30 20 73 77 61 70 20 20 |: LOO= 0 swap | 00000570 20 20 20 20 28 20 6e 20 5f 5f 20 6e 20 66 20 29 | ( n __ n f )| 00000580 20 20 20 6c 70 3d 20 20 6f 72 2d 65 6c 73 65 20 | lp= or-else | 00000590 2b 6c 70 3d 20 72 6f 74 20 6f 72 20 3b 20 20 20 |+lp= rot or ; | 000005a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 000005c0 3a 20 43 45 4c 3d 20 20 30 20 73 77 61 70 20 20 |: CEL= 0 swap | 000005d0 20 20 20 20 28 20 6e 20 5f 5f 20 6e 20 66 20 29 | ( n __ n f )| 000005e0 20 20 20 6c 69 74 3d 20 6f 72 2d 65 6c 73 65 20 | lit= or-else | 000005f0 20 63 6d 70 3d 20 72 6f 74 20 6f 72 20 3b 20 20 | cmp= rot or ; | 00000600 28 20 44 65 63 6f 6d 70 69 6c 65 72 73 20 31 20 |( Decompilers 1 | 00000610 20 20 20 20 20 20 20 20 20 20 20 33 2f 38 20 29 | 3/8 )| 00000620 20 20 68 65 78 20 20 20 20 20 20 20 20 20 20 20 | hex | 00000630 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00000640 3a 20 49 58 20 63 2f 6c 20 6f 75 74 20 40 20 2d |: IX c/l out @ -| 00000650 20 73 70 61 63 65 73 20 3b 20 28 20 5f 5f 20 29 | spaces ; ( __ )| 00000660 3a 20 4e 4c 20 20 69 78 20 63 72 20 3b 20 20 20 |: NL ix cr ; | 00000670 20 20 20 20 20 20 20 20 20 20 28 20 5f 5f 20 29 | ( __ )| 00000680 3a 20 2e 49 20 20 6e 6c 20 69 6e 64 74 20 40 20 |: .I nl indt @ | 00000690 73 70 61 63 65 73 20 3b 20 20 28 20 5f 5f 20 29 |spaces ; ( __ )| 000006a0 3a 20 3c 49 20 20 2d 32 20 69 6e 64 74 20 2b 21 |: <I -2 indt +!| 000006b0 20 2e 69 20 3b 20 20 20 20 20 28 20 5f 5f 20 29 | .i ; ( __ )| 000006c0 3a 20 49 3e 20 20 20 32 20 69 6e 64 74 20 2b 21 |: I> 2 indt +!| 000006d0 20 69 78 20 3b 20 20 20 20 20 28 20 5f 5f 20 29 | ix ; ( __ )| 000006e0 3a 20 3f 49 20 20 6f 75 74 20 40 20 2b 20 32 2b |: ?I out @ + 2+| 000006f0 20 63 2f 6c 20 20 20 20 28 20 6e 20 5f 5f 20 29 | c/l ( n __ )| 00000700 20 20 20 20 20 20 3e 20 69 66 20 2e 69 20 65 6e | > if .i en| 00000710 64 69 66 20 3b 20 20 20 20 20 20 20 20 20 20 20 |dif ; | 00000720 3a 20 46 49 4e 44 2d 50 46 41 20 20 20 20 20 20 |: FIND-PFA | 00000730 20 20 20 20 28 20 5f 5f 20 63 20 70 66 61 20 29 | ( __ c pfa )| 00000740 20 20 20 2d 66 69 6e 64 20 6e 6f 74 20 3f 65 72 | -find not ?er| 00000750 72 6f 72 22 20 3f 22 20 73 77 61 70 20 3b 20 20 |ror" ?" swap ; | 00000760 3a 20 4e 4f 2d 43 41 4e 2d 44 4f 20 20 20 20 20 |: NO-CAN-DO | 00000770 20 20 20 20 28 20 70 66 61 20 6e 20 5f 5f 20 29 | ( pfa n __ )| 00000780 20 20 20 64 72 6f 70 20 6e 66 61 20 69 64 2e 20 | drop nfa id. | 00000790 2e 22 20 75 6e 73 75 69 74 65 64 20 22 20 3b 20 |." unsuited " ; | 000007a0 3a 20 3f 49 4d 4d 45 44 20 20 20 20 20 20 20 20 |: ?IMMED | 000007b0 20 20 20 20 20 20 20 20 28 20 63 20 5f 5f 20 29 | ( c __ )| 000007c0 20 20 20 34 30 20 61 6e 64 20 69 66 20 30 41 20 | 40 and if 0A | 000007d0 3f 69 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |?i | 000007e0 20 20 20 2e 22 20 49 4d 4d 45 44 49 41 54 45 20 | ." IMMEDIATE | 000007f0 22 20 65 6e 64 69 66 20 3b 20 20 20 20 20 20 20 |" endif ; | 00000800 28 20 44 65 63 6f 6d 70 69 6c 65 72 73 20 31 20 |( Decompilers 1 | 00000810 20 20 20 20 20 20 20 20 20 20 20 34 2f 38 20 29 | 4/8 )| 00000820 20 20 68 65 78 20 20 20 20 20 20 20 20 20 20 20 | hex | 00000830 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00000840 3a 20 53 4b 49 50 20 32 20 61 64 64 72 20 2b 21 |: SKIP 2 addr +!| 00000850 20 3b 20 20 20 20 20 20 20 20 28 20 5f 5f 20 29 | ; ( __ )| 00000860 3a 20 53 4b 49 50 2d 53 54 52 20 20 20 20 20 20 |: SKIP-STR | 00000870 20 20 20 20 20 20 20 20 20 20 28 20 5f 5f 20 29 | ( __ )| 00000880 20 20 20 20 20 20 20 61 64 64 72 20 40 20 63 40 | addr @ c@| 00000890 20 31 2b 20 61 64 64 72 20 2b 21 20 3b 20 20 20 | 1+ addr +! ; | 000008a0 3a 20 50 46 40 20 20 61 64 64 72 20 40 20 40 20 |: PF@ addr @ @ | 000008b0 3b 20 20 20 20 20 20 20 28 20 5f 5f 20 6e 20 29 |; ( __ n )| 000008c0 3a 20 44 45 53 54 20 61 64 64 72 20 40 20 64 75 |: DEST addr @ du| 000008d0 70 20 40 20 2b 20 3b 20 28 20 5f 5f 20 6e 20 29 |p @ + ; ( __ n )| 000008e0 3a 20 2e 4e 41 4d 45 20 20 20 20 20 20 20 20 20 |: .NAME | 000008f0 20 20 20 20 20 20 20 20 20 20 28 20 5f 5f 20 29 | ( __ )| 00000900 20 20 20 61 64 64 72 20 40 20 32 2d 20 40 20 32 | addr @ 2- @ 2| 00000910 2b 20 6e 66 61 20 64 75 70 20 20 20 20 20 20 20 |+ nfa dup | 00000920 20 20 20 63 40 20 31 46 20 61 6e 64 20 6f 76 65 | c@ 1F and ove| 00000930 72 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |r | 00000940 20 20 20 63 40 20 34 30 20 61 6e 64 20 69 66 20 | c@ 40 and if | 00000950 41 20 2b 20 65 6e 64 69 66 20 3f 69 20 64 75 70 |A + endif ?i dup| 00000960 20 20 20 63 40 20 34 30 20 61 6e 64 20 69 66 20 | c@ 40 and if | 00000970 2e 22 20 5b 43 4f 4d 50 49 4c 45 5d 20 22 20 20 |." [COMPILE] " | 00000980 20 20 20 65 6e 64 69 66 20 69 64 2e 20 3b 20 20 | endif id. ; | 00000990 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000009a0 3a 20 2e 53 54 52 20 20 20 20 20 20 20 20 20 20 |: .STR | 000009b0 20 20 20 20 20 20 20 20 20 20 28 20 5f 5f 20 29 | ( __ )| 000009c0 20 20 20 32 32 20 65 6d 69 74 20 73 70 61 63 65 | 22 emit space| 000009d0 20 61 64 64 72 20 40 20 63 6f 75 6e 74 20 20 20 | addr @ count | 000009e0 20 20 20 74 79 70 65 20 32 32 20 65 6d 69 74 20 | type 22 emit | 000009f0 73 70 61 63 65 20 3b 20 20 20 20 20 20 20 20 20 |space ; | 00000a00 28 20 44 65 63 6f 6d 70 69 6c 65 72 73 20 31 20 |( Decompilers 1 | 00000a10 20 20 20 20 20 20 20 20 20 20 20 35 2f 38 20 29 | 5/8 )| 00000a20 20 20 68 65 78 20 20 20 20 20 20 20 20 20 20 20 | hex | 00000a30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00000a60 3a 20 43 4f 4c 4f 4e 2d 54 52 41 4e 53 20 20 20 |: COLON-TRANS | 00000a70 20 20 20 20 20 20 28 20 70 66 61 20 5f 5f 20 29 | ( pfa __ )| 00000a80 20 20 20 64 75 70 20 61 64 64 72 20 21 20 2e 22 | dup addr ! ."| 00000a90 20 20 20 20 3a 20 22 20 6e 66 61 20 69 64 2e 20 | : " nfa id. | 00000aa0 20 20 20 62 65 67 69 6e 20 20 20 20 20 20 20 20 | begin | 00000ab0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00000ac0 20 20 20 20 20 63 72 20 61 64 64 72 20 40 20 75 | cr addr @ u| 00000ad0 2e 20 70 66 40 20 73 6b 69 70 20 2e 6e 61 6d 65 |. pf@ skip .name| 00000ae0 20 20 20 20 20 63 61 73 65 73 20 20 20 20 20 20 | cases | 00000af0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00000b00 20 20 20 20 20 20 20 6a 6d 70 3d 20 3a 2d 20 64 | jmp= :- d| 00000b10 65 73 74 20 75 2e 20 73 6b 69 70 20 20 20 2f 2f |est u. skip //| 00000b20 20 20 20 20 20 20 20 6c 6f 6f 3d 20 3a 2d 20 64 | loo= :- d| 00000b30 65 73 74 20 75 2e 20 73 6b 69 70 20 20 20 2f 2f |est u. skip //| 00000b40 20 20 20 20 20 20 20 6c 69 74 3d 20 3a 2d 20 70 | lit= :- p| 00000b50 66 40 20 75 2e 20 73 6b 69 70 20 20 20 20 2f 2f |f@ u. skip //| 00000b60 20 20 20 20 20 20 20 63 6d 70 3d 20 3a 2d 20 73 | cmp= :- s| 00000b70 6b 69 70 20 2e 6e 61 6d 65 20 20 20 20 20 2f 2f |kip .name //| 00000b80 20 20 20 20 20 20 20 73 74 72 3d 20 3a 2d 20 2e | str= :- .| 00000b90 73 74 72 20 73 6b 69 70 2d 73 74 72 20 20 2f 2f |str skip-str //| 00000ba0 20 20 20 20 20 65 6e 64 63 61 73 65 73 20 20 20 | endcases | 00000bb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00000bc0 20 20 20 20 20 65 6e 64 3d 20 6e 6f 74 20 77 68 | end= not wh| 00000bd0 69 6c 65 20 64 72 6f 70 20 20 20 20 20 20 20 20 |ile drop | 00000be0 20 20 20 72 65 70 65 61 74 20 64 72 6f 70 20 3b | repeat drop ;| 00000bf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00000c00 28 20 44 65 63 6f 6d 70 69 6c 65 72 73 20 31 20 |( Decompilers 1 | 00000c10 20 20 20 20 20 20 20 20 20 20 20 36 2f 38 20 29 | 6/8 )| 00000c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00000c40 20 20 68 65 78 20 20 20 20 20 20 20 20 20 20 20 | hex | 00000c50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00000c80 3a 20 28 54 52 41 4e 53 29 20 20 20 20 20 20 20 |: (TRANS) | 00000c90 20 20 20 20 28 20 63 20 70 66 61 20 5f 5f 20 29 | ( c pfa __ )| 00000ca0 20 20 20 63 72 20 63 72 20 64 75 70 20 63 66 61 | cr cr dup cfa| 00000cb0 20 40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | @ | 00000cc0 20 20 20 63 61 73 65 73 20 20 20 20 20 20 20 20 | cases | 00000cd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00000ce0 20 20 20 20 20 63 6f 6c 3d 20 3a 2d 20 64 72 6f | col= :- dro| 00000cf0 70 20 63 6f 6c 6f 6e 2d 74 72 61 6e 73 20 2f 2f |p colon-trans //| 00000d00 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 6f 2d | no-| 00000d10 63 61 6e 2d 64 6f 20 20 20 20 20 20 20 20 20 20 |can-do | 00000d20 20 20 20 65 6e 64 63 61 73 65 73 20 20 20 20 20 | endcases | 00000d30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00000d40 20 20 20 3f 69 6d 6d 65 64 20 63 72 20 63 72 20 | ?immed cr cr | 00000d50 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |; | 00000d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00000d80 3a 20 54 52 41 4e 53 20 20 20 20 20 20 20 20 20 |: TRANS | 00000d90 20 20 20 20 20 20 20 20 20 20 28 20 5f 5f 20 29 | ( __ )| 00000da0 20 20 20 66 69 6e 64 2d 70 66 61 20 28 74 72 61 | find-pfa (tra| 00000db0 6e 73 29 20 3b 20 20 20 20 20 20 20 20 20 20 20 |ns) ; | 00000dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00000e00 28 20 44 65 63 6f 6d 70 69 6c 65 72 73 20 31 20 |( Decompilers 1 | 00000e10 20 20 20 20 20 20 20 20 20 20 20 37 2f 38 20 29 | 7/8 )| 00000e20 20 20 68 65 78 20 20 20 20 20 20 20 20 20 20 20 | hex | 00000e30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00000e40 3a 20 43 4f 4c 4f 4e 2d 45 58 50 20 20 20 20 20 |: COLON-EXP | 00000e50 20 20 20 20 20 20 28 20 70 66 61 20 5f 5f 20 29 | ( pfa __ )| 00000e60 20 20 20 61 64 64 72 20 21 20 69 3e 20 62 65 67 | addr ! i> beg| 00000e70 69 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |in | 00000e80 20 20 20 20 20 70 66 40 20 73 6b 69 70 20 2e 69 | pf@ skip .i| 00000e90 20 2e 6e 61 6d 65 20 63 61 73 65 73 20 20 20 20 | .name cases | 00000ea0 20 20 20 20 20 20 20 6a 6d 70 3d 20 3a 2d 20 73 | jmp= :- s| 00000eb0 6b 69 70 20 20 20 20 20 20 20 20 20 20 20 2f 2f |kip //| 00000ec0 20 20 20 20 20 20 20 6c 6f 6f 3d 20 3a 2d 20 73 | loo= :- s| 00000ed0 6b 69 70 20 20 20 20 20 20 20 20 20 20 20 2f 2f |kip //| 00000ee0 20 20 20 20 20 20 20 6c 69 74 3d 20 3a 2d 20 70 | lit= :- p| 00000ef0 66 40 20 75 2e 20 73 6b 69 70 20 20 20 20 2f 2f |f@ u. skip //| 00000f00 20 20 20 20 20 20 20 63 6d 70 3d 20 3a 2d 20 73 | cmp= :- s| 00000f10 6b 69 70 20 2e 6e 61 6d 65 20 20 20 20 20 2f 2f |kip .name //| 00000f20 20 20 20 20 20 20 20 73 74 72 3d 20 3a 2d 20 2e | str= :- .| 00000f30 73 74 72 20 73 6b 69 70 2d 73 74 72 20 20 2f 2f |str skip-str //| 00000f40 20 20 20 20 20 65 6e 64 63 61 73 65 73 20 64 75 | endcases du| 00000f50 70 20 40 20 63 6f 6c 3d 20 73 77 61 70 20 20 20 |p @ col= swap | 00000f60 20 20 20 20 20 64 72 6f 70 20 69 66 20 62 65 6c | drop if bel| 00000f70 6c 20 6b 65 79 20 62 6c 20 3d 20 69 66 20 20 20 |l key bl = if | 00000f80 20 20 20 20 20 61 64 64 72 20 40 20 6f 76 65 72 | addr @ over| 00000f90 20 32 2b 20 63 6f 6c 6f 6e 2d 65 78 70 20 20 20 | 2+ colon-exp | 00000fa0 20 20 20 20 20 61 64 64 72 20 21 20 65 6e 64 69 | addr ! endi| 00000fb0 66 20 65 6e 64 69 66 20 20 20 20 20 20 20 20 20 |f endif | 00000fc0 20 20 20 20 20 65 6e 64 3d 20 3f 65 73 63 61 70 | end= ?escap| 00000fd0 65 20 6f 72 20 6e 6f 74 20 77 68 69 6c 65 20 20 |e or not while | 00000fe0 20 20 20 64 72 6f 70 20 72 65 70 65 61 74 20 64 | drop repeat d| 00000ff0 72 6f 70 20 3c 69 20 3b 20 20 20 20 20 20 20 20 |rop <i ; | 00001000 28 20 44 65 63 6f 6d 70 69 6c 65 72 73 20 31 20 |( Decompilers 1 | 00001010 20 20 20 20 20 20 20 20 20 20 20 38 2f 38 20 29 | 8/8 )| 00001020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00001040 20 20 68 65 78 20 20 20 20 20 20 20 20 20 20 20 | hex | 00001050 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00001080 3a 20 28 45 58 50 41 4e 44 29 20 20 20 20 20 20 |: (EXPAND) | 00001090 20 20 20 20 28 20 63 20 70 66 61 20 5f 5f 20 29 | ( c pfa __ )| 000010a0 20 20 20 63 72 20 64 75 70 20 63 66 61 20 40 20 | cr dup cfa @ | 000010b0 20 33 20 69 6e 64 74 20 21 20 20 20 20 20 20 20 | 3 indt ! | 000010c0 20 20 20 63 61 73 65 73 20 20 20 20 20 20 20 20 | cases | 000010d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000010e0 20 20 20 20 20 63 6f 6c 3d 20 3a 2d 20 64 72 6f | col= :- dro| 000010f0 70 20 63 6f 6c 6f 6e 2d 65 78 70 20 20 20 2f 2f |p colon-exp //| 00001100 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 6f 2d | no-| 00001110 63 61 6e 2d 64 6f 20 20 20 20 20 20 20 20 20 20 |can-do | 00001120 20 20 20 65 6e 64 63 61 73 65 73 20 20 20 20 20 | endcases | 00001130 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001140 20 20 20 3f 69 6d 6d 65 64 20 63 72 20 3b 20 20 | ?immed cr ; | 00001150 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00001180 3a 20 45 58 50 41 4e 44 20 20 20 20 20 20 20 20 |: EXPAND | 00001190 20 20 20 20 20 20 20 20 20 20 28 20 5f 5f 20 29 | ( __ )| 000011a0 20 20 20 66 69 6e 64 2d 70 66 61 20 28 65 78 70 | find-pfa (exp| 000011b0 61 6e 64 29 20 3b 20 20 20 20 20 20 20 20 20 20 |and) ; | 000011c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00001200 28 20 44 65 63 6f 6d 70 69 6c 65 72 73 20 32 20 |( Decompilers 2 | 00001210 20 20 20 20 20 20 20 20 20 20 31 2f 31 31 20 29 | 1/11 )| 00001220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00001240 20 20 68 65 78 20 20 20 20 20 20 20 20 20 20 20 | hex | 00001250 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00001280 3a 20 52 46 20 20 30 20 72 65 70 74 20 21 20 3b |: RF 0 rept ! ;| 00001290 20 20 20 20 20 20 20 20 20 20 28 20 5f 5f 20 29 | ( __ )| 000012a0 3a 20 52 54 20 20 31 20 72 65 70 74 20 21 20 3b |: RT 1 rept ! ;| 000012b0 20 20 20 20 20 20 20 20 20 20 28 20 5f 5f 20 29 | ( __ )| 000012c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 000012e0 3a 20 53 48 55 46 46 4c 45 20 20 20 20 20 28 20 |: SHUFFLE ( | 000012f0 73 74 61 63 6b 20 5f 5f 20 73 74 61 63 6b 20 29 |stack __ stack )| 00001300 20 20 20 30 20 30 20 3e 72 20 3e 72 20 62 65 67 | 0 0 >r >r beg| 00001310 69 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |in | 00001320 20 20 20 20 20 64 75 70 20 34 20 70 69 63 6b 20 | dup 4 pick | 00001330 3e 20 77 68 69 6c 65 20 20 20 20 20 20 20 20 20 |> while | 00001340 20 20 20 20 20 72 6f 74 20 3e 72 20 72 6f 74 20 | rot >r rot | 00001350 3e 72 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |>r | 00001360 20 20 20 72 65 70 65 61 74 20 62 65 67 69 6e 20 | repeat begin | 00001370 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001380 20 20 20 20 20 72 3e 20 72 3e 20 64 75 70 20 77 | r> r> dup w| 00001390 68 69 6c 65 20 20 20 20 20 20 20 20 20 20 20 20 |hile | 000013a0 20 20 20 72 65 70 65 61 74 20 64 72 6f 70 20 64 | repeat drop d| 000013b0 72 6f 70 20 3b 20 20 20 20 20 20 20 20 20 20 20 |rop ; | 000013c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00001400 28 20 44 65 63 6f 6d 70 69 6c 65 72 73 20 32 20 |( Decompilers 2 | 00001410 20 20 20 20 20 20 20 20 20 20 32 2f 31 31 20 29 | 2/11 )| 00001420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00001440 20 20 68 65 78 20 20 20 20 20 20 20 20 20 20 20 | hex | 00001450 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00001480 3a 20 22 49 46 22 20 20 20 20 20 2e 69 20 2e 22 |: "IF" .i ."| 00001490 20 49 46 20 22 20 20 20 20 20 69 3e 20 3b 20 20 | IF " i> ; | 000014a0 3a 20 22 45 4c 53 45 22 20 20 20 3c 69 20 2e 22 |: "ELSE" <i ."| 000014b0 20 45 4c 53 45 20 22 20 20 20 69 3e 20 3b 20 20 | ELSE " i> ; | 000014c0 3a 20 22 45 4e 44 49 46 22 20 20 3c 69 20 2e 22 |: "ENDIF" <i ."| 000014d0 20 45 4e 44 49 46 20 22 20 20 69 78 20 3b 20 20 | ENDIF " ix ; | 000014e0 3a 20 22 42 45 47 49 4e 22 20 20 2e 69 20 2e 22 |: "BEGIN" .i ."| 000014f0 20 42 45 47 49 4e 20 22 20 20 69 3e 20 3b 20 20 | BEGIN " i> ; | 00001500 3a 20 22 57 48 49 4c 45 22 20 20 3c 69 20 2e 22 |: "WHILE" <i ."| 00001510 20 57 48 49 4c 45 20 22 20 20 69 3e 20 3b 20 20 | WHILE " i> ; | 00001520 3a 20 22 52 45 50 45 41 54 22 20 3c 69 20 2e 22 |: "REPEAT" <i ."| 00001530 20 52 45 50 45 41 54 20 22 20 69 78 20 3b 20 20 | REPEAT " ix ; | 00001540 3a 20 22 55 4e 54 49 4c 22 20 20 3c 69 20 2e 22 |: "UNTIL" <i ."| 00001550 20 55 4e 54 49 4c 20 22 20 20 69 78 20 3b 20 20 | UNTIL " ix ; | 00001560 3a 20 22 41 47 41 49 4e 22 20 20 3c 69 20 2e 22 |: "AGAIN" <i ."| 00001570 20 41 47 41 49 4e 20 22 20 20 69 78 20 3b 20 20 | AGAIN " ix ; | 00001580 3a 20 22 44 4f 22 20 20 20 20 20 2e 69 20 2e 22 |: "DO" .i ."| 00001590 20 44 4f 20 22 20 20 20 20 20 69 3e 20 3b 20 20 | DO " i> ; | 000015a0 3a 20 22 4c 4f 4f 50 22 20 20 20 3c 69 20 2e 22 |: "LOOP" <i ."| 000015b0 20 4c 4f 4f 50 20 22 20 20 20 69 78 20 3b 20 20 | LOOP " ix ; | 000015c0 3a 20 22 2b 4c 4f 4f 50 22 20 20 3c 69 20 2e 22 |: "+LOOP" <i ."| 000015d0 20 2b 4c 4f 4f 50 20 22 20 20 69 78 20 3b 20 20 | +LOOP " ix ; | 000015e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00001600 28 20 44 65 63 6f 6d 70 69 6c 65 72 73 20 32 20 |( Decompilers 2 | 00001610 20 20 20 20 20 20 20 20 20 20 33 2f 31 31 20 29 | 3/11 )| 00001620 20 20 68 65 78 20 20 20 20 20 20 20 20 20 20 20 | hex | 00001630 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00001660 3a 20 22 49 46 2d 45 4e 44 49 46 22 20 20 20 20 |: "IF-ENDIF" | 00001670 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001680 20 20 20 22 49 46 22 20 32 20 73 77 61 70 20 73 | "IF" 2 swap s| 00001690 68 75 66 66 6c 65 20 3b 20 20 20 20 20 20 20 20 |huffle ; | 000016a0 3a 20 22 57 48 49 4c 45 2d 52 45 50 45 41 54 22 |: "WHILE-REPEAT"| 000016b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000016c0 20 20 20 22 57 48 49 4c 45 22 20 33 20 73 77 61 | "WHILE" 3 swa| 000016d0 70 20 34 20 2d 20 73 68 75 66 66 6c 65 20 3b 20 |p 4 - shuffle ; | 000016e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00001700 3a 20 44 4f 2d 42 52 41 4e 43 48 20 20 20 28 20 |: DO-BRANCH ( | 00001710 73 74 61 63 6b 20 5f 5f 20 73 74 61 63 6b 20 29 |stack __ stack )| 00001720 20 20 20 70 66 40 20 30 3c 20 20 20 20 20 20 20 | pf@ 0< | 00001730 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001740 20 20 20 69 66 20 20 20 20 20 20 20 20 20 20 20 | if | 00001750 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001760 20 20 20 20 20 72 65 70 74 20 40 20 20 20 20 20 | rept @ | 00001770 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001780 20 20 20 20 20 69 66 20 72 66 20 65 6c 73 65 20 | if rf else | 00001790 22 41 47 41 49 4e 22 20 65 6e 64 69 66 20 20 20 |"AGAIN" endif | 000017a0 20 20 20 65 6c 73 65 20 20 20 20 20 20 20 20 20 | else | 000017b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000017c0 20 20 20 20 20 22 45 4c 53 45 22 20 32 20 64 65 | "ELSE" 2 de| 000017d0 73 74 20 73 68 75 66 66 6c 65 20 20 20 20 20 20 |st shuffle | 000017e0 20 20 20 65 6e 64 69 66 20 3b 20 20 20 20 20 20 | endif ; | 000017f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001800 28 20 44 65 63 6f 6d 70 69 6c 65 72 73 20 32 20 |( Decompilers 2 | 00001810 20 20 20 20 20 20 20 20 20 20 34 2f 31 31 20 29 | 4/11 )| 00001820 20 20 68 65 78 20 20 20 20 20 20 20 20 20 20 20 | hex | 00001830 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00001860 3a 20 44 4f 2d 46 4f 52 57 41 52 44 2d 30 42 52 |: DO-FORWARD-0BR| 00001870 41 4e 43 48 20 20 28 20 73 20 5f 5f 20 73 20 29 |ANCH ( s __ s )| 00001880 20 20 20 64 65 73 74 20 64 75 70 20 34 20 2d 20 | dest dup 4 - | 00001890 40 20 62 72 3d 20 73 77 61 70 20 64 72 6f 70 20 |@ br= swap drop | 000018a0 20 20 20 69 66 20 64 75 70 20 32 2d 20 40 20 64 | if dup 2- @ d| 000018b0 75 70 20 30 3c 20 20 20 20 20 20 20 20 20 20 20 |up 0< | 000018c0 20 20 20 20 20 20 69 66 20 20 20 6f 76 65 72 20 | if over | 000018d0 2b 20 32 2d 20 61 64 64 72 20 40 20 75 3c 20 20 |+ 2- addr @ u< | 000018e0 20 20 20 20 20 20 20 20 20 20 20 69 66 20 20 20 | if | 000018f0 22 57 48 49 4c 45 2d 52 45 50 45 41 54 22 20 20 |"WHILE-REPEAT" | 00001900 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 | else | 00001910 22 49 46 2d 45 4e 44 49 46 22 20 20 20 20 20 20 |"IF-ENDIF" | 00001920 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 69 66 | endif| 00001930 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001940 20 20 20 20 20 20 65 6c 73 65 20 64 72 6f 70 20 | else drop | 00001950 64 72 6f 70 20 22 49 46 22 20 65 6e 64 69 66 20 |drop "IF" endif | 00001960 20 20 20 65 6c 73 65 20 22 49 46 2d 45 4e 44 49 | else "IF-ENDI| 00001970 46 22 20 65 6e 64 69 66 20 3b 20 20 20 20 20 20 |F" endif ; | 00001980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 000019a0 3a 20 44 4f 2d 30 42 52 41 4e 43 48 20 20 28 20 |: DO-0BRANCH ( | 000019b0 73 74 61 63 6b 20 5f 5f 20 73 74 61 63 6b 20 29 |stack __ stack )| 000019c0 20 20 20 70 66 40 20 30 3c 20 69 66 20 22 55 4e | pf@ 0< if "UN| 000019d0 54 49 4c 22 20 65 6c 73 65 20 20 20 20 20 20 20 |TIL" else | 000019e0 20 20 20 64 6f 2d 66 6f 72 77 61 72 64 2d 30 62 | do-forward-0b| 000019f0 72 61 6e 63 68 20 65 6e 64 69 66 20 3b 20 20 20 |ranch endif ; | 00001a00 28 20 44 65 63 6f 6d 70 69 6c 65 72 73 20 32 20 |( Decompilers 2 | 00001a10 20 20 20 20 20 20 20 20 20 20 35 2f 31 31 20 29 | 5/11 )| 00001a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00001a40 20 20 68 65 78 20 20 20 20 20 20 20 20 20 20 20 | hex | 00001a50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00001a80 3a 20 49 4e 53 45 52 54 2d 43 4f 4e 54 52 4f 4c |: INSERT-CONTROL| 00001a90 57 4f 52 44 2d 48 45 52 45 3f 20 20 20 20 20 20 |WORD-HERE? | 00001aa0 20 20 20 62 65 67 69 6e 20 20 20 20 20 20 20 20 | begin | 00001ab0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001ac0 20 20 20 20 20 61 64 64 72 20 40 20 6f 76 65 72 | addr @ over| 00001ad0 20 3d 20 77 68 69 6c 65 20 64 72 6f 70 20 20 20 | = while drop | 00001ae0 20 20 20 20 20 63 61 73 65 73 20 20 20 20 20 20 | cases | 00001af0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001b00 20 20 20 20 20 20 20 64 75 70 20 31 20 3d 20 3a | dup 1 = :| 00001b10 2d 20 22 42 45 47 49 4e 22 20 20 20 20 20 2f 2f |- "BEGIN" //| 00001b20 20 20 20 20 20 20 20 64 75 70 20 32 20 3d 20 3a | dup 2 = :| 00001b30 2d 20 22 45 4e 44 49 46 22 20 20 20 20 20 2f 2f |- "ENDIF" //| 00001b40 20 20 20 20 20 20 20 64 75 70 20 33 20 3d 20 3a | dup 3 = :| 00001b50 2d 20 22 52 45 50 45 41 54 22 20 72 74 20 2f 2f |- "REPEAT" rt //| 00001b60 20 20 20 20 20 65 6e 64 63 61 73 65 73 20 64 72 | endcases dr| 00001b70 6f 70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |op | 00001b80 20 20 20 72 65 70 65 61 74 20 3b 20 20 20 20 20 | repeat ; | 00001b90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00001c00 28 20 44 65 63 6f 6d 70 69 6c 65 72 73 20 32 20 |( Decompilers 2 | 00001c10 20 20 20 20 20 20 20 20 20 20 36 2f 31 31 20 29 | 6/11 )| 00001c20 20 20 68 65 78 20 20 20 20 20 20 20 20 20 20 20 | hex | 00001c30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001c40 3a 20 43 4f 4c 4f 4e 2d 50 41 53 53 2d 31 20 20 |: COLON-PASS-1 | 00001c50 20 20 20 20 28 20 5f 5f 20 73 74 61 63 6b 20 29 | ( __ stack )| 00001c60 20 20 20 37 46 46 46 20 37 46 46 46 20 20 20 20 | 7FFF 7FFF | 00001c70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001c80 20 20 20 62 65 67 69 6e 20 20 20 20 20 20 20 20 | begin | 00001c90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001ca0 20 20 20 20 20 70 66 40 20 73 6b 69 70 20 20 20 | pf@ skip | 00001cb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001cc0 20 20 20 20 20 63 61 73 65 73 20 20 20 20 20 20 | cases | 00001cd0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001ce0 20 20 20 20 20 20 20 6a 6d 70 3d 20 3a 2d 20 70 | jmp= :- p| 00001cf0 66 40 20 30 3c 20 69 66 20 20 20 20 20 20 20 20 |f@ 0< if | 00001d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3e | >| 00001d10 72 20 31 20 64 65 73 74 20 73 68 75 66 66 6c 65 |r 1 dest shuffle| 00001d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 | r| 00001d30 3e 20 65 6e 64 69 66 20 73 6b 69 70 20 20 2f 2f |> endif skip //| 00001d40 20 20 20 20 20 20 20 6c 6f 6f 3d 20 3a 2d 20 73 | loo= :- s| 00001d50 6b 69 70 20 20 20 20 20 20 20 20 20 20 20 2f 2f |kip //| 00001d60 20 20 20 20 20 20 20 63 65 6c 3d 20 3a 2d 20 73 | cel= :- s| 00001d70 6b 69 70 20 20 20 20 20 20 20 20 20 20 20 2f 2f |kip //| 00001d80 20 20 20 20 20 20 20 73 74 72 3d 20 3a 2d 20 73 | str= :- s| 00001d90 6b 69 70 2d 73 74 72 20 20 20 20 20 20 20 2f 2f |kip-str //| 00001da0 20 20 20 20 20 65 6e 64 63 61 73 65 73 20 20 20 | endcases | 00001db0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001dc0 20 20 20 20 20 65 6e 64 3d 20 6e 6f 74 20 77 68 | end= not wh| 00001dd0 69 6c 65 20 64 72 6f 70 20 20 20 20 20 20 20 20 |ile drop | 00001de0 20 20 20 72 65 70 65 61 74 20 64 72 6f 70 20 3b | repeat drop ;| 00001df0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001e00 28 20 44 65 63 6f 6d 70 69 6c 65 72 73 20 32 20 |( Decompilers 2 | 00001e10 20 20 20 20 20 20 20 20 20 20 37 2f 31 31 20 29 | 7/11 )| 00001e20 20 20 68 65 78 20 20 20 20 20 20 20 20 20 20 20 | hex | 00001e30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001e40 3a 20 43 4f 4c 4f 4e 2d 50 41 53 53 2d 32 20 20 |: COLON-PASS-2 | 00001e50 20 20 20 20 28 20 73 74 61 63 6b 20 5f 5f 20 29 | ( stack __ )| 00001e60 20 20 20 62 65 67 69 6e 20 20 20 20 20 20 20 20 | begin | 00001e70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001e80 20 20 20 20 20 69 6e 73 65 72 74 2d 63 6f 6e 74 | insert-cont| 00001e90 72 6f 6c 77 6f 72 64 2d 68 65 72 65 3f 20 20 20 |rolword-here? | 00001ea0 20 20 20 20 20 70 66 40 20 73 6b 69 70 20 20 20 | pf@ skip | 00001eb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001ec0 20 20 20 20 20 63 61 73 65 73 20 20 20 20 20 20 | cases | 00001ed0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001ee0 20 20 20 20 20 20 20 62 72 3d 20 20 3a 2d 20 3e | br= :- >| 00001ef0 72 20 64 6f 2d 62 72 61 6e 63 68 20 72 3e 20 20 |r do-branch r> | 00001f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001f10 20 20 20 20 20 20 20 20 20 73 6b 69 70 20 2f 2f | skip //| 00001f20 20 20 20 20 20 20 20 30 62 72 3d 20 3a 2d 20 3e | 0br= :- >| 00001f30 72 20 64 6f 2d 30 62 72 61 6e 63 68 20 72 3e 20 |r do-0branch r> | 00001f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001f50 20 20 20 20 20 20 20 20 20 73 6b 69 70 20 2f 2f | skip //| 00001f60 20 20 20 20 20 20 20 6c 70 3d 20 20 3a 2d 20 22 | lp= :- "| 00001f70 4c 4f 4f 50 22 20 20 20 20 73 6b 69 70 20 2f 2f |LOOP" skip //| 00001f80 20 20 20 20 20 20 20 2b 6c 70 3d 20 3a 2d 20 22 | +lp= :- "| 00001f90 2b 4c 4f 4f 50 22 20 20 20 73 6b 69 70 20 2f 2f |+LOOP" skip //| 00001fa0 20 20 20 20 20 20 20 6c 69 74 3d 20 3a 2d 20 35 | lit= :- 5| 00001fb0 20 3f 69 20 70 66 40 20 75 2e 20 20 20 20 20 20 | ?i pf@ u. | 00001fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00001fd0 20 20 20 20 20 20 20 20 20 73 6b 69 70 20 2f 2f | skip //| 00001fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2d | -| 00001ff0 2d 3e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |-> | 00002000 28 20 44 65 63 6f 6d 70 69 6c 65 72 73 20 32 20 |( Decompilers 2 | 00002010 20 20 20 20 20 20 20 20 20 20 38 2f 31 31 20 29 | 8/11 )| 00002020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00002040 20 20 20 20 20 20 20 63 6d 70 3d 20 3a 2d 20 2e | cmp= :- .| 00002050 6e 61 6d 65 20 73 6b 69 70 20 2e 6e 61 6d 65 20 |name skip .name | 00002060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00002070 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f | //| 00002080 20 20 20 20 20 20 20 2e 22 3d 20 20 3a 2d 20 2e | ."= :- .| 00002090 69 20 2e 22 20 2e 22 20 20 20 20 20 20 20 20 20 |i ." ." | 000020a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e | .| 000020b0 73 74 72 20 20 73 6b 69 70 2d 73 74 72 20 2f 2f |str skip-str //| 000020c0 20 20 20 20 20 20 20 65 72 22 3d 20 3a 2d 20 2e | er"= :- .| 000020d0 69 20 2e 22 20 3f 45 52 52 4f 52 22 20 20 20 20 |i ." ?ERROR" | 000020e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e | .| 000020f0 73 74 72 20 20 73 6b 69 70 2d 73 74 72 20 2f 2f |str skip-str //| 00002100 20 20 20 20 20 20 20 65 78 69 3d 20 3a 2d 20 32 | exi= :- 2| 00002110 20 3f 69 20 2e 22 20 3b 20 22 20 20 20 20 2f 2f | ?i ." ; " //| 00002120 20 20 20 20 20 20 20 3b 63 6f 3d 20 3a 2d 20 36 | ;co= :- 6| 00002130 20 3f 69 20 2e 22 20 3b 43 4f 44 45 20 22 20 20 | ?i ." ;CODE " | 00002140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00002150 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f | //| 00002160 20 20 20 20 20 20 20 64 6f 3d 20 20 3a 2d 20 22 | do= :- "| 00002170 44 4f 22 20 20 20 20 20 20 20 20 20 20 20 2f 2f |DO" //| 00002180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e | .| 00002190 6e 61 6d 65 20 20 20 20 20 20 20 20 20 20 20 20 |name | 000021a0 20 20 20 20 20 65 6e 64 63 61 73 65 73 20 20 20 | endcases | 000021b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000021c0 20 20 20 20 20 65 6e 64 3d 20 6e 6f 74 20 77 68 | end= not wh| 000021d0 69 6c 65 20 64 72 6f 70 20 20 20 20 20 20 20 20 |ile drop | 000021e0 20 20 20 72 65 70 65 61 74 20 64 72 6f 70 20 64 | repeat drop d| 000021f0 72 6f 70 20 64 72 6f 70 20 3b 20 20 20 20 20 20 |rop drop ; | 00002200 28 20 44 65 63 6f 6d 70 69 6c 65 72 73 20 32 20 |( Decompilers 2 | 00002210 20 20 20 20 20 20 20 20 20 20 39 2f 31 31 20 29 | 9/11 )| 00002220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00002240 20 20 68 65 78 20 20 20 20 20 20 20 20 20 20 20 | hex | 00002250 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00002280 3a 20 43 4f 4c 4f 4e 2d 44 45 43 4f 20 20 20 20 |: COLON-DECO | 00002290 20 20 20 20 20 20 28 20 70 66 61 20 5f 5f 20 29 | ( pfa __ )| 000022a0 20 20 20 64 75 70 20 61 64 64 72 20 21 20 61 64 | dup addr ! ad| 000022b0 64 72 27 20 21 20 20 20 20 20 20 20 20 20 20 20 |dr' ! | 000022c0 20 20 20 63 6f 6c 6f 6e 2d 70 61 73 73 2d 31 20 | colon-pass-1 | 000022d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000022e0 20 20 20 61 64 64 72 27 20 40 20 64 75 70 20 61 | addr' @ dup a| 000022f0 64 64 72 20 21 20 20 20 20 20 20 20 20 20 20 20 |ddr ! | 00002300 20 20 20 2e 22 20 3a 20 22 20 6e 66 61 20 69 64 | ." : " nfa id| 00002310 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |. | 00002320 20 20 20 33 20 69 6e 64 74 20 21 20 2e 69 20 20 | 3 indt ! .i | 00002330 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00002340 20 20 20 63 6f 6c 6f 6e 2d 70 61 73 73 2d 32 20 | colon-pass-2 | 00002350 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |; | 00002360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00002400 28 20 44 65 63 6f 6d 70 69 6c 65 72 73 20 32 20 |( Decompilers 2 | 00002410 20 20 20 20 20 20 20 20 20 31 30 2f 31 31 20 29 | 10/11 )| 00002420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00002440 20 20 68 65 78 20 20 20 20 20 20 20 20 20 20 20 | hex | 00002450 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00002480 3a 20 56 41 52 2d 44 45 43 4f 20 20 20 20 20 20 |: VAR-DECO | 00002490 20 20 20 20 20 20 28 20 70 66 61 20 5f 5f 20 29 | ( pfa __ )| 000024a0 20 20 20 2e 22 20 56 41 52 49 41 42 4c 45 20 22 | ." VARIABLE "| 000024b0 20 6e 66 61 20 69 64 2e 20 3b 20 20 20 20 20 20 | nfa id. ; | 000024c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 000024e0 3a 20 55 53 45 52 2d 44 45 43 4f 20 20 20 20 20 |: USER-DECO | 000024f0 20 20 20 20 20 20 28 20 70 66 61 20 5f 5f 20 29 | ( pfa __ )| 00002500 20 20 20 64 75 70 20 40 20 75 2e 20 2e 22 20 55 | dup @ u. ." U| 00002510 53 45 52 20 22 20 6e 66 61 20 69 64 2e 20 3b 20 |SER " nfa id. ; | 00002520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 00002540 3a 20 43 4f 4e 53 54 2d 44 45 43 4f 20 20 20 20 |: CONST-DECO | 00002550 20 20 20 20 20 20 28 20 70 66 61 20 5f 5f 20 29 | ( pfa __ )| 00002560 20 20 20 64 75 70 20 40 20 75 2e 20 2e 22 20 43 | dup @ u. ." C| 00002570 4f 4e 53 54 41 4e 54 20 22 20 20 20 20 20 20 20 |ONSTANT " | 00002580 20 20 20 6e 66 61 20 69 64 2e 20 3b 20 20 20 20 | nfa id. ; | 00002590 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 000025c0 3a 20 56 4f 43 41 42 2d 44 45 43 4f 20 20 20 20 |: VOCAB-DECO | 000025d0 20 20 20 20 20 20 28 20 70 66 61 20 5f 5f 20 29 | ( pfa __ )| 000025e0 20 20 20 2e 22 20 56 4f 43 41 42 55 4c 41 52 59 | ." VOCABULARY| 000025f0 20 22 20 6e 66 61 20 69 64 2e 20 3b 20 20 20 20 | " nfa id. ; | 00002600 28 20 44 65 63 6f 6d 70 69 6c 65 72 73 20 32 20 |( Decompilers 2 | 00002610 20 20 20 20 20 20 20 20 20 31 31 2f 31 31 20 29 | 11/11 )| 00002620 20 20 68 65 78 20 20 20 20 20 20 20 20 20 20 20 | hex | 00002630 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00002640 3a 20 28 44 45 43 4f 29 20 20 20 20 20 20 20 20 |: (DECO) | 00002650 20 20 20 20 28 20 63 20 70 66 61 20 5f 5f 20 29 | ( c pfa __ )| 00002660 20 20 20 63 72 20 63 72 20 64 75 70 20 63 66 61 | cr cr dup cfa| 00002670 20 40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | @ | 00002680 20 20 20 63 61 73 65 73 20 20 20 20 20 20 20 20 | cases | 00002690 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000026a0 20 20 20 20 20 63 6f 6c 3d 20 3a 2d 20 64 72 6f | col= :- dro| 000026b0 70 20 63 6f 6c 6f 6e 2d 64 65 63 6f 20 20 2f 2f |p colon-deco //| 000026c0 20 20 20 20 20 76 61 72 3d 20 3a 2d 20 64 72 6f | var= :- dro| 000026d0 70 20 76 61 72 2d 64 65 63 6f 20 20 20 20 2f 2f |p var-deco //| 000026e0 20 20 20 20 20 75 73 72 3d 20 3a 2d 20 64 72 6f | usr= :- dro| 000026f0 70 20 75 73 65 72 2d 64 65 63 6f 20 20 20 2f 2f |p user-deco //| 00002700 20 20 20 20 20 63 6f 6e 3d 20 3a 2d 20 64 72 6f | con= :- dro| 00002710 70 20 63 6f 6e 73 74 2d 64 65 63 6f 20 20 2f 2f |p const-deco //| 00002720 20 20 20 20 20 76 6f 63 3d 20 3a 2d 20 64 72 6f | voc= :- dro| 00002730 70 20 76 6f 63 61 62 2d 64 65 63 6f 20 20 2f 2f |p vocab-deco //| 00002740 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 6f 2d | no-| 00002750 63 61 6e 2d 64 6f 20 20 20 20 20 20 20 20 20 20 |can-do | 00002760 20 20 20 65 6e 64 63 61 73 65 73 20 20 20 20 20 | endcases | 00002770 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00002780 20 20 20 3f 69 6d 6d 65 64 20 63 72 20 63 72 20 | ?immed cr cr | 00002790 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |; | 000027a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | * 000027c0 3a 20 44 45 43 4f 20 20 20 20 20 20 20 20 20 20 |: DECO | 000027d0 20 20 20 20 20 20 20 20 20 20 28 20 5f 5f 20 29 | ( __ )| 000027e0 20 20 20 66 69 6e 64 2d 70 66 61 20 28 64 65 63 | find-pfa (dec| 000027f0 6f 29 20 3b 20 20 20 20 20 20 20 20 20 20 20 20 |o) ; | 00002800