Digital I/O bus controller circuit with auto-incrementing, auto-decrementing and non-incrementing/decrementing access data ports
First Claim
1. A device for use in a computer system having a CPU coupled to a data bus and an address bus comprising:
- (a) a first address decoder configured to be placed in circuit communication with the CPU via the address bus and further configured to decode the address bus into a first signal corresponding to a first address on the address bus and a second signal corresponding to a second address on the address bus;
(b) a plurality of registers each of which is configured to store a data value and which is accessible by the CPU via the data bus;
(c) a register pointer in circuit communication with said plurality of registers, configured to store a pointer value, and further configured to select any one of said plurality of registers responsive to the pointer value stored in said register pointer;
(d) pointer generation circuitry in circuit communication with said address decoder and said register pointer and configured to modify the register pointer responsive to an access of said first address of the address bus and further configured to preserve the state of said register pointer responsive to an access of said second address of the address bus.
1 Assignment
0 Petitions
Accused Products
Abstract
A digital bus circuit having an Address/Data port select decoder 170 in circuit communication with a Selector 194, a Data Port Buffer/Register 181, and an Address Port register 208. The Selector 194 is in circuit communication with an auto incrementor 216, an auto decrementor 218, and a polling function. The incrementor 216 serves to automatically increment an address present in the Address port register 208. The decrementor 218 serves to automatically decrement an address present in the Address port register 208. The polling function serves to reload the Address port register 208 with the same address. The present invention allows a number of enhanced programming methods which permit input and output operations to be implemented with fewer program code instructions. One of the programming methods disclosed by the present invention is an enhanced method of "polling" a device'"'"'s internal register by accessing the polling function.
17 Citations
13 Claims
-
1. A device for use in a computer system having a CPU coupled to a data bus and an address bus comprising:
-
(a) a first address decoder configured to be placed in circuit communication with the CPU via the address bus and further configured to decode the address bus into a first signal corresponding to a first address on the address bus and a second signal corresponding to a second address on the address bus; (b) a plurality of registers each of which is configured to store a data value and which is accessible by the CPU via the data bus; (c) a register pointer in circuit communication with said plurality of registers, configured to store a pointer value, and further configured to select any one of said plurality of registers responsive to the pointer value stored in said register pointer; (d) pointer generation circuitry in circuit communication with said address decoder and said register pointer and configured to modify the register pointer responsive to an access of said first address of the address bus and further configured to preserve the state of said register pointer responsive to an access of said second address of the address bus. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method of using a CPU to access data stored within a plurality of registers, wherein the CPU is coupled to an address bus and a data bus, comprising the steps of:
-
(a) providing a register pointer in circuit communication with said plurality of registers, configured to store a pointer value, and further configured to select any one of said plurality of registers responsive to the pointer value stored in said register pointer (b) providing an address decoder in circuit communication with said register pointer and configured to decode the address bus into a first signal corresponding to a first address on the address bus and a second signal corresponding to a second address on the address bus; (c) accessing via the data bus the contents of the register of said plurality of registers pointed to by said register pointer responsive to accesses of said first and second addresses of the address bus; (d) modifying said register pointer responsive to an access of said first address of the address bus; and (e) preserving the state of said register pointer responsive to an access of said second address of the address bus. - View Dependent Claims (10, 11)
-
-
12. A method of using a CPU to access data stored within a plurality of registers, wherein the CPU is coupled to an address bus and a data bus, comprising the steps of:
-
(a) providing a register pointer in circuit communication with said plurality of registers, configured to store a pointer value, and further configured to select any one of said plurality of registers responsive to the pointer value stored in said register pointer; (b) providing an address decoder in circuit communication with said register pointer and configured to decode the address bus into a first signal corresponding to a first address on the address bus, a second signal corresponding to a second address on the address bus, and a third signal corresponding to a third address on the address bus; (c) accessing via the data bus the contents of the register of said plurality of registers pointed to by said register pointer responsive to accesses of said first, second, and third addresses of the address bus; (d) incrementing said register pointer responsive to an access of said first address of the address bus; (e) decrementing said register pointer responsive to an access of said second address of the address bus; and (f) preserving the state of said register pointer responsive to an access of said third address of the address bus.
-
-
13. A method of "polling" a devices internal register comprising:
-
(a) loading an address port with a device'"'"'s internal register address that is to be "polled" via a first program instruction, (b) reading said device'"'"'s internal register by reading from a polling data port via a second program instruction, (c) loading said address port with said device'"'"'s internal register address automatically without having to use a program instruction, (d) testing data read from said device'"'"'s internal register address via a third program instruction, and (e) repeating steps (b), (c), and (d) without repeating step (a) until said testing in step (d) is satisfied.
-
Specification