Virgil Dupras
3b1bbc1751
zasm: support negative displacement for IX/IY
Needed by #30 .
4 years ago
Virgil Dupras
8926c33ab1
Fix tools/tests/zasm/runtests.sh shebang
It needs bash after all. On OpenBSD, /usr/sh works, but not on Ubuntu.
4 years ago
Virgil Dupras
f4b6c7637d
zasm: rename #inc to .inc
scas, it's not needed any more.
4 years ago
Virgil Dupras
c2d84563dd
zasm: allow duplicate const definition
This will allow interesting override scenarios, adding flexibility.
5 years ago
Virgil Dupras
cdb206b7a5
zasm: fix nasty (iy+d) misparsing bug
*sob*...
5 years ago
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.
5 years ago
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.
5 years ago
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.
5 years ago
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.
5 years ago
Virgil Dupras
253674ea05
Fix broken tests
Also, make tests run in a *BSD environment
5 years ago
Virgil Dupras
54b0602710
zasm: add support for RES and SET
5 years ago
Virgil Dupras
7cdc288ef2
zasm: print progress indicator while assembling
5 years ago
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.
5 years ago
Virgil Dupras
ae028e3a86
blockdev: make implementors "random access"
This huge refactoring remove the Seek and Tell routine from blockdev
implementation requirements and change GetC and PutC's API so that they
take an address to read and write (through HL/DE) at each call.
The "PTR" approach in blockdev implementation was very redundant from
device to device and it made more sense to generalize. It's possible
that future device aren't "random access", but we'll be able to add more
device types later.
Another important change in this commit is that the "blockdev handle" is
now opaque. Previously, consumers of the API would happily call routines
directly from one of the 4 offsets. We can't do that any more. This
makes the API more solid for future improvements.
This change forced me to change a lot of things in fs, but overall,
things are now simpler. No more `FS_PTR`: the "device handle" now holds
the active pointer.
Lots, lots of changes, but it also feels a lot cleaner and solid.
5 years ago
Virgil Dupras
9a72f10221
zasm: includes CFS is now built on-the-fly by zasm.sh
This makes for a much more usable zasm linux binary that doesn't have to
be rebuilt every time apps or kernel change.
5 years ago
Virgil Dupras
22e990ed89
Parametrize zasm linux bin's include CFS file
... instead of embedding it in the binary itself. Additionally, add a
"zasm.sh" wrapper to faciliate zasm calls on a linux machine.
5 years ago
Virgil Dupras
f8bd8eeaaf
Make userspace parse args the same way the shell does
5 years ago
Virgil Dupras
83771b538f
fs: check for file size bounds in GetC
5 years ago
Virgil Dupras
e414e600ea
zasm: add ERR_DUPSYM and ERR_OOM error conditions
5 years ago
Virgil Dupras
b298e607bd
zasm: implement error conditions for #inc
5 years ago
Virgil Dupras
31f7c7771d
zasm: implement error conditions in .org and .fill
5 years ago
Virgil Dupras
371076190f
zasm: implement error conditions in .equ
5 years ago
Virgil Dupras
436ff51c39
zasm: implement error conditions in .dw
5 years ago
Virgil Dupras
f5d4321ece
zasm: implement error conditions in .db
5 years ago
Virgil Dupras
d76dd54f4b
zasm: add ERR_OVFL
5 years ago
Virgil Dupras
f9118ef88e
xasm: expand ERR_BAD_ARG condition
5 years ago
Virgil Dupras
e1e6d52fea
zasm: add ERR_BAD_FMT
5 years ago
Virgil Dupras
412b3f374a
zasm: add ERR_BAD_ARG
5 years ago
Virgil Dupras
af2c561c6b
zasm: begin erroring out reliably
Up until now, invalid source input had undefined behavior. We're now
beginning to define that behavior so that zasm can be a bit more usable.
5 years ago
Virgil Dupras
e18f9b53a9
zasm: add support for "$" symbol
Allows for the ".fill x-$" pattern.
5 years ago
Virgil Dupras
848a7500bc
zasm: add support for .fill directive
5 years ago
Virgil Dupras
acddb045a5
zasm: add support for .org directive
5 years ago
Virgil Dupras
49be50b730
zasm now self-assembles!
5 years ago
Virgil Dupras
bc1496a7e3
zasm emul: bring back kernel/user distinction
It was a bad idea to remove it. Now that I'm introducing the concept of
a per-app glue file, it becomes much easier to build emulated zasm as a
userspace app.
5 years ago
Virgil Dupras
7fad3b0c90
Move /parts/z80 to /kernel
Let go of that "meta os" thing. it's not as meta as I made it sound
like. It's a kernel.
5 years ago
Virgil Dupras
78d9764005
zasm: can now assemble zasm/expr.asm!
5 years ago
Virgil Dupras
6cbce0533a
zasm: can now assemble zasm/instr.asm!
5 years ago
Virgil Dupras
ea8477bb91
zasm: accept whitespaces before separating comma
5 years ago
Virgil Dupras
3b1ef2b9af
zasm: bump global symbol limit to 0x200
5 years ago
Virgil Dupras
44abc79850
zasm: add support for SBC HL, ss
5 years ago
Virgil Dupras
bccf933ea9
zasm: try for regular number or symbol before parsing expr
Previously, we would mess up literals like '-'.
5 years ago
Virgil Dupras
723497af69
zasm: can now assemble zasm/directive.asm!
5 years ago
Virgil Dupras
9f6ebf538d
zasm: can assemble zasm/tok.asm!
5 years ago
Virgil Dupras
fd11941867
zasm: can now assemble zasm/parse.asm!
5 years ago
Virgil Dupras
2ce6b61964
zasm: add support for RLC r and RRC r
5 years ago
Virgil Dupras
29f0bcbe23
zasm: can now assemble zasm/symbol.asm!
5 years ago
Virgil Dupras
b7f5307de1
zasm: can now assemble zasm/io.asm!
5 years ago
Virgil Dupras
84090dcd14
zasm: add support for RL r and RR r
Also, make zasm assemble zasm/util.asm again!
5 years ago
Virgil Dupras
8832408e95
zasm: can now assemble fs.asm!
5 years ago
Virgil Dupras
068e4327ec
zasm: fix false truncation error on "-" expressions
5 years ago