Commit Graph
89 Commits
Author SHA1 Message Date
cdo 2a3949e09f Make terminal xHEAD and xTAIL registers 32 bits
This enables waiting on them with memory.atomic.wait32 (there is no
wait8) which is needed to avoid spinning when waiting for a key.
2026-03-02 18:51:42 +00:00
cdo 22e477adf7 Fix hex number input 2026-03-02 18:50:34 +00:00
cdo c99430c75e Fix headers in peripherals description 2026-03-02 17:59:32 +00:00
cdo a77e7f4051 Rename "Offset" column to "Address" in peripherals description 2026-03-02 17:58:42 +00:00
cdo 24459a8ae5 List tools in Building and Running README section 2026-03-02 17:54:31 +00:00
cdo a0e3706db7 Replace Python server with Guile 2026-03-02 17:53:50 +00:00
cdo 6c30d96e96 Add HEX and DECIMAL to prelude 2026-03-02 17:42:45 +00:00
cdo 2ff0c2ada1 Add more information to the README 2026-03-02 17:42:45 +00:00
cdo e5ee3fe076 Add favicon 2026-03-02 17:42:45 +00:00
cdo 8ed8bbad3e Set output rows based on window size 2026-03-02 16:10:54 +00:00
cdo 7f4d900688 Fix EMIT-DIGIT 2026-03-02 16:10:54 +00:00
cdo 54be0a8c0e Fix output width at 80 chars and remove trailing spaces 2026-03-02 16:10:54 +00:00
cdo 832ce55108 Implement basic scrolling in emu.js 2026-03-02 16:10:54 +00:00
cdo 259aa730f7 Add copyright and license message to the banner 2026-03-02 16:10:54 +00:00
cdo 50f2f240fa Shorten SYSREADY comment in prelude 2026-03-01 20:26:28 +00:00
cdo ee4c0d1d8c Add a better word-not-found handler 2026-03-01 19:52:52 +00:00
cdo acaf198fae Implement CONSTANT, VARIABLE, VALUE and TO 2026-03-01 19:52:43 +00:00
cdo 1a9702ea5c Implement some utility words 2026-03-01 19:51:59 +00:00
cdo 5d704d3bde Print loading indicators during prelude 2026-03-01 19:51:47 +00:00
cdo 047d09260c Add wip.sh ASCII art banner 2026-03-01 19:51:47 +00:00
cdo fac6c4d3b8 Implement TYPE and ." 2026-03-01 19:51:47 +00:00
cdo a9fd395a94 Implement . 2026-03-01 19:51:47 +00:00
cdo 922a0e6e31 Implement block comments 2026-03-01 19:51:47 +00:00
cdo d60708645d Implement recursive calls 2026-03-01 19:51:47 +00:00
cdo 8785c01f9e Implement loops 2026-03-01 19:51:47 +00:00
cdo 53d3a308cd Implement conditionals 2026-03-01 19:51:47 +00:00
cdo fde6429d4f Add line comments and peripheral reg constants to prelude 2026-03-01 19:51:47 +00:00
cdo c06ef248b7 Implement prelude-loading mechanism 2026-03-01 19:51:47 +00:00
cdo f6a24ee3cf Fix >CFA returning incorrect value on hidden words 2026-03-01 19:51:47 +00:00
cdo b372ae3d5f Rename DOCONST to DOVAL 2026-03-01 19:51:47 +00:00
cdo 9f1be9ad2f Add hook mechanism for handling word not found 2026-03-01 13:55:19 +00:00
cdo 1ebe07b863 Fix value of LIT-CFA 2026-02-28 20:51:56 +00:00
cdo 1922a65108 Fix incorrect CFA in , compilation 2026-02-28 20:51:56 +00:00
cdo 3ce063187b Fix 2DUP 2026-02-28 20:51:56 +00:00
cdo 643185bfd4 Update LATEST and HERE 2026-02-28 20:51:56 +00:00
cdo 0ee6d01592 Define : and ; 2026-02-28 20:51:56 +00:00
cdo 1321a0e5a9 Define CREATE 2026-02-28 20:00:22 +00:00
cdo 43b6a6978f Define IMMEDIATE 2026-02-28 20:00:22 +00:00
cdo 7c9e99d666 Define HIDDEN 2026-02-28 20:00:22 +00:00
cdo 0645640f20 Define ALIGN 2026-02-28 20:00:22 +00:00
cdo f314234078 Define [ and ] 2026-02-28 20:00:22 +00:00
cdo c0b2c7d7d2 Handle HIDDEN flag 2026-02-28 20:00:22 +00:00
cdo 66188f6984 Add a halt mechanism 2026-02-28 20:00:22 +00:00
cdo b06f32bbe3 Define some additional memory codewords 2026-02-28 20:00:22 +00:00
cdo 95d82a91c2 Indent loops, ifs etc 2026-02-28 13:10:26 +00:00
cdo aceeebd3ff Move definition of $execute function 2026-02-28 13:09:22 +00:00
cdo fa5a6dbb1d Add EXECUTE 2026-02-28 02:06:51 +00:00
cdo 093e4188bd Fix wrong branch offset in FIND 2026-02-28 01:36:27 +00:00
cdo 973eba9f0a Fix NUMBER?
I wasn't able to keep the length the same so had to update the
addresses of , IMMEDIATE? INTERPRET QUIT and the cold start (and
therefore also the values of LATEST and HERE).
2026-02-27 22:56:26 +00:00
cdo 4f50321c26 Fix FIND 2026-02-27 22:40:15 +00:00
cdo c57792f7c7 Fix 0<> address in WORD 2026-02-27 19:54:35 +00:00
cdo 6474c2f227 Logically flip SPACE? to NSPACE
WORD was using it like this, and it's easier to fix it this way rather
than insert an INVERT into WORD.
2026-02-27 19:52:44 +00:00
cdo 42a9c5db08 Fix 0BRANCH function table entry 2026-02-27 19:50:50 +00:00
cdo 83022925f7 Fix bugs from round 1 of debugging
There were several issues I ran into immediately:

- The cold start was pointing to the dictionary entry of QUIT instead
  of the CFA
- The RSP needed to be set before calling QUIT, as DOCOL uses the
  return stack
- I'd forgotten LITs before values in a couple of places
- I'd not accounted for LITs in several branch offsets
- A few dictionary links were wrong
2026-02-27 18:35:17 +00:00
cdo 74ff0b037c Set values of HERE and LATEST 2026-02-27 16:20:36 +00:00
cdo ca6ac0f9bf Implement cold start 2026-02-27 16:20:36 +00:00
cdo 2fafd02e28 Compile QUIT 2026-02-27 16:20:36 +00:00
cdo bf65c7470a Compile INTERPRET 2026-02-27 16:20:36 +00:00
cdo 62f3bff926 Compile IMMEDIATE? 2026-02-27 16:20:36 +00:00
cdo 797a95204f Compile , 2026-02-27 16:20:36 +00:00
cdo c4303cc2ca Compile NUMBER? 2026-02-27 16:20:36 +00:00
cdo 78d45c61de Compile NEGATE 2026-02-27 16:20:36 +00:00
cdo dda02a1d9f Compile DIGIT 2026-02-27 16:20:36 +00:00
cdo c2b0c55893 Compile >CFA 2026-02-27 16:20:36 +00:00
cdo a8c51d0703 Compile FIND 2026-02-27 16:20:36 +00:00
cdo a4e7673b7a Compile NAME-LEN 2026-02-27 16:20:36 +00:00
cdo 938bd98ef6 Untabify WAT source 2026-02-27 16:20:36 +00:00
cdo 777531abc4 Compile STRING= 2026-02-27 16:20:36 +00:00
cdo a7c96fc56c Compile WORD 2026-02-27 16:20:36 +00:00
cdo 05a3e72669 Compile SPACE? 2026-02-27 16:20:36 +00:00
cdo 55bc5060e4 Compile TUCK 2026-02-27 16:20:36 +00:00
cdo 93f0b312a8 Re-wrap top comment 2026-02-26 18:30:49 +00:00
cdo ef8e9ad3fd Add source code comments for colon words 2026-02-26 18:20:42 +00:00
cdo dde7d0d710 Fill in addresses of constants and variables (and add a few more) 2026-02-26 18:10:56 +00:00
cdo 5dcc5de722 Reword comment about $trampoline a little 2026-02-26 18:10:43 +00:00
cdo 59ee6149e5 Switch to -1 for true, 0 for false
This means you can use the bitwise operators for booleans too.
2026-02-26 18:09:36 +00:00
cdo 3b3807e802 Fix 0BRANCH implementation 2026-02-26 18:09:04 +00:00
cdo c2a8b304b1 Fix INVERT's link 2026-02-26 18:08:50 +00:00
cdo 163811bbc6 Fix emulator's submit_line() 2026-02-26 18:08:22 +00:00
cdo 9d671ad8ef Fix 2DUP implementation 2026-02-26 18:07:49 +00:00
cdo db13287c91 Implement BRANCH and 0BRANCH 2026-02-25 21:37:27 +00:00
cdo a830998617 Replace local set then get with tee 2026-02-25 21:29:14 +00:00
cdo eab32c9b42 Add message to index.html for if JS is disabled 2026-02-25 14:13:58 +00:00
cdo 6ff9791b11 Tweak README 2026-02-25 13:46:23 +00:00
cdo 6e12c9c72e Implement a nice terminal emulator on the JS side 2026-02-25 13:46:14 +00:00
cdo cc7609b847 Implement a bunch of core forth stuff
Not quite ready yet, but getting there.
2026-02-25 13:45:52 +00:00
cdo d11805cd6c Rejig serial periph 2026-02-24 15:53:43 +00:00
cdo 0608e2c476 Add 'System halt' log message when WASM exits 2026-02-24 15:53:17 +00:00
cdo d3e2407f3b Create initial emulator and hello world demo 2026-02-24 15:52:48 +00:00