2017-12-06 23:23:30 +00:00
|
|
|
// Routines from Commodore 128 KERNAL ROM
|
|
|
|
|
2018-07-12 16:30:35 +00:00
|
|
|
#if not(CBM_128)
|
|
|
|
#warn c128_kernal module should be only used on C128-compatible targets
|
|
|
|
#endif
|
|
|
|
|
2017-12-06 23:23:30 +00:00
|
|
|
// CHROUT. Write byte to default output. (If not screen, must call OPEN and CHKOUT beforehands.)
|
|
|
|
// Input: A = Byte to write.
|
2019-06-26 10:59:55 +00:00
|
|
|
asm void chrout(byte a) @$FFD2 extern
|
|
|
|
|
|
|
|
asm void putchar(byte a) {
|
|
|
|
JSR chrout
|
|
|
|
LDA #0
|
|
|
|
STA $F4
|
|
|
|
? RTS
|
|
|
|
}
|
|
|
|
|
|
|
|
noinline asm byte readkey() {
|
|
|
|
__read_key__start:
|
|
|
|
LDA $D0
|
|
|
|
BEQ __read_key__start
|
|
|
|
LDX #0
|
|
|
|
JMP $C244
|
|
|
|
}
|
2018-12-17 16:18:29 +00:00
|
|
|
|
|
|
|
inline void new_line() {
|
|
|
|
putchar(13)
|
|
|
|
}
|