Session 2 - Decompiler output in noForth

\ Load this definition
: test ( n -- )
   1 and
   if ." Odd"
   else ." Even"
   then space ; immediate


see test
  E7F4 v   C176 ----- FORTH TEST (imm) does DOCOL
  E7F6        3 #1
  E7F8 z   C87A AND
  E7FA     8809 IF +> E804
  E7FC Z   D35A ."(
  E7FE  O  4F03 #2781
  E800 dd  6464
  E802  x  7809 AHEAD +> E80C
  E804 Z   D35A ."(
  E806  E  4504
  E808 ve  6576
  E80A n   FF6E
  E80C Z   CF5A SPACE
  E80E     C102 EXIT
  E810     FFFF #FFFF
  E812     FFFF #FFFF
  E814     FFFF #FFFF

  1    2   3    4      ← columns
SEE must be stopped by the user:
  wait/go  = type space
  exit SEE = type <enter> or any other key

column 1  = address
column 2  = content, seen as 2 characters (if printable)
column 3  = content, seen as a 16 bit unsigned number
column 4  = noForth interpretation

1    2   3    4
E7F4 v   C176 ----- FORTH TEST (imm) does DOCOL
   -----  = this is a CFA
   FORTH  = vocabulary (only for noForth V)
   TEST   = name of the word
   DOCOL  = name of the does-routine in the CFA

E7F6        3 #1
   3 represents the number 1 (needs only one cell)

E7FA     8809 IF +> E804
   Conditional jump forward to E804 (needs only one cell)

E7FC Z   D35A ."(
   ."(  prints an inline counted string.
   Words ending in "(" read inline data
   (a noForth name convention)

SEE is defined as : SEE ( <name> -- ) ' MSEE ;