← Back to Patent Explorer
US4701848A Expired / Lapsed US ⏱️ 0.0 years remaining

System for effectively paralleling computer terminal devices

Assignee: AR CLYDE & Co
•
Filing: 1984-11-19
•
Granted: 1987-10-20
•
Expires: 2004-11-19
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract In a digital computing system such as the Digital Equipment Corporation's VAX computer system which uses the VMS operating system in which terminal devices are connected to the system through terminal dependent device drivers coupled to terminal independent device drivers so that the operating system of the computer system need not be modified each time a terminal device is added or subtracted, a system and method is provided for effectively paralleling an auxiliary terminal with a selected terminal of the system so that the selected terminal can be monitored for instruction, security, audit, or other purposes, by creating a user controlling driver and a user controlling device coupled thereto, and coupling the user controlling driver and user controlling device combination between the terminal independent device driver and the terminal dependent device driver associated with the terminal device to be paralleled so that the output of the terminal independent device driver intended for the terminal dependent device driver passes through the user controlling driver and user controlling device before arriving at the terminal dependent device driver and the output of the terminal dependent device driver intended for the terminal independent device driver passes through the user controlling driver and user controlling device before arriving at the terminal independent device driver and making the information passing through the user controlling driver available to the auxiliary terminal device.

Inventors

  • 👤 Robert A. Clyde

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-25 02:46
CPC Classifications
G; G06; G06F; G06F3/00; G06F3/14; G06F3/1454; G06F13/00; G06F13/10; G06F13/102

Claims Analysis

Total Claims: 54
Claim 1
Independent Claim 179 words
A method of controlling the movement of data between a first driver program and a second driver program, the first and second driver programs included in an operating system for a digital computing system, the method comprising the steps of: generating a third driver program; identifying an original set of vectors used by the first and second driver programs to establish a communication link between each other; generating a new set of vectors to establish communication links between (a) the first driver program and the third driver program and (b) the second device driver program and the third driver program; inserting the new set of vectors in the locations of the original set of vectors; and communicating data between the first and third device driver programs and between the second and third driver programs by way of the communication links established by the insertion of the new set of vectors such that all data passing between the first and second driver programs flows through the third driver program, the flow of data being controlled by the third driver program.
Claim 2
Independent Claim 179 words
A method of controlling the movement of data between a first driver program and a second driver program, the first and second driver programs included in an operating system for a digital computing system, the method comprising the steps of: generating a third driver program; identifying an original set of vectors used by the first and second driver programs to establish a communication link between each other; generating a new set of vectors to establish communication links between (a) the first driver program and the third driver program and (b) the second device driver program and the third driver program; inserting the new set of vectors in the locations of the original set of vectors; and communicating data between the first and third device driver programs and between the second and third driver programs by way of the communication links established by the insertion of the new set of vectors such that all data passing between the first and second driver programs flows through the third driver program, the flow of data being controlled by the third driver program.
Claim 3
Dependent Claim 58 words
A method as defined in claim 1 wherein the digital computing system further comprises an auxiliary terminal device and wherein the method further comprises the step of connecting the auxiliary terminal device to the digital computing system so as to monitor all data input to and output from the selected terminal device associated with the second driver program.
Claim 4
Dependent Claim 55 words
A method as defined in claim 1 wherein the digital computing system further comprises an auxiliary terminal device and wherein the method further comprises the step of connecting the auxiliary terminal device to the digital computing system so as to monitor all data input to the selected terminal device associated with the second driver program.
Claim 5
Dependent Claim 55 words
A method as defined in claim 1 wherein the digital computing system further comprises an auxiliary terminal device and wherein the method further comprises the step of connecting the auxiliary terminal device to the digital computing system so as to monitor all data output from the selected terminal device associated with the second driver program.
Claim 6
Dependent Claim 44 words
A method as defined in claim 1 wherein the digital computing system further comprises an auxiliary terminal device and wherein the method further comprises the step of forcing input to the first driver program and to the second driver program from the auxiliary terminal.
Claim 7
Dependent Claim 32 words
A method as defined in claim 1 wherein the step of generating a third driver program comprises the step of generating a third driver program which operates independently of the operating system.
Claim 8
Dependent Claim 41 words
A method as defined in claim 1 wherein the step of generating a third driver program comprises the step of providing an executable code listing which emulates the first driver program when conducting input and output with the second driver program.
Claim 9
Dependent Claim 41 words
A method as defined in claim 1 wherein the step of generating a third driver program comprises the step of providing an executable code listing which emulates the second driver program when conducting input and output with the first driver program.
Claim 10
Dependent Claim 34 words
A method as defined in claim 1 wherein the digital computing system further includes a memory and wherein the method further comprises the step of storing the original set of vectors in the memory.
Claim 11
Dependent Claim 62 words
A method as defined in claim 1 wherein the digital computing system further comprises an auxiliary terminal device, a plurality of second driver programs, and a plurality of terminal devices, each second driver program associated with one terminal device, the method further comprising the step of effectively paralleling an auxiliary terminal device with any one of the plurality of second driver programs.
Claim 12
Dependent Claim 106 words
A method as defined in claim 1 wherein the digital computing system comprises a plurality of terminal devices and a memory and wherein the method further comprises the steps of: providing a first location in the memory for storing input to the third driver program; providing a second location in the memory for storing output from the third driver program; providing pointers indicating the next available byte in the first and second locations; providing a pointer to a third location in the memory associated with a selected terminal device; and providing a flow control flag for controlling the flow of data through the third driver program.
Claim 13
Dependent Claim 37 words
A method as defined in claim 1 wherein the digital computing system comprises a buffer located in memory and wherein the method further comprises the step of storing input to the third driver program in the buffer.
Claim 14
Dependent Claim 43 words
A method as defined in claim 1 wherein the digital computing system comprises a CPU and wherein the step of inserting the new set of vectors comprises the step of causing the execution of the CPU to jump to the third driver program.
Claim 15
Dependent Claim 53 words
A method as defined in claim 1 wherein the digital computing system comprises an auxiliary terminal device and wherein the method further comprises the step of providing a user program for (a) accessing the data flowing through the third driver program and for (b) making the data available to an auxiliary terminal device.
Claim 16
Dependent Claim 38 words
A method as defined in claim 14 wherein the user program comprises the steps of: directing the third driver program to place a data word in the buffer; and outputting the data word to the auxiliary terminal device.
Claim 17
Dependent Claim 76 words
A method as defined in claim 15 wherein the user program further comprises the steps of: monitoring the buffer; halting the input to the buffer from the second driver program when the buffer is nearly full; directing a routine which is called from the user program to read the data in the buffer; and resuming the input to the buffer from the second driver program after the user program has read the data in the buffer.
Claim 18
Dependent Claim 53 words
A method as defined in claim 14 wherein the user program comprises the steps of: accepting input from the auxiliary terminal device; placing the input in an allocated portion of the memory associated with the third driver program; and forcing the input to both the first driver program and the second driver program.
Claim 19
Dependent Claim 33 words
A method as defined in claim 1 wherein the digital computing system comprises a memory and wherein the method further comprises the step of saving the original set of vectors in the memory.
Claim 20
Dependent Claim 71 words
A method as defined in claim 18 further comprising the steps of: breaking the communication link between the first, second, and third driver programs, such that no data flows through the third driver program; removing the new set of vectors from the locations of the original set of vectors; replacing the original set of vectors in their original locations; and reestablishing the communication link between the first and second driver programs.
Claim 21
Dependent Claim 52 words
A method as defined in claim 1 wherein the digital computing system comprises a selected terminal and wherein the step of inserting the new set of vectors comprises the steps of: disabling interrupts from a selected terminal device; inserting the new set of vectors; and enabling interrupts from the selected terminal device.
Claim 22
Dependent Claim 57 words
A method as defined in claim 1 wherein the digital computing system comprises an addressable memory and wherein the step of inserting the new set of vectors comprises the step of moving an address associated with a third driver program communication routine into the locations in an allocated portion of memory associated with the second driver program.
Claim 23
Dependent Claim 19 words
A method as defined in claim 21 wherein the allocated portion of memory structure comprises a unit control block.
Claim 24
Dependent Claim 80 words
A method as defined in claim 1 wherein the first driver program comprises a terminal independent device driver and the second device driver program comprises a terminal dependent device driver and wherein the step of inserting the new set of vectors comprises the step of moving an address location of at least one communication routine associated with the third driver program into the locations for a vector associated with the terminal independent device driver and the terminal dependent device driver.
Claim 25
Independent Claim 219 words
A method of programming a digital computing system so as to connect an auxiliary terminal device in parallel with a selected terminal device, wherein the digital computing system includes a CPU, a memory for storing executable instructions and data, the selected terminal device, an auxiliary terminal device, and an operating system for controlling the flow of data between the CPU and the selected terminal device, and wherein the operating system includes a first device driver associated with the CPU, a second device driver associated with the selected terminal device, and a data communication pathway connecting the first and second device drivers, the method comprising the steps of: generating a driver program adapted for communicating with both the first and second device drivers; allocating a portion of the memory for receiving and storing data passed between the CPU and the selected terminal device; breaking the communication pathway and inserting in the pathway the driver program; reestablishing the communication pathway between the first and second device drivers such that all data flows through the driver program without any apparent interruption at the CPU or at the selected terminal device; and placing the data passed between the CPU and the selected terminal device in a location in the allocated portion of memory whereby the data is accessible by the auxiliary terminal device.
Claim 26
Independent Claim 219 words
A method of programming a digital computing system so as to connect an auxiliary terminal device in parallel with a selected terminal device, wherein the digital computing system includes a CPU, a memory for storing executable instructions and data, the selected terminal device, an auxiliary terminal device, and an operating system for controlling the flow of data between the CPU and the selected terminal device, and wherein the operating system includes a first device driver associated with the CPU, a second device driver associated with the selected terminal device, and a data communication pathway connecting the first and second device drivers, the method comprising the steps of: generating a driver program adapted for communicating with both the first and second device drivers; allocating a portion of the memory for receiving and storing data passed between the CPU and the selected terminal device; breaking the communication pathway and inserting in the pathway the driver program; reestablishing the communication pathway between the first and second device drivers such that all data flows through the driver program without any apparent interruption at the CPU or at the selected terminal device; and placing the data passed between the CPU and the selected terminal device in a location in the allocated portion of memory whereby the data is accessible by the auxiliary terminal device.
Claim 27
Dependent Claim 37 words
A method as defined in claim 24 further comprising the step of connecting the auxiliary terminal device to the digital computing system so as to monitor all data input to and output from the selected terminal device.
Claim 28
Dependent Claim 34 words
A method as defined in claim 24 further comprising the step of connecting the auxiliary terminal device to the digital computing system so as to monitor all data input to the selected terminal device.
Claim 29
Dependent Claim 34 words
A method as defined in claim 24 further comprising the step of connecting the auxiliary terminal device to the digital computing system so as to monitor all data output from the selected terminal device.
Claim 30
Dependent Claim 29 words
A method as defined in claim 24 further comprising the step of forcing input to the first device driver and the second device driver from the auxiliary terminal device.
Claim 31
Dependent Claim 31 words
A method as defined in claim 24 wherein the step of generating a driver program comprises the step of generating a driver program which is executed independently of the operating system.
Claim 32
Dependent Claim 37 words
A method as defined in claim 24 wherein the step of allocating a portion of memory comprising the step of allocating sufficient space in the memory to store a plurality of vectors associated with the driver program.
Claim 33
Dependent Claim 61 words
A method as defined in claim 24 wherein the digital computing system comprises a plurality of second device drivers, and a plurality of selectable terminal devices, each second device driver associated with a selectable terminal device, and wherein the method further comprises the step of selectively connecting in parallel one auxiliary terminal device with any one of the selectable terminal devices.
Claim 34
Dependent Claim 51 words
A method as defined in claim 24 wherein the step of allocating a portion of the memory comprises the step of allocating space in the memory for containing pointers to vectors used to maintain the communication pathway between the driver program and the first device driver and the second device driver.
Claim 35
Dependent Claim 39 words
A method as defined in claim 24 wherein the step of breaking the communication pathway and inserting in the pathway the driver program comprises the step of causing the execution of the CPU to jump to the driver program.
Claim 36
Dependent Claim 67 words
A method as defined in claim 24 wherein the method further comprises the step of providing a user program and wherein the user program comprises the steps of: reading a data word received from the first device driver or the second device and stored in the allocated portion of memory; placing the data word in a buffer; and outputting the data word to the auxiliary terminal device.
Claim 37
Dependent Claim 79 words
A method as defined in claim 34 wherein the driver program further comprises the steps of: monitoring the buffer; halting the input to the buffer from the selected terminal device when the buffer is nearly full; directing a routine which is called from the user program to read the data in the buffer; and resuming the input to the buffer from the selected terminal device and the CPU after the user program has read the data in the buffer.
Claim 38
Dependent Claim 64 words
A method as defined in claim 24 wherein the method further comprises the step of providing a user program and wherein the user program comprises the steps of: accepting input from the auxiliary terminal device; placing the input in the allocated portion of memory; and directing the driver program to force the input to both the first device driver and the second device driver.
Claim 39
Dependent Claim 54 words
A method as defined in claim 24 further comprising the steps of: breaking the communication pathway such that no data flows from the first device driver and the second device driver; removing the driver program from the communication pathway; and reestablishing the communication link between the first device driver and the second device driver.
Claim 40
Dependent Claim 79 words
A method as defined in claim 24 wherein the communication pathway is maintained by an original set of vectors and wherein the step of breaking the communication pathway and inserting a driver in the pathway comprises the steps of: disabling interrupts from the selected terminal device; overwriting the original vectors which establish the communication pathway between the first and second device drivers with new vectors which point to the driver program; and enabling interrupts from the selected terminal device.
Claim 41
Dependent Claim 38 words
A method as defined in claim 38 wherein the step of overwriting the original vectors comprises the step of moving the addresses of the communication routines associated with the driver program into the locations of the original vectors.
Claim 42
Dependent Claim 69 words
A method as defined in claim 39 wherein the first device driver comprises a terminal independent device driver and the second device driver comprises a terminal dependent device driver and wherein the step of moving the addresses of the communication routines comprises the step of moving the locations of the communication routines into the vector locations associated with the terminal independent device driver and the terminal dependent device driver.
Claim 43
Independent Claim 280 words
A method of programming a digital computing system including at least one terminal device, an auxiliary terminal device, an operating system having a terminal independent device driver program and at least one terminal dependent device driver program associated with each terminal device, the terminal independent device driver program and the terminal dependent device driver program having a communication link established between each other by way of an original set of vectors, the method comprising the steps of: generating a user driver program structured to (a) emulate the terminal dependent device driver program when communicating with the terminal independent device driver program and to (b) emulate the terminal independent device driver program when communicating with the terminal dependent device driver program; allocating a portion of memory to store the original set of vectors and to store data passing between the terminal independent device driver program and the terminal dependent device driver programs; generating a new set of vectors to establish a communication link between (a) the terminal independent device driver program and the user driver program and (b) the terminal dependent device driver program and the user driver program; establishing a communication link between the user driver program and the terminal independent device driver program and the terminal dependent device driver program by moving the new set of vectors into the location of the original set of vectors such that all data passing between the terminal independent device driver and the terminal dependent device driver flows through, and the flow may be controlled by, the user driver program; and moving the data passing through the user driver program to a location where it may be monitored by an auxiliary terminal device.
Claim 44
Independent Claim 280 words
A method of programming a digital computing system including at least one terminal device, an auxiliary terminal device, an operating system having a terminal independent device driver program and at least one terminal dependent device driver program associated with each terminal device, the terminal independent device driver program and the terminal dependent device driver program having a communication link established between each other by way of an original set of vectors, the method comprising the steps of: generating a user driver program structured to (a) emulate the terminal dependent device driver program when communicating with the terminal independent device driver program and to (b) emulate the terminal independent device driver program when communicating with the terminal dependent device driver program; allocating a portion of memory to store the original set of vectors and to store data passing between the terminal independent device driver program and the terminal dependent device driver programs; generating a new set of vectors to establish a communication link between (a) the terminal independent device driver program and the user driver program and (b) the terminal dependent device driver program and the user driver program; establishing a communication link between the user driver program and the terminal independent device driver program and the terminal dependent device driver program by moving the new set of vectors into the location of the original set of vectors such that all data passing between the terminal independent device driver and the terminal dependent device driver flows through, and the flow may be controlled by, the user driver program; and moving the data passing through the user driver program to a location where it may be monitored by an auxiliary terminal device.
Claim 45
Dependent Claim 33 words
A method as defined in claim 41 further comprising the step of forcing input to the terminal independent device driver program and the terminal dependent device driver program from the auxiliary terminal device.
Claim 46
Dependent Claim 33 words
A method as defined in claim 41 wherein the step of generating a user driver program comprises the step of generating a user driver program which method operates outside of the operating system.
Claim 47
Dependent Claim 16 words
A method as defined in claim 41 further comprising the step of saving the original vectors.
Claim 48
Dependent Claim 89 words
A method as defined in claim 44 further comprising the steps of: disabling the flow of data from the terminal independent device driver program and the terminal dependent device driver program; removing the communication link between the user driver program and the terminal independent device driver program and the terminal dependent device driver program; and replacing the original set of vectors to reestablish the communication link between the terminal independent device driver program and the terminal dependent device driver program so as to restore the original communication link therebetween.
Claim 49
Dependent Claim 27 words
A method as defined in claim 41 further comprising the step of selectively connecting in parallel one auxiliary terminal device with any one of the terminal devices.
Claim 50
Dependent Claim 46 words
A method as defined in claim 41 further comprising the step of providing a user program, the user program comprising the steps of: directing the user driver program to place a data word in a buffer; and outputting the data word to the auxiliary terminal device.
Claim 51
Dependent Claim 82 words
A method as defined in claim 47 wherein the user program further comprises the steps of: monitoring the buffer; halting the input to the buffer from a selected terminal dependent device driver program when the buffer is nearly full; directing a routine which is called from the user program to read the data in the buffer; and resuming the input to the buffer from the selected terminal dependent device driver program after the user program has read the data in the buffer.
Claim 52
Dependent Claim 57 words
A method as defined in claim 41 further comprising the step of providing a user program, the user program comprising the steps of: accepting input from the auxiliary terminal device; placing the input in the allocated portion of memory; forcing the input to both the terminal independent device driver program and the terminal dependent device driver program.
Claim 53
Independent Claim 457 words
A method for effectively paralleling an auxiliary terminal device with a selected terminal device, the auxiliary terminal device and the selected terminal device both connected to a digital computer, the digital computer including a CPU, an operating system, a terminal independent device driver, a plurality of terminal dependent device drivers, and a memory, the method comprising the steps of: allocating a user controlling device data structure in the memory; generating a user controlling driver program comprising the steps of: calling a subroutine to return the address of a unit control block associated with a first terminal dependent device driver which is associated with the selected terminal; allocating sufficient space in the memory to hold a first port vector table associated with the first terminal dependent device driver; copying the first port vector table to the allocated portion of memory to create a second port vector table; storing the address of the first port vector table in a unit control block contained in the user controlling device; changing the second port vector table pointers which point to (a) a start terminal output routine and (b) a start direct memory access output routine to point to their corresponding subroutines contained in the user controlling driver program; adding the address of the unit control block associated with the first terminal dependent device driver and adding the address of the unit control block contained in the user controlling device to a list of monitored devices; allocating a second block of memory for use as input and output buffers and to store the address of the input and output buffers in the unit control block contained in the user controlling device; disabling interrupts from the selected terminal; changing the pointers contained in the unit control block associated with the first terminal dependent device driver to point to the second port vector table; copying the address of a get data routine, which retrieves data from the terminal independent device driver and makes that data available to the terminal dependent device driver, from the unit control block assciated with the first terminal dependent device driver to the unit control block contained in the user controlling device; copying the address of a put data routine, which moves data from the terminal dependent device driver to the terminal independent device driver, from the unit control block associated with the first terminal dependent device driver to the unit control block contained in the user controlling device; modifying two pointers in the unit control block associated with the first terminal dependent device driver such that the two pointers point to the get data routine and the put data routine associated with the unit control block contained in the user controlling device; and enabling interrupts from the selected terminal.
Claim 54
Independent Claim 457 words
A method for effectively paralleling an auxiliary terminal device with a selected terminal device, the auxiliary terminal device and the selected terminal device both connected to a digital computer, the digital computer including a CPU, an operating system, a terminal independent device driver, a plurality of terminal dependent device drivers, and a memory, the method comprising the steps of: allocating a user controlling device data structure in the memory; generating a user controlling driver program comprising the steps of: calling a subroutine to return the address of a unit control block associated with a first terminal dependent device driver which is associated with the selected terminal; allocating sufficient space in the memory to hold a first port vector table associated with the first terminal dependent device driver; copying the first port vector table to the allocated portion of memory to create a second port vector table; storing the address of the first port vector table in a unit control block contained in the user controlling device; changing the second port vector table pointers which point to (a) a start terminal output routine and (b) a start direct memory access output routine to point to their corresponding subroutines contained in the user controlling driver program; adding the address of the unit control block associated with the first terminal dependent device driver and adding the address of the unit control block contained in the user controlling device to a list of monitored devices; allocating a second block of memory for use as input and output buffers and to store the address of the input and output buffers in the unit control block contained in the user controlling device; disabling interrupts from the selected terminal; changing the pointers contained in the unit control block associated with the first terminal dependent device driver to point to the second port vector table; copying the address of a get data routine, which retrieves data from the terminal independent device driver and makes that data available to the terminal dependent device driver, from the unit control block assciated with the first terminal dependent device driver to the unit control block contained in the user controlling device; copying the address of a put data routine, which moves data from the terminal dependent device driver to the terminal independent device driver, from the unit control block associated with the first terminal dependent device driver to the unit control block contained in the user controlling device; modifying two pointers in the unit control block associated with the first terminal dependent device driver such that the two pointers point to the get data routine and the put data routine associated with the unit control block contained in the user controlling device; and enabling interrupts from the selected terminal.

References Cited (Backward Citations)

US3539998A Cited
US3701971A Cited
US4125892A Cited
US4034351A Cited
US4034346A Cited
US4057847A Cited
US4649479A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1990-10-19 1991-04-20 1991-10-20 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1994-10-19 1995-04-20 1995-10-20 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 1998-10-19 1999-04-20 1999-10-20 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag