home *** CD-ROM | disk | FTP | other *** search
Wrap
Text File | 1993-07-15 | 41.9 KB | 1,544 lines
Xref: world comp.graphics:2864 comp.terminals.bitgraph:6 Path: world!xylogics!bu.edu!snorkelwacker!tut.cis.ohio-state.edu!pt.cs.cmu.edu!andrew.cmu.edu!pd1h+ From: pd1h+@andrew.cmu.edu (Philip H. Dye) Newsgroups: comp.graphics,comp.terminals.bitgraph Subject: Re: Looking for Tektronix's 4014 escape sequences Message-ID: <wa6ES9K00XcL4Hd_Jn@andrew.cmu.edu> Date: 3 Apr 90 20:28:57 GMT Organization: Mathematics, Carnegie Mellon, Pittsburgh, PA Lines: 1533 Here is the scribe source (.mss) and postscript output (.ps) for tektronix escape sequences. These files were extracted from the ibmpc part of the kermit manual. ------------------------------------------------------------------------------ | Philip H. Dye | Internet: pd1h@andrew.cmu.edu | | Physics & Mathematics | UUCP: psuvax1!andrew.cmu.edu!pd1h | | Carnegie Mellon University | Bitnet: pd1h%andrew.cmu.edu@cmccvb | |---------------------------------|------------------------------------------| | P.O. Box 190, CMU | Network support of remote authentication | | Pittsburgh, PA 15213 | using any form of transmitted key is | | (412) 683-3728 | insecure. - Random DOD Document | ------------------------------------------------------------------------------ ------------------------------ cut here ------------------------------ #! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh <file", e.g.. If this archive is complete, you # will see the following message at the end: # "End of shell archive." # Contents: tek.mss tek.ps # Wrapped by phdye@LEO.FAC.CS.CMU.EDU on Thu Mar 15 18:13:07 1990 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f tek.mss -a "${1}" != "-c" ; then echo shar: Will not over-write existing file \"tek.mss\" else echo shar: Extracting \"tek.mss\" \(12039 characters\) sed "s/^X//" >tek.mss <<'END_OF_tek.mss' X@device(postscript) X X@center<Tektronix 4010/4014 Graphics Terminal Functions> X X@begin<table> X@bar() X@blankspace(1) X@begin<format> X@tabclear() X@case[device,file="@tabset(1.6inch,3.0inch,3.75inch)", X else="@tabset(1.5inch,3.0inch,3.75inch)" X] X@ux<Control Code>@\@\@ux<Action> X@q<FS, > Control-@q<\>@\Backslash@\draw dots X@q<GS, > Control-@q<]>@\Right square bracket@\draw lines X@q<RS, > Control-@q<^>@\Caret@\Draw dots incrementally X@q<US, > Control-@q<_>@\Underscore@\Display text X@q<BEL,> Control-@q<G>@\@\Beep, make a noise X@q<BS, > Control-@q<H>@\@\Backspace, non-destructive X@q<HT, > Control-@q<I>@\@\Tab, convert to single space X@q<LF, > Control-@q<J>@\@\Line feed, go down one line X@q<VT, > Control-@q<K>@\@\Move up one text line X@q<FF, > Control-@q<L>@\@\Clears the screen X@q<CR, > Control-@q<M>@\@\Carriage return, start of line X@q<CAN,> Control-@q<X>@\@\Exit Tek sub-mode, or ignore XDEL, RUBOUT@\@\Delete code, same as BS X X@ux<Escape Sequence>@\@\@ux<Action> X@q<ESC >Control-@q<E>@\@\Send a status report, turn on Bypass mode X@q<ESC >Control-@q<L>@\@\Clear the screen (enter sub-mode from VT102) X@q<ESC >Control-@q<X>@\@\Turn on Bypass mode X@q<ESC >Control-@q<Z>@\@\Activate crosshairs (GIN mode) and Bypass mode X@q<ESC Z>@\@\Send terminal identification X@q<ESC `> (accent grave)@\@\Use solid lines in drawing X@q<ESC a> through @q<ESC e>@\@\Use dashed line patterns: X@\@\@ a=fine dots, b=short dashes X@\@\@ c=dash dot, d=long dash dot X@\@\@ e=dash dot dot. X@q<ESC [ Pn ; Pn m>@\@\Set ANSI colors. Same as for VT102. X@q<ESC [ ? 3 8 l>@\@\Exit Tek mode (become text terminal, VT102 etc) X@q<ESC [ ? 3 8 h>@\@\Enter Tek mode (from VT102 mode) X@end<format> X@caption<Response of Tektronix Emulator to Received Characters> X@bar() X@end(table) X XIn the table, US is the name for the ASCII character Control-Underscore, 31 Xdecimal. Text is written starting with the last drawn point being the lower Xleft corner of the first 8 by 8 character cell. The drawing position is Xupdated by 8 dots to the right for each character, and lines wrap at column 80 X(column 90 for Hercules boards). If text extends "below the screen" the sign X"@q(More >)" is shown at the bottom right corner and the user needs to press a Xkey to continue. Then the screen will be cleared and the new text will start Xat the top of the screen (no scrolling is done in graphics mode). A real Tek X4010 begins new text at column 40 and will overwrite dots from older material. XText mode is interrupted by the drawing commands discussed Xbelow. X X@subu<Bypass Mode>: X XCertain Tektronix commands turn on or off "Bypass" mode whereby incoming Xtext is not displayed on the screen. Removal of echos of the GIN mode, Xdiscussed below, is the major use of Bypass. Bypass mode is turned on by Xreceipt of X ESC Control-E, ESC Control-X, and ESC Control-Z Xand it is turned off upon receipt of X BEL, LF, CR, US, other escape sequences, and resetting the terminal. X X@subu<Drawing commands GS, FS, RS>: X X1. Draw a line or move to a point: GS <@i(xy) @i(xy) @value<ellips> @i(xy)> X XGS is the name for ASCII character Control-@q<]> (right square bracket), Xdecimal 29. <@i(xy)> stands for an encoded x,y coordinate as explained below. XOne or more x,y coordinates may follow GS and line segments are drawn from Xpoint to point. The first point is reached without drawing so that GS and the Xinitial <@i(xy)> is a simple "move-to" command rather than a "draw-to" command.XLines may be constructed from six dash patterns described in Table X@ref(-mstekrc). <@i(xy)> coordinates are encoded by separating the 10 bit Xvalue of x and of y into 5 bit components and then adding two high bits to eachXto identify which component is being represented: high-y, low-y, high-x, or Xlow-x. They are transmitted in that order, with the low-x byte always sent Xlast. In fact, bytes may be omitted if they do not change from point to point,Xprovided that low-x is always sent. These bytes range from ASCII space (32 Xdecimal) to ASCII DEL (127 decimal). Details are given below, and summarized Xin Table @ref(-mstekxy). This mode completes when a new command or a CR LF X(carriage return, line feed) arrives; escape sequences are processed Xtransparently but other control codes are ignored. The interrupting character Xis accepted and processed next. X X2. Draw dots at given locations: FS <@i(xy) @i(xy) @value<ellips> @i(xy)> X XFS is the name for the ASCII character Control-\ (backslash), decimal 28. X<@i(xy)> is in the same form as above. A dot is drawn at each x,y point. ThisXmode completes when a new command or a CRLF character arrives; escape sequencesXare processed transparently but other control codes are ignored. The Xinterrupting character is accepted and processed next. X X3. Draw dots from the current location: RS @i(<pen> <direction> <direction> X@value<ellips> <direction>) X XRS is the name for the ASCII character Control-@q(^) (caret), decimal 30. X@i<pen> is the character Space (32 decimal) to move without drawing or P (80 Xdecimal) to draw while moving. @i(<direction>) is one of the letters A, E, D, XF, B, J, H, I as shown in Table @ref<-mstekdd>. X X@begin<table> X@bar() X@blankspace(1) X@begin<format> X@tabclear()@tabset(0.5inch,1.25inch,3.50inch) X@ux(@i[<direction>])@\@ux<Move One Tek Dot This Way> X@\A@\East (right) X@\E@\East and North@\@q< F D E> X@\D@\North (up) X@\F@\North and West@\@q< B * A> (@q<*> is current location) X@\B@\West X@\J@\South and West@\@q< J H I> X@\H@\South X@\I@\South and East X@end<format> X@caption<Tektronix Dot-Drawing Commands> X@bar() X@end(table) X XExample: @q<RS P J J J> (no spaces here, naturally) means draw three dots in Xthe southwest direction, stepping to each in turn. This mode completes when a Xnew command or a non-@i(<pen>) or non-@i(<direction>) character arrives; the Xinterrupting character is accepted and processed next. X X@subu[Graphics INput (GIN) mode]: X XGraphics input mode is entered when ESC Control-Z is received. A crosshair is Xdrawn on the screen and may be moved by the numeric keypad arrows (fine scale Xmotion) or the Shift key and these arrows (coarse scale motion). Pressing an XASCII-producing key sends the position of the crosshairs to the host as the Xsequence of: pressed key, X coordinate, Y coordinate, carriage return, then Xremoves the crosshairs, and then returns to text mode. The coordinates are Xencoded by splitting them into five bit fields, adding an ascii space (20H) Xto each, and are sent as high-y, low-y, high-x and low-x bytes. Bypass mode Xis active while the report is sent to supress echos of the report. XOne may prematurely exit GIN mode by typing Control-C or Control-Break. XShift-PrtSc (DOS screen dump) remains active, however. X X@subu(Status or Position Report): X XESCAPE Control-E requests a status report from the emulator. Tek terminals Xhave many sub-fields. Kermit-MS sends a byte of 24 hex for being in text mode Xor 20 hex otherwise, followed by the encoded X then Y coordinates and a Xcarriage return. Coordinates are encoded 5 bits at a time similar to the GIN Xreport. X X@subu(Identification Report): X XESCAPE Z requests terminal identification, as for VT52 and VT102. Currently Xthis report is the 10 character sequence @w(@q<IBM_TEK ESCAPE / Z>) (no Xspaces). X X@subu(Coordinate Encoding): X XCoordinate 0,0 is the lower left corner and the X axis is horizontal. TektronixXpositions are mapped into the typically 640 dots wide by 200 or 350 dots high XPC screen and thus adjacent Tek positions may yield the same PC screen dot. X X4010-like devices use positions from 0 to 1023 for both X and Y, although only X0 to 779 are visible for Y due to screen geometry. The Tek screen is 10.24 by X7.80 inches and coordinates are sent as 1-4 characters. X X4014-like devices use positions 0 to 4095, but each movement is a multiple of 4Xpositions unless the high-resolution LSBXY are sent. This makes it compatible Xwith the 4010 in that a full sized plot fills the screen. The emulator acceptsXthe LSBXY components but does not use them. X XThe various modes are summarized in Table @ref<-mstekxy>, in which the Xfollowing notation is used: X@begin(display) XHIX, HIY = High order 5 bits of a 10 or 12 bit position. XLOX, LOY = Middle order 5 bits of position (low order of Tek 4010). XLSBXY = Low order 2 bits of X + low order 2 bits of Y (4014 mode), X recognized by the Tek emulator but not used to calculate position. X@end(display) X X@begin<table> X@bar() X@blankspace(1) X@begin<format> X@tabclear() X@tabset(0.75inch,1.5inch,2.25inch,3.0inch,3.6inch,4.1inch,4.7inch, X 5.3inch,5.95inch) X@ux<Hi Y>@\@ux<Lo Y>@\@ux<Hi X>@\@ux<LSBXY>@\@ux<Characters Sent @~ X(Lo-X Always Sent)> XSame@\Same@\Same@\Same@\@\@\@\@\Lo-X XSame@\Same@\Same@\Diff@\@\LSB,@\Lo-Y,@\@\Lo-X@\4014 XSame@\Same@\Diff@\Same@\@\@\Lo-Y,@\Hi-X,@\Lo-X XSame@\Same@\Diff@\Diff@\@\LSB,@\Lo-Y,@\Hi-X,@\Lo-X@\4014 XSame@\Diff@\Same@\Same@\@\@\Lo-Y,@\@\Lo-X XSame@\Diff@\Same@\Diff@\@\LSB,@\Lo-Y,@\@\Lo-X@\4014 XSame@\Diff@\Diff@\Same@\@\@\Lo-Y,@\Hi-X,@\Lo-X XSame@\Diff@\Diff@\Diff@\@\LSB,@\Lo-Y,@\Hi-X,@\Lo-X@\4014 XDiff@\Same@\Same@\Same@\Hi-Y,@\@\@\@\Lo-X XDiff@\Same@\Same@\Diff@\Hi-Y,@\LSB,@\Lo-Y,@\@\Lo-X@\4014 XDiff@\Same@\Diff@\Same@\Hi-Y,@\@\Lo-Y,@\Hi-X,@\Lo-X XDiff@\Same@\Diff@\Diff@\Hi-Y,@\LSB,@\Lo-Y,@\Hi-X,@\Lo-X@\4014 XDiff@\Diff@\Same@\Same@\Hi-Y,@\@\Lo-Y,@\@\Lo-X XDiff@\Diff@\Same@\Diff@\Hi-Y,@\LSB,@\Lo-Y,@\@\Lo-X@\4014 XDiff@\Diff@\Diff@\Same@\Hi-y,@\@\Lo-Y,@\Hi-X,@\Lo-X XDiff@\Diff@\Diff@\Diff@\Hi-y,@\LSB,@\Lo-Y,@\Hi-X,@\Lo-X@\4014 X@end<format> X@begin<format> X@tabclear() X@tabset(3.0inch,3.6inch,4.1inch,4.7inch,5.3inch,5.95inch) XKind code for byte:@\20h@\60h@\60h@\20h@\40h X@\(transmitted left to right) X@end<format> X@caption<Tektronix Coordinate Interpretation> X@bar() X@end(table) X XNote that LO-Y must be sent if HI-X has changed so that the Tektronix knows theXHI-X byte (in the range of 20h-3Fh) is HI-X and not HI-Y. LO-Y must also be Xsent if LSBXY has changed, so that the 4010 will ignore LSBXY and accept LO-Y. XThe LSBXY byte is X@MD<60h + (MARGIN * 10h) + (LSBY * 4) + LSBX> XMARGIN is 0 here and refers to splitting the screen left and right for text Xrollover, which the Kermit Tek emulator does not do. X X@subu<Tek 4010 Example>: X XSuppose <@i(xy)> is point y = 300, x = 500 in Tektronix coordinates. Split Xeach 10-bit coordinate into 5-bit groups, add add the Kind code to each. Send Xthe X part last. X@begin<example> X HI-Y LO-Y HI-X LO-X XY=300d=012Ch= 01001 01100 X=500d=01F4h= 01111 10100 X +Kind code +@u<100000> +@u<1100000> +kind code +@u<100000> +@u<1000000> XBinary 101001 01101100 101111 1000100 XASCII ) l / D X@end<example> XSo <@i(xy)> = (500,300) is sent or received in a GS command as @qq<)l/D>. An Xexample in C (program fragments): X@begin<example,leftmargin 0,group,blanklines hinge> X#define ESC 27 X#define GS 29 X#define US 31 XFILE *fp; /* File descriptor for terminal */ X . . . X X fputc( GS, fp); coord( 75, 65); /* Move to 75,65 */ X fputc( ESC, fp); fputs("[31m", fp); /* Set foreground to red */ X fputc( US, fp); fputs("A House", fp); /* Annotate at 75,65 */ X fputc( ESC, fp); fputs("[33m", fp); /* Set foreground to yellow */ X fputc( GS, fp); /* Now draw lines... */ X coord( 50, 50); coord(300, 50); /* Bottom side */ X coord(300,200); coord( 50,200); /* Right wall, top */ X coord(175,250); coord(300,200); /* Roof */ X fputc( GS, fp); /* Start a new line */ X coord( 50, 50); coord( 50,200); /* Left wall at 50,50 */ X fputc( ESC, fp); fputs("[37m", fp); /* Set foreground to white */ X . . . X Xcoord(x, y) int x, y; { /* Send x,y coordinates to Tek 4010 */ X fputc((y / 32) + 32, fp); /* High y */ X fputc((y % 32) + 96, fp); /* Low y */ X fputc((x / 32) + 32, fp); /* High x */ X fputc((x % 32) + 64, fp); /* Low x */ X} X@end<example> X END_OF_tek.mss if test 12039 -ne `wc -c <tek.mss`; then echo shar: \"tek.mss\" unpacked with wrong size! fi # end of overwriting check fi if test -f tek.ps -a "${1}" != "-c" ; then echo shar: Will not over-write existing file \"tek.ps\" else echo shar: Extracting \"tek.ps\" \(26708 characters\) sed "s/^X//" >tek.ps <<'END_OF_tek.ps' X%!PS-Adobe-1.0 X%%Title: kuser.mss X%%DocumentFonts: (atend) X%%Creator: Walter Lloyd Wimer, III and Scribe 5(1501)-5 X%%CreationDate: 3 May 1988 03:31 X%%Pages: (atend) X%%EndComments X% PostScript Prelude for Scribe. X/BS {/SV save def 0.0 792.0 translate .01 -.01 scale} bind def X/ES {showpage SV restore} bind def X/SC {setrgbcolor} bind def X/FMTX matrix def X/RDF {WFT SLT 0.0 eq X {SSZ 0.0 0.0 SSZ neg 0.0 0.0 FMTX astore} X {SSZ 0.0 SLT sin SLT cos div SSZ mul SSZ neg 0.0 0.0 FMTX astore} X ifelse makefont setfont} bind def X/SLT 0.0 def X/SI { /SLT exch cvr def RDF} bind def X/WFT /Courier findfont def X/SF { /WFT exch findfont def RDF} bind def X/SSZ 1000.0 def X/SS { /SSZ exch 100.0 mul def RDF} bind def X/AF { /WFT exch findfont def /SSZ exch 100.0 mul def RDF} bind def X/MT /moveto load def X/XM {currentpoint exch pop moveto} bind def X/UL {gsave newpath moveto dup 2.0 div 0.0 exch rmoveto X setlinewidth 0.0 rlineto stroke grestore} bind def X/LH {gsave newpath moveto setlinewidth X 0.0 rlineto X gsave stroke grestore} bind def X/LV {gsave newpath moveto setlinewidth X 0.0 exch rlineto X gsave stroke grestore} bind def X/BX {gsave newpath moveto setlinewidth X exch X dup 0.0 rlineto X exch 0.0 exch neg rlineto X neg 0.0 rlineto X closepath X gsave stroke grestore} bind def X/BX1 {grestore} bind def X/BX2 {setlinewidth 1 setgray stroke grestore} bind def X/PB {/PV save def translate 100.0 -100.0 scale pop} bind def X/PE {PV restore} bind def X/SH /show load def X/MX {exch show 0.0 rmoveto} bind def X/W {0 32 4 -1 roll widthshow} bind def X/WX {0 32 5 -1 roll widthshow 0.0 rmoveto} bind def X%%EndProlog X%%Page: 141 142 XBS X0 SI X10 /Helvetica-Bold AF X8280 4329 MT X(MS-DOS KERMIT)SH X50744 XM X(Page 141)SH X/Courier-Bold SF X8880 7874 MT X(ESC t) XSH( HEKS) X5400 W( *Enter) X6000 W( Keypad shifted mode, not supported)SH X8880 9005 MT X(ESC u) XSH( HXKS) X5400 W( *Exit) X6000 W( Keypad shifted mode, not supported)SH X8880 10136 MT X(ESC v) XSH( HEWA) X5400 W( Wrap) X6000 W( around at end of line)SH X8880 11267 MT X(ESC w) XSH( HXWA) X5400 W( Discard) X6000 W( at end of line)SH X8880 12398 MT X(ESC x Ps) XSH( HSM) X3600 W( Set) X6600 W( Mode. See table below)SH X8880 13529 MT X(ESC y Ps) XSH( HRM) X3600 W( Reset) X6600 W( Mode. See table below)SH X13680 15791 MT X(Ps Mnemonic) X2400 W( Mode) X3600 W( Set) X6600 W( \050x\051) XSH( Reset) X4200 W( \050y\051)SH X13680 16922 MT X(1 HSM/HRM) X3000 W( 25th) X4200 W( line) XSH( enabled +disabled)3600 W X13680 18053 MT X(2 *keyclick) X11400 W( off) X4200 W( on)6600 W X13680 19184 MT X(3 *holdscreen) X11400 W( enabled) X3000 W( disabled)4200 W X13680 20315 MT X(4 cursor) X12000 W( type) XSH( block underline)2400 W X13680 21446 MT X(5 cursor) X12000 W( on/off) XSH( on) X1200 W( off)7200 W X13680 22577 MT X(6 *keypad-shifted) X11400 W( shifted) X600 W( unshifted)4200 W X13680 23708 MT X(7 alt) X12000 W( app keypad enabled) XSH( disabled)4200 W X13680 24839 MT X(8 *linefeed) X11400 W( lf=>cr/lf) X4200 W( lf=>lf)3000 W X13680 25970 MT X(9 newline) X12000 W( mode) XSH( cr=>cr/lf) X1800 W( cr=>cr)3000 W X26280 27101 MT X(+ disabling the 25th line also clears it)SH X8880 29363 MT X(ESC z) XSH( HRAM) X5400 W( Reset) X6000 W( to power-up configuration)SH X8880 30494 MT X(ESC =) XSH( HAKM) X5400 W( Enter) X6000 W( Alternate Keypad mode)SH X8880 31625 MT X(ESC >) XSH( HXAM) X5400 W( Exit) X6000 W( Alternate Keypad mode)SH X8880 32756 MT X(ESC <) XSH( HEAM) X5400 W( Enter) X6000 W( ANSI mode \050ESC [ stuff\051)SH X8880 33887 MT X(ESC @) XSH( HEIM) X5400 W( Enter) X6000 W( Insert Char mode)SH X8880 35018 MT X(ESC [) XSH( HEHS *Enter) X5400 W( Hold Screen mode, not supported)SH X8880 36149 MT X(ESC \134) XSH( HXHS *Exit) X5400 W( Hold Screen mode, not supported)SH X8880 37280 MT X(ESC { and }) XSH( HEK,) X1800 W( HDK) XSH( *Keyboard) X3000 W( enable/disable, not supported)SH X8880 38411 MT X(ESC ]) XSH( HX25 *Transmit) X5400 W( 25th line, not supported)SH X8880 39542 MT X(ESC #) XSH( HXMP *Transmit) X5400 W( page, not supported)SH X12 /Helvetica-Bold AF X8280 42895 MT X(7.15.6. Heath-19 Functions While in ANSI Mode)SH X10 /Courier-Bold AF X8880 44908 MT X(Escape Seq) XSH( Mnenonic) X2400 W( Description) X3600 W( of Action)SH X8880 47170 MT X(ESC [ s) XSH( PSCP) X4200 W( Save) X6000 W( cursor position & attributes)SH X8880 48301 MT X(ESC [ u) XSH( PRCP) X4200 W( Restore) X6000 W( cursor position & attributes)SH X8880 49432 MT X(ESC [ z) XSH( PRAM) X4200 W( Reset) X6000 W( to power-up configuration)SH X8880 50563 MT X(ESC [ 2 J) XSH( ED) X3000 W( Erase) X7200 W( entire screen but do not move cursor;)SH X26880 51694 MT X(regular Heath-19 moves cursor to Home.)SH X8880 52825 MT X(ESC [ ? 2 h) XSH( PEHM) X1800 W( Revert) X6000 W( to normal Heath-19 non-ANSI mode)SH X8880 53956 MT X(ESC [ > Ps h) XSH( SM) X1200 W( Same) X7200 W( as ESC x Ps)SH X8880 55087 MT X(ESC [ > Ps l) XSH( RM) X1200 W( Same) X7200 W( as ESC y Ps)SH X/Helvetica SF X8280 56947 MT X(Plus most of the ANSI escape sequences listed for the VT102.)SH X12 /Helvetica-Bold AF X8280 60300 MT X(7.15.7. Tektronix 4010/4014 Graphics Terminal Functions)SH X10 /Helvetica AF X8280 62368 MT X(MS-Kermit's Tektronix 4010 emulator responds to ordinary text, several special control) X5 W( codes \050for drawing)4 W X8280 63511 MT X(lines and dots\051, and several) X114 W( escape sequences, as shown in Table 7-8. The commands SET DEBUG)115 W X8280 64654 MT X(and SET TRANSLATION INPUT are effective in Tek mode.)SH X8280 66940 MT X(In the table, US is the name for the ASCII character Control-Underscore, 31 decimal. Text) X154 W( is written)153 W X8280 68083 MT X(starting with the) X23 W( last drawn point being the lower left corner of the first 8 by 8 character cell. The drawing)24 W X8280 69226 MT X(position is updated by 8 dots to the right for each character,) X56 W( and lines wrap at column 80 \050column 90 for)55 W X8280 70369 MT X(Hercules boards\051. If) X2 W( text extends "below the screen" the sign "More >" is shown at the bottom right corner)3 W X8280 71512 MT X(and the user needs to press a key to continue. Then the screen will) X18 W( be cleared and the new text will start)17 W XES X%%Page: 142 143 XBS X0 SI X10 /Helvetica-Bold AF X8280 4329 MT X(MS-DOS KERMIT)SH X50744 XM X(Page 142)SH X46800 50 8280 8129 UL X/Helvetica SF X8280 10969 MT X(Control Code)SH X29880 XM X(Action)SH X5891 50 8280 11169 UL X2779 50 29880 11169 UL X8280 12112 MT X(FS, Control-\134)278 W X19080 XM X(Backslash)SH X29880 XM X(draw dots)SH X8280 13255 MT X(GS, Control-])278 W X19080 XM X(Right square bracket)SH X29880 XM X(draw lines)SH X8280 14398 MT X(RS, Control-^)278 W X19080 XM X(Caret)SH X29880 XM X(Draw dots incrementally)SH X8280 15541 MT X(US, Control-_)278 W X19080 XM X(Underscore)SH X29880 XM X(Display text)SH X8280 16684 MT X(BEL, Control-G)SH X29880 XM X(Beep, make a noise)SH X8280 17827 MT X(BS, Control-H)278 W X29880 XM X(Backspace, destructive delete)SH X8280 18970 MT X(HT, Control-I)278 W X29880 XM X(Tab, convert to single space)SH X8280 20113 MT X(LF, Control-J)278 W X29880 XM X(Line feed, go down one line)SH X8280 21256 MT X(VT, Control-K)278 W X29880 XM X(Move up one text line)SH X8280 22399 MT X(FF, Control-L)278 W X29880 XM X(Clears the screen)SH X8280 23542 MT X(CR, Control-M)278 W X29880 XM X(Carriage return, start of line)SH X8280 24685 MT X(CAN, Control-X)SH X29880 XM X(Exit Tek sub-mode, or ignore)SH X8280 25828 MT X(DEL, RUBOUT)SH X29880 XM X(Delete code, same as BS)SH X8280 28114 MT X(Escape Sequence)SH X29880 XM X(Action)SH X8116 50 8280 28314 UL X2779 50 29880 28314 UL X8280 29257 MT X(ESC Control-E)SH X29880 XM X(Send a status report)SH X8280 30400 MT X(ESC Control-L)SH X29880 XM X(Clear the screen)SH X8280 31543 MT X(ESC Control-Z)SH X29880 XM X(Activate crosshairs \050GIN mode\051)SH X8280 32686 MT X(ESC Z)SH X29880 XM X(Send terminal identification)SH X8280 33829 MT X(ESC ` \050accent grave\051)SH X29880 XM X(Use solid lines in drawing)SH X8280 34972 MT X(ESC a through ESC e)SH X29880 XM X(Use dashed line patterns:)SH X30158 36115 MT X(a=fine dots, b=short dashes)SH X30158 37258 MT X(c=dash dot, d=long dash dot)SH X30158 38401 MT X(e=dash dot dot.)SH X8280 39544 MT X(ESC [ ? 3 8 l)SH X29880 XM X(Exit Tek mode \050become text terminal, VT102 etc\051)SH X8280 40687 MT X(ESC [ ? 3 8 h)SH X29880 XM X(Enter Tek mode \050from VT102 mode\051)SH X/Helvetica-Bold SF X13924 42370 MT X(Table 7-8:)SH X/Helvetica SF X19426 XM X(Response of MS-Kermit Tektronix Emulator to Received Characters)SH X46800 50 8280 44253 UL X8280 45925 MT X(at the top of the screen \050no scrolling is done in graphics mode\051. A real Tek) X140 W( 4010 begins new text at)141 W X8280 47068 MT X(column 40 and will overwrite) X37 W( dots from older material. The high resolution EGA screen and the Hercules)36 W X8280 48211 MT X(screen will hold 43 lines, the CGA) X21 W( and Monochome screens hold 25 lines, and the AT&T screen holds 50)22 W X8280 49354 MT X(lines. Hercules) X776 W( screens are 90 characters wide and) X249 W( others are 80 characters wide. Monochrome)248 W X8280 50497 MT X(systems lack graphics so the text is the normal hardware character font placed at the nearest) X146 W( normal)147 W X8280 51640 MT X(80x25 location \050similarly, "drawing" on Monochrome systems is achieved) X97 W( by using a text plus \050"+"\051 sign)96 W X8280 52783 MT X(where a dot would appear\051. Text mode is interrupted by the drawing commands discussed below.)SH X8280 55069 MT X(Drawing commands GS, FS, RS:)SH X3667 50 8280 55269 UL X4890 50 12225 55269 UL X1723 50 17393 55269 UL X1556 50 19394 55269 UL X1389 50 21228 55269 UL X8280 57355 MT X(1. Draw a line or move to a point: GS <)SH X/Helvetica-Oblique SF X(xy xy)SH X/Helvetica SF X28094 XM X(. . .)SH X/Helvetica-Oblique SF X30040 XM X(xy)SH X/Helvetica SF X(>)SH X8280 59641 MT X(GS is the name for ASCII character) X163 W( Control-] \050right square bracket\051, decimal 29. <)164 W X/Helvetica-Oblique SF X(xy)SH X/Helvetica SF X(> stands for an)164 W X8280 60784 MT X(encoded x,y coordinate as explained below. One or more x,y coordinates may follow) X233 W( GS and line)232 W X8280 61927 MT X(segments are drawn from point to point. The first) X96 W( point is reached without drawing so that GS and the)97 W X8280 63070 MT X(initial <)41 W X/Helvetica-Oblique SF X(xy)SH X/Helvetica SF X(> is a simple "move-to" command rather than a "draw-to" command. Lines may be constructed)40 W X8280 64213 MT X(from six dash patterns) X107 W( described in Table 7-8. <)108 W X/Helvetica-Oblique SF X(xy)SH X/Helvetica SF X(> coordinates are encoded by separating the 10 bit)108 W X8280 65356 MT X(value of x and of y into) X209 W( 5 bit components, adding an ASCII space \05032\051 to each to form a printable)208 W X8280 66499 MT X(character, and then adding two high bits to each) X218 W( to identify which component is being represented:)219 W X8280 67642 MT X(high-y, low-y, high-x, or low-x. They are transmitted in that) X23 W( order, with the low-x byte always sent last. In)22 W X8280 68785 MT X(fact, bytes may) X81 W( be omitted if they do not change from point to point, provided that low-x is always sent.)82 W X8280 69928 MT X(These bytes range from ASCII) X37 W( space \05032 decimal\051 to ASCII DEL \050127 decimal\051. Details are given below,)36 W X8280 71071 MT X(and summarized in Table) X76 W( 7-10. This mode completes when a new command or CRLF \050carriage return,)77 W XES X%%Page: 143 144 XBS X0 SI X10 /Helvetica-Bold AF X8280 4329 MT X(MS-DOS KERMIT)SH X50744 XM X(Page 143)SH X/Helvetica SF X8280 7929 MT X(line feed\051 arrives; escape sequences are processed transparently but other control codes) X137 W( are ignored.)136 W X8280 9072 MT X(The interrupting character is accepted and processed next.)SH X8280 11358 MT X(2. Draw dots at given locations: FS <)SH X/Helvetica-Oblique SF X(xy xy)SH X/Helvetica SF X27149 XM X(. . .)SH X/Helvetica-Oblique SF X29095 XM X(xy)SH X/Helvetica SF X(>)SH X8280 13644 MT X(FS is the name for the ASCII character Control-\134 \050backslash\051, decimal 28. <)88 W X/Helvetica-Oblique SF X(xy)SH X/Helvetica SF X(> is in the same form as)88 W X8280 14787 MT X(above. A) X662 W( dot is drawn at each x,y point. This mode completes when a new command)X192 W( or a CRLF)191 W X8280 15930 MT X(character arrives; escape sequences are) X143 W( processed transparently but other control codes are ignored.)144 W X8280 17073 MT X(The interrupting character is accepted and processed next.)SH X8280 19359 MT X(3. Draw dots from the current location: RS)SH X/Helvetica-Oblique SF X27176 XM X(<pen> <direction> <direction> . . . <direction>)SH X/Helvetica SF X8280 21645 MT X(RS is the name for the ASCII) X123 W( character Control-^ \050caret\051, decimal 30.)122 W X/Helvetica-Oblique SF X40852 XM X(pen)SH X/Helvetica SF X42920 XM X(is the character Space \05032)122 W X8280 22788 MT X(decimal\051 to move) X163 W( without drawing or P \05080 decimal\051 to draw while moving.)164 W X/Helvetica-Oblique SF X43751 XM X(<direction>)SH X/Helvetica SF X49140 XM X(is one of the)164 W X8280 23931 MT X(letters A, E, D, F, B, J, H, I as shown in Table 7-9.)SH X46800 50 8280 26003 UL X/Helvetica-Oblique SF X8280 28843 MT X(<direction>)SH X/Helvetica SF X17280 XM X(Move One Tek Dot This Way)SH X4947 50 8280 29043 UL X12837 50 17280 29043 UL X11880 29986 MT X(A)SH X17280 XM X(East \050right\051)SH X11880 31129 MT X(E)SH X17280 XM X(East and North)SH X33758 XM X(F D E)556 W X11880 32272 MT X(D)SH X17280 XM X(North \050up\051)SH X11880 33415 MT X(F)SH X17280 XM X(North and West)SH X33758 XM X(B * A) X556 W( \050*) X1112 W( is current location\051)SH X11880 34558 MT X(B)SH X17280 XM X(West)SH X11880 35701 MT X(J)SH X17280 XM X(South and West)SH X33758 XM X(J H I)556 W X11880 36844 MT X(H)SH X17280 XM X(South)SH X11880 37987 MT X(I)SH X17280 XM X(South and East)SH X/Helvetica-Bold SF X21261 39670 MT X(Table 7-9:)SH X/Helvetica SF X26763 XM X(Tektronix Dot-Drawing Commands)SH X46800 50 8280 41553 UL X8280 43639 MT X(Example: RS) X194 W( P J J J \050no spaces here, naturally\051 means draw three dots in the southwest direction,)193 W X8280 44782 MT X(stepping to each in turn. This mode completes when a new command) X16 W( or a non-)17 W X/Helvetica-Oblique SF X(<pen>)SH X/Helvetica SF X46948 XM X(or non-)17 W X/Helvetica-Oblique SF X(<direction>)SH X/Helvetica SF X8280 45925 MT X(character arrives; the interrupting character is accepted and processed next.)SH X8280 48211 MT X(Graphics INput \050GIN\051 mode:)SH X4001 50 8280 48411 UL X2390 50 12559 48411 UL X2444 50 15227 48411 UL X2501 50 17949 48411 UL X8280 50497 MT X(Graphics input mode is entered when ESC Control-Z is received. A crosshair) X16 W( is drawn on the screen and)15 W X8280 51640 MT X(may be moved by the numeric keypad arrows \050fine scale motion\051 or the Shift key and) X193 W( these arrows)194 W X8280 52783 MT X(\050coarse scale motion\051. Pressing an ASCII-producing key sends the position of the) X49 W( crosshairs to the host)48 W X8280 53926 MT X(as the sequence of: pressed key, X coordinate, Y coordinate,) X337 W( carriage return, then removes the)338 W X8280 55069 MT X(crosshairs, and then returns to) X44 W( text mode. The coordinates are encoded as for a GS command, but with)43 W X8280 56212 MT X(the Kind bits omitted \050see Table 7-10\051. If the host) X178 W( echos the report Kermit tries to absorb it without)179 W X8280 57355 MT X(comment; otherwise, the text might be shown starting at the crosshairs.) X77 W( One) X431 W( may prematurely exit GIN)76 W X8280 58498 MT X(mode by typing Control-C or Control-Break. Shift-PrtSc \050DOS screen dump\051 remains active, however.)SH X8280 60784 MT X(The six byte report string might be echoed by the host so the emulator attempts to read the next six)155 W X8280 61927 MT X(incoming bytes and suppress them while they match the report. Normally, the host is prepared to) X35 W( receive)34 W X8280 63070 MT X(the report and it should turn off echoing during the process.)SH X8280 65356 MT X(Status or Position Report:)SH X2835 50 8280 65556 UL X889 50 11393 65556 UL X3557 50 12560 65556 UL X3001 50 16395 65556 UL X8280 67642 MT X(ESCAPE Control-E requests a status report from the emulator. Tek terminals have many sub-fields.)179 W X8280 68785 MT X(Kermit-MS sends a byte of 24 hex for being in text mode or 20 hex otherwise,) X28 W( followed by the encoded X)27 W X8280 69928 MT X(then Y coordinates and a) X125 W( carriage return. Coordinates are encoded 5 bits at a time similar to the GS)126 W X8280 71071 MT X(command except the Kind bits are omitted \050see Table 7-10\051.)SH XES X%%Page: 144 145 XBS X0 SI X10 /Helvetica-Bold AF X8280 4329 MT X(MS-DOS KERMIT)SH X50744 XM X(Page 144)SH X/Helvetica SF X8280 7929 MT X(Identification Report:)SH X5614 50 8280 8129 UL X3001 50 14172 8129 UL X8280 10215 MT X(ESCAPE Z requests terminal identification, as for VT52 and VT102. Currently this report is the 10)219 W X8280 11358 MT X(character sequence IBM_TEK ESCAPE / Z \050no spaces\051.)SH X8280 13644 MT X(Screen Capturing:)SH X3168 50 8280 13844 UL X4335 50 11726 13844 UL X8280 15930 MT X(Kermit does not implement) X752 W( a graphics screen capture facility. There are many such)753 W X8280 17073 MT X(Terminate-and-Stay-Resident \050TSR\051 programs) X57 W( in circulation, as either public domain offerings or parts of)56 W X8280 18216 MT X(commercial packages \050Paint programs and even) X190 W( GRAPHICS.COM from DOS\051. High resolution EGA)191 W X8280 19359 MT X(screens require more) X100 W( than the GRAPHICS.COM program. MS Windows tells the program \050Kermit-MS\051)99 W X8280 20502 MT X(the system is using a pure text-only monochrome adapter so dots are shown as plus signs.)SH X8280 22788 MT X(Although Kermit cannot save graphics screens directly) X156 W( \050e.g. via the ^]F connect-mode command\051, the)157 W X8280 23931 MT X(received Tektronix escape sequences can still be logged to) X11 W( a PC file using the LOG SESSION command.)10 W X8280 25074 MT X(The resulting log cannot be "played back" directly on the PC,) X25 W( but it can be transferred to the host and run)26 W X8280 26217 MT X(through Kermit's Tek emulator again, just like a character-mode Kermit session log.)SH X8280 28503 MT X(VGA Modes:)SH X2112 50 8280 28703 UL X3001 50 10670 28703 UL X8280 30789 MT X(Considerable effort went into ensuring the graphics display would work automatically) X150 W( and not damage)149 W X8280 31932 MT X(monitors. Thus,) X626 W( Kermit-MS safely tests the active display adapter) X174 W( for its kind and capabilities before)175 W X8280 33075 MT X(starting graphics mode. Recent EGA+ display boards are capable of) X82 W( the 640 by 480 scan-line 16-color)81 W X8280 34218 MT X("VGA" mode which is now available on IBM PS/2 computers. The Tek emulator will happily run with 480)38 W X8280 35361 MT X(scan lines, but: there is no easy and safe way to test systems if they fully support it,) X153 W( and the normal)152 W X8280 36504 MT X(256KB of video memory is insufficient to save a full graphics image. So activating) X13 W( these higher resolution)14 W X8280 37647 MT X(modes is left to individuals to modify three) X40 W( simple constants in the source code of file MSGIBM.ASM and)39 W X8280 38790 MT X(experiment with their own system. Other systems can be added by individuals in the same manner.)SH X8280 41076 MT X(Coordinate Encoding:)SH X4891 50 8280 41276 UL X4169 50 13449 41276 UL X8280 43362 MT X(Coordinate 0,0 is the lower left corner and the X) X191 W( axis is the horizontal one. Tektronix positions are)192 W X8280 44505 MT X(mapped into the typically 640 dots wide by 200 or) X198 W( 350 dots high PC screen and thus adjacent Tek)197 W X8280 45648 MT X(positions may yield the same PC screen dot.)SH X8280 47934 MT X(4010-like devices use positions from 0 to 1023 for both X and) X55 W( Y, although only 0 to 779 are visible for Y)56 W X8280 49077 MT X(due to screen geometry. The Tek screen is 10.24 by 7.80 inches and) X204 W( coordinates are sent as 1-4)203 W X8280 50220 MT X(characters.)SH X8280 52506 MT X(4014-like devices use positions 0 to 4095,) X153 W( but each movement is a multiple of 4 positions unless the)154 W X8280 53649 MT X(high-resolution LSBXY) X80 W( are sent. This makes it compatible with the 4010 in that a full sized plot fills the)79 W X8280 54792 MT X(screen. The) X278 W( emulator accepts the LSBXY components but does not use them.)SH X8280 57078 MT X(The various modes are summarized in Table 7-10, in which the following notation is used:)SH X10504 58667 MT X(HIX, HIY = High order 5 bits of a 10 or 12 bit position.)SH X10504 59810 MT X(LOX, LOY = Middle order 5 bits of position \050low order of Tek 4010\051.)SH X10504 60953 MT X(LSBXY = Low order 2 bits of X + low order 2 bits of Y \0504014 mode\051,)SH X11338 62096 MT X(recognized by the Tek emulator but not used to calculate position.)SH X8280 64382 MT X(Note that LO-Y must be sent if HI-X has changed) X30 W( so that the Tektronix knows the HI-X byte \050in the range)31 W X8280 65525 MT X(of 20h-3Fh\051 is HI-X and not HI-Y. LO-Y must) X72 W( also be sent if LSBXY has changed, so that the 4010 will)71 W X8280 66668 MT X(ignore LSBXY and accept) X171 W( LO-Y. The LSBXY byte is @MD<60h + \050MARGIN * 10h\051 + \050LSBY * 4\051 +)172 W X8280 67811 MT X(LSBX> MARGIN is 0 here and refers to splitting the) X8 W( screen left and right for text rollover, which the Kermit)7 W X8280 68954 MT X(Tek emulator does not do.)SH X8280 71240 MT X(Tek 4010 Example:)SH X1667 50 8280 71440 UL X2224 50 10225 71440 UL X3890 50 12727 71440 UL XES X%%Page: 145 146 XBS X0 SI X10 /Helvetica-Bold AF X8280 4329 MT X(MS-DOS KERMIT)SH X50744 XM X(Page 145)SH X46800 50 8280 8129 UL X/Helvetica SF X8280 10969 MT X(Hi Y)SH X13680 XM X(Lo Y)SH X19080 XM X(Hi X)SH X24480 XM X(LSBXY)SH X29880 XM X(Characters Sent \050Lo-X Always Sent\051)SH X1889 50 8280 11169 UL X2057 50 13680 11169 UL X1889 50 19080 11169 UL X3224 50 24480 11169 UL X16061 50 29880 11169 UL X8280 12112 MT X(Same)SH X13680 XM X(Same)SH X19080 XM X(Same)SH X24480 XM X(Same)SH X46440 XM X(Lo-X)SH X8280 13255 MT X(Same)SH X13680 XM X(Same)SH X19080 XM X(Same)SH X24480 XM X(Diff)SH X34200 XM X(LSB,)SH X37800 XM X(Lo-Y,)SH X46440 XM X(Lo-X)SH X51120 XM X(4014)SH X8280 14398 MT X(Same)SH X13680 XM X(Same)SH X19080 XM X(Diff)SH X24480 XM X(Same)SH X37800 XM X(Lo-Y,)SH X42120 XM X(Hi-X,)SH X46440 XM X(Lo-X)SH X8280 15541 MT X(Same)SH X13680 XM X(Same)SH X19080 XM X(Diff)SH X24480 XM X(Diff)SH X34200 XM X(LSB,)SH X37800 XM X(Lo-Y,)SH X42120 XM X(Hi-X,)SH X46440 XM X(Lo-X)SH X51120 XM X(4014)SH X8280 16684 MT X(Same)SH X13680 XM X(Diff)SH X19080 XM X(Same)SH X24480 XM X(Same)SH X37800 XM X(Lo-Y,)SH X46440 XM X(Lo-X)SH X8280 17827 MT X(Same)SH X13680 XM X(Diff)SH X19080 XM X(Same)SH X24480 XM X(Diff)SH X34200 XM X(LSB,)SH X37800 XM X(Lo-Y,)SH X46440 XM X(Lo-X)SH X51120 XM X(4014)SH X8280 18970 MT X(Same)SH X13680 XM X(Diff)SH X19080 XM X(Diff)SH X24480 XM X(Same)SH X37800 XM X(Lo-Y,)SH X42120 XM X(Hi-X,)SH X46440 XM X(Lo-X)SH X8280 20113 MT X(Same)SH X13680 XM X(Diff)SH X19080 XM X(Diff)SH X24480 XM X(Diff)SH X34200 XM X(LSB,)SH X37800 XM X(Lo-Y,)SH X42120 XM X(Hi-X,)SH X46440 XM X(Lo-X)SH X51120 XM X(4014)SH X8280 21256 MT X(Diff)SH X13680 XM X(Same)SH X19080 XM X(Same)SH X24480 XM X(Same)SH X29880 XM X(Hi-Y,)SH X46440 XM X(Lo-X)SH X8280 22399 MT X(Diff)SH X13680 XM X(Same)SH X19080 XM X(Same)SH X24480 XM X(Diff)SH X29880 XM X(Hi-Y,)SH X34200 XM X(LSB,)SH X37800 XM X(Lo-Y,)SH X46440 XM X(Lo-X)SH X51120 XM X(4014)SH X8280 23542 MT X(Diff)SH X13680 XM X(Same)SH X19080 XM X(Diff)SH X24480 XM X(Same)SH X29880 XM X(Hi-Y,)SH X37800 XM X(Lo-Y,)SH X42120 XM X(Hi-X,)SH X46440 XM X(Lo-X)SH X8280 24685 MT X(Diff)SH X13680 XM X(Same)SH X19080 XM X(Diff)SH X24480 XM X(Diff)SH X29880 XM X(Hi-Y,)SH X34200 XM X(LSB,)SH X37800 XM X(Lo-Y,)SH X42120 XM X(Hi-X,)SH X46440 XM X(Lo-X)SH X51120 XM X(4014)SH X8280 25828 MT X(Diff)SH X13680 XM X(Diff)SH X19080 XM X(Same)SH X24480 XM X(Same)SH X29880 XM X(Hi-Y,)SH X37800 XM X(Lo-Y,)SH X46440 XM X(Lo-X)SH X8280 26971 MT X(Diff)SH X13680 XM X(Diff)SH X19080 XM X(Same)SH X24480 XM X(Diff)SH X29880 XM X(Hi-Y,)SH X34200 XM X(LSB,)SH X37800 XM X(Lo-Y,)SH X46440 XM X(Lo-X)SH X51120 XM X(4014)SH X8280 28114 MT X(Diff)SH X13680 XM X(Diff)SH X19080 XM X(Diff)SH X24480 XM X(Same)SH X29880 XM X(Hi-y,)SH X37800 XM X(Lo-Y,)SH X42120 XM X(Hi-X,)SH X46440 XM X(Lo-X)SH X8280 29257 MT X(Diff)SH X13680 XM X(Diff)SH X19080 XM X(Diff)SH X24480 XM X(Diff)SH X29880 XM X(Hi-y,)SH X34200 XM X(LSB,)SH X37800 XM X(Lo-Y,)SH X42120 XM X(Hi-X,)SH X46440 XM X(Lo-X)SH X51120 XM X(4014)SH X8280 30940 MT X(Kind code for byte:)SH X29880 XM X(20h)SH X34200 XM X(60h)SH X37800 XM X(60h)SH X42120 XM X(20h)SH X46440 XM X(40h)SH X29880 32083 MT X(\050transmitted left to right\051)SH X/Helvetica-Bold SF X18425 33766 MT X(Table 7-10:)SH X/Helvetica SF X24483 XM X(MS-Kermit Tektronix Coordinate Interpretation)SH X46800 50 8280 35649 UL X8280 37735 MT X(Suppose <)81 W X/Helvetica-Oblique SF X(xy)SH X/Helvetica SF X(> is point y) X81 W( = 300, x = 500 in Tektronix coordinates. Split each 10-bit coordinate into 5-bit)82 W X8280 38878 MT X(groups, add ASCII Space \05032\051 and add the Kind code to each. Send the X part last.)SH X/Courier-Bold SF X20280 40683 MT X(HI-Y LO-Y) X2400 W( HI-X) X10800 W( LO-X)2400 W X10680 41814 MT X(Y=300d=012Ch= 01001 01100) X600 W( X=500d=01F4h=) X1200 W( 01111 10100)600 W X11880 42945 MT X(+32d=+20h +10000 +10000) X1200 W( +32d=+20h) X2400 W( +10000) X1200 W( +100100)600 W X11880 44076 MT X(+Kind code +100000 +1100000) XSH( +kind) X2400 W( code +100000 +1000000)SH X3600 50 19080 44276 UL X4200 50 23880 44276 UL X3600 50 38280 44276 UL X4200 50 43080 44276 UL X10680 45207 MT X(Binary 111001) X4200 W( 1111100) X600 W( 111111) X9600 W( 1100100)600 W X10680 46338 MT X(ASCII 9) X6600 W( |) X3600 W( ?) X13200 W( d)3600 W X/Helvetica SF X8280 48198 MT X(So <)226 W X/Helvetica-Oblique SF X(xy)SH X/Helvetica SF X(> = \050500,300\051 is sent or received in a) X226 W( GS command as "9|?d". An example in C \050program)225 W X8280 49341 MT X(fragments\051:)SH X/Courier-Bold SF X8280 51146 MT X(#define GS) XSH( 29)1200 W X8280 52277 MT X(#define US) XSH( 31)1200 W X8280 53408 MT X(FILE *fp;) XSH( /*) X12600 W( File descriptor for terminal */)SH X8880 54539 MT X(. . .)SH X10680 56344 MT X(fputc\050 GS, fp\051; coord\050 75, 65\051;) XSH( /*) X3600 W( Move to 75,65) XSH( */)3000 W X10680 57475 MT X(fputc\050 US, fp\051; fputs\050"A House", fp\051; /* Annotate at 75,65 */)SH X10680 58606 MT X(fputc\050 GS, fp\051;) XSH( /*) X13200 W( Now draw lines... */)SH X10680 59737 MT X(coord\050 50, 50\051; coord\050300, 50\051;) XSH( /*) X3600 W( Bottom side) XSH( */)4200 W X10680 60868 MT X(coord\050300,200\051; coord\050 50,200\051;) XSH( /*) X3600 W( Right wall, top) XSH( */)1800 W X10680 61999 MT X(coord\050175,250\051; coord\050300,200\051;) XSH( /*) X3600 W( Roof) XSH( */)8400 W X10680 63130 MT X(fputc\050 GS, fp\051;) XSH( /*) X13200 W( Start a new line) XSH( */)1200 W X10680 64261 MT X(coord\050 50, 50\051; coord\050 50,200\051;) XSH( /*) X3600 W( Left wall at 50,50 */)SH X10680 65392 MT X(. . .)SH X8280 67197 MT X(coord\050x, y\051 int x, y; {) XSH( /*) X4200 W( Send x,y coordinates to Tek 4010 */)SH X10680 68328 MT X(fputc\050\050y / 32\051 + 32, fp\051;) XSH( /*) X7200 W( High y */)SH X10680 69459 MT X(fputc\050\050y % 32\051 + 96, fp\051;) XSH( /*) X7200 W( Low y */)SH X10680 70590 MT X(fputc\050\050x / 32\051 + 32, fp\051;) XSH( /*) X7200 W( High x */)SH X10680 71721 MT X(fputc\050\050x % 32\051 + 64, fp\051;) XSH( /*) X7200 W( Low x */)SH XES X%%Trailer X%%Pages: 164 X%%DocumentFonts: Helvetica Helvetica-Bold Helvetica-Oblique Symbol Courier-BoldEND_OF_tek.ps if test 26708 -ne `wc -c <tek.ps`; then echo shar: \"tek.ps\" unpacked with wrong size! fi # end of overwriting check fi echo shar: End of shell archive. exit 0