FORTH and Threaded Interpretive Languages

first previous next last
no typoscript


Max-Gerd Retzlaff, 5. July 2008

https://entropia.de/GPN7

Jonesforth by Richard W. M. Jones

CONSTANTS --------------------------------------------------------------------------- +---------+---+---+---+---+------------+------------+------------+------------+ | LINK | 3 | T | E | N | DOCOL | LIT | 10 | EXIT | +---------+---+---+---+---+------------+------------+------------+------------+ len codeword : CONSTANT WORD ( get the name (the name follows CONSTANT) ) CREATE ( make the dictionary entry ) DOCOL , ( append DOCOL (the codeword field of this word) ) ' LIT , ( append the codeword LIT ) , ( append the value on the top of the stack ) ' EXIT , ( append the codeword EXIT ) ; 31 SEE CONSTANT : CONSTANT WORD CREATE DOCOL , ' LIT , , ' EXIT , ; 10 CONSTANT meine-10 .s 1504 35924 36004 36064 36092 meine-10 .s 1504 35924 36004 36064 36092 10 . 10 .s 1504 35924 36004 36064 36092 VARIABLE gna WORDS gna meine-10 CREATEfoo TEN gnarzalot CREATElot TICK WORDFIND QUADRUPLE DOUBLE foo go p n s SHOW-PAGENO PAGENO-- PAGENO++ CHECK-PAGENO PAGENO #PAGES show-page factor-out show-file close-file read-file show -buf clrscr gohome '\e' '2' 'J' 'H' '[' bufsize buf disassemble hi disassemble disassemble description -col search&print-CFA foo dump-dword .length&name .word .length&name .word-name .word-length word-name .address .dword @.dword-little @.dword .word .byte .s TICK .word foo WELCOME INLINE (INLINE) RDTSC RD TSC POP PUSH EDI ESI EBP ESP EBX EDX ECX EAX ;CODE NEXT PERROR READ-FILE CLOSE-FILE CREATE-FILE OPEN-F ILE R/W R/O MORECORE BRK UNUSED GET-BRK BYE ENVIRON ARGV ARGC CSTRING STRLEN Z" PRINT-STACK-TRACE ABOR T THROW CATCH EXCEPTION-MARKER ['] :NONAME SEE CFA> ENDCASE ENDOF OF CASE DUMP FORGET WORDS ?IMMEDIATE ?HIDDEN ID. +TO TO VALUE VARIABLE CELLS ALLOT CONSTANT ." S" C, ALIGN ALIGNED DEPTH WITHIN ? U. . .R U.R UWIDTH .S U. HEX DECIMAL SPACES PICK TUCK NIP ( UNLESS REPEAT WHILE AGAIN UNTIL BEGIN ELSE THEN IF RECURSE [COMPILE] '.' '-' '0' 'A' '"' ')' '(' ';' ':' LITERAL NOT FALSE TRUE NEGATE SPACE CR BL '\n' MOD / SYSCALL0 SYSCALL1 SYSCALL2 SYSCALL3 EXECUTE CHAR INTERPRET QUIT TELL LITSTRING 0BRANCH BRANCH ' HIDE HIDDEN IMMEDIATE ; : ] [ , CREATE >DFA >CFA FIND NUMBER WORD EMIT KEY DSP! DSP@ RDROP RSP! RSP@ R > >R O_NONBLOCK O_APPEND O_TRUNC O_EXCL O_CREAT O_RDWR O_WRONLY O_RDONLY SYS_BRK SYS_CREAT SYS_WRITE S YS_READ SYS_CLOSE SYS_OPEN SYS_EXIT F_LENMASK F_HIDDEN F_IMMED DOCOL R0 VERSION BASE S0 LATEST HERE ST ATE CMOVE C@C! C@ C! -! +! @ ! LIT EXIT INVERT XOR OR AND 0>= 0<= 0> 0< 0<> 0= >= <= > < <> = /MOD * - + 4- 4+ 1- 1+ ?DUP 2SWAP 2DUP 2DROP -ROT ROT OVER DUP SWAP DROP HEX gna . 8DAC 42 gna ! gna @ . 42 SEE gna : gna 8DAC ; disassemble gna 0 0 8D B0: 0 0 8D 8C (next word pointer: meine-10) hidden: 0, immediate: 0, length: 3, name: gna 0 0 8D B4: 61 6E 67 3 0 0 8D B8: 0 0 0 0 (codeword: forth) 0 0 8D BC: 0 0 7 98 LIT: 8DAC 0 0 8D C0: 0 0 8D AC 0 0 8D C4: 0 0 7 8C EXIT WORDFIND gna DUP . 36272 HEX DUP . 8DB0 4 - DUP . 8DAC 10 DUMP 8DAC 42 0 0 0 8C 8D 0 0 3 67 6E 61 0 0 0 0 B........gna.... DECIMAL n 31