ASMB,R,L,C HED T0DCB - FMP DCB MAKER FOR TYPE 0 FILES 9/10/73 (DLB) *5-9 NAM T0DCB,7 PRE-REL 3-10-76 (DLB) * NAM T0DCB,7 PRE-REL 5-14-76 (DLB) * NAM T0DCB,7 PRE-REL 10-20-76 (DLB) NAM T0DCB,7 09570-16538 REV. A 761020 * *-------------------------------------------------------- * * RELOC. 09570-16538 * SOURCE 09570-18538 * * D. BASKINS 13 OCT 76 REV. A * *--------------------------------------------------------- * ENT T0DCB EXT P.PAS,.ENTR,EXEC,CLOSE SPC 1 A EQU 0 B EQU 1 XEQT EQU 1717B SPC 1 * PURPOSE: * TO BUILD A PHONY TYPE 0 FILE DCB FOR FMP GIVEN AN LOGICAL UNIT NUMB. * USED: * * IF (T0DCB(IDCB,IERR,LU) 99,10 * 99 GO TO * 10 GO TO * * WHERE: * IDCB IS A 16 WORD DCB FOR USE WITH READF/WRITF * IERR IS = 0 IF NO ERROR -OR- -6 IF ILLEGAL LOGICAL UNIT #. * LU IS THE LOGICAL UNIT # WITH -OR- WITHOUT CONWORD BITS. * * NOTE: * IF CONWORD BITS ARE NOT SUPPLIED IN THE LOGICAL UNIT, THE FOLLOWING * TABLE IS USED TO DEFAULT THEM BASED ON DRIVER TYPE FOR THE LU. * ASCII DATA WITH THE PRINT BIT IS THE GENERAL DEFAULT. SPC 1 DEF0 DEF ZER0 DTABL DEF ZER0-2 * DVRXX WR/RE FS/BS EOFC XAKVM ZER0 OCT 0,160704 1 1 0 0 07 04 CONSOLE OCT 1,050700 0 1 0 0 07 04 READER OCT 2,161000 1 0 0 0 10 00 PUNCH OCT 5,160704 1 1 0 0 07 04 CONSOLE OCT 10,100000 1 0 0 0 00 00 PLOTTER OCT 11,060700 0 1 0 0 07 00 CARD RD OCT 12,101100 1 0 0 0 11 00 LINE PT OCT 15,060700 0 1 0 0 07 00 CARD RD OCT 23,170100 1 1 1 1 01 00 MAGTAPE OCT 24,170100 1 1 1 1 01 00 MAGTAPE OCT 25,170100 1 1 1 1 01 00 MAGTAPE OCT -1,160100 1 1 0 0 01 00 DEFAULT SPC 1 DCB NOP ERR NOP LU DEF ZER0 T0DCB NOP ENTRY JSB .ENTR GET PARAMETER ADDRESSES DEF DCB TOP OF STACK JSB CLOSE CLOSE UP THE DCB DEF *+2 DEF DCB,I JUST IN CASE IT IS OPEN LDA DM10 GET PARAMETER ERROR VALUE LDB LU CHECK IF NAME PASSED? CPB DEF0 SAME? JMP EXIT YES, RETURN NOT ENOUGH PRAMS. ADA DM6 FORM -16 IN A-REG STA TEMP1 SAVE THE ZERO COUNTER LDA DCB GET DCB ADDRESS CLB,CLE GET DCB ADDRESSES ZERO1 STB A,I ZERO OUT THE DCB 1ST INA ISZ TEMP1 DONE? JMP ZERO1 NO, CONTINUE LDA DCB GET THE DCB ADDRESS JSB P.PAS USING FMP UTILITY DM10 DEC -10 TEMP1 NOP TEMP2 NOP TYPE NOP TYPE CODE ADDRESS LU0 NOP LOGICAL UNIT ADDRESS EOF0 NOP EOF CODE ADDRESS SPAC NOP SPACING CODE ADDRESS R/WCD NOP READ/WRITE VALITY CODES OPFLG NOP SECURITY FLAGS ADDRESS #SC/T NOP NUMBER SECTORS/TRACK IDSEG NOP OPEN TEST (ID SEG. ADDRS) LDA LU,I GET THE LOGICAL UNIT AND O3777 CHECK IF LEGAL CPA LU,I RSS YES, CONTINUE JMP FMPM6 NO, FMP ERROR -6 AND O77 MASK OFF ICON BITS STA TEMP1 AND SAVE JSB EXEC GET EQUIPMENT TYPE CODE DEF *+4 CALL EXEC (13,LU,IEQT5) DEF NA13 DEC 13+100000B DEF TEMP1 LU OF DEVICE DEF TEMP2 VALUE OF EQT 5 JMP FMPM6 ILLEGAL LU = FMP ERR -6 LDA TEMP2 CONVERT EQT 5 TO THE ALF,ALF POSITION AND O77 DRIVER NAME STA TEMP2 LDB DTABL GET START OF TABLE MEQTS ADB D2 AND FIND A MATCH WITH LDA B,I THE DRIVER NAME. SSA,RSS TABLE TERMINATES WITH -1 CPA TEMP2 = TO DRIVER NAME? INB,RSS YES, PICK UP BITS JMP MEQTS NO, TRY NEXT ONE LDB B,I NOW, DEFINE DCB VALUES RRL 2 POSITION READ/WRIT CODE AND D3 MASK OFF EXTRANIOUS BITS RAR POSITION BITS 0 & 15 STA R/WCD,I SAVE IN DCB RRL 2 POSITION SPACING CODES AND D3 RAR POSITION BIT 0-15 STA SPAC,I PUT IN DCB RRL 6 ALF POSITION RAL,RAL AND POSITION TO CONWD BITS AND O3700 MASK OF OTHER BITS IOR TEMP1 MIRGE IN LOGICAL UNIT STA EOF0,I AND PUT IN DCB LDA LU,I GET THE PASSED CONWORD BITS XOR TEMP1 TAKE OUT THE LU RRR 4 THE CONWORD BITS IN TABLE SZA CHECK IF ANY CONWORD BITS RRR 12 SUPPLIED BY CALLER SWP AND O3700 MASK TO CONWORD BITS IOR TEMP1 MIRGE IN LOGICAL UNIT STA LU0,I PUT IN DCB LDA XEQT GET IDSEG ADDRESS FOR STA IDSEG,I THIS PROGRAM CLA,CCE SET FILE TYPE STA TYPE,I ERA SET TO NON EXCULSIVE STA OPFLG,I OPEN CLA,INA PRESET THE LINE NUMBER TO 1 LDB IDSEG CALCULATE ADDRESS OF THE RECORD NUMBER ADB O5 WORD IN THE DCB STA B,I RECORD = #1 FOR NEXT READ OR WRITE CLA,RSS NOW RETURN TO CALLER FMPM6 LDA DM6 GET -6 ERROR RETURN EXIT LDB DEF0 RESET FOR NEXT CALLER STB LU STA ERR,I SET ERROR CODE JMP T0DCB,I AND RETURN SPC 1 NA13 OCT 100015 DEC 13 + 100000B D2 DEC 2 D3 DEC 3 O5 OCT 5 DM6 DEC -6 O3700 OCT 3700 O3777 OCT 3777 O77 OCT 77 END