Virgil Dupras
b745f49186
Rename blockdev's API routines to GetB/PutB
...
The goal is to avoid mixing those routines with "character devices"
(acia, vpd, kbd) which aren't block devices and have routines that
have different expectations.
This is a first step to fixing #64 .
2019-10-30 16:59:35 -04:00
Virgil Dupras
a7aa2fc702
Improve test_parse_z coverage
...
Will help with #45
2019-10-20 18:19:02 -04:00
Virgil Dupras
f41ccdbc81
Update bootstrap binaries
2019-10-17 15:47:39 -04:00
Virgil Dupras
3b1bbc1751
zasm: support negative displacement for IX/IY
...
Needed by #30 .
2019-10-17 15:38:11 -04:00
Jorde Kang
5460f28cfb
Removed unnecessary import sys ( #46 )
2019-10-15 22:41:44 -04:00
James Stanley
7f7251d57f
Fix buffer overrun in shell emulator ( #51 )
2019-10-15 21:21:40 -04:00
Virgil Dupras
8926c33ab1
Fix tools/tests/zasm/runtests.sh shebang
...
It needs bash after all. On OpenBSD, /usr/sh works, but not on Ubuntu.
2019-10-10 15:22:21 -04:00
Keith Stellyes
4180b5873d
Fix for tools/zasm.sh being dependent on readlink -f (an issue on macOS, preventing builds) ( #28 )
...
* Fix for tools/zasm.sh being dependent on readlink -f (an issue on macOS, preventing builds)
* Wrap zasm.sh shebang in /usr/bin/env ; remove comment about BSDs
2019-10-10 15:21:37 -04:00
Virgil Dupras
83b314c450
zasm: lower RAM requirements
...
I've tested RAM usage when self-assembling and there weren't as high
as I thought. zasm's defaults now use less than 0x1800 bytes of RAM,
making it possible, theoretically for now, for a Sega Master System
to assemble Collapse OS from within itself.
2019-10-06 15:42:09 -04:00
Virgil Dupras
e4732d79dc
zasm: tighten directive detection a bit
2019-10-06 14:39:47 -04:00
Virgil Dupras
f4b6c7637d
zasm: rename #inc to .inc
...
scas, it's not needed any more.
2019-10-06 14:32:23 -04:00
Virgil Dupras
340a474941
emul/shell: use '@' symbol in jump table
2019-10-04 20:29:42 -04:00
Virgil Dupras
612323f714
zasm: add "last value" symbol (@)
2019-10-04 20:26:21 -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
1c6a7caeae
recipes/sms/romasm: make zasm's memory usage fit the SMS
2019-07-23 16:50:19 -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
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
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
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
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
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
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
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
252d71f1b8
Make tools/emul *BSD-friendly
2019-07-11 21:21:54 -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
63486126ef
zasm: update bootstrap bin
2019-07-01 10:56:38 -04:00
Virgil Dupras
d6b391e39a
Update bootstrap binaries
2019-06-19 13:22:51 -04:00
Virgil Dupras
7cdc288ef2
zasm: print progress indicator while assembling
2019-06-19 11:42:39 -04:00
Virgil Dupras
6f61aa404f
tools/cfsunpack: new tool
2019-06-17 15:21:05 -04:00
Virgil Dupras
4b423a9dc6
tools/blkdump.py: new tool
...
Also, rename "download.py" to "memdump.py".
2019-06-17 09:02:01 -04:00
Virgil Dupras
3bc165c8f6
Update bootstrap bin
2019-06-15 20:54:27 -04:00
Virgil Dupras
3e7d181d3c
zasm: properly raise error on bas ioPutC calls
2019-06-15 20:01:17 -04:00
Virgil Dupras
7ba8e85a4a
Update bootstrap binaries
2019-06-15 15:53:03 -04:00
Virgil Dupras
4ea7839488
New tool: download.py
2019-06-14 16:06:18 -04:00
Virgil Dupras
df5549ae76
tools/upload.py: support files larger than 0xff bytes
2019-06-14 15:06:14 -04:00
Virgil Dupras
b742d48b75
Update bootstrap binaries
2019-06-05 19:52:56 -04:00
Virgil Dupras
3dde51ae98
Allow file-to-file compilation in the emulated shell
2019-06-05 19:51:19 -04:00
Virgil Dupras
fc81bce70f
Fix error handling when writing to files in emulated shell
2019-06-05 16:13:15 -04:00
Virgil Dupras
c18d42f08b
fs: further adjust to previous blkdev refactoring
...
Previous refacoring broke all seek/tell within fs. fs handles now lost
the responsibility to keep track of current position. It's blkdev's job.
2019-06-04 20:45:01 -04:00