\ EDITF - EDTEXT from HP71 FORTH 1 with Text Editor ROM \ Tapani Tarvainen 85/11/25 \ \ ?FORGET 1UPPER Y/N? TIME .TIMED from FLIB ?FORGET EDITFILE HERE DECIMAL 16 STRING EDITFILE VARIABLE EDITTYPE 1 EDITTYPE ! 8 3 STRING-ARRAY KEYFILES " FEDKEYS" 1 KEYFILES S! " AEDKEYS" 2 KEYFILES S! NULL$ 3 KEYFILES S! \ Note: default EDKEYS must be later in catalog than FEDKEYS &c : ASKTYPE BEGIN ." Forth Assembly Other?" KEY DUP EMIT CR 1UPPER CHR$ " FAO" POS ?DUP UNTIL EDITTYPE ! ; : KEYSELECT EDITTYPE @ KEYFILES DUP IF " RENAMEFORTH$TOEDKEYS" BASICX ELSE 2DROP THEN ; : OLDKEYS EDITTYPE @ KEYFILES DUP IF " RENAMEEDKEYS TOFORTH$" BASICX ELSE 2DROP THEN ; : FILENAME? ( name (--) BL WORD COUNT DUP IF EDITFILE S! ASKTYPE ELSE 2DROP THEN ; : EDTEXT ( str) EDITTYPE @ 3 = IF " EDTEXTFORTH$" ELSE " CALLEDTEXT(FORTH$,'')INEDTEXT:PORT(2)" THEN BASICX ; \ assumes Text Editor in PORT(1) and FORTH in PORT(2) : SAVE ( str) " COPYFORTH$TO:%16" BASICX ; : ?SAVE ." save" Y/N? IF EDITFILE SAVE THEN ; : ?LOADF ." load" Y/N? IF ." Loading..." EDITFILE TIME LOADF .TIMED THEN ; : ?LISTING ." listing? " QUERY BL WORD COUNT LISTING S! ; : ?ASSEMBLE ." assemble" Y/N? IF ?LISTING EDITFILE TIME ASSEMBLE .TIMED THEN ; : ?LOAD EDITTYPE @ CASE 1 OF ?LOADF ENDOF 2 OF ?ASSEMBLE ENDOF ENDCASE ; : EDIT FILENAME? KEYSELECT EDITFILE EDTEXT OLDKEYS ?SAVE ?LOAD ; HERE SWAP - . .( nibs )