dna.fs 581 B

12345678910111213141516171819202122232425
  1. start-microcode dna
  2. : 1+ d# 1 + ;
  3. : 2* d# 2 * ;
  4. : dna@ ( -- u ) h# 8018 c@ ;
  5. : dna! ( u -- ) h# 8008 c! ;
  6. : dnaclk ( u -- ) dup dna! 1+ dna! ;
  7. : dnaread ( ) d# 4 dnaclk ;
  8. : dnashift ( ) d# 2 dnaclk ;
  9. : dnabit ( u -- u ) 2* dna@ + dnashift ;
  10. : dnabyte ( -- u ) \ read byte from DNA
  11. d# 0
  12. dnabit dnabit dnabit dnabit
  13. dnabit dnabit dnabit dnabit ;
  14. : main \ write 7 byte DNA to COMM
  15. dnaread dnashift
  16. COMM+7 COMM+0
  17. begin
  18. dnabyte over c!
  19. 1+ 2dup=
  20. until
  21. begin again ;
  22. end-microcode