1528062 Accessing data HONEYWELL INFORMATION SYSTEMS Inc 10 June 1976 [19 June 1975 (4)] 24111/76 Heading G4A Data processing apparatus is programmed to access data base records grouped into sets of records, each set having an owner record and the records having pointers to others in the set, the records being stored in files in pages in a segmented memory and addressed using pointers which are fetched from index registers pointed to by an instruction. Locate data base page instruction.-To locate a data base page in main memory, its area page number is loaded into register 1852 (Fig. 18). An integrated access control pointer (Fig. 16c, not shown) is fetched from the system base in main memory and stored in the register 1862. The G number and displacement field of the pointer are transferred to registers 1873, 1874 respectively, the initial displacement value also being fed to register 1870. A page descriptor (Fig. 16b, not shown) is then fetched from main memory using the contents of the G and D registers 1873, 1874 and the area page number of the accessed data is compared with the contents of register 1852, equality signifying that the required page has been found. Otherwise the next descriptor information in the page descriptor is transferred to the D register 1874 and main memory is again accessed. This is repeated until either an equality signal is derived from comparator 1878 or from comparator 1883, the latter indicating that the whole chain of descriptors has been searched and consequently that the page is not in main memory. Find owner instruction.-A find owner instruction is effected by storing the instruction in a register (2202, Fig. 22A, not shown) using the address syllable in the instruction to fetch a set descriptor (Fig. 19A, not shown) and stored in a register (2216, Fig. 22C, not shown). The displacement in this descriptor is fed to a displacement register (2228, Fig. 22B, not shown) and used in conjunction with the address given by the contents of the base register referenced in the instruction to fetch the owner pointer of the record referred to by the instruction and store it in a scratch pad location. The pointer mode is determined from the two bit pointer field of the set descriptor and stored in one of four flip-flops. If it is a class 0 pointer (Fig. 15e. not shown) the section SRA is entered into the offset portion of the base register and the instruction is complete. If it is a class 1 pointer (Fig. 15f, not shown) the sections SEG, SRA are entered into the base register and the instruction is complete. If it is a class 2 or 3 pointer (Figs. 15g, 15h, not shown) the page descriptor of the page of which the area page line number is given is fetched and its line number converted to a segmented address which is loaded into the base register and the index register corresponding to the base register referenced in the instruction is loaded with an area page line number or a page line number according to the pointer class. Find serial data base instruction.-This sequentially checks each data base record in a file beginning at the page and line numbers given by the index register corresponding to the base register referenced in the instruction until the next active record is found when its address, of the form given in Fig. 15h (not shown), is loaded into the index register. First the contents of the index register corresponding to the base register number in the instruction which is held in an instruction register (3202, Fig. 24A, not shown) are read into a register (3217) to provide the area page line number. The page descriptor (Fig. 16b, not shown) for this page is fetched using the locate page routine and loaded into a register (3227). The segment number in the page descriptor is then used to fetch a segment descriptor and provided that the line number W transferred from the register (3217) to a W register (3249, Fig. 24B, not shown) is less than the maximum line number (fetched using the base address in the segment descriptor) a check is made for the active state of the line by a comparator (3273) examining state of a D switch associated with the record. If the line is active the segmented address of the record is loaded into the base register (3292) together with the offset portion corresponding to the line W and the page and line number are loaded into the index register. Otherwise the line number is incremented until it is equal to the maximum line number when the page number is incremented and the process repeated, if necessary until the last page has been processed. Test record type data base instruction.-This instruction is stored in a buffer (4202, Fig. 27, not shown) its address syllable being used to fetch a record descriptor (Fig. 19B, not shown) containing a reference record type, this being stored in a register (4218). The base register referenced in the instruction is accessed to provide the address in main memory of the record to be tested. This record is fetched and stored in a data register (4216) and a comparator (4227) compares the contents of the two registers (4216, 4218), a condition code register (4236) receiving the contents 01 or 00 for equality or non-equality respectively. Unload data base instruction.-This instruction is loaded into a buffer (1502, Fig. 29, not shown) and its two bit pointer field is examined to determine if the pointer class is 0 or 1 (indicating a virtual memory record) or 2 or 3 (indicating a data base record). If it is a virtual memory record the contents of the base register (5214) pointed to by the instruction are written into the main memory at the address given by the address syllable. If it is a data base record the contents of the index register (5210) corresponding to the base register are written in.