Google
 

Trailing-Edge - PDP-10 Archives - decuslib20-05 - decus/20-0151/mcf-print.mcf
There is 1 other file named mcf-print.mcf in the archive. Click here to see a list.
! Procedure MCF-PRINT
! Checkpoints: (none)

!************************************************************
!
! Prints a listing of all Master Control Files found on
! logical device MCF:.  Either a full print giving all MCFs
! or an incremental print giving only the MCFs that have
! changed since the last run or since a particular date may be selected
!
!************************************************************

;Define variable <copies> How many copies of the output do you want?
;No-option restart/;Select option <incremental> Do you want an incremental listing (yes) or a full listing (no)?
;Option <incremental>/;Select variable <listing-type> ("Since a certain date","True incremental since last listing (requires some prior initialization)") What type of listing do you want?
;If "<listing-type>" = "Since a certain date"/;Define option <since-date> yes
;Option <since-date>/;Define/allow variable <mcf-listing-date> Since what date do you want the MCFs?
;Define variable <courier> To what courier do you want the print(s) sent?

Begin::
@Delete job.journal
@Journal "<job-name>-<job-id> beginning"

@Delete mcf.lst,foo.cmd,foo.lst,mcf.cmd
@Define sys: ps:<rf00>,sys:		!To get the new CONVERT

;No-option <since-date>/@Goto Nosinc
@Directory mcf:*.mcf,mcf:*.scf ,
@Since <mcf-listing-date>
@No heading
@No summary-lines
@Separate
@Out mcf.cmd
@

@Tv mcf.cmd
*<:sNo such^[; !		Remove %No such file type ... messages!
*0lk>
*z"e;x'!			Quit if nothing left!
*j<diConvert/append mcf:^[!	Insert the Convert command in front of a file!
*ei/preserve-read-date mcf.lst/identify^[
*l.-z"e1; '>!			Go to next line & quit if no more f-ns!
*;u^[^[mcf.cmd!			Output this stuff!
*iSetup/variable <^[imcf-listing-date^[i> <current-month>/<current-day>/<current-year>
*^[;x^[^[foo.cmd;t!		And make a command to update SETUP.BIN!

@Empty-check mcf.cmd
;Error block
	@Journal "No MCFs were changed since <mcf-listing-date>"
	@Delete mcf.cmd
	@Goto Done
	;End

@Take mcf			!Create MCF.LST with CONVERT
@Take foo			!Update MCF-listing-date in SETUP.BIN
@Goto Print

Nosinc::
@Convert/append mcf:*.mcf/preserve-read-date mcf.lst/identify

@Convert/append mcf:*.scf/preserve-read-date mcf.lst/identify
@If (error)			!Don't choke if user has no .SCFs

;No-option <incremental>/@Copy mcf.lst foo.lst

@Terminal no raise
@Tv mcf.lst
=s.mcf.^[0l.useqs,.xngn1up!		Initialize; N=name, P=page #!
=<!TestPage!:s.mcf.^[; !		Find next MCF file name!
=\uaqa"g0a-15."e.ub!			If a gen # follows + <CR>, save place!
=qsj56leqb-."g!				   Go 56 lines from prev. mcf; if >1 page!
*0li^L^[.usgni    Page ^[%p\!		   Then insert name again + page #!i
*
=^[oTestPage^['!			   and go back to find next MCF!
=qbj-lki^L^[.useqs,.xngn1up''l>!	   Else just insert <FF>,save new name & reset page #!
=j!scf!:s.scf.^["eoEnd^['!		Find an SCF from the beginning; quit if none!
=\uaqa"g0a-15."eook^[''oscf^[!		If a gen # follows + <CR>, then continue; else search again!
=!ok!0li^L^[.useqs,.xngn1up!		Insert <FF>, save name in G, reset page #!
=<:s.scf.^[; \uaqa"g0a-15."e.ub!	Find next SCF followed by gen# + <CR>!
=!TestPageTwo!qsj56leqb-."g!		Go 56 lines from prev. scf; if >1 page!
*0li^L^[.usgni    Page ^[%p\!		   Then insert name again + page #!i
*
=^[oTestPageTwo^['!			   and go back to find next SCF!
=qbj-lki^L^[.useqs,.xngn1up''l>!	   Else insert <FF>, save new name & reset page #!
*!End!;x!				All done, so write same file!^[^[

;Option <incremental>/@Atsign
;Option <incremental>/*mcf/g

Print::
@Print mcf.lst/copies:<copies>/unit:Xerox/courier:<courier>
@Journal "<job-name>-<job-id> at checkpoint Xref"
@Goto Skip

! *************************  Xref  *************************

Xref::
@Journal "<job-name>-<job-id> restarting at Xref"
@Delete foo.lst
Skip::
@Chkpnt Xref

@Vdirectory foo.lst
@Empty-check foo.lst
;Error block Re-Get Get all .MCF and .SCF files again
	@Convert/append mcf:*.mcf/preserve-read-date foo.lst/identify
	@Convert/append mcf:*.scf/preserve-read-date foo.lst/identify
	@If (error)
	;End Re-Get

@Terminal no pause command
@Tv foo.lst
*0ufkd0us!					Initialize done flag (F) and current start position (S)!
*!start!e.ua0l:s:^["nqa-."gqs,.k''!		Delete STR: if any!
*qsje.ua0l:s>^["nqa-."gqs,.k''!			Delete <DIRECTORY> if any!
*qsj0uge-s.^[.-qsucqs,.xn!			Reset found flag (G) and put name in N!
*!next!.ua!try1!:s.mcf.^["e1ufzj'!		Find next MCF line, set F if no more!
*qf"e\utqt"g0a-15."eook1^[''otry1^['!ok1!.ub!	If no generation #, look again!
*qaj!try2!:s.scf.^["eqf+1ufqbj'!		Find next SCF line, set F if no more!
*qb-."g\utqt"g0a-15."eook2^[''otry2^[!ok2!.ub'!	If SCF before MCF and gen # exists, ok!
*qaj!try3!0up:s;per^["eqf+1ufzj'!		Find next ;PER, set F if no more!
*qb-."g0a-106."n0a-146."notry3^[''!		Next char must be f or look further!
*.ut:s^Sblock^S^["ezj'.-qb-25"lotry3^['! 	If BLOCK is close by, then look again!
*qtub1up'!					Set B to ;per position & set P!
*qaj!try4!:s;inc^["e3-qf"e!			Find next ;INC, quit if all finds failed!
*qaj.,zkgni
*^[oend^['0ufzj'.-z"n0a-114."n0a-154."notry4^['''! ;INC must be followed by L!
*qb-."lqbjqp"e0lcqa,.kqg"egn!			If .MCF. or .SCF. was next, kill text!i
*^['.usostart^['!				   and insert MCF or SCF name only!
*.ub2s^E[ ,	]^[-c:kqbj'!			Otherwise, ;Per, so kill variables!
*s^E[ ,	]^[qa,.kgn40-qc<i ^[>!			Kill text, insert MCF name and pad to 40 chars!
*<;putqt-140."gqt-173."l-dqt-40.i''!		Raise lowercase included file to uppercase!
*qt-15."e1; '>l1ugonext^[!			Stop on <CR>, set G flag and look again!
*!end!;wfoo.lst^[;x^[^[!			When done, write FOO.LST and exit!

@Sort
*Sort/record-size:80/key:41,40/key:1,40 foo.lst foo.one
*Sort/record-size:80/key:1,80 		foo.lst foo.two
*Exit

@Delete foo.lst

@Directory mcf:*.mcf,			!This gets the STR:<DIRECTORY> for IQL!
@No file-lines
@No summary-lines
@Output foo.dir
@

@Copy tty: foo.cmd;t			!This gets the job number for TV!
Information job-status
@^Z
@Take foo foo.log

@Define editor: sys:tv
@Define sys: ps:<rf00>,sys:
@Iql
*Uselibrary ps:<rf00>
*Edit mcf-cross-reference
*;rfoo.log^[;ysjob ^[!		Get current job #!
*i000^[s,^[.-4,.-1xj!		Pad w/0's on left and put 3 digits in QJ!
*hki;r^[gjiQRY^[33.ii;y^[2<33.i>^[^[! Make a command to read in the query!
*hxmgmjr;r^[;w^[r;y^[;x^[hxn!	Put into QN a command to write the query!
*mm^[^[!			Now get the query!
*;rfoo.dir^[;y^[^[!		And append the STR:<DIR> for MCF:!
*zj-2lk2d.uaeqa,.xd!		Move STR:<DIR> to QD!
*jsreference//^[-2ci for^[gdmn!	and thence to IQL's RPTHEAD sentence!^[^[

*Run using foo.one
*Print report/copies:<copies>/unit:Xerox/courier:<courier>
*Edit mcf-reference
*;rfoo.log^[;ysjob ^[!		Get current job #!
*i000^[s,^[.-4,.-1xj!		Pad w/0's on left and put 3 digits in QJ!
*hki;r^[gjiQRY^[33.ii;y^[2<33.i>^[^[! Make a command to read in the query!
*hxmgmjr;r^[;w^[r;y^[;x^[hxn!	Put into QN a command to write the query!
*mm^[^[!			Now get the query!
*;rfoo.dir^[;y^[^[!		And append the STR:<DIR> for MCF:!
*zj-2lk2d.uaeqa,.xd!		Move STR:<DIR> to QD!
*jsreference//^[-2ci for^[gdmn!	and thence to IQL's RPTHEAD sentence!^[^[

*Run using foo.two
*Print report/copies:<copies>/unit:Xerox/courier:<courier>
*Exit

@Delete foo.one,foo.two,foo.log,foo.dir
;Define option Independent-job yes
;Include end-of-job-procedure