Commit Graph

269 Commits

Author SHA1 Message Date
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
Virgil Dupras 05c38424c7 recipes/rc2014: stage2 WIP 2020-04-08 09:13:46 -04:00
Virgil Dupras 79527976ab recipes/rc2014: stage2 WIP 2020-04-07 22:36:59 -04:00
Virgil Dupras 6652125d47 Remove link.fs
This was a dead end.
2020-04-07 21:23:42 -04:00
Virgil Dupras 521ff84ca4 Reserve some RAM for future features 2020-04-07 17:32:04 -04:00
Virgil Dupras 7390cb18ed rc2014: a little cleanup 2020-04-05 09:29:03 -04:00
Virgil Dupras 58e88119ec rc2014: Forth Collapse OS, fully operational! 2020-04-05 09:09:00 -04:00
Virgil Dupras e5f22c7d91 rc2014: update README 2020-04-04 18:10:00 -04:00
Virgil Dupras edb2771488 rc2014: bingo!
Interpreter is functional in the emulator!
2020-04-04 17:43:00 -04:00
Virgil Dupras 7b42bbde27 rc2014: aaalmost there...
Red 5 standing by.
2020-04-04 17:07:35 -04:00
Virgil Dupras d1f4dc0ca3 rc2014: aaaalmost there.... 2020-04-04 14:27:23 -04:00
Virgil Dupras 5be9b9cd3e rc2014: we're almost getting there... 2020-04-04 10:31:22 -04:00
Virgil Dupras c56386af02 wip 2020-04-02 23:21:53 -04:00
Virgil Dupras 97dcad9b15 recipes/sms/kbd: use Collapse OS' AVR assembler 2020-02-26 23:10:43 -05:00