IMD 1.16: 29/05/2007 12:27:49 FOGCPM.032 --FOGCPM032VDE262 COMb VDE26 DOCVDE26 DOC !"#$%&'()*+,-./VDE26 DOC80123456-01-07 88 -CPM032 DOCVDE262 UPD5789:;<=VDM262 COMb>?@ABCDEFGHIJVINST262COMHKLMNOPQRSVINST26 DOCTUVWXYZ[\]^_`abcVINST26 DOC"defghVDE262 QRFijkVDO25A COM6lmnopqrVDO25A MANstuvwxyz{|}~VDO25A MAN3VDO25A NOTVINST11 COMlVDO-OVR ASMFVDO-OVR SUBThis is the disk name. ac ways; lot boldfacۨslow somsOn colܗbold color. ^PD (doublrike)make b ̗ dark ۧMov̕ ߲wa doublrikbeg ӊp^PDlocaى̛ (D) you'lalso se^Ddoublrikbegs. Note: Double-ruck looksimilabold Somexecut bo ylesammannOn colܗdouble-ruck color. ^PS (und)und ̗ ̛ۧ. ÀaH8\e_VDE_2.62__(c)1987_E.Meyer__A:@@_@@#7Generic CRT P N Teletype printer14!116 2%%-21<2\ 2121b22!3:721*5"1:>2":/ 21!`35!~# &y#!p * ͜:1 #\ (Ͱ#:] (P͵:1 ͹*:1!02114͕,q++ͩ.%#-_͘  7Vw)CxT 5; =  -  bcx:1Ĺh%-21:1 -:<ī*M* )*[[:1o&.^#V)* Erro]]] b*:1( ڕ,-% >>>>>> >> > 21Cͱ*M** )*Fͱ*%Cͱ*)*b*:1 !1Iͯ _͘ + !1I_ͯ ͘ +%< !1Iͯ i͘ +!! z\+-, ,!1Iͻ D+Y >D!1Iͻ 08:#K"M$͘ +BCDEF[HI8KLNP QRSTUWX!$=$~$##[ :1F•,!x *:1_ͪ%:1_ *A&))))+ :1_:1 /21f,ͩ.!25#~T]#;(O!24^q{8>2<:22<ɯ!/C*% YN( (!c ( (#OGyH%AV=w=)=+>B2!}ր0>%_(2(. (M9(Jy(!w# 0@R*͢*g*͢* >+͇* ͇*͇*6}ր%ͯ >ͣ zbk~08 :0 #x0Gx(?(8( 530/0( =>dG0( => 8G0(=(x7! FNy(-B0 ##>1B84 ##NFy(>0}0B> 6 #= 'd !1 <212121/21>2121!C/C*͡!1 *($P()^((B('@(/#(L=(`"(l 71 8|21~ m~!wF b1 8](Z212217!/3*!F#H *2"2:1 :1!121!1n( 7R+*2 ڕ,*2[2"1S1!1~(21<21:1G 8[*1'x % (x:1( 80>21ͬ [1{z0>  :1( y !~(˾F#H !15, !F#H *2+4Õ,:1> :1g( !1I(u!14(oN:1_:1=8c8`:1O:1!18˶N(@:1G:10>F> = *1:1G= > :1!1o&p ͑ !p =  W :1G7nnnnn (.(:1ȯ21̀ >21:1W :1(>21 !":1W >^ @!1v W 0O!"(I!( 4>_!(F#H $>_!~ F#˾_W x~ #x^W #!4"2*.%"22 2<222 22 2!"2"2" 2*2+"26 *2#"26 F#^#V## ^#V## @`0@a{_>G:1x = :@G x BDM*2DM*2 *2K2K2*2++ *2+*2"2#"2 *2#*2"2+"2 0t" > 7> p ###7?(#+ 0S> *2 7?z 7*2+> ##>4:b?-* 2+" 2: 2(=* 2#" 2: 2!b(<:b2 2>5:2=(,ͬ! 28#$:2=:2=!B<:2!`<:`22ɯ ~#(  > 8)T] ~  > 8 > # S2 *2T]  >0~ ~+ S2o<'}͖*2#w"2͖*2+w"2!" 2 *2# > *2 * 2" 2*2+ > *2 * 2R" 2:b7M*,)!)!/)b*]+-<`i/͑ *2#[2RB/͑ *2[2̈́*2[2̈́ /͑ !/3*Õ,{z~# (8:1k!p *(-*2ͮ!" 2-*2"2*24 - 8 *2> 8 *2>7K>2 2Â. ڥm" ʥ): 2=G: 2V-4:b! 2G: 2w-͡.L,Kq.͹: 2͚Â.͡.L,}+0*2~ x.4=*1ͥ! 2 8$m" ( ~=!B #+"2͹ ( (Â. ͹ͥ=!`ԇ.:2=̇.͖ U.m" ͡.L,~(6 +#"2ͫ ( (͂.>2 2:`=!B!2܇.m" (~"()~"č"( )~"č": 2t" ̓"č"  (̓"č"(m" )=̓"č"(͈"Ē"(̓"č";̓"č";-:b=_!88<_}+[2S24: 2Ú-:b_=!88_Kڰ°[2S2: 2Ú-:b??2!2~!? +5(#T]#@~ #>2!2~- 3!2yOxG3*2"2*2:1 # x3:():2=(#[2> ((:23 Y:22T] C1'( | } 3 K1#:2=G2'(!? y++4*2~( (~6 ͧͲ !1F-!2( O#> -!3-O#> --*2"2:2( G;7!3~(G#~ͧ'>21!1/C*͕͡,3O!>21:2:1́(0-͍%:1#>21:1(E:17:1f, 8 ( :2J Q:1?:17h%Cͱ*M*!1 *ͩ.Cͱ* )*b* 7* ̓%217_YN !1ͫͥ!C8#~=!`ԇ.:2~UZ:J7ͥO!C~(0#+q!IJyHͥ!C(#76( T]#H!1Iͯ ( +!>+ (J ʡ ͧ- +IR_?8 -v*{ͧ{ :1e> ͧ-:2!B=!`ԇ.:1i:2 1:1N( t" 7ͩ. 8͂.)͡:1> ͧ͂.> ͧ: 2!b .m" (-:1> ͵> ͵-!2~-:2!`̇.*2> > -:1;21*2+"2~ --x(*2++> ##"2- -*2~(c*2~6 +w~#"2 - x7*2#x8gT]#c> ͑;}0 *2~ # +"2-*2̀"2-s͖:>ͧ- A=7fͦsͦ- #G7w +4 Ͳ-!26 8$:> T]4 +~ 8*2:> F T]0+ :>w :>T] 8S2+x *2:> *2:>T] 8S2#x O7 9w DM*2B`i(#S2 -K2BDM(+S2S2#"2< 7+#RDM[2N'S2 -`i7B!ͣ:\G:1O(& 08l:8 @8d0`G1 00ROY !<2p#6?>2 6:3(ͱ*:`2 2:b=21:`!1wgN <2ͪ% 7<2ͪ%a_!#! ~(:9( ~w#6+6 +6 +6 +T]+y6.O) !15( > ͜):1O*...  y!1(> ͜)]+:1_ -P͜:1 %:\%\ͪ%7j2)Õ,P͜:1 .!/3*<8*2 ' '0/ [2"2#j2)-:] 7!/3**2"2*2 0*2'*2+4Õ,P͜:1 !/3*  RBK'j2)Õ,7!\<2 :1:1:1!<2\ ~21_#~21#~21 P͜:1j2)Õ,!%/C*>ͣ7G!~ w#!~[(x &7212)Õ,#~W( A(N7212)-!"1:1N(>2121:1= *5"1 !"12121!1ͫ(F:b7?ͮ= f,;= W:3(ͱ*]+=2b-:2!32b-m"_A8 [0nˮ )-!1:7(w-!1!4~/w!2ͫ:2!1 !13)!1ͫ:1!1 !18)!3ͫg!b5-:3!\2: 221y21Õ,:1N7:1=!L/C*: 2" 77!1721Õ,!11 :1=!1 !1<)!11~(6w>: 2G:1 ͧ:1=Gm" )<ɷm" ;= ͬ2 2t" >GK' x!BG>8 0x+6 :1! 245t" ?- m" (> ͧm" )4I(8 ͔rx=J ?)=:1= t!m" w̓%͜!8z!͒rh!ͥ! 2 t!m" ! ~=!B ͧ~" )ͥIn!n!͔m" ( ;;À rÀ t" Ft" 7-(R);!>͒m" 7͗" )> ͧÀ )!:1Ĝ͍%-͍%?͍%C:4(h%f,̓%0(7 07)m" ʽ! ()t" ! (m" )m" ;; {2i":1-m" -~" ;?~" ;ͥ-! 2:1=G:1?i"(r> ͧ-*2~*2~> !"!"!"!"!" !"m"t"~ #,;/-.?!:  !s/C*% 21N(Q ͟*%07 7W>!`3>_!z(N #= ~(^6#DM!BDMy#{(I: :'s#K!T]BBDMN#!`3:1N(Q +~#8#+y#Õ, !!>ݾ8^R8#"|6#+| !"!!!1F%0;:;h%21!1F0G!(^#~#7O~˾(#~˾b%>1)!T/C*͡(cO![/C*% Q ͟*b%%y( !`36͕,*( 08 0Gx21h%!`3"1>21!2~22~į>2`3Õ,:1;21%!16[(+](.>(5<(<_!`3~#;(;{ #"1!`3"1ɯ21_r%h% 7) 7*1++++"1>>2%:1;%_m"ʆ$%>21:1 *1^"*1^#"1~< :1 !15( !`3"1{կ21r%h%!*6!*wÖ.{:2 /!2į!*~622:22*!*~622:22*%*"%!%"S!"14&/ð>0ɷ(%!:˶#˶<(!()% *T](\O>: S++~08+:0'0_+~08:00W_+0_{21 }(~ (A8G_>8A{<2\>:> +#(]#(j.( (A8i[(C&( > *7ɯ(@. ##(4 (87[(&(~ #~[ #~(A(N(W 21:] (!' .,;:?*=[2h2|21/21\ͪ%< 7ͪ%\ͪ%'0!:1W >~ :1(d/21~ ~ (0˾> #wz ˾~ +~(5 21!!>( ~ 8~ (> #wz#6'21 %:\%!] ˾#:1(-!\ !\!1ͪ%ͪ%\ͪ%212h2|\ͪ%<(x(!'!"(aw:1W 3~ (& ( ($21~ >21:1 ~#\ͪ% A!:w > (| }N(N((6#\ͪ% \ͪ%1͢* 0͢*>:͢*!]~ (͢*#>.͢*!e~͢*#)*>[͢*:1͢*b* (0)_! 25‡*4: 2_-:a  ͇* ͇*:`<2 2͜)> :`<2 2: 2_~# ~#G> ͤ)͜)))鯆7G#^#ͫ* ]>  ͫ* )M*)b*3*: 2_-:=!: *>22:=!: *22:2!` : 2!b:<0?:2_ͫ* _͇*z22:N !!F+z(  ͫ* {!F+ A(=!F+!:R(z_ͫ*#{_ͫ*{_ͫ*#z_ͫ*:G !W+z<6+!Z+{<6+!T+ *60 84 #0wL+~*M*:`W-͇* b*: 2_K0ͮ: 22 2ͥ:2Ox0_: 28 8 x={(<2 2D22* 2"2:1_+BJ(R8#"2C2 ͜.f,,͡. :1=F,=R,q,:1F,R,q,͖%ͱ*M**28,$*23,-: 2o&3,b*à%ͱ*p ͑ !p *1.: 2GE1–.:1! 2(G#q+(,1–.-21/21͗,:b< :3Wͱ*: 2(:8_K:`<_: 2GJD_}:`W<_:b 8(-: 2GW$K: 2G: 2=W:`<_-S!b *2zȯGO_O(3'- ( ͻ-{!B<_DWDG > ͻ-'ͻ-( (3 0L@R*͢*g*@y (:1( <͇*{-:` ͢*(> ͢*{=HG!i *:2!3!b S->͢* > ͢* > >>> :1021͡.L,:1 )! *8͡.L,:1 )! *8:: 2=: 2=m" ( :2!`(": 2!b(: 2=(: 2!b(: 2->21>21>21!1!16.m" :1t"  (___||^O-dsCR||ESCHelpInfo |^insert|^reform||^Q-|TOF||vde {du:}{filename}{[m} "{}" = optional EXAMPLES: A>vde A>vde my.doc[w A>vde b11:prog.asm n "du:filename" - file to edit. If drive/user omitted, defaults to current values. If name omitted, you begin an (as yet unnamed) new file. "[m" or " m" - choice of file modes: can be "W"ordstar document, "A"SCII document, or "N"ondocument. Normally defaults to "A". If an existing file is too large to edit with VDE, you will get a "Memory Error"; break up the file into two or more pieces, and edit them separately. (The file size limit is typically about 55K, depending on your TPA size.) VDE gives you a "status line" at the top of the screen which includes the filename and mode, cursor position (page, line, column), various toggles if on (INSert, DoubleSpace, MarginRelease), and prefix flag: ------------------------------------------------------------------------------- P0:VDE.DOC [A Pg 1 Ln 50 Cl 48 INS DS MR ESC-H = help VDE 2.60 (c)1987 E.Meyer  ||^O- D dsp CR||ESC- Help Info |^V insert|^B reform||^Q- |R TOF || L,R mrgn|| Write Prnt ^F wd rt|^N ins CR|^^ case || |C EOF || V,+,- vtabs||Block Read Name ^A wd lf|^G del rt|^P ^code ||B block|F find ||X mrel|T rulr||Termin Files Load ^R pg up|DEL dl lf|^PZ place||P place|A replc||P pagn|S spcg||Unmark Erase Save ^C pg dn|^T del wd|^U undel ||DEL dl BOL| U ||C cntr|W wndw||Copy Macro eXit ^Z rp fi|^Y del ln|^W wait ||Y del EOL |undl||F flsh|Z zap ||Delete Key Quit ------------------------------------------------------------------------------- If you type ESC-H, you will also get a brief menu of the various VDE commands. The menu, like all command prompts and error messages, appears temporarily in the top portion of the screen; press ESC again to remove it. (Note: "" and "" are abbreviations for Arrow Keys: up/dn/rt/lf.) The VDE command set is similar in many respects to WordStar's, though not identical. There are ESC- commands, which mostly correspond to WordStar ^K- (Block) commands; ^Q- and ^O- commands; and other single-control-key commands. The similarities are strong enough that a WordStar user should have no trouble adapting to VDE. (In fact, if you find these instructions too cryptic in places, it may help to look at a WordStar manual.) ============================= COMMAND SUMMARY ============================== I. CONTROL KEYS: single keystroke commands. CR = Carriage return (^M). Marks a paragraph end. BS = Nondestructive Backspace (^H). TAB = Hard Tab mode: Tab (^I). Variable Tab mode: move to next stop. Arrow keys: WordStar: ^E up, ^X down, ^S left, ^D right. Alternate: configurable, default ^K,^J,^H,^L. ^F = move to start of next word right. ^A = move to start of next word left. ^R = scroll upward one screen. ^C = scroll downward one screen. ^G = delete character to the right of the cursor. DEL = delete character to the left. [Configurable alternate.] ^U = undelete a character. ^T = delete word to right of cursor. ^Y = delete current line. ^N = insert a carriage return (break line) at present position. ^V = toggle INSERT mode on and off. ^^ = toggle case (upper/lower) of character at cursor. ^P = insert following control code in text. ^B = reformat current paragraph. ^Z = repeat find/replace (Repeats last ^QF or ^QA command.) ^W = wait. (Brief pause, useful during Macros.) II. ESCAPE COMMANDS: first hit ESC, then the key shown. (ESC cancels) ESC Arrows: Left/Right (including ^S/D) = shift horizontally 32 columns. Up/Down (including ^E/X) = shift vertically 1/4 screen. ESC F = Files. Look at the directory of a disk. ESC E = Erase. Erase a disk file. ESC L = Load. Load a brand new file to begin editing. ESC N = Name. Change the current filename (affects Save, eXit). ESC R = Read.  Read a disk file into text at cursor position. ESC P = Print. Print the file (or block) from memory. ESC S = Save. Save the current file to disk, and continue editing. ESC X = eXit. Save the file, then Quit to CP/M. ESC Q = Quit. Abandon current file and quit to CP/M. ESC B = Block. Mark the start of a Block. ESC T = Terminate. Mark the end of a Block. ESC U = Unmark Unmark the Block. ESC D = Delete. Delete the marked Block. ESC C = Copy. Copy the marked Block to present cursor position. ESC W = Write. Write the marked Block to a disk file. ESC M = Macro. Execute a string of commands repeatedly. ESC K = Key. Store Macro on function Key for later recall. ESC 0..9 Use stored Key. (In macro mode: label.) ESC !,=,~,# Used in Macro programming (see below). ESC H Displays help menu. ESC I Displays information: file size and free memory. III. QUICK COMMANDS: first hit ^Q, then the key shown. (ESC cancels) ^Q Arrows: Left/Right (including ^S/D) = go to start or end of line. Up/Down (including ^E/X) = go to top or bottom of screen. ^Q B = move to block marker. ^Q P = move to next place marker. ^Q R = move to top of file. ^Q C = move to end of file. ^Q F = find next occurrence of a string. ^Q A = find and replace a string (global). ^Q Y = delete from cursor to end of current line. ^Q DEL = delete from cursor to beginning of current line. ^Q U = undelete a line. IV. ONSCREEN COMMANDS: first hit ^O, then the key shown. (ESC cancels) ^O Arrow: Up (including ^E) = make current line top of screen. ^O R = set right margin (column 1 turns off wordwrap/formatting). ^O L = set left margin. ^O X = toggle Margin Release on/off. ^O S = toggle Double Spacing on/off. ^O C = center current line. ^O F = align current line flush with the right margin. ^O D = toggle display of hard CRs on/off. ^O T = display ruler line. ^O V = toggle tab mode Hard/Variable. ^O + = set variable tab stop. ^O - = clear variable tab stop. ^O P = toggle pagination on/off. ^O W = toggle windowing on/off (see below). ^O Z = temporarily blank the entire screen. ============================ EDITING COMMANDS ============================== BLOCK COMMANDS (ESC-B,T,U,D,C,W,PB, ^QB) - A Block of text is delimited by two markers, normally ^B, which remain in memory until reset or deleted. ESC-B marks the beginning of the block. ESC-T terminates the block. (ESC-B must be done first.) ESC-U unmarks the block, removing any marker(s) set. (This can also be done individually with any of the character delete functions.) The Block operation commands all require a Block to be marked, and the cursor to be outside the Block: ESC-D deletes the block (including markers). ESC-C copies the block (not including markers) to the present cursor location. There is no Block Move command, but you can use ESC-C followed by ESC-D to delete the original. ESC-W writes the block text to a disk file. ESC-PB (ESC-P with B option) prints the block text. The ^QB command moves the cursor to the Block start. CURSOR MOVEMENT (,^Q,ESC,^O, ^F,^A) - VDE supports three sets of Arrow keys, which function interchangeably. The two built-in sets support the WordStar "arrow key diamond" ^E,^X,^D,^S, and the ANSI standard 3-byte sequences (ESC-[-A etc). The third set is user config- urable, set by default to ^K,^J,^L,^H. These keys move the cursor up, down, right, and left respectively. Preceded by ^Q-, any arrow key (except ANSI) moves more quickly: to the top or bottom of the screen, to the left or right end of the line. Preceded by ESC-, any arrow (except ANSI) moves the FRAME rather than the cursor: the text as a whole shifts up/down 1/4 screen, or right/left 32 columns, while the cursor stays put. (In fact, vertical shifts will drag the cursor along if they have to; horizontal shifts won't do this.) Preceded by ^O-, any UP arrow key (except ANSI) makes the current text line the top of the screen. There are also two WORD movement commands: ^F moves right, to the start of the next word; ^A moves left, to the start of the last (or current) word. Both have a maximum movement of 255 characters. DELETE (^G,DEL, ^T, ^Y,^QY,^Q-DEL) - You can delete text one CHARACTER at a time: ^G deletes to the right of the cursor, and DEL to the left. [If you have no DEL key, you can install another equivalent.] Note that the ordinary BS (^H) does not delete. ^T deletes an entire WORD to the right (up to 255 characters). ^Y deletes the entire current LINE. ^QY deletes only the part of the line to the right of the cursor; ^Q-DEL deletes the part to the left. Accidentally deleted text can usually be recovered (see UNDELETE). DISK OPERATIONS (ESC-F,E,R) - On using the ESC-F command, you will be asked for an (optional) drive/user, and its directory will be shown. If there is not enough room to fit all the files on the screen, you will see "..." at the end to indicate that there were still more. Press ESC to return to editing. [ESC-F can be configured to ignore SYStem files.] ESC-E will erase a single disk file. (No wildcards.) ESC-R reads in the contents of a disk file, inserting its text after the current cursor position. FILE COMMANDS (ESC-S,N,Q,X,L) - ESC-S SAVES your work: what's in memory is written to disk under the file name in the header. (The name cannot be blank.) If that file already existed, a BAK file may be preserved. ESC-N NAMES your work. This allows you to change the filename in the header before saving. After a name change, BAK files are not preserved. ESC-X EXITS politely to CP/M, saving your work first. ESC-Q just QUITS. Since you will wind up at the CP/M prompt with any unsaved work lost forever, you are prompted to confirm this (Y/N). ESC-L abandons the current file and LOADS a new one to begin editing. FIND, REPLACE (^QF, ^QA, ^Z) - ^QF is the command to FIND a string. The search proceeds from the cursor position forward, and is normally case sensitive. A "_" [this can be reconfigured] functions as a wildcard: if the first character in the string, upper/lower case will be ignored in matching the rest; otherwise, it will match any single character. Control codes, like ^M for newline, can be included (with the ^P prefix where needed). Examples: Find: ^MLABEL matches "LABEL" at start of line only; Find: 4__01 matches "42201", "47401", etc;  Find: _wordstar matches "WORDSTAR", "WordStar" etc; Find: __ matches "_"! ^QA is the global FIND/REPLACE command. It asks for a string to find, and what to change it to. The cursor will be placed in succession on each occurrence of the string in the file, starting at the current cursor position. (You will see the prompt "Chg?" in the header.) To change it, press "Y"; anything else skips to the next. To change all further occurrences without being asked, press "*". ESC cancels at any time. ^Z repeats the last ^QF or ^QA command. For ^QF this is simply a repeat find; for ^QA you will also be asked whether you want to replace the found string. INSERT MODE (^V) - ^V toggles insertion on and off (when on, the INS flag shows in the header). If INSERT is OFF, any existing text to the right of the cursor is overwritten as you type. If INSERT is ON, what you type is inserted, and existing tex t moves to the right. LINE SPACING (^OS) - The ^OS command toggles between single and double line spacing. In double space mode, the following functions generate double carriage returns: CR, ^N, Wordwrap, ^B. You can easily mix single and double spacing; the Reform function ^B can convert between the two. MARGINS, CENTER, FLUSH (^OR,L,X, ^OC,F) - ^OR sets the RIGHT margin, and turns ON wordwrap, formatting, and centering. The default is column 1, which turns OFF all formatting functions. At the prompt "Column:" enter the column number (1-255), or just hit RETURN for the current cursor column. If this value conflicts with the left margin, the left margin will be reset to 1. ^OL sets the LEFT margin in an identical fashion. Must be to left of the right margin, which must have been set first. The default is 1. ^OX temporarily RELEASES the margins (resets them to 1), allowing you to type outside them. Use ^OX again to restore the margins. ^OC CENTERS a line with respect to the current margins, if set. ^OF FLUSHES a line right, if the right margin is set. MISCELLANY (^^,^W,ESC-I) - Just to explain a few miscellaneous functions: ^^ (ctl-caret) changes the case of the character at the cursor, if it was a letter, and moves to the next. Useful for capitalizing a string of lowercase text, or vice versa. ^W waits for a brief time (about two seconds, if clock speed is set properly). Most useful in a Macro when you want to stop and see something for a moment. ESC-I displays an information message with the current file length and memory usage, in bytes (1024 = 1K). Note that when there is less than 256 bytes free, response time can get very slow. PAGINATION (^OP) - The ^OP command toggles pagination. When on, the page length determines the page and line shown in the header ("Pg xx Ln xx"), and all page functions in the Print routine (formfeeds, headers, start- stop print) are enabled. When off, the header will say "Pg 0 Ln xxxx", showing you the absolute line number in the file. Also, printing occurs with no page breaks or formfeeds. (This can be useful for printing small things right after each other on the same sheet; or, in conjunction with the "*" option, can print out multiple copies of index cards, labels, etc.) VDE never sends a formfeed before printing; align the paper first. [You cannot toggle pagination on if the page length is 0.] PLACE MARKERS (^PZ,^QP) - You can set any number of temporary place markers in the text with ^PZ (they will appear as ^Z). The ^QP command moves the cursor to the next place marker in the file, cycling back to the top of the file if needed. (Place markers are NOT saved to disk.) PRINTER CODES (^P) - Control codes for special effects in printing can be entered in the text with the ^P prefix. Thus pressing ^P^H (or ^PH) embeds a ^H, etc. Several standard codes are: ^H - backspace - overstrike previous character ^I - hard (ASCII) tab - printers respond variously to this ^L - formfeed (Not recommended when pagination (^OP) is on) (The Block marker, normally ^B, cannot be embedded; and ^Z is reserved for use as a place marker.) Control codes display on screen as capital letters, highlighted if possible. VDE assumes they are not characters, so they are not counted when reformatting text. For greater convenience, you can also arrange to have a single ^P- code produce an entire string of bytes for commonly used effects. VDE supports a subset of WordStar's printer installation, seven definable codes: four toggles, four switches. The Printer Installation in VINSTALL allows you to choose what codes you want to use, and install the actual control sequences your printer needs. The defaults are: toggles ^D, ^S, ^Y, ^T switches ^Q, ^W, ^E, ^R (In WordStar these toggles are Doublestrike, Underline, Ribbon, and Super- script, but you can make them anything you like.) "Toggles" are good for features like underline that are turned on and off. "Switches" are better for varying parameters like character pitch. Example: your printer uses ESC-U-1 (and 0) to turn underlining on (and off). The crude way to do this would be: ^P-ESC,U,1,underlined text,^P-ESC,U,0 The sophisticated way would be to use VINSTALL to define those strings as the ^S toggle, so that all you'd need would be: ^PS,underlined text,^PS PRINTING (ESC-P) - The ESC-P command Prints the file from memory. You will be asked for a set of "Options:", at which point you may enter one or more of the following, in any order: P PAUSES for your keystroke before each page (sheet feed). B prints only the currently marked  BLOCK. ^ FILTERS control characters ^X to text "^X". *nn prints the job out nn TIMES (nn=1..255). @nn begins printing AT page nn. #nn prints only (up to) a TOTAL of nn pages. "..." uses the quoted string as a HEADER. The string, followed immediately by the page number, will print at the top right of each page near the margin. (Maximum length is 50 characters; use an empty string, "", to get numbered pages with no header text.) The last three options (@,#,"") are NOT allowed if pagination is off (^OP), or if "B"lock print was chosen. Example 1: Options: @6#1*2"Instructions, page"P will print out page six of the file twice, with the header shown, pausing before each page until you press a key (other than ESC). Example 2: Options: B^ will print out the current marked Block, with control filtering. You can abort printing at any time with ESC (this may take a moment, or a few keystrokes, depending on your BIOS). RULER LINE (^OT) - To help you align text properly, ^OT displays a "ruler line" below the header. Type ^OT again to remove it. In each column you will see one of several symbols: "[]" designate the current margins; "." indicates areas outside the current margins, "-" within them. Also, tab stops are marked by either "T" (Variable) or "I" (Hard). Examples: ("A" mode) [-----T-----T-----------T--------------]........ ("N" mode) I.......I.......I.......I.......I.......I....... TABS (^I, ^OV,^O+,^O-) - There are two Tab modes, Variable and Hard; the ^OV command toggles between them. In Hard Tab mode the Tab key produces an actual ^I (ASCII TAB); whether this overwrites any existing text depends on the INSERT toggle. Hard Tabs display by default at fixed intervals of 8 screen columns. [This is reconfigurable to 2, 4, 16, etc.] In Variable Tab mode, the Tab key moves the cursor to the next variable tab stop. Existing text is not overwritten; spaces are added at the end of a line as needed. Up to eight tab stops may be set with ^O+ and cleared with ^O-; the defaults are in columns 5, 15, 35, and 55. [These are reconfigurable.] You can always get a Hard Tab by typing ^PI. UNDELETE (^U, ^QU) - The undelete functions can be used (repeatedly if necessary) to recover a reasonable amount of text deleted either by overtyping, or with any of VDE's delete commands, IF the cursor has not yet been moved away. ^U undeletes one character; ^QU does a whole line. Restrictions: undelete only works with ESC-D if the cursor was adjacent to the block deleted; and it may work imperfectly if DEL has been used several times in sequence. Further use after all deleted text is recovered will produce junk (usually duplicates of text above the cursor, which is sometimes useful). WINDOW, ZAP (^OW, ^OZ) - The ^OW command creates a Window in the bottom half of the screen, which retains a copy of the file text starting at the current line. Editing continues normally in the top half of the screen. This is useful for comparing different sections of text within a file, or even between different files. Typing ^OW again removes the Window. (Note: Windowing is only supported for screens of 15 or more lines.) The ^OZ command temporarily zaps (blanks) the entire screen; good for avoiding CRT burn-in, or just protecting work from prying eyes or fingers. Restore the screen by pressing ESC. (Note: if Windowing was in effect, any text in the window will be lost.) WORDWRAP, REFORMAT (^B, ^OD) - WORDWRAP is automatic whenever the right margin is set. Any text entered will be formatted while you type, to the current margin settings. ^B REFORMATS from the line the cursor is on, to the end of the para- graph, according to the current margin settings and line spacing. (Thus ^B is used not only to reshape a paragraph after editing, but also to change its margins and line spacing.) The end of a paragraph is marked by a "HARD CR", which occurs when you press the RETURN key. (This is a CR immediately following a character of text.) In contrast, when wordwrap occurs you get a "SOFT CR" (which is actually a CR with a space before it). You can change a hard CR into a soft one, or vice versa, by deleting or adding a space at the end of the line. Hitting RETURN also hardens a soft CR. The distinction between hard and soft CRs is only important when using ^B to reformat. ^OD toggles DISPLAY OF HARD CRs. Hard CRs, otherwise invisible, can be caused to display as a "<" character. This can be useful; some may find it distracting, so it turns off. ================================== MACROS ================================== MACRO (ESC-M) - A "macro"  is a string of VDE commands and text that, once defined, can be repeated automatically. When you type ESC-M you will be asked for the string, then a "Repeat count". Usually you will simply type a number for the repeat count (0-9, or "*" for "global" -- actually 255 times). You will see the results as the macro executes, and you can abort it at any time by pressing ESC. (If you are sure you know what you're doing, you can speed up Macro execution by specifying "Quiet" mode: press "Q" before the repeat count. Only the header will be updated as the Macro runs.) Macros also stop any time an error occurs; the error message will be visible, and can be cleared by pressing ESC. Many commands (like Find or Reformat) are designed to generate errors at the end of the file so that a global ("*") Macro containing them will halt there. Other global Macros may need to be aborted manually. VDE turns INSERT OFF before running a macro, so that the same sequence will always have the same effect. In order to include any input line editing characters (BS, CR etc) in a macro, you must prefix them with ^P. (NOTE: To make them easier to read and understand, Macro listings will be given here as they function, not as they are typed in. ^P prefixes as needed are NOT shown. Key- strokes are separated by dashes or commas for clarity, and "_" means a space or blank.) Here is an example of a macro. Can you figure out what it does? (Answer: .elif eht fo dne eht ta meht fo tsil a gnikam elif a fo tuo sesehtnerap ni stnemmoc lla ekat lliw tI) ^QR,^QF,(,CR,^G,ESC-B,^QF,),CR,^G,ESC-T,^QC,CR,ESC-C,ESC-D Onscreen you will see: QRQF(MG[BQF)MG[TQCM[C[D VDE Macros are very powerful tools, particularly given their program ability and storage on function keys. MACRO KEY (ESC-K) - Up to 10 Macros can be stored (0..9), by entering them with the ESC-M command, then using ESC-K to save them. They can then be recalled and used simply by typing ESC-<#>. Example: typing ESC-K-0 will store the last Macro used as Key 0, and it can be recalled and reused at any future time simply by typing ESC-0. Ordinarily, Keys operate just like the original Macro: they will ask for "Repeat count" when executed. If you want to suppress this (giving something more like a "function key", that only executes once) you can type "N" (for No repeat) before storing the key number. Example: ESC-K-N- 0 stores a Macro in Key 0 as a once-only function key. Similarly you can make it a QUIET once-only key with "Q" instead: eg ESC-K-Q-0. If the Macro (ESC-M) string is empty, using ESC-K will delete a Key definition. Using a defined Key brings its string into the Macro buffer. Trying to use an undefined Key results in an error. There are 500 bytes total available for all 10 keys, and a 128 byte limit for any one Key. (VDE's own input line will only accept 65 bytes, but VINSTALL can handle up to the full 128.) Besides simply storing Macros, here are some useful function Keys: 1. Storing different sets of margins (eg for quotes): for example, ^OL,12,CR,^OR,66,CR 2. Typing any frequently repeated phrase; "ESC-6" is much more convenient than "World Wide Widgets Inc. (N.A.)". [VINSTALL allows you to install a default set of macro Keys. Thus VDE can be customized for any task, such as the formatting requirements of specialized writing or programming languages.] MACRO PROGRAMMING (ESC-0..9, ESC-!,=,~,#) - VDE has several commands which function only in a Macro string, and give you control over the execution of a macro, allowing real programming. ESC-0..9, when in a Macro, function as "labels" 0..9. They have no effect, but can be "jumped" to by other commands. ESC-! followed by 0..9 is a simple "jump" instruction, causing macro execution to resume with the command following the label ESC-0..9. As two epecial cases, ESC-![ jumps to the beginning of the Macro, and ESC-!] jumps to the end (aborts). ESC-= and ESC-~, followed by a character and then a label 0..9 (or "[","]"), are conditional jumps: they jump to that label IF the character at the cursor position does (or for "~", doesn't) match that specified. ESC-= and ESC-~, followed by a character and then ">" or "<", are search loops. They will continue to move the cursor right (or for "<", left) as long as the character at the cursor does (or for "~", doesn't) match, or until the beginning or end of the file. ESC-#, followed by 0..9, is used to "chain" to another macro key. In this way you can build up strings longer than the 65/128-byte limit on any one key. It does not "call" the key; there is no returnin g. Macro programs are stored just like any other macro string (usually with "N"o repeat count). If you program in an endless loop, you will at some point have to abort with ESC. Don't make macro programs "Q"uiet until you're sure they work. Example: you can find the start of the next sentence with the macro: ESC~.>,^D,ESC=_> =========================== GENERAL INFORMATION ============================ DISK SPACE - VDE isn't disk-bound; if you run out of disk space, just insert another disk (always keep a blank FORMATTED disk around). Alternatively, you can use the ESC-F and ESC-E commands to purge unneeded files. [If you have small disks, you can also install VDE not to preserve BAK files.] Let VDE's filesize limits encourage you to break work up into files of 50K or less; larger files make inefficient use of floppy disks. FILE MODES - In "A" or "N" mode, VDE reads and writes text as standard ASCII 7-bit characters, a format accepted by virtually all software (including WordStar's Non-Document mode). In "W" mode, VDE reads and writes WordStar Document files. A WordStar Document file can be read into VDE perfectly, except that any right justification will be lost. A VDE "W" file can be read into WordStar as a Document file nearly perfectly; you can easily touch up the occasional glitch. The "N" and "A" modes both produce ASCII files, and differ only in the default options (margins etc) set up when a new file is loaded. Typically "A" is for word processing and "N" is for programs, etc. DEFAULTS FOR: File I/O Margins Tabs Hard CR disp. "W"ordstar document WORDSTAR ACTIVE VARIABLE ON "A"SCII document ASCII ACTIVE VARIABLE ON "N"on-document ASCII DISABLED HARD OFF The file mode option can be specified along with the filename at any VDE file function prompt, allowing you to mix WordStar and ASCII disk files as needed. You can also change the current mode with the ESC-N function by entering a new mode (eg, "[W") with or without a filename. NOTE ON ASCII FILES - The "A"SCII-document file format used since VDE 2.50, to allow accurate formatting and WordStar compatibility, distin- guishes between HARD and SOFT CRs (see WORDWRAP). Consequently, if you edit an ASCII file created by other software (including earlier versions of VDE), it may appear to be full of hard CRs, making text impossible to reformat. There are two easy ways to solve this problem: first, you can use ^QA to find "^M"s and selectively replace them with " ^M". Alterna- tively, the following Macro (best stored as a Quiet macro Key) does a good job of "softening up" a paragraph: ^QS,^X,ESC=_],ESC=CR],^S,^V_^V,^D,ESC![ HYPHENATION - VDE can't hyphenate, but it does recognize hyphens in the text, treating them as a legitimate place to break a line. (So if you're typing a long word close to the margin, you can type a hyphen where you'd like the word to be broken.) If VDE is trying to reformat and finds a hyphen at the end of a line, it will quit with an error. You must join the lines (and delete the hyphen, if desired) manually, then press ^B again. INSTALLATION - VDE can be "installed" for different terminals, printers, etc (as well as various user preferences) using the VINSTALL program. See VINSTALL.DOC for further details. INTERRUPTION - If VDE gets interrupted by a message from some other software (BIOS error, resident utilities, etc), it may lose control of the screen. The best way to restore it to normal is by blanking and restoring the screen (^OZ,ESC). KEYBOARD BUFFER - VDE 2.6 has faster scrolling; also, it now buffers its own keyboard input. This means that characters typed will no longer be lost even on terminals with very slow displays. If you lean on one key for some time you may manage to fill the buffer, and keys may be lost. STRING INPUT - When confronted with a prompt like "Find:", you are expected to type in a string (up to 65 characters). During this process, you can correct mistakes with DEL, BS, or any left arrow, or ^X will delete the whole entry; hit CR when finished. You can also abort the entire current operation with ^U. Note that to get any of these codes into the string itself, you must precede it with ^P (this includes ^P). Examples: to find a line beginning with a "*" (find "CR,*") type ^QF,^P-CR,*,CR. Now to get this into a Macro with ESC-M, you would have to type (whew) ESC-M,^QF,^PP,^P-CR,*,^P-CR,CR. WORDSTAR COMPATIBILITY - The few differences between the VDE and WordStar command sets are often due to the fact that VDE reserves ^J,^K,^L as the st andard CP/M arrow keys. Except the ^K-prefix, most are minor: COMMON FUNCTION WS VDE NOTES ----------------- ---- --- ------------------------- Rept Find/Replace ^L ^Z Partial Scroll Up ^W ESC Several lines at once. " " Down ^Z ESC Block End ^KK ESC-T Delete Block ^KY ESC-D Move Block ^KV --- Must Copy then Delete. Hide Block ^KH ESC-U Actually unmarks block. Erase Disk File ^KJ ESC-E Set Place Mark ^K0..9 ^PZ Not individually numbered. Go To Place Mark ^Q0..9 ^QP Cyclic. VariTab Set,Clear ^OI,^ON ^O+,^O- Note that VDE does not recognize WordStar "dot commands" in text. ================================= MESSAGES ================================= PROMPTS requiring user input:  "Abandon edit?" - confirm ("Y/N") a Quit request. "Chg?" - decide ("Y/N/*") whether to change string (ESC quits). "Rdy" - press any key to print next page (ESC quits). "Repeat count:" - enter (optional "Q" and) repeat count for Macro. "Key number:" - enter (optional "N/Q" and) key number for Key. All other prompts - enter argument(s) for the command (see STRING INPUT). INFORMATIONAL messages: "I/O Working" - disk I/O or printing in progress. ERROR messages: press ESC to continue. "Error" alone means the command used just won't work in this situation. (Example: a block command was used with no block marked.) More specific errors are: "Memory" - the file, block, or key string won't fit in RAM. "Key" - an illegal command key sequence was pressed. "I/O" - file not found, disk full, empty/invalid drive, etc. "Reformat" - hyphen at end of line; or word too long. "Find" - the search string was not found. "Syntax" - a macro programming command was misused. ================================= HISTORY ================================== 1984: VDE began as my set of improvements on the tiny (4k) VDO memory-mapped editor by Fritz Schneider (1982), as adapted by George Peace (1984) for the Osborne Executive. (There are other descendents of VDO, including James Whorton's VDO25, with rather different features.) 1985: The first terminal adaptation, VDE-PX for the Epson PX-8. Ongoing improvements also in parallel Osborne versions VDE-OS. 1986: The unified VDE/M version 2.00, with its generic terminal installation. By version 2.32, improvements had included: macros; directory; undelete; left margin; word functions; global replace; tighter compression; many useful printing options; more versatile installation with VINSTALL. 1987: Recent revisions, besides small fixes, add the following: 2.4 (1/87) - Improved scrolling and screen functions; more screen sizes supported; WordStar file mode; place markers; ^OZ; block print; larger macro keys; VINSTALL terminal menu. 2.5 (3/87) - User area support; variable tabs; double spacing; search wildcards; more standard block functions; improved format- ting; many additions to VINSTALL. 2.6 (7/87) - Improved header; ruler; memory use message; blank filename allowed; ^U input abort; ^O; case insensitive searches; more free RAM; wider variety of terminals; faster scrolling; keyboard buffer; improvements to VINSTALL. **************************************************************** ***** The VDE editor and its documentation are ***** ***** (c)1987 E. Meyer, all rights reserved. ***** ***** This program may be freely distributed, but not sold ***** ***** for profit without written permission of the author. ***** **************************************************************** Please do not circulate VDE in any incomplete or modified form, or without the above copyright notice. You may include additions of your own (*.VFK files, HEX overlays, special documentation) if you wish. Thanks to the many users of VDE whose feedback has led to improvements and bug fixes in the past. Answers to common questions: (1) Source code to VDE 2.xx is not available at this time. (2) An MSDOS version of VDE may be available later in 1987. Direct problem reports and suggestions to me at the address below; include a stamped return envelope for a reply if desired. Eric Meyer 427 N. Washington Bloomington, IN 47401 CompuServe [74415,1305] ==============================================================================  VDE262.UPD ---------- Update Information - VDE 2.62 E. Meyer - 11/87 This is an addendum to VDE26.DOC and VINST26.DOC, describing changes made in version 2.62. Please read it! QUICK SUMMARY: VDE/VDM 2.62 provide increased compatibility with the Wordstar command set. Details follow. VDE/VDM: 1. THE COMMAND SET HAS BEEN MODIFIED to be more Wordstar compatible. The keys ^J,^K,^L may still be installed as CP/M arrow keys. IF they are NOT so installed, they will function as Wordstar synonyms for VDE commands: ^J = ESC-H (help) ^K- = ESC- (block prefix) ^L = ^Z (repeat find) Most importantly, for frequent Wordstar users, all the ESC commands can now be accessed with ^K instead: ^KS, ^KX etc instead of ESC-S, ESC-X. New synonyms have also been defined for block operations:  ^KK = ESC-T (end block) ^KY = ESC-D (delete block) Note that, as special cases, the following VDE functions continue to require the ESC- prefix, and will NOT work with ^K instead: ESC-M = MACRO ESC-K = KEY define (note ^KK is End Block!) ESC-# = use KEY 2. As a side effect, it was necessary to redefine the Window Shift commands (formerly ESC-). These now use a new prefix, ^W: ^W- = shift window up/down/right/left Note that ^W still has the function Wait when used in a Macro. 3. There is a new command ^OH to toggle the status of Hyphenation. The default is still set with VINSTALL. 4. There is a new Print option: "=nn" will cause the page numbering to begin at "nn". Example: "@12=40#4" will print out pages 12-15, but number them as 40-43. Useful for coordinating page numbers across multiple files. 5. There is no longer a help prompt "ESC-H=help" in the header. 6. When in "W"ordstar file mode, the Print function will now ignore dot commands (lines beginning with a "."). They don't set anything in VDE, but they won't print out either. If you want to print them switch to "A" mode. 7. The "W"ordstar file mode now undoes justification (removes soft spaces in text) when reading in a file. Left margins are retained. This was always the intent, but it didn't work -- the spaces were left in and hardened. 8. The original INSERT status will be restored after running a Macro. (It is still turned off when the macro begins.) VDE: Commodore 128 users with RGB monitors can now use colors for high- lighting. A problem which caused the highlight color to propagate all over the screen with the cursor, due to an idiosyncrasy of C128 video, is fixed. VDM: The memory mapped version can be used on a wider variety of computers, including the Exidy Sorcerer. It no longer requires the logical width of lines in video RAM to be 128 bytes. VINSTALL: Illegal hex digits (like X,Y,Z) are now rejected. NOTE ON MACROS: The explanation of macro use in VDE.DOC is admittedly scanty. Here is a further example of use of jumps, for those who need it. This macro moves the cursor to the start of the current sentence: ESC~.1, ^S, ESC1, ESC~.<, ESC2, ^D, ESC=_2, ESC=^M2 You could write this out in pseudo-code as: If not "." goto label1 Left ;move left if already on period label1: While not "." go Left ;move left to previous period label2: Right ;now move back right If " " goto label2 ; as long as you see a space If "^M" goto label2 ; or a Return MSDOS NOTE: An IBM PC version of VDE may be available in the near future. VDE261.UPD ---------- Update Information - VDE 2.61 E. Meyer - 8/87 QUICK SUMMARY: VDE/VDM 2.61 fix several bugs in release 2.60, and provide the following new features: * improved hyphenation in text reformatting * new terminals on the VINSTALL menu VDE.COM is still only 12K. Details of changes in version 2.61 follow. VDE/VDM: VDE can recognize a hyphen ("-") as a legitimate place to break a word in reformatting. Consequently, when VDE is reformatting and comes upon a hyphen at the end of a line, it can't be sure whether it should be removed in joining the next line of text. Earlier versions of VDE would halt with an Error at this point, forcing you to make a manual adjustment and hit ^B again. Now, instead, you will be asked "Chg? (Y/N)". You have three choices: Press "Y" to remove both the hyphen and the space after it; "N" to leave the hyphen in, but remove the space after it; "ESC" to leave both the hyphen and the space. Typically you would choose "Y" if it was a "soft" hyphen, that you entered in order to get a wordbreak ("ter-minal"); "N" if it is a "hard" hyphen that is actually part of a word ("vis-a-vis"); or "ESC" if it is a punctuation mark. After your choice, reformatting will proceed automatically. VINSTALL: 1. In the User Option list there is a new choice: "Enable Hyphenation?". Select "Y" to allow reformat (^B) to recognize hyphens as word breaks, or "N" to avoid messing with them entirely. 2. The following terminals have been added to the VINSTALL menu: TRS80-Holmes CPM (VDM) Northstar Advantage (VDE) Let me know if there are any problems with these; TRS80 people especially have been having difficulty in the past. VDE 2.6 BUG FIXES: 1. The cursor is no longer misplaced after entering a control code with ^P at a string prompt in VDM. 2. The User Options to default to INSERT ON and RULER ON now work properly. (Insert didn't work; Ruler messed up the screen count.) 3. Global replace (^QA) no longer fails to halt under certain unusual circumstances. (Many thanks to Ed Garcia for noticing this!) MSDOS NOTE: I have confirmed that VDE works very well under a CP/M emulator on an MSDOS system. (Z80 emulation required; install for whatever terminal emulation you are using. Avoid specifying user numbers.) VDM, unfortunately, will not work: its video RAM routines can't handle the structure of IBM video memory. ----- Eric Meyer, 427 N. Washington, Bloomington IN 47401 ----- ÀaH8u_VDM_2.62__(c)1987_E.Meyer__A:@@_@@#7Osborne Exec P0 .0.2˷Teletype printer13!116 2 & &-21<2\ 2121!`^S1#^S1b21!3:721*5"1:>2":/ 21!35!~#;&ͪ#!pJ*!J* :1 #͉ ))<:] (́:1 i*:1!02113^,7+͞+7.G%*.<Ͷ-̈́ <pV_ bt s = I   (?:1͙%Ͷ-21:1 Ҫ-:<*͙*Q)@*[[:1o&.^#V*E* Erro]]] ͤ*1:1( ^,ê-J% >>>>>> >> > 21C*͙*]* u*F*u.J%C*u*ͤ*:1 !W1b ̈́ D  !Z1b̈́ DRi?+' S !]1b ͎ D!("(" M+-H H!c1b DDY >D!f1b 08:$K"M@$ DBCUDEFH=IeKLNP QRSTUWOX!$=)%~-%##[ :1k^,!xJ*!J*:1_%:1_ *A&))))=+ :1_:1 /21*./,7.=!15#~T]#`(O!14^q{8>2a:12aɯ!=/͏*J% YN( (!c ( (#OGyHJ%Aʃ=ʤ=V=D>B2!}ր0Fu.J%u.̈́(2(. (MO(Jy(!w# 0@͞**ͩ**' ' >+ͮ* ͮ*ͮ*6}րJ% > zbk~08 :0 #x0Gx(?(8( 530/0( =>dG0( => 8G0(=(x7! FNy(-B0 ##>1B84 ##NFy(>0}0B> 6 #= 'd !1 <212121/21>2121!.͏*!1D *($P()^((B('@(/#(L=(`"(l P^ 8|21~ m~!wF b^ 8](Z21221P!.*!F#u *1"1:1 :1!121!1n(BPR+*1J6^,*1[1"1S1!1~(21<21:1G 8[*1Tͥ % ((x:1( 80>21  [1{z0>   :1( y !~(˾F#u !15Y !F#u *1+a^,:1>  :1g( !u1b(u!14(oN:1_:1=8c8`:1O:1!18˶N(@:1G:10>F>  = *1:1Gj >  :1!1o& ; ! j  ̈́ :1G7nnnnn (.(:1ȯ21ͭ >21:1W :1(>21 !":1W >^ @!1v W 0O!"(I!( 4>_!(F#u $>_!~ F#˾_̈́ x~ #x^̈́ #!3"1*.%"121<212121!"1"1"1*1+"16 *1#"16 F#^#V## ^#V## @`0@a{_>G:1x= :@G x BDM*1DM*1*1K1K1*1+++*1+*1"1#"19*1#*1"1+"1(0ͥ" > 7>  ###7?(#+60S> *1 7?z 7*1+> ##>4:b?-*1+"1:1(=*1#"1:1!b(<:b21>5:1=(,!18#$:1=:1=!B<:1!`<:`21ɯ ~#(  > (8)T]~  > 8 > # S16*1T] >0~ ~+ S1o?i?@}*1#w"1*1+w"1!"1(*1#+> *1  *1"1*1+9> *1 +*1R"1:bP͙*])! *!/*ͤ*#+1ê-i?`iy/; *1#[1RBm/; *1[1ͱ*1[1ͱ [/; !P/*1^,{z~# (8:1Ĝ!pJ*1))ê-*1J!"1ê-*1"1*1aMê-68 *1>2(8 *1>-Px>21J.6͞" V:1=G:1̓Ͷ-4:b!1G:1ͤͶ-".,x-J:1.".,ͪ+0*1~ -a=*1!168$͞" ( ~=!B #+"1 ( (,.M=!`.:1=.6-͞" ".,~(6 +#"1 ( (@.>21:`=!B!1.3͞" (ͯ"(Vͯ"ľ"( Vͯ"ľ":1ͥ" ʹ"ľ"  (ʹ"ľ"(͞" V=ʹ"ľ"(͹""@(ʹ"ľ"tʹ"ľ"tͪ-:b=_!88<_ͪ+[1S1a:1ͪ-:b_=!88_x[1S1J:1ͪ-:b??2*!2~!? +5(#T]#@~ #>2*!2~ʶ-6L!2yOxGL*1"1*1:1 # xL:*():2=(#[2> ((:2L  Y:22T] C1T*( | } L  K1#:2=G2T*(!? y++a*1~( (~6 M!1Fʪ-!2( O#> ʪ-!2ʲ-O#> ʪ-ò-*1"1:2( GtP!2~(G#~@H>21!.͏*^,2O!>21':2:1ͮ((0ͪ-;%:1<>21:1(r:17:1/,:8 ( :2{ ~:1?:17͙%C*͙*!i1 ]*7.*.C* u*ͤ* 7* ʹ%217_YN !1&!C8#~=!`.:2~ʆË:JPO!C~(0#+q!IJyH&!C(#P6( T]#H&!`1b ( D!>D (P  @ò- Dz܃_?8 ܲ-*1"1Ԯ*{@{  :1•> Ͳ-:1!B=!`.3:1ğ:2 4?:1N( ͥ" p7.*.68.V:1> .> :1!b ͪ-͞" (ͮ- :1> > î-!2~²-:1!`.*1> > ̲-:1t21?*1+"1~ ʮ-ò-?x(*1++> ##"1î-6Ͳ-*1~(͜*1~6 +w~#"1 ̮-? x7*1#x8gT]#͜> +tͪ0 *1~ # +"1ò-*1+͹"1ò-ͬ:>@ê-BA=Pͬ͟ê-B#GPw J+aMê-!16(8$:> T]m +~68*1:> F T]i+(:>(:>T]+8S1+x 6*1:>6*1:>T]98S1#x BOP 9w DM*1B`i(#S1Mê-K1BDM(+S1S1#"1iBP+#RDM[1͇@S1Mê-?`i7B!.͏*>:\G:1O(& 08d:8 @8\0XG^ 00JOY !1p#6?1 6:3(*:b=21:`!1wgN 1% P1%ʒ_!#! ~(:9( ~w#6+6 +6 +6 +T]+y6.O* !15( > ):1OE*...  y!1(> )#+:1_ ͪ-1́:1  &:\&\%P͛c)^,́:1 .!.*i?8*1>' @0H [1"1#J͛c)ê-:] P!.**1"1*1J60*1(*1+a^,́:1 !.*B RBK(͛c)^,P!\1 :1:1:1!1\ ~21_#~21#~21 ́:1ěc)^,!.͏*>PG!~ w#!~[(x;&P21c)^,#~W( A(NP21c)ͪ-!"1:1N(>2121:1= *5"1 !"12121&!1(F:bP?+ = /,t= W:3(*#+=2bê-:1!32bê-͞"_A8 [0nˮ Vò-!1:7(wͪ-!1!4~/w!2:2!x1 !U13A)!1:1!{1 !U18A)!3ʘ!b5̪-:3!2:121y21&^,:1NP:1=!/͏*:1O PP!1P21&^,7!11=%&:1=!~1 !U1<A)!11~(6w>:1G:1 @:1=G+͞" V<+ɷ͞" t= 21ͥ" >GxT x!BG>8 +0x+6 :1!14L5ͥ" X- ͞" (> ͞" V4z(8 ͣx={ XV=:1=+6ڥ!͞" ʤʹ%!8ͫ!ͣ(ʙ!!16ڥ!͞" ?! ~=!B ͯ" Vzʟ!ڟ!͞" ( ttñ ͣñ ͥ" Fͥ" p-(RVt">͞" p" V> +ñ V":1;%ê-;%X;%\:4(͙%/,Cʹ%0(p(?60+7V͞" ! (+V+ͥ" " (++͞" V͞" tt {2":1ʶ-+͞" ʲ-ͯ" tX?ͯ" t^!1:1=G:1X͚"(+ͣ> +?ò-*1~*1~> !"!"!"!"!" !"͞"ͥ"~ #,;/-.?!:  !'/͏*J% 21N(Q *J%0P PW>!3>_!z(N #= ~(^6#DM!BDMͪ#{(I: :@s#K!T]BBDMN#!3:1N(Q +~#8#+ͪ#^, !!>ݾ8^R8#"|6#+| !"!!!1FJ%0T:T͙%21!1F0G!(^#~#PO~˾(#~˾ē%>1)!/͏*(cO!/͏*J% Q *͓%J%y( !36^,*( 08 0Gx21ʙ%!3"1>21!2~21~>23^,:1T21J%!16[(+](.>(5<(<_!3~#T(T{ #"1!3"1ɯ21_ͣ%Ù%6PV (P*1++++"1>>2A%:1TJ%_͞"ʷ$J%>21:1( *1^"*1^#"1~< :1 !15( !3"1{կ21ͣ%͙%!*6!*w.{:2 /!1!*~621:12*!*~621:12* &*"%!%"S!"136&H>0ɷ(%!:˶#˶<(!()% i*T](\O>: S++~08+:0'0_+~08:00W_+0_{21 }(~ (A8G_>8A{<2\>:> +#(]#(j.( (A8i[(C('( > i*7ɯ(@. ##(4 (87[(('(~ #~[ #~(A(N(W 21:] (!5' .,;:?*=[2h2|21/21\%< 7%\%'0!:1W >~ :1(d/21~ ~ (0˾> #wz ˾~ +~(5 21!!>( ~ 8~ (> #wz#g'21 &:\&!] ˾#:1(-!\ !\!1%%\%212h2|\%<&)x)!T!"(aw:1W 3~ (& ( ($21~ >21:1 ~#\% A!:w > (| }(((6#\% \%1* 0*>:*!]~ (*#>.*!e~*#u*>[*:1*ä* (0_)Ү*)_̈́-*1[1"1)> *1+:`<*1+*"1)_~# ~#G> )) **鯆7G#^#*^#ͮ* ]>  ͮ*Q)͙* *ä**)_v-:=>21:=ȯ21{(:1_*1͐s͠#"1*1+"1 _ͮ**"1*1K1 DM*z(  KB*1K1 DMB8 ]͙*:`W-ͮ* ä*:1_x0:121:1Ox0_:18 8 x={(<21D21_.*1"1:1_+BJ(R8#"1C1= ./,+". :1=,=,:,:1,,:,%*͙**1,$*1+-:1o&+ͤ*%* ; ! ]*V.:1GEV.:1!1(G#7+))+V.&Ͷ-21/21`,:b< :3W*:1(38_x:`<_:1G q-Tq-( (3 0L@͞**ͩ*@y (:1( <ͮ*{v-:` *(> *{=HG*1͆-"1K*1:*( T]͐:1 w͠"1> >>> :1021:1=:1=͞" ( :1!`(":1!b(:1=(:1!b(:1Ͳ->21>21>21!1!16_.!1~6C_.!1~6͞" 1:1(+ͥ"  (<ͮ*:1_:3!1W*"1*1*1:*͐~˾ à.........MemoryKeyI/OFindSyntaxReformat I/Workin] FileFindChange toDriveOptionsColumnMacroRepeacoun([Q],0-9/*)Kenumbe([N/Q],0-9)Abandoedit(Y/N) FilsizeNNNNNMemorusedNNNNNFreeNNNNN ||__^W-____||^O-dsCR||ESCHelpInfo |^insert|^reform||^Q-|TOF||M2!+ !!$$6:# ʁ, !# +!##( K(P"<"<Á:-!$"P(DK  *$PR!$M(> *$`R!$'` *$`R!$}'] Installing: !& ...Press to see Main Menu  --------------- VINSTALL MENU --------------- ption configuration ey definitions erminal installation urther patching

rinter installation estore defaults Choose option, ave, or elp:  ͣOET PKFR?S Hàó VINSTALL HELP -- press ^C at any time to abort VINSTALL VINSTALL is menu driven; however, installation functions (Options, Terminal, Printer) require complex data entry: Logical: simply enter "Y" or "N". Numbers: always HEX, usually 2 (sometimes 4) digits 0-F. (Always include leading zeros.) Byte strings: If fixed length, just enter the necessary number of hex bytes, 2 digits each. If variable length, enter the # of bytes at the "(" prompt, up to the "[max]" value shown, then the bytes themselves. Characters: type the single character directly. Text strings: enter text, then to end. For all items you can either press immediately to keep the current value, or enter a new value instead. (See VINST.DOC for further explanation of patches and values.)  RESTORE DEFAULTS: This will restore VDE to its original distribution state: default options, terminal, and printer; no function keys, no user patches. Proceed? (Y/N)  Y!F&!a}'͓!"&!(T]67!(!#'` Done. USER OPTIONS: Create BAKup files: !&ͪ Default file mode (W/A/N):  Default insert on: ͪ Default ruler on: ͪ Enable hyphenation: ͪ Left margin col: 0 Right margin col: 0 Page length: 0 Scroll overlap: 0 Show system files: ͪ Fixed drives (A-P): V Ring bell on error: ͪ Use alt video in header: ͪ Code for block marker: 0 Wildcard character:  Clock speed in MHz: 0 Horizontal scroll delay: 0 Fixed tab display spacing: ͦ 0ͨ  Variable tab columns: ͘4+5# TERMINAL INSTALLATION:  Generic Terminal VersionMemory Mapped Version Currently "!'" Choose: dit current or ist terminals:  E L  Terminals: press to select from list: !(!#~#Gͺ Y(`(End of list)'`Selected Editing installation - Generic Terminal Version Terminal ID: !'V Viewable columns: 0 Auto wrap at line end: ͪ Viewable lines: ͦ 0ͨ  Extra DELete key: 0 Extra arrow keys u/d/r/l: ͘ Clear to end of line [06]: !6'ͦ Terminal init [07]: ͦ Terminal uninit [07]: ͦ Alternate video on [06]: ͦ Alternate video off [06]: ͦ Alt video uses high bit: ͪ Output filter limit: 0 Cursor position mode (Std/Rev/ANSI/None):  [Non-ANSI] Cursor position sequence: ͘ Delay after cursor positioning: 0 Insert line [06]: ͦ Delete line [06]: ͦ Ins/del specific to line 1: ͪMemory Mapped Version Terminal ID: !'V Viewable columns: 0 Unused columns in RAM: 0 Viewable lines: ͦ 0ͨ  Extra DELete key: 0 Extra arrow keys u/d/r/l: ͘ Terminal init [07]: !='ͦ Terminal uninit [07]: ͦ Turn cursor off [06]: ͦ Turn cursor on [06]: ͦ Video RAM start addr:  Z80 video in routine: ͘ Z80 video out routine: ͘ PRINTER INSTALLATION: Printer ID: !}'V Send LF after CR: ͪ Printer initialization [16]:  ͦ Printer uninit [07]: ͦ Toggle codes 1-4: ͘ Switch codes 1-4: ͘ Toggle 1 on [07]: ͦ Toggle 1 off [07]: ͦ Toggle 2 on [07]: ͦ Toggle 2 off [07]: ͦ Toggle 3 on [07]: ͦ Toggle 3 off [07]: ͦ Toggle 4 on [07]: ͦ Toggle 4 off [07]: ͦ Switch 1 [07]: ͦ Switch 2 [07]: ͦ Switch 3 [07]: ͦ Switch 4 [07]: ͦm Select <0-9> or ap; or to exit:   Zg20 2 New definition: ( edits, saves; use ^P to enter these) Ԣ͓ MACRO KEYS: (b!N(g!M(g bytes free)!O( > 02 ͵! (0((w#͢>8+~ ܕ͕!>w7 :W:_!O(z(N #= ~(^6#DM!M*BDMb{_:N( :M(s#K!L*T]BBDMN#! Choose o-repeat or uiet if desired:  ͢N(Q +~#8#+b !!O(>ݾ8^R8#"M(|6#+| !"M(!O(! O@O^#($#~~+ ~+~#G~#͢<> FURTHER PATCHING: You will require DDT or a similar utility. Addresses in this version of the program are: User patch area: *&&-:&_+& Command tables: Basic: *&& ESC: *&& ^Q: *&& ^O: *&& [Closing !] 2h2|2.2B!&\.:# ʦ, !# :-K(.P(!`"$!'$`(!`"$!}'$!P"$!O($!$".] {$ *Aborted* î *File) *Read *Version  *Write error* î 7 <(طͺ (.!w# ( 8w#6 #!HH ~Y Nͺ  (Y(N Oq##~͢ͺ  ( ͢w###ggͺB8(2%B8(w#:%w###|h}hgͺB8(w# 7?͆؇2f͆O:fA~|O|O0:0 ? ?>2C"$2C"(*g)*F#( g#ͺ!6K:x(!w(Y# -k}8k0!wG(4# : "͆8w͆w#[KH!: #*KH :#(B)F#^#V## ^#V## ?: 㯆#O#O  Oʳa{_!&~COMVDEA:@@_@@#7Teletype printerGeneric CRT P N ADDS 25 P KkkG4G0SY LMAmstrad / Heath P KHEHEpqSY LMANSI standard P ABondwell 2 P TINS= ERDEC VT52 P KHJHJSY Commodore 128 P T)(S= EREpson Geneva PX8PT  S= Kaypro II/IV P S= ERKaypro 2/4/10 P B0C0S= ERLearSiegler ADM3P TS= ERMorrow MDT-20 P TR= ERNEC Starlet 8401PTg**)(S= ERNorthstar Advtg.P S= LMOsborne 1/2/4 P T)(S= EROtrona Attache P KU&U S= LMTelevideo 910+ P TG4G0S= ERTRS-80 model 4P P S= Zenith ZT10 P Ts1s0S= ERKaypro II/IV P0 0Osborne 1/4 P0 Osborne Exec P0 .0.2˷TRS80-Holmes CPMP ?{??? VINST26.DOC ----------- [Supplement to VDE.DOC] Instuctions for VINSTALL 2.60 (07/87) Installation Utility for Video Display Editor (c)1987 E. Meyer As distributed, VDE is set up for a very basic Generic Terminal, and VDM is set up for an Osborne Executive. If you use another computer/terminal, you will probably need to re-"install" VDE/M before using it. VDE can now be installed for ANY terminal; if improperly installed, the display may be a mess, but there are no other side effects. VDM requires a computer with memory-mapped video; if improperly installed, it may crash. Most users should be able to install VDE simply by going to the Terminal Installation and choosing the ist option to select from a menu of terminals already built into VINSTALL. The list is not exhaustive, but it includes most basic types: for example, the "LearSiegler ADM3" data should do well enough on Qume, Wyse, Freedom and many other terminals, as well as many computers, that emulate an ADM3 terminal. Check your manual to see whether your machine emulates one on the menu, or comes close. Once you have VDE basically working, you may want to go through the detailed dit procedure to fine tune things; the better the installation, the faster the display will work. Installing VDE for your computer should not be difficult. If you find that it was, please consider dropping me a note with the details of what was required, so that future versions of VINSTALL can be improved. Terminal installation, while necessary, is only one part of VINSTALL. There are also a number of User Options affecting the operation of VDE that you can select or modify to suit your taste, and a default set of Macro Keys. The default printer installation is a basic Teletype (no special codes enabled); VDE assumes only that the printer responds normally to Backspace (if ^PH is used), Linefeed, and Formfeed. You will probably want to redo this, so you will have access to your printer's special features. ============================= RUNNING VINSTALL ============================= VINSTALL SYNTAX: A>vinstall {d:}vdename{.com} {instfil} "{}"=optional Typically, you can use VINST26 to modify VDE26.COM (of course, feel free to rename these files more conveniently) simply by typing: A>vinst26 vde26 and selecting the values you want to change. If you have to do a manual installation of VDE for your computer, you may want to create an "installation file" which you can use (and give to others) to supplement the built-in terminal list of VINSTALL. This is done by specifying another filename: A>vinst26 vde26 termname{.vde} VINSTALL will load and use (or create) the file TERMNAME.VDE (or .VDM), and update it as well as VDE.COM when you exit. The installation file is very small, containing just terminal parameters (no user options, etc). It is also possible to create "key files" of VDE macro key definitions. These work just the same way, except they must have a filetype of ".VDK", and this must be specified on the command line, eg: A>vinst26 vdm26 mykeys.vdk There are also "printer files" of type ".VDP", which store your printer installation data, and work the same way: A>vinst26 vdm26 okidata.vdp (No, you can't specify more than one supplemental file at once.) The version numbers of VDE/M, VINSTALL, and any other files must "agree" or you will get an error. The match need not be exact, as there may be a new release of VDE without modifying the installation areas. VINSTALL is largely self-documenting, and steps you through each item individually. If this is your first time running the program, take advantage of its "Help" option before you start in, for some basic instructions. Note that ALL the number entry in VINSTALL is HEXADECIMAL; you will find a good ASCII/base-conversion chart helpful. VINSTALL can't check for illegal values; be careful what you enter! What follows is a more detailed explanation of installation items, in about the same order as in the VINSTALL procedure. Most people will be using VDE; you can try to use VDM instead if you have memory mapped video with: (1) a high bit that can be used to highlight and provide a cursor; (2) an absolute address at or above 3000h. The advantages of VDM over VDE are faster screen updates and a little more free memory. USER OPTIONS Create BAKup files (Y/N) - Should a backup file be made when you edit an existing file? Choose "Y" to play safe, "N" to save disk space. Default file mode W/A/N - Which of the three file modes "W","A","N" described in VDE.DOC do you want as the default? Default insert on (Y/N) - Do you want the INSERT toggle to start out ON when first entering VDE? Default ruler on (Y/N) - Do you want the Ruler line (^OT) to start out ON when first entering VDE? Left and Right margin columns (00-FF) - Default margin settings for "W/A" modes. Set both to 1 to entirely disable wordwrap and reformatting. Page length (00-FF) - Set the number of text lines to print on a page. (Does not include another 3 lines for a header, if used.) Setting to 0 disables pagination entirely. Scroll overlap (00-lines) - This is the number of lines overlap between screens when scrolling with ^R/^C. The smaller, the larger the scroll. Show system files (Y/N) - Do you want files with the SYStem attribute to show in the VDE directory display? Fixed drives (A-P) - This lets you specify that up to two CP/M logical drives are nonremovable media (hard or RAM disk), so VDE won't reset them before writing to them, speeding up some systems. Enter two drives from "A" to "P"; to leave either blank, enter "@". (The default is "@@", or none; if you have a RAM drive C:, enter "C@".) Caution: naming a floppy drive here can cause serious BDOS errors on CP/M 2 systems. Ring bell on error (Y/N) - Do you want your terminal bell to ring when a VDE error message displays? Alternate video in header (Y/N) - Do you want the header, messages, etc to appear in a contrasting video mode (if installed)? Block mark character (00-7F) - Usually ^B (02), but if you need to imbed that code in your files for any reason (eg, ZCPR3) you can change this to some other (otherwise unused) ASCII code, such as 00 (^@). Wildcard character - Normally "_", this is the character that will be used as a wildcard in FIND strings. Change if you wish. Clock speed in MHz (01-FF) - Set this to reflect your CPU clock speed; most Z80 computers are 4.0 MHz (use 40 here). Horizontal scroll delay (01-FF) - This adjusts the delay between scrolling the current line and scrolling the rest of the screen, when working beyond the right screen edge. The average value is 80; adjust up or down as you like. (VDM is so fast that a value of 01 is recommended.) Hard Tab display spacing - This determines how any actual Tabs (^I) in your text will display. Usually 08, this can be made 02, 04, 10, or any other power of two. Other values will produce erratic results. Variable tab stops - Enter a list of up to 8 variable tab stop columns, in ascending order. (Column 01 is the leftmost.) TERMINAL INSTALLATION (Both versions) Terminal ID - Identify the terminal you are installing. (16 characters) Viewable screen columns (28-FF) - Enter the width of your screen in columns. The normal value is 50h for an 80-column screen. Screen lines (04-FF) - Enter the number of lines on your screen. Normally 18h for 24-line screens. DELete character (00-7F) - VDE always accepts 7F as a delete key. If your keyboard can't generate this you can install an alternate value here (example: 1F enables ^_ on an Osborne 1). If you have a DEL key, you can leave this at the default value, FF for "not used". Arrows up, down, right, left (00-7F) - Enter the ASCII codes generated by your terminal arrow keys in this order, one byte each. Ignore parity. Use a value of FF to mean "not used". (WordStar arrows and BS need not be redefined here.) The default is CP/M ^K,^J,^L, entered as 0B0A0CFF. (If you have ANSI standard arrow keys, you can set all these to FF.) Terminal init, uninit - Enter the codes you want sent to initialize your screen on entry into VDE, and to uninitialize on exit, in the form (# of bytes),bytes. Example: ^Z is (01)1A. Minimally, both sets of codes should clear the screen. TERMINAL INSTALLATION (Generic VDE only) Autowrap at line end (Y/N) - Usually Yes, as most terminals wrap down to the next line when a character is printed at the right edge of the screen. If yours discards characters instead, set this to No. Clear to end of line - Enter the codes to clear to the end of the line, as (#),bytes. Example: ESC-T is (02)1B54. If your terminal can't do this then zero it out (00). Alternate video on/off - Enter the codes (#),bytes to turn your favorite video attribute (eg inverse, dim) on and off. This will be used for control codes and (optionally) the header and messages. If your terminal has no attributes, zero these out (00). Use high bit for alt. video (Y/N) - If, instead, your terminal needs the high bit set on characters to put them in alternate video, zero the above strings out and say Yes here; otherwise, No. Console filter (7D-FF) - This is the highest ASCII code that will be sent to the screen. Normally 7F; if your terminal can't display codes 7F or 7E (DEL and tilde), lower this to 7E or 7D. Characters filtered out will display as a "?". Cursor positioning mode (S/R/A/N) - This tells VDE how your terminal can be made to put the cursor at any given row/column on the screen: "S"tandard = leadin byte(s), row byte, column byte (default) "R"eversed = leadin byte(s), column byte, row byte "A"NSI std = ANSI standard sequences "ESC[rr;ccH" "N"one = no absolute cursor addressing supported Cursor positioning sequence - This is the actual sequence used to address the cursor. IF YOU CHOSE "A" above, you can skip this entirely. IF YOU CHOSE "S" or "R", then enter the 4-byte sequence for addressing the cursor to the top left: two lead bytes, then two row/column offsets. Most terminals use ESC,=,20h+row,20h+col, or 1B3D2020. If you have only one lead byte, enter 00 for the second. IF YOU CHOSE "N", then you must enter two 2-byte sequences instead: first one to home the cursor, then one to move it right. If either is only one byte, enter 00 for the second. Typical values are home=1Eh, right=0Ch, which would make 1E000C00. Delay after cursor positioning (00-FF) - Normally 00. Some slow terminals require a delay here to accomplish cursor movement; adjust this value upwards as necessary. Insert, Delete line - Sequences that will cause the current cursor line to be deleted, or a new line inserted there. Most terminals can do this. Example: on an ADM3-style terminal, ESC-E or (02)1B45 inserts a line, while ESC-R or (02)1B52 deletes a line. For some terminals, you have to specify which line is to be inserted/deleted; in this case, enter the sequences for line 1 (the second screen line). If your terminal can't do this at all, zero these out (00). Ins/del specific to line 1 - Usually No; set to Yes only if the ins/del sequences you installed above are for line 1 only, rather than general. TERMINAL INSTALLATION (Memory-mapped VDM only) Unused columns of RAM (00-FF) - Enter the number of unused bytes in video RAM between the end of one visible line and the start of the next. Example: many computers have 80h (128) bytes of RAM per line, but only show 50h (80) of them. So there would be 30h unused columns. Cursor on/off - Enter the codes (#),bytes to turn the regular CP/M cursor on and off, so it won't appear on the VDE screen. If you can't do this zero them out (00), and the cursor will remain visible at the upper corner of the screen. Video RAM start (3000-FFFF) - Enter the starting address of your video memory, as four hex digits. Video in/out code - If your video RAM is in the ordinary bank of memory (eg, at F000), just enter "C9" here (that's a RET instruction). Otherwise, you will need the machine-language code to switch video memory in and out. There are 16 bytes available for each routine, and you must preserve all the CPU registers, and end with a RET. You should find the assembler code to do this in your terminal manual; to convert it to hex, either look up the hex values in a Z80 reference book, or use DDT or ASM/MAC to write and assemble the code to hex form. PRINTER INSTALLATION Printer ID - Identify the printer you are installing. (16 characters) Send LF after CR (Y/N) - Normally Yes. But with some printers, which manufacture their own LF on receiving a CR, you will want No here. Printer initialization - Enter a string of code (#),bytes to send to the printer before each print job, to set margins, print modes etc. Printer uninit - Enter another string (#),bytes to send to the printer after each print job, to restore printer to desired state on exit. Toggles and switches - These are the ^P-codes that will be used to call up predefined sequences. There are four toggles, then four switches. The defaults (^D,^S,^Y,^T; ^Q,^W,^E,^R) are chosen for WordStar compat- ibility, but can be changed if you want. (Avoid ^B,^H,^I,^J,^L,^M,^Z, which are used for other purposes.) Codes for toggles (on/off) - Enter the actual codes (#),bytes to send to fhe printer on encountering each of the four toggle codes defined above, first to turn a feature on, then off. Codes for switches - Enter the actual codes (#),bytes to send to the printer on encountering each of the four switches defined above. MACRO KEYS VINSTALL gives you the ability to examine and change the default set of macro Keys in VDE. (Any Keys defined with ESC-K while running VDE override the defaults.) VINSTALL gives you a display much like this: MACRO KEYS: (01C6 bytes free) <---- note free bytes (up to 01F4 = 500) <0><> <1><> <---- "<>" flag means empty <2><> <3>^C^W <---- normal macro key <4><> <5>World Wide Widgets Inc. <---- "" flag means no-rpt key <6><> <7>^QR^[B^QC^[T^[C <---- "" flag means quiet key <8><> <9><> This is pretty straightforward; you just select the number of the Key you wish to redefine, then type in the new definition, much as you would in VDE. All the same rules apply (but VINSTALL will accept longer keys, up to 128 bytes). If the new definition is too long to fit it will be rejected. FURTHER USER PATCHING The address of the User Patch area will be given to you by VINSTALL. This small region in VDE can be used to install any extra patch code you need. (Example: if your video in/out routines won't fit into 16 bytes, you can jump to the User Patch area and put more code there.) This is the ONLY such area available, as VDE uses all available memory after its own code for editing text. Note: if you find the User Patch area too small, you can also use up to 32 extra bytes before it. This is the Print Switch code area; you must then avoid using the four Switch codes. VINSTALL also tells you the addresses of the command tables in VDE/M. You may find this useful if you need to go in and change a VDE command key that conflicts with your computer's firmware. There are four command tables: basic, ESC, ^Q, and ^O. Each is a list of 3-byte entries, with a one byte keycode, then a two byte address. (Examples: you will find the ^T command and the ESC prefix in the basic table; the ^OX command appears in the ^O table, as ^X.) Find the problem keycode, and use DDT or another utility to change it. (You will also see the "keycodes" 80-84h in the tables; these mean DEL and the arrow keys, however installed.) Don't try to change the ESC- prefix to ^K- to make VDE more "WordStar- like". It will take you a while to locate all the occurrences, and leave  you with some pretty confusing pairs of commands (eg ^KX = eXit, ^K^X = shift screen down). RESTORE DEFAULTS This option is provided in the event that someone has so mucked up your copy of VDE that you can't sort out what's wrong. This should return VDE to nearly the state it was distributed in: all User Options restored to their defaults, Terminal Installation set to Generic (or Osborne Exec), printer set to a basic Teletype, no Macro Keys, no User Patch code. ========================== GOING BEYOND VINSTALL =========================== If your computer requires special additional code, and you know how to use an assembler, you may want to make an overlay to add this code to VDE. (You may also find this the easiest way to install other data, such as the VidIN/OUT routines for the VDM Terminal Installation.) Write the overlay file, generate a HEX file with your assembler, then merge it with VDE.COM using MLOAD or a similar utility. (Be sure the code fits!) Example: the following overlay adds special code for the NEC Starlet to the User Patch area, where it is immediately executed when VDE is called up. The Starlet has different terminal emulations and key definitions; most of this code just ensures that it's in Soroc mode (which is what VINSTALL is set up for), and sets the cursor and DEL key definitions properly. There is another problem: the VDE case toggle command (^^) has to be changed, as it will conflict with one of the Soroc arrow keys. (On some other computers, you can't generate ^^ from the keyboard at all.) Note how the overlay finds the address of the main command menu (all the menu addresses are stored at 0108-010Fh in VDE.COM; alternatively, you can get VINSTALL to tell you what they are), adds the appropriate offset (determine this yourself), and then changes the command key to something else. ;NEC8401 Patch for VDE 2.6 (8080 mnemonics) org 0100h ;At beginning of VDE.COM, jmp 0248h ; jump to User Patch area org 0248h ;At User Patch area, mvi c,08h ; set screen mode: mvi e,81h ; Soroc, wrap on, fnkeys off, etc rst 2 ; call special BIOS mvi c,4Eh ; set cursor keys: mvi e,3 ; to mapped codes rst 2 ; call special BIOS mvi c,4Dh ; set definable key: lxi d,data ; using data below rst 2 ; call special BIOS lhld 0108h ; get address of main command menu lxi d,6*3 ; offset of ^^ (this may change) dad d ; point to offending ^^ code mvi m,0Ch ; change it to ^L instead jmp 0480h ;Jump to VDE Start point data: db 4,7Fh,0,0 ;Data to set "DEL" key as DEL (7F) end You can also add code like this to VDE.COM using the "a" command to enter assembler mnemonics in a debugging utility like DDT or SID. Eric Meyer, 427 N. Washington, Bloomington IN 47401 --- CIS [74415,1305] ==============================================================================  QUICK REFERENCE FOR VDE 2.62 [Note: the ^K- and ESC- prefixes are largely interchangeable.] CURSOR AND SCREEN: = ^E = ^D ^Q, start, end of line = ^X = ^H or ^S ^Q, top, end of screen [Note: An alternate arrow key set can also be installed.] ^F word right ^R page up ^QR top of file ^QB block start ^A word left ^C page down ^QC end of file ^QP place marker ^OW window on/off ^W, shift frame up, down 1/4 screen ^OZ blank screen ^W, shift frame right, left 32 cols ^O make current line top MISCELLANY: ^V INSERT on/off ^^ upper/lower case ^OV variable tabs on/off ^N insert a CR TAB Tab or move to stop ^O+ set variable tab ESC-H [^J] help menu ^OT ruler line on/off ^O- clear variable tab ESC-I info message ^OD HCR display on/off DELETING: ^G delete char to right ^Y delete line ^QY del to end of ln DEL delete char to left ^QU UNdel line ^Q-DEL " to beg of ln ^T delete word to right ^U UNdel char FIND and REPLACE: ^QF find string ^QA find and replace string ^Z [^L] repeat find/repl DISK FILES: ESC-N new filename ESC-F show disk files ESC-S save, continue ESC-L load new file ESC-E erase disk file ESC-X save and exit ESC-R read in disk file ESC-Q quit without save BLOCKS: ESC-B block start ESC-C copy block ESC-W write block to disk ESC-T [^KK] terminate ESC-D [^KY] delete block ESC-U unmark block FORMATTING and PRINTING: ^OR,L set rt, lft margins ^OC center line  ^P insert ^-code: ^OX margin release on/off ^OF flush right line ^D,S,T,Y toggles ^B reform paragraph ^OS double space on/off ^Q,W,E,R switches ESC-P print text ^OP pagination on/off ^I hard tab (Options: P,B,^,*nn,"",@nn,#nn) ^Z place mark MACROS: ESC-M define macro ESC-K store macro key ESC-!,=,~,# ^W wait (pause) ESC-0..9 use key macro programming 1*"g!"22:P===2͏ʹ:_*g"_!N4!S!ѯ2N!M4d!^!:]”:\G:N_:[G:M_ð:[G:M_:\G:N_!f!2N2Md!n~ ͩ!!v~ ͩ!!~~ !!~ !~#_VCT2VDO25 Kaypro, no hilite P =ER(:(!:( !4 (^V r s~ ~ V^sr 4 4~5 5^ V r s ~ ~ V^s r 4 4~5 5$ Tab stop (2,4,8,16): !E!~0 0 W{__#{((( (> 2X=21>2X_ɯ!hw#\<(;\ 0 \ )Ͳ ( (#w+|(7 6 _!\l !Pl\\<(*~~ > # \<>2X>2X(\Ͳʹ$ VDO25  Ln Cl Insert FC Space ͩr :M:N>2M>2Nd[c*#>$2Nd*d&#>F2Nd8`i>82Nd*[R#2N2Md > 2N2Md:\( @;>:;!]~ (;#!e>.;~# :N0> ; """"0"> ;N#F#>0 0<330 z0; (F(((w# 0 @>^;;>(+~!N5 05d> ;> ;55d6*+6 *%6 +6 "+"!"S"UBDM.[*"S#[*"S*R[R0 [R[R*DM*ø**DMø*DM*++ø0(:n :M> ͩ> O;0"(:v :P=G:M> ͩ> A O!"**" ͩ* *> :P=_> (##" * [R|(DM* > S (  !8ɷ;  ; (A ͗ :G;0 ͩZO0(;:d_y8;(y:G8ͩ0 O*> (##" :P= ==_8(* KBDMx7*+"* ++> (*" ##" >2[ - H 2[ H $ Find: !E$ Replace with: !E$ Ignore U/L case? ((>Y>YN>2Y!~([ w#>NN2Y$ Backwards? ( >NN>2Z>YN>2Z:[(3 :X[!>(#S[!~(#Sͩ:YG:Z(*+G (+8"͜*#G (#0+͜>2X>2XO~[ #G +a{_:\2\>02N2Md:\(!]!`~;# +ͮ*~#" ͐:dOnLA :dOn͗ A *~# ( ( ( (~#+":dOnLͮ0 ;*;0 "2N:P=2Md=^*"S:̯*"U:̯*U|( *S|(R8>2X7*R8#[R[+*S*U| >2X` ͜E ͮ*U[SRB8>2X*R8*R0F>2X*S[R[*U[SRDM*S "S*U "U[S` ͜[S*URDM[#S` ͜*͞ :X[SR8 *URRm ` ͜E *U` *S"ͮ͜$ Erase all (Y/N)_Y*+"*#"ͮ2\ !]6 # ͩ~#:PG:M  N  ʹ  [Hit any key to continue]$ͩ 0 ( (>2X[ *#R0 GO2c8~# :c<2cy:c<:PG82My2dxP8ͦ ́2NdxMW>2e *> #~#yx82NGd8~#N:NnL!M52Nd2N<2Md2N<2Md* ^ɯ2N<2Md2N:P=2MdZ=^* 0*~# :P== 0*~# N ( 8   : :P=G:M<2M:N2Nd2N:P=2Md=^2N2Md́> 2W2W ́:\ ;0 * ͮ(ͮ*#":Ww>2X ( :dONn:M:P=G:M LA > NA n*#"* ~ # " *~# N:e(2e2N *> ##d^*[RDM+|*[R[~ ́#"S 7*[+R* ́+w"S 7~# :fͯO2N<2Md* 0*~#N:PG:M OL ( 8́> ́: >^́@́ G:N:QGx;Ͳ:̴:X&$ Abandon changes? (Y/N)_Y:X pͩͮ88* >2X0>2X*"#ͮ:] ͊:X*+*+8*O͇ :X *S##*S#8O>2Xp \!ͩ !\$ Filename: !E!~(b > :: ~[ @2##2~[ .( (# (+#~(.# ~([ #!\ >2X$ Printer Setup codes: !E!~(#+*  > :  >  x ʹ$ Currently logged drive is :Á$ : Set drive to: [ A8Q0́A2 :_ʹ$ Disk directory for :Á  8 >1́ 0́$ : : óx(=G o&"բ($ { $ $ |  ;́x(  >.́G> $ *~ ʹ$ Available help levels are: 1 Expert | 2 Normal | 3 Novice Help level is currently set at :0́$ Set help level to: 184002ʹa:N ʹ :N ʹN ʹ:N >2fɯ2f$ Selection: >^;:Lɯ2N2Md:N2:M2:2N:2Mͩ0F#^#V## ^#V## :Gʹ :Nʹ>K;F ' 6  = m  oÏ:ͯ:d> ;> ;> ;:ʹa:Nʹ>Q;  sÏ: ʹ:Nʹ>J; {i  Ï 0 >^N@N:($ $ - Basic editing functions - ^A Word left ^F Word right ^G Delete char ^Y Delete line ^T Delete word DEL Destruct/BS ^C Page down ^R Page up ^V Toggle insert ^L Repeat find ^P Enter printer code ^N Insert C/R ^K Block cmd menu ^Q Quick cmd menu $ ^Q Commands [Quick Menu] R Top of file C Bottom of file F Find a string A Find and replace B Find block start K Find block end T Change tab stop $ ^K Commands [Block Menu] S Save/continue X Save/exit Q Abandon Z Zap file B Mark block start K Mark block end C Copy block V Move block Y Delete block W Write block R Read file P Print file L Set logged drive F Show disk directory $ ^J Commands [Help Menu] H Adjust Help level K Block menu Q Quick menu J Help menu M Basic editing menu ͗:] (QA ;, 'gE2} , ,    j d , :X(ʹ$ Error: :Xo&i~_#~W $ Press ESCAPE to continue2X BAKOn Off}File too bigInvalid keyInput/Output FailureString not foundDisk fullBlock not markedBlock staddles cursorBlock too bigIllegal tab stopRRQ(((???????????N VDO vers. 2.5a (c)1982 Creative Software and F.W. Schneider dd dd dd vv vv ddddddd oooooo vv vv dd dd oo oo vv vv dd dd oo oo vvv dddddd oooooo ********************************** * USER MANUAL * ********************************** Table of Contents ----------------------------------------------------------------- Section Title Page ----------------------------------------------------------------- 1 Overview of VDO.................. 1 2 Advantages of VDO................ 3 3 Disadvantages of VDO............. 3 4 Installation/setup............... 4 5 Operation........................ 6 6 Cursor control................... 7 7 Single keystroke commands........ 8 8 Quick commands................... 9 9 Block commands................... 10 10 Help commands.................... 12 11 Error handling................... 13 12 Future plans..................... 14 Appendices A Terminal List.................... 15 1 VDO vers. 2.5a (c)1982 Creative Software and F.W. Schneider 1. Overview VDϠ (Vide Displa Oriented Edito i smal (7k ASCI fil ful scree edito designe fo us unde CP/͠ 2.x Thi softwar i (C Copyrigh 198 b Creativ Softwar an F.W Schneider Thi softwar i NO publi domain bu ha bee release fo non-profi distributio an use Us o thi softwar fo profi i an manne i prohibited An futur wor o thi edito b me Jame Whorton shal b i collaboratio with, and under the approval of the author, F.W. Schneider. Thi i revisio 2.5 majo enhancemen o th editor Th changes made in this revision include the following: - Support for terminals not featuring line insert/delete. - Expanded terminal definitions. - Default drive logging. - Default drive directory display. - Revised menu structure. - Adjustable help level and help menus. - Added support for hiliting, for terminals that support it. - Implemenation of a 128 byte type-ahead buffer. VDϠ i memor base edito - tha mean tha bot th edito an th fil bein edite resid i memory Wit 64 CP/͠ system tha give yo maximu fil siz o abou 52K Sinc yo wil probabl us thi fo progra sourc files tha ough t b plenty I not there' alway WordStar. VDϠ use smal o standar WordSta keystrok commands Wher possibl th keystroke t activat VDϠ operatio ar exactl th sam a fo WordStar. 2 VDO vers. 2.5a (c)1982 Creative Software and F.W. Schneider 2. Advantages to VDO VDO' majo advantag ove WordSta an othe scree editor i it smal siz - onl 7 o dis spac i needed a oppose t 60 fo WordStar mino advantag i VDO' spee - wit n overla file t swa i an out VD seem ver fast An wit th type-ahea buffe yo don' hav t wai fo th displa t catc u wit you Anothe advantag i no ha i th installatio modul堠 tha allow men drive termina installation numbe o terminal ar currentl supporte (se appendi A) 3. Disadvantages to VDO VDϠ lack man feature foun i WordStar I i fil editor no wor processor However mos o th importan feature ar implemented an mor ar o th drawin board Sectio 11 Futur Plans outline som o th propose feature stil t b added. 3 VDO vers. 2.5a (c)1982 Creative Software and F.W. Schneider 4. Installation/setup T ge starte wit VDO yo nee t se fe thing u first Thi distributio packag contain numbe o file tha mak u VD v2.5 Th step neede t implemen VDϠ o you system are listed below. 1 Extrac al o th membe file fro VDO25.LBR usin library utility such as NULU, LU, LSWEEP, etc. 2 Unsqueez al o th files I yo ar usin NUL o LSWEE yo ca extrac an unsqueez a th sam time Se th respective doc files for details. 3. Rename the resulting files according to the table below. From To ----------------- ----------------- VDO25A.OBJ VDO.COM VINST11.OBJ VINST.COM VTERMC.DAT VTERM.DAT VDO25A.MAN VDO25A.MAN VDO25A.NOT VDO25A.NOT 4 VDϠ a distribute i installe fo th Kaypr computer withou hiliting I thi installatio fit you needs ski thi step T instal VDO.COM typ VINST Thi wil star th instal modul writte fo th editor Th use i the prompte fo th nam o th sourc fil (i.e VDO.COM an th nam o th fil t writ th installe versio o th edito t (i.e VDONEW.COM) I yo ente 28!?"9!!>2 :D]SXN]D [ (!e}̈́A8Q0G: x@!\w# (   yV. V!h6# (*(.(!8}(*(̈́w#>?> w#a{ |͒}͛Ɛ'@'7||}>"C"6# ""͐ͩ*B"[R5*"^#V#^#V#N#FO/o&9O/o&9!9(> (G!9 w#E͊w}8uRB0 >R@RR!+ͨ z R!+ͨ z <!+ͨ z <!+ͨ z <!#ͨ z <!+ͨ z T]KB!z> S>))0 = |JJDMgo>jB0 7?= H\<z5+)+<z {0Gɯgo||H}||/g}/o#}o&K[xAJSJDM!b"!6J"DM'ͬͬdͬ ͬ} wͦWͧ _}8(8J`9{T]=o`9y w >uJ u` }>(; xQ }} ˸T}ٕ(0D=C ,= ( [ 0%D , 7 ͏ ?(8u x O - ; 8˸x X ,-xG}; }م 9; .>#n0[ D = - nx P ,-(-˸G,-; }ٕ? 9.>͏ 8u ?= u+-(>O 0u O 8͏ ?x P , 78ƀ8ƀ8ox٨!دoGOW_gɷɷ|لg{ً_zيWyىOxوG|ٔg{ٛ_zٚWyٙOx٘Gxٸyٹzٺ{ٻ|ټx٨ xx(ͼ ?}ٽÏ }ց; <(; 7D = |٤g{٣_z٢Wy١Ox٠GD u J }x>uu}ƀ/ƀo; -J }0W-J W,}l˸ͨ 8 ; ` x( -ͨ 8J -ͨ 8,J }l8;*!` ! >u` ` u--- J ,,,-xGg?+2n*8t z~,->uxua}.; OJ , ; !U >,k- o&0%,` }g; }؉}颋.:}8c~I$I~L*kٷx˸; }0G,͙<},-(-J ! >0 a` o8 Oþ >um.`1pF,t6|!wS<.z}[|%FXc~ur1}Oٯx(<˸ͨ 8; !~Jͨ 0O!><ͨ 8 =  7 <` O ; 7 0 W-J OT0 j oD,:j !I}袋.}8c~I$I~L!>u` ` 77 ` = O nf^VNF!DLT\I!!53!r1!\!> x #-= o˸xO(- }(x>8(C ,C `iM!>u|; |J>| )=|(DMbo˸ͦ88ͦx(0 8> Mx(>-Ͳ{(ay(Ͱͦ \z(>.Ͳ (Ͱ ~ͦ{>EͲ>+|(|Dg>-Ͳ|/ 0:p# ~# +>0w#,-  60#J˸}րogM| . (C = ~> x0w#xG%P %P ZJDM%P = _~65i+~hìx-Sx9?+{Η@}|C C gZJDM0D ,7}o˸  #yO!@9i&   # w# /w# w#!9! E9!!9~(+F͊!"9!(#>2*Ͳ"|>" :( ͆ *6#w*6#6 !\$![ (̈́( #:~CONTRMKBDLSTAUXUSR>2$*#~ Ͷ$*:> >w###6  #6++p>2S-$Ͷ:*6###ww#w$w#w: ##N#F*B> w#w#[s#r>2S$Ͷ$*6 #-Nw#Fwq#p#6#w#w#w* :( ͒: *^ F* < >26"~͟*-w#ww#͟"~ <@*Ͳ!\  <ʮ!\$> >2*|>! * \$\<(!: [1Á\!(f"> 2:!<"F( #~#6e>!["N>!~8>O6*"w (=(&("( :(N 8y(~#x+% (6*#~[*#~ *~(h#"b=  8 J= B== ͯ}8= ͵}/ͭ !*###~-_~(4Q6*>2>*##w:>*##~*#~(E[ ( ( ( !][ ( ( ((w#(6!]~-#8~>7  [>OkͼMs #rkͼpX á[ [ (( #w(q*#~[ (  *##~6͜O$*#~(08ʦ=ʦ==ʩ=ʬò+###~-_q46͡> *:4^q}Ò*|(M|( M6-#͐ͦ[R8 (G> ͒C~͒#*ͦC!h !lTRUEFALSEͦ!9^#(~#(G~͒#> ͒> Ò "F![(#RR0*4#4> RR *4 #4(>>2$*V(/˖:(#~+ x y2!͵( =( X:(R*:(###~-_-͌X> :("͟"*^˞*V˖0 SRѷR8A* N#F#s#r$ 0})jS\*###w* N#FB ͟r+s> !T]>)j)0 0= UR!#U*^#V#N#F#^#V>">!2DM"~x(L* :O(o:" C}=( ?*-N#Fp+qq#p! * F+N+++V+^Bq#p>>> SRѷR* s#r$ s#r"S"! N#FB(^x * 6#[<(H*! Kq#p##K[! *! 4 #4! x *$ *>w""{_!"*nf}(HR0nf" ^VMDnfutqp*s#r*s#r"* 5KB!>u~#fo{_"*R0RnfR0KqputsrNF( ^VNF^V*SutKqp R*R(~w~wnf ut"6# * *!""*NFy(* "*B0Cnf* [R*"*RS[s#r^#VS>O"w2x2!"" @*>2"!"""!\Ͳ*: !~6go(\R*s#r_2x( s x(T]DMR0 -a%}̈́o*!~6o&͠|ͣ}%^C User break1:% I/O% Run-time% error ͒%, PC=[R"͍% Program aborted*1!͍!6yͲL3VDO25!!5z "zR͐b*z#!vzͲ!!vz m5zd "}!vz*}!vz*}n&(s*}#6 !vz !zͲ!z }2pzVINSTALL*|!5` }2kz*pz&*kz&|g}o}2pz*|!"|*|VINSTALLm͛E !"|*pz&}2qz*qz&!{"gz*gzn&} *gzs!!5z_!"ez*gz*ezn&}2dz*dz&} }2dz*gz*ez*dz&s*ez#!*gz*gzn&} s*gz*gzn&} s!!5z!"ez*gz*ez+*gz*ez+n&} s*ez#Ü!*gz"*gz"n&} s*gz#*gz#n&} s*gz$*gz$n&} s!!5zd""ez*gz%*ez+*gz%*ez+n&} s*ez#+"!!5zʨ""ez*gz-*ez+*gz-*ez+n&} s*ez#o"!!5z""ez*gz5*ez+*gz5*ez+n&} s*ez#ó"!!5z0#"ez*gz=*ez+*gz=*ez+n&} s*ez#"!!5zt#"ez*gzE*ez+*gzE*ez+n&} s*ez#;#!!5zʸ#"ez*gzM*ez+*gzM*ez+n&} s*ez##!!5z#"ez*gzU*ez+*gzU*ez+n&} s*ez##!!5z@$"ez*gz]*ez+*gz]*ez+n&} s*ez#$!!5zʄ$"ez*gze*ez+*gze*ez+n&} s*ez#K$!yͲR͐bR!bŔ ** Error - !y !q́. **͐bR͐b!{!z =!{z5!aE!2% source file !z  not foundͅ$ñ%!{U!NEq% source file !z  emptyͅ$ñ%!{U!P͛Eʱ% source file !z  too largeͅ$!{U"|!{!|*|kb!{Sb!{!z =!{z5!N!z !z o}oEʸ&R͐bŔDestination file !z !q́ exists. Overwrite(Y/N)? b!8! }b* }&(!YaEʒ&ŔNo͐bø&ŔYes͐b!{\b!{!z =!{yb!{!|*|gb!{Sb!D| VTERM.DAT=!D|y5!aEM'terminal definition file  VTERM.DAT not foundͅ$à'!D|U!NEʠ'terminal definition file  VTERM.DAT is emptyͅ$!"}!D|A}oE'!D|8!{ͳb ! }*}+))))))!{y*}!"}æ'*}!R"|*|!'ͯEʩ(*|!!'5zʩ("}! }*}+))))))!s! }*}+)))))) *}#,("y!*ys#rŔVDO Installation Module vers. ́1.1bŔ% by James Whorton * Terminal Menu *͐bR͐b!! 5z+"}*}R!! b! }*}+))))))n&!͛E)!!5z)"}! }*}+))))))*}n&Rb*}#Ê))!!5z)"}R! b*}#)Ŕ b*}! R!! b! }*}! +))))))n&!͛Eʬ*!!5zʩ*"}! }*}! +))))))*}n&Rb*}#_**!!5z*"}R! b*}#÷*Ŕ b*}!R!! b! }*}!+))))))n&!͛Eʇ+!!5zʄ+"}! }*}!+))))))*}n&Rb*}#:+ð+!!5zʰ+"}R! b*}#Ò+R͐b*}#4)R͐bR͐bŔ< Enter the number of the terminal desired (RETURN to quit): b!}+_b*}!NEF,!*ys#rÉ,*}!͛*}*|͇}oEs,*}*ys#rÉ,!*ys#rR!b*y^#V!t*y^#V*|ͯ}oEʼ("yVCT2m!R"}!*ys#r!*|!*}R5zʠ-"}*y^#V!NEʗ-!zͲ*}*}!5ze-"}!z !|*}+n&e.!zͲ*}#1-!z VCT2\Eʗ-*}*}!!*ys#r*}#,*y^#V!NE- source file !z  invalid, cannot be installedͅ$*|"}!|*}+! }*|+))))))n&s*}!"}!!5zʔ."}!|*}+! }*|+))))))*}n&s*}!"}*}#?.!|*}+! }*|+))))))n&s*}!"}!|*}+! }*|+))))))n&s*}!"}!|*}+!s*}!"}!!5zʌ/"}!|*}+! }*|+))))))*}+n&s*}!"}*}#6/!|*}+! }*|+))))))"n&s*}!"}!|*}+! }*|+))))))#n&s*}!"}!|*}+! }*|+))))))$n&s*}!"}!!5zʤ0"}!|*}+! }*|+))))))%*}+n&s*}!"}*}#N0!!5z1"}!|*}+! }*|+))))))-*}+n&s*}!"}*}#ï0!!5zf1"}!|*}+! }*|+))))))5*}+n&s*}!"}*}#1!!5z1"}!|*}+! }*|+))))))=*}+n&s*}!"}*}#q1!!5z(2"}!|*}+! }*|+))))))E*}+n&s*}!"}*}#1!!5zʉ2"}!|*}+! }*|+))))))M*}+n&s*}!"}*}#32!!5z2"}!|*}+! }*|+))))))U*}+n&s*}!"}*}#Ô2!!5zK3"}!|*}+! }*|+))))))]*}+n&s*}!"}*}#2!"|ŔVDO Installation Module vers. ́1.1bŔ by James Whorton * Setup *͐bR͐b&R͐bŔ0Enter the source filename to be installed : b!z+._b!z  !zͲR͐bŔDEntering RETURN to the next question will overwrite the source file.͐bR͐bŔ0Enter the destination file name to be written : b!z+._b!z  !zͲ!z \E4!z !zͲ$!|Ͳ,!|ͪ(R͐b*|!NE+5ŔYou have selected terminal *|!́ - b!!5zʰ5"}! }*|+))))))*}n&Rb*}#l5R!.͐bŔ5Are you SURE you want to install this terminal(Y/N)? b!8! }b* }&(!YaE%65Ŕ Installing !z !q́... b-%R͐bŔFile installed as !z !q!.͐b!YaEacxŔ Installing !z !q́... b-%R͐bŔFile installed as !z !" ; VDO-OVR.ASM ; a set of overlays to VDO.COM 10 April, 1985 ; to provide cosmetic changes and function key support ; [this patch does not make use of the source code] ; R. Gaspari Comm Labs RBBS (213) 648-0805 ; **************************************************** ; GENERAL EQUATES ; **************************************************** CLEAR EQU 04H ; your terminal clear screen code (usually 1Ah) BLOCK EQU 'K' ; your preferred block command (either K or O) BDOS EQU 0005H CR EQU 0DH LF EQU 0AH ; ; ***************************************************** ; INTERNAL CHANGES TO VDO.COM ; ***************************************************** ORG 1347H ; this implements your selection of DB BLOCK-40H ; choice of ^K or ^O (chosen above) ORG 0FD0H DB BLOCK ; same task, different location ORG 12ADH DB BLOCK ; ditto ; credit to finding the locations above ; to VDO.PAT by BOB BROOKS, 3-15-85 ORG 0177H ; this implements your selection of DB CLEAR ; your terminal's CLR SCREEN code ; ***************************************************** ; PATCH TO ALLOW USE OF FUNCTION KEYS ; ***************************************************** ORG 01C3H ; this location is inside the JMP KEY ; original char input routine ORG 14E0H ; this is past the 1480h end of the orig ; VDO.COM so that some space is allowed ; for bookkeeping by VDO. KEY: ; added procedure to trap function keys CALL KEYFN ; call the subroutine POP B ; replace the POPs overwritten by JMP KEY POP D POP H RET ;return to VDO.COM (RET from 01B5h) KEYFN: ;subroutine to replace fn keys CPI 0FH ;trap ^O JZ KEYFN0 CPI 80H ;assume all keys with bit 8 set ;will want to be changed JNC KEYFN0 RET ;char input not in classes above KEYFN0: ;...will not be changed by KEYFN0 MOV D,A ;save the char for future use LXI H,KEYTABL ;prepare to search table KEYFN1: ;start the search MOV A,D ;retrieve orig character CMP M ;compare the char to the table JZ KEYFN4 ;if match go make exchange KEYFN2: ;no match so continue search INX H ;next byte in the table INX H MOV A,M ;move it in for inspection CPI 0FFH ;because FF marks end of table JNZ KEYFN1 ;if not end continue search MVI A,0 ;no more char in table so... RET ;return a zero (RET from KEYFN) KEYFN4: ;substitution INX H ;the substitution is the byte MOV A,M ;....after the match RET ;....so return with it (RET KEYFN) KEYTABL: ;my function key replacement table DB 82H,05H ;if up-arrow send ^E DB 86H,04H ;if right-arrow send ^D DB 88H,13H ;if left-arrow send ^S DB 8AH,18H ;if down-arrow send ^X DB 0DBH,0BH ;if fct key F1 send ^K ; DB 0E3H,0BH ; F9 = ^K DB 0E4H,0BH ; F10 = ^K DB 0E5H,15H ; F11 = ^U DB 0E8H,16H ; F14 = ^V DB 0E9H,07H ; F15 = ^G DB 0EAH,0BH ; SH-F1 = ^K DB 0EBH,0BH ; SH-F2 = ^K DB 0F2H,0BH ; SH-F9 = ^K DB 0F3H,0BH ; SH-F10 = ^K DB 0F4H,11H ; SH-F11 = ^Q DB 0F7H,0EH ; SH-F14 = ^N DB 0F8H,19H ; SH-F15 = ^Y DB 089H,12H ; arrow NE = ^R DB 083H,03H ; arrow SE = ^C DB 085H,11H ; cursor 5 = ^Q DB 094H,01H ; CNTL rt arrow = ^A DB 096H,06H ; CNTL lt arrow = ^F DB 0Fh,0Bh ; make ^O same as ^K (why not?) DB 0FFH,0FFh ;important -- marks end of table ; ;end of subroutine KEY KEYEND EQU $ ; IMPORTANT --- this address MUST be less than ; 15C0h where the TEXT file will be located. ; Check your .PRN file after Assembly. ; ***************************************************** ; PRELIMINARY ROUTINES BEFORE NORMAL EXECUTION ; ***************************************************** ORG 0100H ; at beginning of the program... JMP FRILLS ; ...go here first for prelim routines ORG KEYEND ; frills located after function FRILLS: ; key patch above CALL ROUTINE1 ; #1 is RBBS check CALL ROUTINE2 ; #2 is print initial message CALL ROUTINE3 ; #3 is cursor lock on (NS only) ; this subroutine re-creates VDO.COM MVI A,31H ; into its original form before STA 0100H ; "JMP FRILLS" overwrote it MVI A,0B2H STA 0101H ; 31h, B2h, 14h were contents MVI A,014H ; at 0100h before overwritten STA 0102H JMP 0100H ; this executes VDO as normal ;.... ; End of preliminary routines. Note that everything after KEYEND ; will be overwritten by the text file so never put anything here ; that needs to stay here after editing has started. These routines ; are done at start-up and forgotton afterwards. ; ****************************************************** ; PRELIMINARY ROUTINE #1 ; THIS DISALLOWS OPERATION IF RBBS IS IN OPERATION ; ****************************************************** ROUTINE1: LDA 004FH CPI 43H JNZ ENDROUTE1 MVI C,9 LXI D,BBSMSG CALL BDOS JMP 0 BBSMSG#: DB CR,LF,LF,LF DB ' VDO is not executable while in Bulletin Board' DB ' operation.',CR,LF,LF,LF DB '$' ENDROUTE1: RET ; ********************************************************** ; PRELIMINARY ROUTINE #2 ; THIS PRINTS A NICE LEAD-IN MESSAGE BEFORE EXECUTION ; ********************************************************** ; for personal preferences, this ; preliminary message is printed ROUTINE2: MVI E,CLEAR ; clear screen MVI C,02 CALL BDOS MVI C,9 LXI D,MESSAGE CALL BDOS ; print message ; MVI C,1 CALL BDOS ; enter any key PUSH PSW ; store to check later if ^C MVI E,CLEAR ; then continue MVI C,02 CALL BDOS ; clear screen again POP PSW ; this allows for graceful exit CPI 3 ; ...if ^C entered in response to JZ 0 ; ..."Enter any key to continue" JMP ENDROUTE2 MESSAGE: DB CR,LF,LF,LF DB ' VDO.COM is a full screen editor with' DB ' commands similar to WORDSTAR.',CR,LF,LF DB ' This version patched for function key' DB ' support for Northstar Advantage. ',CR,LF,LF DB ' Enter ^',BLOCK,'^X to save and exit. ',CR,LF DB 9,' \',CR,LF,9,' \',CR,LF DB 9,' \_______ IMPORTANT! ' DB CR,LF,LF,LF,LF,LF,LF,LF,LF,LF,LF DB ' Enter any key to continue ---- ','$' ENDROUTE2: RET ; **************************************************************** ; PRELIMINARY ROUTINE #3 ; SET CURSOR LOCK -ON- (FOR NORTHSTAR ONLY) ; **************************************************************** ; For Northstar Advantage only. Sets cursor lock ON at start-up. ; This prelim routine feature is particularly important if patch ; is used which activates the cursor (arrow) keys. ROUTINE3: DI ;...this new code CALL CURSOR ;this calls the cursor set routine EI JMP ENDROUTE3 CURSOR: ;set cursor-lock subroutine LXI H,0401H ;04 is code to send to F0 register CALL STATE ;01 is the bit to check if lock set JZ CURSOR ;do over if flip state went wrong way RET ;return from CURSOR subroutine to MAIN STATE: MVI C,4 CALL 0F606H ;HDRREG addr MOV A,B MOV E,A ANI 0F8H ORA H MOV B,A CALL CUR2 ANA L PUSH PSW MOV B,E CALL CUR2 POP PSW RET CUR2: ;Write I/O control register WRCIO IN 0D0H MOV D,A MVI C,4 CALL 0F609H ;HWRREG I/O addr CUR3: IN 0D0H XRA D JP CUR3 IN 0D0H RET ;end of CURSOR subroutine ENDROUTE3: RET ; ************************************************************* ; END OF PRELIMINARY ROUTINES ; ************************************************************* END ; everything after END is ignored ; by the assembler ;************************************************************* ; GENERAL USAGE INSTRUCTIONS FOR USING ASM OVERLAYS ;************************************************************* ;  I N S T R U C T I O N S ; ; ; First, edit this file to your preferences using any editor. ; VDO.COM should work very well for this. ; ; Second, assemble this file using Digital Research's CP/M ; assembler ASM.COM. For the file VDO-OVR.ASM, enter ASM VDO-OVR ; ; Lastly, use DDT to overlay the resulting HEX file from the ASM step ; onto VDO.COM. The procedure for this overlay follows: ; ; A>DDT VDO.COM ; DDT VERS 2.2 ; NEXT PC ; 1480 0100 (size varies with version) ; -IVDO-OVR.HEX (note the "I" command) ; -R ("R" loads in the .HEX file) ; NEXT PC ; 1722 0000 ; -G0 (return to CP/M) ; A>SAVE 23 VDO.COM (now have a modified .COM file) ; ; = = = = = = = = = = = = = = = = = = A>SAVE 2ASM VDO-OVR ERA VDO-OVR.PRN DDT VDO25.COM IVDO-OVR.HEX R G0 SAVE 23 VDO.COM ERA VDO-OVR.HEX ; ; Now you have a modified VDO.COM program ; $ This is the release date of the disk. VDO-OVR ASM #VDO-OVR SUB VDO25A .NOT C3 F8 2176 17 VINST11 .COM D2 98 13824 108 VDO-OVR .ASM 98 0D 8960 70 VDO-OVR .SUB E3 0E 256 2  Fog Library Disk FOG-CPM.032 Copyright (1988) by Fog International Computer Users Group to the extent not copyrighted by the original author for the exclusive use and enjoyment of its members. Any reproduction or distribution for profit or personal gain is strictly forbidden. For information, contact FOG, P. O. Box 3474, Daly City, CA. 94015-0474. as part of the description of a file indicates that the program is distributed on a "try first, pay if you like it" basis. If you find the program(s) meet your need, please refer to the author's documentation for information on becoming a registered user. Only by registering and paying for the programs you like and use will the authors of such programs continue development. Often, more complete documentation, additional modules, and new releases are available only to registered users. Text editing (and simplistic word processing) with these programs. EDIT has been moved to FOG-CPM.019 to make room. Filename Description -01-07 .88 This is the release date of the disk. -CPM032 .DOC This is the description of the disk contents. VDE262 .COM EE97 13K ver. 2.62 [Video Display Edit 1 of 7] Small WordStar clone for most CP/M computers. VDE26 .DOC 7582 39K ver. 2.62 [Video Display Edit 2 of 7] VDE262 .UPD ACBF 7K ver. 2.62 [Video Display Edit 3 of 7] VDM262 .COM B740 13K ver. 2.62 [Video Display Edit 4 of 7] VINST262.COM 99E0 9K ver. 2.62 [Video Display Edit 5 of 7] VINST26 .DOC 7BC6 21K ver. 2.62 [Video Display Edit 6 of 7] VDE262 .QRF E0DA 3K ver. 2.62 [Video Display Edit 7 of 7] VDO25A .COM D3F4 7K ver. 2.5A [VideoDisplayEditor 1 of 6] WordStar clone for text editing. Easily patched for most displays. VDO25A .MAN 41BB 23K ver. 2.5A [VideoDisplayEditor 2 of 6] VDO25A .NOT C3F8 3K ver. 2.5A [VideoDisplayEditor 3 of 6] VINST11 .COM D298 14K ver. 2.5A [VideoDisplayEditor 4 of 6] VDO-OVR .ASM 980D 9K ver. 2.5A [VideoDisplayEditor 5 of 6] VDO-OVR .SUB E30E 1K ver. 2.5A [VideoDisplayEditor 6 of 6] of the disk contents. VDE262 .COM EE97 13K ver. 2.62 [Video Display Edit 1 of 7] Small WordStar clone for most CP/M computers. VDE26 .DOC 7582 39K ver. 2.62 [Video Display Edit 2 of 7] VDE262 .UPD ACBF 7K ver. 2.62 [Video Display Edit 3 of 7] VDM262 .COM B740 13K ver. 2.62 [Video Display Edit 4 of 7] VINST262.COM 99E0 9K ver. 2.62 [Video Display%&'