Virgil Dupras
c26c454cbf
extra words: allow finer-grained loading
2020-06-03 20:28:18 -04:00
Virgil Dupras
d8a6456206
(parsed): fix crash on parsing non-decimal staring with '-'
...
The address returned in the error condition would be off by one.
2020-05-25 21:15:07 -04:00
Virgil Dupras
2d17b4e8ec
Make string length-prefixed instead of null-terminated
...
I'm not sure why I chose null-terminated initially. Probably because
the z80asm version had null-terminated strings.
Length-prefixes strings are the traditional form of strings in Forth
and it's a bit easier to work with them with traditional forth words
when they're under this form.
2020-05-25 20:34:52 -04:00
Virgil Dupras
6a507bcaac
Add word MOVE,
2020-05-24 19:55:00 -04:00
Virgil Dupras
2d2a846b25
Inline SCPY
...
I'm planning a string reform and it's standing in the way.
2020-05-24 14:19:25 -04:00
Virgil Dupras
a59322c252
Remove XPACK
...
Now that everything is cross-compiled, no need to XPACK. If we ever
need it again, we know where to find it.
2020-05-24 13:45:22 -04:00
Virgil Dupras
4c1cacd8d0
Remove Linker
...
Now that the boot binary is fully cross-compiled, there's no use for
the linker anymore. Theoretically, it could still be useful, but I
can't think of a real use case.
Let's take it out of the picture. If it's ever needed again, I'll
know where to find it.
2020-05-24 10:22:56 -04:00
Virgil Dupras
ed2b91411a
Limit ourselves to 8-bit branching
...
I'm planning on going back to 8-bit branching. 16-bit br cells incur
a non-negligible penalty and, while at first 64 words (128 bytes
forward or backward) seemed a bit limiting, I now don't see why one
would ever construct such a big branch. It would be un-forthy.
Also, I looked at using BC instead of IY to hold IP and the transition
would be a lot easier with 8-bit branching.
In this commit, all I do is add overflow checks in IF. The mechanic
below doesn't change. I'll give myself some time to think it over so
that I avoid yet another back and forth.
2020-05-24 10:16:25 -04:00
Virgil Dupras
5bbc256faf
Flush input buffer on QUIT
...
Prebiously, when encountering an error during a : ; definition from
input buffer, because the input buffer wasn't flushed, we would continue
interpreting and quit the whole program when encountering ;.
2020-05-24 09:23:19 -04:00
Virgil Dupras
02e6979a46
emul: implement AT-XY
...
VI, here we come!
2020-05-23 20:15:28 -04:00
Virgil Dupras
05ca95e759
emul: make updatebootstrap two-stepped
...
Writing directly to forth.bin seems to cause problems in some
environments such as Travis CI.
2020-05-23 19:35:36 -04:00
Virgil Dupras
c0b7b45570
emul: fix backspace
...
it was broken in the move to ncurses.
2020-05-23 14:47:19 -04:00
Virgil Dupras
7f3e55cb51
emul: add live register stats in the corner
2020-05-23 14:42:36 -04:00
Virgil Dupras
08b0c56ff6
emul: run Collapse OS inside a limited, fixed window
...
This will allow us to implement AT-XY, paving the way to all sorts
of nice new things.
2020-05-23 14:23:03 -04:00
Virgil Dupras
1d4b75add2
emul: deduplicate some code
2020-05-23 10:08:40 -04:00
Virgil Dupras
93c6d150e2
emul: don't embed forth.bin in emul binaries
...
Read the contents of forth.bin at runtime. This allows us to get
rid of the bin2c tooling.
2020-05-23 09:54:26 -04:00
Virgil Dupras
8d3da4c0de
emul: stop embedding blkfs in binaries
...
Instead, embed absolute path to blkfs. Having to rebuild the stage
binary at every change in blkfs is getting tedious.
2020-05-23 09:36:10 -04:00
Virgil Dupras
f884918d73
emul: use ncurses in /emul/forth
...
It doesn't change anything featurewise, but this change is in
preparation for the addition of an eventual AT-XY.
2020-05-23 08:36:55 -04:00
Virgil Dupras
d041b91846
Optimize chkPS
...
Use EXX instead of the stack for HL protection and remove all
spurious uses of chkPS,
I wanted to inline chkPS in next because of its "tight loop" status,
but for reasons I don't understand, doing so breaks Collapse OS.
Later...
2020-05-22 23:12:03 -04:00
Virgil Dupras
4f2c2ab80a
z80a: add a few ops
2020-05-22 22:23:24 -04:00
Virgil Dupras
581c6d015c
Fix blk overflow in usage guide index
2020-05-22 20:39:28 -04:00
Virgil Dupras
a2136e604d
rc2014/eeprom: adjust instructions
...
Now that adev is directly in core, things are easier.
2020-05-22 20:35:01 -04:00
Virgil Dupras
6bff03a48b
Move adev to core
...
It's small enough to be worth it.
2020-05-22 14:50:34 -04:00
Virgil Dupras
bb190f9665
Add word TUCK
2020-05-22 14:19:02 -04:00
Virgil Dupras
41d439376d
Add word NIP
2020-05-22 14:19:02 -04:00
Virgil Dupras
f75b1c8864
Add word ?DUP
2020-05-22 14:19:02 -04:00
Virgil Dupras
986249cf5e
rc2014: fix misinformation in README
2020-05-22 14:19:02 -04:00
Virgil Dupras
ae87e88c52
Add 5x7 font
...
Also, fix PSP leak in font compilers.
2020-05-22 08:06:55 -04:00
Virgil Dupras
d777a74be3
Forth takeover!
2020-05-21 22:16:01 -04:00
Virgil Dupras
0939241db1
Add bootstrap guide
2020-05-21 15:25:12 -04:00
Virgil Dupras
b5683f447b
sms/kbd: update instructions for Forth Collapse OS
...
The keyboard is a bit glitchy, but these are the same glitch as those
that were already present in Z80 Collapse OS. They still need fixing...
2020-05-21 13:57:34 -04:00
Virgil Dupras
b06cf09754
rc2014/ps2: update recipe to Forth's Collapse OS
2020-05-21 09:09:13 -04:00
Virgil Dupras
e9e3bd80f6
ps2: fix PS2_SHIFT check
2020-05-21 08:53:36 -04:00
Virgil Dupras
223cb94466
tools/upload: use C! instead of A!
...
Addressed devices are not included in Collapse OS by default. Let's
just accept that upload only works with memory.
2020-05-21 07:59:04 -04:00
Virgil Dupras
7d28637740
ps2: add shift support
2020-05-20 20:31:56 -04:00
Virgil Dupras
b874a1c175
ps2: wip
2020-05-20 18:56:18 -04:00
Virgil Dupras
c86d8a74a0
sms/kbd: PS/2 driver WIP
2020-05-19 21:18:44 -04:00
Virgil Dupras
aad6b5c2e5
avra: add global constants
2020-05-19 10:48:48 -04:00
Virgil Dupras
ac309bbd9e
avra: rename AGAIN, to AGAIN?,
...
AGAIN, becomes a shortcut for "' RJMP AGAIN?,"
2020-05-19 10:36:07 -04:00
Virgil Dupras
7a41c5c6f9
avra: add IF, .. THEN,
...
I decided to keep SKIP, .. TO, (renamed from AT,) around and limit
IF, .. THEN, to the simple BRNE case.
2020-05-19 10:26:57 -04:00
Virgil Dupras
8bbd29d37d
avra: add SKIP, .. AT,
...
Will change to IF, .. THEN, but I need a way to easily reverse a
BR op. But from this commit, the translation of sms/kbd/ps2ctl.asm
is complete! perfect binary match!
2020-05-19 10:19:37 -04:00
Virgil Dupras
8ca85abfbd
avra: add BEGIN, .. AGAIN,
2020-05-19 07:39:34 -04:00
Virgil Dupras
7b7e60ed4a
avra: implement LD/ST
...
Still making great progress on sms/kbd/ps2ctl. Still matching ref
binary.
2020-05-18 22:28:58 -04:00
Virgil Dupras
6a55a04f22
sms/kbd: still advancing on ps2ctl
...
next step: implement ST.
2020-05-18 20:55:10 -04:00
Virgil Dupras
e0bc14e55c
avra: implement BR*
...
Getting good! still advancing on ps2ctl in sms/kbd and still
matching reference binary.
2020-05-18 20:34:06 -04:00
Virgil Dupras
cdddfdefae
avra: add a layer of indirection to FLBL!
...
This will make it easier to fit BR* in there.
2020-05-18 19:45:30 -04:00
Virgil Dupras
63dec372ce
sms/kbd: continue advancing on ps2ctl rewrite
...
Still binary matching. Next step is branching support.
2020-05-17 21:10:02 -04:00
Virgil Dupras
177e70580f
sms/kbd: begin rewriting ps2ctl to Forth
...
So far, the resulting binary matches.
2020-05-17 14:24:27 -04:00
Virgil Dupras
8c4c879a65
avra: begin implementing forward label system
2020-05-17 11:04:08 -04:00
Virgil Dupras
212126d6d2
avra: add RJMP and RCALL
2020-05-17 10:13:43 -04:00