Virgil Dupras
bf289b0a67
z80a: de-variable-ize
...
Use straight VARIABLE instead of Z80MEM+. Initially, I used this
system to allow z80a to be embedded in a system binary, but now
I don't think it's worth it. Compiled, z80a is 2.5k. Sure, it's a
sizeable amount of RAM, but I think that even with it in RAM, I'll
manage a bootstrap within my most constrained machine, the SMS with
8K.
2020-05-14 15:29:22 -04:00
Virgil Dupras
a5269a1c7c
Make blk use system RAM
2020-05-14 14:51:20 -04:00
Virgil Dupras
eec9549bde
Make rdln use system RAM
2020-05-14 14:26:56 -04:00
Virgil Dupras
8a58449776
Add word ERR
2020-05-14 11:57:26 -04:00
Virgil Dupras
5446afd87d
emul: rename stage2 to stage
2020-05-14 10:55:39 -04:00
Virgil Dupras
9d4d9de511
emul: remove stage1
2020-05-14 10:49:24 -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
68262f925b
Almost done De-XPACKing!
2020-05-14 09:58:48 -04:00
Virgil Dupras
640e3321fc
Move a bunch of words from XPACKed core to xcomp core
2020-05-14 09:54:33 -04:00
Virgil Dupras
4143e2a699
Improve late-stage xcomp
2020-05-14 09:45:42 -04:00
Virgil Dupras
179c66be8a
Move a bunch of words from XPACKed core to xcomp core
2020-05-14 08:50:43 -04:00
Virgil Dupras
74896051bb
Move BOOT, (boot<) and INTEPRET to high xcomp
...
Saves us an (ok) indirection and will save us more soon.
2020-05-14 08:45:01 -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
80d730318a
Simplify LOAD's INTERPRET exit mechanism
2020-05-13 22:55:52 -04:00
Virgil Dupras
2e9e7047bf
Make INTERPRET break on ASCII EOT
...
This should allow me to simplify LOAD's exit mechanism on block
end.
2020-05-13 21:44:46 -04:00
Virgil Dupras
052d59a3a2
TOWORD: tiny optimization
...
My mind is getting forthy.
2020-05-13 20:59:00 -04:00
Virgil Dupras
33d37d4ce9
WORD: don't overwrite RAM on words over 31 chars
...
This allows me to reclaim some RAM I hadn't even noticed I
needlessly monopolise.
2020-05-13 20:39:53 -04:00
Virgil Dupras
76037ca1e7
Simplify boot process
...
That INIT thing is unnecessary.
2020-05-13 14:19:54 -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
d956386e9b
Move core's readln to xcomp core (high)
2020-05-13 09:28:32 -04:00
Virgil Dupras
029df00ad4
Free some space for xcomp core
2020-05-13 09:11:57 -04:00
Virgil Dupras
56af516d07
Move core's fmt to xcomp core (high)
2020-05-13 09:02:44 -04:00
Virgil Dupras
e2e9faef2c
Move a bunch of words from core to xcomp core
2020-05-13 08:50:07 -04:00
Virgil Dupras
d6a3e79394
Free some space for xcomp core low
2020-05-13 08:00:49 -04:00
Virgil Dupras
ddf23e3d02
Move a bunch of words from core to xcomp core
2020-05-13 07:55:36 -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
1094ec9c57
Make DO..LOOP stable
...
DO and LOOP now only compile words from stable ABI, which make them
suitable for xcomp. This will greatly simplify driver writing and
allow us to mostly avoid the low/high divide in drivers.
LEAVE is still xcomp-incompatible though.
This make us very very tight for "<0x100" limit for literal words.
Hopefully, we won't need more stuff in that area of the binary...
2020-05-12 10:40:59 -04:00
Virgil Dupras
b760c2d353
SCPY: don't copy the NULL
...
This makes [entry] much simpler. Also, remove unused LITS word.
2020-05-12 07:36:20 -04:00
Virgil Dupras
231d727598
Move a few words from core to xcomp core
2020-05-12 07:21:34 -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
a476773813
Add words BIT@ and BIT!
2020-05-10 08:40:49 -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
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
baf725aa38
Move a bunch of words from core to inner core
...
That makes it easier to write drivers that can be xcompiled.
2020-05-08 20:55: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
24e588019b
Add words RSHIFT and LSHIFT
2020-05-07 15:41:43 -04:00
Virgil Dupras
eaeb138a0c
Add words C@- C!- and MOVE-
2020-05-06 20:37:08 -04:00
Virgil Dupras
58ece9f9a1
editor: implement I command
...
Also, made LIST properly handle full 64-chars lines not ending with
a null or CR. Previously, such a line would be accompanied by its
following line, duplicating that line's output.
2020-05-06 12:19:36 -04:00
Virgil Dupras
f54b1dc504
Add 2>R and 2R>
...
This allows us to make DO..LOOP more compact.
2020-05-06 09:55:05 -04:00
Virgil Dupras
60b4bbf28a
Fix DUMP's broken "round up to next 8" logic
...
This was caused by the removal of signed-ness a long while ago.
2020-05-05 22:09:11 -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
fa79e3d8a6
Make (print) stop on CR
...
Lines edited with the Block editor end with 0xd and (print) spits
spurious CR when printing those lines.
Also, properly initialize ACC in BROWSE.
2020-05-05 15:49:50 -04:00
Virgil Dupras
c681cb639d
Add words >< and =><=
2020-05-04 22:30:29 -04:00
Virgil Dupras
c494917452
blk: Add LOAD+ and LOADR+
...
And use them in all places they make sense.
2020-05-04 21:43:48 -04:00