Virgil Dupras
052d59a3a2
TOWORD: tiny optimization
My mind is getting forthy.
4 years ago
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.
4 years ago
Virgil Dupras
76037ca1e7
Simplify boot process
That INIT thing is unnecessary.
4 years ago
Virgil Dupras
bb77cd0759
xcomp: add overrides into a loadable block
Makes xcomp.fs units shorter.
4 years ago
Virgil Dupras
0434d02818
xcomp: implement X[']
4 years ago
Virgil Dupras
7c20501f27
Move core's blk to xcomp core (low and high)
TODO: implement X['] so that I can remove those XCURRENT patterns.
4 years ago
Virgil Dupras
d956386e9b
Move core's readln to xcomp core (high)
4 years ago
Virgil Dupras
029df00ad4
Free some space for xcomp core
4 years ago
Virgil Dupras
56af516d07
Move core's fmt to xcomp core (high)
4 years ago
Virgil Dupras
e2e9faef2c
Move a bunch of words from core to xcomp core
4 years ago
Virgil Dupras
d6a3e79394
Free some space for xcomp core low
4 years ago
Virgil Dupras
ddf23e3d02
Move a bunch of words from core to xcomp core
4 years ago
Virgil Dupras
cbf5baf3b6
Pack core words a bit
This leaves space for xcomp-core which is growing.
4 years ago
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.
4 years ago
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...
4 years ago
Virgil Dupras
b760c2d353
SCPY: don't copy the NULL
This makes [entry] much simpler. Also, remove unused LITS word.
4 years ago
Virgil Dupras
231d727598
Move a few words from core to xcomp core
4 years ago
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...
4 years ago
Virgil Dupras
a476773813
Add words BIT@ and BIT!
4 years ago
Virgil Dupras
e06d6c5345
ti84: we have a prompt
4 years ago
Virgil Dupras
4ce0727c72
ti84: kbd driver wip
4 years ago
Virgil Dupras
afc2327770
Split icore in 2 parts
The goal is to insert device drivers in between.
4 years ago
Virgil Dupras
baf725aa38
Move a bunch of words from core to inner core
That makes it easier to write drivers that can be xcompiled.
4 years ago
Virgil Dupras
b90efb0f7f
ti84: first glyph on screen!
On the emulator of course...
4 years ago
Virgil Dupras
58ec54fc97
ti84: wip
Gave more priority to CPU in the emulator because initialization would
otherwise be horrendously slow.
4 years ago
Virgil Dupras
24e588019b
Add words RSHIFT and LSHIFT
4 years ago
Virgil Dupras
eaeb138a0c
Add words C@- C!- and MOVE-
4 years ago
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.
4 years ago
Virgil Dupras
f54b1dc504
Add 2>R and 2R>
This allows us to make DO..LOOP more compact.
4 years ago
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.
4 years ago
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.
4 years ago
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.
4 years ago
Virgil Dupras
c681cb639d
Add words >< and =><=
4 years ago
Virgil Dupras
c494917452
blk: Add LOAD+ and LOADR+
And use them in all places they make sense.
4 years ago
Virgil Dupras
24e9fa0c30
Add word NL
4 years ago
Virgil Dupras
a3c3a2f44a
Remove unused DELW
4 years ago
Virgil Dupras
47a9c89f19
Update READMEs
4 years ago
Virgil Dupras
f023f9bcb4
Pack core words blks a bit tighter
With all this recent movements, we had a bit of a fragmentation
issue.
4 years ago
Virgil Dupras
3d908cef3a
Move all parsing words to Inner core
This allows us to get rid of the (parse*) indirection.
4 years ago
Virgil Dupras
8009270e79
Optimize parsing words
4 years ago
Virgil Dupras
931c812394
Remove cmp
Not worth the complexity and space.
4 years ago
Virgil Dupras
0b3a328e65
Add a layer of indirection for KEY
4 years ago
Virgil Dupras
446a58006d
Remove one of the 2 indirection layers for EMIT
2 was overkill
4 years ago
Virgil Dupras
3a27479f2b
fix stupid typo
I don't believe this, one hour of my life I'll never get back.
4 years ago
Virgil Dupras
2a578b3352
editor: implement F
4 years ago
Virgil Dupras
ecca70c7f3
Add layer of indirection to EMIT
This would allow things like temporary giving control to the *CL
line on the TRS-80. For example... A very far fetched example. Not
at all the only *raison d'etre* of the layer...
4 years ago
Virgil Dupras
5bf3baff05
editor: add edit buffer
Also, add word "C!+" and fix PSP leak in FILL.
4 years ago
Virgil Dupras
f38de1c151
Introduce the notion of Extra words
4 years ago
Virgil Dupras
0cf26547ff
Add words FLUSH and COPY
4 years ago
Virgil Dupras
581f04a4bc
Keep stage1 bootstrap bin instead of stage 0
XPACKed source needing to be kept in bootstrap bin didn't make
much sense. With the removal of stripfc, it makes more sense to keep
the compiled form of stage 1 in repository as a bootstrap binary.
Also, rename it to forth.bin.
4 years ago