File: VTEDIT.SR of Tape: OS8/OS8-Latest/new-15
(Source file text)
!VTEDIT - V40.00-8! !DELETE THIS LINE AND ALL SPACES FROM THIS PAGE BEFORE USING AS VTEDIT MACRO! @^U0/U7 ^]/ 128,0ET ETES 0,2048+8ET @^U5/U9 283 Q9/!Hack! @^U6/.U8 ZU4 -3U6 GM5 1,0ET HM5 KM5 10 KM5 :G4 < M0 !F! Q7 ZJ Q7I Q7-13"E 10I 10U7 Q7' Q7-10"E 13 KM5 -1%6' Q7-21"E Q6W 0U7 0;' Q7-127"E -D Z-Q4"N -1AU9 -D Q9-27"E 32U9' Q9-31"G DM5 KM5 1+' 0"E 13 -Q6-2< KM5 AM5 > 10 13 :G4 Q4,ZT' '' Q7-27"E M0 Q7-27"E -1U7 !F0! 27I Q4,ZX4 HM5 13 0;' Q7-?"E M0 Q7-l"E -3U7 OF0' -2U7 OF0' OF' > Q4,ZK Q8J Q7/ 0,0X7 0,0X2 0U2 HM5 13 =M5 <!A! 0U4 0U6 !B! 1U5 !T! ^]"N -1W' M0 !V! Q7-17"E OT' Q7-19"E OT' Q7-127"E .-Q5"L .U5' -Q5D OA' Q7-31"G Q7I 0U2 OA' Q7-26"E 1U8 OZ' Q7-21"E 0K OA' Q7-11"E Q5K OA' Q7-8"E Q5L .-1"G 2R' OA' Q7-4"E Q5K 13I 10I 2R OA' Q7-3"E 1U8 OZ' Q7-27"N Q7I Q7-13"E 10I' OA' M0 Q7-C"E Z-.-Q5"L Z-.U5' Q5C OA' Q7-D"E .-Q5"L .U5' Q5R OA' Q7-?"E M0 Q7-M"E ISuche: .-6,.X4 -6D M6"F OA' .U3 I@:S 0I .U2 G4-2D .-Q2U1 0I .U2 Q3J .,Q2X8 3D I@:N Q3,Q2X9 Q3,Q2K Q7+3"E ON' OS' Q7&31#32U7 Q7-0"E Q5L OA' Q7-1"E Q5-1"E 0U5' Q5J OA' Q7-2"E ZJ OA' Q7-3"E 0L OA' Q7-4"E -Q5L OA' Q7-5"E Z-.-Q5"L Z-.U5' Q5D OA' Q7-6"E .-Q2"L 0,.X3 0,.K OA' .-Q2,.X3 .-Q2,.K OA' Q7-7"E Q5< 13I 10I 2R > OA' Q7-8"E Q5P OA' Q7-9"E Q5-1"E M0 Q7U5' Q5I OA' Q7-."E 0U6 !S! Q1U2 Q5M8"F 0U2' Q6"N Q6W' OA' Q7-,"E 0U6 !N! Q1U2 Q5M9"F 0U2 -1U8 OZ' Q6"N Q6W' OA' Q7--"E -25W GM5 ET&1U8 Q8"E 0,1ET' Q8"N 1,0ET'' OA ' Q7"D 0U5 <!X! Q5*10+Q7-48U5 M0 Q7"D OX ' 0;> OV' 0U8 Q7-A"E -1U8' Q7-B"E 1U8' Q8"N Q8"L -Q5U5' Q6"E 0U7 .U8 0L Q8-.%6< 0A-32"L 0A-27"N 0A-9"E 6-(Q7&7)%6 -2U7' %7 1%6'' C %7 >' Q5L -Q6U9 0U7 Q6< .-Z; 0A-32"L 0A-13"E 0;' 0A-27"N 0A-9"E 6-(Q7&7)%9 -2U7' %7 1%9'' C %7 1%9"G R' Q9; > 0U4 OB' Q7-Q"E IKommando: .-9,.X4 -9D M6"F OA'.U3 G4 Q3,.X2 Q3,.K Augenblick.. OC' Q7-27"E 0U6 !C! M2 -1EU Q6"N Q6W' OA' Q7-R"E .U4 G7 .-Q4U2 OA' Q7-P"E Q4"E .+1U4' Q5L Q4-1,.X7 .-Q4+1U2 0U6 OB' Q7-S"E EC 0;' > 0U8 !Z! GM5 >M5 YM5 23+32 0+32 KM5 13 ESET Q8"E ^C' Q8"L EGTE' ! VTEDIT V40 Q-reg Text Numeric 0 read char Free! 1 length of last search string 2 last command length of last string gotten 3 deleted string temp 4 arg to M6 cut buffer start 5 prints esc seq repeat count 6 mini editor # of lines destroyed at top 7 cut buffer current char 8 S search string temp, Exit status 9 N search string arg to M5 ES holds initial ET setting Hacks: ESCAPE is sent literally to the terminal via the 27+256^T command which fakes out TECO into sending the character literally. This avoids the necessity of doing a 0,1ET command which will swap in an overlay on 16K machines. Macro M0 is used to read a character and reset the wait condition of the Watch processor. The new command ^] is proper to TECO V40 and returns a non-zero value if no input is in the Watch buffer. (it returns 0 if input is buffered) This algorithm is appropriate to both OS/8 and Multi8 environments. The read without wait was unacceptable because there was no way of telling that the program was really idle. !