main.fs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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
  56. include eraser.fs
  57. include splitscreen.fs
  58. include selftest1.fs
  59. include reload.fs
  60. include palcopy.fs
  61. include random.fs
  62. include rasterinterrupt.fs
  63. include soundbuffer.fs
  64. include cold.fs
  65. include testflash.fs
  66. include bgstripes.fs
  67. include dna.fs
  68. include regressfreq.fs
  69. include showvoices.fs
  70. include spectrum.fs
  71. include spr512.fs
  72. \ include eforth.fs
  73. meta