ASMB,R,L,C HED REMOTE EXEC-CALL MONITOR *(C) HEWLETT-PACKARD CO. 1976* * NAM EXECM,2,30 91700-16127 REV.A 760212 SPC 1 ****************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1976. 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. * ****************************************************************** SPC 2 EXT D65SV EXT D65CL EXT CNUMO EXT REIO EXT #MBRK IFZ EXT DBUG XIF A EQU 0 B EQU 1 SUP EXT EXEC SPC 5 * * EXECM * SOURCE:91700-18127 * BINARY:91700-16127 * SHANE DICKEY * JULY 30.1974 * * MODIFIED BY: C.C.H. [01/11/76] * * Z OPTION INCLUDES DEBUG SPC 5 HED EXEC REQUEST PROCESSOR * (C) HEWLETT-PACKARD CO. 1976 * * * GET THE I/O CLASS FOR THIS MONITOR SET UP BY LSTEN * EXECM LDA B,I IS P1 = I/O CLASS? IFZ SZA,RSS IF ZERO INITIALIZE CALL-SET UP JMP *+3 AND TERMINATE-IF REAL LSTEN CALL- XIF STA ICLAS SET UP GET AND DO IT IFZ JMP GET * JSB DBUG SET UP DBUG DEF *+1 * JSB EXEC SAVE RESOURCES AND TERMINATE DEF *+4 DEF D6 DEF ZERO DEF D1 * JMP EXECM LSTEN CALL STARTS HERE XIF * * ISSUE GET ON I/O CLASS * GET JSB EXEC THIS GET WILL SUSPEND DEF *+5 EXECM UNTIL QUEUE SENDS DEF D21 A REMOTE EXEC CALL TO THE MONITOR DEF ICLAS UPON ACTIVATION, REQUEST PARMB WILL BE DEF IRBUF IN THE IRBUF BUFFER AREA DEF IRBFL * * PARMB+24=LU * LDA IRBUF+24 AND MSK2 STA FSTLU * * * THE ORIGINAL CALL IS RECONSTRUCTED * THE PREPROCESS FLAG IS CHECKED TO DETERMINE * IF THERE IS ANY PREPROCESSING TO BE DONE * AN EXAMPLE OF THIS WOULD BE THE GATHERING OF * A DATA BUFFER BEFORE EXECUTION OF A WRITE REQUEST * ALSO ERROR CHECKING CAN BE DONE IN PREPROCESS S/R * FOLLOWING THE PREPROCESS THE RECONSTITUTED CALL * IS EXECUTED AND STATUS IS RETURNED TO EXECM * BY EXEC-IT IS THE RETURN OF THIS STATUS INFORMA- * TION THAT COMPRISES THE MAJOR PART OF POST- * PROCESSING, OF COURSE OTHER TYPES OF POSTPROCESSES * CAN BE ACCOMPLISHED. AN EXAMPLE IS THE WRITING OF * AN ACQUIRED DATA BUFFER TO THE TERMINAL FOLLOWING * A DATA READ * * * * CLEAR THE JSB BUFFER TO ZEROS AT THE START * LDB DM12 SET UP A COUNTER TO STB CONTR CLEAR 12 WORDS OF THE JSB BUFFER LDA JSBFA TO 0-THEN SET UP START ADDRESS STA AJSBF TO CLEAR CLA LOOP7 STA AJSBF,I CLEAR A WORD * * INCREMENT COUNTERS * ISZ AJSBF ISZ CONTR JMP LOOP7 IF NOT DONE DO NEXT ONE * * RECONSTRUCT THE CALL * LDA PARMB BUILD A POINTER TO THE ADA D6 1ST USER PARAMETER IN STA BLOKA PARMB & STORE IT IN BLOKA LDA PRMSA BUILD A POINTER TO THE ASSEMBLY STA APRMS AREA & SAVE IT-ACTUAL PARAMETERS' LDA JSBFA BUILD A POINTER TO THE JSB STA AJSBF ASSEMBLY AREA LDA JSBTB GET JSB TO EXEC & INSERT IT STA AJSBF,I IN THE BUILDING BUFFER ISZ AJSBF ISZ AJSBF * * AFTER PUTTING IN THE JSB STEP PAST DEF RETURN *(THIS WILL BE COMPUTED AND FILLED IN LATER) * INITIALIZE PARAMETER COUNTER TO DO SAME * CLA THIS WILL BE INCREMENTED STA PRCNT STA RECHK INITIALIZE CHECK-COUNT. * * BEFORE THE BUFFER IS BUILT FROM PARMB IT MAY NEED A "MASSAGE". * THE FOLLOWING CODE ISOLATES THE ADDRESS OF THIS "MASSAGE" S/R * AND TRANSFERS TO IT. * * SET UP THE EXEC PREPROCESS S/R ADDRESS * LDA BLOKA GET ADDR OF ICODE WORD INA * * THE ICODE PARAMETER MUST NOW BE SET UP * LDA A,I ALF,ALF AND MSK0 STA ICODE * SKP * SET UP THE ERROR REGISTER * LDB D9 ADA EXPRA PICK UP ICODE, PROCESSOR,ERROR CHECK ICODE LDA A,I AND XFER TO PROCESS IF DEFINED * * BY WAY OF REVIEW: * BLOKA NOW POINTS TO PARMB+6(START OF PARAMETERS) * APRMS NOW POINTS TO PARMS (PARAMETER STORAGE BUFFER) * AJSBF NOW POINTS TO JSBUF+3 (BUILDING BUFFER 3RD WORD) * THE PARAMETER COUNT (PRCNT) IS ZERO * ICODE CONTAINS THE REQUESTED EXEC ICODE SETTING * THE PARMB IS CONTAINED IN THE IRBUF BUFFER * JSB A,I * * SET THE SIGN BIT & SET UP BOTH RETURNS * LDB JSBUF+2 LDA B,I IOR MSK5 STA B,I * JSB PRE7 COMPUTE "DEF RTRN" & ERROR RETURN * * SET THE NO DATA TO BE RETURNED FLAG-NOMINAL CASE * CLA STA DATA2 * * EXECUTE THE CALL * JSB JSBUF-1 STA SAVEA STB SAVEB * * AFTER THE REQUEST IS EXECUTED THE POST PROCESSING * S/R WILL BE EXECUTED IN A MANNER ANALOGOUS TO THAT * SHOWN ABOVE FOR PREPROCESSING * * SET UP & CALL S/R THAT CONTROLS POSTPROCESSING * JSB PST1 RETURN THE A AND B REGISTERS FIRST * * NOW WE ARE DONE UNLESS THE TIME WORDS ARE TO * BE RETURNED ( EXEC CALL 11) * LDB D9 LDA ICODE AND MSK1 ADA EXPSA PICK UP POSTPROCESSOR,ERROR CHECK ICODE LDA A,I AND EXECUTE POST PROCESSOR JSB A,I * SKP * IF THE DATA FLAG IS SET THE DATA MUST BE * RETURNED BEFORE THE STATUS REPLY CAN BE SENT BACK * * SET BIT14 FOR REPLY TO THE SATELLITE. * LDA IRBUF GET STREAM WORD IOR MSK8 ADD REPLY BIT STA IRBUF & REPLACE IT LDA DATA2 SZA * * DETERMINE WHICH TYPE OF REPLY IS TO BE RETURNED * JSB SDATA SEND THE DATA BACK JSB SDREQ SEND THE PREV FORMATTED REQUEST * * SO RETURN * JMP GET LOOP BACK TO AWAIT NEXT REQUEST * SPC 2 * REPORT ERRORS TO THE SYSTEM OPERATOR. * ERRPT NOP ENTRY/EXIT: ERROR-REPORT RTN. DST ERCOD SAVE THE ASCII ERROR CODE. CPB "02" = ASCII "02" ? CCB,RSS YES. SET =-1 & SKIP FOR MORE CHECKS JMP ERRP0 NO. CONTINUE ERROR-REPORT PROCESSING. CPA "DS" IF ERROR IS "DS02": PREEMPTION, JSB ERR GO TO ENSURE CLEANUP, VIA . * ERRP0 LDA D10 CALCULATE THE ADDRESS CMA,CLE,INA OF THE OFFENDING ADA ERRPT CALLING SEQUENCE. STA ERRPT SAVE THE ADDRESS FOR ASCII CONVERSION. JSB CNUMO GO TO CONVERT DEF *+3 THE ADDRESS TO DEF ERRPT AN OCTAL VALUE IN ASCII CODE. DEF ERADR SAVE THE CODE FOR ERROR-PRINTOUT. * JSB EXEC GO DEF *+5 TO DEF IRWW PRINT DEF D1 THE DEF ERMSG ERROR DEF D15 MESSAGE. NOP IGNORE ERRORS--IF ANY. * JMP GET GO TO AWAIT THE NEXT REQUEST. * ERMSG ASC 8, /EXECM ERROR: ERCOD ASC 4,???? AT ERADR ASC 3,000000 * HED PREPROCESSING S/R'S * (C) HEWLETT-PACKARD CO. 1976 * SKP SPC 10 PRE7 NOP * * THIS IS THE LAST PREPROCESSING S/R CALLED * BY EACH REQUEST * IT COMPUTES "DEF RTRN" & SETS 'CCE,RSS' INTO ERROR-RTN. LOC'N. * AND 'CLE' INTO NORMAL RETURN LOC'N. * IF THE 'EXEC' CALL IS A NON-DISC READ/WRITE CALL FOR <130 WORDS, * THEN A CONVERSION IS MADE, TO CALL , VICE , IN ORDER * TO ALLOW ANOTHER PROGRAM TO GAIN ACCESS TO THE DISC-RESIDENT AREA. * LDA JSBFA PICK UP THE ADDRESS OF THE ADA PRCNT JSB BUFFER & ADD THE # OF PARMS ADA D2 ALREADY INSERTED THEN ADD 1 FOR LDB JSBFA THE DEF RTRN & 1 FOR 1ST FREE INB WORD. THEN FIND SLOT FOR DEF RTRN STA B,I AND INSERT IT. LDB ERRIN GET EXEC-ERROR INSTRUCTION (CCE,RSS). STB A,I STORE IN ERROR-RETURN LOCATION. INA POINT TO NORMAL-RETURN LOCATION. LDB ERRIN+1 GET NORMAL-RETURN INSTRUCTION (CLE). STB A,I STORE IN NORMAL-RETURN LOCATION. LDA RECHK GET THE CHECK-COUNT. CPA D2 READ/WRITE CALL & BUFFER <130 WORDS? RSS YES, CONTINUE CHECKS. JMP PRE7,I NO--CANNOT USE ! LDB JSBRE GET THE "JSB REIO" INSTRUCTION. ADA PRCNT IF THE PARAMETER COUNT =4 (NON-DISC), & CPA D6 IT'S A READ/WRITE CALL FOR <130 WORDS, STB JSBUF THEN CONVERT TO CALL VIA . JMP PRE7,I RETURN SPC 2 PRE8 NOP ENTRY EXIT: DATA-READ SUBROUTINE. JSB BCHEK CHECK FOR "BREAK", BEFORE USE OF LINE. * LDA FSTLU GET THE LOGICAL UNIT NUMBER. IOR MSK3 INCLUDE MODE FOR DATA-ONLY. STA CONWD SAVE THE CONFIGURED CONTROL WORD. * * PICK UP THE DATA * JSB D65CL CALL DEF *+8 THE DEF IRWR COMMUNICATION LINE DEF CONWD CONTROL ROUTINE DEF DABUF TO DEF IDBFL READ DEF IRBUF+33 THE DEF IRBUF+34 CALLER'S DEF EXTAD DATA. JSB ERRPT * A SYSTEM ERROR HAS BEEN DETECTED! * * JMP PRE8,I * CONWD NOP * SPC 10 HED POST PROCESSING S/R'S * (C) HEWLETT-PACKARD CO. 1976 * PST1 NOP * * NOTE THAT THE RETURN IS BUILT IN THE ORIGINAL * REQUEST BUFFER BEHIND DATA TYPE & SUBSTREAM * USED BY ALL REMOTE FMP & EXEC CALLS * NOTE THAT THERE ARE NO CONTROL BYTES * IN THE RETURNED BUFFER * LDA PARMB PICK UP THE ADDRESS TO RETURN ADA D2 THE VALUES TO STA BLOKA * LDA SAVEA PICK UP SAVED A REG CONTENTS STA BLOKA,I ISZ BLOKA LDA SAVEB PICK UP SAVED B REG CONTENTS STA BLOKA,I ISZ BLOKA * * ADJUST THE RETURNED PARAMETER COUNT * LDA D4 STA RPCNT JMP PST1,I SPC 3 * BREAK-CHECK SUBROUTINE. SPC 1 BCHEK NOP ENTRY/EXIT * JSB #MBRK GO TO THE BREAK-CHECK ROUTINE DEF *+4 DEF STRM SPECIFY THIS MONITOR'S STREAM-TYPE (5). DEF FSTLU SPECIFY THE CURRENT LOGICAL UNIT NO. DEF IRBUF+33 SPECIFY LOCATION OF THE TIME-TAGS. * JSB ERRPT ERROR: REPORT THE PROBLEM. * JMP GET BREAK DETECTED--GO AWAIT NEXT REQUEST. * STB EXTAD NO BREAK. SAVE EQT EXT. ADDR. FOR D65CL. JMP BCHEK,I RETURN TO THE CALLER. * HED EXEC PRE PROCESSING S/R'S * (C) HEWLETT-PACKARD CO. 1976 * SPC 5 OK1 NOP PROCESS AN EXEC WRITE CALL * * FIRST FIX UP LOGICAL UNIT # * JSB OK1A THEN READ PARAMS INTO JSB BUFFER * * NOW THE DATA RECORD MUST BE PICKED UP. * LDA IDBFL GET THE DATA LENGTH. SZA ZERO LENGTH WRITE REQUEST? JSB PRE8 NO. GO TO READ DATA FROM THE LINE. JMP OK1,I RETURN FROM PREPROCESSOR SPC 5 OK1A NOP JSB SIZE * * NOW DO STANDARD STUFF I.E. SET UP TO EMPTY PARMB * ISZ BLOKA INCREMENT TO PARMB +07 LDA BLOKA,I MOVE ICODE TO PARMS ALF,ALF AND MSK2 STA APRMS,I LDA APRMS MOVE DEF ICODE TO JSBUF+2 STA AJSBF,I ISZ AJSBF INCREMENT TO JSBUF+3 ISZ PRCNT INCREMENT PARAMETER COUNT TO 1 ISZ BLOKA INCREMENT TO PARMB+8 ISZ APRMS INCREMENT PARAMETER STORAGE ADDRESS * LDB BLOKA,I GET CONTROL WORD STB APRMS,I PUT IN PARAMETER STORAGE LDB APRMS STB AJSBF,I PUT IT IN THE JSB BUFFER THEN ISZ AJSBF INCREMENT THE BUFFER POINTER & ISZ PRCNT THE PARAMETER COUNT ISZ APRMS * * SET UP & CALL STAND & CALL IT TO FILL PARMS * LDB DABFA PICK UP THE DATA BUFFER STB AJSBF,I ADDRESS & PUT IT IN THE JSB THEN ISZ AJSBF INCREMENT THE BUFFER POINTER & ISZ PRCNT THE PARAMETER COUNT ISZ BLOKA LDA BLOKA IOR MSK5 FOR THE 1ST "STANDARD" STA PRAM1 PARAMETER THEN GO AND * JSB STAND PICK THEM UP BEFORE ISZ RECHK SHOW PASSAGE OF USE-CHECK (R/W). JMP OK1A,I RETURNING SPC 5 OK3 NOP THE I/O CONTROL S/R FIRST, LDA BLOKA SETS UP FOR THE IOR MSK5 CALL & THE LOADS THE STA PRAM1 STANDARD PARAMETERS * JSB STAND & THEN JMP OK3,I RETURNS SPC 5 OK11 NOP * * TIME IN TMBSS BUFFER AFTER CALL * LDA ICODA STA AJSBF,I ISZ AJSBF ISZ PRCNT LDA TMBSA STA AJSBF,I ISZ AJSBF ISZ PRCNT JMP OK11,I SPC 5 OK31 NOP JSB OK3 * * PUT IN THE DEF'S TO THE STATUS WORDS * LDA IST1A STA AJSBF,I ISZ AJSBF ISZ PRCNT LDA IST2A STA AJSBF,I ISZ AJSBF ISZ PRCNT JMP OK31,I HED EXEC POST PROCESSING S/R'S * (C) HEWLETT-PACKARD CO. 1976 * SPC 5 OKP2 NOP THE READ EXEC CALL SUB-POST-PROC * * SET THE DATA TOO FLAG & RETURN * LDB IDBFL GET THE DATA BUFFER LENGTH. STB DATA2 RETURN-DATA FLAG: #0=SEND DATA,0=NO DATA JMP OKP2,I RETURN. SPC 2 OKP10 NOP * * THIS SUB-POST-PROCESS IS USED BY EXEC CALLS THAT * RETURN ONLY A&B REGS (I.E. IT IS A DUMMY S/R) * JMP OKP10,I SPC 2 OKP11 NOP THE TIME REQ. SUB-POST-PROCESSOR * * SET UP A LOOP TO PICK UP THE FIVE WORDS IN THE * TIME BSS "TMBSS" * LDA MD5 STA CONTR * LDB TMBSA LOOP5 LDA B,I STA BLOKA,I STORE TIME WORD ISZ BLOKA * * INCREMENT THE RETURNED PARAMETER COUNTER * ISZ RPCNT INB ISZ CONTR JMP LOOP5 JMP OKP11,I SPC 2 OKP13 NOP LDA ISTA1 RETURN THE TWO STATUS WORDS LDB PARMB SET B TO RETURN BUFFER+4 ADDRESS ADB D4 * STA B,I RETURN 1ST STATUS WORD LDA ISTA2 GET THE NEXT ONE INB STA B,I LDA RPCNT FINALLY ADJUST RETURNED PARAM ADA D2 COUNT & RESTORE STA RPCNT IT & THEN JMP OKP13,I RETURN * SKP STUFF NOP * * NOTE THAT THE E REG NEED BE SET UP AT THE START ONLY * THEREAFTER (SINCE THE CHARACTERS ARE PICKED UP IN * PAIRS) THE START OF EACH WORD IS IN THE * RELATIVE LOCATION-& THUS E IS OK FOREVERMORE * INCREMENT NUMBER OF ASSEMBLED PARAMETERS * CHECK THE CHAR COUNT FOR "EVENESS" * LDB D10 SET UP THE ERROR REGISTER LDA PRMLP SLA JMP ERR+1 ISZ PRCNT * * THE LOOP COUNTER IS ALREADY TO GO-PRMLP * LDA APRMS PICK UP THE ADDRESS OF THE STA AJSBF,I PARAMETER TO BE BUILT & PUT * IT IN THE JSB BUFFER * INCREMENT "DEF PARAM" POINTER (JSB BUFFER) * ISZ AJSBF * * NOW THE INITIAL CHARACTER MUST BE LOCATED * LDA BLOKA PICK UP 1ST CHAR LOCATION SSA RIGHT JUSTIFIED? CCE,RSS NO-SET E REG TO 1 CLE YES-SET E REG TO 0 * * NOW CLEAR BYTE POINTER * AND MSK1 CLEAR SIGN & STORE STA BLOKA POINTER TO NEXT PARAMETER * * PICK UP 1ST CHARACTER * AGAN4 LDA BLOKA,I PICK UP 1ST CHAR OF PAIR SEZ,RSS AND LEFT JUSTIFY IT ALF,ALF IF REQUIRED AND MSK6 STA PRM4 * * PICK UP 2ND CHAR * SEZ,RSS HAVE WE CROSSED A WORD BOUNDARY? * * NOTE 2ND CHAR IS OPPOSITE JUSTIFICATION OF 1ST 1 * ISZ BLOKA YES-INCREMENT SOURCE ADDRESS * LDA BLOKA,I PICK UP CHAR & RIGHT JUSTIFY IT SEZ,RSS IF REQUIRED BEFORE THE MERGING ALF,ALF OF THE TWO CHARS. AND MSK0 * * NOW MERGE THE TWO CHARS & STORE THEM * IOR PRM4 STA APRMS,I ISZ APRMS * * NOW A "DEF PRAM" & AT LEAST ONE PARAM WORD * HAVE BEEN ASSEMBLED-DETERMINE IF THERE ARE * MORE CHARACTERS IN THIS STRING * SEZ HAVE WE CROSSED A WORD BOUNDARY ? ISZ BLOKA YET-IF SO INCREMENT STORAGE ISZ PRMLP INCREMENT THE ISZ PRMLP CHARACTER COUNT-ARE THERE MORE? JMP AGAN4 YES-SET UP TO GET TWO MORE * * WE ARE DONE WITH THIS CHAR SET UP ADDRESS OF * NEXT CONTROL CHAR TO BE EXTRACTED BY GETCB * LDA BLOKA PICK UP CONTROL CHAR ADDRESS-NOW SEZ IS IT IN THE HIGH ORDER BYTE? IF IOR MSK5 LEFT JUSTIFIED BIT 15=1 & SET IT STA PRAM1 UP FOR THE GETCB CALL TO FOLLOW JMP STUFF,I AND EXIT SPC 1 SDREQ NOP SEND THE REPLY WITH STATUS AS A REQUEST. LDB IRBFL GET FRIENDLY PARMB LENGTH(35 WORDS). LDA IRBUF GET THE FIRST WORD OF THE PARMB. ALF POSITION FRIENDLY BIT(#11) TO THE SIGN. SSA,RSS IS REPLY GOING TO A FRIENDLY SATELLITE? LDB RPCNT NO. GET MINIMUM REPLY LENGTH. STB RPLEN CONFIGURE REPLY LENGTH SPECIFICATION. * * THIS S/R ASSUMES THAT PREVIOUS POST PROCESSING * S/R HAVE SET UP THE REQUEST BUFFER TO BE SENT * IN REPLY TO THE ORIGINAL REQUEST * THE REQUEST IS CONTAINED IN THE TERMQ BUFFER AREA * LDA FSTLU GET THE LOGICAL UNIT NUMBER. STA CONWD SAVE AS CONFIGURED CONTROL WORD. * JSB D65SV SEND REQUEST REPLY TO TERMINAL DEF *+7 DEF IRWW DEF CONWD DEF IRBUF DEF RPLEN DEF DUMMY DEF DUMMY JSB ERRPT * JMP SDREQ,I RETURN SPC 10 SIZE NOP ENTRY EXIT: BUFFER SIZE ANALYZER. LDB ICODE GET THE REQUEST CODE. LDA IRBUF+5 GET THE NUMBER OF DATA WORDS. SZA ZERO WORDS SPECIFIED? JMP NEG? NO--CHECK FOR NEGATIVE. CPB D1 ZERO-LENGTH READ REQUEST? JMP SETLN YES--GO TO SET DATA LENGTH. CPB D2 ZERO-LENGTH WRITE REQUEST? JMP SETLN YES--GO TO SET DATA LENGTH. JMP ERR1 NO. ERROR! NEG? SSA NEGATIVE SPECIFICATION? JMP ERR1 YES--ERROR! * * IT'S POSITIVE BUT IS IT GREATER THAN 512 WORDS * LONG?-ERROR IF IT IS * SETLN STA IDBFL SAVE DATA BUFFER LENGTH STA B SAVE LENGTH FOR CHECK. CMA,INA ADA DABFL SSA JMP ERR1 ADB DM130 IF THE DATA BUFFER LENGTH SSB IS <130 WORDS, THEN INDICATE ISZ RECHK THE PASSAGE OF AN USE-CHECK. JMP SIZE,I SPC 1 * IF A DATA FLAG ERROR HAS BEEN DETECTED * SEND A STOP REPLY AND THEN SEND AN ERROR REPLY * * TRANSMIT STOP REPLY * NOW SEND THE STANDARD ERROR REPLY * ERR1 LDB D11 SET UP ERROR REGISTER JMP ERR+1 * * ERROR PROCESSING OF CONFIGURED 'EXEC-CALL' ERRORS. * EXERR DST IRBUF+4 SAVE ASCII ERROR CODE FOR THE USER. CPA "IO" IF THE ERROR WAS AN "IOXX", RSS SKIP TO FURTHER ISOLATE THE TYPE. JMP CKSC GO TO PROCESS NON-"IOXX" ERRORS. CPB "05" IF THE ERROR CODE CLA,RSS WAS "IO05" (ILLEGAL TRK/SECTOR), CPB "08" OR "IO08" (DISC WRITE >1 TRK), CLA,RSS PREPARE FOR ERROR CODE #11; LDB D12 ELSE, USE CODE #12 FOR DEFAULT. SZA,RSS WAS IT "IO05" OR "IO08" ? LDB D11 YES. SET ERROR CODE =11. JMP ERR+1 GO TO RETURN THE ERROR INFORMATION. * CKSC LDB D12 LOAD THE DEFAULT ERROR CODE. CPA "SC" IF THIS WAS A SCHEDULING ERROR, LDB D8 SET THE ERROR CODE =8. JMP ERR+1 GO TO RETURN THE ERROR INFORMATION. * SKP SDATA NOP JSB BCHEK CHECK FOR "BREAK", BEFORE LINE USE. * * SET UP THE TRANSMIT DATA ONLY CALL MODE * AND INSERT IT IN THE CALL * LDA FSTLU GET THE LOGICAL UNIT NUMBER. IOR MSK3 INCLUDE THE BITS FOR MODE =DATA ONLY. STA CONWD SAVE THE CONFIGURED CONTROL WORD. * * EXECUTE THE CALL * JSB D65CL DEF *+8 DEF IRWW DEF CONWD DEF DABUF DEF IDBFL SET UP IN SIZE S-R DEF IRBUF+33 PASS TIME-TAGS TO DRIVER DEF IRBUF+34 DEF EXTAD JSB ERRPT * JMP SDATA,I