Virgil Dupras
f89e7bd503
forth: add words "C@" and "C!"
2020-03-11 22:11:54 -04:00
Virgil Dupras
80f63cd185
forth: add words "2DUP", "2SWAP", "2OVER"
2020-03-11 21:58:16 -04:00
Virgil Dupras
d8542f7cf7
forth: fix "NOT"
...
Ouh, I need a solution here...
2020-03-11 19:59:10 -04:00
Virgil Dupras
ea5f33558a
forth: make branching offsets 1 byte
...
Those bytes, those precious bytes!
2020-03-11 19:52:49 -04:00
Virgil Dupras
abdf2c8adc
emul/forth: allow running commands from file
2020-03-11 19:03:47 -04:00
Virgil Dupras
3996f0c825
forth: fix IF/THEN/ELSE in colon defs
2020-03-11 17:53:27 -04:00
Virgil Dupras
02b56c547a
forth: make branching cells store relative offsets
...
This should help with fixing IF/THEN/ELSE in colon defs.
2020-03-11 16:46:25 -04:00
Virgil Dupras
6757c097ea
forth: change the whole execution model again
...
Things are better now, but immediates inside colons are broken. However,
IF/THEN/ELSE are now immediates and it's much cleaner this way. Still, this
commit has too much stuff in it, I need to commit, I don't want to lose this
step.
2020-03-10 21:37:06 -04:00
Virgil Dupras
2ddca57f3f
forth: add string and logic routines, as well as "RECURSE"
...
The goal was to be able to implement "(" in forth, but I realised that my
INTERPRET approach was wrong. Compiling the line beforehand is, after all,
not good. I'll have to change it again.
2020-03-10 16:02:40 -04:00
Virgil Dupras
aac0a57a68
forth: add words "PC!" and "PC@"
2020-03-10 13:00:57 -04:00
Virgil Dupras
e95614755b
emul: add forth target
2020-03-09 22:26:02 -04:00
Virgil Dupras
0b3f6253e4
forth: add support for IMMEDIATE words
2020-03-09 22:13:11 -04:00
Virgil Dupras
03bd9ee39b
forth: make readCompWord read from RS' BOS instead of TOS
...
Previous approach was broken with regards to defined word using CREATE.
Also, reduce name length by one to make space for a new flags field for
"immediate" (which isn't used yet).
2020-03-09 19:50:51 -04:00
Virgil Dupras
0e8af3cea4
forth: clarify the meaning of "wordref"
...
Also, make entry labels in dict.asm be wordref instead of entry ref.
2020-03-09 15:12:44 -04:00
Virgil Dupras
e8a4768304
forth: add words "IF", "ELSE", "THEN"
2020-03-09 14:19:51 -04:00
Virgil Dupras
03e529b762
forth: simplify execution model and handle literals better
...
This scheme of "when we handle line-by-line, compile one word at a time then
execute" so that we could allow words like "CREATE" to call "readword" before
continuing was a bad scheme. It made things like branching outside of a colon
definition impossible.
This commit implement a new "litWord". When an undefined word is encountered at
compile time, it is included as-is in a string literal word. It is at run time
that we decide what to do with it.
2020-03-09 14:14:26 -04:00
Virgil Dupras
5cadde557c
forth: add "VARIABLE"
2020-03-07 22:23:08 -05:00
Virgil Dupras
989d8bbabf
forth: add "DOES>" and "CONSTANT"
2020-03-07 22:18:14 -05:00
Virgil Dupras
53024d88f5
forth: add "DUP", "OVER", "SWAP", "?", "+!", "ALLOT"
2020-03-07 21:12:30 -05:00
Virgil Dupras
f0cf10ab7c
forth: Check for PS underflow
2020-03-07 20:20:11 -05:00
Virgil Dupras
580214426a
forth: add +-*/
2020-03-07 19:42:07 -05:00
Virgil Dupras
ad2aca4620
forth: add number literals support
2020-03-07 19:25:55 -05:00
Virgil Dupras
30f188b984
forth: add word ":"
2020-03-07 18:54:16 -05:00
Virgil Dupras
e7cd3182d0
forth: add words "CREATE", "@", "!", "HERE", "QUIT"
2020-03-07 17:09:45 -05:00
Virgil Dupras
6f9d28b325
forth: add word "bye"
...
And make interpret action looping until BYE.
2020-03-07 13:15:19 -05:00
Virgil Dupras
391ddb9984
forth: add word "."
2020-03-07 12:50:54 -05:00
Virgil Dupras
49228e418c
apps/forth: new (WIP) application
2020-03-07 12:13:15 -05:00
Virgil Dupras
97dcad9b15
recipes/sms/kbd: use Collapse OS' AVR assembler
2020-02-26 23:10:43 -05:00
Virgil Dupras
64a54c72f8
Fix broken recipes
2020-02-26 21:44:37 -05:00
Virgil Dupras
92ddc7ebc1
recipes/trs80: use grid module
...
Not much of a gain in terms of usability (a bit of a loss in fact, things are
a bit slow and glitchy), but it's a necessary move if we want to use upcoming
grid-enabled userspace apps, such as a visual text editor.
2020-02-26 16:27:27 -05:00
Virgil Dupras
a442c46935
sms/vdp: highlight cursor with inverted palette
2020-02-26 09:43:50 -05:00
Virgil Dupras
247b200dcc
New kernel module: grid
2020-02-24 20:36:08 -05:00
Virgil Dupras
434c8d5c0d
recipes/trs80: add ed
2020-02-23 20:52:44 -05:00
Virgil Dupras
6224ea2fe9
zasm: use printcrlf instead of hardcoded CRLF
2020-02-23 18:52:25 -05:00
Virgil Dupras
c3213e1e8c
recipes/trs80: can now run zasm!
2020-02-23 14:51:19 -05:00
Virgil Dupras
2860a10f71
recipes/trs80: add CFS support
2020-02-22 20:06:59 -05:00
Virgil Dupras
ec6df3087d
recipes/trs80: add "recv" command
...
This allows us to write contents from RS-232 directly to floppy! it works!
2020-02-22 14:43:07 -05:00
Virgil Dupras
049f2cf222
Reverse ttysafe escaping order
...
Sending the escape after its target made things complicated for upcoming
stuff I want to add. Although it makes `recv.asm` slightly larger, it's really
worth it.
2020-02-22 14:11:43 -05:00
Virgil Dupras
69f0c6dafd
trs80/floppy: implement write
2020-02-22 12:09:43 -05:00
Virgil Dupras
438c71ad3d
trs80/floppy: new module
...
Read-only support for now, hardcoded on drive :1. But it seems to work.
Can't wait to get a CFS running on this!
2020-02-21 19:30:57 -05:00
Virgil Dupras
08328b86a9
doc: add reverse engineering notes for trs80-4p
2020-02-21 10:39:51 -05:00
Virgil Dupras
bd38d46892
recipes/trs80: fix double line feeds
...
Lines should be terminated only with a CR on this system, not CRLF.
2020-02-21 08:40:42 -05:00
Virgil Dupras
0f2b3aca24
zasm: allow zasm to omit its 3rd argument
...
A bug in rdWS made zasm error out when omiting its 3rd argument.
fixes #90
2020-02-18 15:46:55 -05:00
Virgil Dupras
9515d63d47
recipes/trs80: Collapse OS runs on the TRS-80 Model 4P!
2020-02-12 11:23:49 -05:00
Virgil Dupras
c5116b39ae
Fix tools Makefile for GNU make
...
It seems that my little "@.c" trick only worked in BSD make...
2020-02-12 10:12:46 -05:00
Virgil Dupras
bab18216aa
recipes/trs80: add instructions to save recv program to floppy
2020-02-10 11:25:05 -05:00
Virgil Dupras
9d8aa3a0d0
Add TRS-80 model 4P hardware doc
...
It's a condensed version of the technical manual that can be a bit
more practical to use for quick referencing.
2020-01-25 14:44:30 -05:00
Virgil Dupras
a74ee81822
recipes/trs80: new recipe (WIP)
2020-01-11 23:01:28 -05:00
Virgil Dupras
e1e0676191
emul/hw/sms: add A/B ports and a Genesis pad
...
This makes the emulator suitable to run the base SMS recipe.
2020-01-10 21:20:44 -05:00
Virgil Dupras
b60252e330
emul/hw/(ti|sms): detect window being closed
...
Previously, it would never get out of the event loop.
2020-01-10 16:59:48 -05:00