( EZDIR: EZ DIRCTORY SCREEN SYSTEM 12dec84japEZ 1 HAVE 2 MORE 3 INTERPRET-A-WORD 3 CONTINUE 3 INTRIGUE 4 CONNIVE 4 SUBJECT 4 %DIR 5 DIR% 5 ESTABLISH 5 FDIR 5 NAME 5 LOOK 5 NEED 5 \s Writen by Wil Baden of the Orange Chapter F.I.G. Convert from MVP to F83 1.0.0 forth by Tom Belpasso Converted to f83 2.0.0 and put in the library by J. Peters \ LOAD SCREEN FOR EZ DIRECTORY SYSTEM 12dec84jap: EZ ; : LL list ; \ LL is from MYED SP=fwd, BS=back 2 5 THRU 0 0 DIRECTORY SCR0 1 1 DIRECTORY SCR1 SCR0 EXIT NOTE: screen 0 is now used for a directory for the words contained in this file. See FORTH Dimensions for discriptions of use. I replaced VIEW with LOOK. \ Screen 0 support 12dec84jap : SOURCE0 BLK @ BLOCK B/BUF ; : TIB-OFF ['] SOURCE0 IS SOURCE ; : TIB-ON ['] (SOURCE) IS SOURCE ; \ : DOS CP/M ; \ For F83 1.0.0 \ : SELECT SET-DRIVE ; \ : B: 1 SELECT ; \ see above \ : A: 0 SELECT ; ( EZ CONT. MVP-FORTH): HAVE ( -- f ) DEFINED SWAP DROP 0= NOT ; VOCABULARY EZD EZD DEFINITIONS : MORE ( -- addr,f ) BL WORD DUP C@ ; : INTERPRET-A-WORD ( -- ) DEFINED IF EXECUTE ELSE NUMBER DROP THEN ; : CONTINUED ( N-- ) BLK ! 0 >IN ! ; \ EZ DIRECTORY CONT. now can use screen zero for dir 21oct84tjb: INTRIGUE (S -- FLAG ) BEGIN MORE ( ADDR,F ) IF PAD DUP C@ 1+ COMPARE ( 0 FOR = ) IF BL WORD 0= ELSE TRUE EXIT THEN THEN UNTIL FALSE ; : CONNIVE (S SCR1,SCR2-- ) BLK @ >IN @ >R >R TIB-OFF TRUE ROT ROT 1+ SWAP DO I BLK ! C/L >IN ! INTRIGUE IF NOT LEAVE THEN LOOP ?DUP IF TIB-ON ABORT" not in directory " THEN INTERPRET-A-WORD TIB-ON R> R> >IN ! BLK ! ; : SUBJECT (S SCR1,SCR2 -- | FIND AND EXECUTE ) BL WORD COUNT PAD 2DUP C! 1+ SWAP CMOVE CONNIVE ; \ END OF EZ (Originaly MVP-FORTH) 12dec84jap2VARIABLE DIR% : %DIR ( -- SCR1,SCR2 ) DIR% 2@ ; : ESTAB ( SCR1,SCR2-- ) DIR% 2! ; FORTH DEFINITIONS EZD ALSO : DIRECTORY ( SCR1,SCR1 -- ) CREATE , , DOES> ( -- ) 2@ ESTAB ; : NAME ( -- N -OR- D ) %DIR SUBJECT ; : LOOK ( -- ) NAME LL ; : NEED ( -- ) >IN @ HAVE IF DROP ELSE >IN ! NAME LOAD THEN ; : FOLLOW ( -- ) >IN @ HAVE IF DROP ELSE >IN ! NAME CONTINUED THEN ; : FDIR ( -- ) %DIR MIN LL ; ONLY FORTH ALSO