Initial commit
[retro-software/dec/tops10/v1.19.git] / src / savget.mac
1 \r
2 TITLE SAVGET- SAVE AND GET COMMANDS\r
3 SUBTTL T.HASTINGS 8-4-64\r
4 ;ROUTINE TO SET UP SAVE-GET DEVICE FILE-NAME TABLE\r
5 ;CALLED BY COMMAND SETUP ROUTINES AND SAVE GET\r
6 \r
7 INTERNAL SGSET\r
8 EXTERNAL CTEXT1,SETUSR,HOLD,MONJOB\r
9 EXTERNAL CONMES,NOTENF,CPOPJ1\r
10 \r
11 SGSET:    PUSH PDP, TAC1        ;SAVE STARTTING ADDRESS(SAVJOB OR GETJOB)\r
12           PUSHJ PDP, CTEXT1     ;GET DEVICE NAME FROM COMMAND STRING\r
13           JUMPE TAC1,SGSET1\r
14           MOVEM TAC1, 17(PROG)          ;SAVE IN UUO AC AREA\r
15           PUSHJ PDP, CTEXT1     ;GET FILE NAME FROM COMMAND STRING\r
16           JUMPE TAC1,SGSET1\r
17           MOVEM TAC1, 14(PROG)\r
18           POP PDP, TAC1         ;SCHEDULE MONITOR JOB\r
19           PUSHJ PDP, MONJOB\r
20           JRST CPOPJ1           ;SUPPRESS CR-LF PRINTED BY COMINI\r
21 \r
22 SGSET1:   POP PDP,TAC1\r
23           JRST NOTENF\r
24 \f\r
25 \r
26 ;THIS JOB SAVES A JOB AREA ON RETRIEVABLE STORAGE\r
27 ;THIS JOB RUNS IN EXEC. MODE AND CALLS IO ROUTINES DIRECTLY\r
28 ;NO ATTTEMPT IS MADE TO SAVE STATUS OF IO DEVICES, JOBPDP, OR ACS\r
29 ;IN FACT THE ONLY USEFUL THING WHICH MAY BE DONE WITH A JOB AREA\r
30 ;AFTER IT HAS BEEN SAVED IS TO START EXECUTION OVER AT THE STARTING \r
31 ;ADDRESS\r
32 \r
33 INTERNAL SAVJOB\r
34 EXTERNAL USRPDP, OUT, USRREL,JOBPFI,JOB41,JOBS41,THSDAT\r
35 \r
36 T=BUFPNT   ;TEMPORARY ACS\r
37 T1=BUFWRD\r
38 \r
39 SAVJOB:   JSP TAC,  SG1   ;SET UP ACS AND ASSIGN DEVICE\r
40           MOVE T1,JOB41(JDAT) ;SAVE USR UUOI HANDLING JSR\r
41           MOVEM T1,JOBS41(JDAT)\r
42           MOVE T1,THSDAT      ;SET DATE IN THIRD WORD\r
43           MOVEM T1,16(PROG)\r
44           PUSHJ PDP, DEN(T)   ;ENTER FILE NAME IN DIRECTORY\r
45           JRST SAV4           ;DIRECTORY FULL\r
46           PUSHJ PDP, SETLST   ;SET DUMP COMMAND LIST IN USER ARE\r
47           PUSHJ PDP, OUT      ;DO AN OUTPUT\r
48           JSP TAC,SG2\r
49 \r
50           ASCIZ /JOB SAVED\r
51 /\r
52 SAV4:     JSP TAC,SG2\r
53 \r
54           ASCIZ /DIRECTORY FULL\r
55 /\r
56 \f\r
57 \r
58 \r
59 ;THIS JOB GETS A JOB AREA FROM RETRIEVABLE DEVICE\r
60 ;THIS JOB RUNS IN EXEC. MODE AND CALLS IO ROUTINES DIRECTLY\r
61 ;NO ATTEMPT IS MADE TO RESTORE STATUS OF IO DEVICES, PC, OR ACS\r
62 ;JOBPC IS SET TO STARTING ADDRESS OF JOB\r
63 ;CORE MUST ALREADY HAVE BEEN ASSIGNED AND THE FOLLOWING LOC. SETUP IN \r
64 ;JOB DATA AREA:\r
65 ;JOBPDP, JOBREL\r
66 \r
67 INTERNAL GETJOB\r
68 EXTERNAL USRREL, IN\r
69 \r
70 GETJOB:   JSP TAC, SG1  ;SETUP ACS AND ASSIGN DEVICE\r
71           PUSHJ PDP, DLK(T)     ;LOOKUP FILE NAME IN DIRECTORY\r
72           JRST GET2             ;NOT FOUND\r
73           PUSHJ PDP, SETLST     ;SET DUMP COMMAND LIST IN USER ARE\r
74           PUSHJ PDP, IN         ;DO AN INPUT\r
75           JSP TAC,SG2\r
76 \r
77           ASCIZ /JOB SETUP\r
78 /\r
79 \r
80 GET2:     JSP TAC,SG2\r
81 \r
82           ASCIZ /FILE NOT FOUND\r
83 /\r
84 \f\r
85 \r
86 ;ROUTINE TERMINATES SAVJOB AND GETJOB\r
87 ;CLOSE, RELEASE, CHECK FOR ERRORS AND PRINT MESSAGE AND STOP JOB\r
88 ;ADDRESS OF MESSAGE IN AC TAC\r
89 \r
90 EXTERNAL RELEA2, SETUSR, TTYFNU, WAIT1,JOBS41,JOB41\r
91 \r
92 ERRORS=1B18+1B19+1B20+1B21      ;ERRORS CHECKED FOR IN IO TRANSMISSION\r
93 \r
94 SG2:      PUSHJ PDP, WAIT1\r
95           TRNE IOS, ERRORS      ;ANY ERRORS?\r
96           JRST SG2A             ;AN ERROR\r
97           PUSH PDP,TAC          ;SAVE PRINT ADDRESS\r
98           PUSHJ PDP,RELEA2      ;RELEASE DEVICE\r
99           PUSHJ PDP,SETUSR      ;SETUP COPY OF JOB AREA STORED IN SYSTE\r
100           MOVE TAC,JOBS41(JDAT)\r
101           ;RESTORE USER LOCATION 41\r
102           MOVEM TAC,JOB41(JDAT)\r
103 SG4:      PUSHJ PDP,TTYFNU      ;FIND TELETYPE\r
104           POP PDP,TAC           ;RESTORE PRINT MESSAGE ADDRESS\r
105 SG5:      PUSHJ PDP,CONMES\r
106           JRST HOLD\r
107 \r
108 SG2A:     JSP TAC,SG4\r
109 \r
110           ASCIZ /TRANSMISSION ERROR\r
111 /\r
112 \f\r
113 \r
114 ;ROUTINE CALED BY SAVJOB AND GETJOBTO SETUP ACS\r
115 ;AND ASSIGN DEVICE\r
116 ;CALL     JSP TAC, SG1\r
117 \r
118 EXTERNAL JOBDAT, JOB, UINIT1, WAIT1, JOBADR, RESET\r
119 \r
120 SG1:      HRLI PDP, -15         ;SET UP PD LIST IN UUO ACS\r
121           HRRI PDP, -1(PROG)\r
122           PUSH PDP, TAC         ;SAVE RETURN ADDRESS\r
123           PUSHJ PDP, RESET      ;DO RESET UUO\r
124           MOVEI UUO, D          ;DUMP MODE\r
125           MOVE TAC, 17(PROG)    ;DEVICE NAME\r
126           MOVEI PROG, 0         ;PRETEND RELOC. IS 0\r
127           PUSHJ PDP, UINIT1     ;ASSIGN DEVICE\r
128           0                     ;IBF,OBF\r
129           JRST SGERRA           ;NOT AVAILABLE\r
130           MOVE IOS, DEVIOS(DEVDAT)      ;SETUP IOS\r
131           MOVEI UUO,14          ;REL.ADDRESS OF 4 WORD DIRECTORY ENTRY\r
132           MOVE PROG, JOBADR     ;RESTORE PROG\r
133           MOVSI T,445560        ;SET FILE EXTENSION TO DMP\r
134           MOVEM T, 15(PROG)\r
135           SETZM 16(PROG)\r
136           MOVN T1,USRREL        ;SET NEG. WORD COUNT FROM JOBREL\r
137           ADDI T1,JOBPFI        ;DONT DUMP LOC. 0-JOBPFI\r
138           HRLI T1,JOBPFI\r
139           MOVSM T1,17(PROG)     ;STORE IN 4TH WORD OF DICECTORY\r
140           MOVE T, DEVSER(DEVDAT)        ;SETUP FOR DOING ENTRY OF LOO\r
141           POPJ PDP,\r
142 \r
143 SGERRA:   MOVEI TAC,SGNAVL\r
144           PUSH PDP,TAC\r
145           JRST SG5\r
146 \r
147 SGNAVL:   ASCIZ /DEVICE NOT AVAILABLE\r
148 /\r
149 \f\r
150 \r
151 \r
152 ;ROUTINE TO SET DUMP MODE COMMAND LIST IN USER AREA\r
153 \r
154 EXTERNAL ANYRDX,RELEA2,TTYFNU\r
155 \r
156 SETLST:   MOVE T, 17(PROG)      ;4TH WORD FROM DIRECTORY\r
157           MOVEM T, 16(PROG)\r
158           SETZM 17(PROG)\r
159           HLRE T, T\r
160           ADD T, USRREL\r
161           JUMPL T, NOROOM\r
162           MOVEI UUO,16          ;DUMP MODE\r
163           POPJ PDP,\r
164 \r
165 NOROOM:   PUSHJ PDP,RELEA2\r
166           PUSHJ PDP,TTYFNU\r
167           JFCL\r
168           HLRE TAC, 16(PROG)  ;PRINT NO. OF BLOCKS NEEDED\r
169           MOVNS TAC\r
170           LSH TAC, -12\r
171           ADDI TAC, 1\r
172           MOVEI TAC1, 12\r
173           PUSHJ PDP, ANYRDX\r
174           JSP TAC,SG5\r
175 \r
176           ASCIZ / 1K BLOCKS OF CORE NEEDED\r
177 /\r
178           END,\r