cdo
e5f9d2d828
Make run-tests exit 1 when there are failures
2026-03-04 22:08:34 +00:00
cdo
fb70a2585f
Fix typo in test name
2026-03-04 21:31:22 +00:00
cdo
fb52e5a701
Add README section for end-to-end tests
2026-03-04 20:52:23 +00:00
cdo
a1b003a1cd
Implement some end-to-end tests
2026-03-04 20:45:05 +00:00
cdo
9576769e09
Implement simple testing module for e2e tests
2026-03-04 20:22:24 +00:00
cdo
e13452db15
Run firefox in blank profile when e2e testing
2026-03-04 17:55:16 +00:00
cdo
529aabd213
Rename e2e-tests to e2e
2026-03-04 17:52:26 +00:00
cdo
d18ff1d2bb
Modify server.scm so it can be loaded as a module
2026-03-04 17:26:46 +00:00
cdo
e2ed73055f
Write Guile module for Firefox interaction with Marionette
2026-03-04 01:08:54 +00:00
cdo
721e0f285b
Fix handling of trailing zeros in .
2026-03-03 13:17:37 +00:00
cdo
c1c1db7b51
Add note about server.scm probably being insecure
2026-03-02 21:52:05 +00:00
cdo
b5c4070daf
Use EMIT when printing version number instead of ."
2026-03-02 19:00:57 +00:00
cdo
59e6027739
Use CONSTANT to define version numbers
2026-03-02 18:56:17 +00:00
cdo
32c3c6e356
Use atomic wait/notify on RXTAIL in KEY
2026-03-02 18:53:48 +00:00
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