Google
 

Trailing-Edge - PDP-10 Archives - BB-M081Z-SM - monitor-sources/filnft.mac
There are 19 other files named filnft.mac in the archive. Click here to see a list.
; UPD ID= 8518, RIP:<7.MONITOR>FILNFT.MAC.2,   9-Feb-88 15:36:08 by GSCOTT
;TCO 7.1218 - Update copyright date.
; UPD ID= 2075, SNARK:<6.1.MONITOR>FILNFT.MAC.22,   3-Jun-85 14:35:57 by MCCOLLUM
;TCO 6.1.1406  - Update copyright notice.
; UPD ID= 4541, SNARK:<6.MONITOR>FILNFT.MAC.21,  15-Jul-84 10:49:14 by PURRETTA
;Update copyright notice
; UPD ID= 4208, SNARK:<6.MONITOR>FILNFT.MAC.20,  11-May-84 09:18:44 by MCINTEE
;Make dummy
; UPD ID= 2865, SNARK:<6.MONITOR>FILNFT.MAC.19,  24-Aug-83 08:01:56 by MCINTEE
;Node name in file spec not allowed in 6.1 either
; UPD ID= 2148, SNARK:<6.MONITOR>FILNFT.MAC.18,   4-Apr-83 13:25:11 by MCINTEE
;More TCO 6.1030 - Node name in file spec not allowed in 6.0
; UPD ID= 1393, SNARK:<6.MONITOR>FILNFT.MAC.17,   1-Nov-82 09:33:12 by MCINTEE
;FIX DIMLNK
; UPD ID= 1274, SNARK:<6.MONITOR>FILNFT.MAC.16,   4-Oct-82 12:44:53 by MCINTEE
;TCO 6.1030 - Add dummy routine DIMLNK
; UPD ID= 1098, SNARK:<6.MONITOR>FILNFT.MAC.15,  19-Aug-82 13:39:12 by MCINTEE
;TCO 6.1030 - Add routines DAPRST & DAPLGO, fork & job cleanup
; UPD ID= 1053, SNARK:<6.MONITOR>FILNFT.MAC.14,   9-Aug-82 15:28:14 by MCINTEE
;TCO 6.1219 - Extend NFTDTB for RLJFD
; UPD ID= 1042, SNARK:<6.MONITOR>FILNFT.MAC.13,   6-Aug-82 11:37:03 by MCINTEE
;more tco 6.1030 - Node verification - use OSTRF instead of ASTF
; UPD ID= 1010, SNARK:<6.MONITOR>FILNFT.MAC.12,  28-Jul-82 10:26:53 by MCINTEE
;more tco 6.1030 -add attribute lookup.
; UPD ID= 977, SNARK:<6.MONITOR>FILNFT.MAC.11,   7-Jul-82 10:54:20 by MCINTEE
;more tco 6.1030 -make extension lookup always succeed.
; UPD ID= 973, SNARK:<6.MONITOR>FILNFT.MAC.10,   1-Jul-82 10:33:07 by MCINTEE
;more tco 6.1030 -Add SEARCH DIMSYM
; UPD ID= 972, SNARK:<6.MONITOR>FILNFT.MAC.9,  30-Jun-82 16:15:48 by MCINTEE
;more tco 6.1030 -add dummy DAP% jsys
; UPD ID= 961, SNARK:<6.MONITOR>FILNFT.MAC.8,  24-Jun-82 14:35:41 by MCINTEE
;more tco 6.1030 -Return ambiguous on name & extension lookup with recognition.
; and allow NODLUK to work
; UPD ID= 782, SNARK:<6.MONITOR>FILNFT.MAC.7,  25-May-82 09:12:18 by MCINTEE
;more tco 6.1030 -return error on nonparse only NODLUKs (NFT problems)
; UPD ID= 764, SNARK:<6.MONITOR>FILNFT.MAC.6,  19-May-82 13:40:37 by MCINTEE
;more tco 6.1030 -remove previous edit
; UPD ID= 269, SNARK:<6.MONITOR>FILNFT.MAC.5,  31-Dec-81 08:59:14 by MCINTEE
;more tco 6.1030 -return error on non parse only NODLUKs
; (until NFT & FAL are fixed)
; UPD ID= 261, SNARK:<6.MONITOR>FILNFT.MAC.4,  16-Dec-81 16:21:34 by MCINTEE
;more tco 6.1030 -Device dispatch routines for name lookup (DIR,NAM,EXT,VER) always return true
;more tco 6.1030 -Node verification routine is in final form.

;	COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1976, 1988.
;	ALL RIGHTS RESERVED.
;
;	THIS SOFTWARE IS FURNISHED UNDER A  LICENSE AND MAY BE USED AND  COPIED
;	ONLY IN  ACCORDANCE  WITH  THE  TERMS OF  SUCH  LICENSE  AND  WITH  THE
;	INCLUSION OF THE ABOVE  COPYRIGHT NOTICE.  THIS  SOFTWARE OR ANY  OTHER
;	COPIES THEREOF MAY NOT BE PROVIDED  OR OTHERWISE MADE AVAILABLE TO  ANY
;	OTHER PERSON.  NO  TITLE TO  AND OWNERSHIP  OF THE  SOFTWARE IS  HEREBY
;	TRANSFERRED.
;
;	THE INFORMATION IN THIS  SOFTWARE IS SUBJECT  TO CHANGE WITHOUT  NOTICE
;	AND SHOULD  NOT  BE CONSTRUED  AS  A COMMITMENT  BY  DIGITAL  EQUIPMENT
;	CORPORATION.
;
;	DIGITAL ASSUMES NO  RESPONSIBILITY FOR  THE USE OR  RELIABILITY OF  ITS
;	SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY DIGITAL.
;	SEARCH PROLOG,DIMSYM
	SEARCH PROLOG
	TTITLE FILNFT
	SWAPCD

;SPECIAL AC DEFINITIONS USED HEREIN

DEFAC (STS,P1)			;SEE GTJFN FOR FUNCTIONS
DEFAC (JFN,P2)
DEFAC (DEV,P4)
DEFAC (F1,P5)
;DEVICE DEPENDENT ROUTINES. TO DO CERTAIN FUNCTIONS, THE RH OF DEV
;CONTAINS THE NAME OF A TABLE SUCH AS DSKDTB, AND A ROUTINE IS CALLED
;VIA 'CALL @FOO(DEV)', WHERE FOO IS A SYMBOL FOR AN OFFSET INTO THE
;TABLE. THE SYMBOLS ARE DEFINED IN PROLOG. IN THE COMMENTS BELOW,
;THE OFFSET IS INDICATED ALONG WITH THE PURPOSE OF THE ROUTINE

NFTDTB::NFTDTL
	DTBDSP (NFTDIR)		;DLUKD - DIRECTORY SETUP
 	DTBDSP (NFTNAM)		;NLUKD - NAME LOOKUP
 	DTBDSP (NFTEXT)		;ELUKD - EXTENSION LOOKUP
 	DTBDSP (NFTVER)		;VLUKD - VERSION LOOKUP
;	DTBDSP (NFTPRT)		;PLUKD - PROTECTION INSERTION
	DTBBAD (DESX9)		;PLUKD - PROTECTION INSERTION
;	DTBDSP (NFTACT)		;ALUKD - ACCOUNT INSERTION
	DTBBAD (DESX9)		;ALUKD - ACCOUNT INSERTION
;	DTBDSP (NFTINS)		;SLUKD - STATUS INSERTION
	DTBBAD (DESX9)		;SLUKD - STATUS INSERTION
;	DTBDSP (NFTOPN)		;OPEND - OPEN FILE
	DTBBAD (DESX9)		;OPEND - OPEN FILE
;	DTBDSP (NFTSQI)		;BIND - BYTE INPUT
	DTBBAD (DESX9)		;BIND - BYTE INPUT
;	DTBDSP (NFTSQO)		;BOUTD - BYTE OUTPUT
	DTBBAD (DESX9)		;BOUTD - BYTE OUTPUT
;	DTBDSP (NFTCLZ)		;CLOSD - CLOSE FILE
	DTBBAD (DESX9)		;CLOSD - CLOSE FILE
;	DTBDSP (NFTREN)		;REND - RENAME
	DTBBAD (DESX9)		;REND - RENAME
;	DTBDSP (NFTDEL)		;DELD - DELETE FILE
	DTBBAD (DESX9)		;DELD - DELETE FILE
	DTBBAD (DESX9)		;DMPID - DUMP MODE INPUT
	DTBBAD (DESX9)		;DMPOD - DUMP MODE OUTPUT
	DTBBAD (DESX9)		;MNTD - MOUNT DEVICE
	DTBBAD (DESX9)		;DSMD - DISMOUNT DEVICE
	DTBBAD (DESX9)		;INDD - INITIALIZE DIRECTORY OF DEVICE
	DTBBAD (MTOX1)		;MTPD - DO MTAPE OPERATION
	DTBBAD (DESX9)		;GDSTD - GET DEVICE STATUS
	DTBBAD (DESX9)		;SDSTD - SET DEVICE STATUS
	DTBBAD (DESX9)		;RECOUT - FORCE RECORD OUT (SOUTR)
;	DTBSKP			;RECOUT - FORCE RECORD OUT (SOUTR)
	DTBBAD (DESX9)		;RFTADD - READ FILE TIME AND DATE
;	DTBDSP (NFTRFT)		;RFTADD - READ FILE TIME AND DATE
	DTBBAD (DESX9)		;SFTADD - SET FILE TIME AND DATE
	DTBBAD (DESX9)		;JFNID - SET JFN FOR INPUT
;	DTBDSP (NFTINP)		;JFNID - SET JFN FOR INPUT
	DTBBAD (DESX9)		;JFNOD - SET JFN FOR OUTPUT
;	DTBDSP (NFTOUT)		;JFNOD - SET JFN FOR OUTPUT
	DTBDSP (NFTATR)		;ATRD  - CHECK ATTRIBUTE
	DTBSKP        		;RLJFD - release resources

	NFTDTL==:.-NFTDTB	;GLOBAL LENGTH OF DISPATCH TABLE
	SUBTTL DEVICE DISPATCH ROUTINES -- ALL ROUTINES

;directory lookup, always succeed
NFTDIR:	RETSKP

;name lookup, succeed if not recognition
NFTNAM:	TQNE <NREC1>		;recognition ?
	IFSKP.
	  TQO <AMBGF>		;yes. say ambiguous.
	  RETBAD (GJFX18)
	ENDIF.
	RETSKP

;extension lookup, always succeed
NFTEXT:	RETSKP      		;allow anything.

;version lookup, always succeed
NFTVER:	RETSKP			;allow anything.

;check legality of attribute
;T2/ attribute value
;CALL @ATRD(DEV)
;returns +1 on failure, +2 on success
NFTATR:	TQNE <OSTRF>		;parse only ?
	RETSKP			;yes. allow anything.
	CAIN T2,.PFACT		;no. account ?
	RETSKP			;yes. good
	RETBAD (GJFX49)		;no. bad.

NFTPRT:	RET
NFTACT:	RET
NFTINS:	RETSKP
NFTOPN:	RETSKP
NFTSQI:	RET
NFTSQO:	RET
NFTCLZ:	RETSKP
NFTREN:	RETSKP
NFTDEL:	RETSKP
NFTRFT:	RETSKP
NFTINP:	RET
NFTOUT:	RET
	SUBTTL DIM START UP ROUTINE
DIMLNK::RETSKP			;dummy
	SUBTTL DAP% FORK CLEANUP ROUTINE
DAPRST::RET			;dummy
	SUBTTL DAP% JOB CLEANUP ROUTINE
DAPLGO::RET			;dummy
	SUBTTL DAP ATTENTION ROUTINE

DAPHND::SAVEAC <CX>		;dummy -
	SKIPL SLOWF
	IFSKP.
	  MCENTR
	  PUSH P,[IFIW!MRETN]
	ENDIF.
	SE1ENT
	RET
	SUBTTL NODE VERIFICATION

;verify syntax for node name &
;verify that node exists and is reachable, if not parse-only
;	in T1 - address of string block as used by GTJFN
;	in STS - parse-only flag
;	CALL NODLUK
;	returns +1 on failure
;	returns +2 on success
;	uses T1, preserves all other ACs

NODLUK::SAVEAC <T2,T3,T4>	;T1 - T4 used by PARNO1 & NDVFY1
	STKVAR <BYTPTR>		;BYTPTR - byte pointer to node name
	HRLI T1,440700		;make T1 into a real byte pointer
	AOS T1			; pointing to the text.(it is ASCIZ)
       	MOVEM T1,BYTPTR     	;save it
	CALL PARNOD		;parse it, return length in T1
	 RETBAD()		;failed, pass along error
	TQNE <OSTRF>		;Parse only ?
	IFSKP.
NODLKX:	  NOP           	;NO. nop to turn it off if needed
	  MOVE T2,T1         	;No. set up for node verification
       	  MOVE T1,BYTPTR     	; in monitor space
 	  CALL NDVFY1		;verify existence of node
 	  TXNN T1,ND%EXM	;does such a node exist?
 	  RETBAD(NSPX24)	;no, it is not a known node, failure
	ENDIF.
	RETSKP			;success

	ENDSV.
;the DAP% jsys
.DAP::	MCENT
	JRST UJSYS0		;not allowed in this release.
      	SAVEAC <Q1,Q2>
;	TXZN T1,DP%BLK		;wait for completion ?
	IFSKP.
	  SETO T4,		;yes.
	ELSE.
	  SETZ T4,		;no.
	ENDIF.
	HLRZ T3,T1		;get function code
	MOVE Q2,T1		;save it.
;	CAIL T3,0		;is the function code legit ?
;	CAILE T3,MAXFNC		;"   "     "       "    "
	ITERR (DAPX0)		;No.
	MRETNG			;yes.

	TNXEND

	END