keyboard part of CHRIN now preserves .Y
This commit is contained in:
1 parent
671a3bc3bf
commit
8cd2eac996
12 files changed
+12
-7
No files matched your search
@@ -132,7 +132,7 @@ NOTE: Even the 'DONE' routines won't support features described as missing in on
|
||||
| `$FFC6` | `$F20E` | `CHKIN` | DONE | |
|
||||
| `$FFC9` | `$F250` | `CKOUT` | DONE | |
|
||||
| `$FFCC` | `$F333` | `CLRCHN` | DONE | |
|
||||
| `$FFCF` | `$F157` | `CHRIN` | PARTIAL | no screen support, keyboard does not preserve .Y |
|
||||
| `$FFCF` | `$F157` | `CHRIN` | PARTIAL | no screen device support |
|
||||
| `$FFD2` | `$F1CA` | `CHROUT` | DONE | |
|
||||
| `$FFD5` | `$F49E` | `LOAD` | DONE | |
|
||||
| `($0330)` | `$F4A5` | `LOAD` | DONE | |
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -89,7 +89,7 @@
|
||||
.label C3PO = $94 // flag - is BSOUR content valid
|
||||
.label BSOUR = $95 // serial bus buffered output byte
|
||||
.label SYNO = $96 // -- NOT IMPLEMENTED --
|
||||
.label XSAV = $97 // -- NOT IMPLEMENTED --
|
||||
.label XSAV = $97 // temporary register storage for ASCII related routines [!] usage details might differ
|
||||
.label LDTND = $98 // number of entries in LAT / FAT / SAT tables
|
||||
.label DFLTN = $99 // default input device
|
||||
.label DFLTO = $9A // default output device
|
||||
|
||||
@@ -8,8 +8,6 @@
|
||||
// CPU registers that has to be preserved (see [RG64]): .Y
|
||||
//
|
||||
|
||||
// XXX keyboard part currently does not preserve register Y, to be fixed!
|
||||
|
||||
// Reads a byte of input, unless from keyboard.
|
||||
// If from keyboard, then it gets a whole line of input, and returns the first char.
|
||||
// Repeated calls after that read out the successive bytes of the line of input.
|
||||
|
||||
@@ -7,7 +7,10 @@
|
||||
chrin_keyboard:
|
||||
|
||||
// Save .X
|
||||
phx_trash_a
|
||||
stx XSAV
|
||||
|
||||
// Save .Y
|
||||
phy_trash_a
|
||||
|
||||
chrin_repeat:
|
||||
|
||||
@@ -35,7 +38,8 @@ empty_line:
|
||||
// (and don't forget to actually print the carriage return, so that
|
||||
// the cursor advances and screen scrolls as required)
|
||||
|
||||
plx_trash_a
|
||||
ply_trash_a
|
||||
ldx XSAV
|
||||
clc
|
||||
lda #$0d
|
||||
rts
|
||||
@@ -47,8 +51,11 @@ not_end_of_input:
|
||||
// Return next byte of waiting
|
||||
tay
|
||||
chrin_keyboard_return_byte:
|
||||
plx_trash_a
|
||||
lda (LXSP),y
|
||||
tax
|
||||
ply_trash_a
|
||||
txa
|
||||
ldx XSAV
|
||||
jsr screen_code_to_petscii
|
||||
clc
|
||||
rts
|
||||
|
||||
Reference in new issue
Block a user