; FBDMOD.MAC -- MODIFY FDB BEFORE OPEN ; AUTHOR: A. BARR ; DATE WRITTEN: 4/25/77 ; DATE REVISED: 04/29/77 ; 10/30/78 LEN - ADDED FIX AND VAR OPTIONS ; .NLIST TOC ;TBL OF CONTENTS NOT WANTED ; .TITLE FDBMOD .ENABL AMA ;NO PC-REL ADDRS ; .MCALL SUBR,RTN .MCALL MINIT,PUSH,POP ; .GLOBL FD.FTN,F.RATT,FD.BLK,FD.CR,F.RSIZ,$FCHNL,$OTSV .GLOBL R.FIX,R.VAR,F.RTYP ; MINIT ; ; CALL: ; CALL FBDMOD(LUN, ['NC'!'CC'] [,'SP'!'NS'] [,'LR',LRECL] ; 1 ['FI'], ['VA']) ; WHERE: ; LUN IS LUN # OF LUN TO MODIFY ; NC=> NO CARRIAGE CONTROL ; CC=> CARRIAGE CONTROL ; SP=> SPANNED BLOCKS ; NS=> NO SPANNED BLOCKS ; LR=> MAKE VAL OF NEXT PARM INTO LRECL FOR LUN ; PARMS OTHER THAN LUN MAY BE IN ANY ORDER ; FI=> SET FIXED LENGTH RECORD ; VA=> SET VARIABLE LENGTH RECORD ; ; SUBR FDBMOD DEC R0 ;MORE THAN 1 PARM? BLE ERROR ;NO PUSH R0 ;SAVE MOV @(R5)+,R2 ;GET LUN # MOV @#$OTSV,R3 ;OTS IMP PTR JSR PC,$FCHNL ;GET FDB ADDR ADD #12.,R0 ;ADDR OF FDB MOV R0,R4 ;SAVE IN R4 MOV (SP),R0 ;RESTORE R0 & RESERVE WORD FD30: MOV #OPTB,R1 ;GET ADDR OF OPTIONS TAB MOV #NOPT,R2 ;NUMBER OF OPTIONS MOV (R5)+,R3 ;GET ADDR OF PARM MOVB (R3)+,(SP) ;ASSURE ALIGNMENT MOVB (R3)+,1(SP) FD40: CMP (SP),(R1)+ ;IS THIS OPTION? BEQ FD100 ;YES TST (R1)+ ;SKIP ACTION SOB R2,FD40 ;LOOP THROUGH TABLE ERROR: TRAP 128.+81. ;REPORT INVALID PARM ERROR BR RTN FD80: SOB R0,FD30 ;LOOP THROUGH ALL PARMS ; RTN: RTN FD100: JMP @(R1) ;DISPATCH TO PROCESS OPTION CC: BISB #FD.FTN,F.RATT(R4) BICB #FD.CR,F.RATT(R4) ;NO AUTO CR AND LF BR FD80 NC: BICB #FD.FTN,F.RATT(R4) BISB #FD.CR,F.RATT(R4) ;AUTO CR AND LF BR FD80 SP1: BICB #FD.BLK,F.RATT(R4) BR FD80 NS: BISB #FD.BLK,F.RATT(R4) BR FD80 LR: MOV @(R5)+,F.RSIZ(R4) ;PUT LRECL INTO FDB DEC R0 BLE RTN BR FD80 FI: MOVB #R.FIX,F.RTYP(R4) BR FD80 VA: MOVB #R.VAR,F.RTYP(R4) BR FD80 ; OPTB: .ASCII /CC/ .WORD CC .ASCII /NC/ .WORD NC .ASCII /SP/ .WORD SP1 .ASCII /NS/ .WORD NS .ASCII /LR/ .WORD LR .ASCII /FI/ .WORD FI .ASCII /VA/ .WORD VA NOPT= <.-OPTB>/4 .END