1     Okay, EMIT is written. Now to test it, I'll
     
2     push an ASCII character value on the stack
     
3     and call it.
     
4 
     5 (gdb) c
     
6 Continuing.
     
7 65 EMIT
     
8 A
     
9 
    10     No way...it works!
    
11 
    12     How about pushing "Foo" onto the stack and
    
13     emitting it all at once:
    
14 
    15 70 111 111 EMIT EMIT EMIT
    
16 ooF
    
17 
    18     Ha ha, "oof" is right. The first of, no doubt,
    
19     many out-of-order mistakes.
    
20 
    21 111 111 70 EMIT EMIT EMIT
    
22 Foo
    
23 
    24     Now how about compiling a word?
    
25 
    26 : star 42 EMIT ;
    
27 star
    
28 *
    
29 
    30     And the true test: can I compile a word using the
    
31     new word?
    
32 
    33 : 3star star star star ;
    
34 3star
    
35 ***
    
36 
    37     Wow. I have a FORTH!
    
38 
    39     JonesFORTH defines a bunch of words in assembly (mostly
    
40     for speed - there's some theoretical minimum core of
    
41     FORTH words from which all the others could be defined,
    
42     but assembly's gonna be faster.
    
43 
    44     So what I'll do is start implementing those. I'll try
    
45     to test them all with EMIT output because that's more fun
    
46     than examining registers. But I doubt we're done with
    
47     GBD just yet.
    
48 
    49     - - - - -
    
50 
    51     Next night: wait a second! I just realized this is an
    
52     opportunity to demonstrate that this thing is now capable
    
53     of executing the "Hello world" greeting.
    
54 
    55     - - - - -
    
56 
    57     Next night: okay, I fell asleep entering my hello world
    
58     last night. Let's give it another shot. :-)
    
59 
    60 : h1 111 108 108 101 72 EMIT EMIT EMIT EMIT EMIT ;
    
61 h1
    
62 Hello
    
63 : h2 100 108 114 87 EMIT EMIT EMIT EMIT EMIT ;
    
64 h2
    
65 Wrld
    
66 
    67     Oops! LOL, I left out the 'o'. Well, I am spelling
    
68     this out backwards in ASCII...
    
69 
    70     So, with Forth, I can just redefine the h2
    
71     word and the new definition will replace the
    
72     broken one...
    
73 
    74 : h2 100 108 114 111 87 EMIT EMIT EMIT EMIT EMIT ;
    
75 h2
    
76 World
    
77 
    78     That's better. And I'll make a word for space:
    
79 
    80 : s 32 EMIT ;
    
81 s
    
82 
    83     And now for my triumphant Hello World:
    
84 
    85 h1 s h2
    
86 Hello World
    
87 
    88     TADA!