1
0
mirror of https://github.com/hsoft/collapseos.git synced 2024-11-02 18:20:55 +11:00

Compare commits

..

2 Commits

Author SHA1 Message Date
Virgil Dupras
39f3637c60 recipes/ti84: TI-84+ base recipe is complete!
ref #41
2019-11-12 20:32:56 -05:00
Virgil Dupras
0e9173a89a zasm: optimize handleRST a little bit 2019-11-12 19:45:56 -05:00
2 changed files with 25 additions and 11 deletions

View File

@ -559,16 +559,14 @@ handleLDrr:
handleRST:
ld a, (INS_CURARG1+1)
; verify that A is either 0x08, 0x10, 0x18, 0x20, 0x28, 0x30 or 0x38.
; Good news: they're all multiples of 8.
; to verify that we're within range, we to 8-bit rotation. If any of
; the first 3 bytes are set (thus not a multiple of 8), the cp 8
; later will yield NC because those bits will now be upwards.
rrca \ rrca \ rrca
cp 8
jr nc, .error
; good, we have a proper arg. Now let's get those 3 bits in position
rlca \ rlca \ rlca
or 0b11000111
; Good news: the relevant bits (bits 5:3) are already in place. We only
; have to verify that they're surrounded by zeroes.
ld c, 0b11000111
and c
jr nz, .error
; We're in range. good.
ld a, (INS_CURARG1+1)
or c
ld (INS_UPCODE), a
ld c, 1
ret

View File

@ -1,12 +1,27 @@
# TI-84+
**This is a work-in-progress**
The TI-84+ is a machine with many advantages, one being that it's very popular.
It also has a lot of flash memory and RAM.
Its builtin keyboard and screen, however, are hard to use, especially the
screen. With a tiny font, the best we can get is a 24x10 console.
There is, however, a built-in USB controller that might prove very handy.
## Recipe
This recipe gets the Collapse OS shell to run on the TI-84+, using its LCD
screen as output and its builtin keyboard as input.
## Gathering parts
* [zasm][zasm]
* A TI-84+ (TI-83+ compatibility is being worked on. See issue #41)
* A USB cable
* [tilp][tilp]
* [mktiupgrade][mktiupgrade]
* Optional: [z80e][z80e] to emulate
## Build the ROM
Running `make` will result in `os.rom` being created.
@ -74,6 +89,7 @@ a "normal" key. The presses must be sequential.
Keys that aren't a digit, a letter, a symbol that is part of 7-bit ASCII or one
of the two mode key have no effect.
[zasm]: ../../tools/emul
[knightos]: https://knightos.org/
[z80e]: https://github.com/KnightOS/z80e
[mktiupgrade]: https://github.com/KnightOS/mktiupgrade