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 VJUMP2 25BC VLOOP 1FD0 VLOOP1 1FE7 WRTCR 31D0 WRTEN1 3200 WRTEN2 3202 WRTEND 31E5 WRTENT 3122 WRTEO1 323E WRTEO2 32 VFIND2 2729 VFIND3 2731 VGTBS 290E VGTCHR 046C VGTFN1 2855 VGTFND 2846 VGTD1 1493 WILDCH 3EEE WMSG 3C57 WRAPCL 3FC1 WRAPW1 2D36 WRAPWD 2D1E WRDSPN 2CF8 ) T 2FE1 WRTST1 32EC WRTST2 32F9 WRTST3 330D WRTST4 3312 WRTST5 3321 WRTST6 3330  for a new CRT terminal, you may wish to examine the 'VEDITZC.LST' or 'VEDIT8C.LST' file. This shows 158F YLCMD 156C YRCMD 1562 YSCMD 159E YSCMD1 15A9 YTCMD 153E YTCMD1 1549 ; IF CRTVRS, [ .INSERT VEDIT-T3 ;CRT Terminal TDL Macro assembler Page 2 VEDIT - Copyright (c) 1984 bC WTOPC1 0E5E WTOPCH 0E56 WTOPFL 3B7B WTPART 2FCD WTSCRL 2FE8 WTSLBK 3064  TDL Macro assembler Page 1 VEDIT - .IDENT VEDIT ;**************************************** ;*  WRTST7 334B WRTST8 335A WRTSTA 32D6 WRTTXT 0D39 WTAC31 228D WTACFL 3E66 WTA where the specific CRT table entries reside within the customized VEDIT. If you are experienced with  YVCMD 15B4 YWCMD 1555 YWCMD1 155D ZCMD 1164 ZER%HL 3607 ZIPCHK 2B07 .BLNKy CompuView Products, Inc. ;******************************************************** ;* * ;* CRT Terminal DeWTSLF 3025 WTSLF1 3028 WTSLF2 3029 WTSLF4 303E WTSLF6 304B WTSLF7 3058 WTSLF8 30 * ;* V E D I T * ;* * ;**************************************** ; ; Copyright (C) 1984 by CompuView PCL0 229D WTACL1 2259 WTACL2 2264 WTACL3 226F WTACL4 2292 WTACL5 22AB WTACL6 22B9  DDT, these may be modified while VEDIT is running. If you debug VEDIT with DDT, you may re-enter VEDIT. 0000:03 X .DATA. 0000" X .PROG. 0000' X pendent Routines and Tables * ;* * ;******************************************************** ; ; Copyright5E XACMD 14CF XACMD1 14DF XACMD2 14E2 XCMD 14A1 XICMD 14C7 XSCMD 14BC roducts, Inc. ; 1955 Pauline Blvd. ; Ann Arbor, MI 48103 ; ; Written By: Theodore Green ; ; Last Cha WTACL7 22C0 WTACL9 22D4 WTACLN 224B WTACT2 210B WTACT3 211C WTACTV 2105 W at location 103 Hex (4303 Hex for ORG 4200 system.) dd another entry to the CRT.ASM file. 2. If you find that you must debug your modifications  (C) 1984 by CompuView Products, Inc. ; 1955 Pauline Blvd. ; Ann Arbor, MI 48103 ; ; Written by: Theodore J. XSTKMX 0005 XTCMD 14E7 XTCMD1 14EF YACMD 15C8 YCMD 1506 YHCMD 15BE YICMD nge: Ted - Nov. 18, 1984 ; ] IF MEMVRS, [ .INSERT VEDIT-M3 ;Memory Mapped. .PRNTX /VEDIT-M3/ ] TBRFL 3E5C WTCLCH 0E4C WTERFL 3C28 WTFULL 2FD6 WTINDL 3097 WTINS 30B9 WTINS1 30B*  Green ; ; Last Change: Ted - Aug. 28, 1984 ; ; OUTCHR - Output character in Reg. C. ; Return: B, DE re C to CRT 01D2 CD2F04 CALL CHKKYB ;Poll for keyboard char. 01D5 D1 POP D ;Restore 01D6 C1 POP B ;Restore count in B F CD1D03 OUTCH1: CALL CRTVDN ;Enable normal video on CRT. ; 01C2 79 OUTCH2: MOV A,C ;Get the character back. 01C3 E67For lead in table. 01F3 CD5302 CALL CRTCRL ;Send cursor address lead in. 01F6 215003 LXI H,ADDOFF ;HL-> cursor address inf 80H ;Look at top bit of char. 01AD 213042 LXI H,REVVFL ;HL-> reverse video flag (80H if on) 01B0 BE CMP M ;Is high bit l and buffer any keyboard char. ; ; CRTSET - Address the cursor. ; Enter with L = vertical row #. Top row = 1. stored, HL destroyed. ; 019B VISCHR: 019B 79 OUTCHR: MOV A,C ;Get char. in A. 019C 4F OUTCHA: MOV C,A ;Save char in TDL Macro assembler Page 3 VEDIT - Copyright (c) 1984 by CompuView Products, Inc. 01D7 C9 RET ; ;  ANI 7FH ;Strip any high bit. 01C5 4F MOV C,A ;Put character in C. ; 01C6 CDD801 OUTCH3: CALL CRTCKK ;Poll for keyo. 01F9 7E MOV A,M ;Get column or line first switch. 01FA E601 ANI 1 ;Is the line # sent first? 01FC CA0202 JRZ CRTSEsame as reverse video flag? 01B1 CAC201 JRZ OUTCH2 ;Yes, it will be displayed correctly. ; 01B4 77 MOV M,A ;No, set  ; H = horizontal column #. Left column = 0. ; 01E5 C5 CRTSET: PUSH B ;Save char. in C. 01E6 D5 PUSH D 01E7 223 C 019D FE80 CPI 080H ;Is Bit 7 set? 019F DAAA01 JRC OUTCHS ;No, process normally 01A2 3A8543 LDA BIT7AL ;Get EP parCRTCKK - Polls and buffers any keyboard character after ; every 30 bytes are sent to CRT. ; 01D8 218442 CRTCKK: LXIboard char. every 30th. 01C9 213242 LXI H,VRTHOR ;HL-> virtual CRT pos. 01CC 34 INR M ;Account for CRT moving cursor to t1 ;Yes, D & E are set. 01FF 7A MOV A,D ;No, switch D & E. 0200 53 MOV D,E 0201 5F MOV E,A 0202 23 CRTSE1: INX H ;Hnew value of REVVFL 01B5 B7 ORA A ;Is character in normal video? 01B6 F2BF01 JP OUTCH1 ;Yes, change to normal video. 342 SHLD CRTVER ;Save as simulated cursor pos. 01EA 7D MOV A,L ;Get row # 01EB 323142 STA VRTVER ;Save as virtual rowameter value 01A5 E602 ANI 2 ;Is Bit 7 allowed on output? 01A7 C2C601 JRNZ OUTCH3 ;Yes, send unmodified character ;  H,CCOUNT ;HL-> slow poll counter 01DB 34 INR M ;Increment counter. 01DC 7E MOV A,M ;Get the count. 01DD FE1E CPI 30 he right. 01CD C5 OUTSAV: PUSH B ;Save count in B 01CE D5 PUSH D ;Save DE 01CF CD7205 CALL CONOUT ;Send char. in reg.L-> first byte offset. 0203 7B MOV A,E ;Get first addr. coordinate. 0204 86 ADD M ;Add the offset. 0205 E5 PUSH H ;S ; 01B9 CD1703 CALL CRTVDR ;Enable reverse video on CRT. 01BC C3C201 JMPR OUTCH2 ;Now send the character out. ; 01B # 01EE EB XCHG ;Save pos. in DE. 01EF 1D DCR E ;Adjust so that top left is 0,0. 01F0 213B03 LXI H,ADDLED ;HL-> curs ; If Bit 7 is set, use reverse video control sequences ; 01AA 79 OUTCHS: MOV A,C ;Get the character. 01AB E680 ANI ;Reached critical point? 01DF D8 RC ;No, return. 01E0 3600 MVI M,00 ;Yes, reset count. 01E2 C33004 JMP CHKKEY ;Pol+ ave HL-> ADDOFF. 0206 CD1F02 CALL WRTADD ;Send address to CRT, convert if necessary. 0209 214203 LXI H,ADDMID ;HL-> middl ;Init tens counter to '0' 023C 0C WRTAD2: INR C ;Tens = tens + 1 023D D60A SUI 10 ;Subtract ten 023F D23C02 JRNC WRTd address in C to CRT. ; 0229 79 MOV A,C ;Yes, get address in A. 022A 013130 LXI B,03031H ;Get B = '0' is blanking fl 23 CRTCR1: INX H ;HL-> escape char. 0259 4E MOV C,M ;Get the next char 025A E5 PUSH H ;Save PTR 025B CD2F04 CALL C RET ; ; WRTADD - Send the cursor address in Reg. A to CRT and convert ; to Ascii if necessary. HL and BC clobigit to the CRT. (Zero not blanked) ; ; CRTCRL - Send escape sequence to CRT and perform any necessary delay. ; Ee char. table. 020C CD5302 CALL CRTCRL ;Send any chars between first and second byte. 020F E1 POP H ;Restore HL. 0210 2AD2 ;Branch until underflow ; 0242 C63A ADI '0'+10 ;Restore from underflow and make Ascii 0244 0D DCR C ;Restore frag, C = '1'. ;If your CRT needs leading zeroes, let B = 2F hex. 022D FE64 CPI 100 ;Is pos. > 99? 022F DA3A02 JRC HKKYB ;Poll keyboard 025E CDCD01 CALL OUTSAV ;Send to CRT 0261 E1 POP H ;HL-> next char 0262 05 DJNZ CRTCR1 ;Continbered. ; ;{CRTSET} TDL Macro assembler Page 4 VEDIT - Copyright (c) 1984 by CompuView Products, Incnter: HL-> escape sequence table, consisting of escape ; sequence count byte, followed by the bytes making up the ; 3 INX H ;HL-> second byte offset. 0211 7A MOV A,D ;Get second addr. coordinate. 0212 86 ADD M ;Add the offset. 0213 om underflow 0245 F5 PUSHA ;Save Ones digit 0246 79 MOV A,C ;Get the tens digit 0247 B8 CMP B ;Is tens count zero, WRTAD1 ;No, branch around 0232 D664 SUI 100 ;Yes, subtract the 100 0234 05 DCR B ;Clear the blanking flag 0235 F5 PUue sending bytes. 0266 C1 POP B ;Restore BC 0267 23 INX H ;HL-> delay byte 0268 7E MOV A,M ;Get the delay in millise. 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 sequence, followed by any delay in milliseconds. ; 0253 7E CRTCRL: MOV A,M ;Get the char. count. 0254 B7 ORA A ;TesCD1F02 CALL WRTADD ;Send address to CRT, convert if necessary. ; 0216 214903 LXI H,ADDEND ;HL-> cursor address end taband to be blanked? 0248 CA4E02 JRZ WRTAD4 ;Yes, don't send zero to CRT 024B CDCD01 CALL OUTSAV ;Send the tens count to CSHA ;Save count 0236 CDCD01 CALL OUTSAV ;Send the '1' 0239 F1 POPA ;Restore count ; 023A 0E30 WRTAD1: MVI C,'0'conds 0269 B7 ORA A ;Is there a delay? 026A C8 RZ ;No, return now TDL Macro assembler Page 5 VEDIT - C Binary or Ascii address switch. 0224 E680 ANI 80H ;Is address to be converted to Ascii? 0226 CACD01 JRZ OUTSAV ;No, sent for initial zero. 0255 C8 RZ ;Yes, return now. 0256 C5 PUSH B ;Save BC 0257 47 MOV B,A ;Put the count in B. 0258le. 0219 CD5302 CALL CRTCRL ;Send any chars to end sequence. 021C D1 POP D 021D C1 POP B ;Restore char in C. 021E C9RT ; 024E F1 WRTAD4: POPA ;Restore Ones digit 024F 4F MOV C,A ;Put digit in C 0250 C3CD01 JMP OUTSAV ;Send the d, opyright (c) 1984 by CompuView Products, Inc. 026B C31838 JMP DELAY ;Yes, do a delay ; ; ; Clear Screen Routin ;Set flag to write new status line 029B 3A3342 LDA CRTVER ;Get line # from which to clear. 029E 47 MOV B,A ;Save number} 028A 212342 CLRSC2: LXI H,USEDLN ;HL-> # screen lines not clear. 028D BE CMP M ;Is screen below last used line clear? 0tion the cursor. 02BF CDCA02 CALL CRTEOL ;Erase the line. 02C2 212342 LXI H,USEDLN ;HL-> # screen lines not clear. 02C5 screen is not available ;Note that A = 00 0276 CD1736 CALL STBRFL ;Set flag to write new status line 0279 215303 N ;HL-> # screen lines not clear. 02B2 BE CMP M ;Is screen below LINCNT clear? 02B3 D28302 JRNC CLRCUR ;Yes, return, fores. ; ; CLRSCR - Clear entire screen. First try to use Clear Screen sequence. ; A count of 080H means the machin. 029F 215A03 LXI H,ESCEOS ;HL-> escape char. table. 02A2 7E MOV A,M ;Get count for EOS sequence. 02A3 B7 ORA A ;Does28E D28302 JRNC CLRCUR ;Yes, return. 0291 3C INR A ;No, get line # of first line to clear. 0292 6F MOV L,A ;Get line 35 DCR M ;Account for line just erased. 02C6 F1 POP PSW ;Restore last used line #. 02C7 C3AE02 JMPR CTEOS1 ;Continue.LXI H,ESCCLR ;HL-> escape char. table 027C CD5302 CALL CRTCRL ;Perform the clear 027F AF XRA A ;Get a zero 0280 322342 ce cursor set. TDL Macro assembler Page 6 VEDIT - Copyright (c) 1984 by CompuView Products, Inc. ; 02B6 e is emulating a terminal. In ; this case it is more efficient to not perform a clear. Instead, ; an EOL will be  CRT have EOS sequence? 02A4 78 MOV A,B ;Get back line # for performing EOS. 02A5 CAAE02 JRZ CTEOS1 ;No, simulate EOS wi# for begin of EOS. 0293 2600 MVI H,00 ;Start at left margin. 0295 CDE501 CALL CRTSET ;Address the cursor. ;Eras ; ; CRTEOL - Clear to end of Line from cursor position. ; 02CA 213342 CRTEOL: LXI H,CRTVER ;Get current cursor li STA USEDLN ;No lines are in use 0283 210000 CLRCUR: LXI H,0000 ;Get two zeros 0286 223142 SHLD VRTVER ;Force CRT curso3C INR A ;A = original line # for EOS. 02B7 F5 PUSH PSW ;Save line # for EOS. 02B8 7E MOV A,M ;No, get last used linesent as each new screen line is written. ; 026E 3A5303 CLRSCR: LDA ESCCLR ;Get count for Clear sequence 0271 B7 ORA A th multiple EOLs. 02A8 322342 STA USEDLN ;Yes, update # used lines. 02AB C35302 JMPR CRTCRL ;Perform the screen clear. e rest of the screen. ; ; CRTEOS - Clear to end of Screen from cursor position. ; 0298 CD1736 CRTEOS: CALL STBRFL ne #. 02CD 3A2342 LDA USEDLN ;Get # screen lines used. 02D0 BE CMP M ;Is rest of current line clear? 02D1 D8 RC ;Yer set 0289 C9 RET ; ; ; CLRSC2 - Clear rest of screen from begin of next line # in Reg. A. ; ;{UPDSCR #. 02B9 6F MOV L,A ;Set to line to be erased. 02BA 2600 MVI H,00 ;Set to column zero. 02BC CDE501 CALL CRTSET ;Posi ;Is this function available? 0272 F8 RM ;80H means emulation is taking place 0273 CA8A02 JRZ CLRSC2 ;Use EOS if Clear  ; ; Simulate an EOS using multiple EOLs. ; 02AE 3D CTEOS1: DCR A ;Adjust for CMP below. 02AF 212342 LXI H,USEDL- s, return. ;{WTSLFW} 02D2 216103 CREOL0: LXI H,ESCEOL ;HL-> escape char. table. 02D5 7E MOV A,M ;Get count for EOL ; ; CRTFSL, CRTBSL - Perform forward and backward scroll on CRT. ; 030B 217603 CRTFSL: LXI H,ESCFSL ;HL-> escape cC31D03 JMPR CRTVDN ;;Turn reverse video off. ; ; ; CRTINS, CRTDEL - Insert and delete a line on the CRT. ; No H,ESCEXT ;HL-> escape char. table. 0338 C35302 JMP CRTCRL ;Reset CRT on visual mode exit. ; ; ; These are the tnd a space to the CRT. 02EA 05 DCR B ;Decrement count. 02EB C3E402 JMPR CREOL1 ;Continue. ; 02EE 2A3342 CREOL2: LHD - Enable and disable the 25th status line. ; 0323 219203 CRTSTE: LXI H,ESCSTE ;HL-> escape char. table. 0326 C35302 J sequence. 02D6 B7 ORA A ;Does CRT have EOL sequence? 02D7 C25302 JNZ CRTCRL ;Yes, perform the line clear. ; ; Shar. table. 030E C35302 JMP CRTCRL ;Scroll forward. ; 0311 217D03 CRTBSL: LXI H,ESCBSL ;HL-> escape char. table. 0314te: Some CRTs need to be a special mode for Insert and Delete. ; 02FF 216803 CRTINS: LXI H,ESCINS ;HL-> escape char. tableerminal dependent Escape sequence tables. ; They are set during customization by selecting a CRT in the menu. ; ; ADLD CRTVER ;Get desired cursor pos. 02F1 C3E501 JMP CRTSET ;Reset the cursor. ; ; REVOFF - Make sure reverse video CMP CRTCRL ;Enable status line. ; 0329 219903 CRTSTD: LXI H,ESCSTD ;HL-> escape char. table. 032C C35302 JMP CRTCRL ;Dimulate EOL by sending out spaces to end of line. ; 02DA 3A9943 LDA LINELN ;No, get display line length. 02DD 213442  C35302 JMP CRTCRL ;Scroll backward. ; ; CRTVDR, CRTVDN - Enable and disable reverse video characters. ; 0317 21. 0302 C35302 JMP CRTCRL ;Insert a line. TDL Macro assembler Page 7 VEDIT - Copyright (c) 1984 by CompuViewDLED, ADDMID and ADDEND are for Cursor Addressing. ; 033B 02 ADDLED: DB 2 ;Count for Cursor Lead In. 033C 1B DB 01BH RT mode is off. ; ;{WRTLIN} 02F4 213042 REVOFF: LXI H,REVVFL ;HL-> reverse video flag 02F7 7E MOV A,M ;Get flaisable status line. ; ; CRTENT, CRTEXT - Setup and Reset the CRT for Visual mode editing. ; 032F 21A003 CRTENT: LXLXI H,CRTHOR ;HL-> horiz. cursor pos. 02E0 96 SUB M ;Compute # pos. to clear. 02E1 47 MOV B,A ;Put count in B. 02E2 0E28403 CRTVDR: LXI H,ESCVDR ;HL-> escape char. table. 031A C35302 JMP CRTCRL ;Enable reverse video mode. ; 031D 218B03  Products, Inc. ; 0305 216F03 CRTDEL: LXI H,ESCDEL ;HL-> escape char. table. 0308 C35302 JMP CRTCRL ;Delete a line. ;First byte of sequence. 033D 59 DB 059H ;Second byte. 033E 00000000 DB 00,00,00,00 ;Spare bytes. ; 0342 00 ADDMID: g 02F8 B7 ORA A ;Is the reverse video flag set? 02F9 C8 RZ ;No, return. 02FA 3600 MVI M,00 ;Yes, clear flag. 02FC I H,ESCENT ;HL-> escape char. table. 0332 C35302 JMP CRTCRL ;Setup CRT on Visual mode entry. ; 0335 21A703 CRTEXT: LXI0 MVI C,20H ;Clear with spaces. 02E4 CAEE02 CREOL1: JRZ CREOL2 ;Branch when count is zero. 02E7 CDCD01 CALL OUTSAV ;SeCRTVDN: LXI H,ESCVDN ;HL-> escape char. table. 0320 C35302 JMP CRTCRL ;Disable reverse video mode. ; ; CRTSTE, CRTST. DB 0 ;Count for chars between X & Y. 0343 00 DB 00 ;Note: some require a "," between the X & Y. 0344 00 DB 00 0345 000000,00,00 ;Spare bytes. ; 0376 01 ESCFSL: DB 01 ;Count for FORWARD SCROLL sequence. 0377 0A DB 0AH 0378 00 DB 00H 0unt for EOS sequence. 035B 1B DB 01BH 035C 4A DB 04AH 035D 00000000 DB 00,00,00,00 ;Spare bytes. ; 0361 02 ESCEOL:B 00H 03A2 00 DB 00H 03A3 00000000 DB 00,00,00,00 ;Spare bytes. ; 03A7 00 ESCEXT: DB 00 ;Count for EXIT VISUAL MODE n addresses. ; 0350 00 ADDOFF: DB 0 ;Bit 0 : 0 = ROW first then COLUMN ; 1 = COLUMN first then ROW ;Bit ght (c) 1984 by CompuView Products, Inc. 038C F2 DB 0F2H 038D 00 DB 00H 038E 00000000 DB 00,00,00,00 ;Spare bytes. 0000 DB 00,00,00,00 ;Spare bytes. ; 0349 00 ADDEND: DB 0 ;Count for terminate chars. 034A 00 DB 00 034B 00 DB 00 379 00000000 DB 00,00,00,00 ;Spare bytes. ; 037D 02 ESCBSL: DB 2 ;Count for BACKWARD SCROLL sequence. 037E 1B DB 01BH DB 2 ;Count for EOL sequence. 0362 1B DB 01BH 0363 4B DB 04BH 0364 00000000 DB 00,00,00,00 ;Spare bytes. ; 0368 0sequence. 03A8 00 DB 00H 03A9 00 DB 00H 03AA 00000000 DB 00,00,00,00 ;Spare bytes. ; ; 03AE DS 40H ;User Pa7 : 0 = Address in Binary ; 1 = Address in Ascii 0351 20 DB 020H ;First offset 0352 20 DB 020H ;Second offset.  ; 0392 00 ESCSTE: DB 00 ;Count for ENABLE STATUS LINE sequence. 0393 00 DB 00H 0394 00 DB 00H 0395 00000000 DB 00,00034C 00000000 DB 00,00,00,00 ;Spare bytes. TDL Macro assembler Page 8 VEDIT - Copyright (c) 1984 by CompuView  ;The "Insert Line" should work too. 037F 4C DB 04CH 0380 00000000 DB 00,00,00,00 ;Spare bytes. ; 0384 01 ESCVDR: DB2 ESCINS: DB 2 ;Count for INSERT LINE sequence. 0369 1B DB 01BH 036A 4C DB 04CH 036B 00000000 DB 00,00,00,00 ;Spare bytch space. ] TDL Macro assembler Page 10 VEDIT - VEDIT-IO Copyright (c) 1984 by CompuView Products, In ; ; Escape sequence table for other functions. ; 0353 00 ESCCLR: DB 00 ;Count for CLEAR sequence. 0354 00 DB 0,00,00 ;Spare bytes. ; 0399 00 ESCSTD: DB 00 ;Count for DISABLE STATUS LINE sequence. 039A 00 DB 00H 039B 00 DB 00HProducts, Inc. ; ; ADDOFF - Table for Cursor addressing information. Specifies whether ; the address is sent i 01 ;Count for BEGIN REVERSE VIDEO sequence. 0385 F2 DB 0F2H 0386 00 DB 00H 0387 00000000 DB 00,00,00,00 ;Spare bytes. tes. ; 036F 02 ESCDEL: DB 2 ;Count for DELETE line sequence. 0370 1B DB 01BH 0371 4D DB 04DH 0372 00000000 DB 00,c. ; ; These are the alternate Console I/O entry points when direct ; I/O calls in MP/M are used. Note that altho0H ;First byte. 0355 00 DB 00H ;Second byte. 0356 00000000 DB 00,00,00,00 ;Spare bytes. ; 035A 02 ESCEOS: DB 2 ;Co 039C 00000000 DB 00,00,00,00 ;Spare bytes. ; 03A0 00 ESCENT: DB 00 ;Count for ENTER VISUAL MODE sequence. 03A1 00 Dn binary or Ascii and whether the row ; or column byte is sent first, and the offset to add to the ; row and colum ; 038B 01 ESCVDN: DB 01 ;Count for END REVERSE VIDEO sequence. TDL Macro assembler Page 9 VEDIT - Copyri/ ugh BDOS CALL 6 ; is used, these routines only work for MP/M since CP/M 2.2 and ; MP/M are quite different in this regarter in E. 0563 0E05 MVI C,5 ;Perform BDOS listing. 0565 C30500 JMP BDOS ;Send char. to listing through CPM. 0568 DS 53F DS 6 ;Patch space for STA TEMPCH, RET ; 0545 0E06 MPMIN: MVI C,CONSIO ;No, perform direct console input. 0547 1EF26 APPEN3 11F9 APPEN4 1212 ATBFSW 4376 ATTFLG 3FE2 ATTLS1 058D ATTLS2 0598 Console Status 0526 116C05 SETCP1: LXI D,CONST ;DE-> Internal I/O jump vectors 0529 C3813A JMP MOVE12 ;Set I/O vectors (1 ACTPNT 4247 ACTSIZ 424B ADAAHL 383B ADCRLF 27CC ADDAC1 2707 ADDAC2 2711 ADd. Enough patch space ; is provided for conversion to CP/M 2.2, or for special user ; interfacing. ; ; SETIO - 4 ;Patch space. ; ; ; Internal copy of BIOS I/O jump vectors. ; 056C C30000 CONST: JMP 00 ;Console status. F MVI E,0FFH ;FF denotes console input. 0549 C30500 JMP BDOS ;Get console char. when available. 054C DS 12 ;Patch sp ATTLS3 05A9 ATTLST 0578 ATVSSW 4377 AUTEXE 0F1B AUXESC 42AE AUXFCB 45B5 AUXOPN 2 bytes) and return ; ; 052C C33805 MPMTBL: JMP MPMST ;This table is copied to the BIOS jump 052F C34505 JMP MPMINDACT 26FA ADDAHL 383C ADDCH1 27C2 ADDCHR 27C1 ADDEND 0349 ADDIND 27D6 ADDLED 033BSet up internal copy of Console I/O vectors. ; Normally use BIOS, unless MPM - then use BDOS #6 ; 0517 CD1C0B SETIO:056F C30000 CONINA: JMP 00 ;Get console character. 0572 C30000 CONOUT: JMP 00 ;Send console character. 0575 C30000 LSTOUTace. ; 0558 59 MPMOUT: MOV E,C ;Put the character in E. 0559 0E06 MVI C,CONSIO ;Perform direct console I/O. 055B C3053F40 BACKL1 25B6 BACKL2 25C5 BACKLN 25AD BACKT1 2D84 BACKTB 2D75 BAKLIN 1A3A  ;vectors below for the MPM version. 0532 C35805 JMP MPMOUT 0535 C36205 JMP MPMLST ; 0538 0E06 MPMST: MVI C,CONSIO  ADDMBC 3852 ADDMID 0342 ADDOFF 0350 ADDSP 27BE ADDSTA 3786 ADDTBL 439D  CALL MPMCHK ;;Is MP/M running? 051A 212C05 LXI H,MPMTBL ;For MPM use MPM I/O routines 051D C22605 JRNZ SETCP1 ;Yes, mer: JMP 00 ;Send listing character. TDL Macro assembler Page 11 VEDIT - VED-MAIN +++++ Symbol Table +++++ ACMD00 JMP BDOS ;Send char. to console through CPM. 055E DS 4 ;Patch space. ; 0562 59 MPMLST: MOV E,C ;Put the charac BAKLN2 1A29 BAKSTR 404F BASE 0000 BASEVR 0001 BCKAT2 2378 BCKAT4 237B BCKAT;Perform direct console I/O. 053A 1EFE MVI E,0FEH ;FE denotes console status. 053C C30500 JMP BDOS ;Get input status. 0ADJMR1 3944 ADJMR2 3956 ADJMRK 393F ADJPN1 3912 ADJPNT 3906 ADJ%HL 395E ALWTBL 01ge in below ; 0520 2A0100 LHLD BASE + 0001 ;HL-> BIOS 0523 23 INX$ H 0524 23 INX$ H 0525 23 INX$ H ;HL-> BIOS  11E5 ACTBUF 4506 ACTCNT 423B ACTEND 4245 ACTEOF 2F22 ACTLEN 0104 ACTLF 4505 0 V 2355 BCMD 122F BCMD1 1234 BDFMSG 414F BDOS 0005 BDOSSV 083E BDSCHK 0718 SPC 0E55 CHK%HL 398C CHRTBL 42A9 CLOSE 0010 CLOSE1 08A8 CLOSE2 08B7 CLOSE3 08F2 4095 CHGAC1 26F4 CHGACT 26C9 CHGFOR 1A6B CHGPT1 1A69 CHGPTR 1A4C CHGTBL 3865 N 0EC0 CNTFIL 0EB8 CNTLFB 0EC8 CNTOUT 4254 CNTPMT 404D CNTSC1 2576 CNTSCR 2575  BRDRCH 42B4 BRDSTT 33C2 BREAK 1EA6 BRKCH1 1EA0 BRKCHK 1E8F BRKMSG 407F 61 CMDEND 3F55 CMDERR 1DBC CMDESC 113E CMDGET 3F51 CMDLIT 114D CMDPMT 0179  BEGFLG 4005 BEGIN 05AF BEGIN1 05EA BEGIN2 0614 BEGIN4 0620 BEGIN5 0629 BEG CLOSER 08A5 CLRAUX 0A9D CLRCUR 0283 CLRREG 1F00 CLRSC2 028A CLRSCR 026E C CHKBRD 3621 CHKCU1 22E0 CHKCU2 22ED CHKCU3 22F0 CHKCU5 22FA CHKCUR 22D7 CHKEN CNTVER 2572 CNVDC1 1064 CNVDEC 1061 CODTYP 0002 COLFLG 3FE1 COLMSG 4267 COLBS 0008 BSCCNT 11B4 BSCNT1 11BD BSCNT2 11C0 BSCNT3 11CC BSCNT4 11DA BSTACK 44 CMDPUT 3F53 CMDRUB 1153 CMDSPR 0032 CMENST 1B34 CMHLBC 3A1F CMHLDE 3A13 CMINBC IN6 0667 BEGIN7 0606 BGNPNT 010A BGPAR0 30D8 BGPARA 30DA BIT7AL 4385 BKSP1 2C12 LSAUX 0AC7 CLSBDS 0939 CLSER2 092A CLSERR 0927 CLSFIL 0955 CLSMSG 4027 CLSOUT 093D 0A58 CHKEO1 085C CHKEO2 085D CHKEOF 0848 CHKEX1 1FCE CHKEX2 1FDD CHKEXE 1FBE SW 437C COMMON 0003 COMPFL 3FF5 CONIN 04F3 CONIN1 0503 CONINA 056F CONOUT 0572 B5 BUFFD1 3900 BUFFDW 38D9 BUFFU1 38B8 BUFFUP 38A9 BUFSTA 045F CALLRT 1E8B 3A2E CMINDE 3A25 CMNTCH 4382 CMPBLK 37F9 CMPCL 3137 CMPCLE 37B8 CMPEND 0DFA  BKSPAC 2BF7 BLKCHK 37F9 BLKLIN 311E BLKSP0 2F14 BLKSP1 2F17 BLKSPN 2F11 BL0 CLSREN 0965 CLSSRC 0949 CLVSSW 437A CMBASE 3F57 CMBCDE 3A19 CMDBEL 1136  CHKKEY 0430 CHKKYB 042F CHKPNT 3977 CHKSP1 0E5E CHKSP2 0E5F CHKSP3 0E68 CHK CONSIO 0006 CONST 056C CONTCH 42AD CONVUC 37A8 CPMVER 3F5B CR 000D C CANCEL 2BEE CCIR0 3B0C CCIRRT 3B0D CCMD 124E CCMD1 1251 CCOUNT 4284 CHDMSG  CMPLE 37BB CMPSTL 3133 CMPWRT 0E0C CNFMSG 432D CNTADD 43BF CNTBFL 4253 CNTBGMVEN 05C5 BLNKRT 437F BOFFLG 3F3B BRDNM1 36F5 BRDNM2 3716 BRDNM3 371F BRDNUM 36CACMDBS 117A CMDBS1 1196 CMDBS2 119C CMDCHR 3FDC CMDDEL 1172 CMDEC1 1164 CMDECH 111 RDOW1 2CBE CRDOW2 2CC9 CRDOW3 2CCB CRDOW4 2CDC CRDOW5 2CE6 CRDOW6 2CF6 CRDOW7 2CF CURUSR 3F5E CURVER 4237 C%Z%NZ 1CC1 DCINHL 384C DCMD 1255 DEBUG 0000 DECBLZ 3VDN 031D CRTVDR 0317 CRTVER 4233 CRTVRS 0001 CRUP 2C9D CRUP1 2CAF CRUP2 2CB2  DVHOR3 256F EACMD 079F EASAV1 061B EASAV2 061D EBCMD 16FA ECCMD 170E E3064 CRNXW2 306A CRNXW3 3073 CRNXW4 3079 CRNXWD 3061 CRPVW1 3041 CRPVW2 3055  DISKW 09A5 DISKW1 09AA DISPAT 0FC2 DISPCL 425A DISPLN 4258 DISPT2 0FC8 DIV127 CRDOW8 2CFA CRDOW9 2CDF CRDOWN 2CBC CREATE 0016 CREAUX 0AA8 CREBRK 0779 FE9 DECDIV 3FE7 DECITR 1A81 DECOP 39F5 DECSEC 0EDE DECSTK 39F8 DEFDMA 0080  CRUP3 2CB4 CRUPRT 2D3A CRVTBT 4398 CRVTTP 4397 CRZEND 2E2F CRZIP 2DA2 CCCMD1 172A ECCMD2 1730 ECMD 125B EDCMD 1745 EDCMD1 175C EDCMD2 1761 EDCMD3 176 CRPVWD 3037 CRRGHT 2EB2 CRTAB 2D87 CRTBSL 0311 CRTCKK 01D8 CRTCR1 0258 CRTCR8 0E13 DIVHOR 2558 DLNXW1 309E DLNXW2 30B8 DLNXWD 309A DLPVW1 308F DLPVWD 3082  CREERR 0776 CREFIL 078F CREMSG 403C CREOL0 02D2 CREOL1 02E4 CREOL2 02EE CREOU2 0 DEFFCB 005C DELAC1 2C36 DELACT 2C1B DELAY 3818 DELAY1 381F DELAY2 3824 DELBAKRZIP1 2DAE CRZIP2 2DBC CRZIP3 2DD0 CRZIP4 2DD4 CRZIP5 2DCE CTEOS1 02AE CTLDEC 3E93 EDTHOR 4239 EDTPTR 3F4B EFCMD 08B7 EGBGLN 45D8 EGBGPT 45DE EGCMD 17A0 L 0253 CRTDEL 0305 CRTENT 032F CRTEOL 02CA CRTEOS 0298 CRTEXT 0335 CRTFSL 030B  DLYVAL 438D DMABDS 083C DSBCB 3AFA DSBCD 3B03 DSKMSG 4360 DSKREV 0B26 DSP74B CREOUT 0727 CRHMZD 2E35 CRHOM1 2E29 CRHOME 2E09 CRLEFT 2EAC CRLF 1DE2  096E DELBDS 0988 DELETE 0013 DELFLG 3F3A DELPTR 3F59 DELREV 0B38 DIGCHK 37EE 2 CTRLSS 1E9D CURCNT 423C CURHOR 4238 CURLIN 422A CURSCH 42B2 CURTYP 437E  EGCMD0 17D0 EGCMD1 17E5 EGCMD2 180A EGCMD3 181A EGCMD4 181D EGCMD5 1836 EGCMD6 1 CRTHOR 4234 CRTINS 02FF CRTSE1 0202 CRTSET 01E5 CRTSTD 0329 CRTSTE 0323 CRTTBL 3B2A DV1 3A5B DV2 3A5D DVDEHL 3A4F DVHLDE 3A50 DVHOR1 255B DVHOR2 2564  CRLF1 2F3E CRLFPR 2F30 CRMSG 4044 CRNXL1 2DEF CRNXL2 2E03 CRNXLN 2DEA CRNXW1  TDL Macro assembler Page 12 VEDIT - VED-MAIN +++++ Symbol Table +++++ DISKR 098D DISKR1 0997 2 83B EGCMD7 1861 EGENLN 45DA EGEOFF 45D7 EGINFL 45D6 EGLEND 45DC EICMD 18AD  1941 EZCMD2 1966 FAKFLG 4228 FAKSC0 3402 FAKSC1 340F FAKSC2 3428 FAKSCR 3404 6 ESCINS 0368 ESCMD 198C ESCMD1 1991 ESCNP1 42AB ESCNP2 42AC ESCNUM 4285 1EF FORML7 31FD FORML8 3214 FORML9 3218 FORMP1 314B FORMP2 3161 FORMP3 3195  EOLFLG 4227 EOT 001A EPCMD 1933 EQCMD 1942 EQCMD1 1956 ERCMD 197C ERE FNDEX4 2AD5 FNDEX5 2AAE FNDEXE 2A8C FNDFLG 4001 FNDLIN 19F9 FNDLN1 1A07 F EICMD0 010E EICMD2 18B0 EICMD3 18C5 EKCMD 18D3 EKMSG 40BA EKOCML 10B4 ELCMD  FALSE 0000 FCBADD 3841 FCBCHR 0A64 FCBK3 0CD2 FCBKUP 0CA7 FCBVA1 0A80 FCBVA ESCSTD 0399 ESCSTE 0392 ESCTB1 3B92 ESCTB2 3C12 ESCVDN 038B ESCVDR 0384 ETCMD 1 FORMP8 31AA FORMPA 313D FRCFLG 423A FRCSET 2F53 FRCST0 2F4E FRCST2 2F55 FREESPOL 2C57 EREOL1 2C68 EREOL2 2C70 ERLINE 2C76 ERRCON 09B7 ERRHND 1363 ESC 001B NDLN2 19FC FNDLN3 1A18 FNDLN4 1A1C FNDLN5 1A31 FNDMSG 42F5 FNDTA1 380B FNDTAB 37F179B ELCMD1 1864 ELCMD4 188C ELCMD6 18AA ELFLG 45E0 ELLNFL 45E1 ENDCH1 2F0B L 0A7D FCMD 1269 FCMD1 126C FCMD2 127C FCMD3 1290 FILL 3AC7 FILLCH 42B3 9A6 ETCMD1 19AB ETCMD2 19B9 ETCMD3 19CA ETCMD4 19D4 ETMSG 41F2 EVCMD 19D8  1A96 FRMBAK 0784 FRMCH1 3269 FRMCHR 325B FRMEL1 329F FRMELN 3291 FRMEND 4278  ESCBSL 037D ESCCH1 42A9 ESCCH2 42AA ESCCLR 0353 ESCDC1 3C92 ESCDC2 3D92 EF FNFBRK 18E8 FNFMSG 415C FORCML 112B FORMAB 3160 FORMD1 324C FORMDN 3237  ENDCH3 2F0E ENDCHK 2EF8 ENDITR 1D54 ENDLS1 1931 ENDLST 190A ENDMSG 42B6 ENDTR FILLFC 0A76 FILLWC 0A74 FILLZ 3AC6 FILMSG 426F FIRINI 3F3A FIXALL 1F2F FIX EWCMD 19DE EXCMD 19ED EXIT 0000 EXPTSW 4375 EXTTBL 3B5E EYCMD 08A5 EZCMD  FRMGET 4276 FRMIND 4280 FRMLBG 427C FRMPOS 427E FRMREN 077C FRMSAV 427A FRMVSCDEL 036F ESCENT 03A0 ESCEOL 0361 ESCEOS 035A ESCEXT 03A7 ESCFLG 3F43 ESCFSL 037 FORMI1 3285 FORMIN 3281 FORML1 31AD FORML2 31D4 FORML3 31E0 FORML4 31E3 FORML5 3M 1B68 ENPARA 30E8 ENTFCB 343F EOCMD 18EE EOF 001A EOFCHK 3793 EOFSCR 421E HL 385C FIXR1 200B FIXREG 2006 FNDEX0 2A9C FNDEX1 2AC7 FNDEX2 2AD9 FNDEX3 2AE3 3 IS 2168 FRMVS1 216B FSACSC 423D FULL 0001 FULLFG 3F42 FULMSG 42C8 FXCMP1 1FF8 IDVA 4390 INIFLG 4391 INIMS1 4506 INISPR 1800 INITR1 05D3 INITRT 0678 INITT1 3B1B 284A HZRGH1 2853 HZRGHT 2850 HZRTL1 2866 HZRTLF 285B HZRTRG 287E HZSCBG 4224  LF 000A LINCHG 4222 LINCNT 421B LINEL1 439B LINELN 4399 LINETG 2D6F LINFA GETNUM 101A GETRN0 2071 GETRN1 2077 GETRN2 207A GETRN3 209B GETRN4 20A1  Page 13 VEDIT - VED-MAIN +++++ Symbol Table +++++ JMSGBR 193E JNEWCM 113B JNEWOV 1177 JPRMER 1 FXCMPT 1FE3 FXRST1 201D FXRSTK 2017 FXSTK1 2EF6 GCMD 1293 GETAUX 09BF GET INITTB 3B1B INRDCH 0F11 INSBLK 1AE1 INSCHR 1AD9 INSFLG 438E INSLEN 1AA2 I HZSCEN 4225 HZSCIC 4388 HZSCLN 4387 ICMD 12CC ICMD1 12CF ICMD3 12EA IDXFIL 4256 LINLEN 0050 LINMSG 425C LINPOS 422B LINSC1 2F46 LINSCR 2F45 LINTBL 439D  GETRN6 20A6 GETRNA 20A5 GETRNM 206B GETSTA 0467 GETTXT 1FA4 GETVER 000C GLBFLG 4798 JPROCK 2262 JSTACP 2D06 JTOVIS 30CC JTOVS 2A89 KBFGET 3F47 KBFPUT 3F45 CH1 0476 GETCH2 0480 GETCHR 0470 GETCR1 2043 GETCR2 2046 GETCR4 205D GETCR5 205E NSLN1 1AAE INSMOV 1AC1 INSMSG 42C1 INSMV1 1AD6 INSSET 1313 INTDSK 0019 INUSR 3EDCB 3837 IDXTBL 383A ILGMSG 4052 INDDET 27EE INDDT0 27F1 INDDT1 27FE INDDT2 2807  LINVER 2F42 LITCHR 2670 LITESC 2679 LOGHOR 4235 LOGPOS 422C LOOKC1 37CA LOO003 HCMD 12A8 HCMD4 12C9 HELPFL 41FC HOLSIZ 4249 HORCHK 2FB1 HORFIX 2F88  KCMD 133A KCMD1 133D KEYBUF 0183 KEYDC0 25F0 KEYDC1 2614 KEYDC3 2605 KEYDEC GETCRN 2042 GETDEC 1014 GETIT1 1A7E GETITR 1A77 GETKEY 0485 GETLP0 2472 G4 ISFMSG 4067 ISPARE 4389 ITRCNT 3FDA ITRMCL 42AF ITRMCR 42B0 ITRSTK 3FB0  INDEN1 28F5 INDENT 28E6 INDINC 4380 INDPOS 4283 INFCB 005C INIDV0 438F INKCH 37C1 LSACSC 423E LSANY 0002 LSBUF 0000 LSCMFN 0000 LSCMRT 0000 LSCRTT 0001  HORFLG 4226 HORFX1 2F96 HORFX2 2F9F HOROPT 4386 HORRET 2FB8 HZENST 2873 HZLEFT 25ED LASINI 3F49 LCMD 1343 LCMD2 1360 LCMD4 136E LD5%HL 39EA LETCHK 37D6 ETLP1 2478 GETMNM 2062 GETNM1 1021 GETNM3 103A GETNM4 103D GETNM5 104E GETNM8 105 J1CRPV 303D JCBRK 18C1 JCRRGH 26F7 JJTOVS 2A01 JMAIN0 1DCE TDL Macro assembler 4  LSDECO 0000 LSFIL1 0000 LSFIL2 0000 LSIO 0000 LSMAIN 0000 LSMISC 0000 LF NEWAC5 23BC NEWAC6 23CB NEWAC8 23D6 NEWACT 2399 NEWCM0 109E NEWCM1 10CC  MPMIN 0545 MPMLMS 41BD MPMLST 0562 MPMOUT 0558 MPMST 0538 MPMTBL 052C MP OPNAU1 0ABF OPNAUX 0AB4 OPNFIL 0710 OPNSP1 0AE8 OPNSPC 0AD0 OPSTCK 4208  MAXMEM 3F4F MCMD 1374 MCMD1 1377 MCRMSG 4074 MEMVER 0000 MEMVRS 0000 MINBGN NLINES 0018 NOIMSG 410D NOMATC 1C22 NOMEMO 4137 NOOMSG 411A NOPERR 0721 NOPMSOPFL 3F41 LSTBLK 1904 LSTFLG 3FEC LSTOUT 0575 LSTREG 0000 LSTSET 169B LSV0 000 NEWCM2 10D3 NEWCM3 1125 NEWCM4 108E NEWCMD 1074 NEWLIN 2198 NEWOVR 1071 NEWSCR 2OPFL 3F3F MRKMSG 42E1 MRKSET 2841 MSGBRK 1EA9 MUL128 3A66 MULT1 3A69 MULT10 3A76OPTMSG 433D ORGUSR 3F5D OTOMSG 4128 OUTCH1 01BF OUTCH2 01C2 OUTCH3 01C6 OUTCHA 01 0E4A MINCHK 0E2A MINSEC 438B MINUS 3FDE MNFREE 0E3A MNHLDE 1A71 MOVAC1 2EDA SG 419B NOTSU1 1D37 NOTSUC 1D29 NSCROL 4221 NUMFLG 3FDD NWCMLP 10B7 NWSCFL 421A 0 LSV1 0000 LSV2 0000 LSV3 0000 LSW1 0000 LVLCON 0122 LVLLST 0123 19E NEXFI1 0CF6 NEXFI3 0D1B NEXFI4 0D22 NEXFI5 0D60 NEXFIL 0CDA NEXFR1 0D3A  MVCHST 389E MVCPFL 3F66 MVINDE 3A37 MVINHL 3847 MVTXDW 3AAE MVTXFL 2943 M9C OUTCHR 019B OUTCHS 01AA OUTFCB 3ED6 OUTFLD 1D7C OUTSAV 01CD OUTUSR 3ED5  MOVAC2 2EE3 MOVAC3 2EF1 MOVACT 2EB5 MOVE 3A83 MOVE12 3A81 MOVEB1 3877 MOVE NXCMC1 0FDD NXCMC2 1002 NXCMC3 1005 NXCMCH 0FDA NXPARA 30CF NXWOR1 2FD4 NX LVLRD 0125 LVLRT 0124 MAIN 0F3D MAIN0 0F30 MAKCP2 1F98 MAKCPY 1F3E MAKER1 1 NEXFR2 0D54 NEXFR3 0D5A NEXFR5 0D6A NEXFR9 0D75 NEXFRD 0D4B NEXTL1 3AEA NEXTL2VTXUP 3A9B MXHLDE 0E4F NAMERR 0A5E NCMD 1264 NEEDCR 3FE5 NEGBC 3A47 NEWAC2 239 P8086 0000 PACKTX 1B1C PAGED1 2E64 PAGED2 2E75 PAGED3 2E83 PAGED4 2E65 PAGEDW 2BC 3874 MOVEU1 3889 MOVEUP 3886 MPM 0001 MPMCHK 0B1C MPMDMS 41AA MPMFMS 4186 WOR2 2FD5 NXWOR3 2FDD NXWOR4 2FDE NXWOR5 2FE5 NXWORD 2FD1 OLDACT 423F OPEN 000FFA1 MAKER2 1FA0 MAKERR 1F9F MAKMSG 4008 MAKSPC 0E73 MANYFL 3FFA MAXLIN 0046  3AF5 NEXTLF 3AE2 NLIN34 4396 NLIND2 4395 NLINE 4392 NLINE1 4393 NLINE2 4394 5 E38 PAGEU1 2E96 PAGEUP 2E8E PARCH0 30F4 PARCH1 3107 PARCH2 3108 PARCHK 30F3  39B0 PUSHS1 39C4 PUSHSK 39B7 PVPARA 30C3 QUTMSG 4086 RCCMD 14DC RCMD 13BA BC PRTFCB 1D8D PRTLEN 1D7E PRTMS1 1DD5 PRTMSG 1DD4 PRTST1 1DA0 PRTSTR 1D9E  RET%Z 37F6 REVCAS 050F REVCON 0513 REVFCB 3F19 REVFLG 3F3C REVMOV 1FB3 REVMSG 4 POSCHK 2BAA POSDIF 3A3C PP%BDH 1F9B PP%H 043B PREPLY 1DAC PREVLF 3AD3 PR REGTBL 3F68 RELSRC 0943 RENAME 0017 TDL Macro assembler Page 14 VEDIT - VED-MAIN  PARMNM 000B PARTB1 0134 PATCH 0139 PCHAR 1DF5 PCHAR1 1E0D PCHAR2 1E29 PCHAR5 RDCMD 14BB RDCONS 0001 RDEND 0834 RDOPFL 3F3D RDPREV 0BC2 RDPRV1 0BDD RDPR PRTTAB 35D0 PRTUMS 416A PRVFIL 0D78 PRVFL2 0DA2 PRVFL3 0DB7 PRVFLG 3FE3 PRVLF1 100 REVOFF 02F4 REVUSR 3F18 REVVFL 4230 RICMD 1480 RICMD1 148D RIFLG 3F67 MERR 193B PRMMSG 41E5 PRMTBL 437E PROCKY 25DF PROCM1 0F5C PROCM2 0F67 PROCM3 0F6D+++++ Symbol Table +++++ RENBDS 0922 RENFCB 3EF7 REPEA0 262D REPEA1 2621 REPEA2 2649  1E6D PCHARA 1DF4 PCHCR 1E4B PCHESC 1DED PCHSTP 1E3F PCHTAB 1E56 PCKTX1 1B2A V2 0BE0 RDPRV3 0BFC RDPRV4 0C07 RDPRV5 0C1D RDPRV6 0C21 RDPRV7 0C30 READ 0014 3AD8 PRVSE1 0C82 PRVSE2 0C87 PRVSE8 0C97 PRVSEC 0C47 PRWOR1 2FC7 PRWOR2 2FBF  RLCMD 13EC RLCMD0 13FF RLCMD1 1404 RMINUS 3FDF RMSG 4032 RNGCHK 231B ROUTAD PROCM4 0F78 PROCM6 0F83 PROCM7 0F9C PROCM8 0FAA PROCMD 0F46 PRTCH2 35B4 REPEA3 265D REPEA4 2663 REPEAT 261A REPLBG 3FF3 REPLFL 4002 REPLST 05E7 RESET 00 PCMD 139F PCMD2 13B3 PCRMSG 1DD1 PICVRS 0000 PNDFLG 3FE0 PNTMAX 000A PNTR READS1 0817 READS2 081A READSC 0803 REAPFL 4282 REGAPP 3F64 REGEXN 3F65 RE PRWOR3 2FC0 PRWORD 2FB9 PSHCHK 0FA0 PSHOPC 39AA PTAFSW 4378 PUSHO1 39B4 PUSHOP 3FED RPCMD 14B5 RPLMSG 42FC RPLPMT 430B RPSTEN 3FF1 RRWLIN 421D RSCMD 141E PRTCH3 35BF PRTCHA 35A9 PRTDC1 1EBF PRTDC3 1EC8 PRTDC4 1EEF PRTDC5 1EFA PRTDEC 1E0D RESINS 28A0 RESTOP 19F1 RESTRT 079F RESUS1 0B0A RESUSR 0AF6 RET%NZ 37E8 EG 202C PNTRG1 2032 PNTTBL 05AF POLLIN 0001 POPOP 39DB POPSTK 39DE POP%DH 1E88 GLEN 3F5F REGMAX 000B REGMSG 42CD REGNUM 3F63 REGPTR 3F61 REGSET 064A REGSTK 3F956  RSCMD0 1433 RSCMD1 143B RSCMD2 1440 RSCMD3 145F RSCMD5 1463 RSCMD6 146C RSMS SETFCB 09C2 SETFE1 0A46 SETFE2 0A51 SETFEN 0A3B SETFIL 06AE SETFL2 06CE SE SEARC4 1BFF SEARC9 1C46 SEARCH 1B9F SEARDN 1C4F SEARW1 1BEE SEARW2 1BF3 SEARW3 STACK 4505 STACPN 257C STAFLG 4220 STAMS1 3772 STAMSG 3762 STAPOS 4383 STASSCCMP2 1B17 SCCMPS 1AF0 SCMD 150C SCMD1 150F SCMD2 1540 SCMD3 1554 SCNGET 1D SETTRM 1B8B SETUSR 0AF9 SETWRT 3438 SLCCH 1D0E SLETCH 37D5 SLIDER 39A8 SLINCH G 40DA RSTDMA 0839 RSWRIT 1476 RTCMD 14C1 RTCMD1 14C4 RTCMD2 14C7 RTCMD3 14CC TFL3 06E6 SETFL4 06EA SETHOR 2F59 SETHR2 2F78 SETHR3 2F79 SETHR4 2F7C SETHR5 2F7E 1C03 SEARW4 1C0B SEARW5 1C04 SEARW6 1BCC SEARW7 1C34 SECCNT 3FEF SETAUX 0A97 T1 374E STASTR 374B STATCH 42B6 STBRF1 3619 STBRFL 3617 STCMEN 1B31 STCSNL 2590 61 SCNGT1 1D64 SCRBGN 4429 SCRCNT 43E3 SCRFCB 4429 SCRLDW 2D21 SCRLUP 2D09 37B1 SLINTM 1CCE SMATCH 1C67 SMNYCH 1D19 SNOTC1 1CFF SNOTCH 1CEB SPACE 0020  RTLDDR 3A90 RTLDIR 3A85 RUBROU 3ED2 RUCMD 14E5 RUCMD1 14EC RUSFLG 4004 RV SETIN1 28A1 SETINS 289C SETIO 0517 SETLG1 2465 SETLG2 2466 SETLGA 2456  SETBYT 0111 SETCML 1130 SETCP1 0526 SETDMA 001A SETDSK 000E SETFC1 09D5 SETF STDEIN 399C STEMP1 3FFB STEMP2 3FFD STMVBC 3898 STNSKL 259F STNSNL 25A4 ST SCRNOK 4219 SCRNT1 2D57 SCRNT2 2D5D SCRNTG 2D4D SCTLC1 1CB2 SCTLCH 1CAF SDIGCH  SPACOK 1114 SPSMSG 4049 SRCEOS 001B SRCERR 3FF9 SRCHCN 3FF7 SRCHF 0011 SRCHFBKUP 0CA4 RVOPCH 0F06 SALPCH 1CC6 SAVBG1 0EAA SAVBG9 0EB4 SAVKE1 044F SAVKEY 043DSETLOG 2455 SETLTB 2469 SETPN1 23E9 SETPN3 240C SETPN4 2418 SETPN5 2433 SETPN6 24C2 09FD SETFC3 0A03 SETFC4 0A1E SETFC5 0A21 SETFC6 0A36 SETFC7 0A1A SETFC8 0A12 NWFL 25A6 STNWLN 258B STPSNL 2595 STPWAC 2581 STRWAC 2586 STSEA1 1B5A STSEA2 1B6737ED SEAER1 1C5F SEAERR 1C60 SEARC0 1BBA SEARC1 1BAA SEARC2 1BAE SEARC3 1BDE L 3FF6 SRCHN 0012 SRCNSW 4379 SRCOPN 06F1 SRFAIL 3FFF SSEPCH 1CB7 ST5%HL 39CF  SAVUSR 0B0E SBHLDE 3A3F SBLKCH 37F8 SCANB1 312F SCANBK 312A SCCMP1 1B05 38 SETPN8 243F SETPN9 244D SETPNT 23E0 SETSEC 0ED4 SETTOP 1224 SETTR1 1B9A 7  STSEAR 1B3C STSSNL 259A STVTS1 294B STVTSW 2948 STWTBR 3612 STWTP1 342E 9B VCPTXT 2915 VD137 0000 VDONE 28C6 VDONE1 28C7 VDONE3 0429 VDTMSG 45A9  UPDBRD 2278 UPDLIN 421C UPDLP1 229E UPDLP2 22A4 UPDLP3 22AD UPDLP4 22B2 UPAIN5 219B VMARK 280B VMVTXT 2914 VNOOP 26C3 VPRINT 297A VRAM DC00 VREPL1 29D5 TOVIS1 210C TOVIS2 2106 TOVIS3 2110 TOVIS5 2118 TOVIS6 214C TOVIS7 2158 TOVIS VGTST2 2BA0 VGTSTR 2B49 VINTX1 295D VINTXT 2953 VISCHR 019B VISFLG 3FE4 VISSTWTPS 342B SUBMBC 384F SUCCH 1D05 SWCCNV 437B SWCHNM 0009 SWCINS 2895 SWHTC1 1C VEDCMD 20A9 VERSMS 0112 VESC 28B0 VEXIT 040F VFIND 299D VFIND1 29AD VFIND2 DLP5 22B7 UPDNEW 2282 UPDSC1 228F UPDSC2 22BD UPDSCR 2265 UPSCTB 2548 USEDLN 4223 VREPL2 29E6 VREPL3 29F1 VREPLC 29C1 VRPCAN 2A35 VRPEX3 2A3E VRPEX4 2A43 8 215D TRUE 0001 TV1 20E2 TV2 20ED TV4 212A TXACEN 4243 TXACTV 4241 MSS 3754 VJUMP 2819 TDL Macro assembler Page 15 VEDIT - VED-MAIN +++++ Symbol Table +++++ VJUME1 SWHTCH 1CD8 SWTBL 4375 TAB 0009 TABFIL 42B5 TABPOS 4287 TARGST 05C7 29B3 VFIND3 29BB VGTBS 2BC0 VGTCHR 0485 VGTFN1 2AF4 VGTFND 2AE5 VGTKE1 0490  USRMSG 4535 VALCHR 2FE7 VALIDX 1617 VALREG 0607 VC 26C3 VCHAR 267D VRPEX5 2A6C VRPEX6 2A6F VRPEXE 2A04 VRSTRT 28B6 VRTHOR 4232 VRTSE1 2312 VRTSE2 23 TXTBGN 3F4D TXTBUF 460C TXTEND 3F49 TXTMSG 42BC TXTTOP 05C3 TYPLST 1D6E UCMP1 282C VJUMP2 282F VLOOP 21D0 VLOOP1 21EA VLOOP2 2205 VLOOP3 2214 VLOOP4 2218  TARSET 1B6D TARST1 1B87 TBLADD 3844 TCMD 155E TDLVRS 0000 TEMPFL 3FE6 TEMPW  VGTKE2 04AD VGTKE3 04B2 VGTKE4 04B9 VGTKE5 04DA VGTKE6 04E6 VGTKEY 048B VGTOPVCHAR1 2680 VCHAR2 26A9 VCHAR3 26B7 VCHAR4 26BB VCHARA 267E VCHCR 277E VCHCR1 2717 VRTSET 2306 VRTVER 4231 VSEXIT 28C2 VSTACK 4501 VSTAR1 03FA VSTAR4 040C D 1569 UCMD2 158E UCNVSW 4381 UNDEN1 28E0 UNDENT 28D5 UPDAC1 22D1 UPDACT 22C3  VLOOP5 2229 VLOOP6 2240 VLOOP7 224B VMAIN 217C VMAIN3 2190 VMAIN4 2192 VM3FE7 TEMPW2 3FE9 TERMCH 4006 TEXTR1 0E1F TEXTRM 0E1C TOPCHR 3F44 TOVIS0 20C0 1 2B14 VGTOP2 2B28 VGTOP3 2B35 VGTOP9 2B40 VGTOPT 2B06 VGTST0 2B62 VGTST1 2B93 8  VSTART 03EE VSTCHR 2BA6 VSTLIN 21C6 VSTSCR 21B1 VSVTXT 2924 VTAB 27AA VUNDO  WTACL1 2493 WTACL2 249F WTACL3 24AB WTACL4 24D1 WTACL5 24ED WTACL6 24FC WTACLWRTLN2 34A2 WRTLN3 34B8 WRTLN4 34C4 WRTLNA 3449 WRTMS1 3777 WRTMSG 3774 WRTOFF 42 .DATA. 0000" X .PROG. 0000' X BRD 3720 WRTCH2 35F2 WRTCH3 35FE WRTCH4 360D WRTCHR 35E3 WRTCON 1E77 WRTCR 351D ACMD 15ED XACMD1 15FF XACMD2 1602 XCMD 15BC XICMD 15E5 XSCMD 15DA XSTKMX 00028AA WACURV 424D WADSOF 424E WALHOR 4251 WAPWPN 424F WCMD 1594 WCMD1 15AE 7 2503 WTACL9 2519 WTACLN 2485 WTACT2 232A WTACT3 233E WTACTV 2324 WTBRFL 421F 2E WRTOU3 359C WRTOUT 3554 WRTSC0 32E7 WRTSC1 3304 WRTSCR 32CC WRTSET 330B  WRTEN1 3550 WRTEN2 3552 WRTEND 3534 WRTENT 3460 WRTEO1 3595 WRTEO2 359B WR5 XTCMD 1607 XTCMD1 160F YACMD 16F1 YCMD 1626 YHCMD 16E7 YICMD 16B6  WILDCH 42B1 WMSG 401A WRAPCL 4384 WRAPW1 302F WRAPWD 3016 WRDSPN 2FED WRITE WTCLCH 0EF0 WTERFL 3FEB WTFULL 3300 WTINDL 33CC WTINS 33EF WTINS1 33F2 WTO WRTST1 364B WRTST2 3659 WRTST3 366F WRTST4 3674 WRTST5 3684 WRTST6 3694 WRTST7 TEOL 3581 WRTFI1 0876 WRTFI3 0899 WRTFIL 0864 WRTFIX 0DDD WRTL1 34CB WRTL2 34CEYLCMD 1693 YRCMD 1688 YSCMD 16C5 YSCMD1 16D1 YTCMD 1662 YTCMD1 166D YVCMD 16 0015 WRTAD1 023A WRTAD2 023C WRTAD4 024E WRTADD 021F WRTB1 0B85 WRTB2 0B96 PC1 0F03 WTOPCH 0EFB WTOPFL 3F3E WTPART 32F6 WTSCRL 3312 WTSLBK 3399 WTSLF 3353 36B1 WRTST8 36C2 WRTSTA 3633 WRTTXT 0DC3 WTAC31 24CB WTACFL 4229 WTACL0 24DE  WRTL4 34E5 WRTL5 3518 WRTLF 3530 WRTLI1 3483 WRTLI2 348B WRTLIN 346F DD YWCMD 167A YWCMD1 1682 ZCMD 1248 ZER%HL 39A1 ZIPCHK 2DDA .BLNK. 0000:03 X  WRTB3 0BAF WRTB4 0BBE WRTBND 0B55 WRTBR0 372D WRTBR1 373F WRTBR2 3747 WRT WTSLF1 3356 WTSLF2 3357 WTSLF4 336E WTSLF6 337D WTSLF7 338C WTSLF8 3393 X9 patch one byte in each of the VEDIT programs so that the system call "12" is not performed. If your distribution dly determine whether they are running in a CP/M or an MP/M environment. This is accomplished by performing the system car CP/M and the less frequent polling under MP/M. All Memory Mapped versions perform the less frequent polling. Since the l, and to user running with an interrupt driven keyboard. ------------------------------------------------ once every millisecond while performing internal operations. The second entry point is used for much less frequent polliskette is marked "CDOS", this byte has already been patched to the correct value. This byte is the refered to as the ll "12". Under CP/M, console I/O is done directly through BIOS, while in MP/M, the system call "6" is used. While tfrequent polling slows things down a little, you may wish to disable the fast polling in the CRT version if you are not usin----- These notes are only applicable to users who are not running CP/M or MP/M, and to experienced users whing, about once every 50 milliseconds, which is enough to keep up with the fastest typist, but not fast enough for singl USER PATCH NOTES FOR VEDIT These notes describe a patch which can be made to the VEDIT program "SETBYT" and is described below. VEDIT performs frequent polling of the console status routine in order to permhis works well with CP/M and MP/M it may not work with other "CP/M compatible" operating systems. Particularly, it will g a terminal which sends single key escape sequences, i.e. a Heath H19, IBM 3101, Televideo 920C, etc. If you are runnino 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 doe key generated escape sequences. The "SETBYT" also determines whether the fast polling entry point is disabled and es in order to satisfy special applications. 1.) To allow a change in the way console I/O is handled. This may be usit type-ahead and prevent loosing typed characters. The keyboard polling routine inside VEDIT has two entry points. One is not work with Cromemco's CDOS, which has a totally different system call "12". The CDOS user will therefore need to g with an interrupt driven keyboard, you may wish to disable both the fast and slow polling. The "SETBYT" in es not need to read or understand these notes! The VEDIT programs are normally configured to automaticalven allows all polling to be disabled. In the normal distribution, the CRT version is setup to do frequent polling undeeful to users not running CP/M or MP/M, to users with CRT emulation software instead of a true CRT terminaused for very frequent polling, where the keyboard is polled once for every character send to the terminal and about :  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 disrmal keyboard polling. Bit 5 "1" means disable frequent keyboard polling. "0" means enable frequent keyboardr console I/O. "0" means CP/M using direct BIOS calls. Bit 2 Bits 2 and 3 are only significant for CP/M. the VEDSET and VDSETCRT programs, the "SETBYT" is at location 010D Hex. It has 6 significant bits in the main VEDIT progtribution of VEDSET.COM and VDSETCRT.COM have a "SETBYT" value of "00000001 Binary" to signify auto-determination of CP/M or  polling. The normal distribution version of the CRT version of VEDIT has a "SETBYT" value of "00100001 Binary "1" means disable all keyboard polling. "0" means enable at least normal keyboard polling. Bit 3 rams and 2 significant bits in the VEDSET and VDSETCRT programs. The bits are defined below: MP/M. The CDOS user will need to change the "SETBYT" to "00100000 Binary" or (20 Hex) in the appropriate " (21 Hex) in the ".SET" files to signify auto determination of CP/M or MP/M, fast polling for CP/M and normal polling fo "1" means disable frequent keyboard polling. "0" means enable frequent keyboard polling. Bit 4 Bits 4 and Page 2 Bit 0 "1" means auto determination of CP/M or MP/M. "0" means CP/M or".SET" file and to "00 Hex" in the VEDSET.COM or VDSETCRT.COM files. Distribution disks whose label specifies "CDOS" alr MP/M. Similarly, the Memory Mapped version of VEDIT has a "SETBYT" value of "00101001 Binary" (29 Hex) in the ".SET"  5 are only significant for MP/M. "1" means disable all keyboard polling. "0" means enable at least no MP/M is determined by Bit 1. Bit 1 Only significant when Bit 0 = "0". "1" means MP/M using System call 6 foready contain this change and do not need to be patched. ; < = > ? @ A B C D E F G H I J K L