Digital PDFs
Documents
Guest
Register
Log In
DEC-08-G61B-D
December 1966
57 pages
Original
2.7MB
view
download
Document:
338pgmg
Order Number:
DEC-08-G61B-D
Revision:
Pages:
57
Original Filename:
https://svn.so-much-stuff.com/svn/trunk/pdp8/src/dec/dec-08-g61/dec-08-g61b-d.pdf
OCR Text
DEC—OB-G6lB-D DIGITAL EQUIPMENT CORPORATION - MAYNARD, MASSACHUSETTS DEC-O8-G6lB—D PROGRAMMED BUFFERED DISPLAY 338 PDP-8 PROGRAMMING MANUAL OiGITAL EOLJIPMENT CORPORATION - MAYNARD. MASSACHUSETTS Copyright 1966 by Digital Equipment Corporation PROGRAMMED BUFFERED DISPLAY 338 CONTENTS Page Chapter SYSTEM INTRODUCTION l ..... Functional Description l .i ‘ u—ul ......... Intensity ......................................... .......................................... ................................................. .................................................... Mode .................................................... Subroutining Light Pen Flags .............................................. ................................................. Pushbuttons O . ....................... State ................ Timing .................................................. Parameter Jump Pop .............................. ................................................... Control State Commands Mode . .................................................... DATA FORMATS NNNNN .................................... Display Parameters (Coordinate System) Scale lo'o'xr'oin'ix'oio . memhwwN—J \O ........................................ ................................................ ..................... . .............................. .................................................... .............................................. . ....... Conditional Skip (Bank l) ................................... Conditional Skip (Bank 2) .......................... Miscellaneous ........ ....................................... Data State Commands Increment Mode ..... .................................... ........................................... Vector Mode (Two Words) ................................... Vector Continue Mode (Two Words) .......................... i2 i3 15 16 i7 21 2] 22 24 26 ........ 26 ................................. 27 ........................................... 28 ..................................... Character Mode (Optional) Graphplot Mode . .......................................... Point Mode (Two Words) Short Vector . 10 . PROGRAMMED BUFFERED DISPLA‘Y' 338 (continued) CO NTE NTS Chapter Page Display Oriented Computer Instructions 2.3 From the Display ........................... 2.3.l Group I 2.3.2 Group 2. To the Display 2.3.3 Group 3. IOT Skip on Display Flags . . . ............................... ................................... 29 29 32 ......................... 36 ..................................... 39 Appendix l VC38 CHARACTER GENERATOR 2 PROGRAMMING EXAMPLES 3 REFERENCETABLES................................................ .. ......................... . ............ 45 5i PROGRAMMED BUFFERED DISPLAY 338 PARTI SYSTEM INTRODUCTION The Type 338 Programmed Buffered Display is a precision incremental display system, consisting of a small scale, is the Digital high speed computer and a display subsystem for control of the CRT. The computer used Equipment PDP-8 (for Programmed Data Processor). It is a single address, fixed word length (twleve bits) machine. The complete cycle time for its random access magnetic core memory is l .5 psec. All arithmetic operations are performed in 25 complement notation. This guide enables the experienced user to adapt the powerful capabilities of the Type 338 to his application . This information is readily available in the PDP-8 User Handbook, F—85. instruction set. 1.1 The contents assume that the reader is familiar with the operation of the PDP-8 and its FUNCTIONAL DESCRIPTION A self-contained unit with built-in control and power provisions, the 338 Display may be inter- faced to an existing system or it may stand alone as a powerful computer-driven display system. is a l6-inch tube with 9—3/8 inch by 9-3/8 inch usable display area. Magnetic deflection and focusing techniques re5ult in uniform resolution over this area to the 338 Display. The CRT . Up to eight display CRTs may be remotely slaved All can receive identical information, or all can receive different information, or any combination can be established. The routing of information to the slave display is a function of display file instructions in the control state. The display logic can be thought of as a special purpose computer which stores its instructions (display commands) in the memory of the PDP-8, and interacts with the computer through a series of in— struction interrupts and data transfers. The display is an output device with respect to the computer for the following reasons: a. The PDP-8 has a series of instructions which start, stop, and load and interrogate the registers of the display. b. The PDP-8 can modify the data commands which are interpreted by the display be- cause the commands are stored in the PDP-8 memory. The commands are transferred to the display control via the PDP-8 single cycle data break system. The display file words are loaded into a table or block of successive memory locations; and the beginning location of this table is loaded into a special register called the display address counter (DAC) The output of the DAC is applied to the inputs of the memory address (MA) register. A data break is then initiated by either the display or the computer, and this address is read into the MA. The computer then . PROGRAMMED BUFFERED DISPLAY 338 goes through a break cycle in which it fetches the word from memory and places it into its memory buffer (MB) register from where it is transferred to the buffer register (DX) in the display. During this time, the display starts its operation and the DAC is incremented by one. not incremented during the break cycle. The computer program counter (PC) is At the end of the break cycle the PDP-8 continues its main pro- gram until the display requires another data break. ] . l .l DiSplay Parameters (Coordinate System) The display screen which is 9-3/8 inches square, has l0 bits of resolution; in other words there are l,024 points in the x and y directions or about a million points in all. The x and y position registers are l3 bits long, however, and therefore the screen represents only l/64 the total addressable area (paper). The paper is broken up into 64 sectors corresponding to the upper 3 bits of x and y, with sector 0 defined as the lower left sector. Only information in sector 0 is intensified so that translation is accomplished by moving the paper in relation to sector 0. The lower left corner is point (0,0), and the coordinates in- crease to the right and up, and decrease to the left and down. drawn across the boundary of the paper. An edge violation occurs when a line is This is a warning that an overflow condition has just occurred in the x or y position register. A vertical edge flag indicates the y position register went from all is to all Os, or from all Us to all ls. The horizontal edge flag indicates overflow in the x register. flow can be set to occur after the The over- 10th, llth, 12th or 13th bit in x and y. The virtual paper size can therefore be changed under program control. l.l.2 Scale The scale setting determines the number of positions each succeeding spot is moved before it is intensified. It effects both the size and appearance of lines or symbols drawn in the vector, vector continue, short vector, increment, or character modes. At scale setting “2’ each point can be clearly distinguished. At scale setting 002, lines and symbols appear to be continuous. The point spacing is illus- trated in the following table. Scale Point Spacing Intensify 002 o o o o o o o o o 0 Every 0l2 . O C O C O O O . 0 2nd l02 O O O O C O O O C O 4th 1 O O O O O O O O O 0 8th 32 PlROGRAMMED BUFFERED DISPLAY 338 1.1.3 Intensity There are eight intensity levels available on the display, ranging From visible, to ill 2 which is very bright. , 0002, which is barely Note that scale and intensity settings are interrelated. For ex- ample, iF characters are drawn (with the character generator) at the lowest scale setting, and too high an intensity is used, they will be badly blurred. On the other hand, iF many characters are to be displayed simultaneously or iF the light pen is to be used, it is best to use as high an intensity level as possible. 1.1.4 State The display logic is broken into two states, data state and control state. mands are interpreted as instructions to the display logic to change parameters, Control state com- iump, skip, etc. The data state commands are instructions to move the beam via the x and y position registers. When the display is initialized, the commands are accepted in control state until an "enter data state'l command is given. The display returns to control state From data state by escaping. In control state, the First three bits (op code) designate the operation to be performed by the remaining nine bits. Seven oF the eight op codes are used: 0 Parameter 1 Mode 2 Jump 3 Pop 4 Conditional skip l 5 Conditional skip 2 6 Miscellaneous (microprogrammed) 7 0 Arithmetic compare 1 l Arithmetic compare 2 2 Skip on Flags 3 Count 4—7 Set slaves (optional) Spare The details are discussed in part 2 oF this manual. 1.1.5 Mode Data state words are accepted in one oF seven Formats according to the contents oF the mode register. The data state modes available are: PROGRAMMED BUFFERED DISPLAY 338 0 Point 1 Increment Vector Vector continue \lo~U1-t>om Short vector Character (optional) Graphplot Spare All modes are entered from control state by the "enter data state" command. Each mode, however, has its own way of escaping back to control state. The mode register is cleared by power clear and initialization of the display (IOT l65) l. l .6 . Subroutining This enables unconditional The display has control state commands which will modify the DAC. display iumps (iump),iump to subroutine (push jump) and the return from subroutines (pop). is specified by 15 bits allowing direct addressing of 32K of core. The new address The jump and push iump commands are specified by two conseCUtive l2-bit words. Push iump stores the return address, mode, intensity, scale, and light pen on a push-down pointer list which resides in the first 4K of PDP—8 core. This information is automatically written into two locations in the format shown below: Lighl Break Field 0 l 2 Scale Pen 3 4 Mode 6 5 7 Intensity 8 9 10 ll 9 to H First Word Low Order l2-Bits of Memory Address 0 ‘1 2 3 4 5 6 7 8 Second Word The information is placed in the address indicated by the push-down pointer, a l2—bit register in the display logic. When a push (PDP) which is jump is executed, the PDP is incremented twice, adding a new entry to the PDP list. This allows multi-level and recursive subroutines in the display. The pop command takes the last entry on the PDP list from core and gates it back to the proper registers. The display status, however, can be inhibited from being restored. maticaily decremented by two, making the PDP list a last in first out stack. 4 The PDP is auto- PROGRAMMED BUFFERED DISPLAY 338 l .l .7 Light Pen The light pen is an input device which generates a signal preted by the computer. (flag) that can be sensed and interleaving the contents of all display A light pen interruption steps the display, registers intact, and signals the computer that an interruption has occurred. programmer can examine the contents of the display registers to determine the location (on the display) of the point of light that was sensed by the light pen word specifying that point. l . l 8 . When this happens, the and/or determine the memory location of the data The light pen detects light in the range 4300 to 5600 angstroms. Push buttons The 338 is equipped with a bank of twelve pushbuttons. clear button to reset that group. They are placed six in a row with a The buttons in each group are interlocked, but two buttons in different groups can be pressed simultaneously. Pressing a button complements an associated flip-flop. the pushbutton is lit when its flip-flop is in the 1 state. For reference, The state of the pushbuttons can be sensed both by the display, using the control state skip instructions, and the PDP-8, which can read the state of the push- buttons into the acoumulator. The PDP-8 and display can also clear and set the pushbuttons. three—way communication between the operator, display logic, and PDP-8. This enables The buttons are labeled 0 through ii and are packaged in a compact, portable box. The box is connected to the display by a 20-ft cable. l.l.9 There is also a special computer interrupt button on the box. Flags There are a number of special conditions that can arise in the display which require the atten— tion of the PDP-8 processor. These conditions are indicated by display flags which can interrupt the computer and be sensed by IOT skip instructions. a. Internal stop b. External stop c. Edge d. Light pen find e. Push button hit f. Manual interrupt The flags are: The flags can be separated into two groups; which do not stop the display. a-d are flags which stop the display; e-f are flags Group 1 flags are cleared in one of three ways: initialization of a display sequence (6165); resuming from the point the display stopped flag if the display is no longer needed (éléls) . (6W48 or 6l648); and a Power clear clears all display flags. pulse to clear the PROGRAMMED BUFFERED DISPLAY 338 l. I .9.l Internal Stop Internal stop is a control state “mode” command - (14008). When the display stops, the DAC has already been incremented and points to the location after the stop code. skips if the internal stop flag is on and IOT l7l is given. resume IOT I64 with the AC = The PDP—8 0 causes the display to from this point. 1.] .9.2 External Stop The PDP-8 IOT - l54, with AC bits 0 and 4 at 0, causes the display to stop. When the display stops, the external stop flag is set and interrupts the computer if the interrupt system is on The time lapse between the IOT and the display stop is dependent upon the display command . being executed when IOT l54 is given. The rule is that the entire command will be exeCUted before the If the command is a two-word instruction like iump, display is stopped. pimp, or vector, or point mode command, both words are pulled out of memory and exeCUted before the display stops. This allows simple resuming of the sequence even if the display is used in the interim. The external stop flag causes the PDP-8 to skip when IOT 151 is given (with AC bits 0 and 4 at O). The display sequence can be resumed by giving IOT 174. I. I .9.3 FEE — The edge is defined as the point at which the x or y position registers overflow. initial conditions of the display can be set up so that all edges are ignored. The In the normal case, the edge flag stops the display; when the edges are ignored, however, the display waits 35 psec and then resumes automatically. causes The IOT T74 will restart the display from the edge if the display has stopped. the PDP-8 to skip if either the horizontal or vertical edge flag is on. LI .9.4 Light Pen Find The light pen find flag always stops the display as soon as it senses light. - This occurs about 6 psec after the initial flash. more x IOT l52 The display logic therefore has time to execute several points in the vector before it stops. This must be taken into consideration when reading back the and y coordinates after the display has stopped. The PDP-8 can skip on the light pen flag using IOT l32. The vector or increment sequence can be resumed by giving IOT I74. 1.1.9.5 Pushbutton Hit Flag - If any of the twelve pushbuttons are hit, the pushbutton hit flag is raised. This flag will rat stop the display, but can cause a computer interrupt. which reads back the status of the flag into the AC. the accumulator. I .I .9.6 box. This flag will IOT l7l reads the state of the twelve pushbuttons into There is no skip IOT for the pushbutton hit flag. Manual Interrupt It has a The flag is cleared by IOT 062, - The manual interrupt flag is set by the interrupt button on the pushbutton light associated with the flag in the button. Whenever the flag is set, the button is lit. n_ot stop the display. gram counter to skip if the The flag can be cleared by IOT flag is set. I72, which will also cause the pro- PROGRAMMED BUFFERED DISPLAY 338 Four of the display flags must be gated onto the interrupt line by the initial condition IOT T45. These flags are edge, light pen find, pushbutton, and internal stop. The external stop and manual inter~ rupt flags always cause an interrupt if the interrupt system is on. l.l.l0 Timing The display can take a break cycle a maximum of one out of three machine cycles. effective cycle time of the display is 4.5 usec if single cycle instructions are being executed.* control state instructions except iump, push iump, and pop, are executed in one display cycle. instruction takes two cycles because it is a two-word instruction. The push The All . The iump iump is a four-cycle instruc- tion, two to get the instruction out, and two to push the two status words away on the push down list. pop instruction. is three cycles, one to obtain the instruction and two to The pull the status words from the push down list. In data state, the mode and the number of intensified points determine execution time. In the incremental modes, increment, vector, short vector, and vector continue, points are plotted at a rate of one every I .l psec for intensified lines and 300 nsecs for nonintensified lines. Point and Graphplot mode words are given a 35-psec delay to allow the beam to settle, whether the point is intensified or not. If points are plotted in the same general area, as in a continuous curve, the delay for settling is only 6 psec. The small delay is given if, and only if, the two points plotted have the same high order 6 bits (of l3) in both x and y position. The time needed to fetch the information must then be added (one or two display cycles) to get the total execution time. The VC38 Character Generator (optional) plots at about 37 psec per character. variable depending on the number of intensified points in the character. This time is Control characters are executed in two display cycles except for carriage return which takes an additional 35 psec. To estimate the time to display a 6-bit character, add up the time required for drawing out the character, then add in 2-l/2 display cycles needed for the character dispatch *See PDP-8 Users Manual for details on the data break system. . PROGRAMMED BUFFERED DISPLAY 338 PARTZ DATA FORMATS Listed below are the data Formats for the control and data state commands. short general description, and a bit-by-bit explanation are given. a common The bit structure, The control state also has a list of mnemonics. Control state is broken into the seven op codes with the miscellaneous command broken down further to Five microprogrammed commands. 2 .i In data state, each of the seven modes is discussed separately. CONTROL STATE COMMANDS Control state commands are instructions to the display logic to change a register, such as scale, DAC, mode, etc. Some of the commands change more than one register, so an enable bit is provided It the enable bit is a l, the associated register is reset to the appropriate value. For each function. It the enable bit is a O, the associated register is unchanged independent of contents of the bit(s) following the enable bit. 2 l . . l There is no restriction on the number at registers that can be changed with one instruction Parameter Op Code: O 0 3 2 l ' O Light Scale Parameter 4 . Intensity Pen 5 6 7 8 9 10 l l 0 Parameter command is an instruction to change the scale, light pen, and intensity registers. When the light pen reigster is a l, a light pen hit stops the display. It the light pen register is a 0, all light pen hits-are ignored. . PROGRAMMED BUFFERED DISPLAY” 338 Bit(s) Interpretation 0-2 Op code: parameter 3 Enables scale change. 4,5 Determines one of four possible scale settings if bit 3 is a l. 6 Enables light pen change. 7 Turns the light pen on when it is a 8 Enables intensity change. 9, l0, ll Determines one of eight possible intensity settings if bit 8 is a l. l, or off when it is 0, provided bit is a l. ASSOCIATED MNEMONICS AND VALUES Mnemonic Octal Symbol Code Operation LPOF 0040 Light pen off. LPON 0060 Light pen on. SCl 0400 Set scale to Xl SC2 0500 Set scale to X2. SC4 0600 Set scale to X4 SC8 0700 Set scale to X8. INT* 00l0 Set the intensity. . *INT only enables the change of intensity; 0 space then a number between 0 and 7 to indicate the de- sired intensity should follow. a Any of the mnemonics of the same op code may be concatenated to form A typical parameter command would be: compound command. SC2 LPOF INT 4 which would have an octal value of 554. Mode 2 .l .2 Clear Stop Op Code: Code Mode Clear PushButton Mode Sector Bll'S . Flag 0 2 l 0 0 3 4 5 6 l lO 7 '8 9 Clear Coord. mate . BI‘l’S l0 Enter Data State l l PROGRAMMED BUFFERED DISPLAY 338 The mode command has six separate Functions: It can cause the display to stop and set the internal stop flag, clear push-button and manual interrupt Flags, set the mode register, clear sector bits, clear coordinate bits, or enter data state. Only the mode change has an enable bit to prevent its being changed. Bits Interpretation 0,1,2 Op code: 3 Stops the display and sets the internal stop flag when bit is 1 4 Clears the push-button and manual interrupt Flags when bit is a 1. 5 Enables mode change 6,7,8 Determines one of eight possible mode settings if bit 5 is a 1. 9 Clears only the high order three bits in both the x and y position registers when bit is a 1 mode. . . . 10 Clears only the low order ten bits in the x and y position registers when bit is a 1 11 When bit is 1, the next instruction is accepted as a data state word rather than con— trol state. The display remains in data state until an escape is executed. ASSOCIATED MNEMONICS AND VALUES Mnemonic Octal Symbol Code Operation EDS 1001 Enter data state. CCB 1002 Clear coordinate bits. CSB 1004 Clear sector bits. POINT 1100 Set mode to 0. INCR 1110 Set mode to 1 VEC 1120 Set mode to 2. VECON 1130 Set mode to 3. SVEC 1140 Set mode to 4. CHAR 1150 Set mode to 5 GRAPH 1160 Set mode to 6. CLDF 1200 Clear flag. STOP 1400 Stop display. 11 . . . PROGRAMMED BUFFERED DISPLAY 338 2 l . . 3 Jump 0% 0 Code: 5 7 6 Break Field Push Pen 4 3 2 l 8 9 10 H 8 9 l0 ll 0 l O Light Scale ump First Word Low Order 0 2 i 12 Bits of Address 4 3 5 7 6 Second Word The iump command is a 2-word (24-bit) instruction, l5 bits of which specify the new address. The T5 bits used are the last 3 bits in the First word, which specifies the memory field, and the entire second word, which specifies the address in one of the 4K memory banks. causes see two words to be entered on the end of the PDP list. It bit 8 is a l, the command For full explanation of the push iump command, "Subroutining section." The iump command can also change the scale and light pen registers. Bits Interpretation 0, l ,2 Op code: iump. 3 Enables scale change. 4,5 Determines one of four possible scale settings if bit 3 is a l. 6 Enables light pen change. 7 Turns the light pen on when it is a 8 When bit is a O, the command is a simple iump, the scale and light pen are changed, and the new l5-bit address is inserted in the DAC and the display continues From there. l, or off when it is a 0, provided bit 6 is a l. When bit is a l, the command is a push iump. The old address and the status of the display are stored on the PDP list; then the new address and scale or light pen change is inserted. 9, 10, ll Specifies the high order 3 (of ‘5) address bits For the lump or push lump command. Second VVOrCl n} ll “I i Specifies the low order l2 (01c l5) address bits For the iump or push iump command. 12 PROGRAMMED BUFFERED DISPLAY 338 ASSOCIATED MNEMONICS AND VALUES Mnemonic Octal Symbol Code JUMP 2000 O pera f.Ion Jump to 15-bit address contained in last digit and the next word addressed. Jump to subroutine addressed 2010 PJMP the same as JUMP. ‘ LPOF 0040 Light pen off. LPON 0060 Light pen on. SCl 0400 Set scale to Xl SC2 0500 Set scale to X2. 5C4 0600 Set scale to X4. SC8 0700 Set scale to X8 2 l.4 . . flop Inhibit Restoring OpPCode. Scale Light Pen 0P 0 3 4 5 6 7 The pop command is the last word in a subroutine file. _ old address and old status From the PDP list. bits 8, 9, and/or 10. ‘ Pen and Intensity 8 9 Data State 10 ll l i status is restored. Mode Scale 2 l 0 Enter Light ' It causes the display to bring out the The status can be blocked from being reinserted by raising The new light pen and scale settings in the pop will always be inserted after the The First instruction after the push iump can be a data state instruction by entering data state during the pop. 13 PROGRAMMED BUFFERED DISPLAY 338 Bits Interpretation 0,1,2 Op code: 3 Enables scale change. 4,5 Determines one oF Four possible scale settings iF bit 3 is a l. 6 Enables light pen change. 7 Turns the light pen on when it is a l, or oFF when it is a 0, 8 The mode status From the PDP list will not be restored when bit is a l 9 The light pen and scale status From the PDP list will not be restored when bit is a l 10 The intensity status From the PDP list will not be restored when bit is a l ii The display wili be in data state when the word at the address taken From PDP list is executed. pop provided bit 6 is a l. . . . ASSOCIATED MNEMONICS AND VALUES Mgemonic ymbol POP Octal Operation Code 3000 Exit From subroutine to next address aFter PJMP. FEDS 300T Pop and enter data state. PNI 3002 Pop and inhibit restoring intensity. PNLS 3004 Pop and inhibit restoring light pen and scale. PNM 30l0 Pop and inhibit restoring mode. LPOF 0040 Light pen oFF. LPON 0060 Light pen on. SCl 0400 Set scale to Xl SC2 0500 Set scale to X2. SC4 0600 Set scale to X4. SC8 0700 Set scale to X8 l4 . PROGRAMMED BUFFERED DISPLAY 338 Conditional Skip (Bank l) 2.l.5 Op Code: Sense Conditional Skip of (Bank 1) Test 0 0 , 4 3 2 l l Clear Comple_ 3'“ ment '3'” ATTer Afl'er Test Test 5 Selected Buttons 0-5 PBO 6 7 8 PB4 PB3 PBZ PBl 9 l0 PB5 H 0 All display skip commands skip two display words it the condition tested Fails. The display skips two instructions so that a JUMP or PJMP command (which are two words long) can be executed or not executed properly. The buttons to be tested should have ls in the proper bits of the skip command. Using the clear and complement Facilities, the buttons can be set in any desired configuration. The sense test bit determines whether the user is-testing For is or Os. Bits Interpretation conditional skip (bank l). 0,1,2 Op code: 3 If bit is 0, the display skips two words it any of the indicated push buttons are 0. If bit is l, the display skips two words if any of the indicated push buttons are l. Sets all the selected push buttons to the 0 state (light off) when it is a 4 l, inde- pendent ot the outcome of the test. Complements all the selected push buttons after the test when it is a l, independent Since the buttons are cleared before they are complel state by having both bits 4 and 5 at l can be set to the mented, they 5 of the outcome of the test. . 6, ,1] Selected push buttons of bank 1; e.g., bit 6 = push button 0, bit ll = push button 5. PROGRAMMED BUFFERED DISPLAY 338 ASSOCIATED MNEMONICS AND VALUES Mnemonic Octal Symbol Value SKI 4000 l 0 p e rat'on Skip it any of the selected buttons are Invert sense of test (skip it any 0400 INV 0. selected button is l). CLAT 0200 Clear buttons tested after test. COAT 0100 Complement buttons tested after test. Conditional Skip (Bank 2) 2.l .6 OpCode. Conditional . Skip of (Bank 2) 0 I Test 3 2 I 0 Clear Sense Comple— Bits After Test 4 Selected Buttons 6-l l ments , Bll'SAfl" er 5 8 7 6 PB? PB8 PB7 PBé Test 9 PBlO 10 PBII II I This command is identical to conditional skip (bank I) except that it tests push buttons 6—] I Bits 0, I ,2 . Interpretation Op code: conditional skip (bank 2) . 3 4 Same as conditional skip (bank 2). 5 6-H Selected push buttons of bank 2; e.g. l6 , bit 6 = push button 6, bit II = push button ll . PROGRAMMED BUFFERED DISPLAY 338 ASSOCIATED MNEMONICS AND VALUES Mnemonic Octal Symbol Value SKZ 5000 O p erat'o I n Skip iF any of the selected buttons are 0400 INV 0. Invert sense of test (skip it any of the selected buttons are l) . CLAT 0200 Clear buttons tested after test. COAT 0100 Complement buttons tested after test. 2 l .7 Miscellaneous 2.1.7.1 Arithmetic Compare Push Buttons (Bank 1) . M'CXP'Egm'IWed‘ Op Code: Miscellaneous Push Buttons (0-5) “f metic PBO Compare PB (0-5) PB4 PB3 PB2 PBl PB5 ' 0 l l 4 3 2 0 l 0 5 0 9 8 7 6 10 l l 1) IF all the 0 Bits 6-ll of this command are compared to the contents of buttons 0-5 (bank bits and buttons match, the test succeeds and the display Follows a normal sequence. . the test tails, If the display skips two words. Arithmetic Compare Push Buttons (Bank 2) 2.1.7.2 Microprogrammed: Op Code. _ Push Buttons (6 ll) _ Arithmetic Miscellaneous Compare p3 (6-11) P86 PB9 P38 P87 PBiO PBH l 0 l 2 3 4 5 6 7 8 9 10 Same instruction as above, except bits 6-ll are compared to push buttons 6—l l i7 . ll PROGRAMMED BUFFERED DISPLAY 3 2.l .7.3 Skip on Flags Op Code: . 2 l ‘3 ' . 4 ditional 5 0 O l l Uncon- . Miscellaneous O Ski P Microprogrammed: Skip on Flags Skip Skip on if not Push-Button Sector Hll' Flag 0 7 6 Bank l Bank 2 8 9 (l2008) or ll Sector 0 is defined as any point where the x and y position registers have all Os in the high order 3 bits (of l3). the individual banks (l l0 0 l All the commands will skip two words if the test fails. on Spare . The push button hit skip skips 2). Both flags are cleared by IOT 062 or by the display command CLDF . Bit(s) Interpretation O,l,2 Op code: miscellaneous. 3,4,5 Microprogrammed: skip on flags. 6 Do not execute the next two display words if bit is l. 7 Do not execute the next two words unless the high order three bits of both the x and y position registers are 0; i.e. , skip if the beam is not on the screen. 8 Skip if any push button 0—5 has been pushed. 9 Skip if any push button 6-ll has been pushed. l0, ll Spare. 2. l .7.4 Count Op Code: Miscellaneous 0 Count 2 l l l Count Scale Microprogrammed: 4 3 O O 5 l 6 l 7 Count Intensity 8 9 On l0 Blink Off l l PROGRAMMED BUFFERED DISPLAY 338 The scale and intensity registers are also up-down counters. the scale register stays at ll2 no They cannot overflow; however, matter how many count scale up commands are given. The blink Facility allows the picture or any section of it to Flash on and off at l cps (1/2 sec with the intensity on and 1/2 sec with the intensity off) . Bit(s) Interpretation 0,1,2 Op code: miscellaneous. 3,4,5 .Microprogrammed: count. Enables count scale logic 6 . ' 7 count scale up 1: count scale down 8 Enables count intensity logic. 9 0: count intensity up 1: count intensity down (unless at . (unless at 1112) . 0002) . l0 Turn blink on, all intensified points will be gated through the blink logic. ll Turn blink oFt'. Slave Logic (Optional) 2. l .7.5 Micro- Op COde: 2 1 . GrOUP . Miscellaneous 0 (unless at “2' (unless at 002) 0: pro. 4 . Uh” O Number Slaves 3 ' 5 6 7 Uhl'l' l 8 The slave logic allows the display to control up to eight CRTs. 9 10 H The slave logic blanks or unblanks the intensity and light pen at each CRT For the display File being executed until the slave status is changed. IOT 072 and IOT 074 can read back the status of the eight slaves into the PDP-8. l9 PROGRAMMED BUFFERED DISPLAY 338 Bit(s) Interpretation 0,1,2 Op code: miscellaneous. 3 Specifies slave logic when it is a l. 4,5 Choose one of four slave groups, with two units each, to be modified. 6 Enables change of unit 0 of slave group specified in bits 4,5. 7 Turns on light pen of unit 0 if bit is a 8 Turns on the intensity of unit 0 if bit is a 9 Enables change of unit 1 of slave group specified in bits 4,5. l0 Turns on ll. Turns on the intensity of unit l if bit is a l; turns it off if bit is a 0. l; turns it off if bit is a 0. light pen of unit l if bit is a l; turns it off if bit is a 0. 1; turns it off if bit is a 0. ASSOCIATED MNEMONICS AND VALUES Msnemoni ymbol c Octal Value Operation SK3 6000 Arithmetically compare pushbuttons (0—5) with last two digits of instruction; skip if not equal. SK4 6l00 Same as SK3 butwfor buttons 6-ll SKIP 6240 Unconditional skip (two locations). SNSZ 6220 Skip if sector 0 flag is not up. SPBl 62l0 Skip if push button (0-5) flag is down. SPB2 6204 Skip if push button (6-l l) flag is down. SCUP 6340 Count scale up. SCDN 6360 Count scale down. INTUP 6310 Count intensity up; INTDN 6314 Count intensity down BKON 6302 Blink on. BKOF 630i Blink off. $60 6400 Set slave group 0. SGl 6500 Set slave group l. 5G2 6600 Set slave group 2. 5G3 6700 Set slave group 3. SUO 0040 Turn light pen and LPO 0060 Unit 0 light pen on. . ' 20 . intensity off on unit 0. PROGRAMMED BUFFERED DISPLAY 338 ASSOCIATED MNEMONICS AND VALUES (continued) Mnemonic Octal Symbol Value ITO 0050 SUI 0004 Operation Unit 0 intensity on. Turn light pen and intensity off on unit I LPl 0006 Unit I light pen on. 0005 Unit I intensity on. _ HI 2.2 . DATA STATE COMMANDS All data state commandschange the x and y position registers which are in turn connected through D to A converters to the CRT deflection system. format used by the display. In control state only the mode command can change the mode. the eight possible modes are used. Seven of If the display tries to enter data state in the unused mode, the display stops but no error flag is raised. to control state. The mode register determines the data state (I l l2), Each of the seven modes has an escape mechanism to return Since most of the modes are different, each is described below. Point, vector, and vector continue modes are two-word commands; a single command is specified by two consecutive locations in the display list. Both words must be brought out before execution, and therefore there are two input buffer registers. The register DX, which is used for all com- mands, receives its information directly from the data lines. If the command is two words long, the first input word is transferred to the DY register while the second input word is brought in to DX from memory. The only exception to this is data state increment mode words. executed from the DY register. wait for input words. In this case a single word command is The DX register is used for double buffering virtually eliminating the Short vector mode uses the DY register in order to appear as a normal vector. other words, the delta Y portion of the command is transferred to the DY register. Point Mode (Two Words) 2.2.1 (000) Point Intensity Inhibit 0 I Y Position 2 3 4 5 6 First Word (DY) 2l 7 8 9 TO IT In PROGRAMMED BUFFERED DISPLAY 338 (000) Point Escape ‘0 Inhibit X Position 2 l 4 3 5 6 8 7 l0 9 ll Second Word (DX) The basic action is to iam bits 2 through ll of the first word (from DY) into the low order ten bits of the y position register, and the same bits in the second word into the x position register. order three bits in x and y remain unchanged. The high If bit l in either word is up, the contents of the associated position register are not changed during that command. This is useful if the user does not know the present beam position and wishes to change either x or y and leave the other at the same value. first y point word is a If bit 0 in the l, the point specified is intensified when the beam reaches the proper position. If bit 0 in the second word (x point) is a l, it indicates an escape and the next word is interpreted as a control state command. If the bit is a 0, the next word is interpreted as the first word of another point mode The scale setting has no effect in point mode. command. Bit Word l 2 2.2.2 0 If bit is a l Inhibit changing )1 position register. 2-H New y coordinate (low order ten bits). 0 Escape to control state. l Inhibit changing x position register. 2-“ New x coordinate (low order ten bits). l, intensity given point. increment Mode Increment COT NO: OF MOVES Intensity 0 Interpretation i 2 Direction (0-7) 3 4 No. of Moves Intensity 5 6 22 7 8 l Direction (0—7) 9 10 ll PROGRAMMED BUFFERED DISPLAY 338 Increment mode is a mechanism for moving the beam 0 short distance in a“. efficient manner. The beam is moved from its previous position to a new position according to a 6-bit increment byte. Each byte is handled separately and executed independently of the other. are Both bytes (first, 0-5, second, 6-l l) identical; therefore only the first will be discussed. The byte is broken into three sections: first, to indicate whether the byte move is to be in- tensified (bit 0 (6)); second, to give the number of moves to be made (bits l, 2 (7, 8)); and third, to specify the direction in which the move is to be made (bits 3, 4, 5 (9, 10, ll)) . The beam is only in- tensified at discrete points according to the scale setting (see "Scale" section 1 . ), it is not run with the beam on during the motion. The increment can consist of one, two, or three moves per byte, with each move being one, two, four, or eight points apart on the raster depending on the scale. bits that control the number of moves are programmed as follows: Bits l, 2 Interpretation 00 Move the beam once in the indicated direction and escape. Ol Move the beam once; do not escape. 10 Move beam twice; do not escape. ll Move beam three times; do not escape. The three bits for direction indicate one of eight 45 degree directions: 4 < 5 0% V 6 23 7 Starting Position The two PROGRAMMED BUFFERED DISPLAY 338 The letter "A" is programmed in Subroutine form as an illustration of the use of increment mode. 0 O O O O 0 O O O O O O starting —9 O O O x O 0 X O x x x point E/ x final Po'nt The "0” indicates an intensified point, the "x" a nonintensified point, and "E" the point at which the escape is given. INCR ALPHAA, /octa| (NH) EDS 3762 270] /byte 1 —\1' i m, noninten. byte 2 -’i‘ 3 m, inten. /byte 1 JT‘ 3 m, inten. byte 2 -7i i m, inten. /bytei——>,2m,inten.byte2-5\,Tm,inten. /byte 1 -\l/ 3 m, inten. byte 2 <—-, 3 m, inten. /byte T X 3 m, noninten. byte 2 4} 2 m, inten. /byte 1 -§\ 2 m, noninten. byte 2 -71 i m, noninten. and escape POP /octal (3000) 1672 , 7251 6057 7674 - , — , , , Bit(s) , Interpretation 0 It bit is a 1 ,2 Number of moves in the byte 3,4,5 Direction in which moves are to be made. 6 If bit is a 7,8 Same structure as byte 1 bits 1 and 2. 9,10,11 Same structure as byte 1 bits 9, T, intensify the First byte. (002 => Move once and escape). T, intensify the second byte. 10, H. Vector Mode (Two Words) 2.2.3 Vector (010) TO—Bit Delta Y Intensity 0 , , , i 3 4 5 6 First Word {DY} 24 7 8 9 10 H PROGRAMMED BUFFERED DISPLAY 338 lO—Bir Delta X Esca pe 5 6 7 ._ Second Word (DX) Vector Mode is used to draw long straight lines. The beam is moved from its present location in the direction and distance specified by the delta y and delta x. moves to make in x and y before stopping. The number of raster points between each move is again de— pendent upon the contents of the scale register. from one end of the screen to the other. "paper." The deltas tell the beam how many At a scale of one, the 10-bit vector can take the beam At a scale of eight, the beam can go to any point on the l3-bit Bit 1 in both words indicates the sign (direction) of the vector. up for y and to the right for x. A + is indicated by a 0 and is Bit 0 in the first word indicates whether the vector is to be intensified. Bit 0 in the second word is the escape to control state which indicates the end of a vector string. The following display subroutine program places on the screen a 1—inch square. is drawn with vectors, it can be put anywhere on the screen VEC EDS Beam Movement 4067 0000 \ I /Ay=+55. intensify /Ax= 0. /Ay= 0. intensify /Ax=+55. /Ay=-55. intensify 4000 0067 / 7' \ Starting and final point . /Control state octal (5l5) /Control state octal (112]) 5C2 INT 5 Direction of (relocatable) 6067 0000 /Ax= 0. 4000 /Ay= 0. 6067 /Ax=-55. escape /Control state octal (3000) POP 25 intensify Since the box PROGRAMMED bUFFERED DISPLAY 338 Interpretation Bits Word l intensity the vector. 0 If bit is a l, l If bit is a 0, the sign of delta y given in bits 2-H is positive; if a 1, it is negative. 2 2-H The 10-bit delta y. 0 If bit is a i If bit is a 0, the sign of delta x given in bits 2-1] is positive, it a l, the next word is interpreted in control state. l, it is negative. The lO-bit delta x. 2—H Vector Continue Mode (Two Words) 2.2.4 (0i l) Vector Continue : Intensify 0 lO-Bit Delta Y 2 1 4 3 5 7 8 9 '10 H 8 9 l0 ll lO-Bit Delta X Escape 0 6 2 l 3 4 5 6 7 Vector continue mode has the same format and action as vector mode, except the vector does not stop until it reaches the edge Short Vector 2 .2 .5 (100) Short Vector Delta Y Intensify O . i 2 3 4 Delta X Escape 5 6 26 7 8 9 10 ll PROGRAMMED BUFFERED DISPLAY 338 Short vector mode is basically the same as vector mode except it is only one word long. order to fit it into one word, the maximum number of increments has been reduced from x command. Bits 2, 3, 4, and 5 correspond to 8, 9, 10, and ll of the first word; bits 6 and 7 to bits 0 and l of the second word; and bits 8, 9, l0, and ll In execution of a l,024 to l6 in Bits 0 and l of a short vector word correspond to bits 0 and l of the first word of a and y directions. vector In to bits 8, 9, 10, and ii of the second word. short vector mode command, the left half of the input word is transferred to DY and bits are rearranged to be in the same format as a vector mode command. Interpretation Bits l, intensify the vector. 0 If bit is a l If bit is a 0, the sign of delta y in bits 2, 3, 4, and 5 is positive; if a I, it is negative. 2,3,4,5 The 4-bit delta y. 6 If bit is a 7 If bit is a 0, the sign of delta x given in bits 8, if a i, l, the next word is interpreted in control state. The 4-bit delta x. 8,9,l0,ll Character Mode (Optional) 2 .2.6 (IOl) Character Character 2 Character l O 9, 10, and ii is positive; it is negative. i 2 3 4 5 6 7 8 9 10 ii 9 10 ll Six-bit format Character Ignored 0 i 2 3 4 5 6 Seven-bit format 27 7 8 PROGRAMMED BUFFERED DISPLAY 338 The character generator can be run in two different formats: 6-bit format, packed two to a word but directly referencing only 64 characters, or 7-bit format, only one character per word but referencing l28 different characters. The character generator is simply an efficient dispatch system for instructions stored in core memory. table that calls them. The characters, therefore, are programmable as well as the dispatch The details of programming the character generator are given in appendix l . Special characters available in the character generator include set and count intensity and scale, set light pen, change case, change character set, change code size (6-bit versus 7-bit), carriage return (clear x register), and escape to control state. 2.2.7 Graphplot Mode Graphplot (HO) 3:: :2 Escape 0 X or Y Coordinate 2 i 3 4 6 5 7 8 9 Graphplot mode is a concise way of describing and displaying tabular data. a data command is as follows: escapes to control state ll The execution of First, the x or y coordinate is incremented once; then the other coordinate is set by bits 2-ll of the graphplot mode command. cremented and y plotted (bit 10 Bit 1 of the word specifies whether x is to be in- l-O), or y incremented and x plotted (bit l-l). If bit 0 is a l, the display . The incremented axis moves one, two, four, or eight points depending on the scale setting. Since one axis is always incremented, the graph is easily translated in this direction by changing the starting location . Bit(s) Interpretation 0 If bit is a i If bit is a 0, increment x coordinate and set the y coordinate with bits 2-l i; if bit is a 2-l 1 l, escape to control state. l, increment y and set x. Ten bits of coordinate information. 28 PROGRAMMED BUFFERED DISPLAY 338 2.3 DISPLAY ORIENTED COMPUTER INSTRUCTIONS The PDP-8 has a family of instructions * which it uses to communicate with A group of these instructions is assigned to the display (IOTs O5, 06, 07, I3, I4, I5, I6, I7, 30). below are the display IOTs, their mnemonics, and their functions. the first requests information from the display; class is the computer skip on display flags. 1/0 equipment. Given They are broken into three classes: the second sends information to the display; and the third The information transfer is done through the PDP-8 accumu- later; so if the user expects information, he should clear the AC beforehand, and if sending information, he should have the data in the AC before giving the IOT. From the DiSplay 2.3.I Group I. 2.3. I .I RPDP 605I Read Push Down Pointer - A Is (inclusive OR) transfer from the push down pointer (I2 bits) to the AC is done. The PDP should be pointing to the location in which status information will go on the next push iump (if it comes before a pop) . Reading the PDP, subtracting the set value, and dividing by two gives the level of the subroutine. 2.3.I .2 RXP 6052 Read x Position Register - A Is transfer from the x position register to the AC is done. Only the low order I2 (of I3) bits are transferred; the high order bit must be obtained from the RS2 instruction . 2.3. I .3 RYP 6054 Read y Position Register 2.3. I .4 RDAC 606I Read Display Address Counter transferred from the display to the AC. - Same as RXP, except the y position register is transferred. - The contents of the display address counter are The DAC will be set at the next command to be executed by the display. 2.3. I .5 RSI 6062 Read Status I the break field register. — Status I consists of the state of all display flags and the contents of If the flag is up the associated bit is a I. *See PDP-8 User Handbook for details. 29 PROGRAMMED BUFFERED DISPLAY 338 Bit(s) Interpretation 0 Light pen hit flag. I Vertical edge flag. 2 Horizontal edge flag. 3 Internal stop flag. 4 Sector 0 flag. 5 Control state flag. The y position register has overflowed. The x position register has overflowed. If bit is a l, the display is in sector 0. If bit is a display is in data state. I, the display is in control state, if it isa 0 the Manual interrupt flag. 7 Push-button hit flag. 8 Display interrupt flag. puter will interrupt. the interrupt line. 9,10,] l If the interrupt system is turned on and bit is a l, the com- It is set by one of the six display flags being on and gated onto Contents of break field register. These three bits and the twelve bits from the RDAC instruction give the full 15-bit memory address. 2.3.l .6 R52 6064 Read Status 2 - Status 2 consists of the contents of some of the major registers in the display; e.g., light pen scale, mode, and intensity. bit of the x and y position registers. It also contains byte information and the high order The byte flip-flop indicates whether the left half or right half byte in increment mode was being exeCUted when the display stopped. It does not tell whether the right or left hand character is being executed; this information is obtained from the RCG (IOT 304) instruction. The low order twelve bits of the 13-bit x and y position register are obtained by giving RXP or RYP. Bit(s) Interpretation 0 Byte flip-flop. If bit is a 0, the left hand increment is being executed; if bit is a l, the right hand byte is being executed. l Light pen enable. 2 High order y position register bit. 3 High order x position register bit. 4,5 Scale 6,7,8 Mode 9,i0, ll Intensity If bit is a l, the light pen is enabled. 30 PROGRAMMED BUFFERED DISPLAY 338 RPB 6071 Read Push Buttons 2.3.1 .7 - The contents of the twelve push buttons (0—1 1) are transferred into the corresponding AC bits. RSGl 6072 Read Slave Group l 2.3.l .8 status forces slaves 0,1,2, and 3. - On this instruction, the light pen, light pen hit, and intensity The control state command "set slaves" sets the light pen and intensity If the slave option is not present, the IOT reads back Os into the accumulator. status. Slave 0 Light Slave l Slave 3 Slave 2 Light Inlens'ly Pen Hit . Pen 0 2 l 4 3 5 6 7 8 9 l0 ll AC Format Bit(s) Interpretation 0 Light pen enable, slave 0. l Intensity status of slave 0. 2 Light pen hit, status slave 0. 3,4,5 Same Format as above for slave l. 6,7,8 Same format as above for slave 2. 9, 10, ll Same format as above for slave 3. 2.3. l .9 RSG2 6074 Read Slave Group 2 - RSGZ has the same format as RSGl , except it reads status of slaves 4,5,6, and 7. 2.3.l .10 RCG 6304 Read Character Generator - RCG reads in the five character generator parameters: character generator active (CHACT), character byte (CB), case, code size (CHSZ), and starting address register (SAR). The CHACT bit indicates whether the character generator is in use; i.e. in character mode and data state. , the display is The CB shows whether the left or right half character (6-bit format) is being executed. The case bit is used (6-bit format) asa seventh bit to allow referencing either the lower or upper set of 64 characters. used. The CHSZ indicates whether the 6-bit or 7-bit character format is to be The SAR is a 6-bit register that indicates the starting address of the character dispatch table (see appendix). 3] PROGRAMMED BUFFERED DISPLAY 338 22:; 0 CB 2 l Case Spare CHSZ 4 3 SAR Spare 5 Bit(s) 6 7 8 l0 9 ll Interpretation 0 If bit is a l If bit is a 0, left character is being executed. l, the character generator is active. If bit is a l, right character is being executed. 2 Spare. If bit is a l, upper case is in use, characters 65-l28. 4 If bit is a 0, the character generator is using 6-bit format; if bit is a l, the CG is using 7-bit format. 5 Spare. 6-ll Contents of the 6-bit SAR. To the Display 2.3.2 Group 2. 2.3.2.l SPDP 6l35 Set the Push Down Pointer register. Since the PDP is a l2-bit register, the PDP list must reside in the first 4K of memory. 2.3.2.2 SIC 6145 Set Initial Conditions - - The contents of the AC are transferred into the PDP SIC sets up a number of status registers in the display. instruction enables four display flags onto the interrupt line, sets the paper size to l0, in x and y and The ll, l2, or l3 bits light pen conditions. There are three options in the event the display is resumed after a light pen hit. The light pen can be left on, it can be turned off completely, or it can be turned off until the completion of the present command, then automatically turned back on at the next data request. There is also a register that tells the display to ignore all edge flags; therefore when the position register overflows, the edge flag is inhibited and the display continues in a normal fashion. overrides the intensification bit in data state, Another register causing all beam movements to be intensified. is used principally for diagnostic purposes. 32 This feature PROGRAMMED BUFFERED DISPLAY 338 Bit(s) Interpretation 0 Enable edge Flag interrupt. l Enable l-ight pen flag interrupt. 2 If bit is a 0, do not disable light pen after the :resume; it bit is a 1, bit 3 indicates when to reenable the light pen. If bit is a 0, reenable light pen on the First data request after the display is resumed. 3 If bit is a l, the light pen hit is equivalent to a LPOF command. Set Y dimension. 4,5 00: 9.375 inches 01: 18.75 inches l0: 37.5 inches H: 75.0 inches (l0 bits) (ll bits) (12 bits) (l3 bits) 6,7 Set X dimension, same as Y. 8 Intensity all points. 9 Inhibit edge flags. lO Enable interrupt on push-button hit. ll Enable interrupt on internal stop flag LBF 6155 Load Break Field 2.3.2.3 - This instruction has two functions. First, it loads the break field register when initializing the display; second, it sets the push buttons. Both Functions have enable bits so that one may be executed without the other. If neither enable bit is up, both IOT pulses have other meanings (STPD—él54 and SPSI—6l5l). ' 0 i Break Field 2 Push Buttons 3 4 5 6 33 7 8 9 10 ll PROGRAMMED BUFFERED DISPLAY 338 Bit(s} Interpretation 0 Enable change of break field. l ,2,3 New break field. 4 Enable change of push buttons. If bit is a 0, set push buttons 0-5 according to AC bits 6-l l; if bit is a push buttons 6-H according to AC bits 6—H 6—] l New push-button states. 2.3.2.4 SCG 6303 Set Character Generator Case Spare O l, set . l 3 2 - SCG sets the SAR case and CHSZ. CHSZ Spare 4 5 SAR 6 Bit(s) 7 8 9 10 ll Interpretation 0, l ,2 Spare 3 Set case O-lower 64 l-upper 64 4 Set code size 0-6 bit character format . l-7 bit character format 5 Spare 6—l l Starting address register 2.3.2.5 INIT 6l65 Initialize the Display - The AC is transferred to the low order twelve bits of the DAC, and the display is initialized by raising the break request flag. The display will run uninterrupted until a flag is raised. The five IOTs given (2.3.2.1—2.3.2.5) comprise a standard startup procedure for the display. The following program is given as an example. 34 PROGRAMMED BUFFERED DISPLAY 338 /Display start-up routine for /338 with VC38 Character Generator. Initial, CLA /Clear AC TAD XPDP /Starting address for PDP, into AC SPDP /IOT to transfer AC to PDP. CLA /Clear AC TAD XSIC /Constant to set initial conditions. SIC /Transfer AC to initial condition register. CLA /Clear AC TAD XLBF /Constant for BF and/or PB. LBF /Transfer AC to BF. CLA /Clear AC TAD XCG /Constant for character generator. SCG /IOT to transfer AC to CG. CLA /Clear AC TAD XIN /l2-bit starting address for display INIT /IOT to transfer AC to DAC and initialize display. CLA /Clear AC ION /Turn interrupt on JMP - . . . . . . . . . /Display is now running. XPDP, 7000 /Starting address of push down list. xsu:, 2367 /Enable light pen, push button, and internal stop /flags, set paper size to 75" by 75" Leave light . /pen /flags. on after light pen hit, and enable all edge XLBF, 4000 /The display program starts in memory core zero. /Note the enable bit must be a l to change the /breal< field register. XCG, 0016 /Set code size to 6-bit format, start in the lower /case, and the CG dispatch table starts in location /l6000 (memory bank l location 6000). XIN, DISSTT /Symbolic address of the first location in the display /file. 35 PROGRAMMED BUFFERED DISPLAY 338 Edge, or External Stop Flag 2.3.2.6 RESl 6l74 Resume After Light Pen Hit, to resume the sequence of instructions from the point at which it stopped. or - This IOT tells the display In the case of a light pen hit edge flag, the display completes the vector it stopped on before continuing to the next. One of the above flags must be up when RESl is given; otherwise, the instruction has no effect. before the display is reinitialized. 2.3.2.7 2.3.2.8 The contents of the AC have no effect during this instruction. RES2 6l64 Resume After Stop Code clears the flag before reSuming. RESl clears the flag RES2 restarts the display after an internal stop flag and — The AC must be zero before RESZ is given. CFD élél Clear Display Flags - CFD clears the four flags that stop the display. is given when the display is not to be used any longer, but has been used in this program. clear pulse (START key) also clears IOTs: CFD-6l6l This command The power All display flags can be cleared by giving three a_ll display flags. (internal and external stop, light pen hit, and edge); RSl-6062 (push button); and SPMI-6l72 (manual interrupt). 2.3.2.9 STPD 6l54 Stop Display (External) - STPD stops the display and sets the external stop flag (see "Display Flags") when the display has stopped. This is one of the microprogrammed IOTs and re- quires bits 0 and 4 of the AC to be 0 when the IOT is given. IOT Skip on Display Flags 2.3.3 Group 3. 2.3.3.l SPLP 6l32 Skip on Light Pen Hit Flag - Pertains only to the master scope's light pen. If the flag is up, the computer skips one instruction. 2.3.3.2 SPSP 6l42 Skip on Slave Light Pen Hit Flag the computer skips. gating the AC 2.3.3.3 - If any of the eight slave light pen flags are up, The particular display can be found by giving the RSGl and RSGZ IOTs and interro- . SPES 6l5l Skip on External Stop Flag - This is a microprogrammed instruction and requires bits O and 4 of the AC to be 0 when the instruction is given. 2.3.3.4 SPEF 6l52 Skip on Edge Flag - SPEF causes a computer skip if either the horizontal or vertical edge has been violated. The edge violated can be found by giving the RSl IOT. the corner of the paper,— gore the horizontal and vertical 36 edge flags will be up. If the display runs off PROGRAMMED BUFFERED DISPLAY 338 2.3.3.5 SPSF 617‘. Skip on Internal Stop Flag code and SPSF is given 2.3.3.6 Flag is on. — The computer skips if the display has executed a stop . SPMI 6172 Skip on Manual Interrupt -- SPMI causes the computer to skip if the manual It also clears the Flag and the light in the push button if it is up. 37 interrupt PROGRAMMED BUFFERED DISPLAY 338 APPENDIXT VC38 CHARACTER GENERATOR The VC38 is a dispatch type generator, with both the dispatch table and the execution routines stored in core memory. The 6- or 7-bit character is used to index a special l5-bit register (CHAC) which contains the starting address of the dispatch table. The word from the referenced location is then used to index the CHAC to get to the location of the beginning of the variable length execution routine. At the end of the routine, an escape code is given which directs the CG (character generator) to accept the next character and restart the process. There are also special dispatch words (control characters) which do not cause a dispatch but rather are direct commands to the logic . The beginning of the dispatch table is specified by the SAR (starting address register) which is 6-bits long. The SAR is gated to the upper six bits of the CHAC which in turn is gated onto the MA (mem- ory address) bus. core As an example, if the SAR contains T68, the dispatch table begins at location 60008 in memory T. The SAR is set and read by the PDP-8 via IOTs (SCG and RCG respectively). The characters are interpreted in 6- or 7-bit format depending on the contents of the l-bit code size register (CHSZ) to the . If the register is a l, the low order seven bits of the data word are gated in- low order seven bits of the CHAC, and the SAR is gated into the CHAC to produce the dispatch Thus, if the SAR is 048 and the character is ”68, the word in location 4] 168 contains table address. the dispatch address. In the 6-bit format, an identical process takes place except that the leftmost six bits are first gated onto the CHAC and the right six bits are put in a character save (CS) register. The CS register is gated onto the low order six bits of the CHAC when the first character is complete. The CB register is also set to a one, indicating execution of the left character. Along with the six character bits, the CASE bit is gated into bit 8, allowing reference to 128 characters by a 6-bit character code. CHAC (Six Bit Code Format) SAR 0 l 2 3 Set to Zero 4 5 6 7 39 6 Bit Character Code Case 8 9 10 H 12 l3 l4 PROGRAMMED BUFFERED DISPLAY 338 The dispatch word obtained from the location specified by the CHAC is interpreted in the same way whether the six or seven bit format was used. In the dispatch word, bit position 0 indicates whether the dispatch table word is a control word (bit 0=l) or a dispatch word (bit 0:0) or Short vector mode. If it is a dispatch word, the character can be drawn lnel’rherinCrement Bit 1 in the dispatch word indicates the mode. in increment mode; if it is as . If the bit is 0, the data is accepted l, the data is accepted in short vector mode. The low order ten bits are used the dispatch address and are gated onto the low order ten bits of the CHAC. Dispatch Word Mode O Address 2 l 3 4 5 8 7 6 10 9 ll CHAC During Dispatch Over- SAR 0 i 2 Dispatch Address Lap 4 3 5 6 7 8 9 10 ii Both the SAR and the dispatch address reference bit 5 in the CHAC. OR of these two registers. In other words, if the SAR is odd (i .e., bit 5 is a i2 i3 i4 The bit is the inclusive l), the dispatch address can only reference 5l210 locations, whereas, if the SAR is even, the table can reference l02410 locations. Al .l CONTROL CHARACTERS If the dispatch table word has bit 0=l , a dispatch does not take place, but rather the word is accepted in one of three special formats indicated by bits 1 and 2. After execution of the control char- acter, the next character is immediately fetched. Al .l .l Parameter Control Parameter control format is specified by 00 4O in bits l and 2 of the dispatch table word. Bits PROGRAMMED BUFFERED DISPLAY 338 Dispatch Table Word (Parameter Control) Scale 0 4 3 l Light Pen 5 7 6 Intensity 8 9 l0 l l O l Bit(s) Interpretation 0 =l Control character. l ,2 =002 Parameter control 3 Enables scale change. 4,5 Determine one of Four possible scale settings if bit 3 is a l 6 Enables light pen change. 7 Turns the light pen on when it is a 8 Enables intensity change. 9,l0, ll Determine one of eight possible intensity settings if bit 8 is a l. Al .l.2 . . l, or off when it is 0, provided bit 5 is a l. Table antrol The table control character is specified by having lOl2 in bits 0-2 of the dispatch table word. This control character has the ability to change the CASE bit and the SAR. Case 3 Enable Enable Bits Bits 6-8 9—l l 4 5 6 4l SAR (3—5) SAR (0—2) 7 8 9 l0 PROGRAMMED BUFFERED DISPLAY 338 Bit(s) Interpretation 0 =l Control character. l,2 =0l Table control. 3 Case bit is set by this bit for referencing, 128 characters using 6-bit code size. 4 Enable changing SAR bits 0-2 from bits 6-8 of control word. 5 Enable changing SAR bits 3-5 from bits 9-H of control word. 6—8 Set SAR bits 0-2 if bit 4 is a l. 9-H Set SAR bits 3-5 if bit 5 is a 1. Migcellqneogs Control Al .l .3 The miscellaneous control character is specified by 110 2 in bits 0-2 of the dispatch table word. In this format the code size can be changed, the intensity and scale can be counted up and down, and carriage return (clear low order ten bits of x position register), and escape to control state (end character string, leave character generator) can be executed. Dispatch Table Word (Miscellaneous Control) CHSZ 0 2 l l l 3 4 Cgerllige Escape 5 6 Count Scale 8 Inf::srilly Spare l0 ll O Bit(s) Interpretation 0 =l Control character. l,2 =l0 Miscellaneous control. 3 Enable change of code size. 4 Set code size to six bit, if bit is 0; set to seven bit, if bit is a I; if bit 3 is a l. 5 Clear low order ten bits of x position register (carriage return) if bit is a l 6 Escape to control state if bit is a l. 7 Enable count scale logic 8 0: count scale up I: count scale down . 42 . PROGRAMMED BUFFERED DISPLAY 338 Bit(s) Interpretation Enable count intensity logic 0: TO I: IT Count intensity up Count intensity down Spare /Program example of the use of the VC38 Character Generator. Initial, CLA /Display start up TAD XPDP /See programming manual SPDP CLA TAD SIC SIC CLA TAD XLBF LBF CLA TAD XCG SCG CLA TAD XIN INIT CLA ION JMP ' XPDP, 7000 XSIC, 2367 XLBF, 4000 XCG, 0006 XIN, DISSTT /Beginning of the display File DISSTT, POINT EDS CCB CBS /Enter point mode 1000 /Set point to middle of 5000 /the screen and escape CHAR EDS /Enter character mode 43 PROGRAMMED BUFFERED DISPLAY 338 0001 /Call character (00) -set scale and intensity then character /(Ol) -alpha numeric A. 0203 /Carriage return (02) -line teed (03) 0104 /Alpha numeric A (01) —escape to control state (04) JUMP /Display iump to top of display File. DISSTT * 6000 4555 /Parameter control:SC2 LPOF, INT5 ALPA—D /Dispatch in increment mode to alpha A. 6i 00 /Miscellaneous control: carriage return LIN FD—D+2000 /Dispatch in short vector mode to line feed routine: 6040 /Miscellane0us control: escape to control state. /The rest of the dispatch table *D+200 ALPA, 1672 /Alphanumeric A in 725 l /Increment mode: see programming manual for details. 6057 7674 3762 2701 LINFD, 31 40 [Short vector line teed /y direction ALPB, etc . - (910) points in the minus /The rest at the character routines 44 PROGRAMMED BUFFERED DISPLAY 338 APPENDIXZ PROGRAMMING EXAMPLES /Interrupt handler, the display is /placed First, however, a device with critical /timing should be before the 338, e.g., tape or drum. CLA INTER, SPLP SKP /Skip on light pen Flag JMP LPR /Jump to light pen routine /Sl<ip on internal stop flag SPSF SKP JMP SFR SP MI /Jump to stop Flag routine /Skip on manual interrupt SKP JMP MIR SPEF /Jump to manual interrupt routine /Sl<ip on edge flag SKP JMP EFR SPES /Jump to edge Flag routine /Sl<ip on external stop Flag SKP JMP ESR SPSP /Jump to external stop routine /Sl<ip on slave light pen routine SKP JMP SLR RS l AND (20 /Jump to slave light pen routine /Read status I /Test bit 7 For pushbutton flag SZA CLA JMP PBR /Jump to pushbutton routine /continue checking other I/O equipment 45 PROGRAMMED BUFFERED DISPLAY 338 /The following display File can be used /to control the scale, intensity, and /blink of a picture following the routine. HEADRI , SKI 4O CLAT /Sl<ip 2 locations if pushbutton 0 is a 0, clear after SC UP /test. /Count the scale up if ploO was i. 0 SKI 20 CLAT /Nop /Sl<ip if pbl is 0, clear after test. SCDN /Count the scale down if pbl was I. O SKI l0 CLAT /Nop /Sl<ip if pr is 0, clear after test. INT UP /Count intensity up SKI 4 CLAT /Nop /Sl<ip if plo3 is 0, clear after test. INT DN /Count intensity down 0 SK] 2 CLAT /Nop /Skip it plo4 is 0, clear after test. BKON /Turn the blink on. 0 /Nop /Sl<ip if pb5 is 0, clear after test. 0 . SKI l CLAT BKOF /Turn the blink off. 0 /Nop /Place the rest of the display /File here. 46 . PROGRAMMED BUFFERED DISPLAY 338 /The Following routine is used to /translate a picture if the picture is /closed in x-y and contains no point ~/or graphplot mode instructions. HEADRZ, SK2 40 SVEC EDS 4l SK2 20 . /Skip if plo6 is off. /Short vector enter data state. /Ax=l; shift picture to the right. /Sl<ip if pb7 is off. SVEC EDS _ 61 /Ax=—l; shift picture to the left. SK2 l0 /Skip if plo8 is off. SVEC EDS 140 SK2 4 /Ay=l; shift picture up. /Sl<ip if pb9 is off. SVEC EDS 2140 SK2 2 CLAT CCB CSB 0 SK2 l SK2 74 CLAT 0 0 STOP /Ay=-l; shift picture down /Sl<ip if plolO is off; clear after test. /Clear coordinate and sector bits. /Nop /Skip if ploll is off. /Clear pb's 6,7,8,9 if /pbll is on Causes single /move each time one of the buttons is pushed. /Stop the display and record the new starting / coordinates . . 47 PROGRAMMED BUFFERED DISPLAY 338 /This routine produces a raster /with every eighth point on the /screen intensified. The raster is /put up if pb5 is on. The y overflow /must be set at greater than 10 bits. RAST , RAS , SK] 1 INV JUMP /Sl<ip if pb5 is on /Jump over the raster MAST SC8 LPON INT 6 CCB CSB / Routine /Set beam to lower left corner. VEC EDS 4001 4177 /INTENSIFY Ay=l /ESCAPE Ax=l77 (across the screen at scale 8). POINT EDS 2000 4000 SNSZ JUMP RAS LPOF YVECI, XVECI, MAST , VEC EDS CCB CSB 0 4000 JUMP PICT /Do not change y coordinate /ESCAPE Set x to 0. /Have we run off the top of the screen yet? /Nol Go back and generate /Another line of the raster. /Shut light pen oft. /This vector /is changed when picture is /shifted to get back to virtual starting point. . . /Continue on . PROGRAMMED BUFFERED DISPLAY 338 /Program to keep box under the /light pen, assuming startup IOT's /were given and standard INTERRUPT /system is some place in core. CLA /PDP-8 got to this location through interrupt handler /given above LPR, /Read in contents of l2 pushbuttons. AND (76 /l_<eep contents of buttons 6-l0 set ll to 0. TAD (300 LBF /Add~ enable and bank bit. /Give the IOT to clear pbll /IOT's do not clear AC. /Resume display sequence after light pen hit. /Turn interrupt system on /Wait For next pen hit. CLA REST ION JMP DISSTT, . RPB . . 5C2 LPON INT6 VEC EDS CSB 4050 /Ay=40; intensify 4000 /Ax=0; escape SK2 l INV CLAT COAT SVEC EDS 61 VEC EDS 4000 4050 /Ay=0,Ax=-l; escape /Ay=0; intensify /Ax=40; escape 5K2 l INV CLAT COAT SVEC EDS T40 /Ay=l ,Ax=0; escape VEC EDS 6050 4000 /Ay=—40; intensify /Ax=0; escape SK2 l INV CLAT COAT SVEC EDS 4T /Ay=0, Ax=l; escape VEC EDS 4000 6050 /Ay=0; intensify /Ax= -40; escape SK2 l INV CLAT COAT SVEC EDS 2140 /Ay=—l Ax=0; escape , JUMP DISSTT 49 PROGRAMMED BUFFERED DISPLAY 338 /Progrom works as follows: /Pushbutton H is sensed ot the end of /each side. If the button is on the /next side is drawn, if the button is /ofF a short invisible vector is executed /in the proper direction to keep the box /Under the pen ”(créhgrl §e£i9E5 l / / 10 1' light pen 1—9 . KDirection V ———————— J, of [:I old box position M ment \ /The button is turned back on /then the next side is drawn . 50 h, new box position PROGRAMMED BUFFERED DISPLAY 338 APPENDIX3 REFERENCE TABLES (to be supplied) 51 DIGITAL EQUIPMENT CORPORATION PRINTED IN ° MAYNARD. MASSACHUSETTS USA 10 / 66
Home
Privacy and Data
Site structure and layout ©2025 Majenko Technologies