Guest User

Untitled

a guest
Sep 26th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. (ns cloxo.testapp
  2. (use [cloxo.instr :only (add-blob add-code save-app)]
  3. cloxo.funlib
  4. cloxo.helpers))
  5.  
  6. (def funputc
  7. (export-as :putc
  8. (asm (SET ^{:label :vptr} [0x8000], A)
  9. (ADD [:vptr] 1)
  10. (IFE 0x8200 :vptr)
  11. (SET PC, POP)
  12. (SET :vptr 0x8000)
  13. (SET PC, POP))))
  14. (def funputstr
  15. (export-as :putstr
  16. (asm (SET [:cptr] A)
  17. ^{:label :loop}
  18. (SET A ^{:label :cptr} [0])
  19. (IFE A 0)
  20. (SET PC POP)
  21. (JSR :putc)
  22. (ADD [:cptr] 1)
  23. (SET PC :loop))))
  24.  
  25. (defasm appmain
  26. (SET A :hello)
  27. (JSR :putstr)
  28. (SUB PC 1))
  29.  
  30. (def mydata
  31. {:hello (map (comp (partial bit-or 0x1700) int) (seq "Hello World!\n"))})
  32.  
  33. (deftarget myapp
  34. (add-code appmain)
  35. (add-code funputc)
  36. (add-code funputstr)
  37. (add-data mydata))
  38.  
  39. (save-app "/home/apage43/out.dcpu16" (two-pass myapp))
Add Comment
Please, Sign In to add comment