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.

17 lines
707B

  1. CODE _find ( cur w -- a f ) 2 chkPS,
  2. SI POPx, ( w ) DI POPx, ( cur )
  3. CH CH XORrr, CL [SI] MOVr[], ( CX -> strlen )
  4. SI INCx, ( first char ) AX AX XORxx, ( initial prev )
  5. BEGIN, ( loop )
  6. DI AX SUBxx, ( jump to prev wordref )
  7. AL [DI] -1 MOVr[]+, 0x7f ANDALi, ( strlen )
  8. CL AL CMPrr, IFZ, ( same len )
  9. SI PUSHx, DI PUSHx, CX PUSHx, ( --> lvl 3 )
  10. 3 ADDALi, ( header ) AH AH XORrr, DI AX SUBxx,
  11. CLD, REPZ, CMPSB,
  12. CX POPx, DI POPx, SI POPx, ( <-- lvl 3 )
  13. IFZ, DI PUSHx, AX 1 MOVxI, AX PUSHx,
  14. JMPn, lblnext @ RPCn, THEN,
  15. THEN,
  16. DI 3 SUBxi, AX [DI] MOVx[], ( prev ) AX AX ORxx, ( cont. )