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
328f44814e
Make blockdev pointers 32 bits
This allows us to break through the 64K limit for includes CFS in zasm,
a limit we were dangerously close to breaking. In fact, this commit
makes us go over that limit. Right in time!
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
ae315499cb
Run unit tests with zasm
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
98695f9912
zasm: de-index symRegister
Make symRegister's logic pointer-based so we can break through the 0x100
limit.
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
d47d07757e
zasm: fix expr operator priority
5 years ago
Virgil Dupras
068e4327ec
zasm: fix false truncation error on "-" expressions
5 years ago
Virgil Dupras
650eec23de
zasm: add LD r, (IX/Y+d) support
5 years ago
Virgil Dupras
f44c3e5413
zasm: fix 3-digit hex parsing
5 years ago
Virgil Dupras
cdb6cce914
zasm: add multiplication expressions
5 years ago
Virgil Dupras
157ac03e25
zasm: can now assemble zasm/util.asm!
5 years ago
Virgil Dupras
28d5ebdc8a
Make apps folder into a namespace
To straighten out includes and to pave the way into zasm being part of
the same "include CFS" as parts, we make zasm includes namespaced.
5 years ago