107 lines
1.3 KiB
Plaintext
107 lines
1.3 KiB
Plaintext
include "include/memory-map.txt"
|
|
|
|
_start:
|
|
jump main
|
|
|
|
include "lib/rs232.txt"
|
|
|
|
main:
|
|
immed 65
|
|
dup
|
|
call write_char #A 65
|
|
immed 1
|
|
add
|
|
dup
|
|
call write_char #B 66
|
|
immed -1
|
|
sub
|
|
dup
|
|
call write_char #C 67
|
|
immed -1
|
|
rshift
|
|
immed 66
|
|
sub
|
|
dup
|
|
call write_char #D 68
|
|
immed 0
|
|
over
|
|
sub
|
|
immed -1
|
|
xor
|
|
immed 2
|
|
add
|
|
dup
|
|
call write_char #E 69
|
|
immed 2
|
|
add
|
|
dup
|
|
immed 70
|
|
nip
|
|
call write_char #F 70
|
|
dup
|
|
call write_char #G 71
|
|
loop0:
|
|
immed 1
|
|
add
|
|
dup
|
|
call write_char #H-J 72-74
|
|
dup
|
|
immed 74
|
|
sub
|
|
jump loop0 rel lt drop
|
|
immed 1
|
|
add
|
|
call write_char #K 75
|
|
immed 76
|
|
dup
|
|
call write_char #L 76
|
|
loop1:
|
|
immed 1
|
|
add
|
|
dup
|
|
call write_char #M-N 77-78
|
|
immed 78
|
|
over
|
|
sub
|
|
jump loop1 rel gt drop
|
|
immed 1
|
|
or
|
|
dup
|
|
call write_char #O 79
|
|
immed 0b1110000
|
|
and
|
|
immed 0b10000
|
|
or
|
|
dup
|
|
call write_char #P 80
|
|
dup
|
|
immed 2
|
|
add
|
|
push
|
|
immed 1
|
|
add
|
|
call write_char #Q 81
|
|
pop
|
|
dup
|
|
call write_char #R 82
|
|
pushpc
|
|
pushpc
|
|
immed 15
|
|
push
|
|
rdrop
|
|
pop
|
|
pop
|
|
sub
|
|
add
|
|
dup
|
|
call write_char #S 83
|
|
|
|
drop
|
|
call newline
|
|
|
|
# Echo input until reset / power-off
|
|
echo:
|
|
call read_char
|
|
call write_char
|
|
jump echo rel
|