IMPLEMENTATION OF AN URBAN DESIGN GRAPHICS TERMINAL ON THE IMLAC PDS-1 by BRIAN L. KEMERER SUBMITTED IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF BACHELOR OR SCIENCE AT THE MASSACHUSETTS:-INSTITUTE OF TECHNOLOGY may, 9174 Signature of Author Department of Urban Studies and.Planning, Certified by Th"'is Supervisor Accepted by Chairman, Departmental Undergraduate Thesis Committee Rotch 16. 1974) JN 5 1974 IMPLEMENTATION OF AN URBAN DESIGN GRAPHICS TERMINAL ON THE IMLAC PDS-1 by BRIAN L. KEMERER Submitted to the Department of Urban Studies and Planning on E MaiO10)19 7 - in partial fulfillment of the requirements for the Degree of Bachelor of Science. ABSTRACT An urban design graphics terminal was programmed on the Imlac for the users of the Discourse programming language. A method for user-oriented display timing, which stores output from rapidly executed iterative loops for subsequent display at a user-determined rate, was described and implemented. Facilities for a more complete Discourse design terminal are discussed. THESIS SUPERVISOR: TITLE: Wren McMains Lecturer in Urban Studies and Planning ACKNOWLEDGEMENTS I would like to thank Wren McMains for the idea of user-oriented display timing. Mike Miller wrote the assembler, loader, and text editor for the Imlac, as well as the routine to form long-vector display commands. Luther Goodie wrote the Multics communicator (ARDS simulator) program. Both patiently answered my questions about the Imlac, and provided much-needed information that was not yet documented. .-W4TABLE OF CONTENTTS' . . . . . 2 . . . . . . . . . . . . . Acknowledgements . . . . . . . . . . List of Firures and Tables . . . . . . . . . . . . . 3 5 . . . . . . . . . . . . . 6 User-Oriented Display Timing . . . . . Abstract . . . . . . . . . . . . Introduction to Discourse and its Display. . . . . . . . . . . . . 10 The PDS-1 Urban Design Graphics Terminal A. Multics Communication . . . . . . . . . . 13 B. Subroutine Discourse. 0 . . . . . . . . . 14 . . . . . . . . . . 19 An Example of its Use. . . . . . Results and Suggestions A. User-Oriented Display Timing. . 0 0. B. A More Complete Discourse Term inal. Bibliography - . * - * - - * 0 - . . . . . . 0 23 . . . . 24 0 0 0 . 26 LIST OF FIGURES Figure . . . 7 2. Large Map Used in a Recent Discourse Model . . . . 9. 3. Drawing theid 1. Example of a Discourse Map . . . 4.Drawring- a Display 'Character. . . Display 6. Display Sequence #2. 7. Display Sequence #3. 9. Display Sequence #1. . Sequence #45. . . . . . 16 . . . . . . . . .. . .h.r.c.e. 6. . . . . . . 16 . . . . . . . . . . . . . . 20 . . . . . . . . . . . . . . . 20 . . . . . . . . . . . . . . . 21 . . . . . . . . . . . . . . . 22 LIST OF TABLES Table 1. Discourse Display Instructions . . , . 15 -6INTRODUCTION TO DISCOURSE AND ITS GRAPHICAL DISPLAY Discourse programming involves a spacial grid and a data structure for placing locational information, called attributes, in the grid squares. represent quantities such as housing, zoned land, or existing industry. The attributes water, commercially Variables can be associated with each grid square where a particular attribute 3xists; the number of rooms and date of construction could be the "charvars" of each housing location, maximum F.A.R. or the and land cost of a development site. tional attributes are displayed with a map command, Locawhich is currently printed on either a Multics remote terminal or an offline printer. from a map command; it in a 101O grid. Figure I is an example of the output shows the locations of two attributes For further explanation of the Discourse language, see "Discourse Command Descriptions" (2). Discourse is programmed to allow an urban planner to interact with the computer as the design session progresses. It is run by a PL/1 interpreter, which translates into object code and executes each Discourse command as it is typed in on the console. In a loop with multiple lines, each one is translated only once, since the translation process itself is sometimes significant in terms of the time it takes to execute a command. The visual interaction of the planner with this -m7- 1 123 4 5 6 7 8 9 0 . '4 . . . 5 * * 7 6 x . ex.xex . OX.x.X .xexex.xx 0 .x.XWX . .X.X*x x . x x x x x x x x x x 1 2 3 4 5 6 7 8 123 4 5 6 7 8 9 0 1 LEGENP; PRIMARY ATTRIBUTE ASSIGNMENTS - REFERENCE ATTRIBUTE ASSIGNMENTS FIGURE 1. = - -x EXAMPLE OF A DISCOURSE MAP A(2) = B(3) 0 O-0- spatial grid is terrminal, limited by the speed of the IBM 2741 about 800 characters per minute, type and the necessity of issuing a map command to see changes which have been made A 50x50 grid with a character printed since the last map. in each square, such as Figure 2, takes about four minutes to print. This is the first advantage of using the Imlac as a remote terminal: its capabilities as a refresh CRT give a display which always remains on the screen, but is dynamically altered when attributes are added-to or deleted from the Discourse map, With the normal teletype printing scrolled at the bottom, the map and the commands which modify it are closer together than on a rolled paper terminal. Talow avanoos tic 1Tmaca v Ni ciaoE cIvN a~awi oz aufDiL1: 3 CG -W4, w ' US " %a Us US to s: , ,u r um %n v%%n c* Ud~~~ %n v., g- 4P.9 4P,. v1 V- Zs W Usu%,USv %US A Rm Sr .0 -f % vI %A$ v vs %n$" %vs %n v vn % % nrrp . c 4 %. v %.%An %R v %M %Avr0 91 ar V* %Mwl %Mt VI %AI %A%I %nM$ V % "~ %A Uf % ON %Mk % A" A% " I_"IV %n W% %M %n t Ln vs v vs Go % m %nj,^ b. 6- v v % V IVI %A %A n% es- - v -- % vA nk vm n% ^ %M%A%" %A%M .0 ; % vI %v n %n .L v.L . v s IVIvn %M % vI vi v%Vm v A% 7 M% s v %v %n %^ v.n %n . v . . vn % ,S,'-V vI %AVs " VI NJs-svI vIvs vIvI v% v%V% VI vL % v% V% VI %.n %nv M %n%A un%r%.nv vs VI v % %n v S 0 C'L 40A ='AL =P 0,%e =' S . A .0 0 va a SUSvU I-a S AU a% , 4:' Z.- SU ~ 4- =' wv A% SU Sw U S A% &- S V pC U :Z., SU %A%SU v. SU A- U A%4 " U L a lUaU S AU SWU P % % %R V vP' vp VIIviv uusVI v v. fV AR vo v VI VIvAVI V vIVIVIL v .I v. ^% A P 4USU C =- .0- r-' t va UaU a SUSU n VI %M 461 vF* V Sr m AA U C. 4p C-Cv-C-C-C-C-C-C-C-C-e - .m vs Ae vs %M vA %A%n% %M vi m%vs -S i %n %^ vX %A% %M vv- v- I -% %n Vm $%%n . . . . . %A%n%n Zr - vA vMv vs %." vt .s v. . .s . .i . %A%ALMIY % %n vs VI VI VI VI VI VI VIu wIIIV VI VI u ,IV VV VC CwVIV IoIVI.- tIVIV etI oVIVIVIVIVIVIVIVIV. A,%A &- -=- v US US ALAL A C-C-C-C-w ULALA LA LA w %M%g US US US US w A US LAUS LA av LALA LA U# v# L %A A%. ve US L vaA US AA US C-C-C-CwC-Cw I C-C-s ALA LA LA S ALA LA LA A AL A 4L ALA LA S S LA LAUAa - C- C- C- C- C--C, ,-C-C-C--,C-CC--C-, v- ,- O %A ' S% P ,,, CC-CC-.CC-- " v C- - - % Us UaUS C-C -C -C LA V VI VI=VI us 0. %n %" %01 v Av %R" %M%A UVSVI V IVIVI , VI to v3 IIVe v8: v1 v c- 4! Cr C- -V - LM%In %Av n %" %A%sr=1 %CC%"-C VoVIVIV %n v nwvi v t vi wi %n %AvA J- J!, .- Z, VI . vn %A's C-v C- %n %n v a, 401 e C- C S: v* -=I C -C- C- . Acr :- U US =o = Z. wC- w a wa C- . %a v - C-C C- L- v U4 C- V V, S rv* rvi v , Ce A LA US ALAL LA %Aa %AUS Cs a, 4 47 Ud %AV4 S!, U4 %A%Av0 US4A US vv m %A%..ra .s . .a . . . . . . . w -C - . C - C -o, ,,,1 VI %A"s va "e 14v" eVI A % %Ry C A -4 e gw"% I U4 JIA LA L 4 LA LA ALa LALA C - S%0U st Csee A ALA A%.4vaGo%4 Z, va %ALA USL0 X- z %. US US US US %Av US %pws C- USU %A US%A %A USUSUsUSUS%SUe%%m% ,- US to %n 0A l Vs V Lv S4 1Va v v I v I "v v n n %M vn %n %01%R-C' .9 4; 4; v-C" - -t - J :4P .- :Z W US U US US VI v US A %a V4 %n%n%nv%R LM v kmv n %M v .A %n " %n%R%. " %A v . .s. vw %n z -A Sr.4 St z %A %W US%A vo%xUaUo%a%A Uev %A %A %." VI VI VI I a %A v vs V - vVI VI " kv m JA % Swv v!i US %A wALLA %A sUa US V, LA ="US% Z, rv 4p. g!. r.- %n Z'AD" s A-US J-%M vA LA %A%A %M we C ve %% vsv ALAA%.mAL 0- v- Sm w V NJ NJNJ VI VI LAO VINJVIVIVIV Z4 A ova v-e: V- v vS I %v n 4; v vi usI %A WU a- a- r. S- Z- 0- -a-C- =- = V %M %vin %A%Av ^ .0 aA% t sWu u US USS% %Ao oSUSSUSsUa aAv gAIU r aU ew %"% -4-- ,Ar"s Vit %M %M %n%M vs 5vva . n v. R V.v. V vA vs %AU" vi US" " AWWU Sv p 0 4 %f% swt . LAVI %n aw% X *U sN)9 M VIVVIIIIV I% %m %n%Avn vA% M %M v vi %n v v VINJtVIL C- 41.1-,-PV LN oU US US V4 US N. US USUS US US =, M ul %M % vs v%M t- 0-0 n I-- %nw v%n%n%.- I %.-v %, I4VI R %.%, As4U JAL rr.7v7 wUs% %. .v% .Aa "V4%A SUSwUS% A* r.- IV C Jr -P, -c v*.1= %AdL LM %AL "I %n W US Ul Wt WWW oUUSUSUA$ "z P" P*viU 47 U oSaAUsvUSsUSUa .o% US US US %A%,It i l-r.- vi v91 vs v91 v1 v, vr vrz s : -r% 4 ve " USUS%A%. %. USU SeSU U A b.- %n "i " us ^ vn %A%^ %A"e %A um ve VP -C-vi v' V-4 -r-V WwU AWW14U S U 4U " u" %A %. S- v91 %Av %AvC"LM %A vs vs v=I %A vr, .1 -C -=I s: v U SU Mt U SU .IU vR 16 % .9 V'v vvi v* 41 vr %R km%A%R v, %1 %A , 9 LALA LAN. n %M gr 40 vP Lm vs %A , 0 v, - a .91 u Wuvs I I Lc-Cs.9 n kf %nL %n%A VI%A Us . W -C USU4 UOUS USUS%A%A%.4to UdUs Ud USUSve to USUS%.9USw US US %SUS USU S U -a, l wl %M vR V% a VsUS% Che -C .,A, US %. S Us %0 U4 % US w w w 4 wAA .0 D S US %A%Av %Awww at LAF" L %a LA .I1LA LA d US US Ul VA "s Ut U4 Uf V w %A C wuso sw su swae se cwu ,y -10USER-ORIEITTED DISPLAY TIMING The ultics time-sharing system uses the extremely fast execution time of modern CPU's, unlimited virtual memory, together with an to service many users at once. The user receives what appers to be control of an online computer, and exploits its high-speed computational abilities to solve problems that would be prohibitively time-consuming Yet some of the intermediate information in by hand. the computational process may be of interest to the -user; and to display it, he might have to slow all of the steps in the computation to the point of using an expensive, dedicated com-uter. This is a problem of finding an appropriate way to match a speed which is convenient to the user to the speed which Multics deems appropriate to perform calculations efficiently. An airlines reservation system speedily answers a query with the appropriate data; since the process by which is was obtained is well matched to its user. of little interest, the system is But the planner using Discourse routinely uses iterative loops to choose spatial locations on the basis of some criteria, and if he could "slow down" the execution process to display the attribute grid squares chosen, he could use this intermediate data to formulate subsbquent instructions. This process will be called user- oriented display timing. It would be an extension of the planner's ability to interact with the computer during the -11- design process. The way to make this feature available is not to slow the execution of Multics, of course, but to selectively store intermediate steps of the computation for subsequent display. For instance, those grid squares which are selected in a loop would sequentially "-light up" We would need at least a for half a second or longer. memory buffer, but there must also be a way to transfer this stored information into a display that runs at a speed that is convenient to the user. It would. take a very complex scheme to have Multics transfer its own "delayed" output from the buffer into the display at regular intervals, since Multics is sharing its We time among many users. should therefore have an "intelligent" graphics terminal, with its own memory and CPU. To remove a lighted attribute from a storage CRT screen would involve redrawing the entire grid, which could take several seconds. Removing an attribute location, a frequently used instruction, would require the same operation. A dynamic display CRT, the screen of which is re- freshed 40 times per second, can perform these tasks easily. The Discourse urban design graphics terminal was impl&ented on the Imlac PDS-1, an intelligent graphics terminal with the characteristics described above. It is part of the Machine Architecture Group in the Department -12- of Architecture and Planning at M.I.T. The equipment in- cludes a 16 bit minicomputer with 8K core, refresh CRT, and data console. The Imlac has two CPU's; one is a display proc- essor which runs through the display list 40 times per second (lettering as well as graphics is done in software), and the other executes normal single-address, one-accumulator instructions. are a clock interrupt, Some of the important options display interrupt at 1/40 second intervals, suppressed grid mode, and teletype interface which is also used to communicate to Multics. N 13- THE PDS-1 URBAN DESIGN GRAPHICS TERMINAL A. Multics Communication An existing program provided communications with Multics by dataphone; the Imlac appeared to Multics as an ARDS terminal or a regular, terminal. "unintelligent" remote The main program takes characters from the store-buffer and puts them in the display list. The interrupt subroutines receive characters from Multics and place them in the store-buffer. character, 0338, A special code precedes four Discourse Display Char- acters, which are decoded by subroutine Discourse. -i4.THE PDS-1 URBAN DESIGN GRAPHICS TERiNAL B. Subroutine Discourse To implement the visual display of a Discourse grid and to light up (brighten) attribute locations chosen in a Discourse loop, the Discourse interpreter was modified to send the special display instructions shown in Table 1. Each Discourse Display instruction is prezPded by a special recognition character; the next four characters are not placed in the display list. The grid was formed using longvector (relative location) lines, starting from an absolute location in the middle of the screen. which grid lines are drawn. Figure 3 shows the order in The beam is left in the upper left hand corner for the attribute display characters which follow. Figure 4 shows the beam moving to grid location, drawing the display character, and returning to the upper left hand corner. If the number of grid columns is less than 16, the grid and display characters are scaled up by a factor of three; if less than 32, by a factor of two. This option can be suppressed by setting data switches 10-15 to 41 when the setup command is issued. The existing communication program used a circu- lar tuffer 400 words long to store characters from Multics,- and the Imlac could form instructions for the display list fast enough not to exceed this intermediate storage area. -15Table 1. ASCII G Discourse Display Instrutions 7-bit binary charac ters Meaning Form a grid of size rows x cols; enlarge this grid to fill the screen. Maximum grid size is rows cols 60x60. A row col attr Add the attlibute at row, col. The attr is one of fourcurrent1y~defined grid display characters. D row col attr Delete the attr at rowcol. L row col attr Light up the attr at row,col for a period ofT~ight-ime. T light-time P pause-time * Change the duration an attribute stays lighted to light-time. * Change the duration of the pause when an attribute is added or deleted to pause- time. End; remove the grid from the CRT screen; scroll Multics lines over entire screen again. 4 in tenths of a second -16- FIGURE ----- 3. DRAWING THE GRID -beam off beam -on FIGURE 4. DRAWING A DISPLAY CHARACTER V -17- But the.Discourse Display Instructions take pause-time or light-time to execute, which is typically from onds. i'to 2 sec- Mieanwhile, none of the succeeding display instruc- tions can be executed. So Multics sends a "ready"! character - 1773 - every 150 characters, - 0148 - before sending any more. and waits for an "acknowledge" Default for pause-time and light-time is one second. The period for lighting or pausing is timed off the display interrupt rather than setting the clock interrupt. The display interrupt goes up once every fortieth of a second (25 milliseconds), whether or not the display processor takes more than one-fortieth of a second to complete execution of the display list. If it is not finished, it can't be started at the top of the list yet. So the clock interrupt is set for one millisecond, and the display processor flag is checked when the clock interrupts. If the clock interrupt were also set to time either of the pauses, it would be difficult to tell whether the display processor was running past one-fortieth of a second or whether it was time to end a pause. But it is easy to count 25 milliseconds for each display interrupt and 1 for each clock interrupt, then compare the desired period of time with this elapsed time. The beam is repositioned to the upper left hand corner of the grid after drawing each grid display character, since all beam positions must be relative in order to enlarge -13- the grid. The display list for grid characters has the following format: 3 longvector words - beam off, go to row, col 1 djms word - display jump to grid character subroutine, beam on 3 longvector words - beam off, return to upper left of grid Chaining the long vector instructions to position the bean for display characters was considered; this would require only four words for each character instead of seven. But the added complexity to search down a chain to delete a character made this unattractive. If the flicker rate for large, full grids is unacceptable, chaining may have to be reconsidered. Adding a grid display character is usually done at the end of the current display list, while deletions are made by filling the seven locations with display nooperation (d nop) instructions. Then five or more seven- word holes exist., the next addition is of the list. made in the middle Search for the proper grid display character to delete is made by comparing the three beam-positioning words, then the djms word. -19- AN EXAMPLE OF ITS USE A simplified example is shown in Figures 5-8. Let the slash character represent a potential housing location, and the circular character an existing industry. The planner wants to see the effect of setting a minimum distance between industry and new housing. He might issue the following commands: through label for i,j= each industry circle of radius 2 around temp(i,j) label for 1,m= each temp delete hopsingloc(lm) The sequence of grid displays shows the right-hand industrial location lighting up, since it was selected in a for loop (Figure 5). At one second intervals, the potential housing sites within two grid squares are deleted from the grid. (Fiigures-6 and 7). up (Figure 8), The next industrial location lights and the housing site within two squares is deleted.(FiGure 9). The planner would then try several other distances, forming an idea of their effects by watching the potential sites that are excluded. I 0 2 -6 OJflTA Figure 7. Figure 8. a R) I Figure 9. -23RESULTS AND SUGGESTIOTQS A. User-Oriented Display Tirling The method of display timing described controls the rate at which It ultics sends data to the teriinal. could be used to scan files visually be scrolling lines If at a user determined rate. incorporated into the Bas- ic editor program as a command to "roll" x number of lines, it might be used to examine long files.. Less formally, it Mnight be used to make computer games that measure the speed of accomplishing some goal in relation to the display. 'I 'I -24RESULTS AND SUGGESTIONS B. A More Complete Discourse Terminal An important step in programming an intelligent graphics terminal has been made on the Imlac. interpreter is Characters, WVhen the modified to send the Discourse Display an urban design session will have an up-to-date grid and user-oriented timing. An urban design graphics terminal should also aid in th input operations of Discourse. The light pen can obviously be used to input data for the "put" command; the block version of the command, which puts an attribute from a point -at the upper left to one at the lower right, would be especially easy to program. An algorithm has been written for the Sylvania tablet that fills locations. in a pen-dravn outline with attribute This allowvs great flexibility in placing atti- butes, but a large part of the data preparation is assoc- iating the charvars of an attribute with its grid location. The difficulty lies in coordinating the input of spatial locations with numerical data, since changing from light pen to typing numbers on the keyboard is A possible solution is unwieldy. to group the values of the charyar3, and-display these approximate values on the screen. A grid location could be touched, check in front of a charvar value. followed by a For many uses of -25- Discourse, A refinement this would be accurate enough. would be to put the numerals 0-9 on the screen, the user touch the digits. and let A combination of the two would provide both coarse and fine charvar input. In addition to data input, almost any Discourse command which takes a locational argument could be issued form the screen. butes, A list of the currently displayed attri- together vrith "remove" and "show", could be combined in several ways to make valid commands. Hard-copy output of the map would be desirable. Since the user is not restricted to line printer characters, he can define his own; a permanent copy would ease the restrictions of current computer mapping. User generated characters would no doubt be used much more frequently if the character could be drawn on an enlarged grid square and automatically converted to Imlac increment mode instruc- tions. As a matter of convenience, the teletype could make a printed copy of the lines scrolled off the screen. A second interface board would be the necessary hardware addition.. -26BIBLIOGRAPHY 1. Porter, William Lyman, "The Developmentof DISCOURSE: a Language for Computer Assisted City Design, M.I.T. Department of Urban Studies and Planning Ph.D. Thesis, 1969. 2. "Discourse Command Descriptions," M.I.T. Department of Urban Studies and Planning, March 1972. 3. "IMLAC basic-assembler language specification," The Architecture Machine, M.I.T., 4. User Reference Manual, 1 June 72. Imlac PDS-1 Programmable Display System, Imlac Corportation, 1971. 5. Vickery, David R., "A Computer Program to Aid in the Evaluation of Development Controls," M..T. Department of Urban Studies and Planning Masters Thesis, 1972.