diff --git a/doc/_info_/xgp.writes b/doc/_info_/xgp.writes index 78571559..f55950d4 100644 --- a/doc/_info_/xgp.writes +++ b/doc/_info_/xgp.writes @@ -1,211 +1 @@ -Date: 11 Sep 1977 2232-PDT -From: HPM at SU-AI (Hans Moravec) -To: DLW at MIT-AI - - Character Mode - - -In character mode, the XGP can be used to print text using one or -more fonts and to draw vectors. Modes 0 and 13 are the character -modes for the XGP. In these modes, each 36-bit word is interpreted -as five 7-bit bytes. There is no fixed mapping between byte values -and particular graphic symbols. The graphic symbol for any byte is -defined by the current font in use. Certain byte values have special -meanings consistent with ascii, and one byte value, octal 177, is -used as an escape which gives the bytes that follow a special -meaning. - -Character mode permits vectors and multiple active text lines. The -system must be presented with vectors and text sorted by ascending -values of Y0 (top scan line number for text or vectors); otherwise, -the output will be wrong. - -The 7-bit bytes taken from the user's buffer in character mode are -interpreted as follows: - - Byte Value Usual meaning Escape meaning - - 0 Null -- byte is ignored Normal - 1 Normal XGP ESCAPE 1 - 2 Normal XGP ESCAPE 2 - 3 Normal XGP ESCAPE 3 - 4 Normal XGP ESCAPE 4 - 5:10 Normal Reserved - 11 TAB Normal - 12 LF Normal - 13 Normal Reserved - 14 FF Normal - 15 CR Normal - 16:37 Normal Reserved - 40:176 Normal Normal - 177 ESCAPE Normal - -NORMAL means that the definition of this byte in the current font -will be printed. If this byte is undefined in the current font, it -will be ignored. - -ESCAPE means that the next byte will have an alternate meaning -selected from the column ESCAPE MEANING. - -TAB produces a column select to the first column which is at least -the width of a blank to the right of the current column position, and -some multiple of 8 blank widths to the right of the left margin. - -LF activates the current text line. The current text will be queued -to be printed, and then the default Y-position of text will be -advanced by the number of scan lines it takes to draw this text line, -plus the number of scan lines specified by the current interline -spacing value XLINE (see functions 2 and 3--read and set margins--of -the XGP MTAPE UUO on page 290). This new default Y-position will be -used for the next text line (unless changed by a vector command or -ESCAPE 3). - -FF activates the current text line, then causes a page eject after -the current text line is printed, and sets the default Y-position to -the first scan line below the top of page margin (TMAR) on the new -page. See also functions 2 and 3--read and set margins--of the XGP -MTAPE UUO on page 290 for the effects of FF. - -CR causes a column select to the current left margin to be generated. - -XGP ESCAPE 1 ('177&'001) causes the next 7-bit byte to be read as a -special operation code. The following codes are implemented: - - CODE XGP ESCAPE 1 MEANING - - 0:17 FONT SELECT. The code, 0 to 17, is taken as the font - identification number of the font to be used. - - 20:37 Reserved for future use. - - 40 COLUMN SELECT. The next 14 bits (2 bytes) are taken - modulo =4096 as the absolute X-position to print at - next. The intention is to allow arbitrary-width - spaces for text justification. - - 41 UNDERSCORE. The next 7-bit byte is taken in two's - complement as the relative number of the scan line on - which the underscore is to occur, where zero - represents the baseline of the text, negative values - represent scan lines above the baseline and positive - values scan lines below it. The next 14 bits (2 - bytes) are taken modulo =4096 as the length of the - underscore. If the underscore command is the first - thing done on a new text line, the baseline used will - be the baseline of the current font. - - 42 LINE SPACE. The current text line is activated and - queued to print. Then the default Y-position of text - is advanced by the number of scan lines it takes to - draw this text line, plus the number of scan lines - given by the next byte. Thus, this is like LF - (linefeed) but allows using a different interline - spacing value (XLINE) for this one text line. - - 43 BASELINE ADJUST. The next 7 bits are taken in two's - complement as the baseline adjustment to the current - font. The adjustment sticks until reset by another - BASELINE ADJUST or by a FONT SELECT, or until modified - by a RELATIVE BASELINE ADJUST (52 below). The - intention is to allow a font to be used for subscripts - and superscripts. Increment baseline for superscript, - decrement for subscript. Values 0:77 are increments; - 100:177 are decrements: 100 means -100, 177 means -1. - - 44 PRINT THE PAPER PAGE NUMBER. The paper page number is - set to 1 by an FF (formfeed). It is incremented each - time the paper is cut. The decimal value of this - count is printed. - - 45 ACCEPT HEADING TEXT AND PRINT IT NOW. The next byte - is a count of the number of bytes of heading text to - follow. Those bytes will be read into the heading - line, which will be printed 1) now and 2) immediately - after an FF is inserted to begin a new page because of - an LF (linefeed) or LINE SPACE command that has set - the Y-position for printing to a scan line beyond the - end of the page body (as defined by PMAR). Only one - text line is allowed in the heading, which must end - with an LF or a LINE SPACE (unless the byte count is - zero). A zero byte count means flush any previously - specified heading text. - - 46 START UNDERLINE. Set the left end of an underline. - See the STOP UNDERLINE command below. - - 47 STOP UNDERLINE. The next byte is taken in two's - complement as the relative number of the scan line on - which the underline is to be written (same meaning as - in UNDERSCORE--41 above: zero represents the baseline - of the text, negative values represent scan lines - above the baseline and positive values scan lines - below it). The extent of the underscore is defined by - this command and the START UNDERLINE command above. - If this command is not preceded by a START UNDERLINE - command, the results will be unpredictable. No - underline will happen until this command is given. - Beware of column selects. - - 50 SET INTERCHARACTER SPACING. The next byte is - interpreted as the intercharacter spacing, which is - not currently used for anything. This code is - included for compatibility with MIT. - - 51 STOP UNDERLINE OF SPECIFIED THICKNESS. This is just - like STOP UNDERLINE (47 above) except that the first - byte after the 51 is interpreted as the desired - thickness (in scan lines) of the underlining. The - second byte after the 51 is taken in two's complement - as the relative number of the first scan line on which - the underline is to be written (same meaning as in - UNDERSCORE--41 above: zero represents the baseline of - the text, negative values represent scan lines above - the baseline and positive values scan lines below it). - - 52 RELATIVE BASELINE ADJUST. This is the same as - BASELINE ADJUST (43 above) except that the baseline is - adjusted relative to any previous adjustment. The - next 7 bits are taken in two's complement as the - relative baseline adjustment to the current font. The - adjustment sticks until reset by a BASELINE ADJUST - (43) or a FONT SELECT, or until modified by another - RELATIVE BASELINE ADJUST. - -XGP ESCAPE 2 ('177&'002) causes the next 7-bit byte to be taken as a -twos-complement column increment. Values 0:77 are positive -increments; 100:177 are negative increments: 100 means -100, 177 -means -1. - -XGP ESCAPE 3 ('177&'003) causes the next 2 bytes to be taken as the -scan line number on which to start this text line. Scan line 0 is -the first scan line on the page (immediately following the cut). The -topmost scan line of the present text line will be placed on the scan -line indicated in this command. If there is no current text line, -the next text line will be put there. The system is not able to -queue text or vectors for scan line 0 of the first page of a -transfer; if it is necessary to queue things on scan line 0, it is -recommended that a page be output prior to that attempt. - -XGP ESCAPE 4 ('177&'004). This escape is used to specify a vector. -It is followed by =11 bytes describing the vector: - - 2 bytes of Y0 Number of first scan line of vector. - 2 bytes of X0 Column position of left edge of first scan line - of the vector. - 3 bytes of DX Delta X: 1 bit of sign; 11 bits of integer; 9 - bits of fraction. - 2 bytes of N The number of scan lines on which this vector - is visible. - 2 bytes of W The column width of each scan line. - - -The system must be presented with vectors and text sorted by -ascending values of Y0. Otherwise, the output will be wrong. - - -The escape significances of codes 5 through 10, 13, and 16 through 37 -are not defined at the present time but are reserved for future use. - -------- - - \ No newline at end of file +This file has been superceded by INFO; XGP > diff --git a/doc/sysdoc/xgp.writup b/doc/sysdoc/xgp.writup index 923489c4..f55950d4 100755 --- a/doc/sysdoc/xgp.writup +++ b/doc/sysdoc/xgp.writup @@ -1,158 +1 @@ -Character Mode for the XGP - -The PDP-11 program for the XGP interprets character strings in files -in the following format: - - -Byte Usual meaning Escape significance - -0 Null - byte is ignored Normal -1 Normal XGP ESCAPE 1 -2 Normal XGP ESCAPE 2 -3 Normal XGP ESCAPE 3 -4 Normal XGP ESCAPE 4 -5-7 Normal Reserved -10 Backspace Normal -11 TAB Normal -12 LF Normal -13 Normal Reserved -14 FF Normal -15 CR Normal -16-37 Normal Reserved -40-176 Normal Normal -177 ESCAPE Normal - -Normal means the definition of this byte in the current font will be -printed. If this byte is undefined in the current font, it will be -ignored. - -ESCAPE causes the next byte to have an alternate meaning selected -from the column "Escape significance". - -Backspace spaces to the left the width of -one space in the current font, including inter-character -spacing. - -TAB produces a column select to the column which is at least the -width of a blank to the right of the current column position, and -some multiple of 8 blank widths to the right of the left margin. -(this computation of the width includes the inter character spacing) - -LF activates the current text line. The current text will be queued -to printed. This line will be printed at a vertical location such -that the distance between the baselines of of it and the preceeding line -is equal to the vertical spacing parameter, unless this would cause -the subscripts of the former line to overlap vertically with the superscripts -of this line. It will then be pushed down to make this not the case. - -FF, like LF, activates the text. In addition, FF causes a page -eject after the current text line is printed. FF also sets the -defalut Y position to the first line below the top of page margin on -the new page. - -The program will automatically form feed when the next text line would -place characters below the bottom margin. Sequential form feeds will -increment the page number but will otherwise be ignored. - -CR causes a column select to the current left margin to be -generated. This can be used to produce overprinting. - - -XGP ESCAPE 1 ('177&'001) causes the next 7 bits to be read as a -special operation code. The following codes are implemented: - - 0-3 Font select. - The code, 0 to 3 is taken as the font identification - number of the font to use. - - 4-37 Reserved for future use. - - 40 XGP Column Selector - The next 14 bits are taken as the - x-position to print at next. (The intention is to - allow arbitrary width spaces for text justification.) - - 41 XGP Underscore - The next 7 bits are taken as the scan-line number on - which to underscore. It is taken as a 2's complement - increment to the base line. Zero is on the baseline, - positive bytes are down from it. Underscores outside - the range of the other characters on the line will be - ignored. The next 14 bits are taken as the length - of the underscore. - - 42 Line space. - This does a line feed and then takes the byte as the - number of lines between this line's baseline and the - baeline of the following line. - - 43 Base-line adjust. - The next 7 bits are taken in two's complement as the - base-line adjustment to the current font. The - adjustment sticks until reset by another adjust - command or a font select. The intention is to allow a - font to be used for subscripts and superscripts. - (Increment baseline for superscript, decrement for - subscript). - -** 44 Print the paper page number. - The paper page number is set to 1 by a form feed. It - is incremented each time the paper is cut. The - decimal value of this count is printed. - -** 45 Accept heading text. - The next byte is a count of bytes to follow. Those - bytes will be read into the heading line. When that - count is exhausted, the heading line will be printed. - If a line feed or line space command is given that - would cause text to be printed below the current text - area, a form feed is inserted by the XGP and if a - heading is defined, it will be printed. - - 46 Start Underline. - Set the left end of an underline. See Stop Underline. - - 47 Stop Underline. - The next byte is the scan line on which to write the - underline (same as XGP Underscore). The extent of - the underscore is defined by this command and Start - Underline. If this command is not preceded by a Start - Underline, it will underline from the left margin. - Beware of column selects. No underline will happen - until this command is given. - - 50 Takes the next byte as the intercharacter spacing - This is reset to zero at the end of each line. - -XGP ESCAPE 2 ('177&'002) causes the next 7 bits to be taken as the -column increment. This quantity is signed: 0-77 are positive -increments 100 to 177 are negative increments (100  -100, 177  -1). - -XGP ESCAPE 3 ('177&'003) causes the next 2 bytes to be taken as the -scan line number on which to start this text line. Scan line 0 is -the first scan line on the page (immediately following the cut). -The topmost scanline of the present text line will be placed on the -scan line indicated in this command. - - -** XGP ESCAPE 4 ('177&'004). This escape is used to specify a vector. -It is followed by 11 bytes describing the vector: - - 2 bytes Y0 Scan line number of first line of vector. - 2 bytes X0 Column position of left edge of first line - of the vector. - 3 bytes DX Delta X. 1 bit of sign; 11 bits of integer; - 9 bits of fraction. - 2 bytes N The number of scan lines on which this vector - is visible. - 2 bytes W The column width of each scan-line. - -The XGP service must be presented with vectors sorted by -ascendending values of Y0. If the vectors are not sorted, the -output will be wrong. - -The escape significance of codes 5 through 10, 13, and 16 through -37 is not defined at the present time but reserved for future use. - -$ -  \ No newline at end of file +This file has been superceded by INFO; XGP >