INDIF1.MAC;2/AU=INDIF1.VGN \ -2,2 .IDENT /4.09X/ -29 ; ; RJDK2 8/28/78 ADD .IFEXI AND .IFNEXI COMMANDS ; % -33,,/; RJDK2/ .MCALL CSI$1,CSI$2,CSI$,NMBLK$,FDBDF$ .IF NDF R$$11D .MCALL TCBDF$,HDRDF$,UCBDF$ .ENDC CSI$ .IF NDF R$$11D TCBDF$ ; DEFINE TCB SYMBOLS HDRDF$ ; DEFINE HEADER SYMBOLS UCBDF$ ; DEFINE UCB OFFSETS .ENDC -57,,/; RJDK2/ EXDFNB: NMBLK$ ,,,SY,0 ; FILE BLOCK TO GET BACK TO SY: EXIFNB: NMBLK$ ,,,SY,0 ;FILE BLOCK FOR EXISTS -73,,/; RJDK2/ .ASCIZ /IFEXI/ .ASCIZ /IFNEXI/ -91,,/; RJDK2/ .WORD IFEXI .WORD IFNEXI -277,,/; RJDK2/ .ENABLE LSB IFEXI: CLR -(SP) BR 10$ IFNEXI: MOV PC,-(SP) 10$: CALL $GNBLK ;FIND A CHARACTER BCS SYNERR ;NONE IS ERROR DEC R0 ;POINT AT START OF TEXT MOV R0,-(SP) ;SAVE START OF NAME 1$: CALL $GNBLK ;AND ANOTHER BCS SYNERR ;ANY EOL IS WRONG TST R1 ;ANY SPACES BEQ 1$ ;NO GET NEXT DEC R0 ;POINT BACK INTO SPACE MOV R0,R1 ;POINT TO END SUB (SP),R1 ;AND MAKE LENGTH MOV (SP)+,R5 ;GET TEXT START POINTER BACK MOV R0,-(SP) ;PUSH FOLLOW ON POINT INSTEAD CSI$1 #$CSIBK,R5,R1 ;WORK ON THIS NAME BCS SYNERR ;BAD SYNTAX CSI$2 ,OUTPUT ; MAKE OUTPUT SPEC ; CSI$2 #$CSIBK,OUTPUT ;MAKE OUTPUT SPEC ***JGD BCS SYNERR ;BAD AGAIN CALL SETUIC ; MAKE CURRENT UIC OK MOV #DATF,R0 ;USE FDB ABOVE MOV #EXIFNB,R1 ;USE ITS FNB MOV #EXDFNB,R3 ;SY0: IS DEFAULT ; CALL .GTDID ; INSERT DEFAULT DIRECTORY INFO *** ; CLR R3 ;NO DEFAULTS MOV #$CSIBK+C.DSDS,R2 CALL .PARSE BCS SYNERR ;FAILS ON BAD SYNTAX MOV #DATF,R0 ;GET FDB AGAIN MOV #EXIFNB,R1 ;GET FNB AGAIN CALL .FIND ; IS FILE? MOV (SP)+,R0 ;POINT BACK INTO LINE JMP TSTCC ;FIX UP RESULT .DSABLE LSB -356,,/; RJDK07/ SETUIC: ; FIXUP CORRECT UIC FOR FILES FOR .IFEXI, AND .IFNEXI ; ; RJDK 7-OCT-78 FROM INDOPN MOV INDTI,R1 MOV U.UIC(R1),R3 CALL $SWSTK,5$ ; INTO SYSTEM STATE MOV $HEADR,R0 ; GET OUR TASK HEADER MOV R3,H.DUIC(R0) ; INSERT CURRENT UIC INTO DEFAULT UIC RETURN ; RETURN FROM SYSTEM STATE 5$: MOV R3,R1 ; COPY UIC CALL .WFOWN ; SET CORRET FILE OWNER MOV #SCR,R2 ; POINTER TO SCRATCH SPACE CLR R4 ; CALL .PPASC ; SETUP A DEFAULT UIC STRING MOV R2,R1 ; GET LENGTH IN BYTES MOV #SCR,R2 ; SUB R2,R1 ; LENGTH IN R1, PTR IN R2 CALL .WDFDR ; SET FDB ATTRIBUTES RETURN ; BACK TO MAINLINE /