Mirror of CollapseOS
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

105 line
1.8KB

  1. 0xff00 CONSTANT RS_ADDR
  2. 0xfffa CONSTANT PS_ADDR
  3. RS_ADDR 0x80 - CONSTANT SYSVARS
  4. 0 CONSTANT HERESTART
  5. : CODE ( natidx -- ) (entry) 0 C, C, ;
  6. VARIABLE ORG
  7. CREATE BIN( 0 ,
  8. : PC H@ ORG @ - ;
  9. 262 LOAD ( xcomp )
  10. 270 LOAD ( xcomp overrides )
  11. H@ ORG !
  12. ORG @ 0x3b + HERE !
  13. ," EXIT"
  14. 0 , ( prev ) 4 C,
  15. H@ XCURRENT ! ( set current tip of dict, 0x42 )
  16. 0 C, 0 C,
  17. ORG @ 0x4c + HERE !
  18. 0x01 CODE (br) ( 0x53 )
  19. ORG @ 0x5f + HERE !
  20. 0x02 CODE (?br) ( 0x67 )
  21. ORG @ 0x77 + HERE !
  22. 0x03 CODE (loop) ( 0x80 )
  23. ORG @ 0xa3 + HERE !
  24. 0x04 CODE 2>R ( 0xa9 )
  25. ORG @ 0xb9 + HERE !
  26. 0x05 CODE (n) ( 0xbf )
  27. ORG @ 0xce + HERE !
  28. 0x06 CODE (s) ( 0xd4 )
  29. ( END OF STABLE ABI )
  30. 0x07 CODE >R
  31. 0x08 CODE R>
  32. 0x09 CODE 2R>
  33. 0x0a CODE EXECUTE
  34. 0x0b CODE ROT
  35. 0x0c CODE DUP
  36. 0x0d CODE ?DUP
  37. 0x0e CODE DROP
  38. 0x0f CODE SWAP
  39. 0x10 CODE OVER
  40. 0x11 CODE PICK
  41. 0x12 CODE (roll)
  42. 0x13 CODE 2DROP
  43. 0x14 CODE 2DUP
  44. 0x15 CODE S0
  45. 0x16 CODE 'S
  46. 0x17 CODE AND
  47. 0x18 CODE OR
  48. 0x19 CODE XOR
  49. 0x1a CODE NOT
  50. 0x1b CODE +
  51. 0x1c CODE -
  52. 0x1d CODE *
  53. 0x1e CODE /MOD
  54. 0x1f CODE !
  55. 0x20 CODE @
  56. 0x21 CODE C!
  57. 0x22 CODE C@
  58. 0x23 CODE PC!
  59. 0x24 CODE PC@
  60. 0x25 CODE I
  61. 0x26 CODE I'
  62. 0x27 CODE J
  63. 0x28 CODE BYE
  64. 0x29 CODE (resSP)
  65. 0x2a CODE (resRS)
  66. 0x2b CODE S=
  67. 0x2c CODE CMP
  68. 0x2d CODE _find
  69. 0x2e CODE 0
  70. 0x2f CODE 1
  71. 0x30 CODE -1
  72. 0x31 CODE 1+
  73. 0x32 CODE 1-
  74. 0x33 CODE 2+
  75. 0x34 CODE 2-
  76. 0x35 CODE RSHIFT
  77. 0x36 CODE LSHIFT
  78. 353 LOAD ( xcomp core low )
  79. : (emit) 0 PC! ;
  80. : (key) 0 PC@ ;
  81. : EFS@
  82. 1 3 PC! ( read )
  83. 256 /MOD 3 PC! 3 PC! ( blkid )
  84. BLK( 256 /MOD 3 PC! 3 PC! ( dest )
  85. ;
  86. : EFS!
  87. 2 3 PC! ( write )
  88. 256 /MOD 3 PC! 3 PC! ( blkid )
  89. BLK( 256 /MOD 3 PC! 3 PC! ( dest )
  90. ;
  91. : COLS 80 ; : LINES 32 ;
  92. : AT-XY 6 PC! ( y ) 5 PC! ( x ) ;
  93. 380 LOAD ( xcomp core high )
  94. (entry) _
  95. ( Update LATEST )
  96. PC ORG @ 8 + !
  97. ," BLK$ "
  98. ," ' EFS@ BLK@* ! "
  99. ," ' EFS! BLK!* ! "
  100. EOT,
  101. ORG @ 256 /MOD 2 PC! 2 PC!
  102. H@ 256 /MOD 2 PC! 2 PC!