26 lines
581 B
Forth

start-microcode dna
: 1+ d# 1 + ;
: 2* d# 2 * ;
: dna@ ( -- u ) h# 8018 c@ ;
: dna! ( u -- ) h# 8008 c! ;
: dnaclk ( u -- ) dup dna! 1+ dna! ;
: dnaread ( ) d# 4 dnaclk ;
: dnashift ( ) d# 2 dnaclk ;
: dnabit ( u -- u ) 2* dna@ + dnashift ;
: dnabyte ( -- u ) \ read byte from DNA
d# 0
dnabit dnabit dnabit dnabit
dnabit dnabit dnabit dnabit ;
: main \ write 7 byte DNA to COMM
dnaread dnashift
COMM+7 COMM+0
begin
dnabyte over c!
1+ 2dup=
until
begin again ;
end-microcode