SELECTIVE COPYING APPARATUS

Abstract: Selective copying apparatus wherein selected portions of a source document are printed onto a paper at any position on the paper and wherein information is deleted or inserted by the user from an input keyboard (110). A manually-operated portable scanner (110) is used by the operator to scan a selected portion of the document by placing the scanner at the desired line position and moving the scanner across the document. The scanned image is converted (118) into digital data. A printer (114) responds to the digital data and prints the scanned image onto a paper at a line position which is also selected by the operator. Thus, the image selected by the operator on the source document is reproduced at a position on the paper which is also separately selected by the operator.

Description: DESCRIPTION "SELECTIVE COPYING APPARATUS" 1. Field of the Invention The invention relates to selective copying apparatus'. and more particularly to apparatus for manually scanning ; images, storing the images, and reproducing said images at selected positions of a recording device. 2. Description of the Prior Art Selective copying and editing of printed material is one of the most universally performed functions of indi¬ viduals who deal with information in books, documents, labels, forms, catalogs, printouts, and drawings. The useful content of the source material is but a small fraction of the total material available. For example, only a paragraph, footnote, single-line equation, or drawing may be all that is needed to be excerpted. At present, most selective copying is done either by hand or by copying a full page in a conventional copier and then cutting out the material required. This "cut-and-paste" operation is time consuming. Prior attempts have been made to provide portable selective copying apparatus so that it is not necessary to carry source material to a copy machine. In the prior apparatus, a hand-held reading probe is swept across the source material and the portion scanned is transferred to a visible hard-copy printout. An example of such a device is shown in U.S. Patent 3,052,755 which issued to E. Garfield on September 4, 1962. In this patent, a scanning instrument is hand-held and swept over the printed matter to be copied. A light source within the scanner reflects off the printed page. A light-conducting rod picks up the reflecting light and transmits it to a photoelectric cell. The voltage from the photoelectric cell is then transmitted over a cable to a printer. The printer is comprised of a stylus which rides on a strip of electrosensitive paper so that when a voltage is applied to the stylus a mark is made on the paper strip. Thus a printed mark on the page being copied produces a corresponding mark on the paper strip. The amplitude of the sweep of the light source inside the scanner is adjustable for various sized printed letters. A subsequent patent 3,064,078 which issued on November 13, 1962 to E. Garfield discloses a similar apparatus with a different reproducing print head. The reproducing instrument has a mirror which focuses a light beam on the print medium. Light-sensitive paper is used so that printing occurs in response to the light beam. The amplitude of the sweep of the reproducing mirror is adjustable to correspond to the amplitude of the sweep of the light source within the selective scanner. A parallel version of the above patent is described in patent 3,318,996 which issued to E. Garfield et al on May 9, 1967. This patent uses light-conducting fiber rods arranged in a ver-ical column over the printed matter. The transmitting ends of the rods are placed adjacent to photocells, one photocell for each rod. The parallel outputs of the photocells are transmitted to the printer which has a like number of stylii in parallel across a paper strip. Electrostatic paper is used for printing information on the strip corresponding to that scanned by the rods. Synchronization of the paper strip which is moved past the print elements is accomplished by a roller on the scanner which rotates as the scanner is swept across the page. Furthermore, a mask is provided to mask out the number of rods to thus adjust the amount of the document scanned to accommodate different height printed characters. In all of the above patents, printing is accom¬ plished on a paper strip which is able to print only one continuous line of matter which is scanned. It is still necessary for a user to cut and paste in order to edit the scanned material, even though the material is selec¬ tively scanned. Thus, if the user wants to arrange the scanned information at different places on a printed document, it must first be cut from the paper strip and arranged on the printed page. While these patents pro¬ vide means for selectively copying, they do not provide means for selectively reproducing the copied material OM anywhere on a printed page. A limited form of editing is provided in U.S. Patent 3,512,129 which issued to E. Garfield on May 12, 1970. In this apparatus, character recognition is pro¬ vided which is connected to the scanning device. A scanned character is recognized as a particular letter and is converted to machine-readable form, that is, to a standard computer code such as ASCII. A typewriter is connected to receive this code and to type out the information in printed form. This apparatus will only prepare a typewritten document and will only reproduce selected portions of typewritten documents of a type font which can be recognized by the character recognition circuits. For example, in order for the character recog¬ nition circuits to read a type font which is different from that produced by the typewriter itself, it is neces¬ sary to have character recognition circuits for each such type font to be recognized. With the large number of type fonts in use today, it is readily seen that an enormously complex character recognition unit is necessary in order to render this apparatus useful in a practical sense. SUMMARY OF THE INVENTION It is a primary object of this invention to provide a selective copying system wherein selected portions of a source document may be copied by a user onto any selected position of a copy paper and wherein new material may be added by the user from an input source. It is also an object of this invention to provide a selective copier wherein any font desired by the user can be entered into the control circuits so that a type font which is compatible with the type font of the material being selectively copied can be inserted by the operator onto the output copy. It is also an object of this invention to provide a selective copying apparatus having editing and format control wherein the sequence, the position on the page, fields to be scanned, the position of the reproduced image on the copy paper, and information entered by means of a keyboard are all under control of the operator. OLIPI The above objects are accomplished in accordance with the invention by providing a manually-operated portable scanner which is adapted to scan a selected portion of a source document by placing the scanner at a selected line position on the source document and moving the scanner across the material to be reproduced. The scanned image is converted into digital data. A repro¬ ducing element responsive to digital data is provided for copying the scanned image onto a recording device such as a copy paper or a video display screen. Controls are provided for selectively positioning the reproducing element at any vertical or horizontal point on the recording device to thus provide full flexibility in editing. In accordance with an aspect of the invention, a keyboard input is provided which selects type fonts under control of the operator. The type fonts are read from a storage device and are in a digital form which is com¬ patible with the reproducing element. The invention has the advantage that the sequence and position of the information copied on the displayed or printed page is fully controllable by the operator. Furthermore, information can be entered by a keyboard and reproduced at any position on the display screen or copy paper and in a type font which is easily changed to be compatible with the type font of the information in the source document. BRIEF DESCRIPTION OF THE DRAWINGS FIGURE 1 is an overall block diagram of a selective scanning and copying system comprising a first embodiment of the present invention; FIGURE 2 is a more detailed block diagram of the print head and control logic of FIGURE 1; FIGURE 3 is a more detailed block diagram of the camera logic block of FIGURE 1; and FIGURE 4 is a more detailed diagram of the keyboard and control module block of FIGURE 1. FIGURE 5 is an overall block diagram of a selective scanning and copying system comprising a second experiment OMP of the present invention; and, FIGURES 6-8 are a flow chart of microprogramming for the microprocessors shown in FIGURES 1 and 5. DESCRIPTION OF FIRST EMBODIMENT Referring now to FIGURE 1, an overall block schematic diagram of a selective scanning and copying system comprising a first embodiment of the invention is shown. Data transfer between different parts of the system is controlled by a low speed microprocessor 10 connected to a low speed data bus 12 and a high speed microprocessor 14 having a high speed data bus 16. The low speed microprocessor (an Intel 8080 or similar type microprocessor) controls all overall system operations with the exception of the high speed data operations which are controlled by a high speed micro¬ processor. The high speed microprocessor (comprised of an Intel 3000 family computing elements or similar type micro¬ processor) operates in the 200 nanosecond range and its function is to control high speed data transfer. It also performs limited arithmetic operations for bit manipu¬ lation and data formatting. (Products of Intel Corp. referred to in this specification are described in the Intel 1976 Data Catalog, published by Intel Corp. , 3065 Bowers Avenue, Santa Clara, CA 95051.) A small capacity Intel random-access memory (RAM) 18 is connected to the low speed bus 12. This RAM is used as a variable storage for microprograms and is used to store variable font information under control of the keyboard. An Intel read-only memory (ROMl) 20 stores the microprogram for the low speed microprocessor and also contains fixed font information for a standard character set. A keyboard and control module 22 contains a type¬ writer keyboard, switches, and tab sets to allow an operator to initiate operations, input data, and control system operation. Operation control lines 24 are provided to the low speed microprocessor and control lines 26 are provided from the low speed microprocessor to the control module 22. The low speed microprocessor provides a control bus 30 to control the communication control 32, the print head and control 34, the tape unit 36, the floppy disc 38, and the interprocessor link 40. These units have their data outputs connected to the high speed bus. Furthermore, the interprocessor link 40 has a connection to the low speed bus to provide for data transfers between the two buses under control of the microprocessors. Also connected to the high speed bus is a camera 42 which includes an analog-to-digital converter. The camera is a scanning device with a 256 or 512 element photosensor array with a digitizer, such as the type manufactured by Reticon Corp., Sunnyvale, CA 94086. One scan of data output occurs every .0025 inches of camera motion. A 4:1 data compression (i.e., a 2:1 compression in both the vertical and horizontal directions) is provided within the camera electronics to match printer resolution. Additional image processing is facilitated by the high density of object sampling. A RAM buffer 44 is also connected to the high speed bus. This buffer is used for storage of high speed data and is a refresh buffer for the cathode ray tube 46. A read-only memory (ROM2) 48 is provided to store the micro¬ program for the high speed microprocessor 14. The communication control 32 is a bidirectional input/output port for communication with external devices. For example, this communication control connects to a standard modem for connection over telephone lines to a computer. The tape unit 36 provides for the external storage of input/output information such as format information and overflow buffer information from the RAM buffer 44. The tape motion control is provided by the low speed microprocessor, whereas the data input/output is over the high speed bus and is controlled by the high speed processor. A further auxiliary storage is the floppy disc 38 (a Shugart SA900 or similar type floppy disc) which pro¬ vides faster access for the same type of information stored in the tape unit 36. It is controlled by the low speed microprocessor and data transfer is controlled by the high speed microprocessor. The interprocessor link 40 allows communication between the low speed micro¬ processor and the high speed microprocessor in order to synchronize the various operations. Print Head and Control. Referring now to FIGURE 2, the print head and con¬ trol 34 of FIGURE 1 is shown in more detail. A nonimpact print head 60 is provided which employs thermal printing. The print head contains a vertical column of 128 heating elements (tantalum nitride thin film resistor elements on an insulating substrate) on 5 mil centers. The thermal printing head prints characters and pictures on heat- sensitive paper, producing a mosaic of dots, each of which is heated to about 300°C by pulse-shaped signals. The size of each dot is about 3-4 mils in diameter. (An example of this type of print head is the thermal print head used in the Okifax 600, a facsimile device manufac¬ tured by Oki Electric Industry Company, Ltd. , Tokyo, Japan.) Serial print data 35 is supplied over the high speed bus under control of the high speed microprocessor and passes through a serial to parallel converter 58 which generates pulse-shaped signals 59 compatible with the printing elements of the print head 60. The thermal printer makes marks on the print paper in accordance with which of the input lines 59 are energized. Motion control commands from the low speed processor are supplied over line 49 to synchronization controls 50. The commands are translated into signals to control the X stepping control 50 which causes the print head to move in a horizontal direction, Y stepping control 54 which causes the print head to move in the vertical direction, and paper feed 56 which causes a new sheet of paper to be fed under the print head. As the print head 60 moves across the paper, a pattern of dots is produced based on the signals 59. Printing occurs with a resolution of 200 dots per inch in the X and Y directions. This produces high resolution graphics and a type¬ writer quality alphanumerics in response to character patterns supplied over the print data line 35. Thus the output can be alphanumeric, graphs, pictures, maps, sig¬ natures, and other image data. For example, conventional characters of 5x7 dots with one dot spacing between them can be generated, and since the print head is composed of a column of 128 heating elements it is possible to generate multiple rows of 5x7 alphanumerics at a time. Since each dot position is individually addressable, any combination of alpha¬ numerics and graphics is possible for the printed output. Camera. Referring now to FIGURE 3, the camera logic block 42 of FIGURE 1 will be described. A scanner 62 has 256 elemen 64 arranged in a vertical column. These elements are scanned in accordance with the scan height adjustment 66 to provide a serial output 68 to a digitizer 70 and a 4:1 compressor 72. The output is scan data which is supplied to the high speed data bus. As the scanner is moved across the image page, a strobe output is generated by the scanner movement sensor 74 every time the camera moves .0025 inches. The scanner is provided with control buttons 76, one of which when depressed by the operator activates scanner 62 and indicates that a read operation is taking place. Another button is provided for carriage return so that the operator can control print head movement directly from the scanner while it is hand held. Since a selective copying operation is manually performed, the scan increment can vary in size. In order to prevent an overrun in the RAM buffer 44, the camera 42 is equipped with an indicator light and an audible tone to indicate to the user that the scanning operation must be interrupted until the transfer out of RAM 44 (to the tape unit, printer, etc.) is complete. Hand-held scanners of the type just described are manufactured by Datacopy Corp., of Palo Alto, California. -BU Keyboard and Control Module. Referring now to FIGURE 4 , the keyboard and operation controls will be described. The keyboard 80 provides a standard typewriter keyboard which outputs data in digital form over the keyboard interface 82. The data is in the ; form of an ASCII code which is convertible in RAM storage 18 to provide any font output which has been previously stored for each key on the keyboard. The structure of a suitable keyboard and control- module is shown in detail in the description of an off-the- shelf keyboard encoder circuit supplied by National Semi¬ conductor under the part number MM5740 and described in the National Semiconductor 1976 data catalog published by National Semiconductor Corp. , 2900 Semiconductor Drive, Santa Clara, California. The keyboard encoder is a com¬ plete keyboard interface system capable of encoding 90 single-pole single-throw switch closures into a usable 9-bit code, and provides for a direct TTL/DTL compati¬ bility on data and strobe outputs without the use of any special interface components. The connections to the keyboard and the pin assign¬ ments are shown in the above-referenced data manual. For example, the data strobe output pin 13 required to indicate that valid data has been entered by the keyboard and is ready for acceptance and the TTL compatible clock signal applied to pin 3, are included in the control line 26 shown in FIGURE 1 between the low-speed microprocessor and the keyboard and control module. No interface circuitry is necessary since the MM5740 keyboard encoder is compatible with the Intel 8080 TTL logic. Furthermore, the keyboard and control module 22 requires no internal programming. The clock signal for timing required between the keyboard and control module and the other modules of the system is supplied over the control line 26 from the low-speed microprocessor 10. The control module operation controls 82 provide the following functions: Omnispace - a four-way rocker switch provides for U-REATJ " OMPI spacing either to the left or the right and to space up or down. For example, each left or right space is .1 inch and each up/down space is .125 inch. Carriage return - returns the print head to the left, margin which has been previously set by the margin set. Double activation of this key overrides the left margin and returns the print head to the extreme left edge. Line feed - advances the print head in an amount determined by the value of the scan height adjust¬ ment setting on the camera without altering the print paper location. As an alternative, the print paper is moved with respect to the print head by the same amount. Tab - this is a print head advance which moves the . print head in tabulated steps. This allows the head to move to various predetermined columns. Top of form - this switch advances the print paper with respect to the print head to set the beginning of a page. Light original - this lowers the video detection threshold to record a faint original image on the document being copied. This remains activated until the next carriage return operation. Expand - this function provides a two-to-one magnifi¬ cation of the original material. Strike - this function provides an overwritten pattern rendering the original print unreadable over a swath determined by the scan height adjustment setting. Camera to Printer Operation. As the camera is moved over a line of information to be scanned, the data is placed on the high-speed bus 16 by the scan data output 41. Additionally, every .0025 inches of camera movement causes a strobe output on line 43 which is connected to both microprocessors. The low-speed micro¬ processor in response to the strobe signal synchronizes the movement of the print head shown in FIGURE 2. print head is caused to move in a horizontal direction from a point determined by the margin and tab settings. The strobe line 43 to the high-speed microprocessor allows the high-speed microprocessor to control the transfer of the scanned data 41 to the RAM buffer 44. The RAM buffer also performs a smoothing operation to match the speed of the camera with the speed of the print head. Print data from the RAM buffer is transferred over the high-speed data bus to the print head and controls 34 over the print data line 35. As shown in FIGURE 2, the print data is supplied to a serial-to-parallel converter 58 which energizes outputs 59 to the print head 60. This causes the printer to print a column which corresponds to the information scanned on the source document. Keyboard to Printer Operation. Initially, a font pattern for each key of the key¬ board 22 is stored i the random-access memory 18. When a key on the keyboard is depressed, a coded representation of the key is transmitted over keyboard interface 82 to the random-access memory 18. The code is used to address RAM 18 and thus select one of the font patterns corresponding to the key depressed and this pattern is outputted to the low-speed bus 12. The font pattern is transferred over the interprocessor link 40 to the high-speed bus 16 and from the high-speed bus into the RAM buffer 44. The high-speed microprocessor then transfers the data from the RAM buffer 44 to the print head and control 34. A strobe signal indicating that the key has been struck is transferred over the operation control line 24 to the low-speed micro¬ processor 10. The low-speed microprocessor 10 then controls the motion of the print head 34 over the motion control line 30. The low-speed microprocessor synchronizes the entire operation by controlling the high-speed micro¬ processor over control line 11. Camera to Communication Control Operation. The scan data from the camera 42 passes over the scan data line 41 and onto the high-speed bus 16. The high-speed microprocessor compresses the data, and buffers enough data for a tape record into the RAM buffer 44. When a tape record has been accumulated, the data is loaded onto the tape unit 36. The high-speed microprocessor signals the low-speed microprocessor over control line 15 and the low-speed microprocessor establishes communication with the external device over the communication control 32. The tape record is then loaded back into the RAM buffer 44 and from the RAM buffer over the high-speed bus to the communication control where it is transmitted out over the commucation lines. Thus, the high-speed processor controls the overall data flow and compression whereas the low-speed microprocessor controls the establishing of communications and handles the slow-speed tape motion operations. Communication Control to Printer Operation. Information received from an external source passes through the communication control 32 and onto the high-spee data bus 16. From the high-speed bus, the data is buffered in the RAM buffer 44 under control of the high-speed processor. When a full tape record has been loaded onto the RAM buffer, the high-speed microprocessor transfers the data to the tape unit 36 for temporary storage. At the completion of communications, the tape records stored in the tape unit are loaded back into the RAM buffer, expanded if necessary, and transferred from the RAM buffer to the print head and control over the high-speed data bus 16 and the print data line 35. Thus, the high-speed micropro¬ cessor controls the data flow and data expansion operation and the slow-speed microprocessor controls the overall operation and tape motion control. Camera to Tape Unit Operation. Scan data information received from the camera 42 over the line 41 is passed via the high-speed bus 16 to the RAM buffer 44 under control of the high-speed microprocessor. The high-speed microprocessor signals the low-speed micro¬ processor 10 that information for tape storage is ready for transfer. The low-speed microprocessor 10 starts the tape unit and data stored in the RAM buffer 44 is transferred via the high-speed bus 16 to the tape unit 36. The high¬ speed processor 14 having sensed the distance traveled by the camera 42 via the camera control lines 43 indicates to LJRΪ OMPI the low-speed processor the length of the data information being transferred. Thus, the tape is moved with respect to the tape recording head by an increment which bears a prede¬ termined relationship to the scan increment of the camera: " As previously described, the camera 42 is equipped ; with an indicator light and audible tone to indicate to the user that scanning must be interrupted. This prevents an overrun in the RAM buffer 44 which could occur if the data has not yet been transferred to the tape unit. Low-Speed Microprocessor 10 The Intel 8080 microprocessor is fully described beginning at page 8-3 of the Intel 1976 data catalog. As stated on page 8-3 the system (referred to generically as the MCS-80 Microcomputer System) provides LSI blocks that interface with one another through a standard system bus. This bus corresponds to the low-speed bus 12 shown in FIGURE 1. The microprocessor chip has TTL drive capability which makes it fully compatible with the previously described National Semiconductor keyboard encoder circuit. The details of how the low-speed microprocessor is interconnected in the system shown in FIGURE 1 are given on page 8-6 of the Intel data manual, which includes pin defi¬ nitions. For example, the low-speed bus 12 connections correspond to pins D7-D0 for data and pins A15-A0 for address information. Data from the keyboard and control module enter the low-speed microprocessor over this data bus. This data bus provides bidirectional communication between the CPU, memory, and I/O devices for instructions and data transfers. The ROM 20 and RAM 18 shown in FIGURE 1 are provided by Intel for use with the 8080. High-Speed Microprocessor 14 The high-speed microprocessor 14 is an Intel 3000 series microcomputer system or the equivalent. Its function is to control high-speed data transfer. The high-speed microprocessor 14 is connected via the high-speed bus to all of the input/output devices, the communication control 32, the print head and control 34, the tape unit 36, the floppy disc 38, the camera 42, and the cathode ray tube display 46. SUR£A(7- The series 3000 family of computing elements is specificall designed by Intel for high performance applications such as high-speed controllers. The entire component family has been designed to interconnect directly, minimizing the need for ancillary circuitry. The 3000 series microcomputer system is TTL compatible and therefore is fully compatible with the low-speed micro¬ processor when the microprocessor is implemented with the Intel 8080 system. The interconnections for the 3002 central processing unit (CPE) are shown on page 9-14 of the Intel data catalog A functional block diagram showing the data buses is shown on page 9-15. The CPE provides a two-bit wide slice throug a microprogrammed central processor and that therefore for an N-bit wide bus, - N■ CPEs are wired together. For a stan¬ dard 8-bit wide bus, four 3002 CPEs are wired together. On page 9-15 of the Intel data catalog the M-bus and the I-bus inputs are described. The M inputs are arranged to bring data from an external main memory into the CPE. Therefore this is the bus that is used to bring data from the RAM buffer 44 into the CPE. The I-bus inputs are arranged to bring data from an external I/O system into the CPE. This permits a large number of I/O devices to be connected to the I-bus. The high-speed bus 16 is comprised of the memory data- in lines NO, Nl, etc., the data-out lines DO, Dl, etc., and the main memory-address lines A0, Al, etc., for addressing the RAM buffer 44. The I bus provides for an external- device input such as from the low-speed microprocessor over the line 11 corresponding to inputs 10, II, etc. These lines connect to the D0-D7 lines of the 8080 microprocessor These two microprocessors are designed to be compatible by Intel. For data flow in the other direction over line 15 in FIGURE 1 information flows from the M and D bus of the 3002 to the D0-D7 bus of the 8080. Information over the line 11 of FIGURE 1 is from the memory-address bus A15-A0 and the data bus D7-D0 of the 8080 to the I bus of the 3000. The 3000 series computer is specifically designed to handle high-speed data transfers such as from a high-speed disc or other high-speed real-time I/O devices such as from a high resolution scanning device camera 42. Interprocessor Link 40. The interprocessor link 40 allows communication between the low-speed microprocessor and the high-speed micropro¬ cessor in order to synchronize the various operations. The circuitry within this block is supplied by Intel under the part number 3212 multimode latch buffer described on page 9-26 of the above-identified Intel data catalog. A logic diagram is shown on page 9-28 of the Intel data catalog and the bus connections are shown for an 8-bit wide data bus. The control lines corresponding to control line 30 of FIGURE 1 are also shown and described by their function and the pin connections. Cathode Ray Tube 46. A suitable cathode ray tube display is described in the Intel data catalog on page 6-22. This device is TTL- compatible, and is connected to the Intel 3000 series computer by means of the data bus. Programming for the Low-Speed Microprocessor 10 and the High-Speed Microprocessor 14. Programming is not necessary in any of the devices shown in FIGURE 1 with the exception of the low-speed micro¬ processor 10 and the high-speed microprocessor 14. All the other blocks are either input/output devices, or memories and these devices are passive, unintelligent devices which require instruction and control from a main programmed computer. Intel provides a microcomputer development system for supporting product design from program development through prototype debug to production and field test. One such product has been provided for both the MCS-80 (the 8080 microprocessor) and the series 3000 microcomputer systems. The development system is called the MDS-800 Intellec MDS and is described beginning at page 10-3 of the Intel data catalog. In addition to providing all the necessary control and data transfer circuitry to interface with peripherals, such as CRT, line printer, and PROM programmer, the MDS system includes diagnostic capabilities for user- configured systems. It also includes debug functions such as tracing program flow, single stepping, and examining and altering CPU registers in memory locations. Intel contemplates the use of its 8080 microprocessor in conjunction with its 3000 series computer as an intelli¬ gent controller and the implementation of such a system is supported by the MDS-800 development system. The develop¬ ment of microprograms to perform the functions specified require no more than routine coding. The program described in the flow charts of FIGURE 6 through FIGURE 7 illustrates a suitable program which can be readily reduced to Intel 8080 microprocessor compatible user's code, by one having ordinary skill in the art. This program flow is described after the following description of a second embodiment of the invention. A source code listing is provided in APPENDIX II and APPENDIX III of U.S. Patent number entitled "Selective Copying Apparatus," to be issued to M. Maginness and A. Miller and to be made public on This code is in a language which is compatible with the Texas Instruments TM-990/100M microcom¬ puter described subsequently with respect to the second embodiment of the invention. One skilled in microprogrammi can utilize the code listing to produce a similar code listing compatible with the Intel microprocessor's describe with respect to FIGURE 1. DESCRIPTION OF SECOND EMBODIMENT Referring now to FIGURE 5, an overall block schematic diagram of a selective scanning and copying system com¬ prising a second embodiment of the invention is shown. Dat transfer between different parts of the system is controlle by a microprocessor 100 which is connected to a data bus, 102. The microprocessor is a TMS-9900, which is part of th TM-990/100M microcomputer system manufactured by Texas Instruments, Houston, Texas. Other parts of the system include RAM 104, a programmable ROM 106, and serial I/O controller 108. A keyboard and display, 110, which is com¬ patible with the microcomputer is Model L-1500, manufacture by Keytronic of Spokane, Washington. This keyboard provide the IBM-3277 interactional terminal with a visual display. Printhead and Control The printhead and control, 114, is shown in detail in FIGURE 2 and has been described previously with respect to that figure. The printhead and control, 114, is attached ' . to a serial I/O interface, 112, which provides the appro¬ priate signal levels to attach to the serial I/O controller of the microcomputer system. Camera Controls The camera, 116, has been described previously with respect to FIGURE 3. A push-to-read switch is located on the camera and is depressed to prepare the camera for scanning images. Scanning is effected by moving the camera from left to right in a continuous motion. If the camera movement is stopped, -or text wider than 4.25 inches is scanned, the microprocessor begins a data reduction cycle and displays or prints the processed image. The.camera, 116, is connected to a camera interface and processor, 118, which provides appropriate interfacing to a video bus, 120. The output from the camera signal processor is a serial 512-bit data stream, representing one line scan. The camera interface, 118, collects four scans and then writes this data into a camera buffer memory, 122, which is also connected to the video bus, 120. The data is written into the buffer memory in 4x4 bit cells, using 128 write cycles and are temporarily stored in first- in, first-out registers. Video Subsystem The video subsystem is comprised of video raster logic, 126, which interfaces a cathode ray tube (CRT) monitor, 128, with the video bus, 120. Also included is a video-interface- to-microprocessor logic, 130, which matches the signal levels to the TMS-9900 microprocessor-interface-to-video logic, 132. These interfaces are specified by the manufacturers of the apparatus. A suitable video subsystem for use with the TMS-9900 microprocessor is the Model 3408 high-resolution graphics terminal manufactured by Data Copy Corporation of Palo Alto, California. The Model 3408 comprises four sub¬ systems including a CRT monitor, display generator, TI-9900 microprocessor, and power supply, and is specifically -^UREA O H designed to operate in a system as contemplated by appli¬ cant's FIGURE 5. The image information is stored in a random-access memory, which is part of the display generator, in order to allow for continuous display refresh. Microprocessor Subsystem and Microprogramming As referenced previously, the microprocessor is a Texas Instruments TMS-9900 contained on a TM-990/100M microcomputer board. Also included on the board is a PROM, 106, containing 32K bytes of microcode; 512 bytes of random-access memory, RAM, storage, 104, two programmable integral timers, and a serial interface 108, 112. The programmed microprocessor performs several func¬ tions in the system including: 1. Clearing the CRT screen. 2. Setting tabs and margins. 3. Generating displayed characters from keyboard inpu 4. Providing a cursor. 5. Processing of camera data to generate actual-size images. The microprocessor programming accomplishes this 16:1 reduction in data using a simple averaging algorithm. Video Bus to TMS-9900 Bus Interface The interface between the video bus, 120, and the TMS-9900 bus, 102, is comprised of two logic blocks, 130 and 132. The microprocessor 100 is the controlling element with the video bus appearing as an I/O port. Sixteen bidirectional address and data lines and seven control lines pass between the two interfaces as specified by the above-mentioned Texas Instruments manufacturer. The microprocessor accesses a 4x4 bit picture element by first sending the row, column, and bank of the designate square. Once row, column, and bank have been established, the microprocessor can either read the data or write new data into the picture element, and the CRT monitor will instantly show any changes in data. Camera-to-Video Operation The details of the camera operation have been describe previously with respect to FIGURE 3. The line-scanning operation of the 512 element linear array within the camera ΪJR OM 116, is controlled by camera interface logic, 118. The output from the camera interface logic, 118, is a serial 512-bit data stream representing one line scan. The camera interface, 118, collects four scans and then writes them into the camera buffer memory, 122, in 4x4 bit cells using 128 write cycles. The camera interface, 118, also generates the addresses required to write the data into the buffer memory, 122. Once the data is stored in the camera buffer memory, 122, it is available for display on the CRT monitor, 128. The video raster logic, 126, con¬ tains a timing circuit which is the source for all the timing signals used by the camera buffer memory, 122, and the CRT, 128. During a memory access by the video raster logic, 126, the camera buffer memory, 122, is read with the resulting data being put into shift registers within the logic, 126. These registers hold image data and cursor information. The data-bit streams are converted to appro¬ priate voltage levels and buffered to drive the video inputs of the CRT monitor, 128. The video raster logic, 126, also generates the synchronization pulses needed by the CRT, 128. Microprogramming Referring now to FIGURE 6-8, the microprogramming for the preferred embodiment shown in FIGURE 1 and for the embodiment shown in FIGURE 5 will be described. The pro¬ gramming performs the functions of scanning an arbitrary area on a source document, printing that area anywhere specified on a print paper or video display, and receiving data from a keyboard and outputting the data to a print head or display. The programming also provides for moving the data in X-Y directions on the output device (the printer or video display) including the functions of setting tabs, margins, and selectively changing them. Also included is the function of changing the scan height of the scanner. The embodiment of FIGURE 1 is preferred because it employs a high-speed microprocessor, 14, used as a high¬ speed input/output controller to obtain higher performance with respect to the camera-to-print-head operations. The embodiment of FIGURE 5 is functionally identical to the ^U^EA(T configuration of FIGURE 1 with the exception that the high¬ speed microprocessor controller is not utilized. Therefore the interprocessor link, 40, shown in FIGURE 1 is essential a short circuit connecting both the high-speed bus and the low-speed bus together. This enables the input/output devices to operate over a single bus, but at a lower speed than would be possible were a high-speed microprocessor control utilized. The net result is a camera-scanning operation which is slower than would be possible with the configuration of FIGURE 1. Only the camera and camera buffer memory, 122, run together at high speed on a direct- memory access basis, the data being transferred to the prin head and control by means of the video interface to micro¬ processor data path. Referring to FIGURES 6, 7, and 8, an overview of the microprogram data flow will now be described. The flow starts on FIGURE 6 with the program examining various inputs in the system. If the camera press-to-read button, decision block 150, is activiated the flow proceeds to block 152, which initializes the camera buffer memory, 122, to its beginning and the RAM 104 to the beginning of the print buffer area set aside therein. The flow controls to block 154, which enables the system for camera tachometer controlled data transfer. The flow continues to block 156, which enables the system for printing as data is received from the camera buffer memory, 122. At decision block 158 the omnispace controls (to be described with respect to FIGURE 7) are suppressed. At block 160 the keyboard input is suppressed so that the ASCII characters are inhibited. The program flow now proceeds to block 162 and enters an idle loop. In this loop data are transferred from the camera, is converted from serial data to parallel, and the printer prints a column which corresponds to the informatio scanned on the source document. The flow continues to block 164, in which up to three remaining swathes for the camera scan are printed. The camera buffer is then cleared at block 166 and the flow returns to the initialize step, 168, to initialize to the beginning of the input buffer and the beginning of the print buffer. OMP While not shown in this flow chart, the microcode can perform a similar operation to display the scanned data on the CRT. Referring again to FIGURE 6, assume that there is an *' ASCII input from the keyboard and that therefore the ; decision out of block 170 is yes. In this event the pro¬ gram controls the reading of a character from the keyboard at block 172. The read-only memory (20 of FIGURE 1, or 106 of FIGURE 5) converts the ASCII characters to a dot matrix format in block 174. In block 176, a column of the dot matrix is outputted to the print head. In block 178 the column is printed, and in block 180 the programming advances to the next print column and the print head is moved accordingly. At block 182 the loop is repeated until the last print column is printed in which event the program returns to the starting point. A similar operation takes place in the microcode with respect to displaying the information on the CRT monitor. Referring to FIGURE 7, the program flow for the omni- space control will be described. The omnispace control is a four-way rocker switch, or pushbutton switches, which provide for spacing either to the left or to the right, and to space up or down, in order to control independent move¬ ment of the print head. A similar operation is performed with respect to the CRT by means of a cursor, which is a movable spot of light that indicates where the next charac¬ ter will be entered. If the omnispace is activated, the decision out of block 184 leads to block 186 which suppresses the press-to-read key. Five possible functions, go home, go left, go right, go up, and go down are repre¬ sented by the five different flow paths of FIGURE 7. If the omnispace key indicates go home at block 188 and the print head is not at the home position, block 190, the program performs a go home subroutine, block 192. If the omnispace key indicates go left at decision block 194 and the print head is not at the left margin, block 196, then the program performs a subroutine which moves the print head one-tenth of an inch to the left, if space is avail¬ able, block 198. A similar flow occurs if the omnispace button indicates go right at block 200. If the print head is not at the right margin, block 202, then the program enters a subroutine, block 204, to move the print head to the right. If the omnispace key indicates go up, as represented, by decision block 206, and if the print head is not already at the top margin, block 208, then the program enters a subroutine, block 210, to move the print head .125 inches up if space is available. A similar flow occurs if the omnispace button indicate go down, block 212. If the print head is not already at th bottom margin, block 214, the microprogramming enters a sub routine to move the print head down, block 216. Referring now to FIGURE 8, the microprogram flow for interpreting the scan height will be described. The first decision block, 218, determines whether either one of the scan height keys is depressed. If the increase scan height key is depressed, the logic flow is from block 220 to block 222. If the scan height is not at its maximum, the flow proceeds from block 222 to 224, in which case the micropro¬ gramming increments the scan height at the printer or at the video display. If the decrease scan height key is depressed, the flow proceeds from block 226 to block 228. If the scan height is not at its minimum height, the output from block 228 proceeds to block 230 in which case the program decrements the scan height. The flow proceeds to block 232 wherein the program displays the scan height at the keyboard output. A complete microcode listing, which will run on a TM-9900 microprocessor is shown in APPENDIX II of the above-identified Maginness and Miller to-be-issued patent. What follows is a brief description of each subroutine used in that microprogram. POWAON: This is entered at power-on and sets up the scan height increment, the standard bank to be displayed, and the standard cursor blink time. Of these, only the displayed bank may be varied by the operator subsequently. The program then flows to TBMRGNRELES. TBMRGNRELES: This can also be reached by depressing a ■ RΪ keyboard key which will effectively reset to power-on conditions everything except the currently displayed bank. The margins and tabs are all released, and the extreme hardware margins are implemented. Video is initialized here for white-on-black display of input characters (camera images are always black-on-white) . Control now drops through to CLEARTN. CLEARTN: May also be reached by depressing a key on the keyboard. Depending on the status of the reverse video setting, the currently displayed memory bank only is either cleared or set, i.e., darkened or lit. Control then flows to HOME. HOME: May also be reached by depressing a key on the keyboard. The subroutine to allow subsequent camera motion detection is called on the keyboard. The cursor position is initialized to the upper-left corner of the screen and control drops through to CARETN. CARETN: May also be reached by keying the carriage return key on the keyboard. The cursor horizontal position is arbitrarily set to the left software margin value. As this carriage return always includes a line feed, control now flows to LINEFEED. Do not confuse this routine with that of camera carriage return. LINEFEED: May also be reached by keying the index button on the keyboard. The cursor vertical position is decremented by one line (160 mils) . If this would be below the bottom of the screen, the cursor is reset to the home position. The cursor vertical position is displayed on the numeric display by calling subroutine CNVTM. Control drops through to SAVECURSE. SAVECURSE: This point is also reached after completion of any processing for camera input or on completion of any keyboard input. The data at the cursor location (16 spots down and 16 spots to the right) is saved and its complement is saved. The cursor blink time routine is initialized, and control drops through to NOACTION. NOACTION. This routine continuously tests for keyboard input alternated by tests for camera input. If either occurs, the first action will be to ensure the cursor is - B UREAI OMPI replaced by the original data. While neither occurs, a counter counts down the blink time and at time-out calls BLINKURSR to swap the data at the cursor location with its complement. If no camera or keyboard input occurs, this loop will continue indefinitely. If keyboard input occurs, control transfers to ISCHAR. If camera input occurs, control transfers to CAMERIN. ISCHAR: immediately calls CURSREST to ensure the original data is restored before any modifications are made The character is then input from the keyboard and tested to see if it is one of the control characters, if so, control transfers to the appropriate routine. If not a control character and if space exists to generate a character in, then subroutine PCHAR is called to generate the character. Following this, if insufficient space exists for another character to the right of the most recent one, then a car¬ riage return and linefeed are generated automatically. Otherwise control is transferred to SAVECURS (defined earlier) . PCHAR: is a subroutine to generate a character. At the current cursor position all characters are 9 bits wide and 16 bits high. Because the 4x4 bit cell array is not a submultiple of nine, the bits have to be shifted appropri¬ ately depending on the bit address of the cursor currently. CAMERIN: is reached only from NOACTION (this is not a subroutine) and initially uses CURSREST to ensure the curso is removed and the original data restored. First this section determines the length of the scan. If the camera interface fails to transfer data for more than one msec since the previous transfer, the routine times out and begins to shrink the data by 4:1 linearly (16 to 1 by area) . This is performed columnwise, top to bottom (to the assigned scan height) , in groups of 16 cells of 4x4 bits. Each 4x4 cell in the original camera data determines one bit in the resultant display of the scanned area. This is achieved by counting the number of nonzero bits in the original cell and if this count is greater than the threshold, a one is placed in the result, else a zero. For typewritten material this threshold should be -BURE OMP biased to save ones, but for 50% black images (e.g., pic¬ tures) probably 50% of the cell size (i.e., 8) would be better. BANKSET: A second character is input and its low three bits are used to set the bank to be displayed. SCNDW : decreases the current scan height setting by one increment, i.e., 16 counts. The routine allows a mini¬ mum height of one cell (i.e. , 4 bits) . The CNVTM subroutine is called to display the current scan height. SCNUP: increases the current scan height setting by one increment (i.e, 16 counts), but the maximum of 128 cells (512 counts) cannot be exceeded. This shares code with SCNDN. RELLFT: will assign a software left margin unless present cursor location is equal to the left margin pre¬ viously set, in which case the left margin will reset to zero. RELRIT: Same as RELLFT, but for the right software margin. RETCAM: Code for the camera carriage return function which is equivalent to a normal carriage return but with a linefeed equal in height to the current scan height setting. CLEAR: Code to set all of the currently displayed bank to all zeros or all ones depending on the current reverse video mode. STCAMDET: Subroutine to set a horizontal line containing the recognition code so that subsequent data stored by the camera interface will alter this data and allow detection of depression of the press-to-read button and subsequent camera movement. TABIT: Code to determine the location to tab to from the unordered table of all assigned tabstops. SETAB Code to find if a current tab already has the same value as the cursor and if so to delete it. If none is equal, and no more room in table, to ignore it, other¬ wise to add the current cursor location to the tab table to define a tab stop for the future. BLINKURSR: Subroutine to swap the contents of the 16 4x4 cells at the current cursor location with their alter¬ nate (complemented) values, hence blinking the cursor. While the invention has been particularly shown and described with reference to preferred embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention. O

Claims: CLAIMS CLAIM 1. A selective-image recorder comprising: a scanner including means for serially scanning a portion of said image, whereby a series of electrical signals are produced corresponding in intensity to the portion of the image scanned; means responsive to said scanner for digitizing said series of electrical signals to thereby produce a series of first-digital, signals; means for sensing movement of said scanner, said movement being by a scan increment which places said scanning means at a different location on said image; a recording medium; a recording head comprising recording means for recording digital data on said recording medium; means responsive to said first digital signals for applying second-digital signals corresponding to said first-digital signals to said recording head to thereby record data on said recording medium in response to said second signals; and motion-control means for imparting relative motion between said recording medium and said recording head, said movement being by an increment which bears a prede¬ termined relationship to said scan increment; whereby variable length selectively-scanned material may be recorded on said recording medium . CLAIM 2. The combination in accordance with Claim 1 wherein said recording head is a thermal print head and said recording medium is heat-sensitive paper. CLAIM 3. The combination in accordance with Claim 1 wherein said recording head is a magnetic tape head and said recording medium is magnetic recording tape. CLAIM 4. The combination in accordance with Claim 1 further comprising: a buffer for storing said first-digital signals; and, means for modifying digital signals stored in said buffer. CLAIM 5. The combination in accordance with Claim 1 wherein said scanner further includes indicator means for indicating at said scanner that said data buffer is unable to store data, whereby overrun of said buffer is prevented by said user deactivating said serial scanning means. CLAIM 6. The combination in accordance with Claim 4*1- wherein said recording head is a print head, said recording medium is a print medium, and said means for modifying includes a microprocessor whereby said print head is con¬ trolled by said keyboard so that information in addition to said scanned image is printed on said print medium. CLAIM 7. The combination in accordance with Claim 2 further comprising: means for imparting relative motion between said print head and said heat-sensitive paper in such a direction and by such an amount as to effectuate line indexing of the printed image on said paper. CLAIM 8. The combination in accordance with Claim 4 wherein said means for modifying includes a microprocessor and keyboard input means to said microprocessor whereby said motion control means is controlled by said keyboard so that information in addition to said scanned image is recorded on said recording medium. CLAIM 9. The combination in accordance with Claim 1 wherein said recording medium is the screen of a cathode ray tube and said recording means is an electron beam. CLAIM 10. The combination in accordance with Claim 8 wherein said recording medium is the screen of a cathode ray tube and said recording means is an electron beam. CLAIM 11. In a selective copying system wherein selected portions of a source document image are copied by a user onto a copy paper, the improvement comprising: a manually-operated, portable scanner adapted to scan a selected portion of said document by a user placing said scanner at any selected line position on said source docu¬ ment, said scanner adapted to be used to scan said document in a user-selected sequence; printing means including a print head responsive to said scanner for copying said scanned image onto said copy paper; and means for positioning said print head anywhere on said OM copy paper in a user-selected sequence; whereby the portion of the image selected by said user on said source document is reproducible at any position on said copy paper, said position being separately selected by said user. > CLAIM 12. The combination in accordance with Claim 11 wherein said scanner further comprises: first means for converting signals corresponding to a scanned image into digital first-print data; and wherein said printing control means further comprises: second means for inputting additional digital second- print data; means responsive to said first-and-second means for transmitting said first- and second-print data to said print head; and means at said print head responsive to said print data for printing said scanned image and said additional print data onto said copy paper. CLAIM 13. The combination in accordance with Claim 11 wherein said scanner includes variable field selection means for changing the amount of the source document scanned and said printing means includes means for advancing the reproduced image by an amount determined by the setting of said variable field selection means. -fϋ EAtT OMPI

Inventors: MAGINNES M, MILLER A
Applicants: DATACOPY CORP
Application year: 1980
Main classification: H04N1
IPC codes: H04N1