ASMB,Q,C HED : MINI-APLDL MASTER ROUTINE (C) HEWLETT PACKARD CO. *1980* NAM RPRTL,19,90 91750-16224 REV 2013 800709 RTE-L 'RP' MASTER SUP SPC 2 * *************************************************************** * * (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 THE HEWLETT-PACKARD COMPANY. * * *************************************************************** * * NAME: RPRTL * SOURCE: 91750-18224 * RELOC: 91750-16224 * PGMR: L. WEIMAN [6/6/80] * EXT OPEN,CLOSE,READF,EXEC,REIO,NAMR EXT PRTN,DSERR,.MVW,CNUMD EXT #RQB,#MAST,#NODE * * THIS PROGRAM IS USED TO DOWN-LOAD AN ABSOLUTE PROGRAM FILE * (CREATED BY RTE-L LOADER) INTO AN OPERATING RTE-L SYSTEM, * WHICH ALREADY HAS HAD DS/1000 INITIALIZED. IT REQUIRES THE * RTE-L PROGRAM DOWN-LOAD MONITOR APLDX ('LITTLE APLDR FOR RTE-L') * TO BE INITIALIZED. * * TO RUN PROGRAM: * * :RU,RPRTL,[],, * * WHERE FOR FILE, INCLUDING NAME, * OPTIONAL SECURITY CODE & CARTRIDGE * REFERENCE NUMBER. (FILE MUST BE * LOCATED IN SAME NODE AS THIS PROGRAM). * * = NODE NUMBER TO TRANSFER PROGRAM TO * * [ERROR PRINTOUT LU]= LU TO USE TO PRINT ERRORS. * IF ZERO OR NEGATIVE, ERRORS NOT PRINTED. * * 'DS' ERRORS ARE RETRIED 15 TIMES. IF THE ERROR PERSISTS, IT * IS REPORTED ON THE ERROR LU, IF ONE WAS GIVEN. * * IF ANY ERROR OCCURS, AND THE ERROR LU PARAMETER HAS BEEN * SUPPLIED, THE APPROPRIATE ERROR MESSAGE IS PRINTED (SEE MINI-APLDR * LISTING FOR DETAILS). THE ERROR CODES DEFINED THERE ARE RETURNED * TO THE 'FATHER' PROGRAM, IF THERE IS ONE. * * ADDITIONAL ERROR CODES, DEFINED ON MASTER SIDE: * * P1 = 0 NO ERROR * * P1 = -1 IMPROPER 'RUN' STRING, PARAMETERS NOT SUPPLIED. * * P1 = -2 FILE 'OPEN' ERROR. P2 CONTAINS FMP 'OPEN' ERROR CODE * * P1 = -3 FILE SPECIFIED NOT REAL RTE-L PROGRAM LOAD FILE * * P1 = -4 DS ERROR OCCURRED, RESULTS IN P2-P5. P2 & P3 CONTAIN * ASCII ERROR (E.G., 'DS01'), P4 CONTAINS REPORTING NODE * NUMBER, P5 CONTAINS ERROR QUALIFIER. * P1 = -5 FMP 'READ' ERROR OCCURRED, ERROR RETURNED IN P2 * * FOR DOCUMENTATION ON REQUEST & REPLY FORMATS, SEE APLDX LISTING SKP * ****************************************************************** * * * G L O B A L B L O C K REV 2013 791213 * * * * GLOBAL OFFSETS INTO DS/1000 MESSAGE BUFFERS, USED BY: * * * * REMAT, RFMST, DEXEC, DMESS, FLOAD, POPEN, #MAST * * GET, #SLAV, RQCNV, RPCNV, GRPM, DINIT, PTOPM * * EXECM, EXECW, OPERM, RFAM1, RFAM2, DLIST, DLIS3 * * DSTIO, LUMAP, #CMGT, INCNV, OTCNV, RMTIO * * RSM, DLGON, #DISM, #DSSM, #MSSM, #SCSM, #UPSM * ****************************************************************** * ***!!!!! THE ORDER OF THE FIRST 8 WORDS (#STR THRU #LVL) IS * ***!!!!! FIXED BY THE REQUIREMENT THAT THE STREAM, ADDRESSES * ***!!!!! ERROR CODES & LEVEL # ALWAYS BE IN THE SAME PLACE, * ***!!!!! REGARDLESS OF MESSAGE FORMAT. THIS ALSO MAKES * ***!!!!! STORE-AND-FORWARD CODE MUCH SIMPLER. * #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 >>> * ****************************************************************** * SKP * APBLK-START * ****************************************************************** * * * A P L D X G L O B A L B L O C K REV 2013 800611* * * * GLOBAL OFFSETS FOR APLDX MESSAGE BUFFERS, USED BY * * * * RPRTL APLDX * ****************************************************************** * * * DEFINE APLDX REQUEST BUFFER * #FCOD EQU #MHD FUNCTION CODE #ERCD EQU #FCOD ERROR-RETURN CODE #P1 EQU #ERCD+1 #P2 EQU #ERCD+2 #P3 EQU #ERCD+3 #P4 EQU #ERCD+4 #P5 EQU #ERCD+5 #P6 EQU #ERCD+6 #P7 EQU #ERCD+7 #P8 EQU #ERCD+8 #P9 EQU #ERCD+9 #P10 EQU #ERCD+10 #P11 EQU #ERCD+11 #P12 EQU #ERCD+12 #ADR EQU #P1 * ***************************************************** * * * APBLK-END * SKP SPC 2 RPRTL EQU * CLA SET INDICATOR THAT WE HAVEN'T STA ABRAD ESTABLISHED AN ID SEGMENT YET CCA AND ASSUME THERE WILL BE AN ERROR STA AB1 * JSB EXEC GET STRING DEF *+5 DEF D14 DEF D1 BUFA DEF BUFFR DEF DM80 80-CHARACTER STRING * SZA WAS THERE ANY STRING? JMP NOSTR NO STB LEN SAVE STRING LENGTH CLA,INA INITIALIZE STRING POINTER STA NPNTR JSB XNAMR CALL NAMR JSB XNAMR THREE JSB XNAMR TIMES * LDA PARSB GET ERROR LU STA ERRLU SAVE * JSB XNAMR GO GET NODE NUMBER LDA PARSB+3 WAS THIS AND B7 PARAMETER SZA,RSS DEFAULTED? JMP NONOD YES, NO NODE WAS GIVEN. LDA PARSB SAVE NODE NUMBER STA NODE * JSB XNAMR * DLD PARSB MOVE FILE NAME DST FNAME LDA PARSB+2 STA FNAME+2 DLD PARSB+4 DST SCODE * * ATTEMPT TO OPEN THE FILE WE WERE GIVEN * JSB OPEN DEF *+7 DEF DCB DEF IERR DEF PARSB FILE NAME DEF D5 NON-EXCLUSIVE 'OPEN' & FORCE TYPE TYPE 1 DEF PARSB+4 SECURITY CODE DEF PARSB+5 CARTRIDGE REFERENCE NUMBER * SSA ERROR? JMP FOERR FILE OPEN ERROR * * READ ID SEGMENT * JSB XREAD READ FILE RECORD * * CHECK CHECKSUM WORD * LDA DM30 STA CNTR LDA BUFFR LDB BUFA INB ADA B,I ADD IN NEXT WORD ISZ CNTR JMP *-3 STAY IN LOOP TILL ALL SUMMED * CPA BUFFR+31 IS THIS REALLY AN RTE-L ID SEGMENT? RSS YES, IT IS JMP NOTID NO, IT'S NOT. PRINT ERROR * * OVERLAY PROGRAM NAME WITH FILE NAME * AND MOVE PROGRAM NAME TO MESSAGE BUFFER * DLD PARSB MOVE CHARACTERS 1 DST BUFFR+12 THROUGH 4 DST .PG LDA PARSB+2 PICK UP CHARACTER 5 AND =B77400 MASK UPPER BYTE STA B SAVE LDA BUFFR+14 MERGE AND =B377 WITH LOW IOR B BYTE OF ID SEGMENT STA BUFFR+14 AND =B77400 IOR RCART INCLUCE ">" STA .PG+2 * * MOVE DATA TO ID SEGMENT AREA LDA BUFA LDB IDSGA JSB .MVW MOVE TO ID SEGMENT AREA DEF IDSIZ NOP * * * SEND ID SEGMENT TO SLAVE, FOR BOUNDS & OTHER CHECKING * LDA =D31 IDENTIFY US AS 'RTE-L' FATHER TO SLAVE ALF,ALF (ID CODE PASSED IN HIGH BYTE) LDB IDSIZ SET DATA LENGTH=ID SEGMENT SIZE JSB SNDMS SEND MESSAGE DEF IDSEG ABS #P1+1 REQUEST LENGTH * LDA #RQB+#ADR SAVE THE ID SEGMENT'S ADDRESS STA ABRAD * * ** SEND PROGRAM AREA * LDA ID+21 COMPUTE SIZE OF PROGRAM AREA STA ADDR (& INITIALIZE MEMORY ADDRESS) LDB ID+22 STB HADDR (& INITIALIZE HIGH MEMORY ADDRESS) JSB CNBLK SZA,RSS ANY PROGRAM DATA TO SEND? JMP BP NO, GO ON * PRLUP EQU * LOOP TO READ PROGRAM DATA JSB XREAD LDA D1 FUNCTION CODE FOR PROGRAM DATA = 1 JSB SNDMS DEF BUFFR ABS #P1+2 REQUEST LENGTH * LDA ADDR ADVANCE ADA D128 MEMORY STA ADDR ADDR PNTR ISZ CNTR END OF LOOP? JMP PRLUP NO, CONTINUE XFR * * *** SEND BASE PAGE AREA * BP EQU * LDA ID+25 COMPUTE NUMBER OF AND B1777 BLOCKS IN STA B BASE PAGE AREA STA HADDR (& INITIALIZE HIGH MEMORY ADDRESS) LDA ID+24 AND B1777 STA ADDR INITIALIZE TRANSFER ADDRESS JSB CNBLK SZA,RSS ANY BASE PAGE TO SEND? JMP FIN NO, SKIP THIS PART * PBLUP EQU * STORE BASE PAGE AREA LOOP JSB XREAD * LDA D2 FUNCTION CODE = 2 JSB SNDMS SEND MESSAGE DEF BUFFR ABS #P1+1 * * LDA ADDR ADVANCE ADA D128 MEMORY STA ADDR POINTER ISZ CNTR JMP PBLUP CONTINUE IN LOOP UNTIL ALL BP XFRD * * WE'RE FINISHED. TELL SLAVE TO FINISH UP. * FIN EQU * LDA @FNAM MOVE FILE NAME, SECURITY CODE, LDB @RQB1 CRN, ETC., TO REQUEST JSB .MVW BUFFER DEF D5 NOP * LDA #NODE STA #RQB+#P6 PASS MASTER NODE # * LDA IDSEG+23 GET # OF SHORT ALF,ALF ID RAR,RAR SEGMENTS AND =B77 CMA,INA AND PASS TO SLAVE AS STA #RQB+#P7 A NEGATIVE COUNTER * LDA IDSEG+20 PASS LOW MAIN STA #RQB+#P8 TO SLAVE * LDA IDSEG+21 PASS HIGH MAIN+1 STA #RQB+#P9 TO SLAVE * LDA IDSEG+23 PASS LOW BASE PAGE ADDRESS AND B1777 TO SLAVE STA #RQB+#P10 * LDA IDSEG+24 PASS HIGH BASE PAGE+1 AND =B1777 TO SLAVE STA #RQB+#P11 * LDA ABRAD PASS ID SEGMENT ADDRESS STA #RQB+#P12 TO SLAVE * LDA D3 TERMINATE FUNCTION CODE=3 CLB JSB SNDMS DEF ZERO ABS #P12+1 REQUEST LENGTH * * PROGRAM DOWN-LOAD IS COMPLETE. * JSB XREIO DEF OKMES DOWN-LOAD OK DEF OKMSL * CLA RETURN NO-ERROR CODE STA AB1 (CLEAR FLAG WHICH WAS SET AT BEGINNING SAYING ERROR) * EXIT0 EQU * CMA,INA STA BUFFR TO FATHER PROGRAM * EXIT1 EQU * * IF AN ERROR HAS OCCURRED, AND WE'VE ESTABLISHED AN * ID SEGMENT, WE'LL HAVE TO CLEAR IT OUT. ISZ AB1 ERROR? JMP EXIT2 NO, DON'T CLEAR ID LDA ABRAD HAVE WE SET UP AN SZA,RSS ID SEGMENT YET? JMP EXIT2 NO, NOTHING TO CLEAR * * CLEAR ID SEGMENT WE SET UP. SEND 'ABORT' MESSAGE TO SLAVE. * STA #RQB+#ADR TELL IT WHICH ID TO CLEAR * CLA CLEAR ID SEGMENT STA IDSEG+12 STA IDSEG+13 STA IDSEG+14 * LDA D4 ABORT: FUNCTION CODE=4 LDB IDSIZ DATA LENGTH = ID SEGMENT SIZE JSB SNDMS SEND MESSAGE DEF IDSEG ABS #P1+1 REQUEST LENGTH * EXIT2 EQU * JSB CLOSE CLOSE THE FILE DEF *+3 DEF DCB DEF IERR * JSB PRTN PASS RESULTS TO 'FATHER', IF THERE IS ONE DEF *+2 DEF BUFFR * JSB EXEC DEF *+2 DEF D6 SKP * * SUBROUTINE TO READ FILE RECORDS FOR US XREAD NOP JSB READF DEF *+6 DEF DCB DEF IERR DEF BUFFR DEF D128 DEF LEN SSA,RSS ERROR? JMP XREAD,I NO ERROR--RETURN TO POINT OF CALL * * A FILE 'READ' ERROR HAS OCCURRED. * STA BUFFR+1 RETURN TO CALLER CMA,INA MAKE IT POSITIVE STA IERR JSB CNUMD DEF *+3 DEF IERR DEF .ER1. * JSB XREIO DEF FRERR DEF FRERL LDA D5 RETURN ERROR CODE -5 JMP EXIT0 NOTE: COMPLEMENTED AT LABEL EXIT0 SPC 2 SPC 2 NOSTR EQU * NO 'RUN' STRING, OR IMPROPER PARAMETERS LDB ERRLU WAS AN ERROR LU SUPPLIED? SZB,RSS JMP NOST1 * JSB XREIO DEF NOSTM DEF NOSTL * NOST1 EQU * LDA D1 RETURN ERROR CODE -1 JMP EXIT0 NOTE: COMPLEMENTED AT LOCN EXIT0 NOTID EQU * FILE SPEC'D NOT RTE-L PROGRAM LOAD FILE JSB XREIO DEF NOFIL DEF NOFLL * LDA D3 RETURN ERROR CODE -3 JMP EXIT0 NOTE: COMPLEMENTED AT EXIT0 SPC 2 NONOD EQU * NO REMOTE NODE WAS GIVEN JSB XREIO DEF NOX DEF NOXL * CLA,INA RETURN ERROR CODE -1 JMP EXIT0 NOTE:COMPLEMENTED AT LABEL EXIT0 SPC 2 FOERR EQU * FILE OPEN ERROR LDB IERR STB BUFFR+2 * LDB ERRLU IS THERE AN ERROR LU? SZB,RSS JMP FOER1 NO, JUST RETURN THE ERROR CODE CMA,INA MAKE ERROR CODE POSITIVE STA IERR JSB CNUMD DEF *+3 DEF IERR DEF .ER2. JSB XREIO DEF FOERX DEF FOERL * FOER1 EQU * LDA D2 RETURN ERROR CODE -2 JMP EXIT0 (NOTE: THIS IS COMPLEMENTED AT LOCN EXIT0) SKP * SUBROUTINE TO CODE & SEND A MESSAGE TO REMOTE RTL-L * DOWN-LOAD MONITOR * * CALLING SEQUENCE: * SET ADDR = ADDRESS WHERE YOU WANT THE BLOCK TO GO * SET HADDR = HIGH ADDRESS OF THE AREA YOU WANT LOADED * SET = FUNCTION CODE YOU WANT * = DATA LENGTH (NOT NECESSARY ON FN CODES 1 & 2) * * JSB SNDMS * DEF * DEC * RETURN HERE IF NO ERRORS SPC 2 SNDMS NOP STA FCODE SAVE FUNCTION CODE STB LEN SAVE DATA BUFFER LNTH LDA SNDMS,I GET BUFFER ADDRESS STA .BUFR SAVE IT ISZ SNDMS BUMP PNTR TO LNTH * LDA SNDMS,I GET REQUEST LENGTH STA RQLEN SAVE REQUEST LENGTH ISZ SNDMS BUMP PNTR TO RETURN * LDA MNTRY INITIALIZE RETRY STA RTRYC COUNTER * RETRY EQU * HERE ON RETRIES LDA FCODE PICK UP FUNCTION CODE * STA #RQB+#FCOD SAVE FUNCTION CODE * CPA D1 FUNCTION CODE = 1? JMP C. YES, CALCULATE DATA LENGTH CPA D2 2? RSS JMP SNDM. NO, DON'T CALCULATE LENGTH, USE 0 * C. EQU * * LDA ADDR SET ADDRESS STA #RQB+#ADR * * CALCULATE DATA LENGTH. IF WE HAVE MORE THAN 128 WORDS TO * GO, THEN SUBSTITUTE 128. * LDB D128 LDA ADDR CALCULATE DATA CMA,INA LENGTH ADA HADDR STA LEN SAVE LENGTH CMA,INA IS THIS ADA D128 LENGTH SSA > 128? STB LEN YES, USE 128 SNDM. EQU * * LDA NODE STA #RQB+#DST LDA STREM STA #RQB+#STR * * * JSB #MAST DEF *+7 DEF CONWD DEF RQLEN REQUEST LNTH .BUFR NOP DEF LEN LENGTH OF DATA (IF ANY) DEF ZERO INCOMING DATA BUFFER LENGTH DEF M#MXR MAX REPLY LENGTH JMP DSER 'DS' ERROR * LDA #RQB+#FCOD DID SLAVE PROGRAM SZA,RSS REJECT? JMP SNDMS,I NO, RETURN TO CALLER * * SLAVE PROGRAM DIDN'T LIKE WHAT WE GAVE IT. * STA BUFFR WE WANT TO RETURN RESULTS TO OUR 'FATHER' CPA D4 PROGRAM CONFLICT? RSS JMP .1 NO, CONTINUE * * MOVE NAME OF PROGRAM WHICH NEEDS TO BE REMOVED TO MSG BUFR * LDA @RQB1 LDB @PRGM JSB .MVW DEF D3 NOP LDA @RQB1 AND MOVE PROGRAM TO RETURN BUFFER PARAMETERS LDB BUFA INB JSB .MVW DEF D3 NOP * LDA .PRGM+2 INSERT A BLANK IN AND =B77400 6TH CHARACTER POSITION IOR =B40 STA .PRGM+2 * LDB BLANK PLACE 'MR' IN MESSAGE IF PROGRAM LDA #RQB+#P4 IS MEMORY-RESIDENT SSA 'MR' BIT SET? LDB "MR YES STB .PMR STB BUFFR+4 * LDA #RQB+#FCOD RECOVER FUNCTION CODE AGAIN * .1 EQU * ADA DM1 CONVERT TO ZERO-BASED SUBSCRIPT RAL ADA @ERTB CONVERT ERROR CODE TO ERROR TABLE PNTR DLD A,I LOAD MSG ADDRESS & LNTH DST RJ. * JSB XREIO PRINT ERROR MSG RJ. BSS 2 ERROR MESSAGE ADDRESS & LNTH GO HERE JMP EXIT1 SPC 2 * HERE ON ANY ERRORS FROM #MAST * DSER EQU * DLD #RQB+#EC1 PICK UP ERROR CODE INFO CPA =ADS WAS THIS A 'DS' ERROR? RSS YES, POSSIBLY RETRYABLE JMP DSER. NO, NO RETRIES CPB =A04 DS04 ERROR? JMP DSER. YES, RETRIES WON'T HELP CPB =A07 DS07 ERROR? JMP DSER. YES, RETRIES WON'T HELP ISZ RTRYC BUMP RETRY COUNTER. TRY AGAIN? RSS YES, BUT TELL OPERATOR WE HAD TROUBLE.... JMP DSER. NO, JUST PRINT ERROR MESSAGE & QUIT * DST RTMSG SAVE 4-CHAR ERROR JSB XREIO PRINT THE TROUBLE WE HAD DEF RTMSG DEF RTMSL * JMP RETRY AND RETRY * DSER. EQU * * RETURN ERROR CODE, QUALIFIER AND REPORTING NODE NUMBER * IN PARAMETERS RETURNED TO 'FATHER' DST BUFFR+1 MOVE TO 'FATHER' LDA #RQB+#ENO LDA #RQB+#ECQ AND =B170 RAR,RAR RAR STA BUFFR+4 * * CALL 'DSERR' TO OBTAIN THE PROPER ERROR MESSAGE & PRINT IT * JSB DSERR DEF *+2 DEF BUFFR+5 * JSB XREIO DEF BUFFR+5 DEF D24 * LDA D4 RETURN ERROR CODE -4 JMP EXIT0 SKP * SUBROUTINE TO CALL 'REIO' FOR US, WITHOUT NEEDING TO SUPPLY * ALL THOSE EXTRA DEFS * * CALLING SEQUENCE: * JSB XREIO * DEF * DEF * * XREIO NOP DLD XREIO,I PICK UP BOTH DEFS DST XR.. * LDA ERRLU IS THERE SZA,RSS AN ERROR LU SPECIFIED? JMP X.R NO, JUST EXIT JSB REIO CALL REIO DEF *+5 DEF D2N NO-ABORT 'WRITE' CODE DEF ERRLU XR.. BSS 2 TWO STORED HERE NOP --ERROR RETURN (IGNORED) * X.R EQU * ISZ XREIO BUMP RETURN POINTER PAST ISZ XREIO THE TWO DEFS JMP XREIO,I ..AND RETURN TO CALLER SPC 2 * SUBROUTINE TO CALL 'NAMR' FOR US, WITHOUT NEEDING * ALL THOSE REPETITIVE DEFS * XNAMR NOP JSB NAMR DEF *+5 DEF PARSB PARSE BUFFER DEF BUFFR STRING BUFFER DEF LEN BUFFER LENGTH DEF NPNTR STRING POINTER JMP XNAMR,I SKP * * SUBROUTINE TO COMPUTE # BLOCKS IN AN AREA * * CALLING SEQUENCE: * * LDA (LOW ADDRESS) * LDB (HIGH ADDRESS+1) * JSB CNBLK CALCULATE # OF BLOCKS * = CNTR = NEGATIVE NUMBER OF BLOCKS, OR 0 * (I.E., = ((HIGH ADDR+1)-LOW ADDR+127))/128 * CNBLK NOP CMA,INA ADA B ADA =B177 ALF,ALF RAL AND =B777 CMA,INA STA CNTR JMP CNBLK,I SKP * DATA AREA B7 OCT 7 B1777 OCT 1777 ZERO DEC 0 D1 DEC 1 D2 DEC 2 D2N OCT 100002 NO-ABORT 'WRITE' CODE D3 DEC 3 D4 DEC 4 D5 DEC 5 D6 DEC 6 D14 DEC 14 D24 DEC 24 D34 DEC 34 D128 DEC 128 DM1 DEC -1 DM30 DEC -30 DM80 DEC -80 * @PRGM DEF .PRGM @RQB1 DEF #RQB+#P1 * FCODE NOP STORAGE FOR 'SNDMS' FUNCTION CODE MNTRY DEC -15 NUMBER OF RETRIES ON EACH 'DS' ERROR RTRYC NOP RETRY COUNTER NPNTR NOP STRING POINTER ERRLU NOP CONWD OCT 100000 NO-ABORT STREM DEC 11 STREAM TYPE RQLEN NOP REQUEST LENGTH LEN NOP CNTR NOP ADDR NOP HADDR NOP * IDSIZ EQU D34 ID SEGMENT SIZE @FNAM DEF FNAME SPC 2 * DO NOT RE-ARRANGE ORDER OF NEXT ITEMS! FNAME BSS 3 FILE NAME SCODE NOP FILE SECURITY CODE NOP FILE CARTRIDGE REFERENCE NUMBER * END OF ORDER-SENSITIVE AREA SPC 2 NODE NOP REMOTE NODE NUMBER DCB BSS 144 FILE DATA CONTROL BLOCK IERR NOP BUFFR BSS 128 PARSB BSS 10 PARSE BUFFER * AB1 NOP FLAG INDICATING ABORTING ERROR CAUSED TERMINATION ABRAD NOP STORAGE FOR ID SEGMENT'S ADDRESS IDSGA DEF IDSEG IDSEG BSS 34 ID EQU IDSEG-1 DEFINE ZERO-OFFSET ID-SEG SYMBOL * M#MXR ABS #MXR MAX HEADER LENGTH SPC 2 * ERROR CODE-TO-MESSAGE CONVERSION TABLE * ENTRIES ARE MADE TWO TO AN ERROR CODE. FIRST * ENTRY IS ADDRESS OF MESSAGE. 2ND ENTRY IS DEF TO ITS LENGTH. @ERTB DEF *+1 ERROR CODE TABLE * DEF UFC 1: UNRECOGNIZED FUNCTION CODE DEF UFCL * DEF DPRN 2:DUPLICATE PROGRAM NAMES DEF DPRNL * DEF NOIDS 3:NO BLANK ID SEGMENTS DEF NOIDL * DEF PRCFT 4:PROGRAM CONFLICT DEF PRCFL * DEF CKSM. 5:SYSTEM CHECKSUM MISMATCH DEF CKSML * DEF ILBFA 6:ILLEGAL BG LOAD ATTEMPT DEF ILBFL * * END OF TABLE ************************************* SKP * ASCII MESSAGES NOSTM ASC 13,IMPROPER 'RUN' STRING, OR NONE GIVEN NOSTL ABS *-NOSTR UFC ASC 7,UNREC FN CODE UFCL ABS *-UFC * DPRN ASC 11,DUPLICATE PROGRAM NAME DPRNL ABS *-DPRN * NOIDS ASC 10,NO BLANK ID SEGMENTS NOIDL ABS *-NOIDS * PRCFT ASC 4,REMOVE .PRGM ASC 3, .PMR ASC 1, PRCFL ABS *-PRCFT * CKSM. ASC 17,PRGM NOT RELOCATED W/CORRECT SNAP CKSML ABS *-CKSM. * ILBFA ASC 9,ILLEGAL BG LOAD ATTEMPT * RTMSG ASC 2, STORAGE FOR 4-CHAR DS ERROR MESSAGE ASC 8, ERROR. RETRYING RTMSL ABS *-RTMSG ILBFL ABS *-ILBFA * * "FILE OPEN ERROR-DDDDDD" FOERX ASC 8,FILE OPEN ERROR- .ER2. ASC 3, FOERL ABS *-FOERX * NOX ASC 13,MUST SPECIFY REMOTE NODE! NOXL ABS *-NOX * NOFIL ASC 15,THAT'S NOT AN RTE-L LOAD-FILE! NOFLL ABS *-NOFIL * * "FILE READ ERROR-DDDDDD" FRERR ASC 8,FILE READ ERROR- .ER1. ASC 3, FRERL ABS *-FRERR * * "PROGRAM DOWN-LOAD COMPLETE" OKMES ASC 5,PROGRAM < .PG ASC 3, STORAGE FOR PROGRAM NAME ASC 10, DOWN-LOAD COMPLETE OKMSL ABS *-OKMES * RCART OCT 76 ASCII ">" IN LOW BYTE BLANK ASC 1, TWO ASCII BLANKS "MR ASC 1,MR 'MR' SPC 2 A EQU 0 B EQU 1 UNS END RPRTL