mirror of
https://github.com/flowenol/apple1serial.git
synced 2025-01-19 01:31:10 +00:00
71 lines
1.5 KiB
Plaintext
71 lines
1.5 KiB
Plaintext
#define echo $FFEF
|
|
#define kbd_data $D010
|
|
#define kbd_cr $D011
|
|
#define serial_ready BASE + $000 + OFFSET
|
|
#define serial_read BASE + $080 + OFFSET
|
|
#define serial_write BASE + $081 + OFFSET
|
|
|
|
; How to store INTEGER BASIC progams?
|
|
; C100( + OFFSET)R - run serial monitor
|
|
; 004A.00FFW 0800.0FFFW - write data for default LOMEM & HIMEM
|
|
; E2B3R - warm entry point
|
|
|
|
* = BASE + $300 + OFFSET
|
|
.dsb (*-end_of_apple1serial), 0
|
|
|
|
; teletype on apple-1
|
|
; the data from remote appears on apple-1 screen
|
|
* = BASE + $300 + OFFSET
|
|
teletype_apple1 = BASE + $300 + OFFSET
|
|
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
|
|
* = BASE + $400 + OFFSET
|
|
.dsb (*-end_of_teletype_apple1), 0
|
|
|
|
* = BASE + $400 + OFFSET
|
|
teletype_remote = BASE + $400 + OFFSET
|
|
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
|
|
* = BASE + $500 + OFFSET
|
|
.dsb (*-end_of_teletype_remote), 0
|
|
|
|
* = BASE + $500 + OFFSET
|
|
counter_remote = BASE + $500 + OFFSET
|
|
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
|