ASMB,R,Q,C NAM B.SET,7 92076-1X015 REV 2040 800722 92076-12001 * ENT B.SET * EXT SRQ.T,.ENTR,PNAME,IMESS,EXEC,$LUTA,IPUT EXT CNFUE,IXGET * ******************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1980. ALL RIGHTS * * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * * * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT * * * THE PROIR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * ******************************************************************** * * NAME: B.SET * RELOC: PART OF 92076-12001 * SOURCE: 92076-18015 * PGMR: T.A.L. * * A EQU 0 B EQU 1 * CPAR1 BSS 1 CPAR2 BSS 1 CPAR3 BSS 1 CPAR4 BSS 1 * B.SET NOP JSB .ENTR DEF CPAR1 LDA CPAR2,I LOAD TRAP NUMBER CMA,SSA,INA TRAP #'S 1-16 SZA,RSS ARE LEGAL JMP LOSE ZERO OR NEG. LOSES ADA .16 SSA JMP LOSE GT 16 LOSES LDB SRQ.T GET SRQ.T ADDRESS LDA CPAR2,I GET TRAP # ADA M1 SUBTRACT ONE STA TRAP RAL INDEX BY TRAP # ADA TRAP INTO ARV.L ADB A TABLE. STB ARVAD SAVE ARV.L TABLE ADDRESS JSB IXGET GET DVT TABLE ADDRESS DEF *+2 DEF LUTA STA B SAVE IT LDA CPAR1,I LOAD FIRST PARAMETER AND B77 MASK LU STA LU SAVE IT CMA,INA,SZA,RSS CONVERT TO NEG. LU, ZERO? JMP LOSE YES, LOSE ADA B ADD TO LAST CONFIGURED LU SSA VALID LU? JMP LOSE NO, EXIT WITH ERROR MESSAGE ADB LU INDEX TO APPROPRIATE ADB M1 DVT ADDRESS POINTER STB TBLAD SAVE IT JSB IXGET GET DVT ADDRESS DEF *+2 DEF TBLAD SZA,RSS ADDRESS = 0? JMP LOSE YES, LOSE STA DVTA NO, SAVE DVT ADDRESS ADA .4 INDEX TO DVT WORD 5 STA TBLAD SAVE ADDRESS JSB IXGET GET DVT WORD 5 DEF *+2 DEF TBLAD ELA,CLE,ERA CLEAR SIGN BIT ADA .5 INDEX TO IFT WORD 6 STA TBLAD SAVE ADDRESS JSB IXGET GET INTERFACE TYPE DEF *+2 DEF TBLAD ALF,ALF SHIFT AND AND B77 MASK INTERFACE TYPE SZA,RSS INTERFACE TYPE = 0? JMP LOSE YES, TERMINAL CPA .5 INTERFACE TYPE = 5? JMP LOSE YES, TERMINAL CPA B37 INTERFACE TYPE = 37B? JMP BUSLU YES, CHECK FOR BUS LU CPA B50 INTERFACE TYPE = 50B JMP LOSE YES, GPIO PARALLEL CARD JMP LOSE NO, ERROR BUSLU LDB DVTA GET DVT ADDRESS ADB .22 INDEX TO DVT PARAMETER ($DVTP) STB TBLAD SAVE ADDRESS JSB IXGET GET FIRST DRIVER PARAMETER DEF *+2 DEF TBLAD CPA B36 BUS LU? CLA YES, RETURN A=0 LDB CPAR4 GET OPTIONAL PARAM ADDR SZB ZERO? LDB CPAR4,I NO, GET FUNCTION CPB .1 FUNCTION = 1? JMP SRQ YES, SERIAL POLL LDA CTL40 NO, PARALLEL POLL JMP SRQP * SRQ SZA,RSS BUS LU? JMP LOSE YES, LOSE LDA CTL20 GET CONTROL REQUEST CODE SRQP IOR LU MERGE LU STA CTLWD AND SAVE CONTROL WORD LDA LU GET LU JSB CNFUE CHECK LU CONFIGURATION SZA,RSS LU CONFIGURED? JMP CTL NO, CONTINUE LDA CTLWD YES, SET IOR NBUE 'NB UE' BITS STA CTLWD IN CONTROL WORD * CTL LDA M16 ARV.L TABLE COUNTER STA COUNT SAVE IT LDB SRQ.T GET ARV.L TABLE ADDRESS NEXT LDA B,I GET LU FROM TABLE CPA LU LU ALREADY THERE? JMP ZERO YES, ZERO IT ADB .3 INDEX TO NEXT LU ISZ COUNT TABLE EXHAUSTED? JMP NEXT NO, GET NEXT LU JMP GO YES, PUT LU INTO TABLE ZERO STB TBLAD SAVE ADDRESS JSB IPUT ZERO LU IN ARV.L TABLE DEF *+3 DEF TBLAD DEF .0 ISZ TBLAD INDEX TO VALUE ADDRESS JSB IPUT ZERO VALUE IN ARV.L TABLE DEF *+3 DEF TBLAD DEF .0 ISZ TBLAD INDEX TO STATUS ADDRESS JSB IPUT ZERO STATUS IN ARV.L TABLE DEF *+3 DEF TBLAD DEF .0 GO JSB IPUT PUT LU INTO ARV.L TABLE DEF *+3 AT CORRESPONDING TRAP ENTRY DEF ARVAD DEF LU LDA SRV.N SERVICE PROGRAM NAME "SRV.L" STA PARM3 LDA SRV.N+1 STA PARM4 LDA SRV.N+2 STA PARM5 LDA CPAR3,I GET OPTIONAL VALUE STA PARM6 SAVE IT * JSB EXEC SCHEDULE "SRV.L" PROGRAM DEF *+7 DEF .A3 ADD "NO-ABORT BIT" TO REQ. CODE DEF CTLWD DEF PARM3 DEF PARM4 DEF PARM5 DEF PARM6 NOP JMP B.SET,I RETURN * .0 DEC 0 .1 DEC 1 .3 DEC 3 .4 DEC 4 .5 DEC 5 .16 DEC 16 .22 DEC 22 M16 DEC -16 M1 DEC -1 B36 OCT 36 B37 OCT 37 B50 OCT 50 B77 OCT 77 CTL20 OCT 2000 CTL40 OCT 4000 NBUE OCT 60000 .A3 OCT 100003 SRV.N ASC 3,SRV.L LUTA DEF $LUTA * TBLAD NOP ARVAD NOP COUNT NOP TRAP NOP LU NOP DVTA NOP CTLWD NOP PARM3 BSS 1 PARM4 BSS 1 PARM5 BSS 1 PARM6 BSS 1 * LOSE JSB PNAME DEF *+2 DEF MSGA+6 GET PROGRAM NAME JSB IMESS DEF *+4 DEF .2 WRITE DEF MSGA "ILL RQ-HPIB" DEF .13 MESSAGE * JMP B.SET,I RETURN * .2 DEC 2 .13 DEC 13 SUP MSGA ASC 13,ILL RQ-HPIB XXXXXXABORTED * END