ASMB,R,Q,C HED INCNV 91750-16129 REV 2013 * (C) HEWLETT-PACKARD CO. 1980 NAM INCNV,19,20 91750-16129 REV.2013 791219 SPC 1 ****************************************************************** * * (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 PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * ****************************************************************** SPC 2 ENT INCNV * EXT EXEC,DTACH,#GETR,#GRPM,#CVBF,#INCV,.MVW EXT $CVT1,CNUMD,REIO,#NODE,#OTCV,#ICV0,#LEVL EXT $TIME,#QCLM,#NRVS * SUP * ************************ * NAME: INCNV * * * SOURCE: 91750-18129 * THIS VERSION RUNS IN * * RELOC: 91750-16129 * MESSAGE FORMAT * * PGMR: JIM HARTSELL * LEVEL 1 NODES * * * * * ************************ * * * INCNV IS AN INCOMING-MESSAGE CONVERTER THAT CONVERTS MESSAGES FROM * A LOWER UPGRADE LEVEL "UP" TO THE LEVEL AT WHICH THE LOCAL NODE * OPERATES. THE LOCAL UPGRADE LEVEL IS INDICATED BY #LEVL (IN RES). * THE INCOMING FORMAT LEVEL, IF BIT 12 IN THE STREAM WORD IS SET, IS * IN THE HEADER AT OFFSET +4 (OTHERWISE ZERO). A GIVEN VERSION OF * INCNV CAN ONLY CONVERT UP TO THE "LEVEL" OF THE NODE IN WHICH IT RUNS. * ALL VERSIONS OF INCNV CAN CONVERT UP FROM LEVEL 0. * * FOR EXAMPLE: A NODE WHICH OPERATES AT UPGRADE LEVEL 0 ONLY KNOWS * HOW TO BUILD MESSAGES FOR LEVEL 0 FORMAT. IT DOESN'T KNOW ANYTHING * ABOUT HIGHER LEVEL FORMATS. WHEN THE MESSAGE IS RECEIVED BY A HIGHER * LEVEL NODE, THE INCNV MODULE AT THAT NODE WILL CONVERT UP TO THE * HIGHER LEVEL. * * TO EXTEND INCNV FOR THE NEXT UPGRADE LEVEL, * * 1. SET MAX, ADD, HDR EQUATES FOR NEW LEVEL. * 2. REPLACE GLOBAL EQUATE BLOCK WITH NEW FORMAT DEFINITIONS. * 3. ADD ENTRY TO FMTBL & TOTBL. * 4. ADD FROMX AND TOX TABLE. * 5. ADD ENTRY TO SPECL (ADD "EXT" IF ROUTINE REQUIRED). * * MAX EQU 31 MAX REQ SIZE FOR ALL OLDER LEVELS. ADD EQU 7 ADDITIONAL SIZE FOR NEWEST LEVEL. HDR EQU 7 MAX HEADER SIZE, ALL OLDER LEVELS. SKP * * THE FOLLOWING GLOBAL EQUATE BLOCK MUST DEFINE MESSAGE HEADER FORMAT * FOR LEVEL OF NODE IN WHICH THIS VERSION OF INCNV IS RUNNING. * * * GLBLK-START * ****************************************************************** * * * G L O B A L B L O C K REV XXXX 790531 * * * * GLOBAL OFFSETS INTO DS/1000 MESSAGE BUFFERS, USED BY: * * * * REMAT, RFMST, DEXEC, DMESS, FLOAD, POPEN, #MAST * * GET, #SLAV, RQCNV, RPCNV, GRPM, LSTEN, PTOPM * * EXECM, EXECW, OPERM, RFAM1, RFAM2, DLIST, DLIS3 * * * ****************************************************************** * ***!!!!! THE FIRST 7 WORDS (#STR THRU #ENO) MUST BE FIXED !!!!!*** #STR EQU 0 STREAM WORD. #SEQ EQU #STR+1 SEQUENCE NUMBER. #SRC EQU #SEQ+1 SOURCE NODE #. #DST EQU #SRC+1 DEST. NODE #. #EC1 EQU #DST+1 REPLY ECOD1. #EC2 EQU #EC1+1 REPLY ECOD2. #ENO EQU #EC2+1 NUMBER OF NODE REPORTING ERROR. * #ECQ EQU #ENO+1 ERROR CODE QUALIFIER (BITS 4 TO 7) #LVL EQU #ECQ MESSAGE FORMAT LEVEL (BITS 0 TO 3) #MAS EQU #LVL+1 MA "SEND" SEQ. # #MAR EQU #MAS+1 MA "RECV" SEQ. # #MAC EQU #MAR+1 MA "CANCEL" FLAGS #HCT EQU #MAC+1 HOP COUNT #SID EQU #HCT+1 SESSION ID WORD * #EHD EQU #SID LAST ITEM OF HEADER #MHD EQU #EHD+1 MINIMUM HEADER SIZE #REQ EQU #MHD START OF REQUEST SPECIFIC AREA #REP EQU #MHD START OF REPLY SPECIFIC AREA * #MXR EQU #MHD+24 <<< MAXIMUM DS REQ/REPLY BUFFER SIZE >>> #LSZ EQU 2 <<< SIZE OF LOCAL APPENDAGE AREA >>> * ****************************************************************** * * GLBLK-END SKP * ******************************************* * * * * * C O N V E R S I O N T A B L E S * * * * * ******************************************* SPC 2 * * WHEN CONVERTING FROM AN OLDER FORMAT TO THE NEXT UPPER LEVEL, THE * FORMAT LEVEL NUMBER OF THE OLDER FORMAT IS USED AS THE OFFSET INTO * BOTH THE "FROM TABLE" (FMTBL) AND THE "TO TABLE" (TOTBL). IN OTHER * WORDS, WHEN THE OLDER FORMAT IS LEVEL 0, THEN OFFSET 0 IN BOTH TABLES * SPECIFIES CONVERSION FROM FORMAT LEVEL 0 (FROM0) TO FORMAT LEVEL 1 (TO1). * SPC 3 FMTBL DEF *+1 DEF FROM0 FROM LEVEL 0. DEF FROM1 FROM LEVEL 1. * . * . * . SPC 5 TOTBL DEF *+1 DEF TO1 TO LEVEL 1. DEF TO2 TO LEVEL 2. * . * . * . SPC 3 * * TABLE OF ENTRY POINTS FOR OPTIONAL EXTERNAL REQUEST-SPECIFIC * CONVERSION ROUTINES. USE SUBROUTINE NAMES OF THE FORM #ICV0, #ICV1,... * IF APPLICABLE FOR THAT LEVEL. IF NO REQUEST-SPECIFIC CONVERSION * IS NEEDED, JUST USE THE DUMMY "NULL". * SPECL DEF *+1 DEF #ICV0 LEVEL 0 TO LEVEL 1 SPECIFICS (EXT). * . * . * . SPC 3 * TABLES CONTINUED NEXT PAGE.... SKP * * THE FOLLOWING TABLES WORK IN PAIRS TO SPECIFY MAPPING FROM ONE FORMAT * LEVEL TO ANOTHER, I.E., FROM0-TO1, FROM1-TO2, ETC. THE SAME OFFSET IS * USED INTO BOTH TABLES FOR EACH WORD THAT IS TRANSFERRED. * * THE "FROM" HALF SPECIFIES AN OFFSET FOR EVERY WORD TO BE TRANSFERRED TO * THE NEXT LEVEL. THE FIRST AND SECOND WORDS SPECIFY THE SIZE OF THE * HEADER FOR THE REQUEST AND REPLY, RESPECTIVELY. THE THIRD WORD INDICATES * THE # OF *REQUEST* WORDS TO BE MOVED (NEG) TO THE NEXT UPPER FORMAT LEVEL. * * WARNING: THE SIZE OF THE FORMAT LEVEL 0 REQUEST HEADER AT "FROM0" IS * TEMPORARILY MODIFIED BY INCNV FOR PTOP AND DLIST (7 WORD HEADER) * REQUESTS. * * THE "TO" HALF SPECIFIES THE TARGET OFFSET INTO THE NEWER FORMAT WHERE * THE CORRESPONDING WORD FROM THE OLDER FORMAT IS TO BE STORED. THE FIRST * AND SECOND WORDS SPECIFY THE SIZE OF THE HEADER FOR THE REQUEST AND * REPLY, RESPECTIVELY. THE THIRD WORD INDICATES THE # OF *REPLY* WORDS * TO BE MOVED (NEG) TO THE NEXT UPPER FORMAT LEVEL. * SPC 3 FROM0 DEC 4 SIZE OF FORMAT 0 REQUEST HEADER. DEC 7 SIZE OF FORMAT 0 REPLY HEADER. DEC -4 NEG. # WORDS TRANSFERRED IF *REQUEST*. B1 DEC 1 WORD 1 = STREAM WORD. DEC 2 WORD 2 = SEQUENCE #. DEC 3 WORD 3 = SOURCE NODE #. B4 DEC 4 WORD 4 = DEST. NODE #. DEC 5 WORD 5 = EC1. DEC 6 WORD 6 = EC2. B7 DEC 7 WORD 7 = ERROR NODE NUMBER. * FROM1 DEC 0 RESERVED FOR LEVEL 2 CONVERTER. * . * . * . SPC 2 TO1 DEC 13 SIZE OF FORMAT 1 REQUEST HEADER. DEC 13 SIZE OF FORMAT 1 REPLY HEADER. DEC -7 NEG. # WORDS TRANSFERRED IF *REPLY*. DEC 1 WORD 1 = STREAM WORD. DEC 2 WORD 2 = SEQUENCE #. DEC 3 WORD 3 = SOURCE NODE #. DEC 4 WORD 4 = DEST. NODE #. DEC 5 WORD 5 = EC1. DEC 6 WORD 6 = EC2. DEC 7 WORD 7 = ERROR NODE NUMBER. * TO2 DEC 0 RESERVED FOR LEVEL 2 CONVERTER. * . * . * . SKP A EQU 0 B EQU 1 * INCNV JSB DTACH DETACH FROM POSSIBLE SESSION. DEF *+1 * LDA FROM0 SAVE SIZE OF FORMAT LEVEL 0 STA SAVEF REQUEST HEADER. * * GET A REQUEST TO BE CONVERTED (SHOULD BE ANY FORMAT LEVEL BELOW * THAT OF NODE IN WHICH INCNV IS RUNNING). * INGET LDA RQBA RESET ADDR OF OUTPUT BUFFER. STA RQADR LDA SAVEF RESTORE SIZE OF FORMAT LEVEL 0 STA FROM0 REQUEST HEADER. * CLA CLEAR ERROR FLAGS. STA TEMP STA EFLAG * JSB #GETR GET A REQUEST (AND DATA). DEF *+6 DEF #INCV CLASS # FOR INCNV. RQBA DEF RQB INTERNAL REQUEST BUFFER. DEF C#MAX MAXIMUM REQUEST LENGTH. DEF #CVBF+1 EXTERNAL DATA BUFFER. DEF #CVBF MAXIMUM DATA LENGTH. ISZ TEMP ERROR RETURN. SET FLAG. * STA RQLEN SAVE ACTUAL REQUEST LENGTH. STB DAINL SAVE ACTUAL DATA LENGTH. * JSB EXEC CLEAR BUFFER IN S.A.M. DEF *+5 DEF CLS21 DEF #INCV DEF #CVBF+1 DEF B0 NOP IGNORE ERROR RETURN. * LDA TEMP ERROR ON ORIGINAL "GET"? SZA JMP INGET YES. * LDA #GRPM INITIALIZE TO SEND TO GRPM. STA CLASS * * GET FORMAT LEVEL # OF RECEIVED REQUEST. * GTFMT LDB RQB+#STR FIRST CHECK BIT 12 OF STREAM WORD. STB STMWD SAVE STREAM WORD. BLF CLA SLB,RSS JMP SAVLV BIT 12 NOT SET = LEVEL 0. LDA RQB+#LVL GET "FORMAT LEVEL" WORD. AND B17 ISOLATE BITS 0-3. SAVLV STA CURLV SAVE AS "CURRENT LEVEL". * CMA IF INCOMING LEVEL ADA #LEVL IS EQUAL TO OR GREATER SSA THAN #LEVL, JMP SFAIL THEN SYSTEM FAILURE (GRPM). * LDA STMWD DETERMINE WHETHER REQUEST OR REPLY. RAL,RAL ISOLATE BIT 14 OF STREAM WORD. AND B1 STA ADJMT 0 = REQUEST, 1 = REPLY. * * CROSS-CHECK LOCAL NRV AGAINST REMOTE NRV: COMPARE LEVEL OF INCOMING * REQUEST/REPLY AGAINST THE LEVEL SPECIFIED IN THE LOCAL NRV FOR THE * SENDING NODE. THEY SHOULD BE THE SAME. IF NOT: FOR REQUEST, SEND * "DS07" REPLY BACK TO GRPM --- FOR REPLY, SEND "DS07" TO QCLM, FLUSH * THE REPLY, AND LET MASTER CALLER TIME OUT ("DS05"). * LDB ADJMT LDA RQB+#SRC IF REQUEST, GET SOURCE NODE. SZB LDA RQB+#DST IF REPLY, GET DESTINATION NODE. STA TARGT * JSB #NRVS GET LEVEL # OF SENDING NODE. DEF *+4 DEF TARGT DEF TEMP DEF LEVEL RETURNED LEVEL NUMBER. JMP NRVER ERROR RETURN. * LDA LEVEL CROSS-CHECK LEVEL NUMBERS. CPA CURLV JMP MHEAD MATCH. OK. * NRVER DLD "DS07 NRV ERROR! STORE "DS07". DST RQB+#EC1 LDA RQB+#ECQ SET QUALIFIER = 2. IOR B40 STA RQB+#ECQ LDA #NODE INDICATE ASCII ERROR CODE. IOR BIT15 STA RQB+#ENO * LDA ADJMT CHECK WHETHER REQ OR REPLY. SZA JMP SQCLM REPLY. "DS07" TO QCLM, "DS05" TO USER. LDA RQB+#STR REQUEST. SET REPLY BIT AND IOR BIT14 SEND TO GRPM. STA RQB+#STR JMP APEND * * IF CONVERTING PTOP OR DLIST REQUEST FROM FORMAT LEVEL 0, MODIFY * THE HEADER SIZE SPECIFICATION AT "FROM0". * MHEAD ADA CURLV COMBINE ADJMT AND CURLV. SZA IF BOTH ARE ZERO, JMP NXLEV LDA STMWD CHECK STREAM WORD OF REQUEST. AND B77 ISOLATE STREAM. CLB SET DEFAULT MOD = NONE. CPA B1 IF DLIST, RSS CPA B4 OR PTOP, LDB B7 SET MOD = 7 WORD HEADER. SZB STB FROM0 STORE NEW SIZE IF REQUIRED. * * BEGIN CONVERSION TO NEXT UPWARD LEVEL. PERFORM REQUEST-SPECIFIC * CONVERSIONS, IF ANY. * NXLEV LDB CURLV GET CURRENT LEVEL NUMBER. ADB SPECL ADD TO TABLE OF REQUEST- LDB B,I SPECIFIC ROUTINE STB TEMP LDA RQADR AND GO DO IT. LDB RQLEN JSB TEMP,I JSB ERROR ERROR RETURN. STB RQLEN SAVE POSSIBLY MODIFIED LENGTH. * LDB CURLV FIND "FROM" INDEX TABLE. ADB FMTBL LDB B,I GET POINTER TO REQ HEADER SIZE. STB FPTR ADB ADJMT IF REPLY, BUMP POINTER. STB FSZPT POINTER TO "FROM" HEADER SIZE. LDA B,I GET SIZE OF THE HEADER (POS.). ADA RQADR ADD TO START OF HEADER. STA BODAD ADDRESS OF BODY OF REQUEST. ISZ FPTR ISZ FPTR POINT TO # WORDS TO MOVE (IF REQUEST). * * CLEAR THE TEMPORARY BUFFER. * LDA TMPBF STA TPTR LDB N#HDR CLA CLRTM STA TPTR,I ISZ TPTR INB,SZB JMP CLRTM * * MOVE CURRENT HEADER TO TEMPORARY BUFFER (OLDER FORMAT). * LDA RQADR LDB TMPBF JSB .MVW DEF FSZPT,I NOP * * SET UP POINTERS AND COUNTERS FOR NEWER FORMAT. * LDB CURLV FIND "TO" INDEX TABLE. ADB TOTBL LDB B,I GET POINTER TO REQ HEADER SIZE. STB TPTR ADB ADJMT IF REPLY, BUMP POINTER. STB TSZPT POINTER TO "TO" HEADER SIZE. LDA B,I GET THE SIZE OF THE HEADER. CMA,INA STA TEMP SAVE FOR CLEARING BUFFER. ADA BODAD STA RQADR ADDR OF NEWER HEADER. * LDA FSZPT,I COMPUTE DIFFERENCE IN SIZE CMA,INA FROM OLDER TO NEWER FORMAT. ADA TSZPT,I ADA RQLEN ADD TO CURRENT SIZE. STA RQLEN ISZ TPTR ISZ TPTR POINT TO # WORDS TO MOVE (IF REPLY). * * CLEAR TARGET AREA FOR NEWER FORMAT OF REQUEST. * LDB RQADR CLA CLEAR STA B,I INB ISZ TEMP JMP CLEAR * * CONVERT FROM OLDER FORMAT TO NEXT UPPER LEVEL. * LDA FPTR,I GET # WORDS TO MOVE FOR REQUEST. LDB ADJMT SZB IF REPLY, LDA TPTR,I GET # WORDS TO MOVE FOR REPLY. STA TEMP ISZ FPTR ISZ TPTR * CONV LDA FPTR,I GET A WORD-INDEX INTO OLDER FORMAT. ADA N1 ADJUST TO ZERO. ADA TMPBF ADDR OF WORD IN OLDER FORMAT REQUEST. LDA A,I CONTENTS OF WORD. LDB TPTR,I GET A WORD-INDEX INTO NEWER FORMAT. ADB N1 ADJUST TO ZERO. ADB RQADR ADDR OF WORD IN NEWER FORMAT REQUEST. STA B,I STORE FROM OLD TO NEW LOCATION. * ISZ FPTR BUMP POINTERS. ISZ TPTR ISZ TEMP INCR. # WORDS TO MOVE. JMP CONV LOOP TILL DONE. * ISZ CURLV BUMP TO NEXT LEVEL UP. * * CHECK IF ANOTHER LEVEL. * LDA CURLV CPA #LEVL REACHED LEVEL # OF THIS NODE? RSS JMP NXLEV NO. KEEP ON CONVERTING. * * CONVERSION FINISHED --- * STORE FORMAT LEVEL NUMBER IN THE MESSAGE (LEVEL IS NOW THE SAME * AS THAT OF NODE IN WHICH INCNV IN RUNNING, THUS INCNV CAN NOW USE * ITS GLOBAL EQUATES TO STORE DIRECTLY INTO THE MESSAGE HEADER). * LDA RQADR,I SET BIT 12 (LEVEL 1 & ABOVE). IOR BIT12 STA RQADR,I * LDB RQADR STORE LEVEL NUMBER. ADB C#LVL LDA B,I AND B7760 IOR CURLV STA B,I * LDA EFLAG IF REQUEST-SPECIFIC ERROR OCCURRED SZA ON THE WAY OF BEING CONVERTED UP, JMP REJCT SEND IT BACK DOWN VIA OTCNV. * LDA DAINL WAS DATA LENGTH TOO LARGE? (NOT CMA,INA CHECKED WHEN RECEIVED BECAUSE GRPM ADA #CVBF WOULD THROW REJECTED LOWER LEVEL SSA,RSS REPLY RIGHT BACK TO INCNV.) JMP APEND NO. * CLA YES. SET ERROR = "DS03". STA DAINL DLD "DS03 DST RQB+#EC1 LDA RQB+#ECQ (QUALIFIER = 1) IOR B20 STA RQB+#ECQ LDA #NODE IOR BIT15 STA RQB+#ENO LDA RQB+#STR CHECK WHETHER REQUEST OR REPLY. RAL SSA JMP APEND REPLY. * RAR IOR BIT14 REQUEST: SET REPLY BIT. STA RQB+#STR * REJCT LDA #OTCV SEND REPLY TO OTCNV TO CONVERT STA CLASS BACK DOWN TO LEVEL OF SOURCE NODE. * * PROCESS THE LOCAL APPENDAGE AREA. * APEND LDA RQLEN CLEAR THE LOCAL APPENDAGE AREA. ADA RQADR STA BODAD LDB C#LSZ CMB,INB CLA CLAP STA BODAD,I ISZ BODAD INB,SZB JMP CLAP * LDB RQLEN ADD NUMBER OF WORDS ADB C#LSZ IN LOCAL APPENDAGE AREA. STB RQLEN * ADB RQADR SET BIT 8 OF LAST WORD ADB N1 OF REQUEST ("LAST LU"). LDA B,I IOR BIT8 STA B,I * * SEND CONVERTED REQUEST BACK TO GRPM OR OTCNV. * JSB EXEC SEND REQUEST BACK TO GRPM. DEF *+8 DEF CLS20 DEF CONWX "Z" BIT & "WRITE" INDICATOR SET. DEF #CVBF+1 ADDRESS OF DATA BUFFER. DEF DAINL DATA LENGTH. RQADR NOP ADDRESS OF NEW REQUEST. DEF RQLEN LENGTH OF NEW REQUEST. DEF CLASS CLASS # OF GRPM OR OTCNV. NOP IGNORE ERROR RETURN. * JMP INGET GO GET NEXT MESSAGE BUFFER. * * ERROR IN REQUEST-SPECIFIC CONVERSION. FORMAT MAY STILL BE AS RECEIVED * FROM GRPM. ERROR REPLY CAN BE ANY LEVEL BELOW THAT OF NODE IN WHICH * INCNV IS RUNNING. SEND TO OTCNV TO CONVERT BACK DOWN. * ERROR NOP CLA,INA FLAG ERROR SO REJECT CAN BE STA EFLAG HANDLED AFTER CONVERSION COMPLETE. JMP ERROR,I * * REPORT ERROR IN NODAL ROUTING VECTOR (NRV). * SFAIL LDA CURLV FORMAT LEVEL # RECEIVED. CCE JSB $CVT1 STA EMSG+7 * LDB RQADR SOURCE NODE NUMBER. ADB C#SRC (RELATIVE POSITION FROM LEVEL TO LDA B,I LEVEL IS NOT SUPPOSED TO CHANGE!) STA TEMP * JSB CNUMD DEF *+3 DEF TEMP DEF EMSG+15 * JSB REIO DISPLAY ON SYS CONSOLE. DEF *+5 DEF ICOD2 DEF B1 DEF EMSG DEF ELEN NOP IGNORE ERROR RETURN. * JMP INGET GO BACK TO GET NEXT REQUEST. * EMSG ASC 18, RECV'D LEVEL XX MSG FROM NODE XXXXX ELEN DEC 18 SKP * * SEND ERROR TO QCLM AND FLUSH THE MESSAGE. * SQCLM LDB RQADR ADB B4 STB TEMP POINT TO WORD 5 OF "QCLM BUFFER". DLD TEMP,I MOVE #EC1 & #EC1 TO "A & B REGISTERS". ISZ TEMP DST TEMP,I ISZ TEMP ISZ TEMP DLD $TIME RECORD TIME OF ERROR. DST TEMP,I * LDA #QCLM GET CLASS NUMBER FOR QCLM. SZA,RSS JMP INGET IF NO QCLM, FORGET MESSAGE. * JSB EXEC MAILBOX WRITE/READ TO QCLM. DEF *+8 DEF CLS20 DEF B0 DEF RQADR,I DEF D12 DEF B1 TYPE 1. DEF B0 DEF #QCLM NOP IGNORE ERROR RETURN. * JMP INGET GO BACK TO GET NEXT MESSAGE. SPC 5 * * DUMMY REQUEST-SPECIFIC CONVERSION SUBROUTINE. * NULL NOP JMP NULL,I SKP * * CONSTANTS AND STORAGE. * B0 OCT 0 B17 OCT 17 B20 OCT 20 B40 OCT 40 B77 OCT 77 D12 DEC 12 N1 DEC -1 ICOD2 OCT 100002 CLS20 OCT 100024 CLS21 OCT 100025 CONWX OCT 10100 BIT8 OCT 400 BIT12 OCT 10000 BIT14 OCT 40000 BIT15 OCT 100000 B7760 OCT 177760 "DS03 ASC 1,DS03 "DS07 ASC 1,DS07 * CLASS NOP CURLV NOP TARGT NOP LEVEL NOP FPTR NOP TPTR NOP BODAD NOP DAINL NOP RQLEN NOP FSZPT NOP TSZPT NOP ADJMT NOP TEMP NOP SAVEF NOP STMWD NOP EFLAG NOP * N#HDR ABS -HDR C#MAX ABS MAX C#LVL ABS #LVL C#SRC ABS #SRC C#LSZ ABS #LSZ * * TEMPORARY BUFFER TO HOLD OLDER FORMAT OF REQUEST. * TMPBF DEF *+1 BSS HDR * * BUFFER FOR CURRENT REQUEST AND HEADER EXPANSION. * BSS ADD ADDITIONAL ROOM FOR REQ EXPANSION. RQB BSS MAX+#LSZ BUFFER FOR INCOMING REQUEST. * BSS 0 SIZE OF MODULE (+ #CVBF). * END INCNV