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 lines
636B

  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- ;