main.fs 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. include crossj1.fs
  2. variable filebase
  3. : suffix ( addr u -- addr u ) \ append suffix to basename
  4. 0 padc !
  5. filebase @ count pad+
  6. pad+
  7. pad padc @
  8. ;
  9. : create-output-file w/o create-file throw to outfile ;
  10. : cbyte s" 0x" type s>d <# # # #> type [char] , emit ;
  11. hex
  12. variable hiaddr
  13. : coderange hiaddr @ 2B00 ;
  14. : dumpall \ dump the target memory in every useful format
  15. hex
  16. \ .lst file is a human-readable disassembly
  17. s" .lst" suffix create-output-file
  18. coderange tuck - 2/ disassemble-block
  19. \ .binbe is a big-endian binary memory dump
  20. s" .binbe" suffix create-output-file
  21. coderange do i t@ dup 8 rshift emit emit 2 +loop
  22. \ .binle is a little-endian binary memory dump
  23. s" .binle" suffix create-output-file
  24. coderange do i t@ dup emit 8 rshift emit 2 +loop
  25. \ .h is a little-endian memory dump of bytes 2B00-2BFF
  26. s" .h" suffix create-output-file
  27. s" static PROGMEM prog_uchar " type
  28. filebase @ count type
  29. s" _code[] = {" type cr
  30. coderange do i t@ dup cbyte 8 rshift cbyte cr 2 +loop
  31. s" };" type cr
  32. ;
  33. decimal
  34. : start-microcode
  35. bl parse preserve filebase !
  36. s" marker revert h# 2B02 org" evaluate
  37. coldcross decimal
  38. ;
  39. : end-microcode
  40. there hiaddr !
  41. s" h# 2B00 org code 0jump main ubranch end-code revert meta" evaluate
  42. dumpall
  43. s" target" evaluate
  44. ;
  45. meta
  46. coldcross
  47. include basewords.fs
  48. target
  49. include hwdefs.fs
  50. \ Build all these microcode files:
  51. include memtest.fs
  52. include helloworld.fs
  53. include flowtest.fs
  54. include setpixel.fs \
  55. include wireframe.fs \ http://excamera.com/sphinx/gameduino/samples/wireframe/index.html
  56. include eraser.fs
  57. include splitscreen.fs \ http://excamera.com/sphinx/gameduino/samples/splitscreen/index.html
  58. include selftest1.fs
  59. include reload.fs
  60. include palcopy.fs
  61. include random.fs \ http://excamera.com/sphinx/gameduino/samples/snow/index.html
  62. include rasterinterrupt.fs
  63. include soundbuffer.fs \ http://excamera.com/sphinx/gameduino/samples/cowbell/index.html
  64. include cold.fs
  65. include testflash.fs
  66. include bgstripes.fs \ http://excamera.com/sphinx/gameduino/samples/bgcolor/index.html
  67. include dna.fs \ http://excamera.com/sphinx/gameduino/demos/dna/index.html
  68. include regressfreq.fs
  69. include showvoices.fs
  70. include spectrum.fs \ http://excamera.com/sphinx/gameduino/demos/spectrum/index.html
  71. include spr512.fs
  72. meta