Virgil Dupras
0237ff105f
ed: fix 'd' going crazy when deleting last lines of buf
2019-07-21 19:43:45 -04:00
Virgil Dupras
0fd16a0bb6
ed: fix boken 'a' and 'd' cmds
2019-07-21 19:32:24 -04:00
Virgil Dupras
f43241a5a0
kbd: support shifted characters
2019-07-21 17:30:50 -04:00
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