: ET 7.0 - EDIT TEXT - IBM PC VERSION: D. MCCOY - 11/20/84 :  (:---------- SUBROUTINES ----------G2:---------CLEAR COMMAND LINE------[< ,: SP$;:F:---------- KEYBOARD SCAN ----------PK$: K$"" P:Zd:---------- PAUSE, INKEY$ AND CONVERT TO U/C ---------n"X=eXit. "; x"Any key to continue";$ " --> ";= K$: K$""  l (K$)` (K$){ K$((K$) )w K$: :---------- DISPLAY FULL LINE ---------- F1$;CLN;: L$(CLN): :---------- DISPLAY INDENTED LINE ---------- LD((L$(CLN))I) J LDP J F4$;CLN,(L$(CLN),,H): r F3$;(L$(CLN),JH,H)z : :---------- PAGE UP/DOWN ---------- LT  LT KYQ CLNCLN: :PAGE DOWN  LT KYI CLNCLN: :PAGE UP9 " CLN CLNLL: BAR$:LTLT] , CLNLL CLN: BAR$:LTLTw 6LD((L$(CLN))I) @ J LD J J F4$;CLN,(L$(CLN),,H) : ^ T F3$;(L$(CLN),JH,H) ^ LTLT h J r KYI CLNCLN :PAGE UP> | KYQ CLNCLN :PAGE DOWNH  w :----------- EDIT SUBROUTINES ---------- KI$" ":SL(L$(CLN)): "EDIT->";  I SL  KE$: KE$""   (KE$)` (KE$){ KE$((KE$) )  (KE$) I  6  (KE$)  R  GN:NYE$"Q? CDIXHS"  (NYE$,GN,)KE$ GNGN: GN   GN GN  GN : ,N , , ,  ,> , , ,  (KE$)0 (KE$)9  ' (KV$) KV$KV$KE$:MAX(KV$)5  H KV$"":MAXP& I`0L$(CLN)EL$f:D:---------- HELP ----------N: j :EL$"":  :  X:---------- SET MAX PARAMETERS ----------b MAX(SLI) MAXSLIl MAX MAXv=:---------- SPACE BAR ----------H b EL$EL$(L$(CLN),I,MAX): (L$(CLN),I,MAX);:IIMAX J P: J: :---------- BACKSPACE ---------- b: J MAX (EL$) EL$(EL$,(EL$))  I II: BS$;;:MAX:KV$"":  `:---------- CHANGE -----------w b : J MAX KC$: KC$"" ();BS$;:  EL$EL$KC$: KC$;:II J:II:KE$"" :TO DEFEAT REPEAT KEY ON SPCBAR   -:---------- DELETE -----------8  b d* J MAX: ();: J:IIJ: 4:---------- INSERT ---------->KI$: KI$"" >H (KI$) II: R (KI$)  :TO X EDIT!\ (KI$)  EL$(EL$,(EL$)): BS$;: z1fEL$EL$KI$<p KI$;Fz >v:---------- X EDIT EOL & INSERT --------- b: I ISL I I MAXSLI: MAX  TMP$(L$(CLN),I,MAX):EL$EL$TMP$: TMP$;:IIMAX:MAX:KV$""= (KE$) (KI$) KE$" ":KI$" ": 0 H > s:---------- HACK & INSERT ----------ISL: > :---------- SEARCH TO CHARACTER -----------KS$: KS$""  PC:CPI: b:JCP  (L$(CLN)(KS$ V (L$(CLN),J,(KS$)) KS$ JJ: J((L$(CLN))(KS$)) PCJ: J (L$(CLN))(KS$) PC PC CPPCMAX:KV$""$ PC PCSL.PLPCI: PL PL 8TMP$(L$(CLN),I,PL):EL$EL$TMP$: TMP$;:IIPL!B ISL  WLEL$EL$(L$(CLN),I,): (L$(CLN),I,);: 0 V:---------- HELP MENUS ----------`:---------- EDIT MENU ----------j: BAR$:" EDIT Subcommands: nC=Change n=Copy Character(s)"At" H=Hack & Insert nD=Delete n( <<== )=Backspace(s)"~" X=List & Insert I=Insert ON =Insert OFF"" Q=Quit No Changes ?=Help =End Edit Save Changes"" nSc=Search for Nth occurance of Character c": BAR$:T: "EDIT: n n nc n< > ":::---------- COMMANDS MENU ----------: BAR$:" Commands: A=Add Cr=Copy Dr=Delete Er=Edit"" Fr=Find In=Insert K=Memory Lr=List Or=Options"g" Pr=Print S=Save X=eXit &=Merge ?=Help":" r=RANGE High # '-' Low # n=INSERT after line #n"" Range syntax examples: E'.' E5 E-5 E5- E5-10": BAR$/:---------- COMMAND LINE PROCESSOR ----------m "Current Line";CLN;"of";LL;$);"Range";LO;"through";HI <: "(A Cr Dr Er Fr In K Lr Pr Rr S X & ?)Command: "; CL$  CL$"" K$(CL$,,): K$"?"   (K$)` (K$) K$((K$) )8(CN$(CL$,,(CL$))_2 CN$"" CN$"0" CN$"-" < CN$"." LOCLN:HICLN: F CN$".-" LOCLN:HILL: P CN$"-." LO :HICLN: ZPXd (CN$,PX,)"%" nPXPX: PX (CN$) dxPX#HYPA (CN$,HYP,)"-" dHYPHYP: HYP(CN$) HYP:LO(CN$):HILO: LO(CN$)HI((CN$,HYP,(CN$)HYP)) HYP(CN$) HILL HYP LO  HILO TEMPLO:LOHI:HITEMP LOLL LOLL2 HILL HILLD LO LOX CLN CLNn CLNLL CLNLLSK$K$:NYE$"ACDEFKILPOSX&":GN (NYE$,GN,)K$ GNGN: GN " GN GN$, GN D ,N , , , ,^ ,* ,r , , , ,, ,36 EX =@ _J:---------- LIST ----------T: BAR$:" LIST Subcommands: / or X=eXit ?=Help "^" =Scroll backward =First line"Lh" =Scroll forward =Last line": BAR$:sr CLNLO HI:  : :CLNCLN| <: "LIST: <-- --> / or X=exit ?=Help " P K$"?" T :  :? HELP( K$"X" K$"x" :X EXITS K$"/" :/ EXITz (K$) KY((K$,)): KY KYG : : | :HOME CLEAR KYP  CLNLL CLNCLN: :   BAR$:CLN :DOWN ARROW  KYH C  CLN CLNCLN: : b  BAR$:CLNLL:UP ARROW  KYQ CLNCLN:  :PAGE DOWN  KYI CLNCLN:  :PAGE UP  KYK CLN :  :LEFT ARROW3!& KYM CLNLL :  :RIGHT ARROW=!0 i!::---------- ADD NEW LINES -----------!D LL CLNLL:  !N LL CLNLL:  : b!X: "To create a new file:": BAR$ "b "ADD new lines below (Period '.' only line to END)","lLLLL: F1$;LL;: L$(LL)]"v L$(LL)"." LL LL:CLN:HI:LO:" L$(LL)"." LL LLLL:CLNLL:" l ":---------- FIND/SEARCH ----------" <: : "Enter search string to FIND : ";S2$:PC # CLNLO HI.#CP: (L$(CLN)(S2$) ]#CPCP: (L$(CLN),CP,(S2$))S2$ # CP(L$(CLN))(S2$) CP: # # CP  :PCPC$ PC CLNHI : <: "X=eXit. ";: x :PC: K$"X" CLNHI:$ CLN:PC:CLNHI:=$:---------- OPTIONS ----------$: BAR$:"REPLACE OPTIONS: A=ASCII Code # C=Convert UC/LC N=Number V=View"$ " ?=Help $=String P=Prefix S=Suffix X=eXit": BAR$,% <: "Current Line";CLN;"of";LL $)"Range";LO;"Through";HIN%  <:"OPTIONS Subcommands:"%* <:"Ascii Convert Number Prefix Suffix View eXit $String ?=Help";: %4 K$"X" %> K$"?" %HSK$K$:NYE$"A$CVNSP":GN&R (NYE$,GN,)K$ GNGN: GN R"&\ GN GNO&f GN  , ,d , , , , Y&p &z:---------- ASCII CODES ----------&SK$K$:: J : "### = ! ";J,(J);:& BAR$:"Enter ASCII code number to be REPLACED (1-255): ";S2 ' S2 S2 S' "Enter ASCII code number of replacement character (0-255): ";S3j' S3 S3 'S3$(S3):S2$(S2)'"Prompt for each change (Y/N)? ";: 'SK$K$: SK$"Y" SK$"N"': CLNLO HI:CJ( (L$(CLN)) t (CP1( (L$(CLN),CP,)S2$  S( CP(L$(CLN)) CP:  e( CPCP: y( CP t ( SK$"N" V ($  : CP);(^)(. "Replace (Y/N or X=eXit) ? ";:  :(8 K$"X" CLNHI:)B K$"Y" CP(L$(CLN))  6)L K$"Y" t O)V (L$(CLN),CP)S3$g)` SK$"N" t)j  )t :CLNHI:)~ :---------- REPLACE STRING ----------) <: "Enter string to be REPLACED : ";SR$: SR$"" +* <: "Enter new text of replacement string : ";NR$_* <:"Prompt for each change (Y/N)?";:  |* K$"Y" SK$"Y":  * SK$"N"* :PC: CLNLO HI* (L$(CLN),PC,(SR$))SR$  * PC(SR$)(L$(CLN)) PC: P + PCPC:  + SK$"N"  -+  C+ PC) (^)}+ "Replace (Y/N/X)?";:  :: K$"X" CLNHI:+ K$"Y" PCPC(SR$):  + LS$(L$(CLN),PC) + SL(L$(CLN))(LS$)(SR$)+( RS$(L$(CLN),SL),2 L$(CLN)LS$NR$RS$0,< SK$"N" =,F  L,P :CLNHI:r,Z :---------- UC TO LC ----------,d : CLNLO HI:PC:CP,n (L$(CLN),CP,)(") PCCP:  ,x CP(L$(CLN)) CP:  , CPCP: n - (L$(CLN),PC,)(")  2- PC(L$(CLN))  D- PCPC:  V- ICP PC}- X$(L$(CLN),I,): X$""  - Y$(L$(CLN),I,): Y$"=" Y$" "  - (X$)A (X$)Z  - X$((X$) ). (L$(CLN),I,)X$. I:  ". CPI: n S. X$(L$(CLN),I,): "! = ### ";X$,(X$);b. :CLNHI:. :---------- DISPLAY ASCII CODES ----------. CLNLO HI::DL(L$(CLN)): DL  ." SLDL:"Line #";CLN/, J SL:DWJ:DHDW/6 IDW DHH/@ IDL " ! ";(L$(CLN),I,);`/J I: IDL t/T IDW DH/^ IDL "### ";((L$(CLN),I,));/h I: IDL /r (J)((J)) IDL x/| J:#0 CLNHI n : K$"X"  -0 CLNA0 BAR$:CLNHI:k0 :---------- NUMBER LINES ----------0 <:"Enter Starting #, Increment: ";SN,IC0 CLNLO:L$(LO)(SN)" "L$(CLN): 0 CLNLO HI1 L$(CLN)(SNIC)" "L$(CLN):SNSNIC: 1 :CLNHI:M1 :----------- PREFIX OR SUFFIX -----------1 <:"Enter ";: K$"P" "PREFIX";:  1 "SUFFIX";1 " string: ";: PF$1 CLNLO HI1 (L$(CLN))((PF$)) : 2 K$"P" L$(CLN)PF$L$(CLN): 0 )2& L$(CLN)L$(CLN)PF$520 D2: :CLNHI:f2D :---------- COPY ----------2N LCHILO: LC <:"COPY Buffer limited to 10 line range.":2X I: CLNLO HI:  :CB$(I)L$(CLN):II: :FILL COPY BUFFER<3b CI$"": <:"X=eXit Line # to INSERT COPY AFTER:";: CI$a3l CI$"X" CI$"x" CI$"" 3v CV(CI$): CV CVLL 3 LCHILO3 JLL CV :L$(JLC)L$(J): :MOVE UP3 J LC:L$(CVJ)CB$(J):LLLL: :COPY IN4 CLNHI:,4 :---------- DELETE ----------H4 CLNLO HI:  :}4 <:"DELETE...Are your sure (Y/N)? ";:  4 K$"Y" CLNHI:4 SXHILO: <:"WARNING...*** ANY HIGHER LINE # DECREASED BY";SX;" ***"05 IHI: JLO LL:II:L$(J)L$(I)::LLLLSX: HILL CLNLL:  ;5 CLNHIA5 c5 :---------- EDIT ----------u5 CLNLO HI5  :  :EL$"":  :EL$""::  5 :CLNHI:5 :----------- INSERT ----------$6* CLNHI:  : <:"Enter Period '.' only line to END INSERT."A64 F1$;CLN;: L$()^6> L$()"." LL 6H JLL CLN :L$(J)L$(J)::LLLL:L$(CLN)L$()6R CLNCLN:HIHI: CLNLL CLN6\ 4 7f :-----------------------------------------------=7p : D. MCCOY 75106,2165 DARIEN, IL (312) 910-0327t7z :----------- INITIALIZE ------------------------7 :  : AZ7 L$(): CB$( ): T  O:BAR$BAR$(): T:EX :EXPERT FLAG7 SP$" "8 BAR$: BAR$: BAR$K8 , : " ET - Edit Text - IBM Personal Computer File Editor ";8 ,: " Vers. 7.0 D. McCoy 75106,2165 ": BAR$:8 " This program is designed to edit ASCII text files. BASIC")9 " programs must be saved using the ,A ASCII form for editing.":: BAR$S9 BS$() :backspace for ibm pcb9 F1$"###>"9 F2$=" "+CHR$(221)+CHR$(219)+" "9 F3$" "()"\ \"H: F4$F1$" \ \"k::---------- LOAD -----------: K$"&" <:"To MERGE another file -":" Enter the filespec of the file to be LOADED " ;$ SK$"&" <:"X=eXit ?=Directory : ";: 8F;. <:"?=DIRECTORY =to create new file: ";R;8 FS$;B FS$"?" <: BAR$: "*.*": BAR$: ;L FS$"" SK$"&" K$"A":CLN:LO:HI:  ;V FS$"" FS$"X" FS$"x" FS$"":  <` FS$ AS 1 PP PPR> <:"Form length in lines (";FL2;")";: FL: FL FLFL2> <:"Press any key to stop printing..."> FLPP FLPP>TM(FLPP):BMFL(TMPP)>  CLNLO HI> SL(L$(CLN)): SL SL? SBSLPW:PC: ((SB(SLPW))) SBSB-?( J3 SBH?2 K$: K$"" ?< ((DPPP)(DPPP)) ((CLNLO) (J3)) BP:DP: P?F BP?P BP n?Z TM J2 TM:: J2?d PH$"" LM) PH$::DP.@n LM) (L$(CLN),PC,PW):DPDP:PCPCPWU@x ((DPPP)(DPPP)) j@ BM @ (CLNHI) (J3SB) J4 BM:: J4@ J3@ CLN@ IDP (FLTM)@ K$: K$"" : @ @@A:---------- SAVE -----------EA <:"Current filespec is: ";FS$A <: "X=eXit. New Filespec to SAVE or : ";FV$A FV$"X" FV$"x" A FV$"" FS$FV$A FS$ OUTPUT AS 1A J LL:#,L$(J):::B":---------- END -----------FB,: "EXIT...Was text file saved (Y/N)?";:  bB6 K$"Y" K$"y" JhB@nBJBT:---------- MEMORY ------------B^ <:"Bytes free space =";(X):Bh:---------- ERROR TRAP -----------Br: :HIGHLIGHTC| :NORMAL[C 5 <: r: "*** File not found ***": |: ` :eC C @ <: r: "*** Bad File Name ***" : |: ` C D G <: r: "*** Disk Not Ready ***": |: `  D ]D F <: r: "*** Disk Write Protected ***": |: ` gD D  <: r: "*** Out Of Paper ***" : |: D  <: r: "*** Line Too Long ***" : |: 0%E: <: r: "*** Error";;"in Line""***": |: QE:---------- END OF PROGRAM ----------