Commit Graph

659 Commits

Author SHA1 Message Date
Virgil Dupras
52e5f5b5bf kbd: simplify code 2019-07-21 16:58:16 -04:00
Virgil Dupras
77d805ea0f shell: allow cmds to be shorter than 4 chars 2019-07-21 15:57:55 -04:00
Virgil Dupras
70a42e8c4d recipes/sms/romasm: first steps 2019-07-21 15:37:03 -04:00
Virgil Dupras
421d881fae ed: allow inserting in empty file 2019-07-21 15:06:03 -04:00
Virgil Dupras
34f499184d zasm: add ".bin" directive
Also, remove zasm/test7 because it changes too much all time time
(whenever zasm changes) and isn't precise enough. Too much noise,
not worth it.
2019-07-21 12:58:02 -04:00
Virgil Dupras
01031a780a ed: Add 'w' command 2019-07-21 11:40:26 -04:00
Virgil Dupras
f6479486f2 ed: allow appending at the end of the file 2019-07-21 11:12:49 -04:00
Virgil Dupras
8d7abd9994 ed: fix broken buf insert logic 2019-07-21 10:53:11 -04:00
Virgil Dupras
1a5a1b9861 ed: make scratchpad memory only
The dual scraptchpad thing doesn't work. Things become very
complicated when it's time to write that back to the file. We
overwrite our contents and end up with garbage.
2019-07-21 10:45:58 -04:00
Virgil Dupras
942d2a952d ed: take filename as an argument
This hard-binds ed to the filesystem (I liked the idea of working
only with blockdevs though...), but this is necessary for the
upcoming `w` command. We need some kind of way to tell the
destination to write to truncate itself.

This only has a meaning in the filesystem, but it's necessary to
let the file know that its registered file size has possibly
shrunk.

I thought of alternatives that would have allowed me to keep ed
blkdev-centered, but they were all too hackish to my own taste.

Hence, this new hard-bind on files.
2019-07-20 19:43:07 -04:00
Virgil Dupras
fe15bafeca zasm: fix bug with registry selection
During expression parsing, if a local label was parsed, it would
select the local registry and keep that selection, making
subsequent global labels register in the wrong place.
2019-07-20 18:07:52 -04:00
Virgil Dupras
a7afbe091e tools/tests: remove scas requirement
I'm about to break compatibility with scas. Before I do that, I
need to adjusts tests. Instead of running scas to compare results,
we commit expected result as binaries directly in the repo.
2019-07-20 17:13:57 -04:00
Virgil Dupras
0c0db41477 recipes/sms/kbd: add schematic 2019-07-20 14:51:34 -04:00
Virgil Dupras
57e7b3ca05 recipes/sms/kbd: PS/2 keyboard adapter for the SMS! 2019-07-20 12:42:55 -04:00
Virgil Dupras
23354eba94 stdio: fix broken ReadC logic
Looping inside ReadC broke the shell's hook logic. We have to
return immediately when nothing is typed.
2019-07-19 14:44:47 -04:00
Virgil Dupras
253674ea05 Fix broken tests
Also, make tests run in a *BSD environment
2019-07-19 14:24:35 -04:00
Virgil Dupras
eefadc3917 ed: add support for 'a' and 'i' 2019-07-14 17:35:21 -04:00
Virgil Dupras
77a23cee84 ed: fix bufDelLines logic
It was mostly wrong.
2019-07-14 16:18:33 -04:00
Virgil Dupras
5669884508 ed: read initial contents in bufInit 2019-07-14 12:19:37 -04:00
Virgil Dupras
797cbdcc95 blockdev: protect IX in routines
Sure, it's a bit slower, but it prevents a lot of hard to debug
problems. I don't have to want to remember "don't use IX if you
have any blk* calls". Let's optimize I/O later.
2019-07-14 12:17:13 -04:00
Virgil Dupras
3b0029335a ed: add README 2019-07-14 11:31:14 -04:00
Virgil Dupras
8af1cf468c ed: add 'd' cmd 2019-07-14 10:32:28 -04:00
Virgil Dupras
50d0dc982c ed: check addr bounds 2019-07-14 09:04:51 -04:00
Virgil Dupras
c811d5330c apps/ed: add support for addr ranges 2019-07-13 22:09:17 -04:00
Virgil Dupras
2d9f74c2af apps/ed: refactoring 2019-07-13 21:08:16 -04:00
Virgil Dupras
8cf68dc7ad apps/ed: handle +[n] and -[n] addresses 2019-07-13 16:30:30 -04:00
Virgil Dupras
3861670bcc shell: don't parse empty cmds 2019-07-13 15:34:43 -04:00
Virgil Dupras
951dd2206d apps/ed: add the concept of "current line" 2019-07-13 15:28:44 -04:00
Virgil Dupras
e0f2a71dfc apps/ed: print specified line 2019-07-13 14:01:20 -04:00
Virgil Dupras
237d04fefd zasm: update bootstrap bin 2019-07-13 11:54:47 -04:00
Virgil Dupras
6dbbfa837d apps/ed: add (dummy) line number processing
Starting to feel interactive...
2019-07-13 11:53:30 -04:00
Virgil Dupras
3491c26132 apps/ed: start implementing I/O 2019-07-13 11:29:06 -04:00
Virgil Dupras
3d474c9121 apps/ed: first steps 2019-07-13 09:57:37 -04:00
Virgil Dupras
921a109749 stdio: little tweaks 2019-07-13 09:28:35 -04:00
Virgil Dupras
e01ee170cb stdio: add stdioReadC
A routine to conveniently read lines from TTY. Extracted from
shell. Will be used in other places.
2019-07-13 09:19:01 -04:00
Virgil Dupras
252d71f1b8 Make tools/emul *BSD-friendly 2019-07-11 21:21:54 -04:00
Virgil Dupras
8cc5bbb110 recipes/sms: update README 2019-07-02 16:31:58 -04:00
Virgil Dupras
ade9b96d14 sms/pad: make B jump to the next selection "class" 2019-07-02 16:18:00 -04:00
Virgil Dupras
162e503291 sms/vdp: properly protect AF on PutC 2019-07-02 15:54:07 -04:00
Virgil Dupras
f41508725d sms/pad: handle return properly
That is, send current chr selection, and then, send LF.
2019-07-02 15:23:28 -04:00
Virgil Dupras
9c87734499 sms/vdp: clear cursor before CR or BS
This avoids having "ghost" chr selection sticking around.
2019-07-02 15:22:14 -04:00
Virgil Dupras
ff7a114736 zasm: update bootstrap bin 2019-07-02 14:12:49 -04:00
Virgil Dupras
54b0602710 zasm: add support for RES and SET 2019-07-02 14:12:29 -04:00
Virgil Dupras
dd84c11905 recipes/sms: Add pad-oriented character selection 2019-07-02 13:15:24 -04:00
Virgil Dupras
2679172edf sms/vdp: implement "chrsel" hook
This allows for outputting a character selection before it's given
through GetC. That allows a pad-oriented character selection scheme.
2019-07-02 13:14:02 -04:00
Virgil Dupras
74de1c92cf sms/pad: implement character selection mechanism
Still a bit rough around the edges, but still, works rather well.
2019-07-02 13:12:52 -04:00
Virgil Dupras
748d7347c8 shell: add "loop hook"
This hook is called during every iteration, allowing regular screen
refresh when video is involved.
2019-07-02 13:11:37 -04:00
Virgil Dupras
bd003829e8 recipes/sms: plug shell in!
Now this is getting eminently exciting!
2019-07-02 11:14:30 -04:00
Virgil Dupras
404dbd0ddd sms/vdp: handle CR and LF 2019-07-02 11:14:16 -04:00
Virgil Dupras
767db17252 recipes/sms: hitting a button now adds a char on the screen 2019-07-02 10:49:30 -04:00