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.

16 line
631B

  1. CREATE XCURRENT 0 ,
  2. : XCON XCURRENT CURRENT* ! ; : XCOFF 0x02 RAM+ CURRENT* ! ;
  3. : (xentry) XCON (entry) XCOFF ; : XCREATE (xentry) 2 C, ;
  4. : XCODE XCON CODE XCOFF ; : XIMM XCON IMMEDIATE XCOFF ;
  5. : _xapply ( a -- a-off )
  6. DUP ORG @ > IF ORG @ - BIN( @ + THEN ;
  7. : XFIND XCURRENT @ SWAP _find DROP _xapply ;
  8. : X' XCON ' XCOFF ; : X['] XCON ' _xapply LITN XCOFF ;
  9. : XCOMPILE XCON ' _xapply LITN
  10. LIT< , FIND DROP _xapply , XCOFF ;
  11. : X[COMPILE] XCON ' _xapply , XCOFF ;
  12. : XDO LIT< 2>R XFIND , H@ ;
  13. : XLOOP LIT< (loop) XFIND , H@ - C, ;
  14. : XIF LIT< (?br) XFIND , H@ 1 ALLOT ;
  15. : XELSE LIT< (br) XFIND , 1 ALLOT [COMPILE] THEN H@ 1- ;