Trailing-Edge
-
PDP-10 Archives
-
SRI_NIC_PERM_SRC_3_19910112
-
monitor/gtjfn.dif
There are 2 other files named gtjfn.dif in the archive. Click here to see a list.
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 1
LINE 1, PAGE 1
1) ;[SRI-NIC]SRC:<MONITOR>GTJFN.MAC.2, 11-Nov-88 00:01:36, Edit by MKL
1) ; v7 merge
1) ; comment out RELRNG kludge below to see if it still happens
1) ;[SRI-NIC]SRC:<6-1-MONITOR>GTJFN.MAC.4, 19-Apr-88 13:06:35, Edit by MKL
LINE 1, PAGE 1
2) ;[SRI-NIC]SRC:<6-1-MONITOR>GTJFN.MAC.4, 19-Apr-88 13:06:35, Edit by MKL
LINE 11, PAGE 1
1) ;<6-1-MONITOR.FT6>GTJFN.MAC.2, 11-Aug-85 19:34:51, Edit by WHP4
1) ;Stanford changes:
1) ; Changes for CWR's attribute lookup code
1)
1) ; Edit= 8801 to GTJFN.MAC on 17-Mar-88 by RASPUZZI
1) ;Prevent ILMNRFs or RELBADs by having GNJFN% and JFNS% use the JFNLCK when
1) ;dealing with important information in the JFN block.
1) ; UPD ID= 8524, RIP:<7.MONITOR>GTJFN.MAC.11, 9-Feb-88 15:52:44 by GSCOTT
1) ;TCO 7.1218 - Update copyright date.
1) ; UPD ID= 8413, RIP:<7.MONITOR>GTJFN.MAC.10, 4-Feb-88 12:08:17 by GSCOTT
1) ;TCO 7.1210 - Set NOSPLM normally not dumpable.
1) ; UPD ID= 8332, RIP:<7.MONITOR>GTJFN.MAC.9, 31-Dec-87 08:39:23 by RASPUZZI
1) ;More of TCO 7.1168 - Apparently, .CHWL1 is not defined in a useful place
1) ; like MONSYM. Add it here so GTJFN will compile.
1) ; UPD ID= 8331, RIP:<7.MONITOR>GTJFN.MAC.8, 29-Dec-87 11:14:44 by RASPUZZI
1) ;TCO 7.1168 - Prevent ASTJFN BUGHLTs by making GTJFN understand that a
1) ; file spec like "foo.boo;*" is illegal. It never worked and
1) ; and it never will.
1) ; UPD ID= 223, RIP:<7.MONITOR>GTJFN.MAC.7, 28-Oct-87 14:14:09 by MCCOLLUM
1) ;TCO 7.1095 - Make SETDEV handle parse-only the way it always used to.
1) ; UPD ID= 177, RIP:<7.MONITOR>GTJFN.MAC.6, 21-Oct-87 16:55:41 by MCCOLLUM
1) ;TCO 7.1078 - Don't clear JSUC for parse-only JFNs in SETDEV
1) ; UPD ID= 140, RIP:<7.MONITOR>GTJFN.MAC.5, 25-Sep-87 11:17:24 by GSCOTT
1) ;TCO 7.1064 - That fine VANISH routine broke labeled tapes, it should only
1) ; check to see if the "old" file exists if it is on disk. Clean up pagination.
1) ; UPD ID= 127, RIP:<7.MONITOR>GTJFN.MAC.4, 23-Sep-87 15:44:16 by MCCOLLUM
1) ;TCO 7.1063 - Make GTJFN% check for STRX10 in SETDEV
1) ; UPD ID= 26, RIP:<7.MONITOR>GTJFN.MAC.3, 29-Jun-87 16:36:43 by RASPUZZI
1) ;TCO 7.1014 - Implement partial file recognition.
1) ; *** Edit 7420 to GTJFN.MAC by RASPUZZI on 6-Mar-87
1) ; Prevent GTJFN% from ITRAPping by modifying edit 7300
1) ; *** Edit 7415 to GTJFN.MAC by RASPUZZI on 10-Feb-87
1) ; Teach routine GCH that "-" CRLF is a continuation of a line and not part of
1) ; the file specification
1) ; *** Edit 7408 to GTJFN.MAC by RASPUZZI on 31-Dec-86, for SPR #21410
1) ; Prevent RELRNG BUGCHKs by cleaning up the RELJFN code and putting back SETZMs
1) ; that edit 7371 moved.
1) ; *** Edit 7401 to GTJFN.MAC by KKLEINER on 20-Nov-86
1) ; At LCCH, don't upper-case characters if we are parsing a userid, password,
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 2
1) ; account, or optional data file attribute.
1) ; *** Edit 7393 to GTJFN.MAC by RASPUZZI on 18-Nov-86, for SPR #21272
1) ; Finally, restore the use of VANISH and wit for more things to break.
1) ; *** Edit 7386 to GTJFN.MAC by MCCOLLUM on 23-Oct-86
1) ; At ENDALS, make sure FILPRT is > 0, but only supply RH to RELFRE
1) ; *** Edit 7385 to GTJFN.MAC by MCCOLLUM on 22-Oct-86
1) ; Use only left half of FILPRT when release free space in ENDALS
1) ; *** Edit 7384 to GTJFN.MAC by MCCOLLUM on 15-Oct-86, for SPR #21288
1) ; Add ASGF2 to FILST1. This bit should ALWAYS shadow the state of ASGF in
1) ; FILSTS
1) ; *** Edit 7383 to GTJFN.MAC by RASPUZZI on 15-Oct-86
1) ; Remove call to VANISH. It still doesn't want to work with DUMPER
1) ; *** Edit 7381 to GTJFN.MAC by RASPUZZI on 14-Oct-86
1) ; Prevent PSINSKs and NOSKTRs by not letting VANISH leave us CSKED
1) ; *** Edit 7380 to GTJFN.MAC by RASPUZZI on 10-Oct-86, for SPR #21272
1) ; Save trashed AC before calling VERLUK
1) ; *** Edit 7379 to GTJFN.MAC by RASPUZZI on 9-Oct-86, for SPR #21272
1) ; Prevent CSKBUG BUGHLTs by not jumping to GNFAIL from IFNSK.
1) ; *** Edit 7377 to GTJFN.MAC by RASPUZZI on 7-Oct-86, for SPR #21272
1) ; Reinstall edit 7371 with nice things so it works.
1) ; *** Edit 7373 to GTJFN.MAC by RASPUZZI on 3-Oct-86
1) ; Remove edit 7371 until it works 100%.
1) ; *** Edit 7371 to GTJFN.MAC by RASPUZZI on 30-Sep-86, for SPR #21272
1) ; Prevent ILMNRFs by checking to see if current file exists before actually
1) ; doing a GNJFN%.
1) ; *** Edit 7345 to GTJFN.MAC by MCCOLLUM on 30-Jul-86, for SPR #21341
1) ; Call ASGJFN in USRJFN if the user-supplied JFN is used and .GJALT specified
1) ; *** Edit 7300 to GTJFN.MAC by RASPUZZI on 23-May-86, for SPR #21241
LINE 8, PAGE 1
2)
2) ; *** Edit 7300 to GTJFN.MAC by RASPUZZI on 23-May-86, for SPR #21241
LINE 81, PAGE 1
1) ; *** Edit 7206 to GTJFN.MAC by WAGNER on 4-Dec-85, for SPR #20941
1) ; Fix RELRNG bughlts caused by trying to release non-existant temp storage.
1) ; There is no temp storage when a JFN is transitional.
1) ; *** Edit 7194 to GTJFN.MAC by LOMARTIRE on 15-Nov-85 (TCO none)
LINE 13, PAGE 1
2)
2) ;------------------------- Autopatch Tape # 13 -------------------------
2) ; *** Edit 7206 to GTJFN.MAC by WAGNER on 4-Dec-85, for SPR #20941
2) ; Fix RELRNG bughlts caused by trying to release non-existant temp storage.
2) ; There is no temp storage when a JFN is transitional.
2) ;------------------------- Autopatch Tape # 12 -------------------------
2) ; *** Edit 7194 to GTJFN.MAC by LOMARTIRE on 15-Nov-85 (TCO none)
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 3
LINE 88, PAGE 1
1) ; UPD ID= 2263, SNARK:<6.1.MONITOR>GTJFN.MAC.59, 21-Jun-85 12:20:23 by LOMARTIRE
LINE 23, PAGE 1
2) ;<6-1-MONITOR.FT6>GTJFN.MAC.2, 11-Aug-85 19:34:51, Edit by WHP4
2) ;Stanford changes:
2) ; Add ? handling (see lines marked with SMXGTJ)
2) ; Partial recognition for filenames
2) ; Changes for CWR's attribute lookup code
2) ; Fix random punctuation
2) ;
2) ; UPD ID= 2263, SNARK:<6.1.MONITOR>GTJFN.MAC.59, 21-Jun-85 12:20:23 by LOMARTIRE
LINE 247, PAGE 1
1) ; COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1976, 1988.
1) ; ALL RIGHTS RESERVED.
1) ;
1) ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
1) ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE
1) ; INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER
1) ; COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
1) ; OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY
1) ; TRANSFERRED.
1) ;
1) ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
1) ; AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
1) ; CORPORATION.
1) ;
1) ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
1) ; SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY DIGITAL.
1)
1) ^L
1) SEARCH PROLOG
LINE 1, PAGE 2
2) ^L
2)
2) ;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED
2) ;OR COPIED ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE.
2) ;
2) ;COPYRIGHT (C) DIGITAL EQUIPMENT CORPORATION 1976, 1985.
2) ;ALL RIGHTS RESERVED.
2)
2)
2) SEARCH PROLOG
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 4
LINE 11, PAGE 2
1) .CHWL1==:"*" ;[7.1168] The other wildcard character
1)
LINE 19, PAGE 3
2)
LINE 51, PAGE 3
1) MSKSTR SAWSEM,FLAGS(TXT),1B16 ;[7.1168] Saw a semi-colon
1) ^L
LINE 1, PAGE 5
2) ^L
LINE 37, PAGE 6
1) ;..
1) ^L ;..
1) CC1($COLON) ; Colon
LINE 37, PAGE 8
2) CC1($COLON) ; Colon
LINE 33, PAGE 8
1) QBRK::! CALL QUEST ;[7.1014] (32) ?
1) WILDC::!CALL PCENT ;[7.1014] (33) Wildcard character
1) CARRET::!CALL DOCR ; (34) CARRIAGE RETURN
LINE 33, PAGE 9
2) IFE STANSW,< ; [SMXGTJ]
2) QBRK:! ERRLJF (GJFX34) ; (32) ?
2) WILDC:! CALL QUEST ;(33) WILD CARD CHARACTER
2) >;IFE STANSW ; [SMXGTJ]
2) IFN STANSW,< ; [SMXGTJ]
2) QBRK:! CALL QUEST ; (32) ?
2) WILDC:! CALL PCENT ;(33) WILD CARD CHARACTER
2) >;IFN STANSW ; [SMXGTJ]
2) CARRET::!CALL DOCR ; (34) CARRIAGE RETURN
LINE 7, PAGE 9
1) TRVAR <INFMOD,<INFCOC,2>,BKGCH,LDPTMP,LDCTMP,CRPTMP,CRCTMP> ;[7.1014]
1) ;INFMOD - SAVED RFMOD OF INPUT FILE IF ANY
1) ;INFCOC - SAVED RFCOC OF INPUT FILE IF ANY
1) ;BKGCH - BACKED UP CHARACTER FROM GCH
1) ;These next four locations are used to preserve the
1) ;TEXTI% context when GTJFN% is processing a "?"
1) ;LDPTMP - Byte pointer used by ILDB's
1) ;LDCTMP - Count of bytes in above string
1) ;CRPTMP - Current byte pointer
1) ;CRCTMP - Count of bytes in above byte pointer
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 5
1) SETZB TXT,BKGCH ; MARK THAT TXT IS NOT SET UP YET
LINE 7, PAGE 10
2) TRVAR <INFMOD,<INFCOC,2>,BKGCH>
2) ;INFMOD - SAVED RFMOD OF INPUT FILE IF ANY
2) ;INFCOC - SAVED RFCOC OF INPUT FILE IF ANY
2) ;BKGCH - BACKED UP CHARACTER FROM GCH
2) SETZB TXT,BKGCH ; MARK THAT TXT IS NOT SET UP YET
LINE 39, PAGE 9
1) ;..
1) ^L
1) ;..
1) CALL SETINF ;SETUP FILES IF NECESSARY
LINE 33, PAGE 10
2) CALL SETINF ;SETUP FILES IF NECESSARY
LINE 1, PAGE 11
1) ^L
1) ;INITIALIZATION CONTINUES...SETUP BLOCK TO BE USED BY RDTXT FOR INPUT
LINE 62, PAGE 10
2)
2) ;INITIALIZATION CONTINUES...SETUP BLOCK TO BE USED BY RDTXT FOR INPUT
LINE 18, PAGE 13
1) ;..
1) ^L
1) ;NOT A STRING. READ THE FILE
LINE 18, PAGE 11
2)
2) ;NOT A STRING. READ THE FILE
LINE 17, PAGE 15
1) TMNN <SAWSEM> ;[7.1168] Did we just see a semi-colon?
1) IFSKP. ;[7.1168] If so,
1) CAIE A,.CHWL1 ;[7.1168] Is it followed with a *?
1) IFSKP. ;[7.1168] If so,
1) MOVEI A,GJFX40 ;[7.1168] Say undefined attribute
1) JRST ERRDO ;[7.1168] And clean up
1) ENDIF. ;[7.1168]
1) ENDIF. ;[7.1168]
1) TMNE <CNTVF> ; Control-v pending?
LINE 17, PAGE 12
2) TMNE <CNTVF> ; Control-v pending?
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 6
LINE 30, PAGE 15
1) ;..
1) ^L ;..
1) MOVX B,SAWSEM ;[7.1168] Check if a semi-colon was typed
1) CAIE A,73 ;[7.1168] Was it?
1) IFSKP. ;[7.1168] If so,
1) IORM B,FLAGS(TXT) ;[7.1168] Say we have seen a semi colon
1) ELSE. ;[7.1168]
1) ANDCAM B,FLAGS(TXT) ;[7.1168] No semi colon this time
1) ENDIF. ;[7.1168]
1) MOVX B,SAWCR ;SEE IF JUST SAW A CR
LINE 22, PAGE 12
2) MOVX B,SAWCR ;SEE IF JUST SAW A CR
LINE 39, PAGE 16
1)
1) GTJF21: XCT CHDTB(B) ; Execute the dispatch table
LINE 52, PAGE 12
2) GTJF21: XCT CHDTB(B) ; Execute the dispatch table
LINE 1, PAGE 17
1) ^L
1) ;MAIN STRING EXHAUSTED
LINE 59, PAGE 12
2)
2) ;MAIN STRING EXHAUSTED
LINE 1, PAGE 20
1) ^L
1) ; Simple characters
1)
1) LCCH: MOVX B,ARBATF ;[7401]Are we collecting an attribute
1) TDNN B,FLAGS(TXT) ;[7401] argument now?
1) JRST LCCH1 ;[7401]No, go ahead and convert to uppercase
1) MOVE B,PREFIX(TXT) ;[7401]Yes, find out which attribute
1) CAIE B,.PFPWD ;[7401]Is it a password?
1) CAIN B,.PFUDT ;[7401]Or a userid?
1) JRST UCCH ;[7401]Yes, so don't uppercase it
1) CAIE B,.PFACN ;[7401]The same goes for network account
1) CAIN B,.PFOPT ;[7401]Or the optional data
1) JRST UCCH ;[7401]Yes, so don't uppercase it
1) LCCH1: SUBI A,40 ;[7401] Convert lower case to upper
1) UCCH: TQZ <NUMFF> ; Number is invalid now
LINE 27, PAGE 13
2)
2) ; Simple characters
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 7
2)
2) LCCH: SUBI A,40 ; Convert lower case to upper
2) UCCH: TQZ <NUMFF> ; Number is invalid now
LINE 1, PAGE 25
1) ^L
1) ;DEFAULT THE NODE NAME IF GIVEN
LINE 13, PAGE 16
2)
2) ;DEFAULT THE NODE NAME IF GIVEN
LINE 7, PAGE 26
1) TXNN E,-1B17 ;[7298] Have JFN block?
1) TQNN JFNRD ;EXTENDED JFN BLOCK?
1) RETSKP ;NO, DEFAULT NODE NOT PROVIDED
1) XCTU [HRRZ A,.GJF2(E)];[7298] Get count in extended GTJFN block
LINE 19, PAGE 16
2) ;**;[7298] Change 1 line at DEFNOD:+3 MDR 22-MAY-86
2) TXNN E,-1B17 ;[7298] Have JFN block?
2) TQNN JFNRD ;EXTENDED JFN BLOCK?
2) RETSKP ;NO, DEFAULT NODE NOT PROVIDED
2) ;**;[7298] Add 3 lines at DEFNOD:+6 MDR 22-MAY-86
2) XCTU [HRRZ A,.GJF2(E)];[7298] Get count in extended GTJFN block
LINE 13, PAGE 28
1) ENDSDV: TQNN <ASTAF,OSTRF> ;[7.1014] Stars allowed?
1) RETBAD (GJFX31) ;[7.1014] No give bad return
1) CALL STRDEV ; SET UP FIRST STR IN LIST
LINE 13, PAGE 18
2) ENDSDV:
2) IFN STANSW,< ; [SMXGTJ]
2) TQNN <ASTAF,OSTRF> ; STARS ALLOWED?
2) RETBAD (GJFX31) ; NO. GIVE BAD RETURN
2) >;IFN STANSW ; [SMXGTJ]
2) CALL STRDEV ; SET UP FIRST STR IN LIST
LINE 1, PAGE 29
1) ^L
1) ;ROUTINE TO CHECK THE SYNTAX OF STARED DEVICE FIELD
LINE 26, PAGE 18
2)
2) ;ROUTINE TO CHECK THE SYNTAX OF STARED DEVICE FIELD
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 8
LINE 1, PAGE 33
1) ^L
1) STRDIR: TQNN <ASTAF,OSTRF> ;[7.1014] Stars allowed?
1) RETBAD (GJFX31) ;[7.1014] No, give bad return
1) MOVE A,FLAGS(TXT) ; SEE IF A WILD MASK
LINE 36, PAGE 20
2)
2) STRDIR:
2) IFN STANSW,< ; [SMXGTJ]
2) TQNN <ASTAF,OSTRF> ; STARS ALLOWED?
2) RETBAD (GJFX31) ; NO. GIVE BAD RETURN
2) >;IFN STANSW ; [SMXGTJ]
2) MOVE A,FLAGS(TXT) ; SEE IF A WILD MASK
LINE 2, PAGE 37
1) STARNM: TQNN <ASTAF,OSTRF> ;[7.1014] Stars allowed?
1) RETBAD (GJFX31) ;[7.1014] No give bad return
1) MOVE A,FLAGS(TXT) ; SEE IF A WILD MASK
LINE 2, PAGE 23
2) STARNM:
2) IFN STANSW,< ; [SMXGTJ]
2) TQNN <ASTAF,OSTRF> ; STARS ALLOWED?
2) RETBAD (GJFX31) ; NO. GIVE BAD RETURN
2) >;IFN STANSW ; [SMXGTJ]
2) MOVE A,FLAGS(TXT) ; SEE IF A WILD MASK
LINE 1, PAGE 39
1) ^L
1) ENDEX1: TQZN <PRTFF> ; Were we collecting a protection
LINE 50, PAGE 24
2)
2) ENDEX1: TQZN <PRTFF> ; Were we collecting a protection
LINE 12, PAGE 40
1) STREXT: TQNN <ASTAF,OSTRF> ;[7.1014] Stars allowed
1) RETBAD (GJFX31) ;[7.1014] No, give bad return
1) MOVE A,FLAGS(TXT) ; SEE IF A WILD MASK
LINE 61, PAGE 24
2) STREXT:
2) IFN STANSW,< ; [SMXGTJ]
2) TQNN <ASTAF,OSTRF> ; STARS ALLOWED?
2) RETBAD (GJFX31) ; NO. GIVE BAD RETURN
2) >;IFN STANSW ; [SMXGTJ]
2) MOVE A,FLAGS(TXT) ; SEE IF A WILD MASK
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 9
LINE 1, PAGE 41
1) ^L
1) ENDEX5: MOVX A,PREFXF ;GATHERING A PREFIX?
LINE 107, PAGE 24
2)
2) ENDEX5: MOVX A,PREFXF ;GATHERING A PREFIX?
LINE 40, PAGE 42
1) STRVR1: CALL GTVER ;[7.1014] (/A) Lookup this version
1) JRST STEPLN ; GO TRY TO STEP LOGICAL NAME
1) MOVX B,VERFF ;[7.1014] No longer looking for version after
1) ANDCAM B,FLAGS(TXT) ;[7.1014] we have obtained one
1) JRST ENDEX0
1)
1) STRVER: TQNN <ASTAF,OSTRF> ;[7.1014] Stars allowed?
1) RETBAD (GJFX31) ;[7.1014] Nope
1) TQO <VERSF,STEPF>
LINE 146, PAGE 24
2) IFE STANSW,<
2) STRVR1: CALL VERLUK ; Lookup this version
2) JRST STEPLN ; GO TRY TO STEP LOGICAL NAME
2) HRRM A,FILVER(JFN)
2) MOVEM B,FILFDB(JFN) ; REMEMBER THE FDB ADDRESS
2) TQO <VERTF> ; Remember that version was input
2) >;IFE STANSW
2) IFN STANSW,< ; [SMXGTJ]
2) STRVR1: CALL GTVER ; LOOKUP THIS VERSION (AND CHECK ACCESS)
2) JRST STEPLN ; GO TRY TO STEP LOGICAL NAME
2) >;IFN STANSW ; [SMXGTJ]
2) IFN STANSW,< ;[CWR] THIS SHOULD PROBABLY BE A BUG FIX,
2) MOVX B,VERFF ;[CWR] AS WE'RE NO LONGER LOOKING FOR A VERSION
2) ANDCAM B,FLAGS(TXT) ;[CWR] AFTER WE'VE SAID WE'VE GOTTEN ONE
2) >;IFN STANSW
2) JRST ENDEX0
2)
2) STRVER:
2) IFN STANSW,< ; [SMXGTJ]
2) TQNN <ASTAF,OSTRF> ; STARS ALLOWED?
2) RETBAD (GJFX31) ; NO. GIVE BAD RETURN
2) >;IFN STANSW ; [SMXGTJ]
2) TQO <VERSF,STEPF>
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 10
LINE 32, PAGE 45
1) ;..
1) ^L ;..
1)
1) DEFDV0: TQZE <DFSTF>
LINE 32, PAGE 27
2) DEFDV0: TQZE <DFSTF>
LINE 1, PAGE 47
1) ^L
1) DEFSDV: CALL STRDVD ;CHECK SYNTAX OF STAR IN DEVICE FIELD
1) RETBAD () ;ILLEGAL SYNTAX
1) JRST DFDV0A ;NOW HAVE THE FIRST DEVICE NAME
1)
1) DEFDV1: MOVEI B,3 ; Need 3 words TO HOLD STR NAME
LINE 57, PAGE 27
2)
2) DEFSDV: CALL STRDVD ;CHECK SYNTAX OF STAR IN DEVICE FIELD
2) RETBAD () ;ILLEGAL SYNTAX
2) JRST DFDV0A ;NOW HAVE THE FIRST DEVICE NAME
2) ^L
2) DEFDV1: MOVEI B,3 ; Need 3 words TO HOLD STR NAME
LINE 1, PAGE 49
1) ^L
1) DFDVL0: NOINT ;PUT LOGICAL NAME STRING INTO FILLNM
LINE 24, PAGE 28
2)
2)
2) DFDVL0: NOINT ;PUT LOGICAL NAME STRING INTO FILLNM
LINE 36, PAGE 52
1) ;..
1) ^L ;..
1) SETZ B, ;THIS JSB IS MAPPED
LINE 36, PAGE 30
2) SETZ B, ;THIS JSB IS MAPPED
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 11
LINE 7, PAGE 53
1) CALL CHKMNT ;[7.1063](T1,T2/T1)Did user mount this structure
1) IFNSK. ;[7.1063]If not...
1) UNLOCK JSSTLK ;[7.1063]Unlock structure info lock in JSB
1) OKINT ;[7.1063]Allow interrupts now
1) TQNN <ASTF> ;[7.1095]Parse-only?
1) RETBAD () ;[7.1095]Return the error
1) SETZ C, ;[7.1095]Yes, structure is ok
1) HRRM C,FILIDX(JFN) ;[7.1095]Clear index into device tables
1) STOR C,FLUC,(JFN) ;[7.1095]Clear unique code
1) MOVEM C,FILDEV(JFN) ;[7.1095]Clear device
1) RETSKP ;[7.1095]Return success
1) ENDIF. ;[7.1063]
1) UNLOCK JSSTLK ;[7.1063]Unlock structure info lock in JSB
1) OKINT ;[7.1063]Allow interrupts now
1) LOAD A,STR,(JFN) ;[7.1063]Get structure number
1) CALL CKSTOF ;[7.1063](T1/T1)Is structure offline?
1) RETBAD () ;[7.1063]Return "Structure is offline"
1) RETSKP ;[7.1063]Return +2 to caller
1)
LINE 41, PAGE 30
2) CALL CHKMNT ;DID USER MOUNT THIS STRUCTURE
2) JRST [ UNLOCK JSSTLK ; NO, FAIL
2) OKINT ;ALLOW INTERRUPTS NOW
2) TQNN <ASTF> ;PARSE-ONLY?
2) RETBAD ;NO
2) SETZ C, ;YES, STRUCTURE IS OK
2) HRRM C,FILIDX(JFN) ;CLEAR INDEX INTO DEVICE TABLES
2) STOR C,FLUC,(JFN) ;CLEAR UNIQUE CODE
2) MOVEM C,FILDEV(JFN) ;CLEAR DEVICE
2) RETSKP]
2) UNLOCK JSSTLK ;UNLOCK STR INFO LOCK IN JSB
2) OKINT ;ALLOW INTERRUPTS NOW
2) RETSKP ;RETURN SUCCESSFULLY
2)
LINE 1, PAGE 60
1) ^L
1) DEFDI1: BLCAL. DSKOK,<<FILDEV(JFN)>> ;REAL DISK?
LINE 49, PAGE 36
2)
2) DEFDI1: BLCAL. DSKOK,<<FILDEV(JFN)>> ;REAL DISK?
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 12
LINE 1, PAGE 62
1) ^L
1) ;HERE IF DIRECTORY LOOKUP FAILED
LINE 84, PAGE 36
2)
2) ;HERE IF DIRECTORY LOOKUP FAILED
LINE 1, PAGE 65
1) ^L
1) ;ROUTINE TO GET THE DIRECTORY # FROM STRING AND UPDATE FILDDN(JFN)
LINE 40, PAGE 37
2)
2)
2) ;ROUTINE TO GET THE DIRECTORY # FROM STRING AND UPDATE FILDDN(JFN)
LINE 1, PAGE 69
1) ^L
1) DFSTRN: MOVE A,FLAGS(TXT) ; SEE IF A WILD MASK
LINE 43, PAGE 39
2)
2) DFSTRN: MOVE A,FLAGS(TXT) ; SEE IF A WILD MASK
LINE 30, PAGE 73
1) IFNSK. ;[7.1014]
1) TQNN <ASTAF,OSTRF> ;[7.1014] Stars allowed?
1) TQNE <ASTF> ;[7.1014] * already seen?
1) SKIPA ;[7.1014] Allow it
1) RETBAD (GJFX31) ;[7.1014] No, give an error now
1) JRST DFSTRV ;[7.1014] Yes, default the version to *
1) ENDIF. ;[7.1014]
1) CAMN A,[-2] ;-2 MEANS LOWEST
LINE 30, PAGE 42
2) IFE STANSW,< ; [SMXGTX]
2) JRST [ TQNN <ASTAF> ;STARS ALLOWED?
2) >;IFE STANSW
2) IFN STANSW,< ; [SMXGTX]
2) JRST [ TQNN <ASTAF,OSTRF> ;STARS ALLOWED?
2) >;IFN STANSW
2) TQNE <ASTF> ;* ALREADY SEEN?
2) SKIPA ;ALLOW IT
2) RETBAD (GJFX31) ;NO, GIVE AN ERROR NOW
2) JRST DFSTRV] ;YES, DEFAULT THE VERSION TO *
2) CAMN A,[-2] ;-2 MEANS LOWEST
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 13
LINE 43, PAGE 73
1) ;..
1) ^L ;..
1) DEFVR2: CALL GTVER ;[7.1014] (/A) Extant?
1) JRST STEPLN ;[7.1014] No, step logical name
1) MOVE B,A
LINE 46, PAGE 42
2) IFE STANSW,< ; [SMXGTJ]
2) DEFVR2: CALL VERLUK ; Extant?
2) JRST STEPLN ; NO, STEP THE LOGICAL NAME
2) HRRM A,FILVER(JFN)
2) MOVEM B,FILFDB(JFN) ; REMEMBER THE FDB ADDRESS
2) >;IFE STANSW ; [SMXGTJ]
2) IFN STANSW,< ; [SMXGTJ]
2) DEFVR2: CALL GTVER ; EXTANT? (AND CHECK ACESS)
2) JRST STEPLN ; NO, STEP THE LOGICAL NAME
2) >;IFN STANSW ; [SMXGTJ]
2) MOVE B,A
LINE 37, PAGE 75
1) ;..
1) ^L ;..
1) DEFAT4: AOS A,DEFATA ;GET ADDRESS OF NEXT ATTRIBUTE
LINE 37, PAGE 43
2) DEFAT4: AOS A,DEFATA ;GET ADDRESS OF NEXT ATTRIBUTE
LINE 1, PAGE 77
1) ^L
1) ;ROUTINE TO CHECK IF AN ATTRIBUTE IS ON THE CHAIN ALREADY
LINE 58, PAGE 43
2)
2)
2) ;ROUTINE TO CHECK IF AN ATTRIBUTE IS ON THE CHAIN ALREADY
LINE 1, PAGE 79
1) ^L
1) ;ROUTINE TO ADD AN ATTRIBUTE TO THE CHAIN
LINE 72, PAGE 43
2)
2)
2) ;ROUTINE TO ADD AN ATTRIBUTE TO THE CHAIN
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 14
LINE 1, PAGE 81
1) ^L
1) ;ROUTINE TO LINK AN ATTRIBUTE ONTO THE ATTRIBUTE LIST
LINE 93, PAGE 43
2)
2)
2) ;ROUTINE TO LINK AN ATTRIBUTE ONTO THE ATTRIBUTE LIST
LINE 1, PAGE 83
1) ^L
1) ;ROUTINE TO READ AND PARSE A DEFAULT PREFIX STRING
LINE 108, PAGE 43
2)
2)
2) ;ROUTINE TO READ AND PARSE A DEFAULT PREFIX STRING
LINE 53, PAGE 88
1) ;..
1) ^L ;..
1) REDFL4: MOVE C,STTSAV ; RESTORE POINTER
LINE 53, PAGE 47
2) REDFL4: MOVE C,STTSAV ; RESTORE POINTER
LINE 1, PAGE 90
1) ^L
1) REDQST: MOVX C,DWLDF ; SAY SAW A WILD MASK
LINE 85, PAGE 47
2)
2) REDQST: MOVX C,DWLDF ; SAY SAW A WILD MASK
LINE 2, PAGE 92
1) ;ROUTINE TO COPY A LOGICAL NAME DEFAULT INTO THE DEFAULT STRING
LINE 2, PAGE 48
2)
2) ;ROUTINE TO COPY A LOGICAL NAME DEFAULT INTO THE DEFAULT STRING
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 15
LINE 1, PAGE 94
1) ^L
1) ;ROUTINE TO COMPARE ACCOUNT STRINGS
LINE 18, PAGE 49
2)
2)
2) ;ROUTINE TO COMPARE ACCOUNT STRINGS
LINE 15, PAGE 99
1) IFNSK. ;[7.1014] Extension lookup failed
1) POP P,FILOPT(JFN) ;[7.1014] Get FILOPT back
1) IFQN. AMBGF ;[7.1014] If ambiguous, recognize what we can
1) MOVE B,FILOPT(JFN) ;[7.1014] Our work string
1) CALL TSTRQ ;[7.1014] (B/) Do the work
1) RET ;[7.1014] Pass error back
1) ENDIF. ;[7.1014]
1) TQNE <OLDNF> ;[7.1014] If old file desired,
1) JRST RFALSE ;[7.1014] Go step logical name
1) RET ;[7.1014] Else return
1) ENDIF. ;[7.1014]
1) MOVEM A,FILFDB(JFN) ; REMEMBER THE FDB ADDRESS
LINE 15, PAGE 53
2) JRST [ POP P,FILOPT(JFN)
2) IFE STANSW,<
2) JN AMBGF,,R ;IF AMBIGUOUS...
2) >;IFE STANSW
2) IFN STANSW,< ; Partial recognition
2) IFQN. AMBGF
2) MOVE B,FILOPT(JFN)
2) CALL TSTRQ ; Recognize what we can
2) RET
2) ENDIF.
2) > ;IFN STANSW ; Partial recognition
2) TQNE <OLDNF> ;IF OLD FILE DESIRED,
2) JRST RFALSE ;GO STEP LOGICAL NAME
2) RET]
2) MOVEM A,FILFDB(JFN) ; REMEMBER THE FDB ADDRESS
LINE 15, PAGE 102
1) IFNSK. ;[7.1014] Name lookup failed
1) POP P,FILOPT(JFN) ;[7.1014] Get FILOPT back
1) IFQN. AMBGF ;[7.1014] If ambiguous,
1) MOVE B,FILOPT(JFN) ;[7.1014] Get working string
1) CALL TSTRQ ;[7.1014] (B/) Recognize all that we can
1) JRST RFALSE ;[7.1014] The return ambiguous
1) ENDIF. ;[7.1014]
1) TQNN <OLDNF> ;[7.1014] New files allowed?
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 16
1) TQNE <NREC> ;[7.1014] And trying to recognize?
1) JRST STEPLN ;[7.1014] Yes, go step logical name
1) JRST RFALSE ;[7.1014] No, return ambiguous
1) ENDIF.
1) MOVEM A,FILFDB(JFN) ; REMEMBER THE FDB ADDRESS
LINE 15, PAGE 56
2) JRST [ POP P,FILOPT(JFN)
2) IFE STANSW,<
2) JN AMBGF,,RFALSE ;IF AMBIGUOUS
2) >;IFE STANSW
2) IFN STANSW,< ; Partial recognition
2) IFQN. AMBGF
2) MOVE B,FILOPT(JFN)
2) CALL TSTRQ ; Recognize what we can
2) JRST RFALSE
2) ENDIF.
2) > ;IFN STANSW ; Partial recognition
2) TQNN <OLDNF> ;NEW FILES ALLOWED?
2) TQNE <NREC> ;AND TRYING TO RECOGNIZE?
2) JRST STEPLN ;YES, GO STEP LOGICAL NAME
2) JRST RFALSE] ;NO, RETURN AMBIG
2) MOVEM A,FILFDB(JFN) ; REMEMBER THE FDB ADDRESS
LINE 42, PAGE 105
1) ;..
1) ^L ;..
1) MOVE C,FILCNT(JFN)
LINE 42, PAGE 59
2) MOVE C,FILCNT(JFN)
LINE 25, PAGE 106
1) ;..
1) ^L ;..
1) MOVE C,FLAGS(TXT) ;SEE IF GETTING AN ATTRIBUTE
LINE 65, PAGE 59
2) MOVE C,FLAGS(TXT) ;SEE IF GETTING AN ATTRIBUTE
LINE 37, PAGE 107
1) ;..
1) ^L ;..
1) ENDAL4: TQNE <NNAMF> ; NO NAME DEVICE?
LINE 100, PAGE 59
2) ENDAL4: TQNE <NNAMF> ; NO NAME DEVICE?
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 17
LINE 49, PAGE 108
1) ;..
1) ^L ;..
1) ENDAL9: TXNN F1,DIRSF!NAMSF!EXTSF!VERSF
LINE 147, PAGE 59
2) ENDAL9: TXNN F1,DIRSF!NAMSF!EXTSF!VERSF
LINE 12, PAGE 110
1) MOVEI B,ACCTSR-1 ;POINT TO ACCOUNT STRING
1) MOVN A,ACCTSL
1) HRLI B,2(A) ;LOOKUP POINTER TO ACCOUNT
LINE 12, PAGE 60
2) IFE STANSW,<
2) MOVEI B,ACCTSR-1 ;POINT TO ACCOUNT STRING
2) MOVN A,ACCTSL
2) >;IFE STANSW
2) IFN STANSW,< ;;FOR SOME REASON, ALTHOUGH IN GLOBS, THIS SYMBOL IS
2) ;; UNDEFINED. MACRO BUG? -KSL 27-APR-85
2) MOVEI B,ACCTSR##-1 ;POINT TO ACCOUNT STRING
2) MOVN A,ACCTSL##
2) >;IFN STANSW
2) HRLI B,2(A) ;LOOKUP POINTER TO ACCOUNT
LINE 38, PAGE 110
1) ;..
1) ^L ;..
1) ENDALS: CALL STRUSR ;RETURN FILE NAME TO THE USER
LINE 45, PAGE 60
2) ENDALS: CALL STRUSR ;RETURN FILE NAME TO THE USER
LINE 9, PAGE 111
1) SETZM FILPRT(JFN) ; AND PROTECTION WORD
LINE 52, PAGE 60
2) SKIPLE B,FILPRT(JFN)
2) CALL RELFRE ; And protection
2) SETZM FILPRT(JFN) ; AND PROTECTION WORD
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 18
LINE 30, PAGE 111
1) SETZRO ASGF2,(JFN) ;[7384]CLEAR ASGF SHADOW BIT
1) OKINT
LINE 75, PAGE 60
2) OKINT
LINE 52, PAGE 111
1) ;..
1) ^L ;..
1) ENDA51: TQNN <OSTRF> ;Real file
LINE 96, PAGE 60
2) ENDA51: TQNN <OSTRF> ;Real file
LINE 6, PAGE 114
1) MOVE A,FILCNT(JFN) ;[7.1014] Allow *'s so *? can give directory listing
1) MOVE B,CNTWRD(TXT) ;GET MAX VALUE
LINE 6, PAGE 62
2) IFE STANSW,< ; [SMXGTJ]
2) TQNN <ASTF> ;* ALREADY SEEN?
2) TQNE <ASTAF>
2) SKIPA A,FILCNT(JFN) ;ALLOW IT
2) RETBAD (GJFX31) ; Illegal *
2) >;IFE STANSW ; [SMXGTJ]
2) IFN STANSW,< ; [SMXGTJ]
2) MOVE A,FILCNT(JFN) ; ALLOW STARS SO *? CAN GIVE DIRECTORY LISTING
2) >;IFN STANSW ; [SMXGTJ]
2) MOVE B,CNTWRD(TXT) ;GET MAX VALUE
LINE 21, PAGE 114
1) PCENT: TQNE <NUMFF> ;[7.1014] FOR WILD CHARS. ON A NUMBER?
1) RETBAD (GJFX4) ; YES. ILLEGAL CHARACTER THEN
1) CALL DPST ; SAVE BYTE
1) RETBAD() ; NO ROOM
1) MOVX A,WLDF ; FOR FLAGS
LINE 29, PAGE 62
2) IFE STANSW,< ; [SMXGTJ]
2) QUEST:
2) >;IFE STANSW ; [SMXGTJ]
2) IFN STANSW,< ; [SMXGTJ]
2) PCENT: ; MAKE ROUTINE NAME MEANINGFUL
2) >;IFN STANSW ; [SMXGTJ]
2) TQNE <NUMFF> ; FOR WILD CHARS. ON A NUMBER?
2) RETBAD (GJFX4) ; YES. ILLEGAL CHARACTER THEN
2) CALL DPST ; SAVE BYTE
2) RETBAD() ; NO ROOM
2) IFE STANSW,< ; [SMXGTJ] ALLOW STARS SO *? GIVES DIR LISTING
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 19
2) TQNN <ASTF> ;* ALREADY SEEN?
2) TQNE <ASTAF> ; STARS ALLOWED?
2) IFSKP. <
2) RETBAD (GJFX31)> ; NO. GIVE BAD RETURN
2) >;IFE STANSW ; [SMXGTJ]
2) MOVX A,WLDF ; FOR FLAGS
LINE 2, PAGE 115
1) ;[7.1014]
1) ; The following routines handle user question mark input. This is entered
1) ; from the input char dispatch table. If the input is NIL, this will return
1) ; immediately. Otherwise, list the candidates for the field currently being
1) ; entered if no previous field had a wild card. If no candidates are found,
1) ; break with GJFX34. Scan for candidates is terminated on last one.
1) ;
1) ;QUEST - Routine dispatched to when "?" is seen.
1) ;
1) ; Called with:
1) ; TEXTI% context setup
1) ; CALL through dispatch table when "?" is seen
1) ;
1) ; Returns:
1) ; +1 - Always
1)
1) QUEST: MOVE A,CURCNT(TXT) ;Get current string
1) AOS A ;Move one past (should be a null)
1) CAML A,STRCNT(TXT) ;Was "?" first thing typed?
1) ERRLJF GJFX34 ;Yes, then break on it
1) TQNE <OSTRF> ;GJ%OFG, parse only?
1) TQNE <ASTAF> ;GJ%IFG, normal indexable bit?
1) SKIPA ;No to either
1) ERRLJF GJFX34 ;GJ%OFG and not GJ%IFG, this prevents a loop
1) CALL INFTST ;(/A) Test for no input JFN
1) ERRLJF GJFX34 ;None so break out now
1) MOVEI A,.CHNUL ;Erase the "?"...
1) DPB A,CURPNT(TXT) ;...by overwriting it with a null
1) MOVE B,LDPNT(TXT) ;Save TEXTI% context by putting
1) MOVEM B,LDPTMP ; these variables in the TRVAR
1) MOVE B,LDCNT(TXT)
1) MOVEM B,LDCTMP
1) MOVE B,CURPNT(TXT)
1) MOVEM B,CRPTMP
1) MOVE B,CURCNT(TXT)
1) MOVEM B,CRCTMP
1) TQNN <DEVF> ;Device specified
1) CALL DEFDEV ;(/DEV) No, so get default
1) HRRZ B,FILDEV(JFN) ;Has to be some flavor of DSK:
1) CAIE B,DSKDTB ;On disk?
1) JRST QUEST2 ;Nope, ding user and restart
1) TQO <NREC> ;Turn off recognition
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 20
1) TQNE <EXTFF> ;Extension being specified?
1) CALLRET QEXTN ;Yes
1) TQNN <NAMF> ;Name specified?
1) CALLRET QNAM ;No, must be entering it
1) TQNN <VERF> ;Version specified?
1) CALLRET QVER ;No, must be entering it
1) JRST QUEST3 ;Must be in STR or DIR field, no help
1) ^L
1) QUEST2: CALL DING ;(/) Can't help in any later fields
1) QUEST3: MOVE A,CRCTMP ;Now restore TEXTI% context from TRVAR
1) MOVEM A,CURCNT(TXT)
1) MOVE A,CRPTMP
1) MOVEM A,CURPNT(TXT)
1) MOVE A,LDCTMP
1) MOVEM A,LDCNT(TXT)
1) MOVE A,LDPTMP
1) MOVEM A,LDPNT(TXT)
1) MOVE A,MPP ;Get saved stack pointer
1) MOVE A,0(A) ;Find out what is there
1) TXNE A,IMCFLG ;Last call internal?
1) ERRLJF (GJFX34) ;Yes, return illegal "?" error to COMND%
1) CALL RETYPE ;(/) Retype the input text
1) CALL BACKIT ;(/) Backup over the NUL (was the "?")
1) ; CALLRET RESCAN ;Re-establish TEXTI% context
1) ^L
1) ;RESCAN - Routine to initiate a rescan of the user's input.
1) ;The JFN block is initialized.
1) ;
1) ; Call with:
1) ; TESTI% arguments setup
1) ; CALL RESCAN
1) ;
1) ; Returns:
1) ; +1 - Error,
1) ; A/ Error code
1) ; +2 - Success, String retyped on screen
1)
1) RESCAN: STKVAR <TMPFLN> ;Save TEXTI% buffer here
1) NOINT ;Touching sensitive things
1) HLRZ A,FILLNM(JFN) ;Preserve TEXTI% buffer info
1) MOVEM A,TMPFLN ; in this location
1) HRRZS FILLNM(JFN) ;Now make believe it isn't there
1) CALL RELJFN ;(JFN/) Go cleanup
1) CALL ASGJFN ;(/JFN) Go get another JFN
1) IFNSK.
1) MOVEI A,JSBFRE ;None left
1) SKIPE B,TMPFLN ;If there is something to release,
1) CALL RELFRE ;(B/) The release it
1) ERRLJF GJFX3 ;Return error to user
1) ENDIF.
1) MOVE A,TMPFLN ;Setup old retype stuff
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 21
1) HRLM A,FILLNM(JFN)
1) OKINT ;Now we can be interrupted
1) XCTU [HLLZ F,0(E)] ;Get user flags again
1) SETZ F1, ; and clear others
1) MOVE A,STRPNT(TXT) ;Reinitialize pointer to input string
1) MOVEM A,LDPNT(TXT)
1) SETZM LDCNT(TXT) ;Zap input count
1) CALL SETTMP ;(JFN/) Get another temp block and continue
1) RETBAD() ;Something is wrong
1) RETSKP ;Return to GCH loop
1) ^L
1) ;[7.1014]
1) ;QNAM - Routine that is called when a question mark has been entered
1) ;in the file name part of the file spec. This routine is the first
1) ;step when printing out a list of candidates for the name field.
1) ;
1) ; Call with:
1) ; TEXTI% arguments setup
1) ; CALLRET QNAM
1) ;
1) ; Returns:
1) ; JRST QUEST3 - When finished
1)
1) QNAM: TQNN <DIRSF> ;Any directory *'s?
1) CALL QSNAM ;(/) No, append star and find first file
1) IFSKP. ;If first one found
1) DO. ;Loop through all candidates
1) LOAD A,FLNSB,(JFN) ;Print this name
1) CALL QNXTL ;(A/) Do the printing
1) CALL QVNAM0 ;(A/) Now look for next name
1) EXIT. ;No more, retype
1) LOOP. ;Do next candidate
1) ENDDO.
1) ENDIF.
1) JRST QUEST3 ;No directory match
1) ^L
1) ;[7.1014]
1) ;QEXTN - Routine that is called when a question mark has been entered
1) ;in the extension part of the file spec. This routine is the first
1) ;step when printing out a list of candidates for the extension field.
1) ;
1) ; Call with:
1) ; TEXTI% arguments setup
1) ; CALLRET QEXTN
1) ;
1) ; Returns:
1) ; JRST QUEST3 - When finished
1)
1) QEXTN: TQNN <DIRSF,NAMSF> ;Any directory or name *'s?
1) CALL QSEXT ;(/) No, append star and find first file
1) IFSKP. ;If first one found
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 22
1) DO.
1) LOAD A,FLESB,(JFN) ;Print this name
1) MOVE B,1(A) ;Look at the first word of the string
1) TLNE B,774000 ;Is first character a NUL?
1) IFSKP. ;It is null
1) MOVEI A,[ASCIZ /[Null]/] ;It is, so make dummy entry
1) SOS A ;Set up as string block
1) ENDIF.
1) CALL QNXTL ;(A/) Print out string
1) CALL QVEXT0 ;(A/) Now look for next extension
1) EXIT. ;None left, retype
1) LOOP. ;Do next candidate
1) ENDDO.
1) ENDIF.
1) JRST QUEST3 ;Stars somewhere or no match
1) ^L
1) ;[7.1014]
1) ;QVER - Routine that is called when a question mark has been entered
1) ;in the version part of the file spec. This routine is the first
1) ;step when printing out a list of candidates for the version field.
1) ;
1) ; Call with:
1) ; TEXTI% arguments setup
1) ; CALLRET QVER
1) ;
1) ; Returns:
1) ; JRST QUEST3 - When finished
1)
1) QVER: TQNN <DIRSF,NAMSF,EXTSF> ;Any dir, name, or extension *'s?
1) CALL QSVER ;(/) No, make it a star and find first file
1) IFSKP. ;If found first file
1) DO. ;Now loop through all versions
1) TMSG </
1) /> ;Make it neat
1) LOAD B,FLVNO,(JFN) ;Get version number
1) CALL DNOUT ;(B/) Print decimal version
1) CALL QVVER0 ;(/) Now get next version
1) EXIT. ;None left, retype
1) LOOP. ;Do next version
1) ENDDO.
1) ENDIF.
1) JRST QUEST3 ;Stars seen or no match
1) ^L
1) ;[7.1014]
1) ;The following routines are for stepping the name, ext and version fields
1) ;and assuring that at least one file is accessible with the new field
1) ;value.
1) ;
1) ; Called with:
1) ; no arguments
1) ; CALL QVNAM (to find first one)
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 23
1) ; CALL QVNAM0 (when current name is being stepped)
1) ; or
1) ; CALL QVEXT (to find first one)
1) ; CALL QVEXT0 (when stepping current extension)
1) ; or
1) ; CALL QVVER (to find first one)
1) ; CALL QVVER0 (when stepping current version)
1) ;
1) ; Returns:
1) ; +1 - No file found
1) ; A/ Error code
1) ; +2 - Success, file found
1) ; With FLNSB(JFN) setup or
1) ; With FLESB(JFN) setup or
1) ; With FLVNO(JFN) setup
1)
1) QVNAM: SETZ A, ;Find first name in this directory
1) JRST QVNAM1
1)
1) QVNAM0: LOAD A,FLNSB,(JFN) ;Step the current name
1) CALL LKPTR ;(A/A) Need a lookup ptr
1) QVNAM1: TQO <NAMSF,STEPF> ;Flag that we are stepping
1) CALL NAMLKX ;(A/A,B) Find next name
1) RETBAD() ;Match is impossible
1) NOINT ;Match found
1) HRRZ A,FILTMP(JFN) ;Got one, exchange old name block
1) LOAD B,FLNSB,(JFN) ; and new one
1) STOR A,FLNSB,(JFN)
1) HRRM B,FILTMP(JFN)
1) OKINT ;Done touching sensitive areas
1) CALL SETTMP ;(JFN/) Now reinitialize FILTMP ptr
1) RETBAD() ;Error
1) CALL QVEXT ;(/) Now look for acceptable extension and version
1) JRST QVNAM0 ;None for this name, step it
1) RETSKP ;Got one, return
1) ^L
1) ; Step extension field
1)
1) QVEXT: SETZ A, ;Find first extension, this name
1) JRST QVEXT1
1)
1) QVEXT0: LOAD A,FLESB,(JFN) ;Step current extension
1) CALL LKPTR ;(A/A) Need a lookup pointer
1) QVEXT1: TQO <EXTSF,STEPF> ;Note that we are stepping
1) CALL EXTLKX ;(A/A,B) Find next one
1) RETBAD() ;Pass error back
1) NOINT ;Can't be interrupted
1) HRRZ A,FILTMP(JFN) ;Got file, exchange old ext block
1) LOAD B,FLESB,(JFN) ; and new one
1) STOR A,FLESB,(JFN)
1) HRRM B,FILTMP(JFN)
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 24
1) OKINT ;Back to normal
1) CALL SETTMP ;(JFN/) Reinitialize FILTMP
1) RETBAD() ;Error
1) CALL QVVER ;(/) Now look for acceptable version
1) JRST QVEXT0 ;None for this ext, step to next
1) RETSKP ;Got one
1) ^L
1) ; Step version field
1)
1) QVVER: SETZ A, ;Find the first version
1) JRST QVVER1
1)
1) QVVER0: LOAD A,FLVNO,(JFN) ;Step current version
1) QVVER1: TQO <VERSF,STEPF> ;Note stepping version
1) CALL GTVER ;(A/) Find next one and check access
1) RETBAD() ;There ain't one
1) RETSKP ;Found one
1) ^L
1) ;GTVER - Routine to locate a file version
1) ;
1) ; Call with:
1) ; A/ Desired version number
1) ; Assumes F, F1, DEV, JFN, & STS are setup
1) ; CALL GTVER
1) ;
1) ; Returns:
1) ; +1 - Error, file not found
1) ; +2 - Success,
1) ; A/ version number
1)
1) GTVER: HRRZ B,DEV ;Get device
1) HRRZ B,NLUKD(B) ;Check for some flavor of DSK:
1) CAIN B,MDDNAM ;If not MDD device,
1) JRST GTVER1 ; don't call USTDIR
1) CALL VERLUK ;(B/B) Find file but don't lock
1) RET ;Not found, return to caller
1) GTVER0: TQO <VERF,VERTF> ;Show version found
1) HRRM A,FILVER(JFN) ;And put it in JFN block in JSB
1) RETSKP ;Done
1)
1) GTVER1: CALL VERLKX ;(B/B) Lookup requested version
1) RET ;Not there
1) MOVEM B,FILFDB(JFN) ;Remember FDB address
1) TQNE <ASTF> ;If output stars, then nothing really done
1) JRST GTVER0 ;Save the version and return
1) MOVE A,B ;Copy FDB address
1) PUSH P,.FBGEN(A) ;Save version number too
1) TQNE <DIRSF,NAMSF,EXTSF,VERSF> ;Stepping anything?
1) TQNE <NEWF,NEWVF> ;New file or version?
1) JRST GTVER2 ;New file or not stepping
1) MOVX B,FC%DIR ;Flag
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 25
1) CALL ACCCHK ;(A,B/) No, do directory list access check
1) JRST GTVER3 ;Bad news, see if we can try another
1)
1) GTVER2: TQO <VERF,VERTF> ;Show version found and typed
1) POP P,A ;Recover version number
1) HLRZS A
1) STOR A,FLVNO,(JFN) ;And store it
1) CALL USTDIR ;(/) OK, release the directory
1) RETSKP ;And return
1) ^L
1) GTVER3: CALL USTDIR ;(/) Invalid access, release the directory
1) POP P,A ;Recover version
1) HLRZS A
1) TQNN <DIRSF,NAMSF,EXTSF,VERSF> ;Stepping anything?
1) RET ;No, just return
1) TQO <STEPF> ;Yes, step to next file
1) TQNE <RVERF> ; after installing right target version
1) SETZ A, ;Get highest version only
1) TQNE <HVERF> ;Highest only?
1) MOVEI A,-1 ;No, want all
1) TQNE <LVERF> ;Lowest only?
1) MOVEI A,-2 ;Yes, flag it
1) JRST GTVER ;Now go try it
1) ^L
1) ;[7.1014]
1) ;QSNAM, QSEXT, QSVER - Routines that append a * to the field currently
1) ;being entered and fakes *'s for the remaining fields. It aids in
1) ;the "?" when parsing a file. There are 3 entry points as noted below.
1) ;
1) ; Call with:
1) ; no arguments
1) ; CALL QSNAM - name being entered (returns nam*.*.*)
1) ; CALL QSEXT - extension being entered (returns nam.ext*.*)
1) ; CALL QSVER - version being entered (returns nam.ext.*)
1) ;
1) ; Returns:
1) ; +1 - Error, no files can be recognized
1) ; +2 - Fake input fields setup
1)
1) QSNAM: CALL QSTAR ;(/) Stuff a * in name
1) CALL ENDNAM ;(/) Punctuate name field with "."
1) RET ;Couldn't do it
1) QSEXT: CALL QSTAR ;(/) Stuff * in extension
1) CALL ENDEX7 ;(/) Punctuate this field
1) RET ;Shucks
1) QSVER: CALL QSTAR ;(/) Jam a * in version
1) CALL ENDEX7 ;(/) and find version
1) RET ;Non-existant
1) RETSKP ;Done
1) ^L
1) ;[7.1014]
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 26
1) ;QSTAR - This routine stuffs a * in for the user (aids in "?" whilest
1) ;parsing a filename).
1) ;
1) ; Call with:
1) ; partial input in TEXTI% buffers
1) ; CALL QSTAR
1) ;
1) ; Returns:
1) ; +1 - Always, * stuffed in input buffers & old file flag set
1)
1) QSTAR: MOVEI A,"*" ;This character
1) TQO <STARF> ;Note * seen
1) CALL LTR ;(A/) Put * in FILTMP and set WLDF
1) RETBAD() ;Couldn't do it
1) TQO <ASTAF,OLDNF> ;* allowed, old file only
1) TQZ <OUTPF,NEWNF> ;Old files only!
1) TQZ <ASTF> ;Clear bit possibly set due to OSTRF
1) RET ;Fini
1) ^L
1) ;[7.1014]
1) ;QNXTL - Routine to print out a candidate string
1) ;
1) ; Call with:
1) ; A/ Address of string block
1) ; CALL QNXTL
1) ;
1) ; Returns:
1) ; +1 - Always
1) ;
1) ; Clobbers A,B,C
1)
1) QNXTL: STKVAR <TMPA> ;Place to save A
1) MOVEM A,TMPA ;Hold onto address of string block
1) TMSG </
1) /> ;Neatness counts
1) MOVE B,TMPA ;Retrieve address of string block
1) HRROI B,1(B) ;Now convert it into string pointer
1) CALLRET TSTR1 ;Output string, but don't put in buffer
1) ^L
1) ;[7.1014]
1) ;LKPTR - Routine to compute a lookup pointer for a string block
1) ;
1) ; Call with:
1) ; A/ Address of block
1) ; CALL LKPTR
1) ;
1) ; Returns:
1) ; +1 - Always with A/ lookup pointer (-# words,,first word-1)
1) ;
1) ; Clobbers A,B,C
1)
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 27
1) LKPTR: HRRZI B,1(A) ;Address of start of string
1) HRLI B,(POINT 7,) ;Make it a pointer
1) LKPTR0: ILDB C,B ;Find end of string
1) JUMPN C,LKPTR0
1) HRRZ C,A ;Start of block
1) SUBI C,-1(B) ;-Number of words
1) HRL A,C ;Make A and IOWD
1) RET ;And away we go
1) ^L
LINE 2, PAGE 63
2) IFN STANSW,< ; [SMXGTJ]
2) ; Routines to handle user question mark input. Entered from input char
2) ; dispatch table. If the input is NIL, returns immediately. Otherwise,
2) ; list the candidates for the field currently being entered if no
2) ; previous field had a wild card. If no candidates are found, break
2) ; with GJFX34. Scan for candidates is terminated on last one or on any
2) ; input from the user.
2)
2) QUEST: MOVE A,CURCNT(TXT) ; Was ? first thing typed?
2) ADDI A,1
2) CAML A,STRCNT(TXT)
2) ERRLJF GJFX34 ; Yes, then break on it
2) TQNE <OSTRF> ; GJ%OFG, parse only?
2) TQNE <ASTAF> ; GJ%IFG, normal indexable bit?
2) SKIPA
2) ERRLJF GJFX34 ; GJ%OFG and NOT GJ%IFG, prevent loop
2) CALL INFTST ; Test for no input JFN
2) ERRLJF GJFX34 ; None, so break out now
2) SETZ A, ; Erase the ?
2) DPB A,CURPNT(TXT)
2) PUSH P,LDPNT(TXT) ; Save TEXTI context
2) PUSH P,LDCNT(TXT)
2) PUSH P,CURPNT(TXT)
2) PUSH P,CURCNT(TXT)
2) TQNN <DEVF> ; Device specified?
2) CALL DEFDEV ; No, get a default (and set up FILDEV)
2) HRRZ B,FILDEV(JFN) ; Has to be some flavor of DSK:
2) CAIE B,DSKDTB
2) JRST QUEST2 ; Oops, ding him and restart
2) TQO <NREC> ; Turn off recognition
2) TQNE <EXTFF> ; Extension being specified?
2) JRST QEXT ; Yes
2) TQNN <NAMF> ; Name specified?
2) JRST QNAM ; No, must be entering it
2) TQNN <VERF> ; Version specified?
2) JRST QVER ; No, must be entering it
2) ; JRST QUEST0 ; Fully specified?
2) ^L
2) QUEST0: CALL GSIBE ; Anything typed?
2) SKIPA ; Yes, eat it
2) JRST QUEST3 ; No, just retype and return
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 28
2)
2) QUEST1: HRRZ D,E
2) XCTU [HRRZ A,1(D)] ; Something was typed to stop output
2) CFOBF% ; Clear output buffer
2) XCTU [HLRZ A,1(D)] ; Something was typed to stop output
2) BIN% ; Get the input and throw it away
2)
2) QUEST2: CALL DING ; Can't help in any later fields
2)
2) QUEST3: POP P,CURCNT(TXT)
2) POP P,CURPNT(TXT)
2) POP P,LDCNT(TXT)
2) POP P,LDPNT(TXT)
2)
2) IMCFLG==1B14 ;INTERNAL MONITOR CALL FLAG (X FIELD OF PC)
2) ; This causes MRETN to behave differently.
2) ; Note - I'd like a better way to determine this than having to define
2) ; IMCFLG here
2) MOVE A,MPP
2) MOVE A,0(A)
2) TXNE A,IMCFLG ; Internal call?
2) ERRLJF (GJFX34) ; Yes, return illegal ? error to COMND
2) CALL RETYPE ; Retype the input text
2) CALL BACKIT ; Backup over the null that was the ?
2)
2) ; Initiate a rescan of the user's input.
2) ; The JFN block is initialized
2)
2) RESCAN: NOINT
2) HLRZ A,FILLNM(JFN) ; Preserve TEXTI buffer info
2) PUSH P,A
2) HRRZS FILLNM(JFN) ; Now make believe it isn't there
2) CALL RELJFN ; Go clean up
2) CALL ASGJFN ; Go get another
2) IFNSK.
2) MOVEI A,JSBFRE ; Oops, no more left
2) POP P,B ; Release retype buffer
2) SKIPE B
2) CALL RELFRE
2) ERRLJF GJFX3 ; And bomb out
2) ENDIF.
2) POP P,A ; Set up old retype stuff
2) HRLM A,FILLNM(JFN)
2) OKINT ; Interrupts again
2) XCTU [HLLZ F,0(E)] ; Fetch his flags again
2) MOVEI F1,0 ; And clear others
2) MOVE A,STRPNT(TXT) ; Reinit pointer to input string
2) MOVEM A,LDPNT(TXT)
2) SETZM LDCNT(TXT) ; Zap the input count
2) CALL SETTMP ; Get another temp block and continue
2) RETBAD()
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 29
2) RETSKP ; Return to GCH loop
2) ^L; Here we had a ? while entering a name
2)
2) QNAM: TQNN <DIRSF> ; Any directory stars?
2) CALL QSNAM ; No, append star and find first file
2) JRST QUEST2 ; Directory stars or no match
2) DO.
2) HLRZ A,FILNEN(JFN) ; Print this name
2) CALL QNXTL
2) CALL QVNAM0 ; Now look for the next name
2) JRST QUEST0 ; None left, beep and retype
2) CALL GSIBE ; Anything input?
2) JRST QUEST1 ; Yes, quit
2) LOOP. ; go print it
2) ENDDO.
2)
2) ; Here we had a ? while entering an extension
2)
2) QEXT: TQNN <DIRSF,NAMSF> ; Any directory or name stars?
2) CALL QSEXT ; No, append star and find first file
2) JRST QUEST2 ; Stars or no match
2) DO.
2) HRRZ A,FILNEN(JFN) ; Print this name
2) MOVE B,1(A) ; Look at the first word of the string
2) TLNE B,774000 ; If it is not null (first char 0)
2) IFSKP.
2) MOVEI A,[ASCIZ / [Null]/] ; Otherwise dummy an entry
2) SUBI A,1 ; Set up as string block
2) ENDIF.
2) CALL QNXTL
2) CALL QVEXT0 ; Now look for the next extension
2) JRST QUEST0 ; None left, beep and retype
2) CALL GSIBE ; Anything input?
2) JRST QUEST1 ; Yes, quit
2) LOOP. ; go print it
2) ENDDO.
2)
2) ; Here we had a ? while entering a version
2)
2) QVER: TQNN <DIRSF,NAMSF,EXTSF> ; Any dir, name, or ext stars?
2) CALL QSVER ; No, make it a star and find first file
2) JRST QUEST2 ; Stars or no match
2) DO.
2) TMSG </
2) /> ; No, print this number
2) HRRZ B,FILVER(JFN)
2) CALL DNOUT
2) CALL QVVER0 ; Now look for the next version
2) JRST QUEST0 ; None left, beep and retype
2) CALL GSIBE ; Anything input?
2) JRST QUEST1 ; Yes, quit
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 30
2) LOOP. ; go print it
2) ENDDO.
2) ^L
2) ; Following are routines for stepping the Name, Ext, and Version
2) ; fields and assuring that at least one file is accessible with the
2) ; new field value.
2) ; Return: +1 if none is found
2) ; +2 if successful
2)
2) ; Step name field
2)
2) QVNAM: SETZ A, ; Find the first name this dir
2) JRST QVNAM1
2) QVNAM0: HLRZ A,FILNEN(JFN) ; Step the current name
2) CALL LKPTR ; Need a lookup ptr
2) QVNAM1: TQO <NAMSF,STEPF>
2) CALL NAMLKX ; Find the next one
2) RET ; Match is impossible
2) NOINT ; Match
2) HRRZ A,FILTMP(JFN) ; Got one, exchange old name block
2) HLRZ B,FILNEN(JFN) ; and new one
2) HRLM A,FILNEN(JFN)
2) HRRM B,FILTMP(JFN)
2) OKINT
2) CALL SETTMP ; And reinit FILTMP ptr
2) RETBAD
2) CALL QVEXT ; Now look for acceptable ext and ver
2) JRST QVNAM0 ; None for this name, step it
2) RETSKP ; Got one, return +2
2)
2) ; Step extension field
2)
2) QVEXT: SETZ A, ; Find the first ext this name
2) JRST QVEXT1
2) QVEXT0: HRRZ A,FILNEN(JFN) ; Step the current extension
2) CALL LKPTR ; Need a lookup ptr
2) QVEXT1: TQO <EXTSF,STEPF>
2) CALL EXTLKX ; Find the next one
2) RET ; No more, return +1
2) NOINT
2) HRRZ A,FILTMP(JFN) ; Got one, exchange old ext block
2) HRRZ B,FILNEN(JFN) ; and new one
2) HRRM A,FILNEN(JFN)
2) HRRM B,FILTMP(JFN)
2) OKINT
2) CALL SETTMP ; And reinit FILTMP ptr
2) RETBAD
2) CALL QVVER ; Now look for acceptable ver
2) JRST QVEXT0 ; None for this ext, step it
2) RETSKP ; Got one, return +2
2)
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 31
2)
2) ; Step version field
2)
2) QVVER: SETZ A, ; Find the first version this ext
2) JRST QVVER1
2) QVVER0: HRRZ A,FILVER(JFN) ; Step the current version
2) QVVER1: TQO <VERSF,STEPF>
2) CALL GTVER ; Go find next one and check access
2) RET ; None, return +1
2) RETSKP ; Finally we have an acceptable one
2) ; Return +2
2) ^L
2) ; Routine to locate a file version with acceptable access privileges
2) ; Entry: A = desired version number
2) ; JFN, F, F1, DEV, and STS are set up appropriately
2) ; Return: +1 - Error, no accessible file found
2) ; +2 - Success, A = version number
2)
2) GTVER: HRRZ B,DEV ; Watch for dingle in LH(DEV)
2) HRRZ B,NLUKD(B) ; Check for some flavor of DSK:
2) CAIN B,MDDNAM ; If not mdd device, don't call USTDIR
2) JRST GTVER1
2) CALL VERLUK ; No, don't bother leaving it locked
2) RET ; Couldn't find it - return +1
2) GTVER0: TQO <VERF,VERTF> ; Show version found
2) HRRM A,FILVER(JFN) ; Install version
2) RETSKP ; And return +2
2)
2) GTVER1: CALL VERLKX ; Lookup requested version - return FDB
2) RET ; Couldn't get one - return +1
2) MOVEM B,FILFDB(JFN) ; Remember the FDB address
2) TQNE <ASTF> ; If output stars, nothing really done
2) JRST GTVER0 ; Save the version and return
2) MOVE A,B ; Copy FDB addr
2) PUSH P,.FBGEN(A) ; Save the version number
2) TQNE <DIRSF,NAMSF,EXTSF,VERSF> ; Stepping anything?
2) TQNE <NEWF,NEWVF> ; New file or version?
2) JRST GTVER2 ; New, or not stepping
2) MOVX B,FC%DIR ; No, do directory list access check
2) CALL ACCCHK
2) JRST GTVER3 ; Bad news, see if we can try another
2)
2) GTVER2: TQO <VERF,VERTF> ; Show version found and typed
2) POP P,A ; Recover version number
2) HLRZS A
2) HRRM A,FILVER(JFN) ; And install it
2) CALL USTDIR ; OK, release the directory
2) RETSKP ; And return +2
2)
2) GTVER3: CALL USTDIR ; Invalid access, release directory
2) POP P,A ; recover this version number
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 32
2) HLRZS A
2) TQNN <DIRSF,NAMSF,EXTSF,VERSF> ; Stepping anything?
2) RET ; No, return +1
2) TQO <STEPF> ; Yes, step to the next file
2) TQNE <RVERF> ; after installing right target version
2) MOVEI A,0
2) TQNE <HVERF>
2) MOVEI A,-1
2) TQNE <LVERF>
2) MOVEI A,-2
2) JRST GTVER ; Now go try it
2) ^L
2) ; Routine to skip if input buffer is empty.
2) ; Entry: From ? routines
2) ; Call: CALL GSIBE
2) ; Return: +1, input not empty or non TTY
2) ; +2, TTY input empty
2) ; Clobbers A
2)
2) GSIBE: CALL INFTST ; Check input JFN
2) RET ; Nope, return +1
2) SIBE
2) RET
2) RETSKP
2)
2) ; This routine appends a * to the field currently being entered and
2) ; fakes *'s for any remaining fields.
2) ; Entry: Partial input from user
2) ; Call: CALL QSNAM name being entered
2) ; CALL QSEXT extension being entered
2) ; CALL QSVER version being entered
2) ; Return: +1 always, fake input fields set up
2)
2) QSNAM: CALL QSTAR ; Add a star
2) CALL ENDNAM ; And find a name
2) RET
2) QSEXT: CALL QSTAR ; Add a star
2) CALL ENDEX7 ; And find an extension
2) RET
2) QSVER: CALL QSTAR ; Make a star version
2) CALL ENDEX7 ; And find a version
2) RET
2) RETSKP ; Return
2)
2)
2) ; Routine to fake a "*" input by user.
2) ; Entry: Partial input in buffers
2) ; Call: CALL QSTAR
2) ; Return: +1 always, * added to input buffers and old file flag set
2)
2) QSTAR: MOVEI A,"*"
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 33
2) TQO <STARF> ; Set by *
2) CALL LTR ; Put it in FILTMP, and set WLDF
2) RETBAD() ; Can't
2) TQO <ASTAF,OLDNF> ; Asterisk allowed, old file only
2) TQZ <OUTPF,NEWNF> ; Only look for old files
2) TQZ <ASTF> ; Clear bit possibly set due to OSTRF
2) RET
2) ^L; Routine to print out a candidate string
2) ; Entry: A = address of string block
2) ; Call: CALL QNXTL
2) ; Return: +1 always
2) ; Clobbers A,B,C
2)
2) QNXTL: PUSH P,A ; Save block adr for now
2) TMSG </
2) />
2) POP P,B
2) HRROI B,1(B) ; Convert block adr into string ptr
2) CALLRET TSTR1 ; Output string, but don't put in buffer
2)
2)
2) ; Routine to compute a lookup pointer for a string block:
2) ; Entry: A = Address of block
2) ; Call: CALL LKPTR
2) ; Return: +1, A = lookup pointer: -# words,,first word - 1
2) ; Clobbers A,B,C
2)
2) LKPTR: HRRZI B,1(A) ; Address of start of string
2) HRLI B,440700 ; Make it a pointer
2) ILDB C,B ; Find end of string
2) JUMPN C,.-1
2) HRRZ C,A ; Start of block
2) SUBI C,-1(B) ; -number of words
2) HRL A,C ; Make A an IOWD
2) RET
2)
2) >;IFN STANSW ; [SMXGTJ]
2) ^L
LINE 14, PAGE 131
1) ANDI A,177 ;USE ONLY 7-BIT ASCII
1) CAIN A,"-" ;[7415] Are we in line continuation?
1) IFNSK. ;[7415] Possibly...
1) UMOVE B,2 ;[7415] Preserve the byte pointer from user
1) XCTBUU [ILDB A,2] ;[7415] Get next character
1) CAIN A,.CHLFD ;[7415] Is it a line feed?
1) JRST GCH ;[7415] We have continuation, ignore the continuation characters
1) CAIN A,.CHCRT ;[7415] How about a CR then LF?
1) IFNSK. ;[7415] Saw CR...
1) XCTBUU [ILDB A,2] ;[7415] ...now eat LF
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 34
1) JRST GCH ;[7415] And continue
1) ENDIF. ;[7415] End of -CRLF combination
1) UMOVEM B,2 ;[7415] Put user's byte pointer back
1) MOVEI A,"-" ;[7415] And restore the right character
1) ENDIF. ;[7415] End line continuation
1) SOSG CURCNT(TXT) ;[7415] Will this character fit?
1) RETBAD (GJFX51) ;[7415] No. Tell the user
1) IDPB A,CURPNT(TXT) ;YES. STASH IT AWAY
LINE 14, PAGE 71
2) SOSG CURCNT(TXT) ;YES. WILL THIS ONE FIT?
2) RETBAD (GJFX51) ;NO. TELL HIM
2) ANDI A,177 ;USE ONLY 7-BIT ASCII
2) IDPB A,CURPNT(TXT) ;YES. STASH IT AWAY
LINE 29, PAGE 134
1) UNLOCK JFNLCK ;[7345]ALREADY IN USE. UNLOCK THE JFN
1) OKINT ;[7345]AND GO OKINT
1) TQNN <JFNAF> ;[7345]DOES USER WANT TO ASSIGN AN ALTERNATE?
1) ERRLJF GJFX2,<MOVEM JFN,ERRSAV> ;[7345]NO. THEN PUNT
1) CALL ASGJFN ;[7345](/JFN)YES. GET A DIFFERENT JFN
1) ERRLJF(GJFX3) ;[7345]COULDN'T. SAY NO MORE JFNS
1) ENDIF.
LINE 29, PAGE 74
2) UNLOCK JFNLCK
2) OKINT
2) TQNN <JFNAF>
2) ERRLJF GJFX2,<MOVEM JFN,ERRSAV>
2) ENDIF.
LINE 34, PAGE 135
1) SETONE ASGF2,(JFN) ;[7384]AND LIGHT ASGF SHADOW BIT
1) HRRZ A,FORKN ; Get fork number
LINE 34, PAGE 75
2) HRRZ A,FORKN ; Get fork number
LINE 42, PAGE 135
1) HLLZS FILIDX(JFN)
LINE 41, PAGE 75
2) SETZM FILST1(JFN)
2) HLLZS FILIDX(JFN)
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 35
LINE 18, PAGE 136
1) MOVE B,FILST1(JFN) ;[7384]GET MORE STATUS BITS
1) TXNE A,ASGF ;[7384]WAS THIS JFN BEING ASSIGNED?
1) TXNN B,ASGF2 ;[7384]BE SURE ASGF IS LIT, NOT BLKF
1) SKIPA ;[7384]JFN IS NOT BEING ASSIGNED
1) JRST RELJF0 ;YES, DONT CHECK SPOOLING
LINE 18, PAGE 76
2) TXNE A,ASGF ;WAS THIS JFN BEING ASSIGNED?
2) JRST RELJF0 ;YES, DONT CHECK SPOOLING
LINE 45, PAGE 136
1) Action: See if QUASAR is running and check to see that the system has some
1) IPCF free space available.
1) >,,<DB%NND>) ;[7.1210]
1) ^L
1) RELJF0: CALL RELJF3 ;RELEASE COMMON STUFF
1) TXNE B,TRNSF ;[7384]A TRANSITIONAL FILE?
1) JRST RELJF4 ;[7384]NO
1) MOVE A,FILST1(JFN) ;[7384]GET SECOND STATUS WORD
1) TXNE B,ASGF ;[7384]WAS THIS BEING CREATED?
1) TXNN A,ASGF2 ;[7384]MAKE SURE ASGF IS LIT, NOT BLKF
1) JRST RELJF4 ;NO. CANT BE A RDTXT BUFFER THEN
LINE 42, PAGE 76
2) >)
2) RELJF0: CALL RELJF3 ;RELEASE COMMON STUFF
2) TXNN B,TRNSF ;A TRANSITIONAL FILE?
2) TXNN B,ASGF ;WAS THIS BEING CREATED?
2) JRST RELJF4 ;NO. CANT BE A RDTXT BUFFER THEN
LINE 42, PAGE 138
1) MOVE C,FILST1(JFN) ;[7384]GET ADDITIONAL STATUS BITS
1) TXNE B,ASGF ;[7384] Was this jfn being assigned?
1) TXNN C,ASGF2 ;[7384]MAKE SURE ASGF LIT, NOT BLKF
1) IFNSK. ;[7408]
1) SETZM FILLFW(JFN) ;[7408] No. Zap this word
1) JRST RELJF2 ;[7408] Go finish up
1) ENDIF. ;[7408]
1) TXNE B,TRNSF ;[7206] WAS THIS JFN TRANSITIONAL?
1) JRST RELJF2 ;[7206][7408] Yes, no TEMP block to release
1) ;..
1) ^L ;..
1) HRRZ B,FILTMP(JFN)
LINE 42, PAGE 77
2) TXNN B,ASGF ; Was this jfn being assigned?
2) JRST [ SETZM FILLFW(JFN) ;NO. ZAP THIS WORD
2) TXNE B,ASTF ;SCAN ONLY?
2) JRST RELJF1 ;YES. CHECK FOR PROTECTION
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 36
2) JRST RELJF2] ;GO FINISH UP
2) ;**;[7206] INSERT 2 LINES AT RELJF1:-7.L DSW 12/04/85
2) TXNE B,TRNSF ;[7206] WAS THIS JFN TRANSITIONAL?
2) JRST RELJF1 ;[7206] YES, NO TEMP BLOCK TO RELEASE
2) HRRZ B,FILTMP(JFN)
LINE 7, PAGE 139
1) ; cain b,1000 ;if this value only (?8-bit pointer?)
1) ; setz b, ;then don't try to release it
1) >;ifn nicsw
LINE 55, PAGE 77
2) cain b,1000 ;if this value only (?8-bit pointer?)
2) setz b, ;then don't try to release it
2) >;ifn nicsw
LINE 13, PAGE 139
1) RELJF2: SETZM FILDDN(JFN)
LINE 61, PAGE 77
2) RELJF1: SKIPLE B,FILPRT(JFN) ;HAVE A PROTECTION STRING?
2) CALL RELFRE ; Release space for protection block
2) RELJF2: SETZM FILDDN(JFN)
LINE 42, PAGE 143
1) ;..
1) ^L ;..
1) TSTR0A: ILDB A,B ;GET NEXT CHAR
LINE 42, PAGE 81
2) TSTR0A: ILDB A,B ;GET NEXT CHAR
LINE 26, PAGE 144
1) ERJMP R ;[7300][7420] Catch JSYS error
1) RET
LINE 66, PAGE 81
2) ;**;[7300] Add 1 line at TSTR1:+8L MDR 23-MAY-86
2) ERJMP IOERR ;[7300] Catch JSYS error
2) RET
LINE 35, PAGE 147
1) ERJMP R ;[7300][7420] Catch JSYS error
1) RET
LINE 35, PAGE 84
2) ;**;[7300] Add 1 line at OUTCH1:+7L MDR 23-MAY-86
2) ERJMP IOERR ;[7300] Catch JSYS error
2) RET
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 37
LINE 30, PAGE 149
1) ERJMP R ;[7300][7420] Catch JSYS error
1) RET
LINE 30, PAGE 86
2) ;**;[7300] Replace 1 line at ANOUT:+7L MDR 23-MAY-86
2) ERJMP IOERR ;[7300] Catch JSYS error
2) RET
LINE 4, PAGE 150
1) BACKIT: SETO A, ;[7.1014] Move over recognition character
1) ADJBP A,CURPNT(TXT) ;[7.1014] Tail pointer
1) MOVEM A,CURPNT(TXT) ;SAVE NEW POINTER
LINE 4, PAGE 87
2) BACKIT:
2) IFE STANSW,< ; Partial recognition
2) MOVE A,CURPNT(TXT) ;TAIL POINTER
2) BKJFN ;MOVE OVER RECOGNITION CHARACYER
2) JFCL
2) > ;IFE STANSW ; Partial recognition
2)
2) IFN STANSW,< ; Partial recognition
2) ; N.B. Beware of TRVARs Clobbering TXT
2) SETO T1, ;MOVE OVER RECOGNITION CHARACTER
2) ADJBP T1,CURPNT(TXT) ;TAIL POINTER
2) > ;IFN STANSW ; Partial recognition
2)
2) MOVEM A,CURPNT(TXT) ;SAVE NEW POINTER
LINE 1, PAGE 153
1) ^L
1) ;ROUTINE TO SEE IF LONG NAMES ARE ALLOWED. PRESERVES ALL
LINE 45, PAGE 89
2)
2) ;ROUTINE TO SEE IF LONG NAMES ARE ALLOWED. PRESERVES ALL
LINE 1, PAGE 155
1) ^L
1) IFN NICSW,<
LINE 59, PAGE 89
2)
2) IFN NICSW,<
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 38
LINE 16, PAGE 157
1) STKVAR <OFILUC,VERNUM> ;[7380] Old STR unique code and version
1) HRRZ JFN,1
1) >
1) IFN NICSW,<
1) STKVAR <OFILUC,VERNUM,GXFLAG,GXFDB> ;CS82T-TL11 OLD STR UNIQUE CODE,
1) SETZM GXFLAG ;CS82T-TL11 Indicate came from GNJFN
1) GNJFN0: HRRZ JFN,1 ;CS82T-TL11
1) >;IFN NICSW
1) NOINT ;[8801] Get the lock with no interruptions
1) LOCK JFNLCK ;[8801] Can't let anyone in
1) CALL CHKJFN
1) RETERR(,<UNLOCK JFNLCK ;[8801] Done with lock
1) OKINT>) ;[8801] Interrupts are fine now
1) JFCL
1) RETERR(DESX4,<UNLOCK JFNLCK ;[8801] Lock finished
1) OKINT>) ;[8801] And interrupts are OK
1) OKINT ;[8801] CHKJFN made us NOINT 1 too many times
1) TQNE <ASTF>
1) ERUNLK(DESX7,<UNLOCK JFNLCK>) ;[8801] Output stars not allowed
1) TQNE <OPNF>
1) ERUNLK(OPNX1,<UNLOCK JFNLCK>) ;[8801] And file can't be open
1) LOAD JQ1,FLUC,(JFN) ;GET STRUCTURE UNIQUE CODE AT START
1) MOVEM JQ1,OFILUC ;SAVE OLD STR UNIQUE CODE
1) XCTU [HLLZ F1,1]
LINE 16, PAGE 90
2) STKVAR <OFILUC> ; OLD STR UNIQUE CODE
2) HRRZ JFN,1
2) >
2) IFN NICSW,<
2) STKVAR <OFILUC,GXFLAG,GXFDB> ;CS82T-TL11 OLD STR UNIQUE CODE,
2) SETZM GXFLAG ;CS82T-TL11 Indicate came from GNJFN
2) GNJFN0: HRRZ JFN,1 ;CS82T-TL11
2) >;IFN NICSW
2) CALL CHKJFN
2) RETERR()
2) JFCL
2) RETERR(DESX4)
2) TQNE <ASTF>
2) ERUNLK(DESX7) ; Output stars not allowed
2) TQNE <OPNF>
2) ERUNLK(OPNX1)
2) LOAD JQ1,FLUC,(JFN) ;GET STRUCTURE UNIQUE CODE AT START
2) MOVEM JQ1,OFILUC ; SAVE OLD STR UNIQUE CODE
2) XCTU [HLLZ F1,1]
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 39
LINE 46, PAGE 157
1) RETERR (GJFX22,<UNLOCK JFNLCK ;[8801] Release lock
1) CALL UNLCKF>) ;[8801] Block too small, and none left
1) HRLM A,FILNEN(JFN) ;NEW STRING POINTER
LINE 41, PAGE 90
2) RETERR (GJFX22,<CALL UNLCKF>) ;NOT, AND NO MORE SPACE
2) HRLM A,FILNEN(JFN) ;NEW STRING POINTER
LINE 54, PAGE 157
1) RETERR (GJFX22,<UNLOCK JFNLCK ;[8801] Release JFN lock
1) CALL UNLCKF>) ;[8801] Block too small and no more
1) HRRM A,FILNEN(JFN) ;NEW STRING
LINE 48, PAGE 90
2) RETERR (GJFX22,<CALL UNLCKF>) ;NOT BIG ENOUGH AND NO SPACE
2) HRRM A,FILNEN(JFN) ;NEW STRING
LINE 61, PAGE 157
1) SETONE ASGF2,(JFN) ;[7384]LIGHT ASGF SHADOW BIT AS WELL
1) UNLOCK JFNLCK ;[8801] No we have indicated that the JFN is ours
1) CALL UNLCKF ;DO UNLOCK
1) ;..
1) ^L ;..
1) GNJFN1: SETZM FILTMP(JFN) ;[7408]
1) SETZM FILPRT(JFN) ;[7408]
1) SETZM FILOPT(JFN) ;[7408]
1) TQO <STEPF>
LINE 54, PAGE 90
2) CALL UNLCKF ;DO UNLOCK
2) GNJFN1: SETZM FILTMP(JFN)
2) SETZM FILPRT(JFN)
2) SETZM FILOPT(JFN)
2) TQO <STEPF>
LINE 35, PAGE 158
1) IFNSK. ;[7371]
1) MOVEI A,GNJFX1 ;[7371] Will fail, give proper return
1) JRST GNFAIL ;[7371]
1) ENDIF. ;[7371]
1) MOVEM A,VERNUM ;[7380] Save version number
1) CALL VANISH ;[7393] (JFN/T1) Did file disappear on us?
1) RETERR(,<PUSH P,A ;[7393] Save error code
1) CALL RELJFX ;[7393] (/T1) Release JFN
1) POP P,A>) ;[7393] Tell user the error
1) SETZM FILTMP(JFN) ;[7371]
1) SETZM FILPRT(JFN) ;[7371]
1) SETZM FILOPT(JFN) ;[7371]
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 40
1) MOVE A,VERNUM ;[7380]
1) CALL VERLUK
1) GNFAIL: RETERR(,<CAIL A,GJFX36 ;ONE OF THE FILE OR DIRECTORY ERRORS?
1) CAILE A,GJFX40 ;STILL?
LINE 88, PAGE 90
2) SKIPA A,[GNJFX1] ;WILL FAIL, GIVE PROPER RETURN
2) CALL VERLUK
2) RETERR(,<CAIL A,GJFX36 ;ONE OF THE FILE OR DIRECTORY ERRORS?
2) CAILE A,GJFX40 ;STILL?
LINE 55, PAGE 158
1) ;..
1) ^L ;..
1) HRRM A,FILVER(JFN)
LINE 96, PAGE 90
2) HRRM A,FILVER(JFN)
LINE 30, PAGE 159
1) ;..
1) ^L ;..
1) GNJFN2:
LINE 124, PAGE 90
2) GNJFN2:
LINE 106, PAGE 160
1) GNJFN4: SETZRO ASGF2,(JFN) ;[7384]CLEAR ASGF SHADOW BIT
1) ;[7384]CALL TO UNLCKF WILL CLEAR ASGF
1) CALL UNLCKF ;RELEASE JFN AND STR LOCK
1) SETZ A,
LINE 228, PAGE 90
2) GNJFN4: CALL UNLCKF ;RELEASE JFN AND STR LOCK
2) SETZ A,
LINE 1, PAGE 162
1) ^L
1) ;[7371]
1) ;This routine is called before GNJFN% does its thing. It checks
1) ;to see if the file that we are stepping off of has gone away.
1) ;It could have disappeared via an untimely RENAME or it could
1) ;have been deleted and expunged. Neither of which is good because
1) ;the LOOKUP routines expect the file to still exist. If this file
1) ;does not exist, then the LOOKUP routines will not set up FILOPT
1) ;correctly and when directories are stepped, we will either hang in
1) ;an infinite loop or we will cause an ILMNRF (because of FILOPT).
1) ;
1) ;Accepts:
1) ; JFN/ JFN of file to check for existance.
; GTJFN.MAC.3 & <6-1-MONITOR>GTJFN.MAC.5 18-Mar-89 1423 PAGE 41
1) ;
1) ;Returns:
1) ; +1 if the file in the JFN block of the JSB pointed to by JFN
1) ; is no longer there.
1) ; T1/ Error code
1) ;
1) ; +2 if the file still exists
1)
1) VANISH: EA.ENT ;[7371] Be in section 0/1
1) STKVAR <OLDFLG> ;[7371] Keep flags and (TXT) for later
1) HRRZ T1,FILDEV(JFN) ;[7.1064] Has to be some flavor of DSK:
1) CAIE T1,DSKDTB ;[7.1064] Is this JFN on a disk file?
1) RETSKP ;[7.1064] Nope, return OK
1) MOVEM F1,OLDFLG ;[7371] Put them here
1) TXZ F1,<GNJFF!DIRSF!ASTF!STRSF!NAMSF!EXTSF!VERSF!STEPF> ;[7393] Don't step anything
1) HRRZ T1,FILVER(JFN) ;[7393] Get version number
1) CALL VERLUK ;[7393] (T1/T2) Find that file
1) JRST GONE ;[7393] It ain't there
1) MOVE F1,OLDFLG ;[7371] Get flags back
1) RETSKP ;[7371] And continue, file is still here
1) GONE: MOVEI T1,GNJFX2 ;[7371] Return vanished file error
1) RET ;[7371]
1)
LINE 32, PAGE 91
2)