Abstract:
A CRT computer terminal is presented. The need for a master processor is eliminated by designing a CRT controller to initialize a slave processor. The slave processor accesses a random access memory (RAM) in which is stored instructions which the processor executes. Upon initialization of the computer terminal, the CRT controller reads instructions to be executed by the slave processor from a non-volatile read-only memory (ROM). The instructions are transferred from the CRT controller to the slave processor. The slave processor stores the instructions in the random access memory. Each instruction, at the proper time, may then retrieved and executed by the slave processor.

Description:
BACKGROUND OF THE INVENTION 
     The present invention relates to a cathode ray tube (CRT) computer terminal. 
     Once a CRT computer terminal has been designed for a particular terminal, a later redesign of compatible CRT computer terminals focuses on the reduction of design complexity, particularly as to number of chips required for assembly. The present invention allows the production of a logic section within a computer terminal to be implemented with the use of eight integrated circuits as compared with alternate designs which use from twelve to one hundred fifteen integrated circuits. 
     SUMMARY OF THE INVENTION 
     In accordance with the preferred embodiments of the present invention a cost-efficient design for a CRT computer terminal is presented. The need for a master processor is eliminated by designing a CRT controller to initialize a slave processor. The slave processor accesses a random access memory (RAM) in which is stored instructions which the processor executes. Upon initialization of the computer terminal, the CRT controller reads instructions to be executed by the slave processor from a non-volatile read-only memory (ROM). The instructions are transferred from the CRT controller to the slave processor. The slave processor stores the instructions in the random access memory. Each instruction, at the proper time, may then be retrieved and executed by the slave processor. 
     Further, in the preferred embodiment, the CRT controller includes a screen buffer and a row buffer. The screen buffer is sufficiently large to contain a display screen of data to be displayed on a CRT display. The row buffer contains two sections, each section containing a character row of data to be displayed on the CRT display. The character row in a first of the two sections is modified with information from the screen buffer. The character row in a second of the two sections is the character row currently being drawn on the CRT display. Upon a signal the sections are switched so that the character row in the second section is modified with information from the screen buffer and the character row in the first section is the character row currently being drawn on the CRT display. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a block diagram of the logic design for a computer terminal in accordance with the preferred embodiment of the present invention. 
     FIG. 2 is the block diagram of a CRT controller shown in FIG. 1, in accordance with the preferred embodiment of the present invention. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     FIG. 1 shows the logic design for a computer terminal 100. A coax cable 101 connects a computer (not shown) to a buffer 102 within computer terminal 100. Buffer 102 buffers data transferred between coax cable 101 and a processor 104. Data transferred between buffer 102 and processor 104 is sent over lines 110. Processor 104 is, for example, a Biphase Communication Processor developed by National Semiconductor Corporation, having a business address at 2900 Semiconductor Drive, Santa Clara, Calif. 95051. The Biphase Communication Processor is a slave processor requiring a master processor to initialize and control its operation. In the present invention a CRT controller 107 functions to perform the tasks typically done by a master processor. 
     Processor 104 accesses a random access memory (RAM) 105 through lines 112. Processor 104 communicates with CRT controller 107 through lines 111. Lines 118 are used by CRT controller 107 to control processor 104, when necessary, and to down load instructions to processor 104. CRT controller 107 accesses a read-only memory (ROM) 106 through lines 113. CRT controller 107 sends data to a CRT 115 through lines 116. CRT controller accesses an EEPROM and bell circuit 108 through lines 114 and a keyboard (not shown) through lines 109. A reset line 103, connected to processor 104 and CRT controller 107, is used to reset the system. 
     FIG. 2 shows a block diagram of CRT controller 107. A processor interface 207 communicates with processor 104 through lines 111. Processor interface 207 and all other blocks within CRT controller 107 are coupled to a data bus 221. Processor 104 generally exercises control over data bus 221 through processor interface 207. 
     Through an address bus 222, processor interface 207 communicates with a ROM Arbiter 202 and a screen buffer 208. Processor 104, through processor interface 207, controls a keyboard, bell and EEPROM interface 211 through lines 229. Processor 104 also sends control signals through processor interface 107, through lines 230 to a controller core 209. Processor interface 107 decodes addresses sent from processor 104. 
     Screen buffer 208 holds 2K bytes of data, sufficient for one screen of data. The data in screen buffer 208 is from processor 104, transferred through data bus 221, to screen buffer 208. The data in screen buffer 208 is read by a remote controller 203 through data bus 221. 
     Remote controller 203 has two functions. Each function is performed by a state machine within remote controller 203. Upon system reset, remote controller 103 receives a reset signal over reset line 103. Remote controller 203 then acts as an instruction down loader to processor 104. Through address lines 235 remote controller 203 causes ROM arbiter to retrieve data from ROM 106. ROM arbiter 202 returns the retrieved data to remote controller 203 through data bus 221. Through lines 118, remote controller 203 drives the control lines of processor 104, and writes instructions through processor 104 to RAM 105. Once this is complete, control is handed to processor 104 which begins normal firmware execution. The instructions in RAM 105 are used to control processor 104. 
     The second function of remote controller 203 is to oversee the transfer of one character row of data (fifteen scan lines) from screen buffer 208 to a row buffer 204. Once every six microseconds, remote controller 203, through lines 118, instructs processor 104 to relinquish control over data bus 221. Remote controller 203 then sends to row buffer 204 through address lines 226 the address within screen buffer 208 of the one row of data to be sent to row buffer 204. Remote controller 203 then controls address lines 222 to direct the transfer of this character row from screen buffer 208 to row buffer 204. 
     Row buffer 204 contains two sections. Each section has enough memory to store one character row of data. In a first section, one character row is constantly being read through lines 223 by ROM arbiter 202 and an output enhancement block 205 for the purpose of sending data to CRT 115 to be displayed. In the second section, a character row of data is available for update by remote controller 203. When CRT 115 has completed fifteen scan lines (1 character row), the two sections are switched so that the second section is read by ROM arbiter 202 and output enhancement block 205 and the first section is available for update by remote controller 203. 
     ROM arbiter 202 interfaces with ROM 106 through lines 113. For instance, ROM arbiter 202 receives through lines 223 a character from row buffer 204 and receives through lines 224 a scan line number from a controller core 209. With this information ROM arbiter 202 generates an address for the location in ROM 113 of the dot pattern for the scan line of the character received. The ROM address is sent through lines 113 to ROM 106. ROM 106 returns through lines 113 the dot pattern to ROM arbiter 202. ROM arbiter 202 sends the dot pattern to a parallel-to-serial shifter 206 through lines 225. 
     The character sent to ROM arbiter 202 from row buffer 204 is also sent through lines 223 to an output enhancement block 205. Output enhancement block 205 notes any enhancement, e.g., underlining, italics, bold, etc., and sends an enhancement control signal to shifter 206 through lines 228. Parallel-to-serial shifter 206 receives input from ROM arbiter 202 and enhancement control signals from output enhancement block 205 and converts this information to a serial transmission which is sent to CRT 115 through lines 116a. Lines 116a are a subset of lines 116. 
     A keyboard, bell and EEPROM interface 211 interfaces with a keyboard through lines 109. Keyboard, bell and EEPROM interface interfaces with EEPROM and bell 108 through lines 114. Processor 104 is able to access keyboard, bell and EEPROM interface 111 through processor interface 207 through lines 229. 
     Controller core 209 provides control and timing for all blocks within CRT controller 107. Controller core 209 keeps track of data displayed on CRT 115, e.g., which row is being scanned, which scan line is being scanned, which character is currently being reproduced. Controller core 209 also informs row buffer 204 through lines 226, when to switch sections. Controller core 209 also generates horizontal synchronization signals and vertical synchronization signals which are sent to CRT 115 through lines 116b. Lines 116b are a subset of lines 116. These signals are used, for example, to fill in blank spots in the display. Further, controller core 209 sends timing information to output enhancement block 205 through lines 227. 
     A clock 210 receives a system clock signal through a clock line 231 and generates a clock signal placed on a clock line 232 which is connected to and used by all blocks in CRT controller 107. 
     A self test block 201 is accessible to tester circuitry through lines 220. Self test block 201 is used to test operation of CRT controller 107 for manufacturing and other defects.