Virgil Dupras
c96c8e7df0
ed: update curline after a, i and d
2019-07-25 21:24:36 -04:00
Virgil Dupras
c839703682
recipes/sms/romasm: ed and zasm, fully functional!
2019-07-25 14:24:18 -04:00
Virgil Dupras
22f9b4f07e
kbd: add keypad codes to keycode table
2019-07-25 14:22:17 -04:00
Virgil Dupras
d1735c3a73
zasm: remove last remnants of "old style" variables
...
This makes zasm suitable to run from ROM.
2019-07-25 14:02:04 -04:00
Virgil Dupras
13028d431e
recipes/sms/romasm: limit mmap size
...
Otherwise, we overflow into the RAM mirror, which means we
overwrite the beginning of the RAM.
2019-07-23 23:01:17 -04:00
Virgil Dupras
4f6c230dc8
mmap: add MMAP_LEN parameter
2019-07-23 23:00:32 -04:00
Virgil Dupras
985d56ca5a
core: preserve A in cpHLDE
2019-07-23 22:59:10 -04:00
Virgil Dupras
1c6a7caeae
recipes/sms/romasm: make zasm's memory usage fit the SMS
2019-07-23 16:50:19 -04:00
Virgil Dupras
af0b6231ca
recipes/sms/romasm: make ed's memory usage fit the SMS
...
Yup, that's ultimately why I've just made this whole big zasm
refactoring in the previous commits. To allow for this.
But also, zasm is in much better shape now...
2019-07-23 16:13:52 -04:00
Virgil Dupras
c2d84563dd
zasm: allow duplicate const definition
...
This will allow interesting override scenarios, adding flexibility.
2019-07-23 16:01:23 -04:00
Virgil Dupras
ffa28195b1
recipes/sms/romasm: adjust glue to zasm changes
...
Forward reference of SHELL_MEM_PTR wasn't working (nor should it
have been...).
2019-07-23 15:42:52 -04:00
Virgil Dupras
1dec33e02a
zasm: make symbol registry a bit more straightforward
...
Instead of strings of variable length driving the iteration of the
registry, we do so through records that keep track of lengths and
counts.
2019-07-23 15:21:42 -04:00
Virgil Dupras
02c7eb0161
zasm: clarify strlen's API
2019-07-23 14:59:38 -04:00
Virgil Dupras
cc7a4bae58
zasm: improve .equ duplicate detection handling
...
Things are a bit more straightforward now.
2019-07-23 14:00:01 -04:00
Virgil Dupras
9ea72dc1d0
zasm: add separate symbol registry for constants
...
This will allow me to make the ".org" treatment a bit less murky.
2019-07-23 13:59:55 -04:00
Virgil Dupras
cdb206b7a5
zasm: fix nasty (iy+d) misparsing bug
...
*sob*...
2019-07-23 13:58:18 -04:00
Virgil Dupras
b95f4c8c24
zasm: remove SYM_CTX_PTR
2019-07-22 16:34:40 -04:00
Virgil Dupras
f4f91ebd79
zasm: remove SYM_CTX
2019-07-22 16:13:00 -04:00
Virgil Dupras
311d04e9aa
zasm: make symbol registry easily parametrizable
...
I'm about to split the global registry in two (labels and consts)
and the previous state of registry selection made things murky.
Now it's much better.
2019-07-22 15:13:09 -04:00
Virgil Dupras
518f12b07f
sms/vdp: clear 2 lines forward when doing LF
...
It allows to see much more easily where the action happens on the screen.
2019-07-22 11:03:44 -04:00
Virgil Dupras
87d794d426
recipes/sms/romasm: adjust ed/zasm offsets
2019-07-22 10:11:59 -04:00
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