1
0
mirror of https://github.com/KarolS/millfork.git synced 2026-04-20 03:16:45 +00:00

Add readkey and fix putchar for more targets.

This commit is contained in:
Karol Stasiak
2019-06-26 12:59:55 +02:00
parent 22cdd1c768
commit 03f2bacd2b
9 changed files with 79 additions and 9 deletions
+11 -1
View File
@@ -3,7 +3,7 @@
#warn a8_kernel module should be used only on Atari computer-compatible targets
#endif
asm void putchar(byte a) {
noinline asm void putchar(byte a) {
? tax
lda $347
pha
@@ -13,6 +13,16 @@ asm void putchar(byte a) {
rts
}
noinline asm byte readkey() {
lda #$C
sta $2A
lda $E425
pha
lda $E424
pha
rts
}
inline void new_line() {
putchar($9b)
}
+16 -1
View File
@@ -6,7 +6,22 @@
// CHROUT. Write byte to default output. (If not screen, must call OPEN and CHKOUT beforehands.)
// Input: A = Byte to write.
asm void putchar(byte a) @$FFD2 extern
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
}
inline void new_line() {
putchar(13)
+16 -1
View File
@@ -5,7 +5,22 @@
// CHROUT. Write byte to default output. (If not screen, must call OPEN and CHKOUT beforehands.)
// Input: A = Byte to write.
asm void putchar(byte a) @$FFD2 extern
asm void chrout(byte a) @$FFD2 extern
asm void putchar(byte a) {
JSR chrout
LDA #0
STA $CB
? RTS
}
noinline asm byte readkey() {
__read_key__start:
LDA $EF
BEQ __read_key__start
LDX #0
JMP $D8D5
}
inline void new_line() {
putchar(13)
+2 -2
View File
@@ -24,7 +24,7 @@ asm void clrchn() @$FFCC extern
// Output: A = Device status.
asm byte readst() @$FFB7 extern
inline asm void putchar(byte a) {
asm void putchar(byte a) {
JSR chrout
LDA #0
STA $D4
@@ -32,7 +32,7 @@ inline asm void putchar(byte a) {
}
noinline asm byte readkey() {
__read_key__start
__read_key__start:
LDA $C6
BEQ __read_key__start
JMP $E5B4
+2
View File
@@ -5,6 +5,8 @@
asm void putchar(byte a) @$BB5A extern
asm byte readkey() @$BB06 extern
inline void new_line() {
putchar(13)
putchar(10)
+2
View File
@@ -6,6 +6,8 @@
asm void putchar(byte a) @$3e0d extern
asm byte readkey() @$3583 extern
inline void new_line() {
putchar(13)
putchar(10)
+15 -1
View File
@@ -6,7 +6,21 @@
// CHROUT. Write byte to default output. (If not screen, must call OPEN and CHKOUT beforehands.)
// Input: A = Byte to write.
asm void putchar(byte a) @$FFD2 extern
asm void chrout(byte a) @$FFD2 extern
asm void putchar(byte a) {
JSR chrout
LDA #0
STA $D4
? RTS
}
noinline asm byte readkey() {
__read_key__start:
LDA $C6
BEQ __read_key__start
JMP $E5CF
}
inline void new_line() {
putchar(13)