IN:EXTENX.MAC/AU:72./-BF=LB1:[13,10]EXTEN.MAC -1,1,/;DSM01/ $BEGIN EXTEN,7215, ; ; Daniel S. McCoy 16 feb 79 changed for dual-porting ; DSM 30 oct 79 version two of dual-porting ; DSM 11 sept 80 Added call to DWPND for proper clean up -39,39,/;DSM01/ ; Then it sends the file extension request to the master system. -55,61,/;DSM01/ ADD #I.RWAT,R0 MOV (R0)+,R1 ; NO. READ ATTRIBUTES -67,69,/;DSM01/ BIS (R0),R1 ; -84,153,/;DSM01/ CLR .HDUCB ; invalidate the in core copy of the header ; CALL .RQIO ; send this request to the master system ; TSTB .IOSTS ; test success BMI 30$ ; return if error ; CALL @.CLFC1 ; clean up the FCB to look like the header ; ; See if the master created any new file headers. If so, ; create an FCB for it. ; MOV R0,-(SP) ; Save current FCB addr 90$: CALL .NXHDR ; Read next header BCS 110$ ; Branch if none MOV (SP),R0 ; Get last FCB address MOV F.FEXT(R0),R0 ; Look at its extension pointer BNE 100$ ; Next FCB already exists CALL .CRFCB ; Does not - create one MOV R0,@V.FCB+2(R4) ; Add it to FCB list MOV R0,V.FCB+2(R4) ; MOV (SP),R1 ; Get old FCB address again MOV R0,F.FEXT(R1) ; Link new one to its extension MOV .FCBAD,R1 ; Get addr of primary FCB ADD #F.SIZE,R1 ; Skip to file size area ADD (R1)+,F.FVBN(R0) ; Set starting VBN of new FCB ADD (R1),F.FVBN+2(R0) ; To one past size of file ADC F.FVBN(R0) ; So far ADD F.SIZE(R0),-(R1) ; Add size of this header ADD F.SIZE+2(R0),2(R1) ; To total in primary FCB ADC (R1) 100$: MOV R0,(SP) ; Update stack MOV .WNDOW,R1 ; Point to window CLR R2 MOV #1,R3 ; Set VBN = 1 CALL .WTRN1 ; And update the window BR 90$ ; Go for next file header 110$: TST (SP)+ ; Clean the stack ; 30$: CALL .DWPND ; Clear window turn pending RETURN /