mirror of
https://github.com/flowenol/apple1serial.git
synced 2024-09-27 04:54:42 +00:00
71 lines
1.3 KiB
Plaintext
71 lines
1.3 KiB
Plaintext
#define echo $FFEF
|
|
#define kbd_data $D010
|
|
#define kbd_cr $D011
|
|
#define serial_ready $C000
|
|
#define serial_read $C080
|
|
#define serial_write $C081
|
|
|
|
; How to store INTEGER BASIC progams?
|
|
; C100R - run serial monitor
|
|
; 004A.00FFW 0800.0FFFW - write data for default LOMEM & HIMEM
|
|
; E2B3R - warm entry point
|
|
|
|
* = $C300
|
|
.dsb (*-end_of_apple1serial), 0
|
|
|
|
; teletype on apple-1
|
|
; the data from remote appears on apple-1 screen
|
|
* = $C300
|
|
teletype_apple1 = $C300
|
|
jsr reset_serial
|
|
lda serial_read
|
|
teletype_apple1_wait
|
|
lda serial_ready
|
|
beq teletype_apple1_wait
|
|
lda serial_read
|
|
jsr echo
|
|
jmp teletype_apple1_wait
|
|
end_of_teletype_apple1
|
|
|
|
; teletype on remote
|
|
; the data from apple-1 appears on remote
|
|
* = $C400
|
|
.dsb (*-end_of_teletype_apple1), 0
|
|
|
|
* = $C400
|
|
teletype_remote = $C400
|
|
jsr reset_serial
|
|
lda #$FF
|
|
sta serial_write
|
|
get_key
|
|
lda kbd_cr
|
|
bpl get_key
|
|
lda kbd_data
|
|
and #$7F
|
|
tay
|
|
teletype_remote_wait
|
|
lda serial_ready
|
|
beq teletype_remote_wait
|
|
tya
|
|
sta serial_write
|
|
jmp get_key
|
|
end_of_teletype_remote
|
|
|
|
; 0-255 repeating counter over TXD
|
|
* = $C500
|
|
.dsb (*-end_of_teletype_remote), 0
|
|
|
|
* = $C500
|
|
counter_remote = $C500
|
|
jsr reset_serial
|
|
ldy #$00
|
|
sta serial_write
|
|
counter_wait
|
|
lda serial_ready
|
|
beq counter_wait
|
|
tya
|
|
sta serial_write
|
|
iny
|
|
jmp counter_wait
|
|
end_of_counter_remote
|