DUMPR - UTILITY FILE DUMPER %5(26) MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 1
DUMPR MAC 21-FEB-77 17:03 B. SCHREIBER - UI HIGH ENERGY PHYSICS GROUP
1 SUBTTL B. SCHREIBER - UI HIGH ENERGY PHYSICS GROUP
2
3 SEARCH JOBDAT,UUOSYM,MACTEN,SCNMAC
4 .DIREC .XTABM
5 SALL
6
7 ;DUMPR VERSION INFORMATION
8
9 000005 DMPVER==5 ;VERSION
10 000026 DMPEDT==26 ;EDIT
11 000000 DMPMIN==0 ;MINOR VERSION
12 000000 DMPWHO==0 ;WHO
13
14 DEFINE CTITLE (TEXT,MAJVER,VEREDT)
15
16
17 CTITLE (,\DMPVER,\DMPEDT)
18
19 000137 LOC .JBVER
20 000500 000026 %%DUMP==:VRSN. (DMP) ;FOR LINK-EDIT MAP
21 000137 000500 000026 EXP %%DUMP
22
23 ;SHOW UNIVERSAL VERSION
24
25 043000 000443 %%JOBD==:%%JOBD ;JOBDAT
26 101100 000225 %%UUOS==:%%UUOS ;UUOSYM
27 000100 000024 %%MACT==:%%MACT ;MACTEN
28 000700 000203 %%SCNM==:%%SCNM ;SCNMAC
29
30 ;REQUEST REST OF LOADING NOW
31
32 IF2,< ;ONLY NEED TO REQUEST LOADING IN PASS 2
33 IFE FT$SEG,< ;IF LOADING RUNNING PART IN LOWSEG
34 .REQUE REL:HELPER
35 IFN FT$WLD,<.REQUE REL:WLD7A>
36 .TEXT \REL:ALCOR/SEG:LOW/SEARCH\
37 .TEXT \REL:SCN7B/SEG:LOW/SEARCH/EXCLUD:(.SCAN),REL:SCN7B/SEARCH\
38 >;END IFE FT$SEG
39
40 IFN FT$SEG,< ;IF LOADING IT ALL IN HIGH SEGMENT
41 .REQUE REL:ALCOR
42 .REQUE REL:SCN7B
43 IFN FT$WLD,<.REQUE REL:WLD7A>
44 .REQUE REL:HELPER
45 >;END IFN FT$SEG
46 >;END IF2
DUMPR - UTILITY FILE DUMPER %5(26) MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 2
DUMPR MAC 21-FEB-77 17:03 REVISION HISTORY
47 SUBTTL REVISION HISTORY
48
49 COMMENT \
50
51 1(1) 11/1/76 BIRTH
52 1(2) 11/2/76 RECOVER FROM BLOCK TOO LARGE WITH /FORTRA OR
53 /IREAD(ON DSK).
54 1(3) 11/4/76 MAKE DISK IREAD MUCH FASTER. WORD COUNTS FOR
55 NOT /LINRDX:DEC WILL START AT ZERO, RATHER
56 THAN ONE.
57 2(4) 11/4/76 IMPLEMENT /MODE:BYTE:N DUMP. ADD CODE FOR
58 SKIPPING FORTRAN BINARY ON MAGTAPE.
59 2(5) 11/5/76 IMPLEMENT /MTBUF AND /ERROR
60 2(6) 11/7/76 MAKE /MODE:ASCII WORK IF NOT /OMIT.
61 2(7) 11/10/76 MAKE CONTROL CHARACTERS VISIBLE IF/MODE:ASCII/OMIT.
62 CORRECT BYTE WIDTH COMPUTATION IF /RADIX ALSO.
63 2(10) 11/11/76 MAKE /DUMP:F:R WORK IF /SUM. CHANGE JRST DUMP$G
64 TO JRST DUMP.2 AT DUMP$G+7.
65 2(11) 11/14/76 MISC. CLEANUPS. IMPLEMENT "I" OPTION FOR IFTYP.
66 2(12) 11/15/76 SKIPE T3 IS REALLY SKIPE T2 AT GMBWID+6. THIS
67 FIXES PROBLEM WITH /MODE:BYTE DUMPS
68 2(13) 12/10/76 READ TTY WIDTH IF TTY DUMP AND NO /WIDTH GIVEN.
69 FEATURE TEST IREAD STUFF WITH FT$PHX. MISC. CODE
70 CLEANUPS.
71 3(14) 12/27/76 ADD WILDCARDING UNDER FT$WLD CONDITIONAL
72 3(15) 1/2/77 FINISH WILDCARDING (SINGLE INPUT SPEC ONLY). IF SPOOLED
73 OUTPUT AND WILDCARDS, THEN CLOSE AND REOPEN OUTPUT AFTER
74 EACH FILE. FIX UP EIGHT-BIT ASCII PRINTOUT TO MAKE
75 ALL CHARACTERS VISIBLE.
76 3(16) 1/2/77 FIX BUG AT DUMPEF (NO HISEG PRESENT IF FT$WLD=1)
77 3(17) 1/3/77 MAKE EBCDIC DUMP WORK. ADD /BLOCK TO SPECIFY
78 # CHARACTERS IN AN EBCDIC RECORD
79 4(20) 1/5/77 ADD /POSITION SWITCH.
80 4(21) 1/6/77 MISC. CLEANUPS
81 4(22) 1/27/77 ADD [DMPIPT INITIAL POSITION OF TAPE IS FILE N REC M]
82 TO SHOW WHERE THE TAPE IS INITIALLY
83 4(23) 1/27/77 SHOW FILE/RECORD POSITION ON INPUT ERRORS. DO A
84 WAIT WHEN ERROR HAPPENS TO MAKE SURE I/O IS OVER
85 4(24) 2/3/77 MTWAT BEFORE THE TAPOP. IN DMPINI WILL PROBABLY
86 CURE SOME OF THE PROBLEMS WITH FUNNY FILE AND
87 RECORD COUNTS.
88 4(25) 2/13/77 SEE IF DEVICE IS ALSO TTY IF MTA (IE NULL) AND
89 ZAP DV.MTA IF SO
90 5(26) 2/18/77 IMPLEMENT /MODE:HALF AND /MODE:SYMBOL
91
92 \;END OF HISTORY
DUMPR - UTILITY FILE DUMPER %5(26) MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 3
DUMPR MAC 21-FEB-77 17:03 ASSEMBLY / ACCUMULATOR DEFINITIONS
93 SUBTTL ASSEMBLY / ACCUMULATOR DEFINITIONS
94
95 ;ASSEMBLY DEFINES
96
97 ND LN$PDL,^D200 ;PDL SIZE
98 ND MY$NAM,'DUMPR ' ;MY NAME
99 ND MY$PFX,'DMP' ;MESSAGE PREFIX
100 ND LN$ACT,^D50 ;SIZE OF ACTION LIST
101 ND LN$CMD,^D20 ;SIZE OF BUFFER TO REMEMBER COMMANDS IN
102 000143 MX$CMD==-1 ;MAX # CHARS IN COMMAND (LEAVE NULL ON END)
103 ND LN$TTL,^D30 ;LENGTH OF TITLE BLOCK (.NMUL IN SCAN IS THIS LONG)
104 ND DF$BFZ,^D1024 ;DEFAULT BUFFERSIZE IF NONE GIVEN
105 ND FT$SEG,0 ;1 = ALL EXECUTABLE CODE GOES IN HIGH SEGMENT
106 ;0 = ONLY PUT SCAN IN HIGH SEGMENT AND THROW
107 ; IT AWAY WHEN RUNNING
108 ND FT$OPT,1 ;1 = SCAN SWITCH.INI FOR SWITCHES ALSO
109 ND FT$PHX,1 ;1 = INCLUDE /IREAD SWITCH (FOR UI PHYSICS)
110 ND FT$WLD,1 ;1 = ALLOW INPUT WILDCARDING
111 ND FT$ISD,1 ;1 = INCLUDE INSTRUCTION SET DUMP
112
113 400000' TWOSEG
114 IFN FT$SEG,
115 000000' IFE FT$SEG,
DUMPR - UTILITY FILE DUMPER %5(26) MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 4
DUMPR MAC 21-FEB-77 17:03 ASSEMBLY / ACCUMULATOR DEFINITIONS
116 ;DEFINE THE ACCUMULATORS
117
118 DEFINE AC$ (X)
119
122
123 000000 ZZ==0
124
125 000000 AC$ (F) ;FLAGS
126 000001 AC$ (T1) ;T1-4 ARE TEMPORARY
127 000002 AC$ (T2)
128 000003 AC$ (T3)
129 000004 AC$ (T4)
130 000005 AC$ (P1) ;P1-4 ARE PERMANENT AND MUST BE PRESERVED
131 000006 AC$ (P2)
132 000007 AC$ (P3)
133 000010 AC$ (P4)
134 000011 AC$ (A) ;ACTION LIST POINTER
135 000012 AC$ (DC) ;LH=DEVCHR LH FOR INPUT DEVICE
136 ;RH=DEVCHR LH FOR OUTPUT DEVICE
137 000013 AC$ (W) ;AOBJN PTR TO DATA DURING DUMP
138 000014 AC$ (M) ;CURRENT DUMP MODE INDEX
139 000015 AC$ (L) ;# WORDS/LINE IN CURRENT DUMP MODE
140 000016 AC$ (Q) ;# CHARACTER POSITIONS/WORD IN CURRENT DUMP MODE
141 000017 P=17 ;PUSHDOWN LIST POINTER
142 000010 C=P4 ;CHARACTER FROM SCAN
143 000007 N=P3 ;NUMBER OR WORD FROM SCAN
144 000007 E1=P3 ;USED IN FLOATING POINT OUTPUT
145 000010 E2=P4 ;DITTO
146 000011 E3=A ;MORE
147 000012 E4=DC ;AND MORE
148 000013 E5=W ;AND THE LAST
DUMPR - UTILITY FILE DUMPER %5(26) MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 5
DUMPR MAC 21-FEB-77 17:03 FLAG DEFINITIONS
149 SUBTTL FLAG DEFINITIONS
150
151 ;FLAGS IN LH OF F
152
153 DEFINE FLAG$ (FLG)
154
157
158 400000 ZZ==(1B0)
159
160 400000 FLAG$ (FOR) ;1 = DO FORTRAN INPUT
161 400000 000000 $FLFOR==(FL$FOR) ;LEFT HANDED VALUE
162 IFN FT$PHX,<
163 200000 FLAG$ (PHY) ;1 = DO IREAD (PHYSIX) INPUT
164 200000 000000 $FLPHY==(FL$PHY) ;LEFT HANDED VALUE
165 >;END IFN FT$PHX
166 IFE FT$PHX, ;DUMMY DEFINITION IF FEATURE TURNED OFF
167 100000 FLAG$ (SUM) ;1 = /SUMMARY
168 100000 000000 $FLSUM==(FL$SUM) ;LEFT HANDED VALUE
169 040000 FLAG$ (TOT) ;1 = /TOTALS
170 040000 000000 $FLTOT==(FL$TOT) ;LEFT HANDED VALUE
171 020000 FLAG$ (OMI) ;1 = OMIT LINE NUMBERS (UNFORMATTED DUMP FOR ASCII)
172 020000 000000 $FLOMI==(FL$OMI) ;LEFT HANDED VALUE
173 010000 FLAG$ (ITY) ;1 = /IFTYP
174 010000 000000 $FLITY==(FL$ITY) ;LEFT HANDED VALUE
175 004000 FLAG$ (IND) ;1 = /INDUSTRY
176 004000 000000 $FLIND==(FL$IND) ;LEFT HANDED VALUE
177 002000 FLAG$ (OUT) ;1 = OUTPUT SPEC HAS BEEN ALLOCATED
178 001000 FLAG$ (NEG) ;1 = CURRENT # IS NEGATIVE IN INTFMT, FLTFMT
179 000400 FLAG$ (TMP) ;GENERAL TEMPORARY FLAG (NOT SAVED OVER CALLS)
180 000200 FLAG$ (MNP) ;1 = DOING FILE POSITIONING IN FORTRA/IREAD MODE
181 000100 FLAG$ (EOT) ;END-OF-TAPE FLAG (2 EOFS IN A ROW)
182 000040 FLAG$ (OLY) ;1 = THERE IS A /ONLY IN EFFECT
183 000020 FLAG$ (FL2) ;TEMPORARY FLAG
184 000010 FLAG$ (OPN) ;1 = OUTPUT FILE IS OPEN
185 000004 FLAG$ (RDX) ;1 = A /RADIX WAS GIVEN
186 000002 FLAG$ (IOF) ;FLAG FOR USE IN XCTIO AND BELOW
187 000001 FLAG$ (ODN) ;OUTPUT HAS BEEN DONE
188
189 764000 FL$SCN==FL$FOR!FL$PHY!FL$SUM!FL$TOT!FL$OMI!FL$IND ;FLAGS TO CLEAR AT CLRANS
190 776004 FL$SCN==FL$SCN!FL$OUT!FL$ITY!FL$RDX
191
192 400000 ZZ==1B18 ;OVER TO THE RIGHT HALF
193
194 400000 FLAG$ (POS) ;1 = /POSITION SWITCH
DUMPR - UTILITY FILE DUMPER %5(26) MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 6
DUMPR MAC 21-FEB-77 17:03 FLAG DEFINITIONS
195 ;I/O CHANNELS
196
197 ;0 USED BY HELPER
198 000001 INPC==1 ;INPUT CHANNEL
199 000002 OUTC==2 ;OUTPUT CHANNEL
200
201 000020 ATSIGN==(1B13) ;I/O SWITCH FLAG FOR OPENIO
202
203 ;MISCELLANEOUS BITS AND STUFF
204
205 000024 000000 $OKDVI==DV.MTA!DV.DIR ;INPUT CAN BE MTA OR DIRECTORY DEVICE
206 040034 000000 $OKDVO==DV.MTA!DV.DIR!DV.TTY!DV.LPT ;OUTPUT CAN BE ONE OF THESE
207 003000 CW$ANY==3000 ;FORTRAN BINARY ANY LSCW PATTERN
208 001000 CW$1O3==1000 ;FORTRAN BINARY LSCW TYPE 1 OR 3 PATTERN
209 002000 CW$TY3==2000 ;FORTRAN BINARY LSCW TYPE 3 PATTERN
210
DUMPR - UTILITY FILE DUMPER %5(26) MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 7
DUMPR MAC 21-FEB-77 17:03 FLAG DEFINITIONS
211 ;FLAGS AND BITS FOR SWTCHS MACRO
212
213 774000 000000 FS$XXX==FS.NFS!FS.LRG!FS.NUE!FS.VRQ!FS.OBV!FS.NOS!FS.NCM ;BITS USED BY SCAN
214 ;SEE SCNMAC.MAC FOR DESCRIPTION OF ABOVE BITS
215 000001 000000 FS$XTR==1B17 ;THIS SWITCH CAN TAKE EXTRA ARGUMENTS (/BACKSP:F:R)
216 000002 000000 FS$NVL==1B16 ;THIS SWITCH NEVER TAKES A VALUE
217 000004 000000 FS$INP==1B15 ;THIS SWITCH IS INPUT ONLY
218 000010 000000 FS$OUT==1B14 ;THIS SWITCH IS OUTPUT ONLY
219
220 ;DEFINE THE FUNCTIONS
221
222 777777 777776 FN$END==-2 ;END OF ALL FUNCTIONS -- TERMINATE DUMP
223 777777 777777 FN$INP==-1 ;ALL FUNCTIONS FOLLOWING THIS ARE INPUT ONLY
224
225 DEFINE FUNCTS
226 )>
227
228 DEFINE X(A)
229 >
231
232 000001 ZZ==1 ;FUNCTIONS GO FROM 1-HIGHEST
233
234 FUNCTS ;DEFINE THE FUNCTIONS
235
236 ;ALL POSITIONING FUNCTIONS MUST BE BETWEEN BSP AND REW
237
238 000004 FN$TP1==FN$BSP ;FIRST LEGAL POSITIONING FUNCTION
239 000006 FN$TPX==FN$REW ;LAST LEGAL POSITIONING FUNCTION
240
241 ;OPDEFINES
242
243 260740 000000 OPDEF CALL [PUSHJ P,] ;SUBROUTINE CALL
DUMPR - UTILITY FILE DUMPER %5(26) MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 9
DUMPR MAC 21-FEB-77 17:03 ERROR MACRO DEFINITIONS
244 SUBTTL ERROR MACRO DEFINITIONS
245
246 ;ERROR. ($FLGS,$PFX,$MSG)
247 ;
248 ;$FLGS IS THE COMBINITATION OF THE FOLLOWING BITS:
249
250 000000 EF$ERR==0 ;ERROR--PREFIX MSG WITH ?, RETURN CONTROL AFTER CALL
251 000400 EF$FTL==400 ;FATAL ERROR--ABORT AND RESTART
252 000200 EF$WRN==200 ;WARNING MESSAGE--CONTINUE
253 000100 EF$INF==100 ;INFORMATIVE MESSAGE--CONTINUE
254 000040 EF$NCR==40 ;NO FREE CRLF AFTER MESSAGE
255
256 DEFINE ETYP ($TYP)
257
259
260 000000 ZZ==0 ;TYPE CODES ARE FROM 1-37
261
262 000001 ETYP (DEC) ;TYPE T1 IN DECIMAL AT END OF MESSAGE
263 000002 ETYP (OCT) ;TYPE T1 IN OCTAL AT END OF MESSAGE
264 000003 ETYP (SIX) ;TYPE T1 IN SIXBIT AT END OF MESSAGE
265 000004 ETYP (PPN) ;TYPE T1 AS A PPN AT END OF MESSAGE
266 000005 ETYP (STR) ;T1 PTS TO ASCIZ STR TO TYPE AT END OF MESSAGE
267 000006 ETYP (FIL) ;T1 PTS TO SCAN FILE BLOCK TO TYPE AT END OF MSG
268 000006 EF$MAX==ZZ ;MAX ERROR TYPE
269
270 IFG ZZ-37,
271
272 ;$PFX IS THE 3-LETTER PREFIX FOR THE MESSAGE
273 ;$MSG IS THE MESSAGE ITSELF
274
275 300000 NOOP== (CAI) ;DEFINE NO-MEMORY-REFERENCE RIGHT-HAND NOOP
276
277 DEFINE ERROR. ($FLGS,$PFX,$MSG)
278 ,[''$PFX'',,[ASCIZ @$MSG@ ] ]
280 >
281
282 ;WARN. FLGS,PFX,MSG
283
284 DEFINE WARN. ($FLGS,$PFX,$MSG)
285
286
287 ;INFO. FLGS,PFX,MSG
288
289 DEFINE INFO. ($FLGS,$PFX,$MSG)
290
DUMPR - UTILITY FILE DUMPER %5(26) MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 11
DUMPR MAC 21-FEB-77 17:03 ERROR MACRO DEFINITIONS
291 ;SAVE$ SAVES DATA ON THE STACK
292
293 DEFINE SAVE$ (X)
294
296 LIST>
297
298 ;RESTR$ RESTORES DATA FROM THE STACK
299
300 DEFINE RESTR$ (X)
301
303 LIST>
304
305 ;MACRO TO ALLOCATE STORAGE IN THE LOW SEGMENT DATA BASE
306
307 DEFINE U ($NAME,$WORDS<1>)
308 <$NAME: BLOCK $WORDS>
309
310 ;STRNG$ (STRING) SENDS STRING TO OUTPUT THROUGH .TSTRG
311
312 DEFINE STRNG$ (S)
313
315
316 ;ASCIZ$ (STRING) CREATES XLISTED ASCIZ STRING TO KEEP LISTING PRETTY
317
318 DEFINE ASCIZ$ (S)
319
DUMPR - UTILITY FILE DUMPER %5(26) MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 12
DUMPR MAC 21-FEB-77 17:03 ERROR MACRO DEFINITIONS
322 ;HIGH$ SWITCHES TO HIGH SEGMENT IF FT$SEG==0
323
324 DEFINE HIGH$
325 >
328 >
329
330 ;LOW$ SWITCHES TO LOW SEGMENT IF FT$SEG==0
331
332 DEFINE LOW$
333 >
336 >
337
338 ;RELOC$ SETS UP LOLOC$ AND CSEG$ INITIALLY
339
340 DEFINE RELOC$
341 > ;START OUT IN THE LOW SEGMENT (CSEG$=0)
343
344 ;LIT$ FORCES OUT LITERALS IN CURRENT SEGMENT
345
346 DEFINE LIT$
347
DUMPR - UTILITY FILE DUMPER %5(26) MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 13
DUMPR MAC 21-FEB-77 17:03 MAIN PROGRAM
350 SUBTTL MAIN PROGRAM
351
352 000000 RELOC$
353
354 ;PROGRAM ENTRY POINT
355
356 000000' 634 01 0 00 000001 DUMPR: TDZA T1,T1 ;NOT CCL
357 000001' 201 01 0 00 000001 MOVEI T1,1 ;CCL
358 000002' 202 01 0 00 004523' MOVEM T1,OFFSET ;SAVE FOR SCAN
359 IFE FT$SEG,< ;NEED TO SAVE THIS STUFF
360 000003' 332 00 0 00 004516' SKIPE SAVRUN ;SAVED UUO ARGS?
361 000004' 254 00 0 00 000012' JRST RUNSVD ;YES
362 000005' 202 00 0 00 004520' MOVEM .SGNAM,SGNAM
363 000006' 202 07 0 00 004522' MOVEM .SGPPN,SGPPN
364 000007' 202 11 0 00 004517' MOVEM .SGDEV,SGDEV
365 000010' 202 17 0 00 004521' MOVEM .SGLOW,SGLOW
366 000011' 476 00 0 00 004516' SETOM SAVRUN
367
368 000012' RUNSVD:>;END IFE FT$SEG
369 000012' 402 00 0 00 000000 RESTRT: STORE 17,0,16,0 ;CLEAR ACS
370 000013' 200 17 0 00 000075'
371 000014' 251 17 0 00 000016
372 000015' 402 00 0 00 004524' STORE 17,FW$ZER,LW$ZER,0 ;AND STORAGE
373 000016' 200 17 0 00 000076'
374 000017' 251 17 0 00 005475'
375 000020' 047 00 0 00 000000 RESET ;STOP ALL I/O
376 000021' 334 17 0 00 000022' SKIPA P,.+1 ;SETUP PDP
377 000022' 777470 004523' INIPDP: IOWD LN$PDL,PDLIST
378 000023' 260 17 0 00 000000* CALL .RECOR## ;RESET CORE
379 000024' 260 17 0 00 000110' IFE FT$SEG, ;MAKE SURE HISEG IS THERE
380 000025' 200 01 0 00 400011' MOVE T1,ISCNBL ;BLOCK FOR .ISCAN
381 000026' 260 17 0 00 000000* CALL .ISCAN## ;INIT THE SCANNER
382 000027' 202 01 0 00 004514' MOVEM T1,ISCNVL ;SAVE FOR LATER
383 000030' 336 00 0 00 004523' SKIPN OFFSET ;CCL ENTRY?
384 000031' 332 00 0 00 004515' SKIPE TLDVER ;TOLD WHO I AM?
385 000032' 254 00 0 00 000041' JRST FILD.0 ;YES
386 000033' 201 01 0 00 000077' STRNG$
387 000034' 260 17 0 00 000000*
388 000035' 200 01 0 00 000137 MOVE T1,.JBVER
389 000036' 260 17 0 00 000000* CALL .TVERW##
390 000037' 260 17 0 00 000000* CALL .TCRLF##
391 000040' 476 00 0 00 004515' SETOM TLDVER
DUMPR - UTILITY FILE DUMPER %5(26) MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 14
DUMPR MAC 21-FEB-77 17:03 MAIN PROGRAM
392 000041' 260 17 0 00 400000' FILD.0: CALL SCNCMD ;SCAN A COMMAND
393 000042' 622 00 0 00 400000 TRZE F,FL$POS ;WAS /POSITION GIVEN?
394 000043' 254 00 0 00 400555' JRST MTAPOS ;YES--GO DO IT
395 000044' 474 05 0 00 000000 SETO P1, ;FLAG OUTPUT NOT OPEN YET
396 000045' 260 17 0 00 000133' FILD.2: CALL OPNINP ;OPEN INPUT FILE
397 000046' 254 00 0 00 000070' IFN FT$WLD, ;WILD SAYS ALL DONE
398 000047' 356 00 0 00 000005 AOSN P1 ;ONLY OPEN OUTPUT FILE FIRST TIME THRU
399 000050' 260 17 0 00 000234' CALL OPNOUT ;AND OUTPUT FILE
400 000051' 260 17 0 00 000101' IFE FT$SEG, ;RELEASE HISEG WHILE RUNNING
401 000052' 260 17 0 00 000347' CALL PROCMD ;PROCESS THE COMMAND
402 000053' 260 17 0 00 000110' IFE FT$SEG, ;REGET HISEG IF WE LOST IT
403 000054' 260 17 0 00 000205' CALL INPCLS ;CLOSE INPUT FILE
404 IFN FT$WLD,<
405 000055' 337 00 0 00 005257' SKIPG LKWLFL ;ARE WILD FILES POSSIBLE (DTA/DSK)?
406 000056' 336 00 0 00 000000* SKIPN .WLDFL## ;YES--AND ARE THERE ANY WILD FILES?
407 000057' 254 00 0 00 000070' JRST FILD.9 ;NO--GO FINISH UP
408 000060' 200 01 0 00 005263' MOVE T1,ODVNAM ;YES--GET OUTPUT DEVICE NAME
409 000061' 047 01 0 00 000053 DEVTYP T1, ;SEE IF IT IS SPOOLED
410 000062' 254 00 0 00 000045' JRST FILD.2 ;ASSUME NOT
411 000063' 607 01 0 00 000020 TXNN T1,TY.SPL ;IS IT SPOOLED?
412 000064' 254 00 0 00 000045' JRST FILD.2 ;NO--JUST GO AHEAD
413 000065' 260 17 0 00 000224' CALL OUTCLS ;YES--MAKE A NEW FILE
414 000066' 260 17 0 00 000234' CALL OPNOUT ; ...
415 000067' 254 00 0 00 000045' JRST FILD.2 ;GO TO IT
416 >;END IFN FT$WLD
417 000070' 260 17 0 00 000224' FILD.9: CALL OUTCLS ;CLOSE OUTPUT FILE
418 000071' 260 17 0 00 000000* FILD.X: CALL .RUNCM## ;HANDLE /RUN IF SPECIFIED
419 000072' 332 00 0 00 004523' SKIPE OFFSET ;EXIT 1, IF CCL ENTRY
420 000073' 260 17 0 00 000000* CALL .MONRT## ;
421 000074' 254 00 0 00 000012' JRST RESTRT ;AND RESTART
422 IFE FT$SEG, ;FORCE OUT LOW SEGMENT LITERALS
423
DUMPR - UTILITY FILE DUMPER %5(26) MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 15
DUMPR MAC 21-FEB-77 17:03 SCAN A COMMAND FROM THE USER
424 SUBTTL SCAN A COMMAND FROM THE USER
425
426 400000' HIGH$ ;TO HIGH SEGMENT IF FT$SEG=0
427
428 400000' 200 01 0 00 400017' SCNCMD: MOVE T1,TSCNBL ;FOR .TSCAN
429 400001' 260 17 0 00 000000* CALL .TSCAN## ;SCAN THE COMMAND
430 IFN FT$OPT,<
431 400002' 200 01 0 00 400031' MOVE T1,OSCNBL ;GET OSCAN ARG BLOCK
432 400003' 260 17 0 00 000000* CALL .OSCAN## ;SCAN SWITCH.INI FOR SOME SWITCHES
433 >;END IFN FT$OPT
434
435 IFN FT$WLD,<
436 400004' 201 01 0 00 005340' MOVEI T1,INPSPC ;SETUP PTR FOR WILD
437 400005' 202 01 0 00 005255' MOVEM T1,WLDFIR ;...
438 >;END IFN FT$WLD
439 400006' 606 00 0 00 400000 TRNN F,FL$POS ;/POSITION?
440 400007' 254 00 0 00 400051' PJRST CHKCMD ;CHECK COMMAND FOR GOODNESS
441 400010' 263 17 0 00 000000 POPJ P, ;YES--WILL CHECK GOODNESS LATER
442
443 ;ARG BLOCK FOR .ISCAN
444
445 400011' 000005 400012' ISCNBL: XWD 5, .+1
446 400012' 777777 400043' IOWD N$CMDS,CMDLST
447 400013' 004523' 445560 XWD OFFSET,MY$PFX
448 400014' 400045' 000000 XWD TTINPT,0 ;MY INPUT SO WE CAN REMEMBER CMD
449 400015' 000000 000000 EXP 0
450 400016' 400037' 000000 XWD DOPRMP,0
451
452 ;ARG BLOCK FOR .TSCAN
453
454 400017' 000011 400020' TSCNBL: XWD 11, .+1
455 400020' 777750 400231' IOWD SWTL,SWTN
456 400021' 400342' 400312' XWD SWTD,SWTM
457 400022' 000000 400262' XWD 0,SWTP
458 400023' 777777 777777 EXP -1
459 400024' 400444' 400462' XWD CLRANS,CLRFIL
460 400025' 400422' 400434' XWD AIN,AOUT
461 400026' 000000 000000 EXP 0
462 400027' 000000 000000 EXP 0
463 400030' 000000 400466' EXP STOSWT
464
465 IFN FT$OPT,<
466 400031' 000004 400032' OSCNBL: XWD 4, .+1
467 400032' 777772 400371' IOWD OPSWL,OPSWN
468 400033' 400414' 400406' XWD OPSWD,OPSWM
469 400034' 000000 400400' EXP OPSWP
470 400035' 777777 777777 EXP -1
471 400036' 000000 000000 EXP 0
472 >;END IFN FT$OPT
DUMPR - UTILITY FILE DUMPER %5(26) MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 16
DUMPR MAC 21-FEB-77 17:03 SCAN A COMMAND FROM THE USER
473 ;SCAN CALLS HERE TO PROMPT WITH T1 NEGATIVE IF CONTINUATION PROMPT
474
475 400037' 331 00 0 00 000001 DOPRMP: SKIPL T1 ;FIRST OR CONT?
476 400040' 334 01 0 00 400043' SKIPA T1,PRMPTM ;FIRST
477 400041' 205 01 0 00 030000 MOVSI T1,'# ' ;CONTINUATION
478 400042' 254 00 0 00 000000* PJRST .TSIXN## ;TYPE IT
479
480 400043' 445560 360000 PRMPTM: XWD MY$PFX,'> ' ;FIRST MSG
481
482 400044' 446555 606200 CMDLST: EXP MY$NAM ;MY NAME
483 000001 N$CMDS==.-CMDLST
484
485 ;SCAN CALLS HERE TO GET COMMAND CHARACTERS FROM TTY
486
487 400045' 051 04 0 00 000010 TTINPT: INCHWL C ;GET A CHARACTER
488 400046' 371 00 0 00 005254' SOSL SCMDCT ;ROOM TO STORE IT?
489 400047' 136 10 0 00 005253' IDPB C,SCMDBP ;YES
490 400050' 263 17 0 00 000000 POPJ P, ;RETURN WITH CHARACTER IN C
DUMPR - UTILITY FILE DUMPER %5(26) MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 17
DUMPR MAC 21-FEB-77 17:03 CHECK COMMAND FOR GOODNESS
491 SUBTTL CHECK COMMAND FOR GOODNESS
492
493 400051' 260 17 0 00 400164' CHKCMD: CALL OUTDFL ;DEFAULT OUTPUT SIDE
494 400052' 260 17 0 00 400117' CALL INPDFL ;AND INPUT SIDE
495 400053' 337 01 0 00 005473' SKIPG T1,USERDX ;/RADIX SPECIFIED
496 400054' 334 01 0 00 400703' SKIPA T1,[EXP ^D8] ;NO--USE BASE 8
497 400055' 661 00 0 00 000004 TLO F,FL$RDX ;REMEMBER /RADIX WAS SEEN FOR "OCTAL" DUMPING
498 400056' 202 01 0 00 005473' MOVEM T1,USERDX ;...
499 400057' 607 00 0 00 000004 TLNN F,FL$RDX ;SPECIFY /RADIX/
500 400060' 254 00 0 00 400070' JRST CHKC.0 ;NO
501 400061' 301 01 0 00 000002 CAIL T1,2 ;YES--CHECK LEGALITY
502 400062' 303 01 0 00 000020 CAILE T1,^D16 ;...
503 400063' 260 17 0 00 004407' ERROR. EF$ERR!EF$DEC,IAR,
504 400064' 300001 400712'
505 400065' 242 01 0 00 777776 LSH T1,-2 ;DIVIDE BY 4
506 400066' 200 01 0 01 400112' MOVE T1,WRDRDX(T1) ;GET A WIDTH FOR THE WORD
507 400067' 202 01 0 00 005474' MOVEM T1,USRWID ;SAVE FOR DUMPING
508 400070' 337 01 0 00 005467' CHKC.0: SKIPG T1,LINRDX ;WAS A LINE # RADIX SPECIFIED?
509 400071' 201 01 0 00 000001 MOVEI T1,LRXDEC ;NO--DEFAULT
510 400072' 202 01 0 00 005467' MOVEM T1,LINRDX ;SET IT IN
511 400073' 200 01 0 00 005262' MOVE T1,IDVNAM ;GET INPUT REAL NAME
512 400074' 603 12 0 00 000020 TLNE DC,(DV.MTA) ;MTA?
513 400075' 312 01 0 00 005263' CAME T1,ODVNAM ;SAME DEVICE?
514 400076' 254 00 0 00 400101' JRST CHKC.1 ;NO--ONWARD
515 400077' 260 17 0 00 004407' ERROR. EF$SIX!EF$FTL,CUS,
516 400100' 300403 400724'
517 400101' CHKC.1:
518 IFN FT$PHX,<
519 400101' 641 00 0 00 600000 TLC F,FL$FOR!FL$PHY ;CAN'T HAVE /IREAD AND /FORTRAN
520 400102' 647 00 0 00 600000 TLCN F,FL$FOR!FL$PHY ;SO MAKE SURE NOW
521 400103' 260 17 0 00 004407' ERROR. EF$FTL,MSE,
522 400104' 300400 400736'
523 >;END IFN FT$PHX
524 400105' 641 00 0 00 140000 TLC F,FL$SUM!FL$TOT ;CAN'T HAVE /SUMMARY AND /TOTALS
525 400106' 647 00 0 00 140000 TLCN F,FL$SUM!FL$TOT
526 400107' 260 17 0 00 004407' ERROR. EF$FTL,SWE,
527 400110' 300400 400746'
528 400111' 263 17 0 00 000000 POPJ P, ;COMMAND IS SANCTIFIED
529
530 400112' 000000 000045 WRDRDX: EXP ^D37 ;BASE 2
531 400113' 000000 000023 EXP ^D19 ;BASE 4
532 400114' 000000 000015 EXP ^D13 ;BASE 8
533 400115' 000000 000015 EXP ^D13 ;DUMMY
534 400116' 000000 000012 EXP ^D10 ;BASE 16
DUMPR - UTILITY FILE DUMPER %5(26) MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 18
DUMPR MAC 21-FEB-77 17:03 CHECK COMMAND FOR GOODNESS
535
536 ;DEFAULT INPUT SPECS
537
538 400117' 336 01 0 00 005340' INPDFL: SKIPN T1,INPSPC+.FXDEV;DEFAULT DEVICE
539 400120' 205 01 0 00 446353 MOVSI T1,'DSK' ;IS DSK
540 400121' 202 01 0 00 005340' MOVEM T1,INPSPC+.FXDEV
541 400122' 047 01 0 00 000064 DEVNAM T1, ;SEE WHO IT IS
542 400123' 254 00 0 00 400161' JRST ILLIDV
543 400124' 202 01 0 00 005262' MOVEM T1,IDVNAM
544 400125' 047 01 0 00 000004 DEVCHR T1, ;GET BITS
545 400126' 607 01 0 00 000024 TLNN T1,($OKDVI) ;CAN I USE IT?
546 400127' 254 00 0 00 400161' JRST ILLIDV ;NO
547 400130' 500 12 0 00 000001 HLL DC,T1 ;YES--SAVE DEVCHR BITS
548 400131' 603 12 0 00 000020 TLNE DC,(DV.MTA) ;IS DEVICE A MAGTAPE?
549 400132' 254 00 0 00 400151' JRST INPD.1 ;YES--CLEAR FILENAME AND EXTENSION
550 400133' 623 00 0 00 004000 TLZE F,FL$IND ;NO--CLEAR /INDUSTRY IF GIVEN
551 400134' 260 17 0 00 004407' WARN. 0,IND,
552 400135' 300200 400756'
553 400136' 200 01 0 00 400757' MOVE T1,[SIXBIT /DUMPIT/] ;DEFAULT NAME
554 400137' 474 02 0 00 000000 SETO T2,
555 400140' 336 00 0 00 005341' SKIPN INPSPC+.FXNAM
556 400141' 202 02 0 00 005342' MOVEM T2,INPSPC+.FXNMM
557 400142' 336 00 0 00 005341' SKIPN INPSPC+.FXNAM
558 400143' 202 01 0 00 005341' MOVEM T1,INPSPC+.FXNAM
559 400144' 525 01 0 00 444164 HRLOI T1,'DAT' ;AND EXTENSION
560 400145' 205 02 0 00 200000 MOVX T2,FX.NUL ;GET NULL EXTENSION BIT
561 400146' 612 02 0 00 005344' TDNE T2,INPSPC+.FXMOD;WAS ANYTHING SET FOR EXTENSION?
562 400147' 202 01 0 00 005343' MOVEM T1,INPSPC+.FXEXT;NO--USE A DEFAULT
563 400150' 263 17 0 00 000000 POPJ P,
564
565 ;HERE IF DEVICE SEEMS TO BE A MAGTAPE
566
567 400151' 603 12 0 00 000010 INPD.1: TLNE DC,(DV.TTY) ;SEE IF IT IS ALSO A TTY (IE NUL:)
568 400152' 621 12 0 00 000020 TLZ DC,(DV.MTA) ;YES--MAKE SURE WE DON'T TO MAGTAPE OPS
569 400153' 402 00 0 00 005341' SETZM INPSPC+.FXNAM ;CLEAR NAME
570 400154' 402 00 0 00 005342' SETZM INPSPC+.FXNMM ;AND MASK
571 400155' 402 00 0 00 005343' SETZM INPSPC+.FXEXT ;AND EXTENSION
572 400156' 402 00 0 00 005346' SETZM INPSPC+.FXDIR ;AND DIRECTORY
573 400157' 263 17 0 00 000000 POPJ P, ;DONE
574
575 400160' 334 01 0 00 400760' ILLODV: SKIPA T1,[EXP OUTSPC] ;ILLEGAL OUTPUT DEVICE
576 400161' 201 01 0 00 005340' ILLIDV: MOVEI T1,INPSPC ;ILLEGAL INPUT DEVICE
577 400162' 260 17 0 00 004407' ERROR. EF$FTL!EF$FIL,IDV,
578 400163' 300406 400765'
DUMPR - UTILITY FILE DUMPER %5(26) MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 19
DUMPR MAC 21-FEB-77 17:03 CHECK COMMAND FOR GOODNESS
579 ;HERE TO DEFAULT OUTPUT SPECIFICATION
580
581 400164' 205 02 0 00 400000 OUTDFL: MOVX T2,FX.NDV ;NULL DEVICE FLAG
582 400165' 616 02 0 00 005376' TDNN T2,OUTSPC+.FXMOD;WAS IT REALLY A NULL DEVICE?
583 400166' 336 01 0 00 005372' SKIPN T1,OUTSPC+.FXDEV;NO--PICK UP DEVICE IF GIVEN
584 400167' 205 01 0 00 546064 MOVSI T1,'LPT' ;YES--USE DEFAULT
585 400170' 202 01 0 00 005372' MOVEM T1,OUTSPC+.FXDEV
586 400171' 047 01 0 00 000064 DEVNAM T1, ;SEE WHO IT REALLY IS
587 400172' 254 00 0 00 400160' JRST ILLODV ;NOT ONE I KNOW
588 400173' 202 01 0 00 005263' MOVEM T1,ODVNAM ;SAVE REAL NAME
589 400174' 047 01 0 00 000004 DEVCHR T1, ;SEE WHAT SORT OF DEVICE IT IS
590 400175' 607 01 0 00 040034 TLNN T1,($OKDVO) ;A DEVICE I LIKE?
591 400176' 254 00 0 00 400160' JRST ILLODV ;NO
592 400177' 544 12 0 00 000001 HLR DC,T1 ;SAVE DEVICE CHARACTERISTICS
593 400200' 200 01 0 00 400766' MOVE T1,[SIXBIT /DUMPED/] ;DEFAULT FILENAME
594 400201' 474 02 0 00 000000 SETO T2, ;AND MASK
595 400202' 336 00 0 00 005373' SKIPN OUTSPC+.FXNAM ;NAME GIVEN?
596 400203' 202 02 0 00 005374' MOVEM T2,OUTSPC+.FXNMM;NO--USE MY DEFAULT
597 400204' 336 00 0 00 005373' SKIPN OUTSPC+.FXNAM
598 400205' 202 01 0 00 005373' MOVEM T1,OUTSPC+.FXNAM
599 400206' 525 01 0 00 546064 HRLOI T1,'LPT' ;FINALLY THE EXTENSION
600 400207' 336 00 0 00 005375' SKIPN OUTSPC+.FXEXT
601 400210' 202 01 0 00 005375' MOVEM T1,OUTSPC+.FXEXT
602 400211' 263 17 0 00 000000 POPJ P,
DUMPR - UTILITY FILE DUMPER %5(26) MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 20
DUMPR MAC 21-FEB-77 17:03 SWITCH TABLE
603 SUBTTL SWITCH TABLE
604
605 DEFINE SWTCHS,<
606 SP *BACKSP,FN$BSP,.SWDEC##,MTN,FS$XTR!FS.VRQ
607 SP BLOCK,S.BLKF,.SWDEC##,BKF,FS.NUE
608 SP BUFSIZ,BUFSIZ,.SWDEC##,BFZ,FS.NUE
609 SP *DUMP,FN$DMP,.SWDEC##,MTN,FS$XTR!FS$INP!FS.VRQ
610 SL *ERROR,FLERR,ERR,ERRCON,FS.NUE
611 SS *FORTRA,,1,FS.NUE
612 SS IFTYP,,1,FS.NUE
613 SS INDUST,,1,FS$INP!FS.NUE
614 IFN FT$PHX,,1,FS$INP!FS.NUE>
615 SL LINRDX,LINRDX,LRX,LRXDEC,FS.NUE
616 SL *MODE,FN$MOD,MOD,MODOCT,FS$XTR!FS$OUT
617 SP MTBUF,NMTBUF,.SWDEC##,MBF,FS.NUE
618 SS *NORETR,FLNTRY,1,FS$INP!FS.NUE
619 SS OMIT,,1,FS$OUT!FS.NUE
620 SP *ONLY,FN$ONL,.SWDEC##,ONL,FS$XTR!FS$INP
621 SS *POSIT,,1,FS.NUE
622 SP RADIX,USERDX,.SWDEC##,RDX,FS$OUT!FS.NUE
623 SS *REWIND,FN$REW,FN$REW,FS$NVL
624 SS RIB,FN$RIB,FN$RIB,FS$NVL
625 SP *SKIP,FN$SKP,.SWDEC##,MTN,FS$XTR!FS.VRQ
626 SS SUMMAR,,1,FS$OUT!FS.NUE
627 SP TITLE,,.SWASQ##,,FS.NUE
628 SS *TOTALS,,1,FS$OUT!FS.NUE
629 SP *WIDTH,FLWIDT,.SWDEC##,WID,FS$OUT!FS.NUE
630 >
631
632
633 DM (BFZ,^D4096,^D2048,^D1024)
634 DM (BKF,177777,^D80,^D80)
635 DM (MBF,^D10,^D3,^D3)
636 DM (MTN,177777,177777,177777)
637 DM (ONL,177777,0,0)
638 DM (RDX,^D16,^D8,^D8)
639 DM (WID,^D132,^D80,^D80)
640 400212' 435756 645156 KEYS (ERR,)
641 400213' 514756 576245
642 400214' 616545 627100
643 400215' 416343 515100 KEYS (MOD,)
644 400216' 427164 450000
645 400217' 454243 445143
646 400220' 465457 416400
647 400221' 504154 460000
648 400222' 504570 000000
649 400223' 515664 454745
650 400224' 574364 415400
651 400225' 635170 425164
652 400226' 637155 425754
653 400227' 444543 515541 KEYS (LRX,)
654 400230' 504570 000000
655 400231' 574364 415400
656
657 ;NOW EXPAND THE SWITCH TABLE
DUMPR - UTILITY FILE DUMPER %5(26) MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 20-1
DUMPR MAC 21-FEB-77 17:03 SWITCH TABLE
658
659 DOSCAN (SWT)
660 400232' 124241 435363 EXP SIXBIT /*BACKSP/
661 400233' 425457 435300 EXP SIXBIT /BLOCK/
662 400234' 426546 635172 EXP SIXBIT /BUFSIZ/
663 400235' 124465 556000 EXP SIXBIT /*DUMP/
664 400236' 124562 625762 EXP SIXBIT /*ERROR/
665 400237' 124657 626462 EXP SIXBIT /*FORTRA/
666 400240' 514664 716000 EXP SIXBIT /IFTYP/
667 400241' 515644 656364 EXP SIXBIT /INDUST/
668 400242' 125162 454144 EXP SIXBIT /*IREAD/
669 400243' 545156 624470 EXP SIXBIT /LINRDX/
670 400244' 125557 444500 EXP SIXBIT /*MODE/
671 400245' 556442 654600 EXP SIXBIT /MTBUF/
672 400246' 125657 624564 EXP SIXBIT /*NORETR/
673 400247' 575551 640000 EXP SIXBIT /OMIT/
674 400250' 125756 547100 EXP SIXBIT /*ONLY/
675 400251' 126057 635164 EXP SIXBIT /*POSIT/
676 400252' 624144 517000 EXP SIXBIT /RADIX/
677 400253' 126245 675156 EXP SIXBIT /*REWIND/
678 400254' 625142 000000 EXP SIXBIT /RIB/
679 400255' 126353 516000 EXP SIXBIT /*SKIP/
680 400256' 636555 554162 EXP SIXBIT /SUMMAR/
681 400257' 645164 544500 EXP SIXBIT /TITLE/
682 400260' 126457 644154 EXP SIXBIT /*TOTALS/
683 400261' 126751 446450 EXP SIXBIT /*WIDTH/
684 400262' 000000 000004 EXP ;*BACKSP
685 400263' 000000 005464' EXP ;BLOCK
686 400264' 000000 005465' EXP ;BUFSIZ
687 400265' 000000 000003 EXP ;*DUMP
688 400266' 000000 005466' EXP ;*ERROR
689 400267' 430100 000000 ($FLFOR)^<^L<$FLFOR>+^L<-<<$FLFOR>_<^L<$FLFOR>>>-1>-1>^>^> ;*FORTRA
690 400270' 360100 000000 ($FLITY)^<^L<$FLITY>+^L<-<<$FLITY>_<^L<$FLITY>>>-1>-1>^>^> ;IFTYP
691 400271' 350100 000000 ($FLIND)^<^L<$FLIND>+^L<-<<$FLIND>_<^L<$FLIND>>>-1>-1>^>^> ;INDUST
692 400272' 420100 000000 ($FLPHY)^<^L<$FLPHY>+^L<-<<$FLPHY>_<^L<$FLPHY>>>-1>-1>^>^> ;*IREAD
693 400273' 000000 005467' EXP ;LINRDX
694 400274' 000000 000001 EXP ;*MODE
695 400275' 000000 005470' EXP ;MTBUF
696 400276' 000000 005471' EXP ;*NORETR
697 400277' 370100 000000 ($FLOMI)^<^L<$FLOMI>+^L<-<<$FLOMI>_<^L<$FLOMI>>>-1>-1>^>^> ;OMIT
698 400300' 000000 000002 EXP ;*ONLY
699 400301' 210100 000000 (FL$POS)^<^L+^L<-<_<^L>>-1>-1>^>^> ;*POSIT
700 400302' 000000 005473' EXP ;RADIX
701 400303' 000000 000006 EXP ;*REWIND
702 400304' 000000 000007 EXP ;RIB
703 400305' 000000 000005 EXP ;*SKIP
704 400306' 410100 000000 ($FLSUM)^<^L<$FLSUM>+^L<-<<$FLSUM>_<^L<$FLSUM>>>-1>-1>^>^> ;SUMMAR
705 400307' 444300 005425' EXP ;TITLE
706 400310' 400100 000000 ($FLTOT)^<^L<$FLTOT>+^L<-<<$FLTOT>_<^L<$FLTOT>>>-1>-1>^>^> ;*TOTALS
707 400311' 000000 005475' EXP ;*WIDTH
708 400312' 177777 000000* XWD MX.MTN,.SWDEC## ;*BACKSP
709 400313' 177777 400312* XWD MX.BKF,.SWDEC## ;BLOCK
710 400314' 010000 400313* XWD MX.BFZ,.SWDEC## ;BUFSIZ
711 400315' 177777 400314* XWD MX.MTN,.SWDEC## ;*DUMP
712 400316' 777775 400211' XWD -ERR.L,ERR.T-1 ;*ERROR
DUMPR - UTILITY FILE DUMPER %5(26) MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 20-2
DUMPR MAC 21-FEB-77 17:03 SWITCH TABLE
713 400317' 000000 000000 XWD 0,0 ;*FORTRA
714 400320' 000000 000000 XWD 0,0 ;IFTYP
715 400321' 000000 000000 XWD 0,0 ;INDUST
716 400322' 000000 000000 XWD 0,0 ;*IREAD
717 400323' 777775 400226' XWD -LRX.L,LRX.T-1 ;LINRDX
718 400324' 777766 400214' XWD -MOD.L,MOD.T-1 ;*MODE
719 400325' 000012 400315* XWD MX.MBF,.SWDEC## ;MTBUF
720 400326' 000000 000000 XWD 0,0 ;*NORETR
721 400327' 000000 000000 XWD 0,0 ;OMIT
722 400330' 177777 400325* XWD MX.ONL,.SWDEC## ;*ONLY
723 400331' 000000 000000 XWD 0,0 ;*POSIT
724 400332' 000020 400330* XWD MX.RDX,.SWDEC## ;RADIX
725 400333' 000000 000000 XWD 0,0 ;*REWIND
726 400334' 000000 000000 XWD 0,0 ;RIB
727 400335' 177777 400332* XWD MX.MTN,.SWDEC## ;*SKIP
728 400336' 000000 000000 XWD 0,0 ;SUMMAR
729 400337' 000000 000000* XWD MX.,.SWASQ## ;TITLE
730 400340' 000000 000000 XWD 0,0 ;*TOTALS
731 400341' 000204 400335* XWD MX.WID,.SWDEC## ;*WIDTH
732 400342' 040001 177777 XWD ..TEMR,PD.MTN ;*BACKSP
733 400343' 100000 000120 XWD ..TEMR,PD.BKF ;BLOCK
734 400344' 100000 002000 XWD ..TEMR,PD.BFZ ;BUFSIZ
735 400345' 040005 177777 XWD ..TEMR,PD.MTN ;*DUMP
736 400346' 100000 000001 XWD ..TEMR,ERRCON ;*ERROR
737 400347' 100000 000001 XWD ..TEMR,1 ;*FORTRA
738 400350' 100000 000001 XWD ..TEMR,1 ;IFTYP
739 400351' 100004 000001 XWD ..TEMR,1 ;INDUST
740 400352' 100004 000001 XWD ..TEMR,1 ;*IREAD
741 400353' 100000 000001 XWD ..TEMR,LRXDEC ;LINRDX
742 400354' 000011 000010 XWD ..TEMR,MODOCT ;*MODE
743 400355' 100000 000003 XWD ..TEMR,PD.MBF ;MTBUF
744 400356' 100004 000001 XWD ..TEMR,1 ;*NORETR
745 400357' 100010 000001 XWD ..TEMR,1 ;OMIT
746 400360' 000005 000000 XWD ..TEMR,PD.ONL ;*ONLY
747 400361' 100000 000001 XWD ..TEMR,1 ;*POSIT
748 400362' 100010 000010 XWD ..TEMR,PD.RDX ;RADIX
749 400363' 000002 000006 XWD ..TEMR,FN$REW ;*REWIND
750 400364' 000002 000007 XWD ..TEMR,FN$RIB ;RIB
751 400365' 040001 177777 XWD ..TEMR,PD.MTN ;*SKIP
752 400366' 100010 000001 XWD ..TEMR,1 ;SUMMAR
753 400367' 100000 000000 XWD ..TEMR,PD. ;TITLE
754 400370' 100010 000001 XWD ..TEMR,1 ;*TOTALS
755 400371' 100010 000120 XWD ..TEMR,PD.WID ;*WIDTH
756
DUMPR - UTILITY FILE DUMPER %5(26) MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 21
DUMPR MAC 21-FEB-77 17:03 SWITCH TABLE FOR OPTION SCAN
757 SUBTTL SWITCH TABLE FOR OPTION SCAN
758
759 IFN FT$OPT,<
760
761 DEFINE SWTCHS,<
762 SP BUFSIZ,BUFSIZ,.SWDEC##,BFZ,FS.NUE
763 SL ERROR,FLERR,ERR,ERRCON,FS.NUE
764 SS IFTYP,,1,FS.NUE
765 SL LINRDX,LINRDX,LRX,LRXDEC,FS.NUE
766 SP MTBUF,NMTBUF,.SWDEC##,MBF,FS.NUE
767 SP WIDTH,FLWIDT,.SWDEC##,WID,FS.NUE
768 >
769
770 DOSCAN (OPSW)
771 400372' 426546 635172 EXP SIXBIT /BUFSIZ/
772 400373' 456262 576200 EXP SIXBIT /ERROR/
773 400374' 514664 716000 EXP SIXBIT /IFTYP/
774 400375' 545156 624470 EXP SIXBIT /LINRDX/
775 400376' 556442 654600 EXP SIXBIT /MTBUF/
776 400377' 675144 645000 EXP SIXBIT /WIDTH/
777 400400' 000000 005465' EXP ;BUFSIZ
778 400401' 000000 005466' EXP ;ERROR
779 400402' 360100 000000 ($FLITY)^<^L<$FLITY>+^L<-<<$FLITY>_<^L<$FLITY>>>-1>-1>^>^> ;IFTYP
780 400403' 000000 005467' EXP ;LINRDX
781 400404' 000000 005470' EXP ;MTBUF
782 400405' 000000 005475' EXP ;WIDTH
783 400406' 010000 400341* XWD MX.BFZ,.SWDEC## ;BUFSIZ
784 400407' 777775 400211' XWD -ERR.L,ERR.T-1 ;ERROR
785 400410' 000000 000000 XWD 0,0 ;IFTYP
786 400411' 777775 400226' XWD -LRX.L,LRX.T-1 ;LINRDX
787 400412' 000012 400406* XWD MX.MBF,.SWDEC## ;MTBUF
788 400413' 000204 400412* XWD MX.WID,.SWDEC## ;WIDTH
789 400414' 100000 002000 XWD ..TEMR,PD.BFZ ;BUFSIZ
790 400415' 100000 000001 XWD ..TEMR,ERRCON ;ERROR
791 400416' 100000 000001 XWD ..TEMR,1 ;IFTYP
792 400417' 100000 000001 XWD ..TEMR,LRXDEC ;LINRDX
793 400420' 100000 000003 XWD ..TEMR,PD.MBF ;MTBUF
794 400421' 100000 000120 XWD ..TEMR,PD.WID ;WIDTH
795 >;END IFN FT$OPT
DUMPR - UTILITY FILE DUMPER %5(26) MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 22
DUMPR MAC 21-FEB-77 17:03 COMMAND SCANNING SUBROUTINES
796 SUBTTL COMMAND SCANNING SUBROUTINES
797
798 400422' AIN:
799 400422' 332 00 0 00 005340' SKIPE INPSPC+.FXDEV ;ALREADY BEEN HERE?
800 400423' 260 17 0 00 004407' ERROR. EF$FTL,MIS,
801 400424' 300400 400777'
802 400425' 336 00 0 00 005424' SKIPN DUMPFL ;SEEN A /DUMP?
803 400426' 260 17 0 00 400463' CALL HOLDMP ;NO--SET TO DUMP ENTIRE WHATEVER
804 400427' 561 01 0 00 777776 HRROI T1,FN$END ;SEND END OF LIST
805 400430' 260 17 0 00 400520' CALL PUTACT ;...
806 400431' 201 01 0 00 005340' MOVEI T1,INPSPC ;GET ADDRESS
807 400432' 201 02 0 00 000032 ALEN: MOVEI T2,.FXLEN ;AND SIZE
808 400433' 263 17 0 00 000000 POPJ P,
809 400434' AOUT:
810 400434' 332 00 0 00 005372' SKIPE OUTSPC+.FXDEV ;BEEN HERE?
811 400435' 260 17 0 00 004407' ERROR. EF$FTL,MOF,
812 400436' 300400 401006'
813 400437' 561 01 0 00 777777 HRROI T1,FN$INP ;SET END OF OUTPUT FUNCTIONS
814 400440' 260 17 0 00 400520' CALL PUTACT ;SEND TO LIST
815 400441' 661 00 0 00 002000 TLO F,FL$OUT ;SET OUTPUT SPEC ALLOCATED
816 400442' 201 01 0 00 005372' MOVEI T1,OUTSPC
817 400443' 254 00 0 00 400432' PJRST ALEN
818
819 ;SCAN CALLS HERE TO CLEAR ALL ANSWERS
820
821 400444' 334 11 0 00 400445' CLRANS: SKIPA A,.+1 ;LOAD UP ACTION PTR
822 400445' 777716 005170' INIACT: IOWD LN$ACT,ACTLST
823 400446' 621 00 0 00 776004 TLZ F,FL$SCN ;CLEAR SCAN FLAGS IN F
824 400447' 402 00 0 00 005314' STORE T1,SCN$FZ,SCN$LZ,0 ;CLEAR WHAT SHOULD BE ZERO
825 400450' 200 01 0 00 401007'
826 400451' 251 01 0 00 005463'
827 400452' 476 00 0 00 005464' STORE T1,SCN$FO,SCN$LO,-1 ;MINUS 1 WHAT SHOULD BE MINUS 1
828 400453' 200 01 0 00 401010'
829 400454' 251 01 0 00 005475'
830 400455' 200 01 0 00 401011' MOVE T1,[POINT 7,CMDBFR] ;INIT PTR TO STORE COMMAND
831 400456' 202 01 0 00 005253' MOVEM T1,SCMDBP ;...
832 400457' 201 01 0 00 000143 MOVEI T1,MX$CMD ;AND COUNTER
833 400460' 202 01 0 00 005254' MOVEM T1,SCMDCT ;...
834 400461' 263 17 0 00 000000 POPJ P,
835
836 ;SCAN CALLS HERE TO CLEAR FILE ANSWERS
837
838 400462' CLRFIL:
839 400462' 263 17 0 00 000000 POPJ P,
840
841 ;CALL TO DUMP WHOLE TAPE
842
843 400463' 201 01 0 00 000003 HOLDMP: MOVEI T1,FN$DMP ;FUNCTION
844 400464' 525 02 0 00 777777 HRLOI T2,777777 ;A RIDICULOUSLY LARGE FILE/RECORD COUNT
845 ;(USE NEG. # SO IF DSK INPUT WE KNOW
846 ; NO /DUMP AND THEN DUMP WHOLE FILE)
847 400465' 254 00 0 00 400520' PJRST PUTACT ;STOW AWAY AND RETURN
DUMPR - UTILITY FILE DUMPER %5(26) MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 23
DUMPR MAC 21-FEB-77 17:03 STORE SWITCHES
848 SUBTTL STORE SWITCHES
849
850 ;SCAN CALLS HERE TO STORE SOME SWITCHES
851 ;N=VALUE, T2=PTR (FN$XXX), T3=FLAGS (FS$XXX), P1=SWITCH INDEX
852
853 400466' 607 03 0 00 000010 STOSWT: TLNN T3,(FS$OUT) ;OUTPUT ONLY?
854 400467' 254 00 0 00 400472' JRST STOSWA ;NO
855 400470' 603 00 0 00 002000 TLNE F,FL$OUT ;YES--OUTPUT ALLOCATED?
856 400471' 254 00 0 00 400547' JRST E$$OSI ;NO--BOMB
857 400472' 607 03 0 00 000004 STOSWA: TLNN T3,(FS$INP) ;INPUT ONLY?
858 400473' 254 00 0 00 400476' JRST STOSWB ;NO
859 400474' 607 00 0 00 002000 TLNN F,FL$OUT ;YES--OUTPUT ALLOCATED?
860 400475' 254 00 0 00 400552' JRST E$$ISO ;NO--BOMB
861 400476' 603 03 0 00 000002 STOSWB: TLNE T3,(FS$NVL) ;NEVER TAKE A VALUE?
862 400477' 254 00 0 00 400516' JRST SWTST0 ;YES--THATS CORRECT
863 400500' 306 02 0 00 000001 CAIN T2,FN$MOD ;THIS /MODE?
864 400501' 254 00 0 00 400525' JRST STOMOD ;YES--DO DIFFERENTLY
865 400502' 603 03 0 00 000001 TLNE T3,(FS$XTR) ;TAKE EXTRA ARGS?
866 400503' 302 10 0 00 000072 CAIE C,":" ;YES--ARE THEY THERE?
867 400504' 254 00 0 00 400516' JRST SWTST0 ;NO--JUST STORE
868 SAVE$ ;YES--SAVE VALUE, AND FUNCTION
869 400507' 260 17 0 00 000000* CALL .DECNW## ;READ SECOND VALUE
870 RESTR$ ;GET FUNCTION AND VALUE IN RIGHT ACS
871 400512' 207 00 0 00 000002 MOVSS T2 ;POSITION FILE COUNT IN LH
872 400513' 540 02 0 00 000007 HRR T2,N ;AND RECORD COUNT IN RH
873 400514' 254 00 0 00 400520' PJRST PUTACT ;PUT ON ACTION LIST AND RETURN
874
875 400515' 201 07 0 00 000001 SWTS0A: MOVEI N,1 ;NEVER TAKES A VALUE,MAKE SURE IT GETS DONE 1 X
876 400516' 200 01 0 00 000002 SWTST0: MOVE T1,T2 ;POSITION FUNCTION
877 400517' 550 02 0 00 000007 HRRZ T2,N ;AND VALUE
878 ; PJRST PUTACT ;STORE PARAMS AND RETURN
879
880 ;PUTACT -- STORE PARAMETERS IN ACTION LIST
881 ;CALL: MOVE T1,
882 ; MOVE T2,
883 ; CALL PUTACT
884
885 400520' 261 11 0 00 000001 PUTACT: PUSH A,T1 ;STORE FUNCTION
886 400521' 261 11 0 00 000002 PUSH A,T2 ;AND VALUE
887 400522' 306 01 0 00 000003 CAIN T1,FN$DMP ;THIS THE /DUMP?
888 400523' 476 00 0 00 005424' SETOM DUMPFL ;YES--SAY WE HAVE ONE
889 400524' 263 17 0 00 000000 POPJ P,
890
891 400525' 302 07 0 00 000002 STOMOD: CAIE N,MODBYT ;/MODE:BYTE?
892 400526' 254 00 0 00 400516' JRST SWTST0 ;NO--DO NORMALLY
893
894 400527' 302 10 0 00 000072 CAIE C,":" ;MUST HAVE A VALUE
895 400530' 260 17 0 00 004407' ERROR. EF$FTL,BRB,
896 400531' 300400 401017'
897 SAVE$ ;SAVE MODBYT, FN$MOD
898 400534' 260 17 0 00 400507* CALL .DECNW## ;READ BYTESIZE
899 RESTR$ ;FN$MOD IN T1, MODBYT IN T2
900 400537' 303 07 0 00 000000 CAILE N,0 ;CAN'T VERY WELL HAVE NEGATIVE BYTE SIZES
901 400540' 303 07 0 00 000044 CAILE N,^D36 ;OR GREATR THAN ONE WORD
902 400541' 254 00 0 00 400544' JRST E$$IBS ;SO TELL HIM ITS ILLEGAL AND QUIT
DUMPR - UTILITY FILE DUMPER %5(26) MACRO %50A(441)-2 13:51 23-FEB-77 PAGE 23-1
DUMPR MAC 21-FEB-77 17:03 STORE SWITCHES
903 400542' 504 02 0 00 000007 HRL T2,N ;PUT BYTESIZE IN LH
904 400543' 254 00 0 00 400520' PJRST PUTACT ;SET ON ACTION LIST AND RETURN
905 400544' 200 01 0 00 000007 E$$IBS: MOVE T1,N ;POSITION TO TELL USER WHAT IS ILLEGAL
906 400545' 260 17 0 00 004407' ERROR. EF$FTL!EF$DEC,IBS,
907 400546' 300401 401025'
908
909 400547' 200 01 0 05 400232' E$$OSI: MOVE T1,SWTN(P1) ;OUTPUT SWITCH ON INPUT SIDE
910 400550' 260 17 0 00 004407' ERROR. EF$FTL!EF$SIX,OSI,