095 ! PROGRAM PDSUPFCOP.SYS 100 ! PROGRAM TO COPY ALL USERS FROM ONE PDSUPF DATA FILE 101 ! TO ANOTHER (USUALLY A LARGER 1) 102 INPUT "SIZE OF OLD USER FILE", OU 103 INPUT "SIZE OF NEW USER FILE", NU 104 B=0 105 CALL "SPAWNB"("PIP PDSUPF.NEW=PDSUPF.DAT",B) 106 IF B<>1 THEN PRINT "FILE COPY FAILED" 107 IF B<>1 THEN STOP 110 DIM #4,DD%(255,31) : ! ROOM FOR PLENTY OF USERS 111 DIM #3,EE%(255,31) : ! ROOM FOR PLENTY OF USERS 112 DIM TR%(32) : ! RECORD FOR TRANSFERS 140 ! FORMAT OF FILE (64 BYTE FIXED LENGTH RECORDS) 145 ! FIRST RECORD DUMMY PROFILE 146 ! WORD 0 CONTAINS RECORD # OF FIRST ACTUAL USERS RECORD 147 ! WORD 1 CONTAINS RECORD # OF LAST USED USERS RECORD 150 ! NEXT N RECORDS CONTAIN USER NAMES FOR RAPID LOOK-UP 160 ! STORED IN RAD50, (8. NAMES PER RECORD) 280 OPEN #4,"[1,100]PDSUPF.DAT/BL/RO" 282 OPEN #3,"[1,100]PDSUPF.NEW/BL/UP" 290 FOR I=1 TO 32 300 TR%(I)=DD%(0,I-1) : ! GET DEFAULT DESCRIPTOR 310 NEXT I 315 F1=TR%(1) : ! POSITION OF FIRST USER RECORD IN OLD FILE 316 L1=TR%(2) : ! POSITION OF LAST USER RECORD IN OLD FILE 317 PRINT "FIRST,LAST USER RECORDS IN OLD FILE ";F1;" ";L1 320 F2=F1+(NU-OU)/8 321 L2=L1+(NU-OU)/8 : ! DETERMINES NUMBER OF RECORDS TO SHIFT 322 PRINT "FIRST,LAST USER RECORDS IN NEW FILE ";F2;" ";L2 323 SH=L2-L1 325 TR%(1)=F2 326 TR%(2)=L2 330 FOR I=1 TO 32 340 EE%(0,I-1)=TR%(I): ! WRITE NEW DEFAULT RECORD 350 NEXT I 360 ! NOW COPY RECORDS 370 FOR I=F1 TO L1 375 FOR J=1 TO 32 410 EE%(I-1+SH,J-1)=DD%(I-1,J-1) 420 NEXT J 430 NEXT I 440 ! NOW ZERO NEW AREA OF NAME TABLE 450 FOR I=F1 TO F2-1 460 FOR J=1 TO 32 470 EE%(I-1,J-1)=0 480 NEXT J 490 NEXT I 500 CLOSE