ASMB,R,Q,C HED IB4A3, RTE4 HPIB UTILITIES ACCESSING SSGA ENT'S. NAM IB4A3,7 59310-1X014 REV 2026 800407 * * RELOC 59310-1X014 PHANTOM MODULE. * SOURCE 59310-18014 * ENT SRQSN EXT .ENTR,EXEC,SRQ.T,IPUT,LUTRU * EQTA EQU 1650B DRT EQU 1652B LUMAX EQU 1653B * ********************************************************************* * BASIC'S SRQ/TRAP SERVICE * * CALL SRQSN(LU,TRAP#) -SET TRAP @LU * ********************************************************************** SRQSN NOP JSB SET GET PARMS & VALIDATE ADB .3 INDEX TO EQT WORD4 STB T3 LDA 1,I & AND B77 EXTRACT CHANNEL STA 1 * LDA T2 =DRT ENTRY ALF,RAL AND B37 EXTRACT SUB-CHANNEL SZA,RSS SUB-CHAN=0? JMP LOSE YES, NOT AVAIL TO DIRECT I/O ALF,ALF POSITION TO HI BITS IOR 1 & MERGE WITH CHANNEL STA T1 * LDA CPAR2,I VALIDATE PARM2: CMA,SSA,INA TRAP #'S 1-16 SZA,RSS ARE LEGAL JMP LOSE ADA .16 SSA JMP LOSE OTHERS LOSE * CCB ADB SRQ.T INDEX TO ADB CPAR2,I INDICATED STB T2 TRAP # JSB IPUT POST SUB-CHAN/CHAN DEF *+3 DEF T2 DEF T1 LDA SRQ.P STA CPAR3 =SRQ PROG NAME ADDR * LDA CPAR2,I STA TRP# USE TRAP NUMBER AS PASSED VALUE. LDB T3 JMP SRQ1 * SRQ1 LDA 1,I CHECK EQT4 FOR AND BIT14 BUFFERING BIT=1 SZA,RSS ?? JMP SRQ2 * XOR 1,I YES, FORCE NON-BUFFERED STB T3 REQUEST FOR THIS CALL STA T4 JSB IPUT POST @ EQT4 DEF *+3 DEF T3 DEF T4 CCA FLAG IT FOR RESET LATER * SRQ2 STA T2 SAVE FLAG FOR RESETTING BUFFERED I/O. * ISZ CPAR3 MOVE "PROG" AND IV TO BUFFER. LDA CPAR3,I STA CBUFR MOVE 1 & 2 * ISZ CPAR3 LDA CPAR3,I STA CBUFR+1 MOVE 3 & 4 * ISZ CPAR3 LDA CPAR3,I STA CBUFR+2 MOVE 5 * LDA CPAR2,I STA CBUFR+3 MOVE IV * SRQ3 JSB EXEC CALL DRIVER NOW DEF *+4 DEF RQ3 REQ.CODE-NO ABORT DEF LU CNTRL WORD DEF CBUFA PROG NAME BUFFER ADDRESS. CCB IN CASE OF ERR ISZ T2 EQT MODIFIED? JMP RTN NO, LEAVE DST ANB YES, SAVE REGS LDA T3,I IOR BIT14 RESTORE BUFFERING STA T4 INDICATOR JSB IPUT DEF *+3 DEF T3 DEF T4 LDB T2 SSB,RSS ERRS? JMP RTN1 NO, EXIT JMP LOSE YES, ABORT * SKP **************************************************************** **************************************************************** * * SUBROUTINES * **************************************************************** **************************************************************** * ********************************************* * * SUBROUNTINE TO EXIT UTILITY LIBRARY * ********************************************* RTN DST ANB RTN1 LDA .0A STA CPAR2 STA CPAR3 DLD ANB JMP XIT,I * ************************************************************** * * SUBROUTNINE TO RETRIEVE PARAMETERS AND VALIDATE * ************************************************************** SET NOP LDA SET RECOVER RETURN ADDR ADA M2 & LDA 0,I GET PARM LIST ADDR STA XIT JMP SET1 * CPAR1 DEF * CPAR2 DEF * CPAR3 DEF .0 (OPTIONAL) * XIT NOP SET1 JSB .ENTR GET PARMS DEF CPAR1 LDA CPAR1,I IOR B2000 SET SRQ SETUP BIT IN CONTROL WORD. STA LU CONTROL WORD. * JSB LUTRU SET TRUE (SYSTEM) LU. DEF *+3 SYSTEM LU IS RETURNED IN A REGISTER AND DEF CPAR1,I ALSO STORED. DEF LUT * CPA M1 DOES SESSION LU MAP TO SYSTEM LU? JMP LOSE NO. ERROR. * CMA,INA YES. INSURE VALID SYSTEM LU. ADA LUMAX SSA JMP LOSE WRONG! LDA DRT ADA LUT INDEX TO ADA M1 APPROPRIATE LDA 0,I DRT ENTRY USING SYSTEM LU. SZA,RSS JMP RTN (IGNORE BIT BUCKET) STA T2 & AND B77 EXTRACT EQT # ADA M1 MPY .15 FIND EQT ADDR ADA EQTA LDB 0 ADA .4 GET EQT WORD 5 LDA 0,I & STA T1 CHECK DEVICE TYPE ALF,ALF AND B77 CPA B37 HPIB? JMP SET,I OK, LEAVE, (B)=EQT ADDR * LOSE LDA .0A STA CPAR2 CLEAR OPT.PARMS STA CPAR3 JSB EXEC DEF *+5 DEF .2 DEF .1 "ILL RQ-HPIB" DEF MSGA DEF .12 JSB EXEC & QUIT! DEF *+2 DEF .6 * * * STORAGE, ETC... * SUP .0 DEC 0 .1 DEC 1 .2 DEC 2 .3 DEC 3 .4 DEC 4 .6 DEC 6 .12 DEC 12 .15 DEC 15 .16 DEC 16 M1 DEC -1 M2 DEC -2 M16 DEC -16 B20 OCT 20 B37 OCT 37 B77 OCT 77 B377 OCT 377 B2000 OCT 2000 BIT12 OCT 10000 BIT14 OCT 40000 RQ3 OCT 100003 * .0A DEF .0 * LU BSS 1 LUT BSS 1 T1 BSS 1 T2 BSS 1 T3 BSS 1 T4 BSS 1 T5 BSS 1 T6 BSS 1 * CBUFA DEF *+1 CBUFR BSS 4 ANB BSS 2 SRQ.P DEF * ASC 3,SRQ.P TRP# BSS 1 TRAP NUMBER. MUST FOLLOW SRQ.P * MSGA ASC 12,ILL RQ-HPIB PROG ABORTED * SIZE EQU * END