Commit Graph

248 Commits

Author SHA1 Message Date
Virgil Dupras
bc951a5ff1 ed and VE: add command Y 2020-06-10 17:27:14 -04:00
Virgil Dupras
8f0e51a21c VE: make D copy first deleted line to IBUF 2020-06-10 16:59:12 -04:00
Virgil Dupras
6a6c59300e VE: make ACC reset after each non-digit keystrokes
It simplifies things. Also, removed ';' which became useless.
2020-06-10 16:54:36 -04:00
Virgil Dupras
c16c5c98ce Improve usage docs 2020-06-09 22:55:42 -04:00
Virgil Dupras
1adfd0c1a6 ed: make X and E cut to IBUF
This allows cut&paste similar to VI's
2020-06-09 22:09:15 -04:00
Virgil Dupras
f90e03b0cb ed: free some blocks for the docs 2020-06-09 21:48:49 -04:00
Virgil Dupras
64ce8ab3e9 ed: Improve F with repeated searches
Make F search from curpos+1 so that it's possible to search the
same word we've just found a second time. Previously, it would find
the word under the cursor.

Also, improve docs a bit.
2020-06-09 21:17:08 -04:00
Virgil Dupras
4d893d90fc VE: Improve I and F buffer typing
Previously, it would keep the old buffer displayed why typing over
it. I had kept it thus because I didn't want to erase the buffer
right away because the behavior is that when we type nothing, we
keep the buffer as-is and repeat the action.

Now, the behavior of I and F is much better. It keeps the buffer
displayed until the first non-return keystroke and then erases it.

Also, fixed PSP leak in _type and fixed PSP overuse in successful
_F (they balanced out).
2020-06-08 21:23:23 -04:00
Virgil Dupras
a36db99651 VE: properly initialize variables
This fixes weird glitches I had on trs80. It's *always* a matter of
RAM initialization. By now, I should know...
2020-06-07 16:16:07 -04:00
Virgil Dupras
b2b556911f trs80: implement AT-XY
Also, I've run VE on the TRS-80 for the first time! It doesn't work
well though. Screen is mostly blank all the time.

I removed instructions from the recipe which became obsolete when
Collapse OS became 100% bootstrapped. Also, I've updated instructions
to change the NL override which is necessary for blkup to work.
2020-06-07 11:14:57 -04:00
Virgil Dupras
ab76d8d648 VE: add 'D' 2020-06-07 09:30:31 -04:00
Virgil Dupras
15acf30ca3 VE: add 'o' and 'O' 2020-06-07 07:25:02 -04:00
Virgil Dupras
c6016cd429 VE: fix buffer overflow with 'f' and make 'H' and 'L' affect 'f' 2020-06-06 21:59:22 -04:00
Virgil Dupras
b22ab8437b VE: add command 'f'
Kinda proud of this one. Efficiently piggy-backing on the Block
Editor, keeping things simple, and yet, building power into the
editor.
2020-06-06 21:46:46 -04:00
Virgil Dupras
204a66277e VE: replace 'W' with 'b' and implement 'W' and 'B'
Which are end-of-word movements.
2020-06-06 21:01:35 -04:00
Virgil Dupras
9d4e9ef08d VE: Add X 2020-06-05 14:01:39 -04:00
Virgil Dupras
6212a08866 VE: Add F and E 2020-06-05 13:54:45 -04:00
Virgil Dupras
a1b99275e6 VE: Add replace mode 2020-06-05 11:01:26 -04:00
Virgil Dupras
e7a6c777c7 VE: refactor mode indicators
The indicator is going to be empty most of the time and will be
emitted by the mode changer directly. That's going to the upper-right
corner and the status bar avoids emitting in that area.
2020-06-05 10:38:05 -04:00
Virgil Dupras
4af93d53e3 VE: add I command
Also, add insert and find buffers to the header, making it 3 lines
high.

Also, fix the "I" overshadowing word which wasn't operating on the
proper RSP level.

Also, fix I which didn't mark the block as dirty.
2020-06-04 22:54:27 -04:00
Virgil Dupras
e36080d7b8 VE: load Block Editor and reuse some of its words 2020-06-04 20:20:35 -04:00
Virgil Dupras
297c187426 VE: add mode indicator in status bar 2020-06-04 20:07:02 -04:00
Virgil Dupras
2bf4db59ed VE: Add H and L
Also, add MODE indirection.
2020-06-04 19:20:40 -04:00
Virgil Dupras
878df2d53b VE: make w affected by modifier 2020-06-04 18:59:54 -04:00
Virgil Dupras
98e820cf51 WE: why case-insensitive again? 2020-06-04 18:52:59 -04:00
Virgil Dupras
11843cc613 VE: add W and S movements 2020-06-04 17:22:07 -04:00
Virgil Dupras
77aedd7338 VE: add H, J, K, L 2020-06-04 12:04:13 -04:00
Virgil Dupras
c07a594e1a Begin working on a Visual Editor 2020-06-04 10:39:59 -04:00
Virgil Dupras
f53f91558b find: don't protect BC
not needed
2020-06-03 20:57:29 -04:00
Virgil Dupras
c26c454cbf extra words: allow finer-grained loading 2020-06-03 20:28:18 -04:00
Virgil Dupras
d8a6456206 (parsed): fix crash on parsing non-decimal staring with '-'
The address returned in the error condition would be off by one.
2020-05-25 21:15:07 -04:00
Virgil Dupras
2d17b4e8ec Make string length-prefixed instead of null-terminated
I'm not sure why I chose null-terminated initially. Probably because
the z80asm version had null-terminated strings.

Length-prefixes strings are the traditional form of strings in Forth
and it's a bit easier to work with them with traditional forth words
when they're under this form.
2020-05-25 20:34:52 -04:00
Virgil Dupras
6a507bcaac Add word MOVE, 2020-05-24 19:55:00 -04:00
Virgil Dupras
2d2a846b25 Inline SCPY
I'm planning a string reform and it's standing in the way.
2020-05-24 14:19:25 -04:00
Virgil Dupras
a59322c252 Remove XPACK
Now that everything is cross-compiled, no need to XPACK. If we ever
need it again, we know where to find it.
2020-05-24 13:45:22 -04:00
Virgil Dupras
4c1cacd8d0 Remove Linker
Now that the boot binary is fully cross-compiled, there's no use for
the linker anymore. Theoretically, it could still be useful, but I
can't think of a real use case.

Let's take it out of the picture. If it's ever needed again, I'll
know where to find it.
2020-05-24 10:22:56 -04:00
Virgil Dupras
ed2b91411a Limit ourselves to 8-bit branching
I'm planning on going back to 8-bit branching. 16-bit br cells incur
a non-negligible penalty and, while at first 64 words (128 bytes
forward or backward) seemed a bit limiting, I now don't see why one
would ever construct such a big branch. It would be un-forthy.

Also, I looked at using BC instead of IY to hold IP and the transition
would be a lot easier with 8-bit branching.

In this commit, all I do is add overflow checks in IF. The mechanic
below doesn't change. I'll give myself some time to think it over so
that I avoid yet another back and forth.
2020-05-24 10:16:25 -04:00
Virgil Dupras
5bbc256faf Flush input buffer on QUIT
Prebiously, when encountering an error during a : ; definition from
input buffer, because the input buffer wasn't flushed, we would continue
interpreting and quit the whole program when encountering ;.
2020-05-24 09:23:19 -04:00
Virgil Dupras
d041b91846 Optimize chkPS
Use EXX instead of the stack for HL protection and remove all
spurious uses of chkPS,

I wanted to inline chkPS in next because of its "tight loop" status,
but for reasons I don't understand, doing so breaks Collapse OS.
Later...
2020-05-22 23:12:03 -04:00
Virgil Dupras
4f2c2ab80a z80a: add a few ops 2020-05-22 22:23:24 -04:00
Virgil Dupras
581c6d015c Fix blk overflow in usage guide index 2020-05-22 20:39:28 -04:00
Virgil Dupras
6bff03a48b Move adev to core
It's small enough to be worth it.
2020-05-22 14:50:34 -04:00
Virgil Dupras
bb190f9665 Add word TUCK 2020-05-22 14:19:02 -04:00
Virgil Dupras
41d439376d Add word NIP 2020-05-22 14:19:02 -04:00
Virgil Dupras
f75b1c8864 Add word ?DUP 2020-05-22 14:19:02 -04:00
Virgil Dupras
ae87e88c52 Add 5x7 font
Also, fix PSP leak in font compilers.
2020-05-22 08:06:55 -04:00
Virgil Dupras
0939241db1 Add bootstrap guide 2020-05-21 15:25:12 -04:00
Virgil Dupras
e9e3bd80f6 ps2: fix PS2_SHIFT check 2020-05-21 08:53:36 -04:00
Virgil Dupras
7d28637740 ps2: add shift support 2020-05-20 20:31:56 -04:00
Virgil Dupras
b874a1c175 ps2: wip 2020-05-20 18:56:18 -04:00