10 COM J1,Z,D$[8],E$[8] 15 REM SPSORT, HP 36736 REV A, 6/74 (PART 1 OF 3) 20 REM DESCRIPTION: SORTS RANDOM ACCESS FILE. 30 REM RECORDS MUST BE FIXED FORMAT, BUT MAY BE 40 REM COMPRISED OF ANY SERIES OF NUMERIC AND STRING 50 REM VARIABLES. 60 REM ANY FIELD MAY BE DESIGNATED SORT KEY FIELD. 70 REM SUBFIELD OF ALPHA SORT FIELD MAY BE SPECIFIED. 80 REM NEEDS TWO FILES -- INPUT, OUTPUT. 90 REM METHOD: USES SPLITTING SORT AFTER ACM ALGORITHM 347. 100 REM USAGE: SIMPLY RUN AND ANSWER SIMPLE QUESTIONS. 110 DIM A$[72],T$[72] 120 PRINT "FILE NAMES -- INPUT"; 130 INPUT D$ 140 PRINT " -- OUTPUT"; 150 INPUT E$ 160 FILES *,* 170 ASSIGN D$,1,I 180 ASSIGN E$,2,I 190 PRINT "RECORD FORMAT BY FIELD"; 200 READ #1,1 210 FOR I=1 TO 32000 220 IF TYP(-1)=2 THEN 280 230 IF TYP(-1)=4 THEN 320 240 READ #1;B 250 PRINT " N"; 260 T$[I,I]="N" 270 GOTO 340 280 READ #1;A$ 290 PRINT " A"; 300 T$[I,I]="A" 310 GOTO 340 320 PRINT " END" 330 GOTO 350 340 NEXT I 350 Z=I-1 360 PRINT "SORT KEY FIELD NUMBER"; 370 INPUT K 380 IF (K>0) AND (K <= Z) THEN 410 390 PRINT "YOU HAVE ONLY";Z;"FIELDS" 400 GOTO 360 410 IF T$[K,K] <> "A" THEN 440 420 PRINT "ALPHA SORT KEY -- SUBFIELD FIRST POS, LAST POS"; 430 INPUT F,G 440 REM BUILD FILE OF POINTERS AND SORT KEYS 450 IF END #1 THEN 600 460 FOR I=1 TO 32767 470 READ #1,I 480 FOR J=1 TO Z 490 IF TYP(-1)=2 THEN 540 500 READ #1;A 510 IF J <> K THEN 580 520 PRINT #2,I;I,A 530 GOTO 590 540 READ #1;A$ 550 IF J <> K THEN 580 560 PRINT #2,I;I,A$[F,G] 570 GOTO 590 580 NEXT J 590 NEXT I 600 J1=I-1 610 PRINT J1;"ITEMS ON FILE" 620 IF T$[K,K]="A" THEN 640 630 CHAIN "$NUSORT" 640 CHAIN "$ALSORT" 650 END