The database is examined and one record is written to a Direct Access "Sort Work File" for each item to be included in the sort. The count of records written (which may be zero) is placed into the first word of the File Status Block. This phase is custom written by the application programmer.
The Work File record length is 8 words the first of which is reserved for system use and the remaining 7 are the Sort Key (which must include the means to identify the item).
The Sort Key is an unsigned 119-bit value comprising any ASCII, Metacode or Binary Subfields in any sequence. Where a Binary Subfield may contain 2s-complement negative values it is mathematically necessary to complement its sign bit.
The Work File is sorted into ascending Key sequence by the Sort Utility Module entirely within the 2K-task partition using an 8-sector disc buffer:
JSBR IZ 1670 FETCH & LINK Overlay
P2=0/0225 -> Sort Module Number
P3=000210 B17=no messages, B16:B1=Sort Work File Id
P4= ->Follow-on Print Program Name
Sort start and done messages will be flashed to the task identified in step 3400- unless P3 bit 17 is set. On completion of sort the follow-on program is given control, or the utility will JUMP Z 1402 if this is not found in the printer directory. All task memory below 3200- is modified during the Sort phase.
The Work File is read in descending (or ascending) sequence to obtain the identification of the next print item. This phase is also custom written by the application programmer.
It may be necessary to prevent two tasks attempting to use the same Sort Work File simultaneously. This may be handled either by a semaphore in the FSB or by allocating a separate work file to each printer task.
A dedicated M18 Mk4 with Hawk Drive under LOS scanned 20,000 64-word product records, writing 14,019 records to the Sort Work File, in 78 seconds. The Work File was sorted in 234 seconds.
To achieve this speed in the Scan phase it is essential to avoid FETCH and OVERWRITE by using JSBR IZ 1615 "Transfer" with an 8 sector read buffer and 4 sector write buffer (coding example available).
Click here to download the Sort Module mod025.ZIP (1K).