; FPARS2.MAC -- USE .PARSE TO FILL IN FDB ; AUTHOR: A. BARR ; DATE WRITTEN: 12/27/77 ; DATE REVISED: 6-FEB-78 FOR BETTER UIC HANDLING ; .NLIST TOC ;TBL OF CONTENTS NOT WANTED ; .TITLE FPARS2 .SBTTL USE .PARSE TO FILL IN FDB ;***DEBUG< .ENABL AMA ;NO PC-REL ADDRS ;***DEBUG> ; .MCALL SUBR,RTN .MCALL MINIT,PUSH,POP ; .GLOBL .PARSE,$OTSV,$FCHNL,F.FNB,F.DFNB,F.DSPT,F.ERR .GLOBL F.LUN,S.FNBW,.RFOWN,.ASCPP,FPUICT ; MINIT ; ; CALL: ; CALL FPARS2(LUN,DSD,DFNB,NER) ; WHERE: ; SUBR FPARS2,4 MOV @(R5)+,R2 ;GET LUN # PUSH R2 ;SAVE LUN MOV @#$OTSV,R3 ;OTS IMPURE PTR JSR PC,$FCHNL ;FFDB ADDR MOV R0,R4 ;SAVE FFDB ADDR MOV #S.FNBW,R1 ;ZERO FFDB & FDB 10$: CLR (R4)+ SOB R1,10$ ADD #14,R0 ;FDB ADDR MOV (SP),F.LUN(R0) ;FILL IN LUN MOV R0,R1 ;COMPUTE FNB ... ADD #F.FNB,R1 ;... ADDR MOV (R5)+,R2 ;DSD ADDR MOV R2,F.DSPT(R0) ;PUT IN FDB MOV (R5)+,R3 ;FNB ADDR MOV R3,F.DFNB(R0) ;PUT INTO FDB MOV (R5)+,R4 ;ADDR OF NER CLR (R4) ;CLEAR ERROR CODE JSR PC,.PARSE ;FILL IN FDB BCS ERR ;ERROR TST F.DSPT(R0) ;DSD? BEQ FP30 ;NO MOV F.DSPT(R0),R2 ;GET DSD ADDR ADD #4,R2 ;SKIP DEV DESCRIPT TST (R2) ;IS UIC THERE BEQ FP30 ;NO PUSH ;RESERVE A WORD MOV SP,R3 ;POINT TO IT JSR PC,.ASCPP ;CNVERT UIC TO BINARY POP R1 ;PUT UIC INTO R1 BR FP40 FP30: JSR PC,.RFOWN ;GET FILE OWNER WORD FP40: POP R2 ;GET LUN ADD R2,R2 ;COMPUTE OFFSET INTO FPUICT MOV R1,FPUICT-2(R2) ;STORE UIC RTN: RTN ERR: MOV F.ERR(R0),(R4) ;RETURN ERROR CODE BR RTN .END