Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (ns cloxo.testapp
- (use [cloxo.instr :only (add-blob add-code save-app)]
- cloxo.funlib
- cloxo.helpers))
- (def funputc
- (export-as :putc
- (asm (SET ^{:label :vptr} [0x8000], A)
- (ADD [:vptr] 1)
- (IFE 0x8200 :vptr)
- (SET PC, POP)
- (SET :vptr 0x8000)
- (SET PC, POP))))
- (def funputstr
- (export-as :putstr
- (asm (SET [:cptr] A)
- ^{:label :loop}
- (SET A ^{:label :cptr} [0])
- (IFE A 0)
- (SET PC POP)
- (JSR :putc)
- (ADD [:cptr] 1)
- (SET PC :loop))))
- (defasm appmain
- (SET A :hello)
- (JSR :putstr)
- (SUB PC 1))
- (def mydata
- {:hello (map (comp (partial bit-or 0x1700) int) (seq "Hello World!\n"))})
- (deftarget myapp
- (add-code appmain)
- (add-code funputc)
- (add-code funputstr)
- (add-data mydata))
- (save-app "/home/apage43/out.dcpu16" (two-pass myapp))
Add Comment
Please, Sign In to add comment