Virgil Dupras
7cf3ed38da
Extract str.asm from core.asm and make core included by userspace
...
Most of register fiddling routines (which is now the only thing contained
in care.asm) are used by almost all userspace apps, often in inner loops.
That makes the penalty of using jump tables for those a bit too high.
Moreover, it burdens jump tables needlessly.
Because this unit is very small (now that string routines are out), it makes
sense to always include it in binaries.
2019-11-14 10:14:15 -05:00
Virgil Dupras
7274dccbe7
Move ASCII consts to ascii.h
...
And made them shorter in name. The new ascii.h file allow reuse in userspace
code.
2019-11-13 20:38:06 -05:00
Virgil Dupras
39f3637c60
recipes/ti84: TI-84+ base recipe is complete!
...
ref #41
2019-11-12 20:32:56 -05:00
Virgil Dupras
17cc28e211
recipes/ti84: use a 3x5 font instead of a 5x7 one
...
This allow a lot more characters to fit on that tiny screen...
ref #41
2019-11-11 13:26:24 -05:00
Virgil Dupras
a4190f9984
recipes/ti84: document usage
...
ref #41
2019-11-09 14:20:01 -05:00
Virgil Dupras
c896b77143
ti/kbd: implement A-Lock
...
ref #41
2019-11-08 20:27:43 -05:00
Virgil Dupras
dca6ce4e8e
ti/kbd: begin GetC implementation
...
For now, only digits are scanned. Lifted from my "tiseg7" example.
ref #41
2019-11-08 14:04:56 -05:00
Virgil Dupras
fda9c9826e
ti/lcd: add linefeed support
...
There's no scrolling yet...
ref #41
2019-11-07 20:53:15 -05:00
Virgil Dupras
f4871d4d58
recipes/ti84: add upload instructions
...
ref #41
2019-11-07 13:42:40 -05:00
Virgil Dupras
ca84b5dac8
recipes/ti84: first step
...
This was mostly lifted from my "tihello" example, but it required significant
adjustments.
This commit also introduces a font management system. A lot of fonts are
available online, but sources aren't always clear so to avoid copyright
landmines, I re-created my first 5x7 font from scratch.
As it is now, this resulting ROM gets "Collapse OS>" to be displayed on the
LCD screen. Much work still left to do.
ref #41
2019-11-07 11:52:29 -05:00
Virgil Dupras
69daf49920
doc: fix mis-wording
2019-11-05 17:59:29 -05:00
Virgil Dupras
9344c4b961
doc: minor improvements
2019-11-04 14:45:10 -05:00
Virgil Dupras
2a55bfd375
stdio: remove a layer of indirection in GetC/PutC
...
We use zasm's ability to use labels in .equ directive.
We didn't do it before because for a while, we were in between scas
and zasm (scas was used in automated tests) so we needed to use the
lowest common denominator: zasm doesn't have macros and scas can't
use labels in .equ directives.
This forced us to add this layer of indirection. But now that we are
completely cut from scas' dependency, we can use this nice zasm's
ability.
2019-11-04 09:55:12 -05:00
Virgil Dupras
16bf8e28c0
Remove SHELL_LOOPHOOK
...
It was a bad idea and having sms/pad interact directly with sms/vdp
is much simpler.
ref #64
2019-11-03 19:13:01 -05:00
Virgil Dupras
20c0ba3dd0
Clarify recipes structure
...
Drop the "{pre,post}-collapse" thing and specify that the rc2014 recipes
are canonical.
2019-11-03 16:09:11 -05:00
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
luz.paz
6a635fddd9
Fix misc. source comment typos
...
Found via `codespell -q 3 -S ./tools -L splitted`
2019-10-09 11:12:08 -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
c839703682
recipes/sms/romasm: ed and zasm, fully functional!
2019-07-25 14:24:18 -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
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
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
87d794d426
recipes/sms/romasm: adjust ed/zasm offsets
2019-07-22 10:11:59 -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
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
8cc5bbb110
recipes/sms: update README
2019-07-02 16:31:58 -04:00
Virgil Dupras
dd84c11905
recipes/sms: Add pad-oriented character selection
2019-07-02 13:15:24 -04:00
Virgil Dupras
bd003829e8
recipes/sms: plug shell in!
...
Now this is getting eminently exciting!
2019-07-02 11:14:30 -04:00
Virgil Dupras
767db17252
recipes/sms: hitting a button now adds a char on the screen
2019-07-02 10:49:30 -04:00
Virgil Dupras
9eb80d5eac
sms/pad: new module to manage Megadrive controller in SMS
2019-07-02 09:02:19 -04:00
Virgil Dupras
ca5bc07a75
recipes/sms: show all letters in font when Start is pressed
2019-07-01 16:15:46 -04:00
Virgil Dupras
ba2804a255
recipes/sms: add controller support
2019-07-01 15:46:10 -04:00
Virgil Dupras
95fa473641
recipes/sms: New section for Sega Master System
2019-07-01 11:05:25 -04:00
Virgil Dupras
2efe887434
recipes/rc2014/ps2: add schema
2019-06-30 17:37:18 -04:00
Virgil Dupras
e3eea8839b
recipes/rc2014/ps2: works rather well now!
2019-06-30 14:16:00 -04:00
Virgil Dupras
2c6ab08d51
recipes/rc2014/ps2: add "resend" requests on parity check failures
2019-06-30 11:17:12 -04:00
Virgil Dupras
0f82ebe02d
recipes/rc2014/ps2: add parity checks
...
Also, add timer to reset reception status after 100us.
2019-06-29 20:45:08 -04:00
Virgil Dupras
360446e731
recipes/rc2014/ps2: don't alter SREG in hdlPCINT
2019-06-29 15:47:02 -04:00
Virgil Dupras
e44ebb08b2
recipes/rc2014/ps2: drive a shell with ps/2 kbd!
2019-06-29 14:26:03 -04:00
Virgil Dupras
3cdb25bfda
recipes/rc2014/ps2: implement scan code buffer
2019-06-29 11:18:37 -04:00
Virgil Dupras
20a7ad231f
recipes/rc2014/pc2: new recipe (WIP)
2019-06-28 22:54:57 -04:00
Virgil Dupras
6df77ddef3
recipes/rc2014/zasm: we can now assemble the recipe's kernel
2019-06-18 22:07:44 -04:00
Virgil Dupras
0a36ea0815
recipes/rc2014/zasm: add unpack + verification
2019-06-17 15:35:14 -04:00
Virgil Dupras
95b658897a
recipes/rc2014/zasm: add instructions to assemble kernel
2019-06-17 14:19:49 -04:00
Virgil Dupras
3e437747c2
recipes/rc2014: add missing calls to fsInit
...
Also, tighten RAM addresses. They were unecessarily loose.
2019-06-17 13:46:33 -04:00
Virgil Dupras
92a04f4627
sdc: support 24-bit addressing
...
Needed if we want to compile the kernel and zasm from within a SD card.
I didn't go straight for 32-bit because it was significantly more
complex and 24-bit give us 16M. Enough to go on for a while...
2019-06-15 13:41:20 -04:00
Virgil Dupras
e7c07cdd9a
apps/at28w: fix argument byte order
2019-06-14 21:11:45 -04:00