ASMB,R,L,C HED REMAT 91700-16102 REV A * (C) HEWLETT-PACKARD CO. 1976 NAM REMAT,3,80 91700-16102 REV.A 760812 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 SPC 1 ************************************************ * *REMAT OPERATOR INTERFACE PROGRAM FOR DS-1 * *SOURCE PART # 91700-18102 REV A * *REL PART # 91700-16102 REV A * *WRITTEN BY: LARRY POMATTO * *DATE WRITTEN: 12-27-74 * *MODIFIED BY: JEAN-PIERRE BAUDOUIN * *DATE MODIFIED: OCT.11, 1975 * ************************************************** * * RTE PROGRAM TO PROVIDE OPERATOR ACCESS * TO THE CENTRAL STATION FOR VARIOUS CONTROL FUNCTIONS. * TO THE SATELLITE STATION FOR VARIOUS CONTROL FUNCTIONS. * * SUP ENT REMAT * EXT EXEC EXT OPEN,READF,CLOSE,POSNT EXT CREAT,WRITF EXT RNRQ,PURGE EXT DEXEC,$LIBR,$LIBX EXT $PARS,DMESS,$CVT3 EXT DMESG,REIO,RMPAR EXT #ST04,D65MS,CNUMD,.DFER IFN EXT DBUG XIF * A EQU 0 B EQU 1 * * INITIALIZE TRANSFER STACK. * REMAT JSB RMPAR GET PRAMS DEF *+2 DEF P1 SAVE IN TEMP AREA LDB *-1 GET ADDRESS OF TEMP AREA STB TEMP SAVE ADDR OF SCHEDULE PARAMS. SPC 1 IFN DEBUG OPTION LDA B,I GET PRAM CPA D55 DO THEY WANT DEBUG? RSS YES JMP REMC1 NO JSB DBUG DEF *+1 JSB EXEC DEF *+4 DEF B6 DEF B0 DEF B1 JMP REMAT AND TRY AGAIN XIF SPC 1 REMC1 JSB EXEC SET SWAP ONLY WHAT IS NEEDED DEF *+3 DEF D22 DEF B2 LDA STKHD RESET STACK POINTER. STA P.STK CLA,INA SET FIRST STACK ENTRY STA P.STK,I FOR LOGICAL UNIT 1 (DEFAULT). * LDA TEMP,I CHECK IF P1 = ASCII PARAM. AND HB377 SZA,RSS JMP STR NO. MUST BE INPUT LU. * * FETCH SCHEDULE PARAMETERS (FL,NA,ME,SEVERITY,LIST). * DLD P1+1 FILL BLANKS AFTER THE FILE NAME SZA,RSS IF THE NAME IS SHORTER THAN 3 WORDS LDA DBBLK SZB,RSS LDB DBBLK DST P1+1 REPLACE LDA A.$TR GENERATE "$TR,FLNAME" IN BUFFER. STA INBUF LDA A.TR1 STA INBUF+1 LDA TEMP,I STA INBUF+2 ISZ TEMP LDA TEMP,I STA INBUF+3 ISZ TEMP LDA TEMP,I STA INBUF+4 ISZ TEMP * LDA B5 SET COUNT. STA INCNT * LDA TEMP,I SET UP DUMMY SCHEDULE PARAMS. STA ALTBK+3 SEVERITY CODE. ISZ TEMP LDA TEMP,I STA ALTBK+2 LIST LU. * LDA DFALT POINT TO DUMMY PARAMS. STA TEMP * STR STA TRFLG SET/CLEAR FLAG FOR QUERY SECTION. * * FETCH SCHEDULE PARAMETERS (LU,LOG,LIST,SEVERITY CODE). * LDA TEMP,I GET LU OF INPUT DEVICE. SZA,RSS JMP STAT IF NONE, USE DEFAULT. CPA B1 IGNORE IF = 1. JMP STAT * LDB P.STK PUT SPECIFIED LU INTO ADB B4 TRANSFER STACK. STB P.STK STA P.STK,I * STAT LDA P.STK,I JSB EQTYP CHECK EQ. TYPE OF INPUT LU. STA LUTYP * ISZ TEMP LDA TEMP,I GET LU OF LOG DEVICE. SZA JMP SVLOG * DEFLT LDB LUTYP CLA,INA EITHER LU 1 OR SZB,RSS LDA P.STK,I INPUT LU IF TTY DEVICE. SVLOG STA LOGLU * ISZ TEMP LDA TEMP,I GET LU OF LIST DEVICE, SZA,RSS LDA B6 OR USE DEFAULT = 6. STA LSTLU * ISZ TEMP LDA TEMP,I SAVE SEVERITY CODE. STA SEVER * LDA TRFLG IF SCHEDULED WITH FILE NAME, SZA ALREADY HAVE TR SIMULATED. JMP CHK$ * * DISPLAY PROMPT CHARACTER (IF TTY DEVICE). * CONTROL RETURNS HERE WHEN REQUEST PROCESSING COMPLETES. * QUERY LDA P.STK,I CHECK WHETHER CURRENT INPUT STA TEMP STA LUTYP IS FROM A TTY TYPE DEVICE. AND HB377 NON ZERO IF FILE NAME, ELSE LU. SZA JMP REMRD REMOTE FILE. * JSB LCALS SET FOR LOCAL ONLY LDA TEMP JSB EQTYP LOCAL LU: CHECK TYPE. STA LUTYP SZA JMP LOCRD LOCAL LU NOT TTY DEVICE. * JSB REIO DISPLAY PROMPT ON TTY DEVICE. DEF *+5 DEF IRWW DEF LOGLU DEF PROMP DEF B1 JMP ERPRN * LDA LOGLU SET ECHO BIT. IOR B400 STA TEMP * * INPUT OPERATOR REQUEST FROM CURRENT DEVICE OR FILE. * LOCRD JSB REIO LOCAL SATELLITE LU. DEF *+5 DEF IRWR DEF TEMP DEF INBUF DEF D40 JMP ERPRN * STA TEMP SAVE STATUS WORD. STB INCNT SAVE WORD COUNT. JSB LCALS SET FOR LOCAL JSB EOFCK CHECK FOR END OF FILE. JMP TRANS GOT IT. JMP ECHO GO ECHO IF NECCESSARY. * REMRD JSB READF CENTRAL STATION FILE. DEF *+6 (OPENED WHEN FIRST TRANSFER DEF IDCB WAS PERFORMED) DEF IERR DEF INBUF DEF D40 DEF INCNT ACTUAL WORD COUNT. * JSB ERCHK CHECK FOR ERRORS. * LDA INCNT IF EOF, GENERATE TR REQUEST. INA,SZA JMP BUMP TRANS LDA A.$TR STA INBUF LDA A.$TR+1 STA INBUF+1 LDA B2 STA INCNT JMP ECHO * BUMP LDA P.STK ADA B3 ISZ A,I BUMP RECORD COUNT. * * ECHO THE REQUEST IF NOT INPUT FROM TTY DEVICE. * ECHO LDA LUTYP SZA,RSS JMP CKCNT IT IS A TTY DEVICE. * LDA SEVER INHIBIT ECHO IF CPA B1 SEVERITY CODE = 1. JMP CHK$ * JSB REIO NOT TTY: ECHO. DEF *+5 DEF IRWW DEF LOGLU DEF INBUF DEF INCNT JMP ERPRN * CHK$ LDA INBUF FIRST CHARACTER MUST AND HB377 BE A "$". CPA AS.$ RSS JMP OPER * LDA INBUF BLANK OUT THE "$" SIGN. AND B377 IOR BLANK STA INBUF * CKCNT LDB INCNT IGNORE REQUEST IF NULL. RBL MAKE CHARACTER COUNT. SZB,RSS JMP QUERY * * PARSE THE OPERATOR REQUEST. * LDA BUFAD (A) = BUFAD, (B) = INCNT. JSB $LIBR TURN OFF INTERUPTS NOP JSB $PARS DEF PRAMS PARAMETER BUFFER ADDRESS. JSB $LIBX TURN THEM BACK ON DEF *+1 DEF *+1 * JMP M0000 CHECK IF PROCESSING NEEDED * * SEND CENTRAL RTE COMMANDS. * OTHER LDA INCNT CONVERT LENGTH TO BYTES RAL STA INCNT * * HERE FOR SENDING MESSAGES WILL EITHER SEND TO * CENTRAL OR SATILATE, DEPENDING UPON CONTENTS * OF A REG. 0, CENTRAL, NON ZERO TERMINAL * JSB DMESS SEND COMMAND. DEF *+4 DEF MODE DESINATION CODE DEF INBUF ASCII COMMAND. DEF INCNT COUNT (+POSITIVE BYTES) * SZA,RSS ANY RESPONSE MESSAGE? JMP QUERY NO CPB MD1 IF = -1, JMP DMERR THEN GO TO REPORT A ERROR. STA TEMP SAVE COUNT * JSB REIO DISPLAY REPLY MESSAGE. DEF *+5 DEF IRWW DEF LOGLU DEF INBUF DEF TEMP JMP ERPRN * JMP QUERY * * CHECK THE OPERATOR REQUEST CODE AGAINST THE LEGAL * REQUEST CODES AND JUMP TO THE PROPER PROCESSOR. * * TO ADD NEW REQUEST ONE MERELY: * A. ADDS ASCII OPERATION CODE TO TABLE "LDOPC". * B. ADDS PROCESSOR START ADDRESS TO TABLE "LDJMP". * C. ADDS PROCESSOR CODING TO PROCESS THE REQUEST. * M0000 LDB OP FETCH OPERATION CODE. STB OPP SET STOP FLAG. LDA LDOPC SET OPERATION TABLE POINTER. STA TEMP1 LDA LDJMP SET PROCESSOR JUMP ADDRESS. STA TEMP2 * M0030 CPB TEMP1,I COMPARE WITH TABLE VALUE. JMP TEMP2,I COMPARES. GO DO IT. * ISZ TEMP1 KEEP LOOKING. ISZ TEMP2 JMP M0030 * LDOPC DEF *+1 OPERATION CODE TABLE ADDRESS. * ASC 1,DU ASC 1,EX ASC 1,ST ASC 1,SW ASC 1,TE ASC 1,TR ASC 1,LO ASC 1,PL ASC 1,RP ASC 1,BT ASC 1,SL ASC 1,SO OPP NOP OP CODE FOR CURRENT REQ. * LDJMP DEF *+1,I JMP ADDRESS FOR EACH OP CODE. DEF M0400 DU REQUEST. DEF M0500 EX REQUEST. DEF M0900 ST REQUEST. DEF M0990 SW REQUEST. DEF M1000 TE REQUEST. DEF M1200 TR REQUEST. DEF M1400 LO REQUEST DEF M1500 PL REQUEST DEF OPER RP TCE/5 REQUEST ILLEGAL DEF M1600 BT...BASIC TRAP REQUEST DEF M1700 SL...SLAVE LIST ROUTINE DEF M1800 SO...SLAVE OFF ROUTINE DEF OTHER NOT SPECIAL JUST SEND IT * OPER LDA D10 INPUT ERROR: 010 OPERS STA IERR JSB ERCHK WON'T RETURN. * DMERR DLD INBUF GET THE ASCII ERROR CODES, JMP ERPRN AND GO TO PRINT THE ERROR. * HED REMAT: DU PROCESSOR * (C) HEWLETT-PACKARD CO. 1976 * * DU,FLNAME,LU,SECURITY,LABEL * * DUMP CENTRAL FILE ON SATELLITE LOGICAL INIT. * M0400 LDB CP1 ERROR IF NO FILE NAME. JSB ASCHK LDB CP2 ERROR IF NO LU. JSB INTCK * LDA P2 TEST FOR PT PUNCH. JSB EQTYP CPA B2 RSS JMP M0405 * LDA B1000 GENERATE LEADER. IOR P2 STA TEMP * JSB DEXEC DEF *+4 DEF SDILU DEF B3I DEF TEMP * JMP ERPRN LINE ERROR * * OPEN THE CENTRAL FILE. * M0405 JSB OPEN OPEN THE FILE. DEF *+7 DEF UDCB DEF IERR DEF P1 FILE NAME. DEF B0 OPEN OPTIONS. DEF P3 SECURITY CODE. DEF P4 LABEL. * LDA IERR CHECK FOR ERRORS IF IERR NEG. SSA JSB ERCHK LDA OPNFL SET UDCB OPEN FLAG. ELA,CLE,ERA IOR HIBIT STA OPNFL * * READ A RECORD FROM CENTRAL FILE. * M0410 JSB READF READ. DEF *+6 DEF UDCB DEF IERR DEF INBUF DEF D128 DEF INCNT XMSN LOG. * JSB ERCHK CHECK FOR ERRORS. * LDA INCNT CHECK FOR EOF. INA SZA,RSS JMP M0420 GOT IT. GO PROCESS. * * * OUTPUT THE RECORD ON SATELLITE LOGICAL INIT. * JSB DEXEC DEF *+6 DEF SDILU DEF B2I DEF P2 LU. DEF INBUF DEF INCNT * JMP ERPRN LINE ERROR * JMP M0410 GO GET NEXT RECORD. * * PROCESS END OF FILE CONDITION. * M0420 LDA P2 GET LOGICAL UNIT. JSB EQTYP STA B EQUIPMENT TYPE. * LDA B100 SET DEFAULT TO M.T. DEVICE. CPB B2 XOR B1100 PUNCHED TAPE - TRAILER. CPB D10 IOR B1100 LINE PRINTER - PAGE EJECT. IOR P2 INSERT LOGICAL UNIT. STA TEMP * JSB DEXEC PERFORM I/O CONTROL. DEF *+5 DEF SDILU DEF B3I DEF TEMP FORMATTED CONTROL WORD. DEF MD1 USED ONLY FOR LP. * JMP ERPRN LINE ERROR * JMP M0950 GO CLOSE FILE. HED REMAT: EX PROCESSOR * (C) HEWLETT-PACKARD CO. 1976 * * EX PROCESSOR * * TERMINATE THE OPERATOR INTERFACE PROGRAM. * M0500 JSB REIO DISPLAY TERMINATION MESSAGE DEF *+5 ON LOG DEVICE. DEF B2 DEF LOGLU DEF TRMSG DEF B6 * JSB CLSFL CLOSE OPEN FILES. * JSB EXEC EXIT. DEF *+2 DEF B6 * TRMSG ASC 6, $END REMAT HED REMAT: ST PROCESSOR * (C) HEWLETT-PACKARD CO. 1976 * * ST,LU,FLNAME,SECURITY,LABEL,TYPE,#BLOCKS,RECSIZE * * STORE FROM SATELLITE LU ONTO CENTRAL DISC FILE. * M0900 LDB CP2 ERROR IF NO FILE NAME. JSB ASCHK * LDA B3 DEFAULT FILE TYPE TO 3. LDB P5 SZB,RSS STA P5 * LDA D10 DEFAULT # BLOCKS TO 10. LDB P6 SZB,RSS STA P6 * LDB CP1 ERROR IF NO LU. JSB INTCK * * CREATE THE CENTRAL DISC FILE. * JSB CREAT CREATE FILE. DEF *+8 DEF UDCB DEF IERR DEF P2 FILE NAME. DEF P6 # BLOCKS. DEF P5 FILE TYPE. DEF P3 SECURITY CODE. DEF P4 LABEL. * LDA IERR CHECK FOR ERRORS IF IERR NEG. SSA JSB ERCHK LDA OPNFL SET UDCB OPEN FLAG. ELA,CLE,ERA IOR HIBIT STA OPNFL * * READ INPUT FROM SATELLITE LOGICAL UNIT. * LDA P1 DETERMINE DEVICE TYPE. JSB EQTYP STA LUTYP SAVE DEVICE TYPE. SZA IF TTY, JMP M0910 LDA P1 SET ECHO BIT. IOR B400 STA P1 * M0910 LDA LUTYP IF DEVICE IS A TTY, SZA DISPLAY INPUT PROMPT CHAR. JMP M0920 * JSB DEXEC IT IS. DISPLAY PROMPT, BECAUSE DEF *+6 OF PERCEPTIBLE DELAY BETWEEN DEF SDILU DEF B2I RECORDS. DEF B1 DEF IPRMP ASCII SLASH, SPACE. DEF MD3 * JMP ERPRN LINE ERROR * M0920 JSB DEXEC READ THE INPUT RECORD. DEF *+6 DEF SDILU DEF B1I DEF P1 LOGICAL UNIT. DEF INBUF DEF D128 * JMP ERPRN LINE ERROR * STA TEMP SAVE STATUS WORD. STB INCNT SAVE WORD COUNT. * * CHECK FOR INPUT END OF FILE. * JSB EOFCK JMP M0950 GOT IT. LDA INCNT IGNORE NULL NON-CARD INPUT. SZA,RSS JMP M0910 * * WRITE THE RECORD ON CENTRAL DISC FILE. * JSB WRITF DEF *+5 DEF UDCB DEF IERR DEF INBUF DEF INCNT * LDA IERR CHECK FOR ERRORS. SSA,RSS JMP M0910 NONE. GO READ NEXT RECORD. * JSB PURGE ERROR. PURGE FILE. DEF *+6 DEF UDCB DEF TEMP DEF P2 FILE NAME. DEF P3 SECURITY. DEF P4 LABEL. * LDA OPNFL OUTPUT ERROR MESSAGE. ELA,CLE,ERA STA OPNFL JSB ERCHK * * END OF FILE ON INPUT. * M0950 JSB CLOSE CLOSE THE CENTRAL FILE. DEF *+3 DEF UDCB DEF IERR * LDA OPNFL CLEAR UDCB OPEN FLAG. ELA,CLE,ERA STA OPNFL * JMP QUERY HED REMAT: SW PROCESSOR * (C) HEWLETT-PACKARD CO. 1976 * * SW,N * * CHANGE DESTINATION OF REMAT OPERATOR REQUESTS. * DESTINATION IS SATELLITE (N=LU), OR THE CENTRAL STATION RTE (N=0). * M0990 LDA CP1 SEE IF VALUE SUPPLIED SZA IF NOT SUPPLIED, PRINT CURRENT VALUE JMP M0991 SUPPLIED, SAVE IT JSB CNUMD CONVERT LU TO DEC DEF *+3 DEF MODE DEF P3 SAVE IN TEMP LOCATION LDA P3+2 GET LAST TWO CHAR STA SWMG1 SAVE FOR PRINT OUT JSB REIO GO PRINT OUT MESSAGE DEF *+5 DEF IRWW DEF LOGLU DEF SWBUF DEF B3 6 CHARS JMP ERPRN JMP QUERY AND RETURN TO USER M0991 LDA P1 SZA,RSS IF THIS IS A LOCAL REFERENCE, JMP M0992 GO TO SET IT UP. JSB LCALS PREPARE NEXT CALL FOR LOCAL REFERENCE. LDA P1 GET THE USER-SPECIFIED LU NUMBER. JSB EQTYP GO TO GET THE EQUIPMENT TYPE-CODE. STA B SAVE THE TYPE-CODE, TEMPORARILY. LDA D56 PREPARE FOR POSSIBLE BAD PARAM. ERROR. CPB B65 IF THE USER'S LU IS LINKED TO DVR65, RSS SKIP TO SET NEW DESTINATION; ELSE, JMP OPERS REPORT BAD PARAMETER ERROR! LDA P1 GET THE DESTINATION LU NUMBER. * M0992 STA MODE 0=LOCAL RTE, N=SATELLITE-LINK LU NO. JMP QUERY * MODE NOP SPC 1 SWBUF ASC 2,SW= SWMG1 ASC 1, HED REMAT: TE PROCESSOR * (C) HEWLETT-PACKARD CO. 1976 * * TE,-ASCII MESSAGE- PROCESSOR. * * SEND A MESSAGE TO THE CENTRAL STATION OPERATOR. * M1000 LDB CP1 SZB,RSS JMP OPER ERROR 10 IF NO MESSAGE. * CLB FIND THE COMMA IN INBUF. LDA BUFAD STA TEMP * M1010 LDA TEMP,I GET NEXT WORD. AND HB377 ALF,ALF CPA COM JMP M1020 COMMA IN LEFT BYTE. * LDA TEMP,I AND B377 CPA COM JMP M1030 COMMA IN RIGHT BYTE. * ISZ TEMP BUMP TO NEXT WORD. INB COUNT WORDS SKIPPED. JMP M1010 LOOP. * M1020 LDA TEMP,I LEFT. CLEAR COMMA. AND B377 STA TEMP,I JMP M1040 * M1030 ISZ TEMP RIGHT. BUMP TO NEXT WORD. INB * M1040 CMB,INB ADJUST WORD COUNT. ADB INCNT STB INCNT * LDA MODE GET THE COMMUNICATION LU IOR BIT15 SET THE NO-ABORT BIT STA IMODE SAVE FOR CALL TO DMESG * JSB DMESG SEND THE MESSAGE. DEF *+4 DEF IMODE DEF TEMP,I ADDRESS. DEF INCNT LENGTH. * JMP OPER ERROR RETURN * JMP QUERY SPC 3 IMODE NOP BIT15 OCT 100000