ASMB,L,C,Q * NAME: SELUR * SOURCE: 92067-18180 * RELOC: 92067-16125 * PGMR: G.A.A.,G.L.M. * * *************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979. ALL RIGHTS * * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * * * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT* * * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * * *************************************************************** * NAM SELUR,7 92067-16125 REV.1903 790322 ENT SELUR EXT MESSS,.ENTR,LUTRU,.DFER,PTERR * * * THE FUNCTION OF THIS SUBROUTINE IS TO FORMAT THE FOLLOWING * MESSAGE: * * SELU UUU= LU#YYY EQQ S X D * * WHERE: UUU IS A GIVEN SESSION LU * YYY IS THE RELATED SYSTEM LU * QQ IS THE RELATED EQT NUMBER * X IS THE SUBCHANNEL (IF NOT 0) * D IS THE DECICE STATUS (D=DOWN ELSE BLANK) * * THE MESSAGE BEYOND THE "=" IS FORMATED BY THE SYSTEM LU PROCESSOR * AND MAY VARY AS THE SYSTEM LU PROCESSOR CHANGES. IF THE LU IS * NOT DEFINED (AS PER LUTRU) THE RESULT IS : * SLU UUU= NOT DEFINED * * CALLING SEQUENCE: * * ILOG=SELUR(UUU,WBUF) * OR * ILOG=SELUR(UUU,WBUF,ISCB) * * WHERE: UUU IS THE LU TO BE REPORTED * WBUF IS THE BUFFER WHICH IS TO CONTAIN THE MESSAGE. * (IT IS ASSUMED THAT THIS BUFFER IS LARGE ENOUGH * I.E. NO ERROR CHECKS ARE MADE ON POSSIBLE BUFFER * OVERRUN.) * ILOG IS THE RETURN BUFFER LENGTH IN CHARACTRERS. * ILOG WILL BE NEGATIVE (I.E. IT MAYBE USED IN * THE EXEC I/O CALL). * * ISCB IS THE SCB TO SCAN. DEFAULT IS TO USE XEQT'S SCB. * LU NOP BUF NOP ISCB DEF NOP SELUR NOP JSB .ENTR GET THE PRAMS. DEF LU JSB LUTRU TRANSLATE THE LU DEF LUT.1 DEF LU,I DEF SYSLU AND SAVE THE RESULT DEF ISCB,I SCAN SPECIFIED SCB (OPTIONAL) LUT.1 EQU * * DLD "SLU" MOVE "SLU " TO THE DST BUF,I SUPPLIED BUFFER ISZ BUF STEP THE POINTER ISZ BUF STEP THE POINTER LDA LU,I GET THE NUMBER AND AND B377 ISOLATE THE BITS JSB CNUM CONVERT THE NUMBER TO ASCII RRL 8 AB = 123B (B=ASCII BLANK) ADB B35 AB = 123= DST BUF,I PUT IT IN THE BUFFER ISZ BUF STEP ALONG ISZ BUF STEP ALONG LDA "LU" BUILD A STA BUF,I LU,XXX LDA BUF COMMAND STA CALL SAVE THE ADDRESS FOR MESSS LDA SYSLU GET THE RETURN FROM LUTRU SSA IF ERROR JMP ILLU GO PROCESS THE "NOT DEFINED" * CPA B377 THIS THE MAGIC LU?? JMP IO26E YES GO REPORT IT AS SUCH * ISZ BUF STEP ALONG SZA,RSS IF RESULT IS ZERO JMP ZERO GO SET UP A ZERO RETURN (MESSS WON'T DO IT) * JSB CNUM AB=B123 CONVERT THE NUMBER ADA HCOMA AB=,123 PUT IN THE COMMA DST BUF,I PUT RESULT IN THE BUFFER LDA XEQT GET THE KEY TO PASS TO ADA D32 TO MESSS TO GET THE XLA A,I DESIRED RESULT CMA,INA SET NEG TO OVER-RIDE STA SCB SET FOR MESSS JSB MESSS DO THE CALL DEF MRTN CALL NOP USER BUFFER ADDRESS DEF D6 6 CHARS IN DEF D1 CONSOUL LU DEF SCB KEY MRTN ADA N8 ADD THE "SLU UUU= " LENGTH LDB DNOP RESET OPTIONAL SCB PARAMETER STB ISCB JMP SELUR,I AND RETURN * IO26E DLD IO26 GET THE "IO26" CODE DST BUF,I PUT IT IN THE BUFFER JSB PTERR NOW PUT IT IN THE SCB SO HE DEF *+3 CAN FIGURE IT OUT DEF IO26 DEF LU DUMMY ERROR PRAM LDA N4 GET LENGTH JMP MRTN AND GO EXIT * N4 DEC -4 * ILLU DLD "NOT" LU NOT DEFINED DST BUF,I SET "NOT DEFINED" ISZ BUF ISZ BUF JSB .DFER IN THE BUFFER DEF BUF,I DEF "DEF" LDA N10 JMP MRTN GO RETURN * ZERO DLD ZIP SET UP THE RETURN FOR EQ0 DST BUF,I AND LDA N6 GET ITS CHAR LENGTH JMP MRTN GO RETURN * IO26 ASC 2,IO26 PTERR REALLY PUTS "IO26 # 0" BUT HELP KNOWS ZIP ASC 2, # 0 N6 DEC -6 N10 DEC -10 HCOMA BYT 14 CONVERTS HIGH BLANK TO COMMA "NOT" ASC 2,NOT "DEF" ASC 3,DEFINED "LU" ASC 1,LU "SLU" ASC 2,SLU B377 OCT 377 B35 OCT 35 D6 DEC 6 N8 DEC -8 D1 DEC 1 D32 DEC 32 SCB NOP SYSLU NOP DNOP DEF NOP NOP NOP * CNUM NOP A 4-DIGIT LEADING ZERO SUPPRESS BINARY CLB,CLE TO ASCII NUMBER CONVERTER DIV D100 SEPERATE N INTO HIGH & LOW DIGITS STB LOWD SAVE THE LOW ONES JSB TWOD CONVERT THE HIGH ONES (E=0 => SUP 0'S) STB HIAS SAVE THE RESULTS LDA LOWD NOW LOW ONES JSB TWOD LDA HIAS SET AB TO 1234 (DIGITS) SEZ,RSS IF NO NON-ZERO THEN ADB B20 FOURCE A ZERO TO 4'TH DIGIT JMP CNUM,I RETURN * B20 OCT 20 LOWD NOP HIAS NOP D100 DEC 100 * TWOD NOP ENTRY A=#,E=0 IF NO # YET LDB BLK ASSUME NO # YET SEZ,SZA,RSS IF NO # AND STILL ZERO JMP TWOD,I RETURN TWO BLANKS (E=0) * CLB AT LEAST ON DIGIT HERE DIV D10 SEPERATE THEM ALF,ALF ROTATE HIGH TO PROPER PLACE SEZ,CCE,SZA,RSS IF NO HIGHER DIGITS AND NONE YET LDA NB20 FOURCE A BLANK HIGH DIGIT ADB A COMBINE BOTH DIGITS ADB "00" CONVERT TO ASCII #S JMP TWOD,I RETURN B=ASCII,E=1 * D10 DEC 10 NB20 BYT -20 "00" ASC 1,00 BLK ASC 1, XEQT EQU 1717B A EQU 0 B EQU 1 END