IMD 1.17: 4/10/2008 13:45:05 vedit 1.39 sn 27386  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  VDSETCRTCOMH VEDITZC SET VEDITZC SETVEDIT8C SET !"#$%&'()*+ "-$ "1$ "$ "$GÁ  2 $27$2:$*#$2 $ ͔ ̀ ͔   23$  \N  H !\:e ʠ!eW H :m ʫ!lo  H o o }Á2n 2Z N Á%c= KEYS ART=>?@VEDITZC LSTABCDEFGHIJKLMNOPVEDITZC LSTQRSVEDIT8C LSTTUVWXYZ[\]^_`abcʄ#2 $ ͔ ̀ #͔   24$ D2 $ ͔ ̀  25$ lv2 $ ͔ ̀  26$ o r}r"$%*$DMt x7o ʁ!o   H !zH  o N Áo VEDIT8C LSTdefCHECKSUMDOC ghAUTOLOADDOCijklNOT-CPM DOC*mnopqr:ê(  VDSETCRT - Version 1.39 )"'*4#"4"1%>2 $2$2$! Nyg.0y^ }0i>2A |T  tͳ*2:$*$" $:3$ ڶ29$>2 $[{*$" $* $##" $2 $>2 $ ͔ ̀ !7$29$!3$#5!7$6{2 $! i*DM!%  !$ DM   "$ "$ "$ "$ "$ "$ "!$ "#$ "%$ ")$ "+$ "'$ZIL-INT EXC4stuvwxyZEN-Z19 $$$TELV-950$$$VEDIT8C LST%^#V6+6n |ʪ !6  ͉%2 $<2 $o ʰ}%(ð"9ðRð =ͅ 6$+29$>` 5͔ *$: $+*$:9$% 6 !7$~J::$[6[:9$[::$[6:9$*$>@% ʤ*$ ҃ ʶ Ĥ #2 $O Ĥ D2 $O Ĥ v2 $O Ĥ 9*$##2 $O ð2M N#F*$! *$ ! ʃ 0ڪ :Ҫ  3 _ Î ! ʯ 0ڪ : _Aڪ GҪ ))))o ú _w#w}|ogSSAGE (8) DISPLAY OR PRINT KEYBOARD LAYOUT (9) CUSTOMIZATION COMPLETE, RETURN TO OPERATING SYSTEM ENTER OPTION NUMBER (1    !6  :_YN…*!$: !r ʣ }ʂ¯>*'$  r  *'$ d r  *'$ ECKSUM ERROR *** *** PRESS RETURN TO CONTINUE OR CTRL-C TO STOP ***** INCOMPATIBLE VERSIONS OF VDSETCRT AND VEDIT *** $***Û_Bʦ*$: $ʛ*$:9$%  *$  * $ !7$~6:9$ڶҶҶ 29$[  *$ :M ;+ ~#F ~F :M >2M ; K+ { C >ͤ # ~VEDIT SETRo ʰVEDIT $$$ }~#fo^#V|}>  xyɅo$/ȅo%!xD  : x~# J w]T J ic =a *$DM!%@~_- 9) ENTER SIGNON MESSAGE (MAX 64 CHARACTERS)? ! *** KEYBOARD LAYOUT CUSTOMIZATION ***  r   r   r   { - }B *)$*%$~P w# I  !6@  *1$!N#H > CRT.TBL NOT FOUND, OR BAD FORMAT *** $*** INVALID CONTROL CHARACTER *** *** CONTROL CODE ALREADY USED *** *** NUMERIC VALU27$þ*#$#### {  *)$ r " )*+$ r 9 B*-$\ Bo \*$DM Y";$ + Ĥ #2 CRT TBL2 $O Ĥ 2 $O Ĥ 9*$##2 $O ð2M N#F*$! *$ #~W#| xy :$_:$ʗ !*{2$~ : $i> Y: $  \ :$_ !*{ ENTER ESCAPE MODE CHARACTER # 1ENTER ESCAPE MODE CHARACTER # 2ENTER COMMON 2ND CHARACTER # 1 IN ESCAPE SEQUENCEENTER COMMdŠ \ ʙ x‡ ¶ ;+ 1+ F+ ʹ 5+ @ B+ O  E OUT OF RANGE *** VDSETCRT TASKS: (1) PERFORM ALL NEW KEYBOARD LAYOUT (2) ADD ALTERNATE KEYS TO EXISTING LAYOUT (3) + } "=$Ö lo ʖ*;$+DM ړ û o ʻ*;$+DM ڸ "?$ o ʻ*?$*;$+DM  *$ :M ;+ ~#F ~F :M >2M ; ESCCTRL-[NONE]DELESC- !! DISPLAY ON PRINTER (0) OR CONSOLE (1) ?COM N2$_ w:$>͔ O # # 1 > Q xDx~#Y]T Ro ʰ}2 $*#$2 $O ON 2ND CHARACTER # 2 IN ESCAPE SEQUENCE UPPER & LOWER CASE ESCAPE SEQUENCES EQUIVALENT ? (0 = NO, 1 = YES) NOTE: TYPE "B" TO>#! $ G    ~L O : $A ><2 $~#-   k ͔ k ͔ +  ́  ͭ  SET SPECIAL CHARACTERS (4) SET ES & EP PARAMETERS (5) SET SCREEN PARAMETERS (6) SET OTHER PARAMETERS (7) SET SIGNON ME  !"A$ o +:A$OB "C$ +  *'$:o = : a jo a  ^3 O DIR SPACE$ NO INPUT FILE SPECIFIED$ INPUT FILE NOT FOUND$ NO DISK SPACE$ READ ERROR$ CLOSE ERROR$ *** WARNING - VEDIT CH  START OVER FROM BEGINNING TYPE CONTROL CHARACTERS FOR [HOME][ZEND][CURSOR UP][CURSOR DOWN][CURSOR RIGHT][CURSOR LEFT]=YES)INDENT INCREMENT (1 - 20, SUGGEST 4)LOWER CASE CONVERT (0=NO, 1=YES, 2=CONDITIONAL)DECIMAL CODE FOR CONDITIONAL CONVERT(7C) REVERSE VIDEO ON STATUS LINE (0=NO, 1=YES) ENTER DECIMAL VALUE (4MHZ = 76, 2MHZ = 38) EXPAND TAB WITH SPACES NT 100 (19) DEC RAINBOW (5) ADDS VIEWPOINT (20) DYNABYTE 57 (6) ADDS VIEWPOINT/3A PLUNSERT TEXT REGISTER][PRINT TEXT BLOCK][SET TEXT MARKER][GOTO TEXT MARKER][FORMAT PARAGRAPH][VISUAL ESCAPE][VISUAL EXIT][RFILES (0, 1 - 17)SHOULD VEDIT.INI FILE BE EXECUTED (0=NO, 1=YES) ENTER NUMBER OF SCREEN LINES IN DECIMALENTER LINE MOVEMENT [BACK TAB][TAB CURSOR][ZIP][NEXT LINE][LINE TOGGLE][SCROLL UP][SCROLL DOWN][SCROLL RIGHT[SCROLL LEFT][PREVIOUS WORD][N CHARACTER (59)LINE AND COLUMN DISPLAY (0=NONE, 1=LINE, 2=COLUMN, 3=BOTH)RIGHT MARGIN FOR WORD-WRAP IN DECIMAL (0=OFF)HIGH BI (0=NO, 1=YES)AUTO BUFFERING (0=NO, 1=FORWARD, 2=AND BACKWARD)BEGIN IN VISUAL MODE (0=NO, 1=YES)POINT PAST TEXT RES (21) EMULOG 200 (7) ADM-3A (22) FULCRUM VIO-X2 (8) ADM-31 ESTART EDITOR] USE THE DEFAULT TAB POSITIONS? (Y OR N)ENTER UP TO 33 TAB POSITIONS IN DECIMAL BEGIN IN INSERT MODE (0=NOFOR PAGING IN DECIMALENTER TOP LINE FOR CURSOR IN DECIMALENTER BOTTOM LINE FOR CURSOR IN DECIMALENTER SCREEN LINE LENGTH IN DEXT WORD][PREVIOUS PARAGRAPH][NEXT PARAGRAPH][PAGE UP][PAGE DOWN][SCREEN TOGGLE][BACKSPACE][DELETE][ERASE TO END OF LINET ALLOWED ON INPUT/OUTPUT (1 - 7, SUGGEST 1)CURSOR POSITIONING OPTION (0 - 2, SUGGEST 1)VIRTUAL LINE LENGTH WITH SCROLLING (40G. INSERT (0=NO, 1=YES)IGNORE UPPER/LOWER CASE DISTINCTION IN SEARCH (0=NO, 1=YES)CLEAR SCREEN ON VISUAL EXIT (0=NO, 1=YES (23) HAZELTINE / VOLKER-CRAIG (9) AMPEX DIALOGUE 80 (24) HEATH/ZENITH H19, H89 (10) ANN ARBOR 400D , 1=YES) HEX CODE FOR SCREEN CONTINUATION CHARACTER (2D)HEX CODE FOR COMMAND ESCAPE CHARACTER (1B)HEX CODE FOR COMMECIMALENTER LENGTH OF DISPLAYED LINE IN DECIMALED (0=NO, 1=YES (1) ACT-IV (16) DATAMEDIA (2) AD][ERASE LINE][DEL PREVIOUS WORD][DEL NEXT WORD][UNDO][TAB CHARACTER][NEXT CHAR LITERAL][SET INSERT MODE][RESET INSERT MO - 255) (200)HORIZONTAL SCROLL INCREMENT (1 - 100) (20) SIZE IN DECIMAL OF SPARE MEMORY FOR AUTO READSIZE IN DECIMAL OF FIL)REVERSE UPPER AND LOWER CASE (0=NO, 1=YES)IGNORE SEARCH ERRORS (0=NO, 1=YES)USE EXPLICIT TEXT DELIMITERS (0=NO, 1 (26) HDS CONCEPT (11) ANSI STANDARD (26) HP-150 (12) ANSI SUBSET (MSDOS 2.0) (27)AND ITERATION LEFT BRACKET (5B)HEX CODE FOR COMMAND ITERATION RIGHT BRACKET (5D)HEX CODE FOR SEARCH PATTERN MATCH CHARACTER DS REGENT 20, 25 (17) DEC VT-52 (3) ADDS REGENT 30, 35, 40, 60 (18) DEC VT-100, VT-180 (4) ADDS REGEDE][SWITCH INSERT MODE][REPEAT][INDENT][UNDENT][FIND][REPLACE][CANCEL][COPY TO TEXT REGISTER][MOVE TO TEXT REGISTER][IE MOVE TRANSFERS IN K BYTES USE DEFAULT DRIVE FOR HELP AND INIT FILES (0=NO, 1=YES)ENTER (0=NO) OR DRIVE # FOR HELP AND INIT   HP 2621, 2645 (13) BEEHIVE (28) IBM 3101 (14) CONTROL DATA CD-110 (29) IBM DISPLAY=0!=G (*=!=~6!TJ![J!bJ!ireen.01/06/842v:2:j:2:( :s:!< .::2H:I:N!k::!62U:2i:I:a2:2:!x; !j: !6N!;!6 2 <*:d +"*:") VOLDER-CRAIG 404 (38) NORTH STAR ADVANTAGE (53) WYSE WY-50 (39) PERKIN ELMER 1251, 1245 (54) WYSE *###L6%8B'*:,> .Y":Y::ͨ ()(!!=OX <WRITER (15) CONTROL DATA CD-722 (30) INFOTON 100 ENTER ANY KEY TO CONTINUE MENU (31) INTERTUBE II (UP TO VJ!pJ!wJ!~J!J!J!JY JK IÌ >=MdAõ!VEDIT Ver. 1.39 ,;)}] .@!COMMAND: 8# w# w# w~ =&ͬ 8(8 ͥ8O͸ͭ:͸*<!>!6W!j:\6> 2mQ͇>_2t;*"M;͞!"M;I!>!62q=*":@~ :::G:(::͆ ͅ (7 =( > WY-100 (40) PERKIN ELMER BANTAM 550 (55) XEROX 820 (41) SD VDB 8024 (56) CUSTOMER 2 (42) S !<1]@*.+":":"::] ( :>(6V+:Og. y( ":|(-::0 >2(ͨ :(0!60!6>ER. 1.7) (46) TELERAY (32) INTERTUBE II (LATER), III (47) TELEVIDEO 920, 912 (33) ISC 8063 AND OTHERS 2{==!{=0<~o&͹!{=5!=:{=!M~J:>!=G (:?!6:>02~2:>=c((6(Q (?((2/0yO8:> y!=( w yO!=4R!=4~6"=}2=!'J!<~(zS_#{+6":~  2^;>2:ͅ ([:Ͳ50I:O  5:^;͛ L (*: k :^; .!>[6[ *OROC 120, 140 (57) CUSTOMER 1 (43) SUPERBRAIN (44) SWTPC CT-82 (45) TEC 500 ENTER NUMBER OF CRT TO B2: >2w;͚ !":DM[:!:> n5+= Q!J!^@Jͺ 1]@Q͇1]@ !6W!6:!6!""=>2=* ":"":":6+6  (48) TELEVIDEO 950, 925, 910 (34) KIMTRON ABM 85 (49) TI PC (CP/M-86) (35) LIBERTY FREEDOM 100 !*>&:~(-ç'L*:,> .::(":rw*:::GLGN,> .":yG^>2=O!!.J#z!5JO!<~(y10d8d0 0: y(O~G#N#~3:?(2!?J2{=!"=!{:5(!!6 8 2:2^;!"=(% z:Vj:!j:Y:!6I:!;a @:H:͆ I:(#>2:{2=:>(:>(6!7:=(!7y4~y"(Ͳ5yOO:> yO:>y::yͯ3 Oͨ !   ~6ͨ  !:j::H:͆ ͛ !:~6 AV A::IJ \!; 2^;!;J! A6#>  [6Z6R Ͳ50 y ͞> ͞͞*:w+":e7yq ͞Z6yͲ5(#~ͣZͲ5(e>#k:=8#":!"Z;[:Cb; Kb; Cb;x::!< ::!< ::!p<:::::>!A` ͩH͌2#;1[@ *:":*>"T;2t;ͧ"M;:O;: ( T(4I(S5JOq#pJNøJO:Q;-( Bs#rJDM :T;Z!::44m_W(FR(OSL(PI(oHVC5x(+~ #V(+ ":ͽ 0*:W ":[ *:55͙4 ͛ ::(Dͅ 7*:I: 8* "": *:>  #* m*#_U+͒IPT DS(AL5::^) D >+2: AA !> +͙0 W ) D W 8!J (R (*(%w (A: ~6 @+w (/#.( *  +w  ( (-*  w#=*: ͢ m}͆ :O; !< m!=~ w505!x( +G!*Z; *=&5A:R;-G Ͱ O *:Á Ͱ ($N5 0*:~2T;m@ 2U;_ 2t;#;!> O :P; *:W5!; # ͗58 !#;}5S:!6:O;_ͯ35@4[:*:Ͳ50!;cEʹAT5*:~JGm(k::!k:::!]:Q;-!:~6X:#2_;!U"`;:Q;-!"`;[:5x~=R"=!"=2::kb ~w ~8w<7? 67Ͱ ͌33@ 0 6*  +x68#[I (͈ <%9 | >x(+~ = x( G>2: A AT ::Jp>2:*:B+":#(>+2:3 [=>?w#   8*(?(i ȯ2A2-A A AaH . !<72: !: A  A6>͆ :>(D 0 :>7(2 A(# V "~2:6>-*:":2Q;!"M;Þ*'":'!::Q;-(!:s#rm!6[>_2t;]8 ":V:t;_ L (ç}58 2:":S:*:~+":2O;!!2P;m (-2Q;2R;(+ m#2S; m! 3 2P;|:O;!36m*::i;w# *=:M;o*=:M;gO ͑ !\l > 2m Ç͑ ͦ ͨ (W X(!= !<% _! Al !A~  >? *:Ͱ (*:g6#!: 5Ì::ʾ333@ 06*:Bg6#M :^; *M;!"M;G "M;":[ " (*  W *  d  :%:$2_;| x+ ~km  !:6~0k>:k> k|4]8)":S:5>2i;2h;[6*::Vʺ":D ::!:(w_  2:2:G::x 8  !:~6::͆ :2 :G:Æ *:" x~ :: 2:2:::2*: :>ó> 2::Q;-^|| !T=` H J2 [:5pCZ;*:"\; Ͳ5 58(*: ":m4 KZ;[\;:#; *:":"::i;!9(!;>2=2V;2;=2:eX!V;~(}:> y(bq[:*:(i((h(s(o 2 8 [6  AZ!_#> k> kZ'>29A28A!".A#"4A> 2i !([ ͢(͢(S0A"2AͲ58+"=5͙45:^;[:K>*:BR5*:*:ò5 *>B[:Ͳ5T]x6#0":l *= [ g6+Ͳ50ͺ:t;_ L (:v;Gç[:d >/k[:*5 >/kK: Z͛ O*:( :R;-*(*::R;- m_͒A::aH2^;<2:::͆ *:ͅ (:O ( [: :^;Î O(CM;2 "  ~ 6!:'4* m4 "::H:͆ [:*:*:͍":S:(":"::t;_ :Q;-(L (ͥ ͒::K:[:!;6|":+ ":::2:͒O^[:͙ D :/A e AA K4A=(X!:.A *0AB >2.A"6Ax68Ͳ5(#*2A#B >2/AC4A:.A([6A5:8A ͫ8SW x(;!9A~(65+K4hX6!:$45͂::^2 8EͲ50@*:5'4*:+B6#5͊*:s#r!:~6( *:###6 7|ͮ3[ͮ3[ھ3>2m;"n;Sp;:S;# *j;}:T; !>!:v;GZG!#;~}5:>G*:~+ ":5:> ":=͍"~!# :=2=*=&x2=( [>]@!Ͳ50 G!0C=y 0 ( ͔37##3(o>J0:==^@ 0 G>h0*:Ͳ58þ3x(# +[:Ͳ5+7 @y*:m4:4!h;~6[:*:5bkx( ~# (S:[:*:I":5Ù4":*:#": !r=~w1Y@!r=~ ~0 `!! 2=!r=~6:s; ͔58 z5O2=:s; O 5͒0:s;&:x=(02:r=O K0A !;>2=k  *0A#"0A>29AOy'ͣ ) ̓!*<% A2 14##= !;~##1414#͂>.ky~k# ~k#Z_Y:O;!2;!;MZ Z+#~k(2q=> k>  >$O:W; !X;~(6Zx :=2=!=~q((2z=!ԧ"ͣ"B:r=(;(:=O>!^@:=O:=[=*=2="= :>8 yh0>2= r"+x!=w))R)J0:!"j;*:~JG2r;!m(-p2i;OͲ5?Ͳ5y0:>yą3w#:U;!v;>(mw2i;*:2m;*5!:w; '!"Z;!>3>02"!u=:t=8:>~ 4:s=~2+60c>!=8#(8W0͋0!{=8w8<2u=Ͳ!:=!>8~Gb+x:>:=6 0!R"`;!:~6(>2X;ͨ (> V!== <2Y;m_Y(!;% ::(2 > 2]:Y;Z 7!\l > ͢5:::o&))":ɯ2:m (+(08 82:!9>!%>> A32:l+(0 8(08 02:2`=<2W;2X;!"`;y 0M (4 (E ("(:_; 6^>@O):_; K>2=:_; *=&3(Ǖ_  y 8!=4*`;OX=2=:=2=*="=*="=5 0 !:w23"0>::7:>7*  *=Ͳ5 ͳ":=_< 4:>_{~w#~w#*=[>BR( x(lKZ;x( x(Y:>ą3 Kv;#~(0(4:>ą3(:m; #[p;*p;#"p;*Ͳ58*n; *j;#"j;7#~_X!}=8f%D%:=6 8[=*=Ͳ5|2=6 8g!}=?+^@~( # ( x "="=]@R"="=[=*=5"=(}=04͢}w!=͢}( x 8!J=*O<8 >!M͑ !j:l ͛ *::w*:O >-2Q;[::Q;-(  x~*::q=(6K>[:*?Ͳ5 y4Ͳ58 y04Ͳ50y=2= :>2=2q=ͪ DM !͸50 G!0u"2=͟":q= f>2>*=:=O=G X !;2i;2:JW !'"Z;!\;6*Z;|5y*Z; 5CZ;!\;x 6 (0wO͂K:^q#Vp#~6#N6ao*:8#}:==!;?4 ) I!r=~w*:Ͳ5++g6#J0<2>>͋0Ͳ5:=0:r="lOAʮ3D3Lʎ3C(*S(.R(9UʅVʍB3W(/MʘN(7+ Ҿ3ͯ3ʾ33ʾ3ͯ333SZ;3(#:w;( :>ą3W"*=8m4͙42=[=!^@:4S=:=4+g6#M "=!=~6(d *=Ͳ50s 5*= "=*="=:=O͌"~(+ *=(# *M;}+CM;7+g6Ͳ58 x #O[:*::Q;- B8Ͳ5 *Ͳ5KM;xKM; CM;2 5:v;o[:(0 D!=wͼ"0y2="?>2q=n *=[="::>2{=>2w=!>~< 5>2r=n "!r=~( /!r=~ w>2=~( ~wͤ ?  *E:!8:=(!9y0 !#!:<4!2Y;Ͳ58!>DM2"!&#Ͳ5y ))3 :Y;y 2Y;!6DMT53X:=*=ڟ"=ҟ"Ó";)ҟ":=!>0<2=͉"~!=:>05>2y=f)*?ͼ""?:==2=!>:= :>!s=(:>8~Q* +ͱ+!=>2=B(!;7>2v;!"t;!M>>'8(!>>" @'! @~#(!_B ͗G >_2t;R 2u;:u;7C\;A3*3 "=>2Y;*="=:=*=l"=$( ͙.A( ͙.>2Y; q+~ w.y͔3(3 :Y; 2Y;͙.8*=+s,8*=B"=.-[=*=Ͳ<!>w02ͧ"!  *:#":6V!q2W;!>:=02=!=:>O:>=qy+[=Ͳ5!^@"=($2=Û"<2:ͧ*}(%Ͷ=2=!=:=8+ï$!=:=*=+G, +M,(#*=+#M,(+#G, ~͔37~ͯ3&͝33>, +~#3 #~+3 T]+~#3(#>OyO:>89(**=^@5(:>( :>(y yͅ3O:>:> &*=~͔3(q 8>0 +͛͗"!+:> +*))+*=3ou"+:=R)ͽ+Q*(:=!>0͌"~0(#:}==2=H)*=~ !=:}==͉"~0 >(#͉+#El(J ( #> -> -8!;Ͳ576>(-O*=&F!:>ye:=8+!"Z;[\;!=~w*=|-350#"=+N>2=.*=?*=q`AͲ50#"=*=F!"=[>ò5!3G!*=6 #6 #"="=*="=R"=*=^@R"=5!=͙8::(5͙4 &E>2:S02:= Ͷ:`=2=ͧ8ͳ":>Eͧ*|(կc3!"`;ͧ!r;~ 6͒',y+Ͳ5?5 ,8"=[ *=Ͳ5,P5:>2=͓"))3,8,P5>GK**=?,+ ,8͛"*=5"=(*=+#G,8 6=Ͳ5::>2=͗"*=#"=[=*=/6"=q:>(_*=Ͳ50!"=y͔3(*=s,8!+T5ͪ:=4Ͳ5::*=Ͳ5:n [=*:Ͳ5 :>ͥ !"`;*:n *n :v=:>F)K5͟"!=F:>W8 O:>0wBp:><4J0( >͋00ͳ"m)( && +*=^@Ͳ5 [=*:Ͳ5+(P5+͒+ ͧ"͠+ *= bAͲ5*=B6"=!=$4+×"͒+ ^@Ͳ5b+ +d"n J0[%!~=:>w :|=(6:r=88/:=0>A/&0!t=w2:y=/*>&:~ ,,:r=0 :v= >2{=:>W0͋0:>O'8=lͧ!r;~06͒'8!T>>'("d;O'8>2s;":Sf;:r;0A2s;A3>"-3l (!_Y(NR(C&ϯ2r;2`=>,*=+M,# +M, #ͧ́-,-ͧ>-++g6*:Ͳ5H-8x6H-8#~p-( ~4͝37#~ ( (p-(T]|+͔3bk~̈́-=<2=͹ͼ$$ͧ"R) :>ʂ#*=E3ʂ#G # $ $:=<2=2=$ Ͳ$y:=O:>yG;)*?Ͳ5ʁ)ó"+*= ^@Ͳ50[=*:Ͳ5:>2=))b+ +Ͳ50>GK*S=*=~( +~# ?!^@5ͧ"b+!^@"=8!"=[?*=Ͳ5"?ó"!>:==0K;)0H͟">2y=@õ"͉"~)!=~G:>w0D͟">>)>͵+2><4"?x22{=$0!t=~(= 85 4:r=0(:==:~(/:s=A/:r=6/:i6/!$0:>2{=>W0͋0:T-/2:>2{2r;[f;*:5*d;RBDM*:8m4 ͙4[f;!:4"::r;8 O'ҵ&*:?]:t;_ L (&:r;?د!>A3> *3( (+3 !>:=ͧ,-~~4͝3 x6#>-"=́-#"=Ͳ50"=ͽ.x6#[=Ͳ58!ͽ.R}&0Dg."=!^@"=!+%s#rͮn :: +%4ͪ*}S!::4D%f%:=2=!>:|=0O!|=Wq2ͯ"!>:|=2}=!|=:>O!>:>8y:> ~#3(+n +>*=~7͔37?~# ( ~ ~ :==!>4~>>2=2=G!=~6+ ͒+ :~= x2=:|=8,,:>( :  =:=&0:z=08:z=>!v=6M0W02s=!=6͋0^0882=!"="=4< 4s#r|0 t:=(0*=# f2=#~7( I7555PYq$8m5g5555 .hx5:/6":CI5BK4x(5*:B6":5CI5 45!: 5!? 5!: 5! 5! 5B5*=Ͳ58>2=!> 50 [:s#####,F)!+))**($a*{%(o$)(%)&#+4%%,+*9%)#####(#####$$$###R#######NO DIREC(!=>R3::(:>?8!=>"R3!k::>(:>?0<< !>R32w=:>(K=*=B( C=>c3 :>(K=*=B(C=>c3!d#################################################################=!=~7w|00R:=͌" (>w:= *>2=*=#  : >(:>O!|=:=8#0ͨ:=ʹ+2= !=4ͬ1:=(*=Ͳ50*="=:>!=8W-r+##= 5?58)KI5'4!?.5!:.5![:5=5s#r+6#6+Oy!`=Ny#87+w## s#r#q#p#w#!`=~7TORY SPACNO DISK SPACCLOSE ERROREAD ERRONEW FIL[CR]: -BAK " " INVALID COMMANNESTING ERROMACRO ERRO*BREAK QUIT (Y/!"="=:>Gc3 ͛: > (O͛͹M0c3:W;ȯ2q=!>> !x=~6(-3c3~Oͨ#*>g2=:>L !"`################################################################> 0 ( (. p3:==&1͍"~w2v=74 > M00G~w:=G=\1͍":>F> >w:=1!>4:=w:= ):=(  (w##45N#F#~`i!`=~7##45~#+!4##~|}xy|}4Ͳ54;5^#V#Q RDMɯO>Gl&5A}g RN)? INSERT NEW DISK AND TYPE [RETURN] OK TO ERASE THESE FILES (Y/N)? OK TO OVERWRITE EXISTING FILE (Y/N)? REV FILE OPENO ;a{_  Oͤ3(A{0a0 [8ɿ0:0 #|+ }!=#3~o&)DM!>F####),F)!+))**($a*{%(o$)%%)&#+4%%,+*9%)#####(#####$$$###################:= [=z!}=0 +02=͹ѯ2=:=O 1 1y^1@O:=1!=4#4#4*=E3(!=w+w:=!=1DG: >O1!|=##################%########%#################################0yOxG6T])))04 xxx 5K4xB5:4+ɯw]T :4> # +INPUT FILNO OUTPUT FILCANNOT OPEN TWBAD FILE NAMFILE NOT FOUNPRINTING TO ABORT FILE IS R/O - OUTPUT FILE NOT OPEN3 x !?=o$!?4~#fo5yw#xw+5'4##\4#6b4\4)6b4>GxGx2 8Ͳ5*#######$R$###############################################:=8#ڛ!=4:w=2w=!w=~ʼ202:~¼22x=3::( ! >R3 :|=(OG<2*}!> *:}(!>>R3:>(!=> R3:>#####,%#%p&%**&-#)%#(O&v#&$##,-"-#*#######,%#%p&%**&-#)%#(O&v#&$##,-"-#*##  EDISK IN USE BY MP/WAITING FOR PRINTER, TO ABORT BAD PARAMETEPHONE HOMVHELP TXT FILE (Y/N)? RV LEPENO 22#:B=n)5*B&:)-Õ =l*v>,>O.:x>;"v>͋w*x>:v>_l_N,>€.%% CANNOT FIND: OPTIONS (Begin / Global / Reuse)? PLEASE WAIT FOR DISK(;@L ONF'78S_#{!BS#z!ISO!P~y10d:d0 <: yNO~G#N/X#~j7:Sʊh5!SSNPUT FINO TPU FILANNOT OPEN TWBAD LINE: COL: FILE: RL-C> TO ABO !)19AIQYaiqy"x>y_v>2AO!t>O!Aʭ#>2t>{2AÐ:Aʲ:Aʲ6!::A!C;y͎7~yF%0+D9yoO:By:?=>>>>>>@79#o$#~#**))F)!++)**a*)))9%4%,,-"-+*)(((),,%$v# Copyright (C) 1984 CompuView Produ29A!"GA!9A҃y&7 O !,&*###lò98EXb*v>.:x>;"vY*x>Y_ ʩcts, Inc. Welcome to VEDIT egin / Global / Reuse)? PLEASE WAIT FOR DISKCopyright (C) 1979,1984 by Theodore Green.10/22/84hS!oS!vS!}S!S!S!S!S!S!SY JK Il)? CANNOT FIND: OPTIONS (Begin / Global / Reuse)? PLEASE WAIT FOR DISK(;@L ONF'78ïB"E!VEDIT Ver. 1.39 ,;)}] .@!COMMAND: 8# w# w# w~ =&ͬ 8(8 ͥ8O͸ͭ:͸*<Jʩ!@ͺgp<JJ!@ú1D*.+">">">:] :B6V+j:Og. y ">|-:>0VEDIT INI>>@79#o$#~#**))F)!++)**a*)))9%4%,,-"-+*)(((),,%$v# Copy =!9A҃<~o&!9A5î!IA:9A!a~S:B!JAG :S!/6/:B:?=>>>>>>@79#o$#~#**))F)!++)**a*)))9%4%,,-"-+*)(((),,%$v#%%{%&#%%p&&(%%*&O&$%-%((6(Q (?((2/0yOڪ:By!FAwyO!HA4r/!A4~60"IA}2GA!;S!P~z  >2H : !06)!/6>2:A25? !">DM*>!>> 9+=J~!!DR1D~ʹ1Dt!06͕!L"jA!"jA2l>J>kb ~w ~ ) wJ<7? 67*H bͥ6  ͗9*  +: #*ͪd   p ͯ N 2D2DDD͕|ï ͍ !r@72q>E!q>DE DͲ9> :B ͤ :B7 2Dͤ :>!> w_ J q#*? *AA&p9A:?-ʰ H*ͰP*z> HbN; b*z> ~4# PͺP"~2u>6>-*~>"|>2?!" ?ÇfEp9:?2 ʘ*z>d  ^ :?!>9* *~>p9!ʹ9T | 2o>2?!"jA  U 8>͊( ?_&7@͖7*>*>D9<!>992>">">ͨ*>~+">2 ?!X!2? X-2?2?q+t#2?…!:k>ʹ9!""jA>2iA* "z>""|>"~>6+6 v8:] !L:k>ʹ9:m !l!\(>ʹ9!r@!j?- :>3 2 ͙ *z>H *z>:#!|>͕8b:l>87ͥ6 Q ͗9*z>+::# E :?* ?!" ?Ͱ " ?"~>* ͫ T| *  *  2>2>G:>x͒ ( ͒ !m>~6:I> J>) x :> *z>ͫ x :m>p 2V>2j>:>2I>J>͕|2?<2m>:I> **rͅ"|>ͅ!|>:?-ʠ!>s#rU!:>_22?u"|>ͺ÷:2?_ͫ ʷC^*|>:BÊ> 2>:?-H> !(>>ʹ9>J!?ͧ m:> >J:> !n>\~6 ) !p>(>E :> 2!k>~6D͊DJ:m>Ñ@7‘2?͘|: ?!@7ͧ9ÛA*>:'?:>*>">">:'?!9!{?ͺ>2AA2?2>=2> p!?~ʁ:A> 2h2|\2n>m J< g!@ Q24>2H>(>2p>Q:1>!@:>2>>͂!)>K>ʹ92>2'>>͕2o>2k>!6? +"jAx98x9:?*z>*BDM*>+:4:́9*>*z>D9͙ *B+:*~>D9T]:# "~> *jA * *z>ʝ J>͕ ʄ  *z>cE:? Ͱ `i" ?ͻ ͫ ͙ ͗9!~>ͤ7* 7 ">:> *>*~>p9x +~  #|!A ; ͻ *>p9`i"?*|>"? D9p9[[*> ">7*?DM*?*>">"|>ڞͨ2 \!`?H2?!H?A!D6#>  99T + * wT + : ~6 @+wT + #. N *yrq*>*>ʇʮʕʦʦͻ H4: D9jy Y_> _m_*>w+"> ͓yq_m!(> ô9͂!}?ô9m x J<*~> +"*|>"!Bʹ9͕!(>\Ͳ9> 2m~ʹ>_22?*" ?͇!" ?!Bʹ92/A:+D9 `i" ? * ?DM `i" ?x:o>!V@::o>!H@:m>!.@::n>:m>:B!D y;ó*b2>ͨ1D}t*|>ͺ + "~>2 *> "~>* *>p9x98E2:l>ʅ 7*>H>͕ څ J… ">͕ *>> u #p *jA4:">U2"|>:2?_§ͫ:?-ʪ ʇn' ä^:>*>DM*>!>H">+ ">:>2>^Ͱ2*|>Z*%_ d + w T + N *& d  w# =*>A K A 6 } : ? !e@6H [=>?w# f   N *N ?N6yYD9ʫ#~doD9o Ø>#è:AAo#">!"?*>!AA~͓ ͓͓wop9x9!x+*"|>m :m>:>:I> @H} =;>>:+9 6"z> ^ 2?>2l>ʉ*z>D9҉>͕ ">*B"?22?Q" ?: ?:¤2?Ó@¯2?Þ_º22?Þ>!AͰ :?*>8!?#)9!>9">![:ͫ:  U.^IPT DShL:>͇ ͤ >+2>D͇ e!>>:Y+Z@÷ ͇ ͤ ͷ }!@͘ s#Ͱ*~>*|>:?-¤+:ڢD9 *D9* ?DMx* ?DM `i" ?ͫ÷ͻ p9:4?o*>*>D987x#V>2D`i"D:D1*Dp9:D±1÷ x!D~6*DDM!w?ͺ>2AA  ±*D#"D>2Dñ1Ͱy!?x 6 0wOͧN*>DM^q#Vp#~6#N6ao*>p9+73"!>á7m9N:>ͻ ڻD9һ*>h9LIH0V&CnEA:T*>~Gʞö:o>!)>͛X:n>!]:?-A!r>~6x:#2?!u"?:#:5?:B6͉%7[%7[87>2+?",?".?:?#Q*(?}:?n!CBͺ!:4?Gͼ!>~9:AG*>~+H >xʩ+~ =ŠxʶÅG>­2q>D) D͚ :>>2>*>+:+">#ʞͨ>+2>+*>D9+7Cy*|>7ͷ7!&?~6*~>*|>p9bkxP~# >>"|>*>*|>ͪ"|>p98">*>#">!"(?*>~r͇ ͥ!?Dx *|>;2*|>͈:"2?!r"?!r>~6h>2? hJB !@<2?7*>+9#x9K*>s#r!>~6ʴ*>##Ͷ9÷7H7ڽ x+~ !>:>W!>N#yO#####~!?!?-A!"?2*|>m9x~w# *IA: ?o*IA: ?gͰ'!\Ͳ > 2mN ô'= sͷ ys!@!?3 ~">m9:B«ëͩ>.y~# ë~#üͺ_Y: ?!2?!?g+#~2:% :$2?H xA+ ~ % !>6~0>:> H45uډ">"|>p9>2'?2&?9*>ͺG20?!ʝͣÐp2'?OD9?D9yҽ:By6w#:?!4?>w2'?*|>2+?*p9ʇ!:5? !"?!͉ _Yʍ!?( :o>ʝ x > 2]:?3 U d!\Ͳ N B K}=r͎7K}w!AK}x !Au>ͮ7ͮ7ͮ7ͮ7!>~##ͮ7###!>> ͮ7##='!>~##ͮ7ͮ7#9N9>:>o&))">ɯ2> b+_0y z2> _!DͲ !D~ ¥ >?9EDJ!_#͛> > ¬êr>2D2D!"D#"D> 2/A> > >$O:?)!?~)6y ҉ r ʉ g[:?‰^͓>@OÉ:?Eùͫ>2AAÉ:?‰*AA&)">X):2?_ͫ X:4?G{C2*|>È>/*~>*p9>/*>DM2Ͱ*|>:?-**~>5:?- xʇ*?DMx,- xʇ:B6*4?DM#~r{:B64:+?W#*.?*.?#".?*D9چ*,?4͉K4*(?#"O< >!'!(>Ͳ N -2*:u>w*|>Ͱ@>-2?*~>:?-s  x~j#UQ* ?}+`i" ?7+:D9b x!AÍ!A> ͳ62>ͅ+ʓҽ ڽ0ږ Җ2>÷÷2A<2?2?!"?*|>:/A" *BDM*~>*?CD9y ![KK"D"DD9ͤ :D®D͇ *DDM=ʮ!:Df*D+:i>2D"D:ڃD9ʈ#*D#+:Q7E_ ͓‰äͧy ڤ!AA4*?gp¼p¤!?A2'?2>ͷ g!'"?!?6*?|̀9y*? ́9`i"?E d _^A6TPI.S`Ͱq#p`N`Ͱ:?-H K+:s#r`DM:?!:>͍7͙7_WRS(?7#~_XA%7D?7L7CSRUV(BJ7WM3N+ 87&787@787&7@7J7"?J7  7D9" y" ͓7D9 y=2MA, :B2MA2/A"DM !J9E q#7 ͱ$2NA$:/A >2B*WA:MAO=Gʊ y /!MAwÊ %҅*[A9"[Aq:BM&_*KAD9M&!"KAy 7M&*]Ac/M&-8͘ :MA͓7D9&:s>*aAD9:MA<2SA""','$ , *WAD9d $:TA_<͉7:B_{~w#~w#ß$*KA*BB4:$#ú$}:MA=!BÎ7$$$ $$)$I$$!0A~ :AAڤ*+!"?*?!AA~w*GA|͟6ä*͚(̓) .*]ADD9T+*WA*~>D9-]+8.r.x+$̀.x+*]A  EaA*_A*aAp9"_Aʩ"͒$*YAڦ"7é"82iA*WA!Dͷ7"YA:MA͓7+:# "WA!iA~6" "*UAD9" x9*lA "lA*))K)Å͕ !0?~0)6)*0)!B>͋*)""?))>21?">"$?:0?Ґ)21?"͟6"ͅ ʐ)_Yʐ)NRʋ)Cʃ) y y2MA"?C>2/Aé ̓"*]A*WA"|>:B29A>25A!B~<½ 5>20A ̓"P$!0A~ #2!0A~ w>2QA~ ~wͿ"Q"#!0A~w1D :B%*KAEQ7%G P&' g& g&:A<2OA2NAD' 'y':AO:By…'͗'w*~>D9++:#|3<2B>3D9:AA%":0AC%ͅO*>!;:A[%!27A@$WA"UA:MAO$~3#+ #*[A %:MA$~3##'#:MA2SA*NA&x2RAS#*BN#D!D9h# q#Z#`i"]Ay ҁ# ʄ# 77N)20?2A>20?*$?*>p9*"?4:+:DM*>ڹ)7ü)8*$?!ͷ7"|>:0?));)*|>" :2?_) )̓):0??د!EB0!0A~ ~  ͍#! 2=A!0A~6:1?E!&9E!A! 92!O2A:1?V!g!͒!E!:1?N):6Am!̈́5":0Ag!7͘ *}"Â'!:>Í7ͱ'é'':NA2NA!B::AҼ'O!:AWqc5$!B::A2;A!:A:BO!B:Bڼ'yü':B'<'!BwĄ5!>DMg6C%!p%D9yŸ%))w%@7¹%:?y³%2?!ͧ9w%DM8~6"p%:AOyO:B&&*]ADp9%:B/>:/ &$~H, ,!MA~G:Bw8,/$>+>͖.2B<͓7"?Cx2MA*SA$=$$|,$:MA!B+<2MA+$~!MA:B,5>27A!,*?C##Q7ʀ#o>|3:SA=D <#!Bҳ#G>͚3x›#:SA2TA!QA~q##28A#$$!$:0A!$#:SAO>!D$:cAO:dA*eAͳ6> ͜6'* ** *!r?ͺ*7>24?!"2?! B>͋*F*)*!SB>"C͋*!C~#ʂ*_Bj*mT*Gw*>_22?T*RT*23?>j7>x!r55%!3A:2Aگ!:B~¼!4:1A͊r5+6Ҽ!n>!SA!#!!͉33!9A!w!<23A!!#:TA!B!~G?.x:$ !g(*>#">6V!(A2?!B:A2(2AG(!A:BO:B=qX.*]AD9!D"]Ax+,'2=A$<2>͕ *}ʝ(͇Zڕ(::B&y&y6O&:B:BP&*]A~ 7P&q J&>J&."͛M&$-:B]&.*aAD9:s>>2=A$*aA#"aA*]A%"?C:MA=2MA!B:MAŸ,:B9,!1Aʙ,:B9,~9,-,͒.!NA>2NA+H,ͣ.*KAQ7oͱ$ͩ.:RA ,,͞.-,:MA!B-$~*gA2AA"BA :B!$y͚3>2AA $ͮ$ͩ.x!RAw+ ,|3:MA2cA:OA2dA*]A"eA*KA"gA; c$!s>wc5n$Y$>Z$:o>7:B7* T*:3?74*`i"?ͳ6͜6 ͅ+ **> ͣ> ͣڤ*!r?ͺä*D976*ä*ͣO*AA&p#:ByB!:NAH"'"!;A"'"ͱ':NAH" "*GA*MAD9|2HAH"D"g?"!;A?+D~l"# l" xX"/"YA"[AD4:"_A">ʚ(x98͚(( >2s>"Ä5:A¯(͇:A2A͕ ڕ($:Bʽ ( ͕ *|ʝ(կ6;!"?Ú(͕ !0?~(6)* --#,:;A=2NA,*]A~ !NA:;A=$~E->-#1-i.#( ̓"*WA*~>D9p-:BA' !"?*~>|-̓"*"AA"BA͓7<͉7s#rͱ34:?A3*@A3"42@A=!>A~7wͱ34:@A$ 3>w:>A 4>2AA*@A3" :A3:AO!:A:HA4#A+:"A11*A*AD9ң1#"A+N>2iA1*A" *]AqED91#"]A*Ap#"A*BD9!K7q#1*]A6 #6 #"]A"YA*A"WAz>9"z>`i"8BKM8xB8x9*z>9"z>x9`i"8 G8ͮ8!~>͕8!?C͕8!|>͕8!͕8!͕88*UAD9v8>2iA!> ͕8Ê/ /ڎ/"]A* *WAD9/8:B2NA$+/ڷ/Ê//8>G-*]A+/ñ/ͣ. /ڢ/$*]Ap9"]Ax+*]A+#4///!/*]A+:B6:B?6<< !A625A:BF6*lADM*nA+:F6`i"nA>6:Bp6*KADM*pA+:p6`i"pA>6!d!"nA"pA:BG":4A:B+8$!MAF:BWڬ-O:Bҫ-wBp:B<͓7|3->3Ҽ-$(,*?C:BG|,-*?CD9<,$-ͣ.*4ͪ:@A͕.2AA4!HA4 44:?A64*]AD964*BA"KA:B!AAڅ4 4 n4 ʁ446:@A=i4$~w24A7å4 > 43/4:"_A*]AD4:"aAp9!A͟$Ã"|3'!2::A>26:0AW2i23:SA[2>b2U3!2Awh5:7A2*B&:®2,8*~>s#r+##={8V9?_98*8DMͤ7!?Cͽ8!|>ͽ8!*~>V98s#r+6#6+7O8y!ANy#87+w## :/#/+:/0#/͕ ͅ0*0͕ =00++:*~>D9H0(0:H0=0#~t0^0~477#~ ]0 ]0t0^0T][. 7bk6 ͛:A ʘ6O͛636:?ȯ2/A!vB> !6A~66͟66~Oͪ#6*Bg2HA:BA !"?ý a{]A DD9!.*WA*~>D9:B2NA+?.*.+D98.>G-"]A*[A~U. R.+~# ?!D~#K7^.+̓"+>*]A~7 77?4å4G~w:@AG=4$:BF>¡4>w:@A4!B͎7:AAw:>A4:?A4 4:=A4*GAz!;A4+42JAѯ2>A0:@AO 5:0A0ª2:4Aª2>29A:B͉33:B29Aí2 S3!2A~2=2G~͉0+À0K7 !B:A͕ *0~~47¸0:#å0=0"Aͅ0#"AD9ҷ0"A1:#*AD90!114:}&1/g._ 7 O7877A{87a=7[=7ɿ0:87 #|+=7}!A#]7~/o&)DM!BFv7/~# ʎ. ~ ~ :MA=!B͎7~>å.>2PA2OAG!PA~6..r..:A45!AA4#4#4*BAEQ75!BAw+w:HA!AAO5/G:AOO5C5!:A:HA^5#ڛ!HA4j5:5A25A!5A~65:!S3:B29A>͉33!:hM2h5:B29A:SAU3:8A@3C3!3:8A!2>!4A63͉321A!>A63͐3y32?*A"A:A*Al"AG'71 Ͳ1+1AT1 Ͳ1:1>2? q+~o1͎1y 7F1K7k1:?T12?Ͳ1T1*]A+c/T1* xq7!?C=o$!?C͌7~#fox9yw#xw+V9ܤ7##/7Ͷ97ú7/7977>G0xGxͻ 7D9*'!OA:NA*]A+4/ /+://#*]A+#:/"/+#4/*/~ 77~&7&7=7>,2/+~#@72/#~+@72/T]+~#K7|/ /X.D9?p9626Aq6:s>ʜ5!A6ê5::Aʪ5OG}5!A>6:B5!rA> 6:B5!}A>6:o>6:B?6!A>"6!)> 7> /+ :#// +#~7&::/}o|g}o|g# x=:m~UPRINTING TO ABORT FILE IS R/O - OUTPUT FILE NOT OPENEDISK IN USE BY MP/WAITING FOR PRINTER, TO ABORT BAD P&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/+-+,,9+',-'+&,(8(K,p%-'(/--'c,&&&00--,9+]+++//('% Copy &&&&/g(&((o'M-(0&+f(&0+(% )a'&&/00&v-&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&00--,9+]+++//('%'''p%8('(( )0+g(f(((a'o'0(( ( CANNOT FIND: OPTIONS (Begin / Global / Reuse)? PLEASE WAIoCW %jy&xARAMETEPHONE HOMVHELP TXT FILE (Y/N)? RV LEPENONPUT FINO TPU FILANNOT OPEN TWBAD LINE: COL&&]+&&&&&$$$&&&r&&&&&&&NO DIRECTORY SPACNO DISK SPACCLOSE ERROREAD ERRONEW FIL[CR]: -BAK&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&T FOR DISK(;@L ONF;:;=BAAABBBBKDC;<&&&%M-v-++--,,,,-,K,c,''//: FILE: RL-C> TO ABO !)19AIQYaiqy-[]|_ - Ҡ۫ݠҠ " " INVALID COMMANNESTING ERROMACRO ERRO*BREAK QUIT (Y/N)? INSERT NEW DISK AND TYPE [RETURN] OK TO ERASE THESE FILES &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,/+-+,,9+',-'+&,'(8(K,p%-'(/--'c,&&&00--,9+]+++//('% Copyright (C) 1984 CompuView Products, Inc. Welcome to VEDIT egin / Global / Reuse)? PLEASE WAI&&&&&&&&&&&&&&&&&& (&&&&&&&&(&&ҠFIND? REPLACE WITH? REPLACE (Y / N / Rest / Cancel)? CANNOT FIND: OPTIONS (Begin / Global / Reuse)? PLEASE WAI(Y/N)? OK TO OVERWRITE EXISTING FILE (Y/N)? REV FILE OPENO INPUT FILNO OUTPUT FILCANNOT OPEN TWBAD FILE NAMFILE NOT FOUN&&]+&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$R$&&&&&&&&&&&&&&&&&&T FOR DISKCopyright (C) 1979,1984 by Theodore Green.10/22/84VEDIT INIBBKDC;<&&&%M-v-++--,,,,-,K,c,''//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/g(&((o'M-(0&+f(&0+(% )a'&&/00&v-&&&T FOR DISK(;@L ONF;:;=BAAABBBBKDC;<&&&%M-v-++--,,,,-,K,c,''// XY  C@:6͡ :7= YT 0R0@:6͡ :7[;H 0  M ~ ʸ A:4Y kK :6͡ :7RQ R~ ʸ A:4[;H ~ ʸ A:4=  ~ ʸ A:4C,   :6͡ :7Y kKMl MbB~ ʸ A:4   :6͡ :7[;H   :6͡ :7= YTE R EGG:6͡ :7  DE~ ʸ A:4Y  kK 0P0@:6͡ :7Y JK I~ ʸ A:4F JKLMf LdPd@~ ʸ A:4= +ER Ejk~ ʸ A:4= YTER EZ&Z :6͡ :7Y  kK 0P0@~ ʸ A:4[;H 0  M =>:6͡ :7 ~ ʸ A:4= YT jk:6͡ :7 ~~~~~ ~~~~ ʸ A:4[H :6͡ :7Y kK :6͡ :7=  ʸ A:4Y JI :6͡ :7=    ʸ A:4Y JKLM Lpqx1wy1vx7y7:6͡ :7=  ~ ʸ A:4  ~ ʸ A:4Y JKLM L:6͡ :7Y LI 33~ ʸ A:4=  Y TER E:6͡ :7&ayCJKLM L&dB&d@~ ʸ A:4=   :6͡ :7=+YTER EJK:6͡ :7= YTER Ejk ʸ A:4f JK :6͡ :7Y ~k~K ʸ A:4&arCJKLM L&dB&d@:6͡ :7X Y KJI2LZMZ LZ ʸ A:4= YTER jbd~ ʸ A:4= YTER EG4G0:6͡ :7Y  K ~ ʸ A:4  :6͡ :7a  Dd~ ʸ A:4XY K(I :6͡ :7 Y EJKLM Ipq ʸ A:4r* Send out a form-feed to the printer r* @yt/ / r* r* Thats the end = +YTERvwG4G0:6͡ :7umber are printed r* @yt/FILE: / :yw @yt/ PAGE/ xt1 r* Next print 2 more blank line[;H 0  :6͡ :7=   ʸ A:4s r* @yt/ / r* Now print 58 lines of text r* Note: A "EO" command would not work, since it would disable the "yl" r* 5Y JKLM Lpqx6y6 ʸ A:4BASIC COMMANDS nA Append 'n' lines from the input file (0A) -nA Read 'n' lines back from output file (-0A) B Move the ed :6͡ :78t r* The command "58L" will break out of the iteration if the end of the r* file is reached r* 58l r* Otherwise print four   :6͡ :7r* The "b" alows printing to start from the beginning b r* The "yl" reroutes output to the printer r* The "1xs1" sets value rit pointer to text beginning (_B) mC Move the edit pointer by 'm' positions mD Delete 'm' characters from the text nFstring= YTER E more blank lines to start a new page r* Increment the page counter r* @yt/ / xa1 r* End the iteration loop r* ] aRC+YTER jG4G0 ʸ A:4egister 1 used as a page counter to 1 r* First 1 blank line is printed r* yl 1xs1 [@yt/ / r* Then the file name and page n  Search for 'n'th occurrence of 'string' Gr Insert the contents of text register 'r' H Display Help file VHELP.TXT. (-uence of spaces or tabs |X Any character || Use "||" when you need to search for a "|"  EXTENDED COMMANDS EA Restart "all occurrences of".  SEARCH PATTERN MATCHING CODES |A Alphabetic letter, i.e. 'A' - 'Z' and 'a' - 'z' |B Single blank otype (0, 1 or 2) 2 Cursor blink rate (10 - 100) 3 Indent Increment (1 - 20) 4 Lower case convert (0, 1 or 2) 5 Cond$R$ file. (-0W) Z Move edit pointer to end of text. (_Z)  SPECIAL CHARACTERS Literal Character. Next char. is  'file' with line numbers mEO Send 'm' lines to the line printer. (0EO) EQ Quit the current edit session, return to Op. SysH) Itext Insert the 'text' into the text buffer mK Kill 'm' lines mL Move the edit pointer by 'm' lines Mr Execute tthe editor. (EX and EB) EBfile Open 'file' for Read & Write, perform an auto-read EC Change disks for reading or write errorr tab |C Control character |D Decimal digit |L Line terminator - Line Feed, Form Feed or EOF |M Multi - match any sequence zitional convert character (32 - 126) 6 Display line and column number (0, 1, 2 or 3) 7 Word Wrap column (0 = Off) (0 - 255)taken literally. @ Precedes F, I, N, S commands to indicate explicit delimiter : Precedes F, N, S commands to suppress sea ERfile Open the file 'file' for input ET Set new tab positions EV Display VEDIT version number EWfile Open the file 'fiext register 'r' as a command macro nNstring Search for 'n'th occurrence of 'string' in file mPr Put 'm' lines of text i recovery ED Display disk directory. Opt. drive spec. and "?" EF Close the current output file EGfile[line range] Insert tero, one or more characters |N Match any except following character (or another | expression) |R Alphanumeric - a letter or a  8 Bit 7 Allowed (1/input 3/Output) (0 - 7) 9 Cursor positioning option (0 - 1) 10 Horizontal scroll margin (40 - 255) 11 rch error message. Precedes XT, YR and YW commands to suppress CRLF _ Precedes F, S commands to perform search to end of file' for output. Create Backup EX Normal exit back to CP/M after writing output file EY Save file and disk, prepare to edit nto text register 'r' Ss1s2 Search for and change 's1' to 's2' mT Type 'm' lines U Print # of unused, used and tehe specified line number range of 'file' into the text buffer at the edit position nEI Insert the character whose decimal vdigit |S Separator - not a letter or digit |U Upper case letter |V Lower case letter |W White space - single or multiple seqHorizontal scroll increment (1 - 100) ES n m Change the value of switch 'n' to 'm' 1 Expand Tab with spaces (0=NO 1=le Precedes B, L, Z to perform global file operation # Represents maximum positive number 32767. Signifies "forever" or another file EZ Quit the current edit session, remain in VEDIT  EP n m Change the value of parameter 'n' to 'm' 1 Cursor xt register bytes V Go into visual mode nW Write 'n' lines to the output file. (0W) -nW Write lines from end of file to ".alue is 'n' EKfile Erase (kill) the file 'file' from the disk ELfile[line range] Display the specified line number range of  YES) 2 Auto buffering in visual mode (0=NO 1=YES 2=BACK) 3 Start in visual mode (0=NO 1=YES) 4 Point past text reg. insertGRAPH] ESC - W [NEXT PARAGRAPH] ESC - X [PAGE UP] [CTRL-W] [PAGE DOWN] [CTRL-X]  [SCREEN TOGGLE] [CTRL-N] [BACKSPACE] of register 'r' on console. RU Display size of each text register.  DEFAULT KEYBOARD LAYOUT [HOME] ESC - H [ZEND] | | | | | | -------------------------------------------------------------------------- | Q | Wutput file name VALUE REGISTER COMMANDS nXAr Add 'n' to value in register 'r' nXSr Set value of register 'r' to 'n' ESC - I [PRINT TEXT] ESC - P [SET TEXT MARKER] ESC - S [GOTO TEXT MARKER] ESC - G [FORMAT PARAGRAPH] ESC - J [VISUAL ESCA (0=NO 1=YES) 5 Ignore UC/LC search distinction (0=NO 1=YES) 6 Clear screen on visual exit (0=NO 1=YES) 7 Reverse Upper an [CTRL-H] [DELETE] [DEL] [ERASE TO END OF LINE] [CTRL-L] [ERASE LINE] ESC - L [DEL PREVIOUS WORD] ESC - V [DEL NEXT WORD ESC - Z [CURSOR UP] [CTRL-E] [CURSOR DOWN] [CTRL-C] [CURSOR RIGHT] [CTRL-D] [CURSOR LEFT] [CTRL-S] [BACK TAB] [CTRL-A | E | R | T | Y | U | I | O | P | | | | | | | | | |  XTr Type (decimal) value of 'r'  TEXT REGISTER COMMANDS R* Treat following line as a comment RDr Dump contents oPE] ESC - ESC [VISUAL EXIT] ESC - E [RESTART EDITOR] ESC - [CTRL-R] d Lower case (0=NO 1=YES) 8 Suppress search errors (0=NO 1=YES) 9 Explicit string terminators (0=NO 1=YES)  EXTENDED "X] ESC - B [UNDO] [CTRL-U] [TAB CHARACTER] [CTRL-I] [NEXT CHAR LITERAL] ESC - Q [SET INSERT MODE] NOT USED [RESET INSERT] [TAB CURSOR] [CTRL-F] [ZIP] [CTRL-G] [NEXT LINE] [CTRL-J] [LINE TOGGLE] NOT USED [SCROLL UP] [CTRL-Q] [SCROLL DOWN| | | | | | | | | | | | | ---------------------------------------f register 'r' on console. RIrtext Insert text into register 'r'. RLrfile Load register 'r' from file 'file'. RPr ----------------------------------------------------------------------- | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8" and "Y" COMMANDS YI Route following console output to text buffer YL Route following console output to printer YR  MODE] NOT USED [SWITCH INSERT MODE] [CTRL-K] [REPEAT] [CTRL-R] [INDENT] [CTRL-P] [UNDENT] [CTRL-O]  [FIND] ESC - F ] [CTRL-Z] [SCROLL RIGHT] [CTRL-Y] [SCROLL LEFT] [CTRL-T] [PREVIOUS WORD] [CTRL-V] [NEXT WORD] [CTRL-B] [PREVIOUS PARA-------------------------------- | A | S | D | F | G | H | J | K | L | | | |  Send contents of register 'r' to line printer RSrfile Save contents of register 'r' in file 'file'. RTr Type contents  | 9 | 0 | | | | | | | | | | | | | | | | | Type the "read" input file name mYS Strip 'm' lines of Bit 7 YTtext Type 'text' on console YW Type the "write" o [REPLACE] ESC - R [CANCEL] ESC - O [COPY TO TEXT REGISTER] ESC - C [MOVE TO TEXT REGISTER] ESC - M [INSERT TEXT REGISTER]  | | | | | | | | | | | | | | | | | ---- ---------------------------------------------------------------- ---------------------------------------------------------- | A | S | D | F | G | H | J | K | L | | BACK |<---- | ---->| TAB | ZIP | BACK | NE | MOVE | | | | | PARA | TEXT | PREV | NEXT | | TEXT | | | ---------------------- | | | | | | | | | | | | | | | | | |  | TEXT | (OUT)| | ----------------------------------------------------------------------- | A | S | -------------------------------------------------------------- | Z | X | C | V | B | N | M | < |----------------- | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | | | | | |XT |INSERT| EREOL| | TAB | | |CURSOR| |SPACE | LINE | MODE | | -------------------------------------------------------------------------- | | -------------------------------------------------------------------------- | Q | W | E | R | T | YD | F | G | H | J | K | L | | | SET | | FIND | GOTO | HOME |FORMAT| | ERASE| |  > | | | | | | | | | | | | | | | | |  | | | | | | | | | | | | | | | | ---------------------------------------------------- | Z | X | C | V | B | N | M | < | > | |SCROLL| PAGECKSUM ERROR" appears, type the RETURN key to ignore the error. Choose Task 8 (return to operating system) to  | U | I | O | P | |SCROLL| PAGE | | |REPEAT|SCROLL|SCROLL| UNDO | TAB |UNDENT|INDENT| | DOWN | UP | | MARK | | | MARK | | PARA | | LINE | ------------------------------------------------------------ | | | | ---------------------------------------------------------------- ---------------------------------------------------------------------------------- | Q | W | E | R | T | Y | U | I | O | PE | | | PREV | NEXT |SCREEN| CR | | | | UP | DOWN | V | WORD | WORD |TOGGLE| | | | immediately exit the customization program. This will have created the file "NEWZC.COM" which does not conta | | | LEFT |RIGHT | | | | | ------------------------------------------------------------------------- | Z | X | C | V | B | N | M | < | > | | ZEND | NEXT | COPY | DEL | DEL | --------------------------------------------- | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | | | | LIT | PREV | EXIT |REPLAC| | | |INSERT|CANCEL|PRINT | | CHAR | PARA | | | | |  ;**************************************** ;* * ;* V E D I T * ;* * ;***************************** 01B3 F2BB01 JP OUTCH1 ;Yes, change to normal video. ; 01B6 CD0303 CALL CRTVDR ;Enable reverse video on CRT. 01B9 18A6 201A JRNZ OUTCH3 ;Yes, send unmodified character ; ; If Bit 7 is set, use reverse video control sequences ; 0o, return. 01DC 3600 MVI M,00 ;Yes, reset count. 01DE C31A04 JMP CHKKEY ;Poll and buffer any keyboard char. ; ; . ; Ann Arbor, MI 48103 ; ; Written by: Theodore J. Green ; ; Last Change: Ted - Aug. 28, 1984 ; ; ;Save DE 01CB CD5205 CALL CONOUT ;Send char. in reg. C to CRT 01CE CD1904 CALL CHKKYB ;Poll for keyboard char. 01D1 D1*********** ; ; Copyright (C) 1984 by CompuView Products, Inc. ; 1955 Pauline Blvd. ; Ann Arbor, MI 48103 03 JMPR OUTCH2 ;Now send the character out. ; 01BB CD0903 OUTCH1: CALL CRTVDN ;Enable normal video on CRT. ; 01BE1A8 79 OUTCHS: MOV A,C ;Get the character. 01A9 E680 ANI 80H ;Look at top bit of char. 01AB 216D3E LXI H,REVVFL ;HL-> rCRTSET - Address the cursor. ; Enter with L = vertical row #. Top row = 1. ; H = horizontal column #. Left colum OUTCHR - Output character in Reg. C. ; Return: B, DE restored, HL destroyed. ; 019B VISCHR: 019B 79 OUTCHR: M POP D ;Restore 01D2 C1 POP B ;Restore count in B 01D3 C9 RET ; ; CRTCKK - Polls and buffers any keyboard char ; ; Written By: Theodore Green ; ; Last Change: Ted - Nov. 18, 1984 ; ; ;***************************** 79 OUTCH2: MOV A,C ;Get the character back. 01BF E67F ANI 7FH ;Strip any high bit. 01C1 4F MOV C,A ;Put character in everse video flag (80H if on) 01AE BE CMP M ;Is high bit same as reverse video flag? 01AF 280D JRZ OUTCH2 ;Yes, it will n = 0. ; 01E1 C5 CRTSET: PUSH B ;Save char. in C. 01E2 D5 PUSH D 01E3 22703E SHLD CRTVER ;Save as simulated cursorOV A,C ;Get char. in A. 019C 4F OUTCHA: MOV C,A ;Save char in C 019D FE80 CPI 080H ;Is Bit 7 set? 019F 3807 JRC OUTCHacter after ; every 30 bytes are sent to CRT. ; 01D4 21C13E CRTCKK: LXI H,CCOUNT ;HL-> slow poll counter 01D7 34 *************************** ;* * ;* CRT Terminal Dependent Routines and Tables * ;* * ;*************C. ; 01C2 CDD401 OUTCH3: CALL CRTCKK ;Poll for keyboard char. every 30th. 01C5 216F3E LXI H,VRTHOR ;HL-> virtual CRT pbe displayed correctly. ; 01B1 77 MOV M,A ;No, set new value of REVVFL 01B2 B7 ORA A ;Is character in normal video?  pos. 01E6 7D MOV A,L ;Get row # 01E7 326E3E STA VRTVER ;Save as virtual row # 01EA EB XCHG ;Save pos. in DE. 01EBS ;No, process normally 01A1 3AC23F LDA BIT7AL ;Get EP parameter value 01A4 E602 ANI 2 ;Is Bit 7 allowed on output? 01 INR M ;Increment counter. 01D8 7E MOV A,M ;Get the count. 01D9 FE1E CPI 30 ;Reached critical point? 01DB D8 RC ;N******************************************* ; ; Copyright (C) 1984 by CompuView Products, Inc. ; 1955 Pauline Blvdos. 01C8 34 INR M ;Account for CRT moving cursor to the right. 01C9 C5 OUTSAV: PUSH B ;Save count in B 01CA D5 PUSH D   1D DCR E ;Adjust so that top left is 0,0. 01EC 212703 LXI H,ADDLED ;HL-> cursor lead in table. 01EF CD4A02 CALL CRTCRL. ; 0223 79 MOV A,C ;Yes, get address in A. 0224 013130 LXI B,03031H ;Get B = '0' is blanking flag, C = '1'. s to end sequence. 0217 D1 POP D 0218 C1 POP B ;Restore char in C. 0219 C9 RET ; ; WRTADD - Send the cursor adblanked) ; ; CRTCRL - Send escape sequence to CRT and perform any necessary delay. ; Enter: HL-> escape sequence Send address to CRT, convert if necessary. 0204 212E03 LXI H,ADDMID ;HL-> middle char. table. 0207 CD4A02 CALL CRTCRL ;Selow ; 023A C63A ADI '0'+10 ;Restore from underflow and make Ascii 023C 0D DCR C ;Restore from underflow 023D F5 P ;Send cursor address lead in. 01F2 213C03 LXI H,ADDOFF ;HL-> cursor address info. 01F5 7E MOV A,M ;Get column or line f;If your CRT needs leading zeroes, let B = 2F hex. 0227 FE64 CPI 100 ;Is pos. > 99? 0229 3808 JRC WRTAD1 ;No, branch arodress in Reg. A to CRT and convert ; to Ascii if necessary. HL and BC clobbered. ; ;{CRTSET} 021A 4F WRTADtable, consisting of escape ; sequence count byte, followed by the bytes making up the ; sequence, followed by anynd any chars between first and second byte. 020A E1 POP H ;Restore HL. 020B 23 INX H ;HL-> second byte offset. 020C 7A USHA ;Save Ones digit 023E 79 MOV A,C ;Get the tens digit 023F B8 CMP B ;Is tens count zero, and to be blanked? 0240 irst switch. 01F6 E601 ANI 1 ;Is the line # sent first? 01F8 2803 JRZ CRTSE1 ;Yes, D & E are set. 01FA 7A MOV A,D ;Nund 022B D664 SUI 100 ;Yes, subtract the 100 022D 05 DCR B ;Clear the blanking flag 022E F5 PUSHA ;Save count 022FD: MOV C,A ;Save char. in C. 021B 213C03 LXI H,ADDOFF ;HL-> cursor address info. 021E 7E MOV A,M ;Get Binary or Ascii ad delay in milliseconds. ; 024A 7E CRTCRL: MOV A,M ;Get the char. count. 024B B7 ORA A ;Test for initial zero. 024C C MOV A,D ;Get second addr. coordinate. 020D 86 ADD M ;Add the offset. 020E CD1A02 CALL WRTADD ;Send address to CRT, co2803 JRZ WRTAD4 ;Yes, don't send zero to CRT 0242 CDC901 CALL OUTSAV ;Send the tens count to CRT ; 0245 F1 WRTAD4: o, switch D & E. 01FB 53 MOV D,E 01FC 5F MOV E,A 01FD 23 CRTSE1: INX H ;HL-> first byte offset. 01FE 7B MOV A,E ;Ge CDC901 CALL OUTSAV ;Send the '1' 0232 F1 POPA ;Restore count ; 0233 0E30 WRTAD1: MVI C,'0' ;Init tens counter todress switch. 021F E680 ANI 80H ;Is address to be converted to Ascii? 0221 28A6 JRZ OUTSAV ;No, send address in C to CRT8 RZ ;Yes, return now. 024D C5 PUSH B ;Save BC 024E 47 MOV B,A ;Put the count in B. 024F 23 CRTCR1: INX H ;HL-> envert if necessary. ; 0211 213503 LXI H,ADDEND ;HL-> cursor address end table. 0214 CD4A02 CALL CRTCRL ;Send any charPOPA ;Restore Ones digit 0246 4F MOV C,A ;Put digit in C 0247 C3C901 JMP OUTSAV ;Send the digit to the CRT. (Zero not t first addr. coordinate. 01FF 86 ADD M ;Add the offset. 0200 E5 PUSH H ;Save HL-> ADDOFF. 0201 CD1A02 CALL WRTADD ; '0' 0235 0C WRTAD2: INR C ;Tens = tens + 1 0236 D60A SUI 10 ;Subtract ten 0238 30FB JRNC WRTAD2 ;Branch until underf scape char. 0250 4E MOV C,M ;Get the next char 0251 E5 PUSH H ;Save PTR 0252 CD1904 CALL CHKKYB ;Poll keyboard 0255282 30F3 JRNC CLRCUR ;Yes, return. 0284 3C INR A ;No, get line # of first line to clear. 0285 6F MOV L,A ;Get line # LXI H,ESCCLR ;HL-> escape char. table 0270 CD4A02 CALL CRTCRL ;Perform the clear 0273 AF XRA A ;Get a zero 0274 32603E r set. ; 02A6 3C INR A ;A = original line # for EOS. 02A7 F5 PUSH PSW ;Save line # for EOS. 02A8 7E MOV A,M ;No,ine is emulating a terminal. In ; this case it is more efficient to not perform a clear. Instead, ; an EOL will bRT have EOS sequence? 0297 78 MOV A,B ;Get back line # for performing EOS. 0298 2805 JRZ CTEOS1 ;No, simulate EOS with m CDC901 CALL OUTSAV ;Send to CRT 0258 E1 POP H ;HL-> next char 0259 10F4 DJNZ CRTCR1 ;Continue sending bytes. 025B Cfor begin of EOS. 0286 2600 MVI H,00 ;Start at left margin. 0288 CDE101 CALL CRTSET ;Address the cursor. ;Erase  STA USEDLN ;No lines are in use 0277 210000 CLRCUR: LXI H,0000 ;Get two zeros 027A 226E3E SHLD VRTVER ;Force CRT curso get last used line #. 02A9 6F MOV L,A ;Set to line to be erased. 02AA 2600 MVI H,00 ;Set to column zero. 02AC CDE101 e sent as each new screen line is written. ; 0263 3A3F03 CLRSCR: LDA ESCCLR ;Get count for Clear sequence 0266 B7 ORA ultiple EOLs. 029A 32603E STA USEDLN ;Yes, update # used lines. 029D 18AB JMPR CRTCRL ;Perform the screen clear. ; 1 POP B ;Restore BC 025C 23 INX H ;HL-> delay byte 025D 7E MOV A,M ;Get the delay in milliseconds 025E B7 ORA A ;rest of the screen. ; ; CRTEOS - Clear to end of Screen from cursor position. ; 028B CDBA32 CRTEOS: CALL STBRFL ;r set 027D C9 RET ; ; ; CLRSC2 - Clear rest of screen from begin of next line # in Reg. A. ; ;{UPDSCR CALL CRTSET ;Position the cursor. 02AF CDB902 CALL CRTEOL ;Erase the line. 02B2 21603E LXI H,USEDLN ;HL-> # screen lineA ;Is this function available? 0267 F8 RM ;80H means emulation is taking place 0268 2814 JRZ CLRSC2 ;Use EOS if Clear  ; Simulate an EOS using multiple EOLs. ; 029F 3D CTEOS1: DCR A ;Adjust for CMP below. 02A0 21603E LXI H,USEDLN ;HL-Is there a delay? 025F C8 RZ ;No, return now 0260 C39334 JMP DELAY ;Yes, do a delay ; ; ; Clear Screen RoutSet flag to write new status line 028E 3A703E LDA CRTVER ;Get line # from which to clear. 0291 47 MOV B,A ;Save number. } 027E 21603E CLRSC2: LXI H,USEDLN ;HL-> # screen lines not clear. 0281 BE CMP M ;Is screen below last used line clear? 0s not clear. 02B5 35 DCR M ;Account for line just erased. 02B6 F1 POP PSW ;Restore last used line #. 02B7 18E6 JMPR Cscreen is not available ;Note that A = 00 026A CDBA32 CALL STBRFL ;Set flag to write new status line 026D 213F03 > # screen lines not clear. 02A3 BE CMP M ;Is screen below LINCNT clear? 02A4 30D1 JRNC CLRCUR ;Yes, return, force cursoines. ; ; CLRSCR - Clear entire screen. First try to use Clear Screen sequence. ; A count of 080H means the mach 0292 214603 LXI H,ESCEOS ;HL-> escape char. table. 0295 7E MOV A,M ;Get count for EOS sequence. 0296 B7 ORA A ;Does C TEOS1 ;Continue. ; ; CRTEOL - Clear to end of Line from cursor position. ; 02B9 21703E CRTEOL: LXI H,CRTVER ;Get char. table. 02EE C34A02 JMP CRTCRL ;Insert a line. ; 02F1 215B03 CRTDEL: LXI H,ESCDEL ;HL-> escape char. table. 02F4verse video CRT mode is off. ; ;{WRTLIN} 02E1 216D3E REVOFF: LXI H,REVVFL ;HL-> reverse video flag 02E4 7E MOV diting. ; 031B 218C03 CRTENT: LXI H,ESCENT ;HL-> escape char. table. 031E C34A02 JMP CRTCRL ;Setup CRT on Visual mode . 02CC 21713E LXI H,CRTHOR ;HL-> horiz. cursor pos. 02CF 96 SUB M ;Compute # pos. to clear. 02D0 47 MOV B,A ;Put counverse video mode. ; 0309 217703 CRTVDN: LXI H,ESCVDN ;HL-> escape char. table. 030C C34A02 JMP CRTCRL ;Disable reversecurrent cursor line #. 02BC 3A603E LDA USEDLN ;Get # screen lines used. 02BF BE CMP M ;Is rest of current line clear? 0 C34A02 JMP CRTCRL ;Delete a line. ; ; CRTFSL, CRTBSL - Perform forward and backward scroll on CRT. ; 02F7 21620A,M ;Get flag 02E5 B7 ORA A ;Is the reverse video flag set? 02E6 C8 RZ ;No, return. 02E7 3600 MVI M,00 ;Yes, clearentry. ; 0321 219303 CRTEXT: LXI H,ESCEXT ;HL-> escape char. table. 0324 C34A02 JMP CRTCRL ;Reset CRT on visual mode et in B. 02D1 0E20 MVI C,20H ;Clear with spaces. 02D3 2806 CREOL1: JRZ CREOL2 ;Branch when count is zero. 02D5 CDC901 C video mode. ; ; CRTSTE, CRTSTD - Enable and disable the 25th status line. ; 030F 217E03 CRTSTE: LXI H,ESCSTE ;HL-2C0 D8 RC ;Yes, return. ;{WTSLFW} 02C1 214D03 CREOL0: LXI H,ESCEOL ;HL-> escape char. table. 02C4 7E MOV A,M ;3 CRTFSL: LXI H,ESCFSL ;HL-> escape char. table. 02FA C34A02 JMP CRTCRL ;Scroll forward. ; 02FD 216903 CRTBSL: LXI H, flag. 02E9 181E JMPR CRTVDN ;;Turn reverse video off. ; ; ; CRTINS, CRTDEL - Insert and delete a line on the CRxit. ; ; ; These are the terminal dependent Escape sequence tables. ; They are set during customization by selecALL OUTSAV ;Send a space to the CRT. 02D8 05 DCR B ;Decrement count. 02D9 18F8 JMPR CREOL1 ;Continue. ; 02DB 2A703> escape char. table. 0312 C34A02 JMP CRTCRL ;Enable status line. ; 0315 218503 CRTSTD: LXI H,ESCSTD ;HL-> escape charGet count for EOL sequence. 02C5 B7 ORA A ;Does CRT have EOL sequence? 02C6 C24A02 JNZ CRTCRL ;Yes, perform the line cleESCBSL ;HL-> escape char. table. 0300 C34A02 JMP CRTCRL ;Scroll backward. ; ; CRTVDR, CRTVDN - Enable and disable reT. ; Note: Some CRTs need to be a special mode for Insert and Delete. ; 02EB 215403 CRTINS: LXI H,ESCINS ;HL-> escape ting a CRT in the menu. ; ; ADDLED, ADDMID and ADDEND are for Cursor Addressing. ; 0327 02 ADDLED: DB 2 ;Count foE CREOL2: LHLD CRTVER ;Get desired cursor pos. 02DE C3E101 JMP CRTSET ;Reset the cursor. ; ; REVOFF - Make sure re. table. 0318 C34A02 JMP CRTCRL ;Disable status line. ; ; CRTENT, CRTEXT - Setup and Reset the CRT for Visual mode ear. ; ; Simulate EOL by sending out spaces to end of line. ; 02C9 3AD63F LDA LINELN ;No, get display line lengthverse video characters. ; 0303 217003 CRTVDR: LXI H,ESCVDR ;HL-> escape char. table. 0306 C34A02 JMP CRTCRL ;Enable re r Cursor Lead In. 0328 1B DB 01BH ;First byte of sequence. 0329 59 DB 059H ;Second byte. 032A 00000000 DB 00,00,00,00 nce. 035C 1B DB 01BH 035D 4D DB 04DH 035E 00000000 DB 00,00,00,00 ;Spare bytes. ; 0362 01 ESCFSL: DB 01 ;Count fo0 DB 00,00,00,00 ;Spare bytes. ; 0346 02 ESCEOS: DB 2 ;Count for EOS sequence. 0347 1B DB 01BH 0348 4A DB 04AH 0300 DB 00,00,00,00 ;Spare bytes. ; 0393 00 ESCEXT: DB 00 ;Count for EXIT VISUAL MODE sequence. 0394 00 DB 00H 0395 00s sent first, and the offset to add to the ; row and column addresses. ; 033C 00 ADDOFF: DB 0 ;Bit 0 : 0 = ROW firuence. 0378 F2 DB 0F2H 0379 00 DB 00H 037A 00000000 DB 00,00,00,00 ;Spare bytes. ; 037E 00 ESCSTE: DB 00 ;Count f;Spare bytes. ; 032E 00 ADDMID: DB 0 ;Count for chars between X & Y. 032F 00 DB 00 ;Note: some require a "," between r FORWARD SCROLL sequence. 0363 0A DB 0AH 0364 00 DB 00H 0365 00000000 DB 00,00,00,00 ;Spare bytes. ; 0369 02 ESCB49 00000000 DB 00,00,00,00 ;Spare bytes. ; 034D 02 ESCEOL: DB 2 ;Count for EOL sequence. 034E 1B DB 01BH 034F 4B D DB 00H 0396 00000000 DB 00,00,00,00 ;Spare bytes. ; ; 039A DS 40H ;User Patch space. ; ; ; These st then COLUMN ; 1 = COLUMN first then ROW ;Bit 7 : 0 = Address in Binary ; 1 = Address in Ascii 033Dor ENABLE STATUS LINE sequence. 037F 00 DB 00H 0380 00 DB 00H 0381 00000000 DB 00,00,00,00 ;Spare bytes. ; 0385 00 the X & Y. 0330 00 DB 00 0331 00000000 DB 00,00,00,00 ;Spare bytes. ; 0335 00 ADDEND: DB 0 ;Count for terminate charSL: DB 2 ;Count for BACKWARD SCROLL sequence. 036A 1B DB 01BH ;The "Insert Line" should work too. 036B 4C DB 04CH 036C B 04BH 0350 00000000 DB 00,00,00,00 ;Spare bytes. ; 0354 02 ESCINS: DB 2 ;Count for INSERT LINE sequence. 0355 1B DBare the alternate Console I/O entry points when direct ; I/O calls in MP/M are used. Note that although BDOS CALL 6 ; i 20 DB 020H ;First offset 033E 20 DB 020H ;Second offset. ; ; Escape sequence table for other functions. ; 0 ESCSTD: DB 00 ;Count for DISABLE STATUS LINE sequence. 0386 00 DB 00H 0387 00 DB 00H 0388 00000000 DB 00,00,00,00 ;Spas. 0336 00 DB 00 0337 00 DB 00 0338 00000000 DB 00,00,00,00 ;Spare bytes. ; ; ADDOFF - Table for Cursor addressi00000000 DB 00,00,00,00 ;Spare bytes. ; 0370 01 ESCVDR: DB 01 ;Count for BEGIN REVERSE VIDEO sequence. 0371 F2 DB 0F2 01BH 0356 4C DB 04CH 0357 00000000 DB 00,00,00,00 ;Spare bytes. ; 035B 02 ESCDEL: DB 2 ;Count for DELETE line seques used, these routines only work for MP/M since CP/M 2.2 and ; MP/M are quite different in this regard. Enough patch space 33F 00 ESCCLR: DB 00 ;Count for CLEAR sequence. 0340 00 DB 00H ;First byte. 0341 00 DB 00H ;Second byte. 0342 0000000re bytes. ; 038C 00 ESCENT: DB 00 ;Count for ENTER VISUAL MODE sequence. 038D 00 DB 00H 038E 00 DB 00H 038F 000000ng information. Specifies whether ; the address is sent in binary or Ascii and whether the row ; or column byte iH 0372 00 DB 00H 0373 00000000 DB 00,00,00,00 ;Spare bytes. ; 0377 01 ESCVDN: DB 01 ;Count for END REVERSE VIDEO seq  ; is provided for conversion to CP/M 2.2, or for special user ; interfacing. ; ; SETIO - Set up internal copy of ; ; Internal copy of BIOS I/O jump vectors. ; 054C C30000 CONST: JMP 00 ;Console status. 054F C30000 CONINA: JMP es console input. 0529 C30500 JMP BDOS ;Get console char. when available. 052C DS 12 ;Patch space. ; 0538 59 MPMO ;**************************************** ;* * ;* V E D I T * ;* * ;******************************* ; 050C C31805 MPMTBL: JMP MPMST ;This table is copied to the BIOS jump 050F C32505 JMP MPMIN ;vectors below for the inary or Ascii address switch. 0224 E680 ANI 80H ;Is address to be converted to Ascii? 0226 CACD01 JRZ OUTSAV ;No, send  Console I/O vectors. ; Normally use BIOS, unless MPM - then use BDOS #6 ; 04F8 CDB80A SETIO: CALL MPMCHK ;;Is MP/M00 ;Get console character. 0552 C30000 CONOUT: JMP 00 ;Send console character. 0555 C30000 LSTOUT: JMP 00 ;Send listing cUT: MOV E,C ;Put the character in E. 0539 0E06 MVI C,CONSIO ;Perform direct console I/O. 053B C30500 JMP BDOS ;Send char********* ; ; Copyright (C) 1984 by CompuView Products, Inc. ; 1955 Pauline Blvd. ; Ann Arbor, MI 48103 MPM version. 0512 C33805 JMP MPMOUT 0515 C34205 JMP MPMLST ; 0518 0E06 MPMST: MVI C,CONSIO ;Perform direct console Iaddress in C to CRT. ; 0229 79 MOV A,C ;Yes, get address in A. 022A 013130 LXI B,03031H ;Get B = '0' is blanking flag running? 04FB 210C05 LXI H,MPMTBL ;For MPM use MPM I/O routines 04FE 2006 JRNZ SETCP1 ;Yes, merge in below ; 0500 haracter. . to console through CPM. 053E DS 4 ;Patch space. ; 0542 59 MPMLST: MOV E,C ;Put the character in E. 0543 0E05 MV; ; Written By: Theodore Green ; ; Last Change: Ted - Nov. 18, 1984 ; ; ;*******************************/O. 051A 1EFE MVI E,0FEH ;FE denotes console status. 051C C30500 JMP BDOS ;Get input status. 051F DS 6 ;Patch space, C = '1'. ;If your CRT needs leading zeroes, let B = 2F hex. 022D FE64 CPI 100 ;Is pos. > 99? 022F DA3A02 JRC WR2A0100 LHLD BASE + 0001 ;HL-> BIOS 0503 23 INX$ H 0504 23 INX$ H 0505 23 INX$ H ;HL-> BIOS Console Status 0506 114Ced. ; ;{CRTSET} 1k TDL Macro assembler Page 4 VEDIT - Copyright (c) 1984 by CompuView Products, Inc. I C,5 ;Perform BDOS listing. 0545 C30500 JMP BDOS ;Send char. to listing through CPM. 0548 DS 4 ;Patch space. ; ************************* ;* * ;* CRT Terminal Dependent Routines and Tables * ;* * ;*************** for STA TEMPCH, RET ; 0525 0E06 MPMIN: MVI C,CONSIO ;No, perform direct console input. 0527 1EFF MVI E,0FFH ;FF denotTAD1 ;No, branch around 0232 D664 SUI 100 ;Yes, subtract the 100 0234 05 DCR B ;Clear the blanking flag 0235 F5 PUSH05 SETCP1: LXI D,CONST ;DE-> Internal I/O jump vectors 0509 C3E436 JMP MOVE12 ;Set I/O vectors (12 bytes) and return ; 021F 4F WRTADD: MOV C,A ;Save char. in C. 0220 215003 LXI H,ADDOFF ;HL-> cursor address info. 0223 7E MOV A,M ;Get B ***************************************** ; ; Copyright (C) 1984 by CompuView Products, Inc. ; 1955 Pauline Blvd.  CRT pos. 01CC 34 INR M ;Account for CRT moving cursor to the right. 01CD C5 OUTSAV: PUSH B ;Save count in B 01CE D5 Peo? 01B6 F2BF01 JP OUTCH1 ;Yes, change to normal video. ; 01B9 CD1703 CALL CRTVDR ;Enable reverse video on CRT. 01B 01EF 1D DCR E ;Adjust so that top left is 0,0. 01F0 213B03 LXI H,ADDLED ;HL-> cursor lead in table. 01F3 CD5302 CALL A7 C2C601 JRNZ OUTCH3 ;Yes, send unmodified character ; ; If Bit 7 is set, use reverse video control sequences ; C ;No, return. 01E0 3600 MVI M,00 ;Yes, reset count. 01E2 C33004 JMP CHKKEY ;Poll and buffer any keyboard char. ;  ; Ann Arbor, MI 48103 ; ; Written by: Theodore J. Green ; ; Last Change: Ted - Aug. 28, 1984 ; ; OUSH D ;Save DE 01CF CD7205 CALL CONOUT ;Send char. in reg. C to CRT 01D2 CD2F04 CALL CHKKYB ;Poll for keyboard char. 0C C3C201 JMPR OUTCH2 ;Now send the character out. ; 01BF CD1D03 OUTCH1: CALL CRTVDN ;Enable normal video on CRT. ;CRTCRL ;Send cursor address lead in. 01F6 215003 LXI H,ADDOFF ;HL-> cursor address info. 01F9 7E MOV A,M ;Get column or  01AA 79 OUTCHS: MOV A,C ;Get the character. 01AB E680 ANI 80H ;Look at top bit of char. 01AD 213042 LXI H,REVVFL ;HL-> ; CRTSET - Address the cursor. ; Enter with L = vertical row #. Top row = 1. ; H = horizontal column #. LeftUTCHR - Output character in Reg. C. ; Return: B, DE restored, HL destroyed. ; 019B VISCHR: 019B 79 OUTCHR: MOV1D5 D1 POP D ;Restore 01D6 C1 POP B ;Restore count in B 01D7 C9 RET ; ; CRTCKK - Polls and buffers any keyboar 01C2 79 OUTCH2: MOV A,C ;Get the character back. 01C3 E67F ANI 7FH ;Strip any high bit. 01C5 4F MOV C,A ;Put charactline first switch. 01FA E601 ANI 1 ;Is the line # sent first? 01FC CA0202 JRZ CRTSE1 ;Yes, D & E are set. 01FF 7A MOV reverse video flag (80H if on) 01B0 BE CMP M ;Is high bit same as reverse video flag? 01B1 CAC201 JRZ OUTCH2 ;Yes, it w column = 0. ; 01E5 C5 CRTSET: PUSH B ;Save char. in C. 01E6 D5 PUSH D 01E7 223342 SHLD CRTVER ;Save as simulated  A,C ;Get char. in A. 019C 4F OUTCHA: MOV C,A ;Save char in C 019D FE80 CPI 080H ;Is Bit 7 set? 019F DAAA01 JRC OUTCHd character after ; every 30 bytes are sent to CRT. ; 01D8 218442 CRTCKK: LXI H,CCOUNT ;HL-> slow poll counter 01Der in C. ; 01C6 CDD801 OUTCH3: CALL CRTCKK ;Poll for keyboard char. every 30th. 01C9 213242 LXI H,VRTHOR ;HL-> virtual A,D ;No, switch D & E. 0200 53 MOV D,E 0201 5F MOV E,A 0202 23 CRTSE1: INX H ;HL-> first byte offset. 0203 7B MOV ill be displayed correctly. ; 01B4 77 MOV M,A ;No, set new value of REVVFL 01B5 B7 ORA A ;Is character in normal vidcursor pos. 01EA 7D MOV A,L ;Get row # 01EB 323142 STA VRTVER ;Save as virtual row # 01EE EB XCHG ;Save pos. in DE.S ;No, process normally 01A2 3A8543 LDA BIT7AL ;Get EP parameter value 01A5 E602 ANI 2 ;Is Bit 7 allowed on output? 01B 34 INR M ;Increment counter. 01DC 7E MOV A,M ;Get the count. 01DD FE1E CPI 30 ;Reached critical point? 01DF D8 R A,E ;Get first addr. coordinate. 0204 86 ADD M ;Add the offset. 0205 E5 PUSH H ;Save HL-> ADDOFF. 0206 CD1F02 CALL Ws counter to '0' 023C 0C WRTAD2: INR C ;Tens = tens + 1 023D D60A SUI 10 ;Subtract ten 023F D23C02 JRNC WRTAD2 ;Brancn C to CRT. ; 0229 79 MOV A,C ;Yes, get address in A. 022A 013130 LXI B,03031H ;Get B = '0' is blanking flag, C = '1': INX H ;HL-> escape char. 0259 4E MOV C,M ;Get the next char 025A E5 PUSH H ;Save PTR 025B CD2F04 CALL CHKKYB ;Polany chars to end sequence. 021C D1 POP D 021D C1 POP B ;Restore char in C. 021E C9 RET ; ; WRTADD - Send the c CRT. (Zero not blanked) ; ; CRTCRL - Send escape sequence to CRT and perform any necessary delay. ; Enter: HL-> RTADD ;Send address to CRT, convert if necessary. 0209 214203 LXI H,ADDMID ;HL-> middle char. table. 020C CD5302 CALL CRTh until underflow ; 0242 C63A ADI '0'+10 ;Restore from underflow and make Ascii 0244 0D DCR C ;Restore from underflo. ;If your CRT needs leading zeroes, let B = 2F hex. 022D FE64 CPI 100 ;Is pos. > 99? 022F DA3A02 JRC WRTAD1 ;Nol keyboard 025E CDCD01 CALL OUTSAV ;Send to CRT 0261 E1 POP H ;HL-> next char 0262 05 DJNZ CRTCR1 ;Continue sending ursor address in Reg. A to CRT and convert ; to Ascii if necessary. HL and BC clobbered. ; ;{CRTSET} 021F 4escape sequence table, consisting of escape ; sequence count byte, followed by the bytes making up the ; sequence,CRL ;Send any chars between first and second byte. 020F E1 POP H ;Restore HL. 0210 23 INX H ;HL-> second byte offset. w 0245 F5 PUSHA ;Save Ones digit 0246 79 MOV A,C ;Get the tens digit 0247 B8 CMP B ;Is tens count zero, and to be b, branch around 0232 D664 SUI 100 ;Yes, subtract the 100 0234 05 DCR B ;Clear the blanking flag 0235 F5 PUSHA ;Savebytes. 0266 C1 POP B ;Restore BC 0267 23 INX H ;HL-> delay byte 0268 7E MOV A,M ;Get the delay in milliseconds 0269F WRTADD: MOV C,A ;Save char. in C. 0220 215003 LXI H,ADDOFF ;HL-> cursor address info. 0223 7E MOV A,M ;Get Binary or  followed by any delay in milliseconds. ; 0253 7E CRTCRL: MOV A,M ;Get the char. count. 0254 B7 ORA A ;Test for initi0211 7A MOV A,D ;Get second addr. coordinate. 0212 86 ADD M ;Add the offset. 0213 CD1F02 CALL WRTADD ;Send address tolanked? 0248 CA4E02 JRZ WRTAD4 ;Yes, don't send zero to CRT 024B CDCD01 CALL OUTSAV ;Send the tens count to CRT ; 0 count 0236 CDCD01 CALL OUTSAV ;Send the '1' 0239 F1 POPA ;Restore count ; 023A 0E30 WRTAD1: MVI C,'0' ;Init ten B7 ORA A ;Is there a delay? 026A C8 RZ ;No, return now 026B C31838 JMP DELAY ;Yes, do a delay ; ; ; CleAscii address switch. 0224 E680 ANI 80H ;Is address to be converted to Ascii? 0226 CACD01 JRZ OUTSAV ;No, send address ial zero. 0255 C8 RZ ;Yes, return now. 0256 C5 PUSH B ;Save BC 0257 47 MOV B,A ;Put the count in B. 0258 23 CRTCR1 CRT, convert if necessary. ; 0216 214903 LXI H,ADDEND ;HL-> cursor address end table. 0219 CD5302 CALL CRTCRL ;Send 24E F1 WRTAD4: POPA ;Restore Ones digit 024F 4F MOV C,A ;Put digit in C 0250 C3CD01 JMP OUTSAV ;Send the digit to the ar Screen Routines. ; ; CLRSCR - Clear entire screen. First try to use Clear Screen sequence. ; A count of 080H ,A ;Save number. 029F 215A03 LXI H,ESCEOS ;HL-> escape char. table. 02A2 7E MOV A,M ;Get count for EOS sequence. 02A3 Bd line clear? 028E D28302 JRNC CLRCUR ;Yes, return. 0291 3C INR A ;No, get line # of first line to clear. 0292 6F MOVe #. 02C7 C3AE02 JMPR CTEOS1 ;Continue. ; ; CRTEOL - Clear to end of Line from cursor position. ; 02CA 213342  0279 215303 LXI H,ESCCLR ;HL-> escape char. table 027C CD5302 CALL CRTCRL ;Perform the clear 027F AF XRA A ;Get a zeYes, return, force cursor set. ; 02B6 3C INR A ;A = original line # for EOS. 02B7 F5 PUSH PSW ;Save line # for EOS. means the machine is emulating a terminal. In ; this case it is more efficient to not perform a clear. Instead, ; 7 ORA A ;Does CRT have EOS sequence? 02A4 78 MOV A,B ;Get back line # for performing EOS. 02A5 CAAE02 JRZ CTEOS1 ;No, L,A ;Get line # for begin of EOS. 0293 2600 MVI H,00 ;Start at left margin. 0295 CDE501 CALL CRTSET ;Address the cursoCRTEOL: LXI H,CRTVER ;Get current cursor line #. 02CD 3A2342 LDA USEDLN ;Get # screen lines used. 02D0 BE CMP M ;Is restro 0280 322342 STA USEDLN ;No lines are in use 0283 210000 CLRCUR: LXI H,0000 ;Get two zeros 0286 223142 SHLD VRTVER  02B8 7E MOV A,M ;No, get last used line #. 02B9 6F MOV L,A ;Set to line to be erased. 02BA 2600 MVI H,00 ;Set to col an EOL will be sent as each new screen line is written. ; 026E 3A5303 CLRSCR: LDA ESCCLR ;Get count for Clear sequence  simulate EOS with multiple EOLs. 02A8 322342 STA USEDLN ;Yes, update # used lines. 02AB C35302 JMPR CRTCRL ;Perform ther. ;Erase rest of the screen. ; ; CRTEOS - Clear to end of Screen from cursor position. ; 0298 CD1736 CRTE of current line clear? 02D1 D8 RC ;Yes, return. ;{WTSLFW} 02D2 216103 CREOL0: LXI H,ESCEOL ;HL-> escape char. ta;Force CRT cursor set 0289 C9 RET ; ; ; CLRSC2 - Clear rest of screen from begin of next line # in Reg. A. ; umn zero. 02BC CDE501 CALL CRTSET ;Position the cursor. 02BF CDCA02 CALL CRTEOL ;Erase the line. 02C2 212342 LXI H,US0271 B7 ORA A ;Is this function available? 0272 F8 RM ;80H means emulation is taking place 0273 CA8A02 JRZ CLRSC2 ;U screen clear. ; ; Simulate an EOS using multiple EOLs. ; 02AE 3D CTEOS1: DCR A ;Adjust for CMP below. 02AF 2123OS: CALL STBRFL ;Set flag to write new status line 029B 3A3342 LDA CRTVER ;Get line # from which to clear. 029E 47 MOV Bble. 02D5 7E MOV A,M ;Get count for EOL sequence. 02D6 B7 ORA A ;Does CRT have EOL sequence? 02D7 C25302 JNZ CRTCRL  ;{UPDSCR} 028A 212342 CLRSC2: LXI H,USEDLN ;HL-> # screen lines not clear. 028D BE CMP M ;Is screen below last useEDLN ;HL-> # screen lines not clear. 02C5 35 DCR M ;Account for line just erased. 02C6 F1 POP PSW ;Restore last used linse EOS if Clear screen is not available ;Note that A = 00 0276 CD1736 CALL STBRFL ;Set flag to write new status line42 LXI H,USEDLN ;HL-> # screen lines not clear. 02B2 BE CMP M ;Is screen below LINCNT clear? 02B3 D28302 JRNC CLRCUR ; ;Yes, perform the line clear. ; ; Simulate EOL by sending out spaces to end of line. ; 02DA 3A9943 LDA LINELN ;N, CRTVDN - Enable and disable reverse video characters. ; 0317 218403 CRTVDR: LXI H,ESCVDR ;HL-> escape char. table. 031ATINS: LXI H,ESCINS ;HL-> escape char. table. 0302 C35302 JMP CRTCRL ;Insert a line. ; 0305 216F03 CRTDEL: LXI H,ESCDEL033B 02 ADDLED: DB 2 ;Count for Cursor Lead In. 033C 1B DB 01BH ;First byte of sequence. 033D 59 DB 059H ;Second byte. ; ; REVOFF - Make sure reverse video CRT mode is off. ; ;{WRTLIN} 02F4 213042 REVOFF: LXI H,REVVFL ;HL-> reve Reset the CRT for Visual mode editing. ; 032F 21A003 CRTENT: LXI H,ESCENT ;HL-> escape char. table. 0332 C35302 JMP CRo, get display line length. 02DD 213442 LXI H,CRTHOR ;HL-> horiz. cursor pos. 02E0 96 SUB M ;Compute # pos. to clear. 02 C35302 JMP CRTCRL ;Enable reverse video mode. ; 031D 218B03 CRTVDN: LXI H,ESCVDN ;HL-> escape char. table. 0320 C3530 ;HL-> escape char. table. 0308 C35302 JMP CRTCRL ;Delete a line. ; ; CRTFSL, CRTBSL - Perform forward and backward  033E 00000000 DB 00,00,00,00 ;Spare bytes. ; 0342 00 ADDMID: DB 0 ;Count for chars between X & Y. 0343 00 DB 00 ;Nrse video flag 02F7 7E MOV A,M ;Get flag 02F8 B7 ORA A ;Is the reverse video flag set? 02F9 C8 RZ ;No, return. 02FTCRL ;Setup CRT on Visual mode entry. ; 0335 21A703 CRTEXT: LXI H,ESCEXT ;HL-> escape char. table. 0338 C35302 JMP CRTE1 47 MOV B,A ;Put count in B. 02E2 0E20 MVI C,20H ;Clear with spaces. 02E4 CAEE02 CREOL1: JRZ CREOL2 ;Branch when cou2 JMP CRTCRL ;Disable reverse video mode. ; ; CRTSTE, CRTSTD - Enable and disable the 25th status line. ; 0323 2scroll on CRT. ; 030B 217603 CRTFSL: LXI H,ESCFSL ;HL-> escape char. table. 030E C35302 JMP CRTCRL ;Scroll forward. ote: some require a "," between the X & Y. 0344 00 DB 00 0345 00000000 DB 00,00,00,00 ;Spare bytes. ; 0349 00 ADDEND:A 3600 MVI M,00 ;Yes, clear flag. 02FC C31D03 JMPR CRTVDN ;;Turn reverse video off. ; ; ; CRTINS, CRTDEL - InCRL ;Reset CRT on visual mode exit. ; ; ; These are the terminal dependent Escape sequence tables. ; They are snt is zero. 02E7 CDCD01 CALL OUTSAV ;Send a space to the CRT. 02EA 05 DCR B ;Decrement count. 02EB C3E402 JMPR CREOL119203 CRTSTE: LXI H,ESCSTE ;HL-> escape char. table. 0326 C35302 JMP CRTCRL ;Enable status line. ; 0329 219903 CRTSTD ; 0311 217D03 CRTBSL: LXI H,ESCBSL ;HL-> escape char. table. 0314 C35302 JMP CRTCRL ;Scroll backward. ; ; CRTVDR DB 0 ;Count for terminate chars. 034A 00 DB 00 034B 00 DB 00 034C 00000000 DB 00,00,00,00 ;Spare bytes. ; ; ADsert and delete a line on the CRT. ; Note: Some CRTs need to be a special mode for Insert and Delete. ; 02FF 216803 CRet during customization by selecting a CRT in the menu. ; ; ADDLED, ADDMID and ADDEND are for Cursor Addressing. ;  ;Continue. ; 02EE 2A3342 CREOL2: LHLD CRTVER ;Get desired cursor pos. 02F1 C3E501 JMP CRTSET ;Reset the cursor. : LXI H,ESCSTD ;HL-> escape char. table. 032C C35302 JMP CRTCRL ;Disable status line. ; ; CRTENT, CRTEXT - Setup and  DOFF - Table for Cursor addressing information. Specifies whether ; the address is sent in binary or Ascii and whether tIDEO sequence. 0385 F2 DB 0F2H 0386 00 DB 00H 0387 00000000 DB 00,00,00,00 ;Spare bytes. ; 038B 01 ESCVDN: DB 01  2 ;Count for DELETE line sequence. 0370 1B DB 01BH 0371 4D DB 04DH 0372 00000000 DB 00,00,00,00 ;Spare bytes. ; 0is regard. Enough patch space ; is provided for conversion to CP/M 2.2, or for special user ; interfacing. ; ; 00H ;Second byte. 0356 00000000 DB 00,00,00,00 ;Spare bytes. ; 035A 02 ESCEOS: DB 2 ;Count for EOS sequence. 035B 1B H 03A2 00 DB 00H 03A3 00000000 DB 00,00,00,00 ;Spare bytes. ; 03A7 00 ESCEXT: DB 00 ;Count for EXIT VISUAL MODE sequhe row ; or column byte is sent first, and the offset to add to the ; row and column addresses. ; 0350 00 AD;Count for END REVERSE VIDEO sequence. 038C F2 DB 0F2H 038D 00 DB 00H 038E 00000000 DB 00,00,00,00 ;Spare bytes. ; 376 01 ESCFSL: DB 01 ;Count for FORWARD SCROLL sequence. 0377 0A DB 0AH 0378 00 DB 00H 0379 00000000 DB 00,00,00,00 ;SSETIO - Set up internal copy of Console I/O vectors. ; Normally use BIOS, unless MPM - then use BDOS #6 ; 0517 CD1C0B DB 01BH 035C 4A DB 04AH 035D 00000000 DB 00,00,00,00 ;Spare bytes. ; 0361 02 ESCEOL: DB 2 ;Count for EOL sequence.ence. 03A8 00 DB 00H 03A9 00 DB 00H 03AA 00000000 DB 00,00,00,00 ;Spare bytes. ; ; 03AE DS 40H ;User Patch DOFF: DB 0 ;Bit 0 : 0 = ROW first then COLUMN ; 1 = COLUMN first then ROW ;Bit 7 : 0 = Address in Binary 0392 00 ESCSTE: DB 00 ;Count for ENABLE STATUS LINE sequence. 0393 00 DB 00H 0394 00 DB 00H 0395 00000000 DB 00,00,00,pare bytes. ; 037D 02 ESCBSL: DB 2 ;Count for BACKWARD SCROLL sequence. 037E 1B DB 01BH ;The "Insert Line" should wor SETIO: CALL MPMCHK ;;Is MP/M running? 051A 212C05 LXI H,MPMTBL ;For MPM use MPM I/O routines 051D C22605 JRNZ SETCP1 ; 0362 1B DB 01BH 0363 4B DB 04BH 0364 00000000 DB 00,00,00,00 ;Spare bytes. ; 0368 02 ESCINS: DB 2 ;Count for INSspace. ; ; ; These are the alternate Console I/O entry points when direct ; I/O calls in MP/M are used. Note th ; 1 = Address in Ascii 0351 20 DB 020H ;First offset 0352 20 DB 020H ;Second offset. ; ; Escape sequence tab00 ;Spare bytes. ; 0399 00 ESCSTD: DB 00 ;Count for DISABLE STATUS LINE sequence. 039A 00 DB 00H 039B 00 DB 00H 03k too. 037F 4C DB 04CH 0380 00000000 DB 00,00,00,00 ;Spare bytes. ; 0384 01 ESCVDR: DB 01 ;Count for BEGIN REVERSE VYes, merge in below ; 0520 2A0100 LHLD BASE + 0001 ;HL-> BIOS 0523 23 INX$ H 0524 23 INX$ H 0525 23 INX$ H ;HLERT LINE sequence. 0369 1B DB 01BH 036A 4C DB 04CH 036B 00000000 DB 00,00,00,00 ;Spare bytes. ; 036F 02 ESCDEL: DBat although BDOS CALL 6 ; is used, these routines only work for MP/M since CP/M 2.2 and ; MP/M are quite different in thle for other functions. ; 0353 00 ESCCLR: DB 00 ;Count for CLEAR sequence. 0354 00 DB 00H ;First byte. 0355 00 DB 9C 00000000 DB 00,00,00,00 ;Spare bytes. ; 03A0 00 ESCENT: DB 00 ;Count for ENTER VISUAL MODE sequence. 03A1 00 DB 00! -> BIOS Console Status 0526 116C05 SETCP1: LXI D,CONST ;DE-> Internal I/O jump vectors 0529 C3813A JMP MOVE12 ;Set I/O veREFIL 078F CREMSG 403C CREOL0 02D2 CREOL1 02E4 CREOL2 02EE CREOU2 074B CREOUT 0728 DS 4 ;Patch space. ; ; ; Internal copy of BIOS I/O jump vectors. ; 056C C30000 CONST: JMP 00 ;Console sat the particular .SET file is "VEDITZC.SET" and that this file and VDSETCRT.COM are on drive "B:". 1.) Issue0547 1EFF MVI E,0FFH ;FF denotes console input. 0549 C30500 JMP BDOS ;Get console char. when available. 054C DS 12 ; VEDIT CHECKSUM ERROR REMOVAL - CP/M-80 ONLY! Whenever a patch is made to any of the VEDIT .SET files wictors (12 bytes) and return ; ; 052C C33805 MPMTBL: JMP MPMST ;This table is copied to the BIOS jump 052F C34505 J7 CRHMZD 2E35 CRHOM1 2E29 CRHOME 2E09 CRLEFT 2EAC CRLF 1DE2 CRLF1 2F3E tatus. 056F C30000 CONINA: JMP 00 ;Get console character. 0572 C30000 CONOUT: JMP 00 ;Send console character. 0575 C30000 the command: B>VDSETCRT VEDITZC NEWZC (followed by a RETURN) After the message "WARNING - VEDIT CHPatch space. ; 0558 59 MPMOUT: MOV E,C ;Put the character in E. 0559 0E06 MVI C,CONSIO ;Perform direct console I/O. 0th DDT or another debugger, a checksum error will be introduced which will give the error message: "WARNING - VEDIT MP MPMIN ;vectors below for the MPM version. 0532 C35805 JMP MPMOUT 0535 C36205 JMP MPMLST ; 0538 0E06 MPMST: MVI C CRLFPR 2F30 CRMSG 4044 CRNXL1 2DEF CRNXL2 2E03 CRNXLN 2DEA CRNXW1 3064 CRNXW2 3 LSTOUT: JMP 00 ;Send listing character. ECKSUM ERROR" appears, type the RETURN key to ignore the error. Choose Task 8 (return to operating system) to 55B C30500 JMP BDOS ;Send char. to console through CPM. 055E DS 4 ;Patch space. ; 0562 59 MPMLST: MOV E,C ;Put thCHECKSUM ERROR" during customization. The following procedure allows you to remove the checksum error from the .SET,CONSIO ;Perform direct console I/O. 053A 1EFE MVI E,0FEH ;FE denotes console status. 053C C30500 JMP BDOS ;Get input st06A CRNXW3 3073 CRNXW4 3079 CRNXWD 3061 CRPVW1 3041 CRPVW2 3055 CRPVWD 3037  CRDOW9 2CDF CRDOWN 2CBC CREATE 0016 CREAUX 0AA8 CREBRK 0779 CREERR 0776 Cimmediately exit the customization program. This will have created the file "NEWZC.COM" which does not contae character in E. 0563 0E05 MVI C,5 ;Perform BDOS listing. 0565 C30500 JMP BDOS ;Send char. to listing through CPM. 056 file. If this message occurs with a .SET file which was not patched, the file may be defective. This assumes thatus. 053F DS 6 ;Patch space for STA TEMPCH, RET ; 0545 0E06 MPMIN: MVI C,CONSIO ;No, perform direct console input.  CRRGHT 2EB2 CRTAB 2D87 CRTBSL 0311 CRTCKK 01D8 CRTCR1 0258 CRTCRL 0253 CRTDEL" in a checksum error, and can now be renamed to the .SET file. 2.) Issue the commands: B>ERA VEDITZC.SET (This erases the old .SET file) B>REN VEDITZC.SET=NEWZC.CMD (This creates a new VEDIT86.SET) You non the disk. If there is a VEDIT.INI file present on the disk, VEDIT will execute its contents EVERY TIME an edit session be default drive, followed by drive 'A', for a file named 'VEDIT.INI'. If this file exists, VEDIT will read it into texach of its special function keys. To program these output codes, an ASCII file must be sent to the terminal which contain LXI H,VRTHOR ;HL-> virtual CRT pos. 01C8 34 INR M ;Account for CRT moving cursor to the right. 01C9 C5 OUTSAV: PUSH B  Another common use for the auto-startup is to load the text registers with text or command macros which you comw have a VEDITZC.SET without the checksum error! gins. The auto-startup file, VEDIT.INI, may contain any legal command mode commands, as described in the VEDIt register #0, treat the contents of VEDIT.INI as command mode instructions and execute them before the edit session begis the relevant escape sequences and control characters. An example of a file containing information for the programming of ;Save count in B 01CA D5 PUSH D ;Save DE 01CB CD5205 CALL CONOUT ;Send char. in reg. C to CRT 01CE CD1904 CALL CHKKYBmonly use. VEDIT's operating parameters (word-wrap column, conditional convert character, etc.) can also be setupable reverse video on CRT. 01B9 1803 JMPR OUTCH2 ;Now send the character out. ; 01BB CD0903 OUTCH1: CALL CRTVDN ;EnabT 1.39/1.17 manual. Terminals such as the Ann Arbor Ambassador, VISUAL 200, the TeleVideo 950, etc., can be extensively initians. After execution of the contents of VEDIT.INI, VEDIT will proceed with the edit session. It is important tkey codes is present on your VEDIT distribution diskette as A2SETUP (this file works for the AMBASSADOR terminal, a USING THE AUTO-STARTUP FEATURE IN VEDIT 1.39/1.17 VEDIT 1.39/1.17 supports a useful and powerful auto startup f in the VEDIT.INI file. For example, a simple VEDIT.INI file might be created to program the function keys on le normal video on CRT. ; 01BE 79 OUTCH2: MOV A,C ;Get the character back. 01BF E67F ANI 7FH ;Strip any high bit. 01lized through the use of VEDIT's auto-startup file. This can be done by creating a VEDIT.INI file similar to the exam# nd is intended to serve as an example only). In order for VEDIT to send this file to the CRT, the followingce, followed by any delay in milliseconds. ; 024A 7E CRTCRL: MOV A,M ;Get the char. count. 024B B7 ORA A ;Test for in be blanked? 0240 2803 JRZ WRTAD4 ;Yes, don't send zero to CRT 0242 CDC901 CALL OUTSAV ;Send the tens count to CRT ;ll "12". Under CP/M, console I/O is done directly through BIOS, while in MP/M, the system call "6" is used. While t REGISTER #1. RD1 Second, VEDIT is instructed to type the contents of TEX----- These notes are only applicable to users who are not running CP/M or MP/M, and to experienced users wh VEDIT.INI file must be created which will be executed by VEDIT at the start of the edit session: RL1 A2SETUP RD1 0P1  USER PATCH NOTES FOR VEDIT These notes describe a patch which can be made to the VEDIT program 0245 F1 WRTAD4: POPA ;Restore Ones digit 0246 4F MOV C,A ;Put digit in C 0247 C3C901 JMP OUTSAV ;Send the digit to his works well with CP/M and MP/M it may not work with other "CP/M compatible" operating systems. Particularly, it will T REGISTER #1 to the screen. The 'RD' command tells VEDIT to NOT expand conto wish to change the way console I/O is handled in the VEDIT programs. The new VEDIT user running CP/M or MP/M therefore do When VEDIT finds the supplied VEDIT.INI file, the contents of the file are copied into TEXT REGISTER #0. VEDIT then begis in order to satisfy special applications. 1.) To allow a change in the way console I/O is handled. This may be usthe CRT. (Zero not blanked) ; ; CRTCRL - Send escape sequence to CRT and perform any necessary delay. ; Enter: HLnot work with Cromemco's CDOS, which has a totally different system call "12". The CDOS user will therefore need to rol characters as it types them to the CRT, but to send their actual values. es not need to read or understand these notes! The VEDIT programs are normally configured to automaticalns to execute the following commands: RL1 A2SETUP First, VEDIT is instructed to search the eful to users not running CP/M or MP/M, to users with CRT emulation software instead of a true CRT termina-> escape sequence table, consisting of escape ; sequence count byte, followed by the bytes making up the ; sequenpatch one byte in each of the VEDIT programs so that the system call "12" is not performed. If your distribution d0P1 Third, VEDIT is instructed to clear the contents of TEXT REGISTER #1. ly determine whether they are running in a CP/M or an MP/M environment. This is accomplished by performing the system ca diskette for a file called "A2SETUP" and, if found, copy its contents into TEXT l, and to user running with an interrupt driven keyboard. ------------------------------------------------$ iskette is marked "CDOS", this byte has already been patched to the correct value. This byte is the refered to as the the VEDSET and VDSETCRT programs, the "SETBYT" is at location 010D Hex. It has 6 significant bits in the main VEDIT progfrequent polling slows things down a little, you may wish to disable the fast polling in the CRT version if you are not usin polling. The normal distribution version of the CRT version of VEDIT has a "SETBYT" value of "00100001 Binarying, about once every 50 milliseconds, which is enough to keep up with the fastest typist, but not fast enough for singl "1" means disable all keyboard polling. "0" means enable at least normal keyboard polling. Bit 3  "SETBYT" and is described below. VEDIT performs frequent polling of the console status routine in order to permrams and 2 significant bits in the VEDSET and VDSETCRT programs. The bits are defined below: g a terminal which sends single key escape sequences, i.e. a Heath H19, IBM 3101, Televideo 920C, etc. If you are runnin" (21 Hex) in the ".SET" files to signify auto determination of CP/M or MP/M, fast polling for CP/M and normal polling foe key generated escape sequences. The "SETBYT" also determines whether the fast polling entry point is disabled and e "1" means disable frequent keyboard polling. "0" means enable frequent keyboard polling. Bit 4 Bits 4 andit type-ahead and prevent loosing typed characters. The keyboard polling routine inside VEDIT has two entry points. One is  Page 2 Bit 0 "1" means auto determination of CP/M or MP/M. "0" means CP/M org with an interrupt driven keyboard, you may wish to disable both the fast and slow polling. The "SETBYT" in r MP/M. Similarly, the Memory Mapped version of VEDIT has a "SETBYT" value of "00101001 Binary" (29 Hex) in the ".SET" ven allows all polling to be disabled. In the normal distribution, the CRT version is setup to do frequent polling unde 5 are only significant for MP/M. "1" means disable all keyboard polling. "0" means enable at least noused for very frequent polling, where the keyboard is polled once for every character send to the terminal and about  MP/M is determined by Bit 1. Bit 1 Only significant when Bit 0 = "0". "1" means MP/M using System call 6 fo the VEDIT programs (VEDITZC.SET, VEDIT8M.SET) is always at location 0111 Hex. (4311 Hex in ORG 4200 systems). In files to signify auto determination of CP/M or MP/M, normal polling for CP/M and normal polling for MP/M. The normal disr CP/M and the less frequent polling under MP/M. All Memory Mapped versions perform the less frequent polling. Since the rmal keyboard polling. Bit 5 "1" means disable frequent keyboard polling. "0" means enable frequent keyboard once every millisecond while performing internal operations. The second entry point is used for much less frequent pollr console I/O. "0" means CP/M using direct BIOS calls. Bit 2 Bits 2 and 3 are only significant for CP/M. % tribution of VEDSET.COM and VDSETCRT.COM have a "SETBYT" value of "00000001 Binary" to signify auto-determination of CP/M or d correctly. Those which are not translated will result in assembly errors, and you will then need to hand translate them. TE: LXI H,ESCSTE ;HL-> escape char. table. 0312 C34A02 JMP CRTCRL ;Enable status line. ; 0315 218503 CRTSTD: LXI H,ESC to translate the next segment of the file ------------------ Delete up to and including this line E16903 CRTBSL: LXI H,ESCBSL ;HL-> escape char. table. 0300 C34A02 JMP CRTCRL ;Scroll backward. ; ; CRTVDR, CRTVDN - ranslation macro into text register 0: RL0ZIL-INT.EXC Invoke the macro with the command: M0$$ where "$"MP/M. The CDOS user will need to change the "SETBYT" to "00100000 Binary" or (20 Hex) in the appropriate  This macro is therefore supplied "AS IS"; we make no guarantee that it operates correctly, nor do we support it. However,  ZILOG TO INTEL TRANSLATION MACRO FOR VEDIT The following macro will perform a reasonably good translation of a Z80S 8 1 ES 9 1 ES 5 0 B[S/ JP C,/ JC /] B[S/ JP NC,/ JNC /] B[S/ JP Z,/ JZ /] B[S/ JP NZ,/ JNZ /] B[S/ JP M,/ JM /] BEnable and disable reverse video characters. ; 0303 217003 CRTVDR: LXI H,ESCVDR ;HL-> escape char. table. 0306 C34A02 J represents the [ESC] key The macro will take several minutes to execute on a large file. If the file being translated is l".SET" file and to "00 Hex" in the VEDSET.COM or VDSETCRT.COM files. Distribution disks whose label specifies "CDOS" alwe will appreciate written feedback on improvements, problems, etc. We always appreciate listings of any VEDIT macros you hav program from ZILOG mnemonics to INTEL mnemonics using the Z80 additions used by the Digital Research MAC assembler. This mac[S/ JP P,/ JP /] B[S/ JP / JMP /] B[S/ JR NC,/ JRNC /] B[S/ JR C,/ JRC /] B[S/ JR NZ,/ JRNZ /] B[S/ JR Z,/ JRZ /] B[S/ JR MP CRTCRL ;Enable reverse video mode. ; 0309 217703 CRTVDN: LXI H,ESCVDN ;HL-> escape char. table. 030C C34A02 JMP CRTarger than memory, you will have to invoke the macro repeatedly until the entire file is translated, i.e. give the commands: ready contain this change and do not need to be patched. e written and found useful. Good Luck. To use the macro, delete all of this text up to and including the dashed linero is currently not complete since not all instructions are translated, but about 99% of all instruction should be translate/ JR /] B[S/ CALL C,/ CC /] B[S/ CALL NC,/ CNC /] B[S/ CALL Z,/ CZ /] B[S/ CALL NZ,/ CNZ /] B[S/ CALL M,/ CM /] B[S/ CALCRL ;Disable reverse video mode. ; ; CRTSTE, CRTSTD - Enable and disable the 25th status line. ; 030F 217E03 CRTS #W$$ to write the translated segment out to disk 0A$$ to read in more of the file M0$$ RT. ; 02F7 216203 CRTFSL: LXI H,ESCFSL ;HL-> escape char. table. 02FA C34A02 JMP CRTCRL ;Scroll forward. ; 02FD 2 from this file. Invoke VEDIT on the file you wish to translate, i.e. VEDIT PROGRAM.ASM Enter command mode and load the t& L P,/ CP /] B[S/RET NC/RNC /] B[S/RET C/RC /] B[S/RET NZ/RNZ /] B[S/RET Z/RZ /] B[S/RET P/RP /] B[S/RET M/RM /] B[S/EX V A,C/] B[S/LD A,D/MOV A,D/] B[S/LD A,E/MOV A,E/] B[S/LD A,H/MOV A,H/] B[S/LD A,L/MOV A,L/] B[S/LD A,B/MOV A,B/] B[S/LD A,I L/] B[S/LD H,A/MOV H,A/] B[S/LD H,B/MOV H,B/] B[S/LD H,D/MOV H,D/] B[S/LD H,E/MOV H,E/] B[S/LD H,L/MOV H,L/] B[S/LD H,C//S/)//] B[S/CP (IY/CMPY /S/)//] B[S/CP A/CMP A/] B[S/CP B/CMP B/] B[S/CP C/CMP C/] B[S/CP D/CMP D/] B[S/CP E/CMP E/] B[S/,A/MOV D,A/] B[S/LD D,B/MOV D,B/] B[S/LD D,C/MOV D,C/] B[S/LD D,E/MOV D,E/] B[S/LD D,H/MOV D,H/] B[S/LD D,L/MOV D,L/] B[S/LD DE,/LXI D,/] B[S/LD HL,/LXI H,/] B[S/LD SP,/LXI SP,/] B[S/INC HL/INX H/] B[S/INC DE/INX D/] B[S/INC BC/INX B/] B[S/DEDE,HL/XCHG /] B[S/EX (SP),HL/XTHL /] B[S/ADD HL,HL/DAD H/] B[S/ADD HL,DE/DAD D/] B[S/ADD HL,BC/DAD B/] B[S/LD IX,/LXIX /](HL)/MOV A,M/] B[S/LD A,(DE)/LDAX D/] B[S/LD A,(BC)/LDAX B/] B[S/LD A,(IX/LDX A,/S/)//] B[S/LD A,(IY/LDY A,/S/)//] B[F/LD AMOV H,C/] B[S/LD H,(HL)/MOV H,M/] B[S/LD H,/MVI H,/] B[S/LD (HL),A/MOV (HL),A/] B[S/LD (HL),B/MOV (HL),B/] B[S/LD (HL),D/MOCP H/CMP H/] B[S/CP L/CMP L/] B[S/CP (HL)/CMP M/] B[S/ CP / CPI /] B[S/AND (IX/ANDX /S/)//] B[S/AND (IY/ANDY /S/)//] B[SLD D,(HL)/MOV D,M/] B[S/LD D,/MVI D,/] B[S/LD E,A/MOV E,A/] B[S/LD E,B/MOV E,B/] B[S/LD E,C/MOV E,C/] B[S/LD E,D/MOV E,D/] C HL/DCX H/] B[S/DEC DE/DCX D/] B[S/DEC BC/DCX B/] B[S/INC A/INR A/] B[S/INC B/INR B/] B[S/INC C/INR C/] B[S/INC D/INR D B[S/LD IY,/LXIY /] B[S/LD B,A/MOV B,A/] B[S/LD B,C/MOV B,C/] B[S/LD B,D/MOV B,D/] B[S/LD B,E/MOV B,E/] B[S/LD B,H/MOV B,(/-6DI/LDA /F/)/-D] B[S/LD A,/MVI A,/] B[S/IN A,(/IN /F/)/-D] B[S/OUT (/OUT /F/)/-D2D] B[S/OTI/OUTI/] B[S/OTIR/OUTIR/] V (HL),D/] B[S/LD (HL),E/MOV (HL),E/] B[S/LD (HL),H/MOV (HL),H/] B[S/LD (HL),L/MOV (HL),L/] B[S/LD (HL),C/MOV (HL),C/] B[S//AND A/ANA A/] B[S/AND B/ANA B/] B[S/AND C/ANA C/] B[S/AND D/ANA D/] B[S/AND E/ANA E/] B[S/AND H/ANA H/] B[S/AND L/ANA L/] B[S/LD E,H/MOV E,H/] B[S/LD E,L/MOV C,L/] B[S/LD E,(HL)/MOV E,M/] B[S/LD E/MVI E/] B[S/LD L,A/MOV L,A/] B[S/LD L,B/MOV L,B/] B[S/INC E/INR E/] B[S/INC H/INR H/] B[S/INC L/INR L/] B[S/INC (HL)/INR M/] B[S/DEC A/DCR A/] B[S/DEC B/DCR B/] B[S/DEC,H/] B[S/LD B,L/MOV B,L/] B[S/LD B,(HL)/MOV B,M/] B[S/LD B,/MVI B,/] B[S/LD C,A/MOV C,A/] B[S/LD C,B/MOV C,B/] B[S/LD C,D/B[S/OTD/OUTD/] B[S/OTDR/OUTDR/] B[S/),A/ /0LS/LD (/STA /] B[S/),HL/ /0LS/LD (/SHLD /] B[S/),DE/ /0LS/LD (/SDED /] B[S/),BLD (HL),/MVI M,/] B[S/LD (DE),A/STAX D/] B[S/LD (BC),A/STAX B/] B[S/LD A,A/MOV A,A/] B[S/LD A,B/MOV A,B/] B[S/LD A,C/MO B[S/AND (HL)/ANA M/] B[S/ AND / ANI /] B[S/XOR (IX/XORX /S/)//] B[S/XOR (IY/XORY /S/)//] B[S/XOR A/XRA A/] B[S/XOR B//] B[S/LD L,D/MOV L,D/] B[S/LD L,E/MOV L,E/] B[S/LD L,H/MOV L,H/] B[S/LD L,C/MOV L,C/] B[S/LD L,(HL)/MOV L,M/] B[S/LD L/MV C/DCR C/] B[S/DEC D/DCR D/] B[S/DEC E/DCR E/] B[S/DEC H/DCR H/] B[S/DEC L/DCR L/] B[S/DEC (HL)/INR M/] B[S/CP (IX/CMPX MOV C,D/] B[S/LD C,E/MOV C,E/] B[S/LD C,H/MOV C,H/] B[S/LD C,L/MOV C,L/] B[S/LD C,(HL)/MOV C,M/] B[S/LD C/MVI C/] B[S/LD DC/ /0LS/LD (/SBCD /] B[S/LD HL,(/LHLD /F/)/-D] B[S/LD DE,(/LDED /F/)/-D] B[S/LD BC,(/LBCD /F/)/-D] B[S/LD BC,/LXI B,/] B[S/' XRA B/] B[S/XOR C/XRA C/] B[S/XOR D/XRA D/] B[S/XOR E/XRA E/] B[S/XOR H/XRA H/] B[S/XOR L/XRA L/] B[S/XOR (HL)/XRA M/] B[STCSNL 2344 STDEIN 3602 STEMP1 3C38 STEMP2 3C3A STMVBC 350F STNSKL 2350 STNSNL 23] ACTV 3E7E TXTBGN 3B8A TXTBUF 4249 TXTEND 3B86 TXTMSG 3EF9 TXTTOP 05A0 TYPLST 1BC0 OR / ORA /] B[S/PUSH HL/PUSH H/] B[S/PUSH DE/PUSH D/] B[S/PUSH BC/PUSH B/] B[S/PUSH AF/PUSH PSW/] B[S/POP HL/POP H/] B[T 05A4 TARSET 19ED TARST1 1A06 TBLADD 34BE TCMD 144A TDLVRS 0000 TEMPFL 3C23 S/ XOR / XRI /] B[S/ADD A,(IX/ADDX /S/)//] B[S/ADD A,(IY/ADDX /S/)//] B[S/ADD A,A/ADD A/] B[S/ADD B,A/ADD B/] B[S/ADD C,A54 STNWFL 2356 STNWLN 2340 STPSNL 2348 STPWAC 2338 STRWAC 233C STSEA1 19DC  SRCHFL 3C33 SRCHN 0012 SRCNSW 3FB6 SRCOPN 06C1 SRFAIL 3C3C SSEPCH 1B13 ST UCMD 1454 UCMD2 1475 UCNVSW 3FBE UNDEN1 2662 UNDENT 2658 UPDAC1 20B9 S/POP DE/POP D/] B[S/POP BC/POP B/] B[S/POP AF/POP PSW/] B[S/ SCF / STC /] B[S/ RLCA / RLC /] B[S/ RLA / RAL /] B[S/ R TEMPW 3C24 TEMPW2 3C26 TERMCH 3C43 TEXTR1 0D8F TEXTRM 0D8C TOPCHR 3B81 TOV/ADD C/] B[S/ADD D,A/ADD D/] B[S/ADD E,A/ADD E/] B[S/ADD H,A/ADD H/] B[S/ADD L,A/ADD L/] B[S/ADD (HL),A/ADD M/] B[S/ADD A, STSEA2 19E7 STSEAR 19BE STSSNL 234C STVTS1 26C8 STVTSW 26C5 STWTBR 32B6 STWTP1 5%HL 3633 STACK 4142 STACPN 2334 STAFLG 3E5D STAMS1 33F6 STAMSG 33E7 STAPOS 3FC0UPDACT 20AC UPDBRD 2069 UPDLIN 3E59 UPDLP1 208B UPDLP2 2091 UPDLP3 2099 UPDLP4 20RCA / RRC /] B[S/ RRA / RAR /] B[S/ RLC / RLCR /] B[S/ RL / RALR /] B[S/ RRC / RRCR /] B[S/ RR / RARR /] B[S/ SLA / SLAR /IS0 1ED8 TOVIS1 1F1A TOVIS2 1F14 TOVIS3 1F1E TOVIS5 1F26 TOVIS6 1F55 TOVIS7 1F5E /ADI /] B[S/SUB (IX/SUBX /S/)//] B[S/SUB (IY/SUBY /S/)//] B[S/SUB A/\|\ A/] B[S/SUB B/\|\ B/] B[S/SUB C/\|\ C/] B[S/SUB 30F3 STWTPS 30F0 SUBMBC 34C9 SUCCH 1B5C SWCCNV 3FB8 SWCHNM 0009 SWCINS 261C  STAST1 33D3 STASTR 33D0 STATCH 3EF3 STBRF1 32BC STBRFL 32BA STCMEN 19B3 9D UPDLP5 20A2 UPDNEW 2073 UPDSC1 207F UPDSC2 20A7 UPDSCR 2058 UPSCTB 2303 ] B[S/ SRA / SRAR /] B[S/ SRL / SRLR /] B[S/ (HL)/ M/] B[S/DEFB /DB /] B[S/DEFW /DW /] B[S/DEFM /DB /] B[S/DEFS /DS / TOVIS8 1F63 TRUE 0001 TV1 1EF4 TV2 1EFE TV4 1F37 TXACEN 3E80 TXD/\|\ D/] B[S/SUB E/\|\ E/] B[S/SUB H/\|\ H/] B[S/SUB L/\|\ L/] B[S/SUB (HL)/\|\ M/] B[S/SUB /SUI /] B[S/\|\/SUB/] B[S/ SWHTC1 1B3C SWHTCH 1B34 SWTBL 3FB2 TAB 0009 TABFIL 3EF2 TABPOS 3EC4 TARGS(  USEDLN 3E60 USRMSG 4172 VALCHR 2CF2 VALIDX 14F7 VALREG 05E4 VC 2461 VCHAR 27AF VRPEX5 27D5 VRPEX6 27D8 VRPEXE 2774 VRSTRT 263A VRTHOR 3E6F VRTSE1 20F4  TDL Macro assembler Page 15 VEDIT - VED-MAIN +++++ Symbol Table +++++ VLOOP2 2001 VLOOP3 200D 44 WRTEOL 322D WRTFI1 083D WRTFI3 085B WRTFIL 082B WRTFIX 0D51 WRTL1 3185 KE1 0477 VGTKE2 0493 VGTKE3 0498 VGTKE4 049E VGTKE5 04BC VGTKE6 04C8 VGTKEY 0472  WRITE 0015 WRTAD1 0233 WRTAD2 0235 WRTAD4 0245 WRTADD 021A WRTB1 0B1E WR2423 VCHAR1 2426 VCHAR2 244A VCHAR3 2457 VCHAR4 245A VCHARA 2424 VCHCR 2510  VRTSE2 20F9 VRTSET 20E9 VRTVER 3E6E VSEXIT 2646 VSTACK 413E VSTAR1 03E6 VSTARVLOOP4 2011 VLOOP5 2020 VLOOP6 2035 VLOOP7 2040 VMAIN 1F80 VMAIN3 1F93 VMAIN4 1F WRTL2 3188 WRTL4 319E WRTL5 31CC WRTLF 31E2 WRTLI1 3143 WRTLI2 314A WRTLIN  VGTOP1 2873 VGTOP2 2884 VGTOP3 288F VGTOP9 2898 VGTOPT 2865 VGTST0 28B6 VTB2 0B2F WRTB3 0B46 WRTB4 0B54 WRTBND 0AF0 WRTBR0 33B5 WRTBR1 33C6 WRTBR2 33CC VCHCR1 252D VCPTXT 2695 VD137 0000 VDONE 2649 VDONE1 264A VDONE3 0413 VDTMS4 03F7 VSTART 03DA VSTCHR 28F4 VSTLIN 1FC6 VSTSCR 1FB2 VSVTXT 26A3 VTAB 253C 95 VMAIN5 1F9D VMARK 2599 VMVTXT 2694 VNOOP 2461 VPRINT 26F4 VRAM DC00 3131 WRTLN2 3160 WRTLN3 3174 WRTLN4 317F WRTLNA 310E WRTMS1 33FB WRTMSG 33F8 GTST1 28E2 VGTST2 28EF VGTSTR 28A0 VINTX1 26D8 VINTXT 26CF VISCHR 019B VISFLG 3C2 WRTBRD 33A8 WRTCH2 3299 WRTCH3 32A3 WRTCH4 32B1 WRTCHR 328B WRTCON 1CB3 G 41E6 VEDCMD 1EC1 VERSMS 0112 VESC 2635 VEXIT 03FA VFIND 2715 VFIND1 2724  VUNDO 262F WACURV 3E8A WADSOF 3E8B WALHOR 3E8E WAPWPN 3E8C WCMD 147B WCM VREPL1 2749 VREPL2 2759 VREPL3 2763 VREPLC 2737 VRPCAN 27A1 VRPEX3 27AA VRPEX4  WRTOFF 3E6B WRTOU3 3245 WRTOUT 3204 WRTSC0 2FC0 WRTSC1 2FDA WRTSCR 2FA7 WRTSE1 VISMSS 33D9 VJUMP 25A7 VJUMP1 25B9