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

COMMA ------------------------------------------------------------------------------- (1) Take a 32 bit integer from the stack. (2) Store it to the user memory pointed to by HERE (3) Add 4 to HERE. previous value of HERE | V +---------+---+---+---+---+---+---+---+---+-- - - - - --+------------+ | LINK | 6 | D | O | U | B | L | E | 0 | | | +---------+---+---+---+---+---+---+---+---+-- - - - - --+------------+ len pad ^ | new value of HERE 24 WORD gnarzalot CREATE WORDS CREATElot TICK WORDFIND QUADRUPLE DOUBLE foo go p n s SHOW-PAGENO PAGENO-- PAGENO++ CHECK-PAGENO PAGEN O #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 @.dwo rd .word .byte .s TICK .word foo WELCOME INLINE (INLINE) RDTSC RDTSC POP PUSH EDI ESI EBP ESP EBX EDX ECX EAX ;CODE NEXT PERROR READ-FILE CLOSE-FILE CREATE-FILE OPEN-FILE R/W R/O MORECORE BRK UNUSED GET-B RK BYE ENVIRON ARGV ARGC CSTRING STRLEN Z" PRINT-STACK-TRACE ABORT THROW CATCH EXCEPTION-MARKER ['] :N ONAME SEE CFA> ENDCASE ENDOF OF CASE DUMP FORGET WORDS ?IMMEDIATE ?HIDDEN ID. +TO TO VALUE VARIABLE CE LLS ALLOT CONSTANT ." S" C, ALIGN ALIGNED DEPTH WITHIN ? U. . .R U.R UWIDTH .S U. HEX DECIMAL SPACES P ICK 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 SYSC ALL3 EXECUTE CHAR INTERPRET QUIT TELL LITSTRING 0BRANCH BRANCH ' HIDE HIDDEN IMMEDIATE ; : ] [ , CREAT E >DFA >CFA FIND NUMBER WORD EMIT KEY DSP! DSP@ RDROP RSP! RSP@ R> >R O_NONBLOCK O_APPEND O_TRUNC O_EX CL O_CREAT O_RDWR O_WRONLY O_RDONLY SYS_BRK SYS_CREAT SYS_WRITE SYS_READ SYS_CLOSE SYS_OPEN SYS_EXIT F _LENMASK F_HIDDEN F_IMMED DOCOL R0 VERSION BASE S0 LATEST HERE STATE CMOVE C@C! C@ C! -! +! @ ! LIT EX IT 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 disassemble CREATElot 0 0 8C DC: 0 0 8C CC (next word pointer: CREATElot) hidden: 0, immediate: 0, length: 9, name: CREATElot 0 0 8C E0: 45 52 43 9 0 0 8C E4: 6C 45 54 41 0 0 8C E8: 0 0 74 6F 0 0 8C EC: 0 0 8C EC (codeword: not forth) DOCOL , TICK . , TICK EXIT , SEE CREATElot : CREATElot . ; disassemble CREATElot 0 0 8C DC: 0 0 8C CC (next word pointer: CREATElot) hidden: 0, immediate: 0, length: 9, name: CREATElot 0 0 8C E0: 45 52 43 9 0 0 8C E4: 6C 45 54 41 0 0 8C E8: 0 0 74 6F 0 0 8C EC: 0 0 0 0 (codeword: forth) 0 0 8C F0: 0 0 57 2C . 0 0 8C F4: 0 0 7 8C EXIT : gnarzalot . ; disassemble gnarzalot 0 0 8C F8: 0 0 8C DC (next word pointer: CREATElot) hidden: 0, immediate: 0, length: 9, name: gnarzalot 0 0 8C FC: 61 6E 67 9 0 0 8D 0: 6C 61 7A 72 0 0 8D 4: 0 0 74 6F 0 0 8D 8: 0 0 0 0 (codeword: forth) 0 0 8D C: 0 0 57 2C . 0 0 8D 10: 0 0 7 8C EXIT 23 . 23 42 CREATElot 42 n 24