e7dc22974c155f5366adf97e19e9d52b049b4446
[watForth.git] / forth.forth
1 \ This program is free software: you can redistribute it and/or modify
2 \ it under the terms of the GNU General Public License as published by
3 \ the Free Software Foundation, either version 3 of the License, or
4 \ (at your option) any later version.
5 \
6 \ This program is distributed in the hope that it will be useful,
7 \ but WITHOUT ANY WARRANTY; without even the implied warranty of
8 \ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9 \ GNU General Public License for more details.
10 \
11 \ You should have received a copy of the GNU General Public License
12 \ along with this program. If not, see <http://www.gnu.org/licenses/>.
13 word ' here define
14 word word find , word find find , word ; find ,
15 word : here define
16 ' word , ' here , ' define , ' ; ,
17 : IWRITE-MODE ' dup , ' JNZ: , here 12 + , ' 2drop , ' ; ,
18 ' 2dup , ' find , ' dup , ' JZ: , here 16 + , ' , , ' 2drop , ' ; ,
19 ' drop , ' LIT , ' LIT , ' , , 16720 , ' , , ' ; ,
20 : i ' LIT , ' MODE , ' LIT , ' IWRITE-MODE , ' ! , ' ; ,
21 : e ' LIT , ' MODE , ' LIT , ' EXECUTE-MODE , ' ! , ' ; ,
22 \i
23 \: FINISH-STRING DROP STRING-END ;
24 \: " STRING-START
25 \: KEYPUMP KEY 34 =? JNZ: FINISH-STRING STRING-PUT JMP: KEYPUMP
26 \e
27 " watForth-32 Interactive CLI:
28 " .s