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
bd38d80f9c
Move Cross-compiled core from B390 to B350
...
and renamed it "Core words". Also, reworded the presentation.
2020-05-15 22:44:49 -04:00
Virgil Dupras
f2817870aa
sms: working on real hardware!
2020-05-15 21:53:26 -04:00
Virgil Dupras
ebc70be8e8
ti84: use dd instead of truncate
...
More portable
2020-05-15 17:25:58 -04:00
Virgil Dupras
f9a8e6f180
sms: Pad WIP
2020-05-15 15:41:06 -04:00
Virgil Dupras
1597f1e131
Don't generalize XYPOS just yet
...
It was ill-advised.
2020-05-15 14:09:31 -04:00
Virgil Dupras
175b4bc497
sms: CollapseOS prompt!
2020-05-15 12:46:25 -04:00
Virgil Dupras
ca60685067
Streamline initialization process
...
Instead of letting each configuration taking care of RDLN$ and
"CollapseOS" prompt, move this to BOOT to simplify xcomp units.
Initialization source code is now only for driver initialization.
2020-05-15 11:34:35 -04:00
Virgil Dupras
43eabf566b
sms: WIP !
2020-05-14 22:15:31 -04:00
Virgil Dupras
87b51a6261
By default, allocate about 0x100 bytes for PSP+RSP
...
During "make updatebootstrap", we use less than 0x20 bytes on the
PSP side and less than 0x40 bytes on the RSP one. 0x100 bytes ought
to be enough for anybody.
2020-05-14 18:41:09 -04:00
Virgil Dupras
b606dbf9af
rc2014: move xcomp unit's contents to blkfs
2020-05-14 12:29:34 -04:00
Virgil Dupras
a8e8204eba
trs80: adapt recipe to single stage xcomp
2020-05-14 12:08:17 -04:00
Virgil Dupras
303b34b483
ti84: adapt recipe to single stage xcomp
2020-05-14 11:36:10 -04:00
Virgil Dupras
0703da928e
rc2014: adapt recipe to single stage xcomp
...
It's now much easier...
2020-05-14 11:32:51 -04:00
Virgil Dupras
5446afd87d
emul: rename stage2 to stage
2020-05-14 10:55:39 -04:00
Virgil Dupras
e6bac985fa
Cross-compiles in a single stage!
...
Finally got rid of the XPACKed core and managed to cross-compile
all core words, which greatly simplifies the bootstrapping process.
2020-05-14 10:17:38 -04:00
Virgil Dupras
40a756cf1c
Move a bunch of words from XPACKed core to xcomp core
2020-05-14 08:18:53 -04:00
Virgil Dupras
51997533ff
Move a bunch of words from XPACKed core to xcomp core
2020-05-14 07:58:55 -04:00
Virgil Dupras
bd1e76ec5b
Gather all RC2014 drivers into a single "RC2014 Recipe section"
2020-05-13 14:56:38 -04:00
Virgil Dupras
bb77cd0759
xcomp: add overrides into a loadable block
...
Makes xcomp.fs units shorter.
2020-05-13 13:33:24 -04:00
Virgil Dupras
0434d02818
xcomp: implement X[']
2020-05-13 13:24:58 -04:00
Virgil Dupras
7c20501f27
Move core's blk to xcomp core (low and high)
...
TODO: implement X['] so that I can remove those XCURRENT patterns.
2020-05-13 10:50:46 -04:00
Virgil Dupras
029df00ad4
Free some space for xcomp core
2020-05-13 09:11:57 -04:00
Virgil Dupras
d6a3e79394
Free some space for xcomp core low
2020-05-13 08:00:49 -04:00
Virgil Dupras
6a5ff3adcb
rc2014: unify SD Card driver
...
Now more low/high layers.
2020-05-12 21:48:29 -04:00
Virgil Dupras
cbf5baf3b6
Pack core words a bit
...
This leaves space for xcomp-core which is growing.
2020-05-12 21:27:06 -04:00
Virgil Dupras
dfe474ca0e
xcomp: add XCOMPILE and X[COMPILE]
...
This allows us to move words like ABORT" to xcomp-core, which is
I think the last roadblock before being able to unify all drivers
into a single xcomp layer.
2020-05-12 21:08:18 -04:00
Virgil Dupras
44b065ff99
ti84: unify drivers
...
No more low/high
2020-05-12 12:41:47 -04:00
Virgil Dupras
6beb082e29
acia: make wholly cross compilable
2020-05-11 21:52:44 -04:00
Virgil Dupras
da371451cc
Replace INITIAL_SP with PS_ADDR conf
...
Now I struggle to remember why I ever did things they way I did.
There must have been a reason...
2020-05-11 21:08:24 -04:00
Virgil Dupras
4e1fe916be
ti84: working!
2020-05-10 14:56:07 -04:00
Virgil Dupras
2791dd992e
ti84: offset binary by 0x100 to free space for TI-specific stuff
...
Not yet tried on real hardware, but we should be getting pretty
close...
2020-05-10 14:06:01 -04:00
Virgil Dupras
06a4674317
ti84: implement a-lock
...
There's a bug where the first char after a-lock isn't a-modded. I
have troubles figuring it out for now. It feels like deja vu. I
think I had the same problem with asm.
2020-05-10 09:37:36 -04:00
Virgil Dupras
244776a7eb
ti84: enable alpha key
2020-05-09 20:54:47 -04:00
Virgil Dupras
abafd6d67b
ti84: fix glitches
2020-05-09 15:31:41 -04:00
Virgil Dupras
e06d6c5345
ti84: we have a prompt
2020-05-09 14:28:55 -04:00
Virgil Dupras
4ce0727c72
ti84: kbd driver wip
2020-05-09 11:55:58 -04:00
Virgil Dupras
2f1e635b9d
ti84: tidy up driver code
...
Pushed all words directly interfacing with ports and memory offsets to
low level layers. This saves us the need for keeping those variables in
runtime memory.
2020-05-09 08:50:55 -04:00
Virgil Dupras
afc2327770
Split icore in 2 parts
...
The goal is to insert device drivers in between.
2020-05-08 21:47:03 -04:00
Virgil Dupras
ffdc58739a
ti84: HelloWorld!
...
In emulator of course...
2020-05-08 11:36:50 -04:00
Virgil Dupras
b90efb0f7f
ti84: first glyph on screen!
...
On the emulator of course...
2020-05-08 09:07:44 -04:00
Virgil Dupras
58ec54fc97
ti84: wip
...
Gave more priority to CPU in the emulator because initialization would
otherwise be horrendously slow.
2020-05-08 07:56:34 -04:00
Virgil Dupras
114e753b64
ti84: WIP
2020-05-08 06:50:34 -04:00
Virgil Dupras
ab6a2688fe
recipes/trs80: self-hosting
2020-05-06 12:38:33 -04:00
Virgil Dupras
b89fa2981f
recipes/trs80: move RECV program to blkfs
2020-05-05 22:21:27 -04:00
Virgil Dupras
31119c2de3
xcomp: move all offset spitting to the end of the unit
...
I'd like to move this code, along with all recipe contents, to blk/.
It's easier if "emul-related" code is gathered at the same place.
2020-05-05 20:10:04 -04:00
Virgil Dupras
986a40d3e2
trs80: override NL to avoid double newlines
2020-05-04 09:21:10 -04:00
Virgil Dupras
f023f9bcb4
Pack core words blks a bit tighter
...
With all this recent movements, we had a bit of a fragmentation
issue.
2020-05-02 21:47:32 -04:00
Virgil Dupras
931c812394
Remove cmp
...
Not worth the complexity and space.
2020-05-02 19:57:56 -04:00
Virgil Dupras
07f807edee
recipes/trs80: making progress on floppy drivers
2020-04-30 16:10:35 -04:00
Virgil Dupras
65f359bda4
recipes/trs80: can write compiled version to floppy
2020-04-30 11:13:25 -04:00
Virgil Dupras
0044011f06
Move AT28 and TRS80 drivers to higher blocknos
...
I'm reserving the 100-200 range for non-bootstrapping needs.
2020-04-29 21:04:10 -04:00
Virgil Dupras
b046aba7f9
recipes/trs80: running!
...
no floppy yet.
2020-04-29 12:26:44 -04:00
Virgil Dupras
61b2e02351
xcomp: remove XOFF and use ORG and BIN( instead
2020-04-28 09:37:00 -04:00
Virgil Dupras
f97df4614e
recipes/trs80: wip
2020-04-28 07:51:41 -04:00
Virgil Dupras
ee79df225e
typo
2020-04-27 09:44:37 -04:00
Virgil Dupras
efed0e249e
recipes/rc2014/selfhost: add verification instructions
2020-04-27 09:24:40 -04:00
Virgil Dupras
6c51ea1ebb
recipes/rc2014/selfhost: complete instructions
...
I have yet to test the whole process on real hardware. Soon.
2020-04-26 20:20:36 -04:00
Virgil Dupras
f690cb2e5b
recipes/rc2014/sdcard: use driver from blkfs
...
This completes the migration of all Collapse OS code into blkfs!
2020-04-26 19:50:38 -04:00
Virgil Dupras
865f4f9256
Move AT28 driver to blkfs
...
And adjust rc2014/eeprom recipe
2020-04-26 15:18:28 -04:00
Virgil Dupras
7c692c1111
recipes/rc2014: include readln directly in stage 1
...
XPACK is more efficient than stripfc was, we can pack more stuff in 8K.
We now have enough space to fit readln.
2020-04-26 14:52:55 -04:00
Virgil Dupras
dee7eea497
Move link.fs to blkfs
2020-04-26 14:37:54 -04:00
Virgil Dupras
4d8574c1fe
recipe/rc2014: use core libs from blkfs
2020-04-26 13:57:44 -04:00
Virgil Dupras
a2f164ecc3
emul: bootstrap to stage2 from within Collapse OS!
...
Big bootstrapping change which greatly reduces the role of the modern
operating system in the bootstrapping process.
2020-04-26 10:24:09 -04:00
Virgil Dupras
6767012ebd
recipe/rc2014/selfhost: new recipe
2020-04-25 19:24:55 -04:00
Virgil Dupras
4160c8ebbf
recipes/rc2014: busting the 8K limit again!
2020-04-25 08:15:17 -04:00
Virgil Dupras
1bd191e86a
Move /emul/forth/* to /emul
...
Less noisy this way
2020-04-24 17:53:58 -04:00
Virgil Dupras
f19a5e1f71
Remove recipes/rc2014/zasm
...
That becomes irrelevant in Forth
2020-04-24 10:59:28 -04:00
Virgil Dupras
44403c3d4c
Move icore to blkfs
...
The way is clear for complete stage1 bootstrapping on the RC2014
target!
2020-04-23 15:14:14 -04:00
Virgil Dupras
8fbbf5209a
Copy sdc driver to blkfs
2020-04-23 13:55:00 -04:00
Virgil Dupras
a19376df6c
Copy ACIA driver to blkfs
...
We can get rid of acia.z80, but not of acia.fs yet, we still need it.
2020-04-23 12:42:41 -04:00
Virgil Dupras
dd6ce1b8fe
Avoid using (xentry) outside xcomp config
2020-04-23 12:09:31 -04:00
Virgil Dupras
fcd77f80ab
Use blk's boot.z80
2020-04-22 21:49:44 -04:00
Virgil Dupras
7a0e63746f
parse: don't validate 0x and 0b lengths
...
It doesn't serve much purpose and takes up many precious bytes. And,
after all, parsed didn't do it either...
2020-04-21 20:40:23 -04:00
Virgil Dupras
372524fd19
Move xcomp to blocks
2020-04-21 20:30:14 -04:00
Virgil Dupras
4967c2add2
Merge z80c.fs and boot.fs into boot.z80
2020-04-20 21:27:34 -04:00
Virgil Dupras
bf49ca2ed2
recipes/rc2014: fix Makefile
...
It didn't have z80a anymore.
2020-04-20 19:22:43 -04:00
Virgil Dupras
98191d0b0d
recipes/rc2014/sdcard: now works under Forth!
2020-04-19 16:56:37 -04:00
Virgil Dupras
dfaa1dc101
link: add "offset" argument to RLDICT
...
As long as our target was the first word of the "user" dict, using
target's prev to compute offset was fine, but when the target is not
the first word, this system breaks down.
This is the case when, instead of including source code in our boot
binary, we paste it in Collapse OS' prompt.
Also, adjust RC2014 recipe to include stage 3 assembling instructions
with the "paste into prompt" method.
2020-04-19 16:28:40 -04:00
Virgil Dupras
a2d89de557
drv/sdc: implement core words in z80
...
In addition to making the driver significantly faster, it allows us
to make SDC port configuration opaque to sdc.fs.
2020-04-18 20:33:51 -04:00
Virgil Dupras
287213fc68
recipes/rc2014/eeprom: remove old stuff
2020-04-17 21:10:20 -04:00
Virgil Dupras
733aff7b7a
rc2014: adjust bootstrapping instructions
2020-04-16 09:27:49 -04:00
Virgil Dupras
b536d3bfd6
rc2014: complete the EEPROM recipe
2020-04-13 14:41:02 -04:00
Virgil Dupras
d0545d555f
upload: use A! instead of C!
...
It makes the tool much more versatile. I'll have adev being included
in all recipes, so it can be assumed.
2020-04-13 12:00:56 -04:00
Virgil Dupras
d08a9711c5
boot: make HERE point to RAMEND instead of CURRENT
...
The former was only used in the peculiar context of "/emul". The
regular case is actually HERE pointing to RAMEND on boot.
2020-04-13 11:43:15 -04:00
Virgil Dupras
d4f65911c0
rc2014: add notes about stage3.bin
2020-04-12 14:15:06 -04:00
Virgil Dupras
9548514ff0
rc2014: dictionary relinking now works!
2020-04-12 10:24:53 -04:00
Virgil Dupras
bf447f58c5
link: handle doesWord
2020-04-11 16:38:45 -04:00
Virgil Dupras
13cf294201
rc2014/acia: adjust to latest developments
2020-04-11 15:11:36 -04:00
Virgil Dupras
c515720e23
Revert "Remove link.fs"
...
Let's revisit the relinking approach, with LITA this time.
This reverts commit 6652125d47
.
2020-04-11 13:31:17 -04:00
Virgil Dupras
6368cc3bac
Remove (sysv)
...
Replace its usages with direct RAM+ offsets. The (sysv) mechanism was
incompatible with cross-compilation of a full interpreter.
2020-04-10 14:57:00 -04:00