Commit Graph

289 Commits

Author SHA1 Message Date
Virgil Dupras 63473cc2e3 blockdev: make selection structure opaque
I'm about to change that structure and I don't want fs to be messed up
by this. I'm proceeding step by step...
2019-06-04 09:56:36 -04:00
Virgil Dupras c85ed474d7 blockdev: remove _blkCall
The ability to specify "0" routines in blkdev table is not used anymore
now that stdio is a separate subsystem.

Also, I'm preparing a blockdev refactoring and this complicates my work.
2019-06-04 09:23:10 -04:00
Virgil Dupras 50a26f6e39 recipe/rc2014/zasm: new recipe 2019-06-03 13:35:21 -04:00
Virgil Dupras dfe19e20e4 Includes work fine when assembling from the shell 2019-06-03 11:24:52 -04:00
Virgil Dupras 7ae29015de tools/emul: add hex representation to debug output
My mind isn't so good at decimal -> hex translations. It helps to have
this...
2019-06-03 11:16:06 -04:00
Virgil Dupras 082fa3431d We can now assemble source files from within the shell! 2019-06-03 11:15:07 -04:00
Virgil Dupras 839ba91312 mmap: make zasm-friendly 2019-06-03 11:14:29 -04:00
Virgil Dupras 78345b336e Update bootstrap bin 2019-06-03 11:14:15 -04:00
Virgil Dupras 465da6a79d zasm: add .out directive 2019-06-03 11:13:31 -04:00
Virgil Dupras 40b3d5e11e tools/emul/shell: copy user.h in its cfsin
This way, we can compile apps from within the shell that run on the
shell.
2019-06-03 09:26:28 -04:00
Virgil Dupras bed7032ee5 pgm: have its own file handle 2019-06-03 09:25:17 -04:00
Virgil Dupras a48a91c8da pgm: properly pass shell args in HL 2019-06-03 08:56:39 -04:00
Virgil Dupras ecbb77072e tools/emul/shell: allow the growing of fsdev 2019-06-03 08:42:08 -04:00
Virgil Dupras f511289a3a tools/emul: make shell's cfsin always have all apps compiled in it 2019-06-03 08:34:29 -04:00
Virgil Dupras 04bf2117b2 tools/emul: re-organize .h files
What used to be `tools/emul/user.h` was in fact specific to zasm, so I
moved it there.

To avoid name confusion, I renamed what used to be kernel.h and user.h
to kernel-bin.h and user-bin.h.
2019-06-03 08:12:44 -04:00
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.
2019-06-02 19:57:40 -04:00
Virgil Dupras 02954af570 Simplyfy the creation of includes.cfs
The next step is to generate them on-the-fly.
2019-06-02 16:47:17 -04:00
Virgil Dupras a4e45d1a75 zasm: make fsdev buffer larger
Now that we don't sed out the comments any more, we busted the buffer.
2019-06-02 16:46:44 -04:00
Virgil Dupras 58bdc6b27f cfspack: apply fnmatch only to files 2019-06-02 16:46:12 -04:00
Virgil Dupras 8e2a89cea5 cfspack: add the ability to spit a single file 2019-06-02 16:35:41 -04:00
Virgil Dupras c317fbdcf9 cfspack: add pattern argument 2019-06-02 16:22:07 -04:00
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.
2019-06-02 15:50:59 -04:00
Virgil Dupras 37a167562c Update bootstrap bin 2019-06-02 14:46:48 -04:00
Virgil Dupras 21c677a950 Make parseArgs not expect a leading space 2019-06-02 14:46:07 -04:00
Virgil Dupras f8bd8eeaaf Make userspace parse args the same way the shell does 2019-06-02 14:05:20 -04:00
Virgil Dupras 57356e47b4 recipes/rc2014/sdcard: add instructions to write to SD card 2019-06-02 12:04:11 -04:00
Virgil Dupras 26e71ee580 Update shell/blkdev docs 2019-06-02 11:23:24 -04:00
Virgil Dupras 95f1a8ddaf blkdev: make load command stop and the end of the stream
This allows us to reliably and easily load a file until the end of it.
2019-06-02 11:18:06 -04:00
Virgil Dupras 73c3fc7947 shell/stdio: decouple from blkdev (again)
Move load/save to blkdev_cmds and add a new "poke" builtin shell cmd
that is the mirror of "peek" and strictly uses stdio (no blkdev
involved).

This allows us to slim the minimal OS size but, more importantly, change
the behavior of "load" so that we don't expect GetC to block until Z is
set. This way, using "load X" with X being larger than the blkdev size
won't block forever.

This also brings our RC2014 minimal kernel below the 1K mark again.
2019-06-02 11:06:38 -04:00
Virgil Dupras 88bf98321e fs: adjust to DE->IX change in recipe/emul glue code 2019-06-02 10:18:03 -04:00
Virgil Dupras 5e5c7e6592 sdc: add sdcPutC
Wriiiiiite!
2019-06-01 19:53:42 -04:00
Virgil Dupras 3bc7cec03a sdc: allow the read of 0xff
That took an embarrasingly large amount of time to debug for something,
in the end, so obvious...
2019-05-31 21:33:42 -04:00
Virgil Dupras 2e8af376e3 pgm: new kernel module
The pgm module implements a shell hook so that when an unknown command
is typed, we look into the mounted filesystem and look for a file with
the same name as the command. If we find one, we load it in memory and
run it.
2019-05-31 14:54:15 -04:00
Virgil Dupras 7c191fd978 fs: standardize file handle routine argument to IX
Using HL/DE was awkward and error-prone.
2019-05-31 14:28:06 -04:00
Virgil Dupras 83771b538f fs: check for file size bounds in GetC 2019-05-31 11:12:29 -04:00
Virgil Dupras a641a94853 sdc: make sector swapping more robust
It would previously only work when GetC-ing our way into a new sector.
Seeking into one would not work. Now it's much more robust and this
paves the way for write support.
2019-05-30 14:55:38 -04:00
Virgil Dupras cdc865f8c6 tools/emul/shell: add debug output 2019-05-30 14:55:16 -04:00
Virgil Dupras 83e375936c shell: make seek cmd init DE to 0
So that blkdev not supporting 32-bit aren't messed up.
2019-05-30 14:54:28 -04:00
Virgil Dupras 6403ab1acf zasm: add support for SRL r 2019-05-30 14:46:25 -04:00
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!
2019-05-28 19:42:35 -04:00
Virgil Dupras 6b1679c811 recipes/rc2014/sdcard: mount filesystem! 2019-05-28 13:13:34 -04:00
Virgil Dupras 312e95479e sdc: fix bug preventing us from reading beyond first sector 2019-05-28 13:12:08 -04:00
Virgil Dupras 8cfe834edb recipes/rc2014/sdcard: use "sdci" and blockdev rather than user prog 2019-05-28 11:01:17 -04:00
Virgil Dupras 2c80924df9 zasm: indicate include lineno in errors 2019-05-28 09:57:29 -04:00
Virgil Dupras 8def8e7c38 zasm: add lineno to error reports
For now, top-level only
2019-05-27 20:52:40 -04:00
Virgil Dupras e414e600ea zasm: add ERR_DUPSYM and ERR_OOM error conditions 2019-05-27 17:45:05 -04:00
Virgil Dupras b298e607bd zasm: implement error conditions for #inc 2019-05-27 14:21:46 -04:00
Virgil Dupras 31f7c7771d zasm: implement error conditions in .org and .fill 2019-05-27 14:16:40 -04:00
Virgil Dupras 371076190f zasm: implement error conditions in .equ 2019-05-27 14:07:07 -04:00
Virgil Dupras 436ff51c39 zasm: implement error conditions in .dw 2019-05-27 13:52:58 -04:00