Patent GB-1501998-A (GB)
Title: Sort apparatus and data processing system
IPC: G06F7/24
Filed: 1975-05-01
Abstract: 1501998 Data sorting TRIAD SYSTEMS CORP 1 May 1975 [10 May 1974] 18232/75 Heading G4M A sort operation on data, e.g. part identification numbers, is performed by loading into stores 16, 17 lower and upper limit values respectively and at the same time loading the item sort buffer stores 13 (0-N) with 'l's. The ISAD regristers 14 (0-N) are loaded with an initial sequence of item sort addresses and comparators 9 are cleared. The first record from memory 2 is transferred to an A buffer. The following record is then transferred to a B buffer. An address in the ISAD registers 14 determines in which of the ISBS buffer stores 13 the data from the A buffer is stored. At the same time the data is compared with the upper and lower limits in comparators 11, 10 and with the contents of the other buffer stores in comparators 9 (0-N-1) respectively. If the first record is within limits it is stored in buffer store 13N and the addresses in ISAD are circulated so that the next record from buffer B is supplied to store 13N-1. The next record is compared and stored as above. In an example the records are identified by letters of the alphabet and the limits are B and M. There are seven buffer stores 13 and seven registers 14. A first record D is directed by address 7 in ISAD 7 to ISBS 7. The addresses in ISAD are circulated and a second record J is directed by address 6 to ISBS 6 (Chart IV, not shown). During the comparison of J with the contents of the other registers a comparator indicates that J is greater than D so in the circulation of the contents of ISAD the 7 address is not shifted. The third record is F which is stored in ISBS 5. F is greater than D so the 7 address is not shifted. The next record is B which is stored in ISBS 4. B is less than all the records and is equal to the lower limit but in this search the latter equality has no effect. All addresses in ISAD are shifted. The next item is A which is stored in ISBS 3. This is less than the lower limit so no shifting occurs and the record is overwritten by the next value E. E is greater than B and D so the 4 and 7 addresses are not shifted. The next record G is stored in address 2 and is greater than all but J so only address 6 is shifted. The next record L is stored in address 1 and is greater than all the previous records. The next record P is stored in address 0 and is overwritten by the next record I because P is above the upper limit. ISBS then stores ILGEBFJD and ISAD stores 14735206. The next record is H which is less than I, J, L and replaces the highest value L which is in the address I. H is lower than I in address 0 and J in address 6 so only address 0 and 6 are shifted. The next record C is placed in address 6 and is only greater than B in address 4 so all addresses but 4 are shifted, K is entered in address 0 and is greater than all other records. ISBS contains KHGEBFCD and ISAD contains 04673521 and starting with address 4 and reading left to right reads out the records in the correct order. The seven lowest records B-H are read out assuming all records have been examined and the highest value H is used as a new lower limit and a second search through memory 2 is performed. Values B-G are rejected as below the lower limit and the remainder are sorted. Before sorting the data is reformated to produce a suffix, a body, a prefix and a line. In the example these were 3Q4, D871, 2900A and TR1, respectively. A sort was performed on the body but portions of the data would be rearranged to allow different portions to be sorted. The reformated data supplied by unit 6 contains 32 bytes whereas the example had 17 bytes thus allowing search on data having variable formats. The data could include flags and codes which can be used to include or eliminate items from the sorting.