DEFINE-CONSTANTS REPEAT UNTIL (NOMORE) GET-DRIVE-NUM GET-UIC-ID GET-FILE-NAME GET-NUM-OF-RECORDS GET-RECORD-SIZE DEFINE-THE-FILE CLEAR-THE-FILE ASK-IF-MORE FIN CALL SYSCHK TO DEFINE-CONSTANTS BYTE NOMORE BYTE ANS BYTE FILENAM(9) BYTE FILE(30) BYTE LUN BYTE OWNER(3) BYTE GROUP(3) BYTE OK BYTE BUFF(5) EQUIVALENCE (FILE(3),LUN),(FILE(6),GROUP) EQUIVALENCE (FILE(10),OWNER),(FILE(14),FILENAM) CALL LITRAL (FILE,'DPX:[GRP,OWN]') INTEGER RECORD(300) INTEGER SIZOFREC INTEGER TI DATA TI /2/ NOMORE = .FALSE. FIN TO GET-DRIVE-NUM OK = .FALSE. REPEAT UNTIL (OK) CALL-HOME CALL VTOUT (TI,'ENTER DRIVE #') CALL VSPOT (TI,1,13) NUMCH = 1 CALL VTIN (TI,LUN,NUMCH) WHEN (LUN .GE. "60 .AND. LUN .LE. "62) OK = .TRUE. ELSE WRITE-ERROR-MESSAGE FIN FIN TO CALL-HOME CALL HOME (TI) FIN TO WRITE-ERROR-MESSAGE CALL-HOME CALL VTOUT (TI,'INVALID ENTRY -- RETRY ') CALL WAIT (5,2) FIN TO GET-UIC-ID OK = .FALSE. REPEAT UNTIL (OK) CALL-HOME CALL VTOUT (TI,'ENTER UIC [GRP,OWN]') CALL VSPOT (TI,1,12) NUMCH = 3 CALL VTIN (TI,GROUP,NUMCH) CALL VSPOT (TI,1,16) NUMCH = 3 CALL VTIN (TI,OWNER,NUMCH) CALL-HOME NUMCH = 9 CALL VTOUT (TI,FILE(5),NUMCH) ASK-IF-OK FIN FIN TO ASK-IF-OK CALL VSPOT (TI,3,1) CALL VTOUT (TI,'IS THIS OK?') CALL ANSWER (TI,ANS) IF (ANS .EQ. 1) OK = .TRUE. FIN TO GET-FILE-NAME OK = .FALSE. REPEAT UNTIL (OK) CALL-HOME CALL VTOUT (TI,'ENTER FILE NAME _________') CALL VSPOT (TI,1,17) NUMCH = 9 CALL VTIN (TI,FILENAM,NUMCH) I = NUMCH + 14 CALL LITRAL (FILE(I),'.DAT;1') I = I + 6 CALL FILLB (FILE,I,30,0) NUMCH = 28 CALL VTOUT (TI,FILE,NUMCH) ASK-IF-OK FIN FIN TO GET-NUM-OF-RECORDS OK = .FALSE. REPEAT UNTIL (OK) CALL-HOME CALL VTOUT (TI,'ENTER # OF RECORDS IN FILE - _____') CALL VSPOT (TI,1,30) NUMCH = 5 CALL VTIN (TI,BUFF,NUMCH) CALL MASIB (BUFF,1,NUMCH,NUMREC) CALL-HOME CALL VTOUT (TI,BUFF,NUMCH) ASK-IF-OK FIN FIN TO GET-RECORD-SIZE OK = .FALSE. REPEAT UNTIL (OK) CALL-HOME CALL VTOUT (TI,'ENTER RECORD SIZE ___ (WORDS PER RECORD)') CALL VSPOT (TI,1,19) NUMCH = 3 CALL VTIN (TI,BUFF,NUMCH) CALL MASIB (BUFF,1,NUMCH,SIZOFREC) CALL-HOME CALL VTOUT (TI,BUFF,NUMCH) ASK-IF-OK FIN FIN TO DEFINE-THE-FILE DEFINE FILE 1(NUMREC,SIZOFREC,U,IR1) CALL ASSIGN (1,FILE) CALL FDBSET (1,'NEW') FIN TO CLEAR-THE-FILE CALL-HOME CALL VTOUT (TI,'NOW CLEARING THE FILE. PLEASE WAIT') CALL FILL (RECORD,1,SIZOFREC,0) CALL VSPOT (TI,3,1) CALL VTOUT (TI,'NOW WORKING ON RECORD #') DO (I=1,NUMREC) CALL VSPOT (TI,3,25) CALL MSIAB (BUFF,1,5,I,0) CALL VTOUT (TI,BUFF) WRITE (1'I) (RECORD(J),J=1,SIZOFREC) FIN CALL CLOSE (1) FIN TO ASK-IF-MORE CALL-HOME CALL VTOUT (TI,FILE) CALL VSPOT (TI,3,1) CALL VTOUT (TI,'THIS FILE HAS BEEN CREATED AND CLEARED.',,12) CALL VTOUT (TI,'DO SOME MORE?') CALL ANSWER (TI,ANS) IF (ANS .NE. 1) NOMORE = .TRUE. FIN END