Commit Graph

1097 Commits

Author SHA1 Message Date
Virgil Dupras 5d4155aa32 Add words 1+ 2+ 1- 2- and consts 0 1 -1
Saves quite a few bytes in the final binary.
2020-04-15 21:29:39 -04:00
Virgil Dupras e1e634c815 boot: compaction
It's more hassle than it seems to move the stable ABI...
2020-04-15 20:57:46 -04:00
Virgil Dupras f6727f8e34 boot: use CODE where possible
Now that we use xcomp unit, boot entry creation can be a bit
cleaner.
2020-04-15 20:17:28 -04:00
Virgil Dupras a56ace4d3e boot: optimize (br) 2020-04-15 20:03:56 -04:00
Virgil Dupras 0750e8d0c0 Use IY for IP instead of RAM+06 2020-04-15 17:01:15 -04:00
Virgil Dupras 2a84a426b4 Strip usages of IY register 2020-04-15 16:53:04 -04:00
Virgil Dupras 2b0186fd58 boot: make routine field 1b
I forgot to do it earlier. NOP having an opcode of 0, it didn't have
any effect.
2020-04-15 16:24:03 -04:00
Virgil Dupras 6884c5cbe3 boot: use 3 labels instead of 4 2020-04-15 16:13:10 -04:00
Virgil Dupras d2ec5e271c Optimize boot binary's word execution code
Should be significantly faster now. Less push/popping and usage of
DE instead of IY.
2020-04-15 16:09:10 -04:00
Virgil Dupras d8de8a058a Make word routine refs 1b instead of 2
Saves quite a bit of binary space. More than 300 bytes in forth1.bin
2020-04-15 15:16:11 -04:00
Virgil Dupras e40c059c26 Make word routines all in the <0x100 range 2020-04-15 14:00:59 -04:00
Virgil Dupras 728e4ce123 Bring EXECUTE word outside of stable ABI 2020-04-15 13:36:28 -04:00
Virgil Dupras 22f132094a Clarify signed-ness
And fix broken negative display in ".".
2020-04-15 12:29:47 -04:00
Virgil Dupras b73e1a5f7a z80a: invert the meaning of IFZ, IFNZ, IFC, IFNC,
It is much less confusing when "IFZ," means "If Z is set, continue
into IF, else, jump to THEN,".
2020-04-15 12:20:09 -04:00
Virgil Dupras 2439f1ed86 Change SCMP for S=
Remove flagsToBC boot routine.
2020-04-15 12:19:58 -04:00
Virgil Dupras 16d5cd91de emul: don't segfault on quit when there is no blkfs 2020-04-15 10:56:49 -04:00
Virgil Dupras c40f336959 icore: extract "_pdacc" from "(parsed)"
Makes boot binary a bit bigger, but that "_pdacc" word will be
reused in high level apps.
2020-04-15 10:41:27 -04:00
Virgil Dupras 79acf92b28 emul: fix Makefile 2020-04-15 09:01:09 -04:00
Virgil Dupras 415bd7a169 Support nested LOAD 2020-04-14 21:04:07 -04:00
Virgil Dupras aec19e5c87 Add word "LOAD" 2020-04-14 18:15:07 -04:00
Virgil Dupras a67101fb8b Add word "EMPTY" 2020-04-14 16:07:07 -04:00
Virgil Dupras add3b6629b Make DO .. LOOP binary code more compact
Only a few bytes saved in forth1.bin, but the DO .. LOOP construct
isn't used much yet. It's still significant savings per LOOP call.
2020-04-14 14:59:01 -04:00
Virgil Dupras b8dd86bd18 Move notes.txt in blk 2020-04-14 14:54:42 -04:00
Virgil Dupras 1efb2821e3 Make usage and dictionary documentation in-system 2020-04-14 10:04:09 -04:00
Virgil Dupras f59cac0588 blk: first steps 2020-04-14 09:07:20 -04:00
Virgil Dupras d4cdb659b4 tools: add blkpack 2020-04-13 22:05:03 -04:00
Virgil Dupras 7292d486dc z80a: add stuctured flow words
Allow us to rely a little less on labels. We now only need 4.
2020-04-13 20:34:53 -04:00
Virgil Dupras 7d184b9e70 Use SUBHLss, macro more 2020-04-13 19:31:23 -04:00
Virgil Dupras d919a10265 Remove runbin
It's not used
2020-04-13 19:25:28 -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 509972b08c tools: add exec and convert ./upload to Forth 2020-04-13 10:25:27 -04:00
Virgil Dupras 1e0b40a876 Add word "FORGET" 2020-04-13 08:09:36 -04:00
Virgil Dupras 4c7dfe0dfe Add drv/at28 2020-04-12 21:49:42 -04:00
Virgil Dupras 76e4422796 Add adev unit 2020-04-12 21:49:20 -04:00
Virgil Dupras d996dd8c9e Add one layer of indirection in subsystem memory management
This allows optional subsystems to not needlessly reserve too much
system memory and it also reduces offsets bookkeeping.
2020-04-12 20:42:00 -04:00
Virgil Dupras d4f65911c0 rc2014: add notes about stage3.bin 2020-04-12 14:15:06 -04:00
Virgil Dupras 420836276d readln: rename (c<) to (rdln<)
so that it isn't picked up automatically at boot. Only when (c<$) is
called do we override (c<). This fixes tricky boot problems.
2020-04-12 14:01:54 -04:00
Virgil Dupras d6c9ab3f32 tools/stripfc: strip a little bit more 2020-04-12 12:47:50 -04:00
Virgil Dupras 9548514ff0 rc2014: dictionary relinking now works! 2020-04-12 10:24:53 -04:00
Virgil Dupras 06d0a02c12 link: fix LITA processing 2020-04-12 09:36:10 -04:00
Virgil Dupras 9390479d49 link: minor tweaks 2020-04-11 18:43:43 -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 3accc73f38 link: add LITA handling 2020-04-11 14:02:42 -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 0c6cabfd33 doc improvement 2020-04-11 13:19:30 -04:00
Virgil Dupras af3db1c3cf Add word "LITA" 2020-04-11 13:13:20 -04:00
Virgil Dupras 3822182226 xcomp: shrink scope
It seems that xcomp can't manage to reliably compile core+ units.
Let's limit the role of xcomp to z80c+icore.

I'm getting a little desperate here. I'll revisit the link.fs approach
with a new idea I had...
2020-04-11 11:38:45 -04:00