TITLE SAVGET- SAVE AND GET COMMANDS SUBTTL T.HASTINGS 8-4-64 ;ROUTINE TO SET UP SAVE-GET DEVICE FILE-NAME TABLE ;CALLED BY COMMAND SETUP ROUTINES AND SAVE GET INTERNAL SGSET EXTERNAL CTEXT1,SETUSR,HOLD,MONJOB EXTERNAL CONMES,NOTENF,CPOPJ1 SGSET: PUSH PDP, TAC1 ;SAVE STARTTING ADDRESS(SAVJOB OR GETJOB) PUSHJ PDP, CTEXT1 ;GET DEVICE NAME FROM COMMAND STRING JUMPE TAC1,SGSET1 MOVEM TAC1, 17(PROG) ;SAVE IN UUO AC AREA PUSHJ PDP, CTEXT1 ;GET FILE NAME FROM COMMAND STRING JUMPE TAC1,SGSET1 MOVEM TAC1, 14(PROG) POP PDP, TAC1 ;SCHEDULE MONITOR JOB PUSHJ PDP, MONJOB JRST CPOPJ1 ;SUPPRESS CR-LF PRINTED BY COMINI SGSET1: POP PDP,TAC1 JRST NOTENF ;THIS JOB SAVES A JOB AREA ON RETRIEVABLE STORAGE ;THIS JOB RUNS IN EXEC. MODE AND CALLS IO ROUTINES DIRECTLY ;NO ATTTEMPT IS MADE TO SAVE STATUS OF IO DEVICES, JOBPDP, OR ACS ;IN FACT THE ONLY USEFUL THING WHICH MAY BE DONE WITH A JOB AREA ;AFTER IT HAS BEEN SAVED IS TO START EXECUTION OVER AT THE STARTING ;ADDRESS INTERNAL SAVJOB EXTERNAL USRPDP, OUT, USRREL,JOBPFI,JOB41,JOBS41,THSDAT T=BUFPNT ;TEMPORARY ACS T1=BUFWRD SAVJOB: JSP TAC, SG1 ;SET UP ACS AND ASSIGN DEVICE MOVE T1,JOB41(JDAT) ;SAVE USR UUOI HANDLING JSR MOVEM T1,JOBS41(JDAT) MOVE T1,THSDAT ;SET DATE IN THIRD WORD MOVEM T1,16(PROG) PUSHJ PDP, DEN(T) ;ENTER FILE NAME IN DIRECTORY JRST SAV4 ;DIRECTORY FULL PUSHJ PDP, SETLST ;SET DUMP COMMAND LIST IN USER ARE PUSHJ PDP, OUT ;DO AN OUTPUT JSP TAC,SG2 ASCIZ /JOB SAVED / SAV4: JSP TAC,SG2 ASCIZ /DIRECTORY FULL / ;THIS JOB GETS A JOB AREA FROM RETRIEVABLE DEVICE ;THIS JOB RUNS IN EXEC. MODE AND CALLS IO ROUTINES DIRECTLY ;NO ATTEMPT IS MADE TO RESTORE STATUS OF IO DEVICES, PC, OR ACS ;JOBPC IS SET TO STARTING ADDRESS OF JOB ;CORE MUST ALREADY HAVE BEEN ASSIGNED AND THE FOLLOWING LOC. SETUP IN ;JOB DATA AREA: ;JOBPDP, JOBREL INTERNAL GETJOB EXTERNAL USRREL, IN GETJOB: JSP TAC, SG1 ;SETUP ACS AND ASSIGN DEVICE PUSHJ PDP, DLK(T) ;LOOKUP FILE NAME IN DIRECTORY JRST GET2 ;NOT FOUND PUSHJ PDP, SETLST ;SET DUMP COMMAND LIST IN USER ARE PUSHJ PDP, IN ;DO AN INPUT JSP TAC,SG2 ASCIZ /JOB SETUP / GET2: JSP TAC,SG2 ASCIZ /FILE NOT FOUND / ;ROUTINE TERMINATES SAVJOB AND GETJOB ;CLOSE, RELEASE, CHECK FOR ERRORS AND PRINT MESSAGE AND STOP JOB ;ADDRESS OF MESSAGE IN AC TAC EXTERNAL RELEA2, SETUSR, TTYFNU, WAIT1,JOBS41,JOB41 ERRORS=1B18+1B19+1B20+1B21 ;ERRORS CHECKED FOR IN IO TRANSMISSION SG2: PUSHJ PDP, WAIT1 TRNE IOS, ERRORS ;ANY ERRORS? JRST SG2A ;AN ERROR PUSH PDP,TAC ;SAVE PRINT ADDRESS PUSHJ PDP,RELEA2 ;RELEASE DEVICE PUSHJ PDP,SETUSR ;SETUP COPY OF JOB AREA STORED IN SYSTE MOVE TAC,JOBS41(JDAT) ;RESTORE USER LOCATION 41 MOVEM TAC,JOB41(JDAT) SG4: PUSHJ PDP,TTYFNU ;FIND TELETYPE POP PDP,TAC ;RESTORE PRINT MESSAGE ADDRESS SG5: PUSHJ PDP,CONMES JRST HOLD SG2A: JSP TAC,SG4 ASCIZ /TRANSMISSION ERROR / ;ROUTINE CALED BY SAVJOB AND GETJOBTO SETUP ACS ;AND ASSIGN DEVICE ;CALL JSP TAC, SG1 EXTERNAL JOBDAT, JOB, UINIT1, WAIT1, JOBADR, RESET SG1: HRLI PDP, -15 ;SET UP PD LIST IN UUO ACS HRRI PDP, -1(PROG) PUSH PDP, TAC ;SAVE RETURN ADDRESS PUSHJ PDP, RESET ;DO RESET UUO MOVEI UUO, D ;DUMP MODE MOVE TAC, 17(PROG) ;DEVICE NAME MOVEI PROG, 0 ;PRETEND RELOC. IS 0 PUSHJ PDP, UINIT1 ;ASSIGN DEVICE 0 ;IBF,OBF JRST SGERRA ;NOT AVAILABLE MOVE IOS, DEVIOS(DEVDAT) ;SETUP IOS MOVEI UUO,14 ;REL.ADDRESS OF 4 WORD DIRECTORY ENTRY MOVE PROG, JOBADR ;RESTORE PROG MOVSI T,445560 ;SET FILE EXTENSION TO DMP MOVEM T, 15(PROG) SETZM 16(PROG) MOVN T1,USRREL ;SET NEG. WORD COUNT FROM JOBREL ADDI T1,JOBPFI ;DONT DUMP LOC. 0-JOBPFI HRLI T1,JOBPFI MOVSM T1,17(PROG) ;STORE IN 4TH WORD OF DICECTORY MOVE T, DEVSER(DEVDAT) ;SETUP FOR DOING ENTRY OF LOO POPJ PDP, SGERRA: MOVEI TAC,SGNAVL PUSH PDP,TAC JRST SG5 SGNAVL: ASCIZ /DEVICE NOT AVAILABLE / ;ROUTINE TO SET DUMP MODE COMMAND LIST IN USER AREA EXTERNAL ANYRDX,RELEA2,TTYFNU SETLST: MOVE T, 17(PROG) ;4TH WORD FROM DIRECTORY MOVEM T, 16(PROG) SETZM 17(PROG) HLRE T, T ADD T, USRREL JUMPL T, NOROOM MOVEI UUO,16 ;DUMP MODE POPJ PDP, NOROOM: PUSHJ PDP,RELEA2 PUSHJ PDP,TTYFNU JFCL HLRE TAC, 16(PROG) ;PRINT NO. OF BLOCKS NEEDED MOVNS TAC LSH TAC, -12 ADDI TAC, 1 MOVEI TAC1, 12 PUSHJ PDP, ANYRDX JSP TAC,SG5 ASCIZ / 1K BLOCKS OF CORE NEEDED / END,