home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-11-20 | 1.3 KB | 68 lines | [04] ASCII Text (0x0000) |
-
- : -WORD BL WORD ;
-
- : & ( --- TAKES FOLLING CHARACTER & COMPILES IT AS A LITERAL )
- -WORD 1+ C@ [COMPILE] LITERAL
- ; IMMEDIATE
-
-
-
- ( ========================================= )
- ( WORD DECOMPILER - FROM "FORTH TOOLS AND APPLICATIONS" )
- ( ========================================= )
-
- FIND ;S CONSTANT EXITCFA
- FIND 0BRANCH CONSTANT ZBRACFA
- FIND BRANCH CONSTANT BRACFA
- FIND LIT CONSTANT LITCFA
- FIND CLIT CONSTANT CLITCFA
- FIND (LOOP) CONSTANT (LPCFA
- FIND (.") CONSTANT (."CFA
-
- VARIABLE CLITFLAG
-
- ( PRINT NAME OF WORD GIVEN CODE FIELD ADDRESS )
- : CID. ( CFA -- )
- 2+ NFA ID.
- ;
-
- : GET# ( ADRS -- ADRS+2 )
- CLITFLAG @ IF 2+ DUP C@ . ELSE 2+ DUP @ . THEN
- ;
-
- : NAME0
- DROP & . EMIT & " EMIT SPACE 2+ DUP COUNT >R R@ TYPE & " EMIT SPACE R> 1- +
- ;
-
- : NAME1
- DUP (."CFA = IF NAME0 ELSE CID. THEN
- ;
-
- : NAME2
- DUP ZBRACFA = OVER BRACFA = OR OVER (LPCFA = OR
- ;
-
-
- : NAME. ( PFA# CFA# -- PFA#' )
- 0 CLITFLAG ! DUP CLITCFA = IF 1 CLITFLAG ! THEN
-
- DUP LITCFA = OVER CLITCFA = OR
- IF DROP GET# ELSE NAME2 IF CID. GET# ELSE NAME1 THEN THEN
- ;
-
- : TESTCLIT
- CLITFLAG @ -
- ;
-
- : DECOMP0
- BEGIN DUP DUP . ." - " @ DUP EXITCFA - WHILE NAME. CR 2+ TESTCLIT REPEAT
- 2DROP
- ;
-
- : DECOMP ( -- DECOMPILES FOLLOWING WORD )
- CR [COMPILE] '
- DUP DUP CFA @ =
- IF ." CODE WORD " DROP ELSE DECOMP0 THEN
- ;
-
-