United States Patent 3,609,670
Inventor: Kenneth C. Knowlton
Filed: May 20, 1970
Assignee Bell Telephone Laboratories, Inc. New York, N.Y.
PROGRAM CONTROLLED SYSTEM FOR PROCESSING SPATIALLY DISTRIBUTED INFORMATION
ABSTRACT:A computer program is disclosed by means of which graphical information can be directly represented in coded form in the internal memory of the computer. Subroutines are provided for testing, changing and writing graphical symbols in coded form in the computer by means of scanners identifying unique plotting points of the internally represented graphical grid.
This is a continuation of an application filed Apr. 21, 1965 with Ser. No. 449,854 now abandoned.
This invention relates to the processing of information and more particularly to the processing of spatially distributed information.
The significance of information often depends not only upon its content but also upon its location in space. In the case of a schematic, for example, the constituents of the diagram 1 are distributed over a two-dimensional surface. In the case of a black and white photograph, the information conveyed by the photograph consists of various levels of intensity also distributed over a two-dimensional surface and ranging from black to white.
Under some circumstances, it is desirable to change the pattern of the distributed information. In the case of a schematic diagram, it is often advantageous to alter the positions of the constituents and their interconnections. In the case of pictorial information, it is often advantageous to alter both the composition and intensity of the subject matter.
In still other cases, it is advantageous to generate spatially distributed information from source specifications, generating intermediate results which are altered until a desired end result is achieved.
It is an object of the invention to manipulate spatially distributed information. Another object is to provide for altering the distribution of spatially distributed information. A further object is to generate prescribed spatial patterns from source information.
In accomplishing the foregoing and related objects, the invention considers information as distributed over a grid, with signals representing the content of each grid position stored in a preassigned section of a machine memory. The signals thus stored are manipulated by scanning registers which in the illustrative embodiment, occupy other sections of the machine memory. The scanners are manipulated to simulate movement over the grid to preassigned positions where information interchange takes place among the various scanners and grid positions through the employment, in a prescribed fashion, of various data processing components. In one embodiment of the invention, the interchange is controlled by signals which are stored in still another region of the machine memory. The composite of the various stored control signals with the various machine components constitutes an apparatus configuration by which information can be altered from one prescribed pattern to another.
Other aspects of the invention will become apparent after considering a illustrative embodiment taken in conjunction with the drawings in which:
- FIG. 1A is a diagram of a display surface containing spatially distributed information;
- FIG. 1B is a block diagram of a processing apparatus employed in practicing the invention;
- FIG. 1C is a diagram illustrating the storage of signals representing the spatially distributed information of FIG. 1A;
- FIG. 2A is a diagram of a display surface with an alternative form of the spatially distributed information of FIG. 1A;
- FIG. 2B is a diagram of the surface of FIG. 2A as modified by the practice of the invention;
- FIG. 3A is a storage diagram for program instructions which bring about the modification is spatially distributed information shown in FIG. 2B;
- FIG. 3B is a flow chart of a representative set of operations in accordance with the invention; and
- FIG. 3C is a block diagram of a processing unit such as unit 200 in FIG. 1B which is employed in practicing the invention.
Turning to FIG. 1A, the two-dimensional surface pictured there has superimposed upon it a dashed-line boundary which partially encloses the word "TEXT." To illustrate the invention, signals representing the information on the surface of FIG. 1A are processed by apparatus of the kind outlined in FIG. 1B. In the embodiment of the invention under consideration, the spatial distribution of the information pictured in FIG. 1A will be altered to close the lateral gap between the left-hand portion of the dashed-line boundary and the beginning letter of the word "TEXT."
FIG. 1A: Diagram of a display surface containing spatially distributed information
The processing apparatus of FIG. 1B includes a memory 100, a processing unit 200, and an input-output unit 300. Signals representing information enter or leave the memory 100 under the control of an addressing unit 600 from either a data channel 400 of the input-output unit 300 or an instruction channel 500 of the processing unit 200.
FIG. 1B: Block diagram of processing apparatus employed in the invention
As a preliminary to processing, the information pictured on the surface of FIG. 1A is converted into signals. This is done by considering the surface to be a grid of "characters." The characters include the individual letters of the work TEXT, the boundary marks, and the so-called blank character for those regions of the grid which are empty. The various grid regions are designated in the customary fashion employed with rectangular coordinates. For the grid of FIG. 1A there are 12 abscissal units, ranging from X=0 to X=11, and five ordinate units, ranging from Y=0 to Y=4, with the first letter of the word TEXT being at the coordinates X=4 and Y=2.
In one well-known convention for representing characters, such as the so-called "9" code used in the IBM 7090 Data Processing System, a set of six binary signals is used for each character. Under this convention, the blank character is commonly represented by two pulse signals of a first amplitude followed by four pulse signals of a first amplitude followed by four pulse signals of a second amplitude. The resulting set of pulse signals can, in turn, be represented by the binary number 110000, but it is typically more convenient to use octal notation (to the base eight) by which the foregoing signals associated with the blank character are represented by the octal number 60.
The signals representing the information content of the various grid regions are stored in the memory 100 of FIG. 1B. Assuming that each character of the grid is represented by six binary signals that each storage, i.e., word, location of the memory 100 in FIG. 1B has a capacity of 36 binary signals, one possible storage arrangement is shown in FIG. 1C. Since there are six signals per character, the contents of six squares of the grid occupy each machine word. The portion of the machine memory thus occupied is designated the grid storage. The first word of grid storage, illustratively at memory location 1000, is occupied by grid signals at positions ranging from X=0 through X=5 at the ordinate level Y=4. The contents of the grid regions ranging from X=6 through X=11 at the ordinate level Y=4 occupy the second word location of the grid storage. This storage pattern is repeated for successive rows of the grid until the entire grid storage section is completely occupied by machine signals which, in FIG. 1C, are represented by their octal number designations.
FIG. 1C: Diagram illustrating the storage of signals representing the spatially distributed information of FIG. 1A
Once the signals representing spatially distributed information are stored, the invention provides for manipulating the signals by using scanner registers which are able to exchange signals with each other and with the grid storage. The scanner registers store, inter alia, signals representing the characters of the grid with which they are associated and the locations of those characters in grid storage. For example, a scanner register, designated as scanner A, which will be discussed in greater detail subsequently, will be assumed to identify that position corresponding in FIG. 1C, with the upper left-hand corner of the dashed-line boundary which partially encloses the work "TEXT." Consequently, this scanner, for the grid storage shown in FIG. 1C, stores signals represented by the octal number 72 and signals designating associated storage location 1002. The register also stores signals indicating that the associated character is the second byte of the machine word at location 1002. It is to be noted that a byte is a subordinate set of signals within a machine word and that for the grid storage of FIG. 1C there are six bytes per machine word. To facilitate the scanner operations it is also advantageous to store the so-called suborigin of the grid storage (storage location after location 1011 of FIG. 1C) and the coordinates X=1 and Y=3 of the stored character. Other desirable items of storage for the scanner are considered subsequently. After the signals of scanner A are established, other scanners can be manipulated with respect to it in order to move the left-hand portion of the boundary in FIG. 1A as desired.
In an illustrative embodiment of the invention, the scanning registers constitute additional storage regions of the machine memory and the interaction between them and the rigid storage takes place under the control of instruction signals which are stored in still other regions of the machine memory.
To provide flexibility in the manipulation of spatially distributed information and to reduce the number of different characters required, the spatially distributed information of FIG. 1A is recast as shown in FIG. 2A. The substance of the original information has been retained, but the previous word TEXT now appears with lower case constituents as "TEXT," whose individual characters are derived from a single subordinate character. As a result, eight characters suffice for representing a wide variety of informational situations, for which the contents of each grid region are represented by three binary signals according to table I. Hence each machine word of the memory 100 in FIG. 1B now accommodates binary representations of twelve characters, in accordance with table I.
TABLE I Octal Binary Characters Significance Representation ⌞ Lower-left corner 0 000 ⌟ Lower-right corner 1 001 ⌜ Upper-left corner 2 010 ⌝ Upper-right corner 3 011 ― Horizontal bound 4 100 | Vertical bound 5 101 + Intersection 6 110 Blank 7 111
FIG. 2A: Diagram of a display surface with an alternative form of the spatially distributed information of FIG. 1A
When the lateral gap between the left-hand portion of the dashed-line boundary in FIG. 2A and the beginning letter of the word "TEXT" is closed in accordance with the invention, the result is as shown in FIG. 2B. This result is accomplished by the interaction between signals representing program steps stored in the memory 100 of FIG. 1B and the hardware components of the overall processing apparatus in FIG. 1B.
Considering first the signals stored in the memory 100 of the machine in FIG. 1B, a general storage diagram in set forth in FIG. 3A. The first region of storage is devoted to so-called monitor signals which are used in loading the other stored signals and performing supervisory operations. The supervisory and loading operations have a number of well-known implementations. Monitor storage is followed by the main program section of the memory. The various operations of the main program, and their storage locations, are represented symbolically in FIG. 3A and are discussed in greater detail subsequently.
FIG. 2B: diagram of the surface of FIG. 2A as modified by the practice of the invention
The main program is followed by sets of signals in the subroutine section of the memory. During processing, transfers and returns are made between the main program and the stored subroutines. The so-called "LITERALS" after the subroutine storage section are signals which are used during processing when signals directly representing numbers are required.
The LITERALS section of storage is followed by the grid storage for signals corresponding to the spatially distributed information of FIG. 2A. A final section of the memory is devoted to the various scanning registers (herein called "scanners") which are used in exchanging information signals among each other and the grid storage.
Each scanner is a block of eight machine words. The storage associated with a representative scanner, scanner A, is presented in detail in FIG. 3A. The beginning location of the block assigned to scanner A is symbolically designated TMCHA. The eight work locations of scanner A successively include:
- 1. Storage CH(A) for duplicating the character in grid storage which is associated with the scanner A;
- 2. Storage W(A) for indicating the surface width of the spatially distributed information in machine words;
- 3. Storage X(A) for indicating the abscissa position of the spatially distributed information associated with the scanner A;
- 4. Storage Y(A) for indicating the ordinate position of the scanner A;
- 5. Storage Z(A) for indicating the suborigin of the surface associated with the spatially distributed information. The suborigin is the storage position immediately after the lowermost storage location of the grid storage;
- 6. Storage XMAX(A) for indicating the maximum abscissa for the spatially distributed information of FIG. 2A;
- 7. Storage R(A), B(A) for indicating the machine word, i.e., register, associated with scanner A and the byte number within the machine word. A byte is a subset of binary signals within a machine word. In the example under consideration, the signals of each character constitute a byte and there are twelve bytes per machine word;
- 8. Storage YMAX( A) for indicating the maximum ordinate for the spatially distributed information of FIG. 2A. In effect, as the contents of the various locations associated with the scanners are altered, the scanners simulate movement over the surface of the grid of FIG. 2A and exchange signals with other scanners and with the grid.
FIG. 3A: Storage diagram for program instructions which bring about the modification is spatially distributed information shown in FIG. 2B
The signals which initiate the simulated movement of the scanners constitute the main program. These signals, as symbolized in the main program storage of FIG. 3A, include two basic operations: conditional and unconditional.
Each unconditional operation, symbolized by THEN, has associated with it a list of tests which may be terminated by direction to transfer to the signals at some other location of the memory.
Each conditional operation, symbolized by IFXXX - where XXX may be ANY and ALL or their negatives NONE and NALL - has associated with it a list of "texts," followed by a list of "commands" which may also be terminated by a direction to transfer. The separation between tests and commands is symbolized by a "T."
The tests are of the "positions" of the scanners on the grid and of the characters stored in the associated positions. The commands are to "reposition" the scanners with respect to the grid, and to alter the contents stored at the various positions. Each test of a position and each command is symbolized by a triplet, and first letter of which designates the scanner, the second letter designates the type of test or operation, and the third character indicates the quantity involved in the test or operation.
For the purpose of illustrating the invention, the tests are of two kinds. The first kind is used to test the position of the scanner, for example (A,Y,B) which is read "Is A at the ordinate position of B?" and (A,Y,N10) which reads "Is A at the ordinate N?". The second kind of test is of the character at the scanner position, for example, (A,E,B) which is read "Is the character associated with the scanner A equal to the character associated with the scanner B?".
The illustrative commands are also of two kinds. The first kind moves the scanners either from one position to another, or a specified amount. The movement of a scanner to the position of another scanner is exemplified by (A,T,B) which is read "Move scanner A to the position of scanner B" and (A,Y,B) which is read "Move scanner A to the Y ordinate position of scanner B." The movement of a scanner a specified amount is exemplified by (A,U,N10), which is read "Move scanner A up N units"; (A,D,N10), which is read "Move D scanner A down N units"; (A,R,N10) which is read "Move scanner A to the right N units."
The second kind of command is used to change the information at the location specified by the scanner, for example, (A,W,B) which is read "A write B" for writing signals representing the character B in the location specified by the scanner A; and (A,W,N8) which is read "A write Number" for writing the number N8 at the location of grid storage specified by the scanner A.
The particular operations of the main program which are symbolized in the main program storage section of FIG. 3A act with the signals stored in the subroutine section move to left-hand portion boundary of FIG. 2A adjacent to the first letter of the word "TEXT," as shown in FIG. 2B.
The invention may be adapted to a wide variety of data processing apparatus. When adapted to the IBM 7090, as described in IBM Form 223-6895-2, dated June, 1962, the signals of the main program take the form shown in Table II, while the subroutine signals and those of scanner A take the form shown in Table III.
Table II MEMORY OCTAL REPRESENTATION LOCATION OF CONTENTS OF SYMBOLIC SYMBOLIC OPERATION & OPERAND (OCTAL) MEMORY LOCATION LOCATION 00451 THEN (P,T,A)(Q,T,A)(Q,R,1) 00451 -0774 00 1 77140 AXC TMCHA,1 00452 -0774 00 2 77520 AXC TMCHP,2 O0453 0074 00 4 00021 TSX KATO8,4 00454 -0774 00 1 77140 AXC TMCHA,1 00455 -0774 00 2 77540 AXC THCHQ,2 00456 0074 00 4 00021 TSX KATO8,4 00457 -0534 00 1 77546 LXD TMCHQ+6,1 00460 -0774 00 2 77540 AXC TBCHQ,2 O0461 0074 00 4 00012 TSX KSTPR,4 00462 THYNXT IFNONE (Q,E,4)DONE O0462 0500 00 0 77540 CLA TMCHQ 00463 0402 00 0 00746 SUB =O4 00464 0100 00 0 00466 TZE ..010 00465 0020 00 0 00623 TRA DONE 00466 THEN (P,W,7)(Q,W,2) (P,D,1)(Q,D,1) 00466 -0500 00 0 00751 CAL =O7 00467 -0534 00 1 77526 LXD TMCHP+6,1 00470 -0774 00 2 77520 AXC TMCHP,2 00471 0074 00 4 00000 TSX KWRIT,4 00472 -0500 00 0 00745 CAL =O2 00473 -0534 00 1 77546 LXO TMCHQ+6,1 00474 -0774 00 2 77540 AXC TMCHQ,2 00475 0074 00 4 O000O TSX KWR1T,4 00476 -0534 00 1 77526 LXD TMCHP+6,1 00477 -0774 00 2 77520 AXC TMCHP,2 00500 0074 00 4 00005 TSX KSTPO,4 00501 -0534 00 1 77546 LXD TMCHQ+6,1 00502 -0774 00 2 77540 AXC THCHQ,2 00503 0074 00 4 00005 TSX KSTPD,4 00504 RT IFALL (P,E,5)(Q,E,7)T(P,W,7) (Q,W,5)(P,D,1)(Q,D,1)RT 00504 0500 00 0 77520 CLA TMCHP 00505 0402 00 0 00747 SUB =O5 O05G6 -0100 00 0 00531 TNZ ..012 G0507 0500 00 0 77540 CLA TMCHQ 00510 0402 00 0 O0751 SUB =O7 00511 -0100 00 0 00531 TNZ ..012 00512 -0500 00 0 00751 CAL =O7 00513 -0534 00 1 77526 LXD TMCHP+6,1 00514 -0774 00 2 77520 AXC THCHP,2 00515 0074 00 4 00000 TSX KWRIT,4 00516 -0500 O0 0 00747 CAL =O5 00517 -0534 00 1 77546 LXD TMCHQ+6,1 00520 -0774 00 2 77540 AXC TMCHQ,2 0OS21 0074 00 4 00000 TSX KWRIT,4 00522 -0534 00 1 77526 LXD TMCHQ+6,1 00523 -0774 00 2 77520 AXC TMCHQ,2 00524 0074 00 4 00005 TSX KSTPD,4 00525 -0534 00 1 77546 LXD TMCHQ+6,1 00526 -0074 00 2 77540 AXC TMCHQ,2 00527 0074 00 4 00005 TSX KSTPD,4 00530 0020 00 0 00504 TRA RT 00531 IFNALL (P,E,0)(Q,E,4)T(P,U,1) (Q,U,1)RESTOR 00531 0500 00 0 77520 CLA TMCHP O0532 0402 00 0 00743 SUB =O0 00533 -0100 00 0 00540 TNZ ..016 00534 0500 00 0 77540 CLA TMCHQ 00435 0402 00 0 00746 SUB =O4 00536 -0100 00 0 00540 TNZ ..016 00537 0020 00 0 00547 TRA ..017 00540 -0534 00 1 77526 LXD TMCHP+6,1 00541 -0774 00 2 77520 AXC TMCHP,2 00542 0074 00 4 00004 TSX KSTPU,4 00543 -0534 00 1 77546 LXD TMCHQ+6,l 00544 -0774 00 2 77540 AXC TKCHQ,2 00545 0074 00 4 00004 TSX KSTPU,4 00546 0020 00 0 00570 TRA RESTOR 00547 THEN (P,W,7)(Q,W,0)(Q,Y,A) (P,T,Q)(Q,R,1)TRYNXT 0O547 -0500 00 0 00751 CAL =O7 00550 -0534 00 1 77526 LXD TMCHP+6,1 00551 -0774 00 2 77520 AXC TMCHP,2 00552 0074 00 4 00000 TSX KWRITt4 O0553 -0500 00 0 00743 CAL =O0 00554 -0534 00 1 77546 LXD TMCHQ+6,1 00555 -0774 00 2 77540 AXC TMCHQ,2 00556 0074 00 4 00000 TSX KWRIT,4 00557 -0500 00 0 77143 CAL TMCHA+3 00560 0074 00 4 00011 TSX KSETY,4 00561 -0774 00 1 77540 AXC TMCHQ,1 00562 -0774 00 2 77520 AXC TMCHP,2 00563 0074 00 4 00021 TSX KATO8,4 00564 -0534 00 1 77546 LXD TMCHQ+6,1 00565 -0774 00 2 77540 AXC TMCHQ,2 00566 0074 00 4 00012 TSX KSTPR.4 00567 0020 00 0 00462 TRA TRYNXT 00570 RESTOR IFALL (P,Y,A)(P,W,2) (Q,W,4)DONE 00570 0500 00 0 77523 CLA TMCHP+3 00571 0402 00 0 77143 SUB TMCHA+3 00572 -0100 00 0 00604 TNZ ..022 00573 -0500 00 0 00745 CAL =O2 00574 -0534 00 1 77526 LXD TMCHP+6,1 00575 -0074 00 2 77520 AXC TMCHP,2 00576 0074 00 4 00000 TSX KWRIT,4 00577 -0500 00 0 00746 CAL =O4 00600 -0534 00 1 77546 LXD TMCHQ+6,1 00601 -0774 00 2 77540 AXC TMCHQ,2 00602 0074 00 4 00000 TSX KWRIT,4 00603 0020 00 0 00623 TRA DONE 00604 THEN (P,W,5)(Q,W,7)(P,U,1) (Q,U,1)RESTOR 00604 -0500 00 0 00747 CAL =O5 00605 -0534 00 1 77526 LXD TMCHP+6,1 00606 -0774 00 2 77520 AXC TMCHP,2 00607 0074 00 4 00000 TSX KWRIT,4 00610 -0500 00 0 00751 CAL =O7 00611 -0534 00 1 77546 LXD TMCHGQ+6,1 00612 -0774 00 2 77540 AXC TKCHQ,2 00613 0074 00 4 00000 TSX KWRIT,4 00614 -0534 00 1 77526 LXD TMCHP+6,1 00615 -0774 00 2 77520 AXC TMCHP,2 00616 0074 00 4 00004 TSX KSTPU,4 00617 -0534 00 1 77546 LXD TMCHQO+6,1 00620 -0774 00 2 77540 AXC TMCHQ,2 00621 0074 00 4 00004 TSX KSTPU,4 00622 0020 00 0 00570 TRA RESTOR 00623 DONE LITERALS 00743 000000000000 00745 000000000002 00746 000000000004 00747 000000000005 00751 000000000007
Table III MEMORY OCTAL REPRESENTATION LOCATION OF CONTENTS OF SYMBOLIC SYMBOLIC OPERATION & OPERAND (OCTAL) MEMORY LOCATION LOCATION 00001 -0320 00 0 27065 KWR1T ANA =O7 00002 0602 00 2 00000 SLW 0,2 00003 KTSTY 00007 0522 00 1 00131 XEC KKALS,1 00010 -0602 00 2 00006 ORS* 6,2 00011 -0501 00 1 00114 ORA KBTMK,l 00012 0320 00 2 00006 ANS* 6,2 00013 0020 00 4 00001 TRA 1,4 00100 -377777777770 OCT 777777777770 00101 -377777777707 OCT 777777777707 00102 -377777777077 OCT 777777777077 00103 -377777770777 OCT 777777770777 00104 -377777707777 OCT 777777707777 00105 -377777077777 OCT 777777077777 00106 -377770777777 OCT 777770777777 00107 -377707777777 OCT 777707777777 00110 -377077777777 OCT 777077777777 00111 -370777777777 OCT 770777777777 00112 -307777777777 OCT 707777777777 00113 +077777777777 OCT 077777777777 00114 0 00000 0 00000 KBTMK PZE 0 00115 0761 00 0 00000 NOP 00116 0767 00 0 00003 ALS 3 00117 0767 00 0 00006 ALS 6 00120 0767 00 0 00011 ALS 9 00121 0767 00 0 00014 ALS 12 00122 0767 00 0 00017 ALS 15 00123 0767 00 0 00022 ALS 18 00124 0767 00 0 00025 ALS 21 00125 0767 00 0 00030 ALS 24 00126 0767 00 0 00033 ALS 27 00127 0767 00 0 00036 ALS 30 00130 0767 00 0 0004l ALS 33 00131 0 00000 0 00000 KKALS PZE 0 00132 0771 00 0 O0000 ARS 0 00133 0771 00 0 00003 ARS 3 00134 0771 00 0 00006 ARS 6 00135 0771 00 0 00011 ARS 9 00136 0771 00 0 00014 ARS 12 00137 0771 00 0 00017 ARS 15 00140 0771 00 0 00022 ARS 18 00141 0771 00 0 00025 ARS 21 00142 0771 00 0 00030 ARS 24 00143 0771 00 0 00033 ARS 27 00144 0771 00 0 00036 ARS 30 00145 0771 00 0 00041 ARS 33 00146 0771 00 0 00044 KKARS ARS 36 00165 0500 00 2 00003 KSTPU CLA 3,2 00166 0400 00 0 27057 ACD =1 00167 0621 00 2 00003. STA 3,2 00170 0500 00 2 00006 CLA 6,2 00171 0402 00 2 00001 SUB 1,2 00172 0621 00 2 00006 STA 6,2 00173 0500 60 2 00006 CAL* 6,2 00174 0522 00 1 00146 XEC KKARS,1 00175 0320 00 0 27065 ANA =O7 00176 0602 00 2 00000 SLW 0.2 00177 0020 00 4 00001 TRA 1,4 00200 0500 00 2 00003 KSTPC CLA 3.2 00201 0400 00 0 27172 ADD =077777 00202 0621 00 2 00003 STA 3.2 00203- 0500 00 2 00006 CLA 6,2 00204 0400 00 2 00001 ADD 1,2 00205 0621 00 2 00006 STA 6,2 00206 0500 60 2 00006 CAL* 6,2 00207 0522 00 1 00146 XEC KKARS, 1 00210 0320 00 0 27065 ANA =O7 00211 0602 00 2 00000 SLW 0,2 00212 0020 00 4 00001 TRA 1,4 00274 0621 00 2 00003 KSETY STA 3,2 00275 0400 00 0 27057 ACD =1 00276 0131 00 0 00000 XCA 00277 0200 00 2 00001 MPY 1,2 00300 0131 00 0 00000 XCA 00301 0760 00 0 00006 COM 00302 0400 00 0 27057 ACD =1 00303 0400 00 2 00004 ACD 4,2 00304 0621 00 2 00006 STA 6,2 00305 0500 00 0 27056 CLA =0 00306 0560 00 2 00002 LCO. 2,2 00307 0221 00 0 27072 DVP =12 C0310 0131 00 0 00000 XCA 00311 0400 00 2 00006 ADD 6,2 00312 0601 00 2 00006 STO 6,2 00313 0500 60 2 00006 CAL* 6,2 00314 0522 00 1 00146 XEC KKARS,1 00315 0320 00 0 27065 ANA =O7 00316 0602 00 2 00000 SLW 0,2 00317 0020 00 4 00001 TRA 1,4 00320 -3 00013 1 00335 KSTPR TXL KSTPS,1,11 00321 0534 00 1 27057 LXA =1,1 00322 -0500 00 2 00006 CAL 6,2 00323 0402 00 0 27176 SUB =012777777 00324 0602 00 2 00006 SLW 6,2 00325 0500 00 2 00002 CLA 2,2 00326 0402 00 2 00005 SUB 5,2 00327 -0100 00 0 00340 TNZ KSTPS+3 00330 0600 00 2 00002 STZ 2,2 00331 -0500 00 2 00003 CAL 3,2 00332 0400 00 0 27172 ACD =07777 00333 0621 00 2 00003 STA 3,2 00334 0020 00 0 00343 TRA KSTPS+6 00335 1 00001 1 00336 KSTPS TXI *+1,1,1 00336 -0754 00 1 00000 PXD 0,1 00337 0622 00 2 00006 STD 6,2 00340 0500 00 2 00002 CLA 2,2 00341 0400 00 0 27057 ACD *1 00342 0601 00 2 00002 STO 2,2 00343 0500 60 2 00006 CAL* 6,2 00344 0522 00 1 00146 XEC KKARS, 1 00345 0320 00 0 27065 ANA =O7 00346 0602 00 2 00000 SLW 0,2 00347 0020 00 4 00001 TRA 1,4 00652 0500 00 1 00001 KATOB CLA 1,1 00653 0601 00 2 00001 STO 1,2 00654 0500 00 1 00002 CLA 2,1 00655 0601 00 2 00002 STO 2,2 00656 0500 00 l 00003 CLA 3,1 00657 0601 00 2 00003 STO 3,2~ 00660 0500 00 1 00004 CLA 4,1 00661 0601 00 2 00004 STO 4,2 00662 0500 00 1 00005 CLA 5,1 00663 0601 00 2 00005 STO 5,2 00664 0500 00 1 00007 CLA 7,1 00665 0601 00 2 00007 STO 7,2 00666 0500 00 1 00006 CLA 6,1 C0667 0601 00 2 00006 STO 6,2 00670 -0734 00 1 00000 PCX 0,1 00671 0621 00 0 00672 STA *+1 00672 -0500 00 0 00000 CAL ** 00673 0522 00 1 00146 XEC KKARS,1 OC674 -0320 00 0 27065 ANA =O7 00675 0601 00 2 00000 STO 0,2 00676 0020 00 4 00001 TRA 1,4 LITERALS 27057 000000000001 27065 000000000007 27067 000000000011 27070 000000000012 27172 000000077777 77140 0 00000 0 00002 TMCHA PZE CH(A) 0 00000 0 00013 PZE W (A) 0 00000 0 00017 PZE X (A) 0 00000 0 00103 PZE Y (A) 0 00000 0 46644 PZE Z (A) 0 00000 0 00203 PZE XMAX(A) 0 00004 0 45271 PZE R(A),0, B(A) 77147 0 00000 0 00133 PZE YMAX(A) 77520 TMCHP PZE CH(P) PZE YMAX(P) 77540 TMCHQ PZE CH(Q) PZE YMAX(Q)
The signals of tables II and III, in the case, of the IBM 7090, act upon the processing unit 200 of FIG. 1B, which includes, in broad outline, the components set forth in FIG. 3C. Among the included components are 201, 202, and 203 which are used in addressing the machine memory; components 211 and 212 which are used for registering and decoding the various machine operations; component 221 which is used in storing machine words dispatched to, and extracted from, the machine memory; components 231, 232, and 233 which are used in performing arithmetic operations; and components 241 and 242 which are used in indexing. A more detailed discussion of the components and of their various operations during processing is to be found in IBM U.S. Pat. No. 3,036,773, issued May 29, 1962 to J. L. Brown.
FIG. 3C: Block diagram of a processing unit such as unit 200 in FIG. 1B which is employed in practicing the invention
The entries of tables II and III are collectively known as listings. Each listing is divided into a right-hand section containing the symbolic locations and representations of machine instructions, and a left-hand section with their machine instructions, and a left-hand section with their machine signal counterparts in octal notation. For example, the first instruction of table II for which there is machine coding is given symbolically as AXC TMCHA,1. The octal form of the machine signal counterparts of the various portions of this instruction are -774, which is associated with the operation AXC, and 77140, which is associated with the address portion TMCHA of the operand. The numerical designation which follows TMCHA refers to index register number 1. This designation is carried directly to the sixth digit position (from the right) of the machine word. The octal number in the first column of the listings indicates that the AXC instruction is stored at location 451 of the memory 100.
When the signals representing the location 451 appear at the output of the address register 201 of FIG. 3C, the machine word -0774 00 1 77140 is extracted from the memory 100 of FIG. IB. Each octal digit represents the signals of three binary digits, each of which is called a "bit." Bits 18 through 20 of the seventh octal digit (from the left) enter the tag register 241 of FIG. 3C. This is followed by the entry of bits 18 through 35 of octal digits 7 through 12 into the storage register 221. The address portion goes into the adder 231 and then to the register number 1 which is included among index registers 242. This is followed by the operation of deriving the two's complement of the address location now stored in index register 1, so that the ultimate contents of that register are signals representing the complemented address of the AXC instruction. The modes of operation of the other individual instructions of tables II and III are explained in detail in the IBM Form mentioned above.
It is to be understood that the various memory locations shown in tables II and III are derived from an "assembly" and are relocated in conventional fashion to be understood that the main program of FIG. 3A merely illustrates several representative operations in accordance with the invention and is but a portion of an overall main program for carrying out still other operations.
Before the machine instruction of the main program at memory location 451 of table II is executed, scanner A at memory location 77140 (before relocation) has been set, as shown at the end of table III, either manually or by earlier portions of the main program (not shown). The first group of coding in table II, at memory locations 451-461, prefaced by the unconditional operation THEN, sets the scanners P and Q with the preset machine signals of scanner A. This setting operation is symbolized as (P,T,A) and (Q,T,A). It includes a transfer to the KATOB subroutine and the execution of machine instruction at memory locations 652-676 of table III. In addition, the Q scanner is stepped to the right by one unit (Q,R,I) by a transfer to the KSTPR subroutine at locations 320-334 of table III.
A flow chart which summarizes various operations of the main program is shown in FIG. 3B. Each block in FIG. 3B corresponds to a block of coding in table II, the uppermost block corresponding to the block of coding discussed above. The succeeding blocks of FIG. 3B produce various transfers to the other subroutines of table III with the ultimate result that by the time the processing has reached location 623 of table II, the illustrative portion of the processing is completed and the system is ready for further assignments in accordance with the invention.
FIG. 3B: Flow chart of a representative set of operations in accordance with the invention
Briefly, the operations which are summarized in FIG. 3B begin with scanner A, in effect, on the upper left-hand corner of the boundary shown in FIG. 2A. Scanner P is then moved to the position of A and scanner Q is placed one square to the right. Scanners P and Q then sweep downward with Q copying and P erasing the contents of the squares swept by it. The downward sweep terminates when the lower left-hand corner of the boundary is encountered at which time P and Q are moved upward to the level of scanner A and the downward sweep is repeated. This procedure continues until scanner Q encounters neither a lower bound nor a blank, at which point the scanning sweep is reversed to restore what had been erased during the downward sweep.
The contents of the grid storage of FIG. 3A, both before and after scanning manipulation, may be read out of the memory 100 of FIG. 1B and used to expose a photographic plate according to the nature of the signals stored at the various grid locations. For the grid of FIG. 2A, where seven different characters are employed, the various characters may represent any one of seven levels of intensity.
Other adaptations of the invention will occur to those skilled in the art.
I claim:
- A method for processing digital signals representing graphical information
which is to be visually displayed, said method comprising the steps of
- reserving a portion of a word-addressable memory for an array of data items, each data item representing a graphical element in a rectangular array of graphical elements,
- storing the coordinate position of a specific graphical element in said rectangular array,
- accessing a particular data item representing said specific graphical element by utilizing said coordinate position,
- comparing the data item representing said specific graphical element with a preselected data item, and
- arithmetically altering said coordinate position to provide access to a data item representing another graphical element in a different coordinate position in said rectangular array.
- The method according to claim 1 further comprising the step of comparing the coordinate position of said specific graphical element with a given coordinate position.
- The method according to claim 1 further comprising the step of storing accessing, comparing and altering commands in the internal memory of a general purpose digital computer.