ASMB,R,L,C,N
      HED TEXEC 91703-16102 * (C) HEWLETT PACKARD CO. 1976
      NAM TEXEC,3 91703-16102 REV A 760203
      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 
****************************************
* 
*TEXEC              TERMINAL EXEC FOR BCS TO RUN UNDER DS1/B
* 
*SOURCE PART #      91703-18102 
* 
*REL PART #         91703-16102 
* 
*WRITTEN BY:        LARRY POMATTO 
* 
*DATE WRITTEN:      11-29-74
* 
*MODIFIED BY:       BOB SHATZER     (04-07-75)
*                   DAN GIBBONS     (01-07-76)
*                   J-P BAUDOUIN    (01-21-76)
*                   DAN GIBBONS     (01-27-76)
*                   BOB SHATZER     (02-03-76)
* 
***************************************** 
      SPC 1 
* 
* 
*   THIS VERSION OF TEXEC SUPPORTS THE USE OF $DDT
*   THROUGH THE USE OF THE 'Z' ASSEMBLY OPTION. 
* 
* 
* 
* 
      ENT RLOAD 
      ENT ATTEN 
      ENT CHAIN 
      ENT RNPGM 
      ENT RMESG 
      ENT IDLE
      ENT PTPON,PTPOF,ESCON 
      ENT HALT
      ENT .ENTR,GETLU 
      ENT RMPAR,CLRIO 
* 
      EXT STBSY,RESET 
      EXT .IOC.,REXEC,RCRET 
      EXT .MEM. 
      EXT RPURG 
      EXT RCLOS 
      EXT RNAME 
      EXT #TAM
      EXT $BUSY,$ESC
      EXT ATTN
      EXT PARMB 
      IFZ 
      EXT $DDT
      XIF 
      SUP 
* 
A     EQU 0 
B     EQU 1 
* 
* 
*     NOTE THAT TEXEC MAKES AN INITIALIZATION CALL TO #TAM PRIOR
*     TO MAKING ANY CALLS TO THE COMM LINK.  THIS CALL SETS UP
*     THE PROPER LU FOR D.65 AND INITIALIZES THE CORRECT TIMEOUT
*     VALUE.
      HED OPERATOR PROMPT (BCS) * (C) HEWLETT PACKARD CO. 1976
*********************** 
* QUERY THE OPERATOR. ******************************
*********************** 
* 
      JMP MSTRT     MANUAL START ADDR = 2000B.
IDLE  NOP           ENTRY.
HALT  EQU IDLE
      LDA WHERE      ESTABLISH BAIL-OUT ADDR. 
      JSB ATTN
QUERY JSB WAIT
* 
      JSB INITL     INITILIZE .MEM. TABLE 
* 
      CLA           CLEAR STANDBY FLAG. 
      STA STBYF 
      STA $BUSY     CLEAR COMMUNICATIONS BUSY FLAG. 
      STA $ESC      CLEAR ESCAPE FLAG.
* 
      JSB WAIT      WAIT FOR TTY TO COMPLETE
      JSB .IOC.     DISPLAY ":" PROMPT. 
      OCT 020002
      JMP *-2 
      DEF COLON 
      DEC 1 
* 
      JSB WAIT
* 
      LDA DM40
      STA TEMP      SET UP -40 LOOP COUNTER 
      LDB .BUFR     GET BUFFER ADDRESS
      LDA BLNKW     AND DOUBLE BLANK
      STA B,I       STORE BLANKS INTO BUFFER
      INB 
      ISZ TEMP      BUMP POINTERS AND COUNTERS
      JMP *-3       CONTINUE UNTIL BUFFER IS BLANKED
* 
      JSB .IOC.     INPUT THE COMMAND.
      OCT 010401
      JMP *-2 
.BUFR DEF BUFFR 
      DEC -80 
* 
      JSB .IOC.     WAIT FOR INPUT COMPLETION 
      OCT 40001     STATUS OF INPUT DEVICE
      SSA           DEVICE STILL BUSY?
      JMP *-3       YES...WAIT UNTIL DONE 
* 
      STB WAIT      SAVE CHARACTER COUNT
      CLE,ERB       CONVERT TO WORD COUNT 
      SEZ           IF ODD # OF WORDS 
      INB           INCREMNET WORD COUNT FOR ODD CHAR 
      STB MSLEN     SAVE WORD LENGTH
      LDB WAIT      GET CHARACTER COUNT 
      JSB TMESS     GO PROCESS THE COMMAND. 
      JMP QUERY 
* 
WAIT  NOP 
      JSB .IOC.     I/O STATUS WAIT.
      OCT 40002 
      SSA 
      JMP *-3 
      JMP WAIT,I
* 
COLON ASC 1,:_      PROMPT CHARACTER. 
* 
* OPERATOR ATTENTION KEY WAS PRESSED. 
* 
WHERE DEF ATTEN 
ATTEN LDA DCRLF     OUTPUT CR/LF. 
      LDB B1
      JSB OPDIS 
      JSB WAIT
      JSB ABORT     DO SOME HOUSEKEEPING. 
* 
* OPERATOR ERROR MESSAGES 
* 
M0950 LDA ETAM3     "SYNTAX ERROR". 
      LDB B6
      JSB OPDIS 
* 
      JMP QUERY 
      SPC 1 
ETAM3 DEF MTAM3 
MTAM3 ASC 6,SYNTAX ERROR
DM40  DEC -40 
      HED OPDIS (OPERATOR DISPLAY ROUTINE) * (C) HEWLETT PACKARD CO. 1976 
* 
* DISPLAY OPERATOR MESSAGE ON TERMINAL DISPLAY DEVICE.
* 
* CALLING SEQUENCE: 
* 
*     (A) = ASCII MESSAGE ADDRESS.
*     (B) = + WORD COUNT OR - CHARACTER COUNT.
*     JSB OPDIS 
* 
OPDIS NOP 
* 
      STA OPD1
      STB OPD2
* 
      JSB WAIT
* 
      JSB .IOC. 
      OCT 020002
      JMP *-2 
OPD1  NOP           BUFFER. 
OPD2  NOP           COUNT.
* 
      JMP OPDIS,I 
      SPC 5 
STNBY NOP           DISPLAY "STANDBY" MESSAGE.
      LDA STBYF 
      SZA 
      JMP STN 
      INA 
      STA STBYF 
      LDA STNDF 
      LDB B4
      JSB OPDIS 
STN   LDA $ESC      ALLOW ESCAPE. 
      SZA 
      JSB ABORT 
      LDB DELAY     DELAY LOOP. 
      INA,SZA 
      JMP *-1 
      INB,SZB 
      JMP *-3 
      JMP STNBY,I 
* 
STNDF DEF *+1 
      ASC 4,STANDBY 
      HED OPERATOR INPUT DECIPHER ROUTINE * (C) HEWLETT PACKARD CO. 1976
********************************
* DECIPHER OPERATOR MESSAGES. **********************
********************************
* 
* CALLING 
* SEQUENCE:  JSB TMESS
*            B CONTAINS # CHARACTERS. 
*            DATA IN BUFFR. 
* 
TMESS NOP           ENTRY.
      CLA 
      STA TEMP+2    CLEAR CHARACTER FLAG. 
      SZB,RSS       CHECK IF COUNT ZERO.
      JMP TMESS,I   YES, SO EXIT. 
      STB MLEN      SAVE CHARACTER LENGTH 
      CMB,INB 
      STB TEMP+3    NEGATIVE CHAR. COUNT. 
* 
      LDB MD33      CLEAR PARAMETER AREA. 
      STB TEMP
      LDB PARPT 
      STA B,I 
      INB 
      ISZ TEMP
      JMP *-3 
* 
      LDB BUFAD     INPUT BUFFER
      CLE,ELB       BYTE ADDRESS. 
      STB TEMPP 
      LDA INIT
      STA TEMP+5    INITIAL PARAM POINTER.
      LDA TEMP+5,I
      STA TEMP+4    INITIAL STORE POINTER.
      ADA MD1 
      STA TEMP+6    PARAM CHAR COUNT ADDR.
* 
DEC10 LDB TEMPP     FETCH NEXT BYTE.
      CLE,ERB 
      LDA B,I 
      SEZ,RSS       CHECK IF TO EXAMINE UPPER/LOWER.
      ALF,ALF       UPPER, SO ROTATE. 
      AND M377      ISOLATE CHARACTER.
* 
      CPA COM       CHECK FOR 
      JMP DEC60     COMMA OR
      CPA BLNK      BLANK 
      JMP DEC65     DELIMITER.
      CPA COLN      OR IS IT A ":"
      JMP DEC60 
* 
      LDB TEMP+6,I  ADD -1 TO 
      ADB MD1       CHARACTER 
      STB TEMP+6,I  COUNT.
* 
      LDB TEMP+2    CHECK IF TO BE UPPER/LOWER. 
      SZB           UPPER.
      JMP DEC40     LOWER.
* 
      ALF,ALF       POSITION. 
      STA TEMP+4,I  STORE.
      ISZ TEMP+2    SET FLAG TO LOWER CHARACTER.
      JMP DEC50     GO INCREMENT DATA CHAR. 
* 
DEC40 IOR TEMP+4,I  COMBINE UPPER/LOWER.
      STA TEMP+4,I  STORE.
      CLA 
      STA TEMP+2    RESET FLAG TO UPPER CHAR. 
      ISZ TEMP+4    BUMP STORE LOCATION.
      LDA TEMP+4    DELIMIT "TELLOP". 
      CPA PMEND 
      JMP M0000 
* 
DEC50 ISZ TEMPP     BUMP BUFFER ADDR. 
      ISZ TEMP+3    BUMP CHAR. COUNT. 
      JMP DEC10     GO PROCESS NEXT CHAR. 
DEC55 ISZ PARAM     DONE- BUMP PARAM COUNT. 
      JMP M0000     GO TO EXIT. 
* 
DEC65 LDA PARAM     FIRST PARAM?
      SZA,RSS 
      JMP DEC60     YES, BLANK = DELIMITER. 
      ISZ TEMPP     NO, IGNORE BLANKS.
      ISZ TEMP+3
      JMP DEC10     GO PROCESS NEXT CHARACTER.
      JMP DEC55 
DEC60 CLA 
      STA TEMP+2    RESET UPPER CHAR FLAG.
* 
      ISZ TEMP+5    BUMP PARAM POINTER. 
      ISZ PARAM     BUMP PARAM COUNT. 
      LDA PARAM 
      CPA B10       EIGHT PARAMS? 
      JMP M0000     YES, GO PROCESS.
* 
      LDA TEMP+5,I
      STA TEMP+4
      ADA MD1 
      STA TEMP+6    PARAM CHAR COUNT ADDR.
      JMP DEC50     GO INCREMENT DATA BUFFER. 
      SPC 2 
COLN  OCT 72
      HED MESSAGE PROCESSOR * (C) HEWLETT PACKARD CO. 1976
**********************************
* SEARCH COMMAND MNEMONIC TABLE. *******************
**********************************
* 
M0000 CLA           CLEAR EQUIVALENCE 
      STA EQCNT     COUNTER.
      LDA OPCNT     INITIALIZE # MNEMONICS
      STA TEMP      COUNTER.
* 
      LDA LDOPC     SET UP MNEMONIC 
      STA TEMP+1    TABLE 
      STA T.PTR     POINTER.
* 
RSET  LDA TAB       FORM BYTE ADDR
      RAL           OF INPUT COMMAND
      STA I.PTR     MNEMONIC. 
* 
      LDA OP1       # CHAR IN INPUT.
      SZA,RSS 
      JMP M0950     ERROR IF NULL.
      ADA MD1 
      STA CHCNT     NEG. CHAR COUNT -1. 
* 
GET   LDA I.PTR     GET NEXT INPUT BYTE.
      ISZ I.PTR 
      ISZ CHCNT     ANY MORE CHARACTERS?
      JMP *+2       YES.
      JMP MTCH?     NO. 
      CLE,ERA       E=0 IF LEFT BYTE, ELSE =1.
      LDA A,I 
      SEZ,RSS 
      ALF,ALF       POSITION. 
      AND M377      ISOLATE.
      STA B         SAVE. 
* 
      LDA T.PTR,I   GET TABLE MNEMONIC BYTE.
      SEZ,RSS 
      ALF,ALF       POSITION. 
      AND M377      ISOLATE.
      SEZ 
      ISZ T.PTR 
* 
      CPA B         COMPARE - EQUAL?
      JMP EQ        YES 
* 
LOOP  LDA TEMP+1    ADVANCE TO NEXT ENTRY 
      ADA B5        IN MNEMONIC 
      STA TEMP+1    TABLE.
      STA T.PTR 
      CLA 
      STA EQCNT 
      ISZ TEMP      BUMP MNEMONIC COUNTER.
      JMP RSET      GO COMPARE. 
      JMP M0500     END OF MNEMONICS, ERROR.
* 
EQ    ISZ EQCNT     COUNT THIS MATCH. 
      JMP GET       GO TO NEXT CHAR.
* 
MTCH? LDA TEMP+1    DID WE GET A MATCH
      ADA B3
      LDA A,I 
      CPA EQCNT     ON THIS MNEMONIC? 
      JMP *+2       YES.
      JMP LOOP      NO. 
* 
* MATCH FOUND. GO TO PROCESSOR. 
* 
      LDA TEMP+1    FETCH PROCESSOR ADDR. 
      ADA B4
      LDA A,I 
      JMP A,I       GO TO PROCESSOR.
      HED LOAD XXXXX COMMAND * (C) HEWLETT PACKARD CO. 1976 
* 
* LOAD XXXXX
*     GENERATE AN RLOAD SUBROUTINE CALL TO
*     LOAD INTO THE TERMINAL THE PROGRAM XXXXX WHICH
*     RESIDES ON THE CENTRAL STATION DISC.
* 
M0100 JSB NAMCK 
* 
M0110 JSB RLOAD 
      DEF *+5 
      DEF STATS 
      DEF IERR
      DEF P1
      DEF IADR
* 
      JSB LDERR     CHECK FOR NPRGL ERRORS. 
      SSB,RSS 
      SZB,RSS       WAS PROGL DORMANT?
* 
      JMP QUERY     YES.
      JSB STNBY     NO, STANDBY.
      JMP M0110     TRY AGAIN.
* 
NAMCK NOP 
      LDA CP1       IS THERE A NAME?
      SZA,RSS 
      JMP M0950     NO. 
      LDA TAB+1 
      JSB TRAIL     FILL TRAILING BLANKS. 
      JMP NAMCK,I 
* 
LDERR NOP 
      LDA STATS 
      LDB IERR      ANY PROGL ERRORS? 
      SSB,RSS 
      INA,SZA       ANY LINE ERRORS 
      RSS           YES...PROGL OR LINE ERRORS
      JMP LDERR,I   NO. B=IERR= 0 OR 1. 
      LDA EPRGL 
      CPB MD1 
      LDA EFIND     YES, CAN'T FIND PROGRAM.
      CPB MD6 
      JMP LDERR,I 
      LDB B6
      JSB OPDIS 
      JMP QUERY 
* 
EFIND DEF MTAM7 
MTAM7 ASC 6,CAN'T LOCATE
EPRGL DEF MPRGL 
MPRGL ASC 6,NPRGL ERROR 
      HED RUN COMMAND * (C) HEWLETT PACKARD CO. 1976
* 
* RUN[*,P1,P2,P3,P4,P5] 
* 
* RUNAT NNN [,P1,P2,P3,P4,P5] 
* 
* RUN XXXXX [,P1,P2,P3,P4,P5] 
* 
*     P1...P5 = OPTIONAL PARAMETERS.
*     NNN     = START ADDRESS.
*     XXXXX   = PROGRAM NAME. 
* 
M0200 LDA CP1       IS 1ST PARAM NULL OR "*"? 
      LDB P1
      SZA 
      CPB ASTER 
      JMP MOVIT     YES.
* 
      LDA TAB+1 
      JSB TRAIL 
M0215 JSB RLOAD     MUST BE A PROGRAM NAME. 
      DEF *+5       LOAD THE PROGRAM. 
      DEF STATS 
      DEF IERR
      DEF P1
      DEF IADR
* 
      JSB LDERR     CHECK FOR PROGL ERRORS. 
      SSB,RSS 
      SZB,RSS       WAS PROGL DORMANT?
      JMP MOVIT     YES.
      JSB STNBY     NO. 
      JMP M0215 
* 
*     HERE WE COME FOR "RUNAT" COMMAND
* 
GETAD LDA CP1       IS ADDRESS SUPPLIED?
      SZA,RSS 
      JMP M0950     NO...ERROR
      JSB CVT1      CONVERT ADDRESS 
      DEF P1
      DEF CP1 
      STA IADR      SAVE AS STARTING ADDRESS
* 
MOVIT JSB MOVE
      JMP RUNIT     YES.
* 
* CONVERT OPTIONAL PARAMETERS TO BINARY AND STORE.
* 
MOVE  NOP 
      LDA TAB+2 
      STA DCVTA     ADDR OF DATA BUFFER.
      ADA MD1 
      STA DCVTB     ADDR OF CHAR COUNT. 
* 
      LDA DO.P1 
      STA TEMP+4    DESTINATION ADDR. 
      LDA MD5 
      STA TEMP+5    COUNTER 
* 
TRANS LDA DCVTB,I   CHAR. COUNT.
      SZA,RSS       ZERO? 
      JMP STORE     YES, STORE ZERO.
* 
      JSB CVT1      CONVERT TO BINARY.
DCVTA DEF * 
DCVTB DEF * 
* 
STORE STA TEMP+4,I  STORE VALUE.
      ISZ TEMP+4
      LDA DCVTA 
      ADA B4
      STA DCVTA 
      LDA DCVTB 
      ADA B4
      STA DCVTB 
* 
      ISZ TEMP+5    DONE? 
      JMP TRANS     NO. 
      JMP MOVE,I
* 
RUNIT JSB RNPGM     GO RUN THE PROGRAM. 
      DEF *+7 
      DEF IADR
DO.P1 DEF O.P1
      DEF O.P2
      DEF O.P3
      DEF O.P4
      DEF O.P5
* 
* WON'T COME BACK UNLESS NO START ADDRESS.
* 
START LDA ENSA      "NO START ADDRESS"
      LDB B6
      JSB OPDIS 
      JMP QUERY 
* 
O.P1  OCT 0 
O.P2  OCT 0 
O.P3  OCT 0 
O.P4  OCT 0 
O.P5  OCT 0 
* 
ASTER OCT 025000
ENSA  DEF NSA 
NSA   ASC 6,NO START ADR
      HED ABORT COMMAND * (C) HEWLETT PACKARD CO. 1976
* 
* ABORT 
* 
* ABORT THE PROGRAM CURRENTLY RUNNING AT TERMINAL.
* 
MSTRT JSB #TAM      STARTUP PROCESSOR 
      DEF *+2       MAKE INITIALIZATION CALL TO #TAM
      OCT 0 
      RSS 
ABORT NOP 
M0300 BSS 0 
      CLA 
      STA $BUSY 
      STA $ESC
      JSB .IOC.     CLEAR I/O 
      OCT 0 
* 
      JSB IDLE
      HED TELLOP COMMAND * (C) HEWLETT PACKARD CO. 1976 
* 
* TELLOP <ASCII MESSAGE>
* 
*   DISPLAY A MESSAGE ON THE REMOTE OPERATOR DISPLAY
* 
M0400 LDA MSLEN     ADJUST WORD COUNT.
      ADA MD3 
      SZA,RSS       ZERO? 
      JMP M0950     YES, ERROR. 
      STA MSLEN 
* 
      JSB RMESG     SEND THE MESSAGE. 
      DEF *+4 
      DEF STATS 
      DEF BUFFR+3 
      DEF MSLEN 
* 
      JMP QUERY 
      HED ALL RTE COMMANDS * (C) HEWLETT PACKARD CO. 1976 
* 
M0500 LDA B7        SET UP STREAM TYPE
      STA STYP
      CLA           SET FOR REQUEST 
      STA RRSW
      CLA,INA       SET TO SEND REQ 
      JSB PTPON     SET LINE BUSY 
      DEF *+1 
      CLA,INA       SET FOR REQUEST 
      JSB #TAM
      DEF *+4 
      DEC 6 
      DEF STYP
      DEC -50       25 WORD BUFFER
      INA,SZA       ANY ERRORS? 
      JMP LINER     YES...LINE ERROR
M0501 CLA,INA       SET FOR REQUEST 
      JSB #TAM
      DEF *+4 
      DEC 5 
      DEF STYP      PUT REPLY BACK IN REQUEST BUFFER
      DEC -50       MAX OF 25 WORDS 
      INA,SZA       LINE ERROR
      JMP LINER     YES 
      LDA STYP      GET FIRST WORD
      JSB RPYCK     SEE IF REPLY
      JMP M0501     NOT REPLY...IGNORE
      JSB PTPOF     TURN OF LINE BUSY FLAG
      DEF *+1 
      LDA BUFAD     GET OUTPUT BUFFER ADDRESS 
      LDB MLEN      GET LENGTH OF REPLY 
      INB           AND MAKE LENGTH INTO WORDS
      CLE,ERB       CONVERT TO WORDS
      SZB           ANYTHING TO PRINT 
      JSB OPDIS     SEND REPLY
      JMP QUERY     AND RETURN
      SPC 2 
LINER LDA ETAM2     SEND COM LINE MESSAGE 
      LDB B6
      JSB OPDIS     "COM LINE ERR"
      JSB PTPOF     TURN OFF LINE BUSY
      DEF *+1 
      JMP QUERY     AND RETURN TO USER
      SPC 1 
ETAM2 DEF MTAM2 
MTAM2 ASC 6,COM LINE ERR
      HED CREATE XXXXXX COMMAND * (C) HEWLETT PACKARD CO. 1976
* 
* CREATE XXXXXX,KKK,NNNN,TT,S,CR
* 
*        XXXXXX = FILE NAME.
*        KKK    = # BLOCKS. 
*        NNNN   = RECORD SIZE, OPTIONAL, .LE. 128 WORDS.
*        TT     = FILE TYPE, OPTIONAL.
*        S      = SECURITY CODE, OPTIONAL.
*     CR            =CART. REF, OPTIONAL. 
* 
M0800 JSB NAMCK 
* 
      LDA CP2       BLOCKS PARAM? 
      SZA,RSS 
      JMP M0950     NO, ERROR.
      JSB CVT1      CONVERT # BLOCKS. 
      DEF P2
      DEF CP2 
      STA TEMP
* 
      LDB CP3       RECORD SIZE?
      SZB,RSS 
      JMP M0802     NO, IGNORE. 
      JSB CVT1      YES, CONVERT. 
      DEF P3
      DEF CP3 
      STA TEMP+1
      SZA 
      SSA           LEGAL SIZE? 
      JMP M0950     NO, ERROR.
      ADA MD129 
      SSA,RSS 
      JMP M0950 
* 
M0802 LDA B3
      LDB CP4       FILE TYPE?
      SZB,RSS 
      JMP M0810     NO, SET DEFAULT = 3.
      JSB CVT1      YES, CONVERT. 
      DEF P4
      DEF CP4 
M0810 STA TEMP+4
* 
      CLA 
      LDB CP5       SECURITY CODE?
      SZB,RSS 
      JMP M0820     NO, SET DEFAULT = 0.
      JSB CVT1      YES, CONVERT. 
      DEF P5
      DEF CP5 
M0820 STA SECUR 
* 
      CLA 
      LDB CP6       SEE CR SUPPLIED 
      SZB,RSS       SUPPLIED? 
      JMP M0840     NO
      JSB CVT1      YES...CONVERT TO DEC
      DEF P6
      DEF CP6 
M0840 STA P6        SAVE CR 
* 
      JSB RCRET     CREATE A REMOTE FILE. 
      DEF *+8 
      DEF STATS 
      DEF IERR
      DEF P1        FILE NAME.
      DEF TEMP      # BLOCKS, REC. SIZE.
      DEF TEMP+4    FILE TYPE.
      DEF SECUR     SECURITY CODE.
      DEF P6
* 
      JSB FMGER     CHECK IF WE HAD A FMGR ERROR
      JMP M1000     GO CLOSE THE FILE 
* 
M0830 JSB FMGER     FILE MANAGER ERROR? 
* 
      JMP QUERY 
      HED RENAME COMMAND * (C) HEWLETT PACKARD CO. 1976 
* 
* RENAME XXXXXX,YYYYYY,S,CR 
* 
*        XXXXXX = OLD FILE NAME.
*        YYYYYY = NEW FILE NAME.
*        S      = SECURITY CODE, OPTIONAL.
*     CR            =CART REF, OPTIONAL 
* 
M0900 JSB NAMCK     IS OLD NAME SPECIFIED?
* 
      LDA CP2       IS NEW NAME SPECIFIED?
      SZA,RSS 
      JMP M0950     NO, ERROR.
      LDA TAB+2     YES.
      JSB TRAIL 
* 
      CLA 
      LDB CP3       SECURITY CODE?
      SZB,RSS 
      JMP M0910     NO, SET DEFAULT = 0.
      JSB CVT1      YES, CONVERT. 
      DEF P3
      DEF CP3 
M0910 STA SECUR 
* 
      CLA 
      LDB CP4       SEE IF CR SUPPLIED
      SZB,RSS 
      JMP M0920     NOT SUPPLIED
      JSB CVT1      CONVERT TO BINARY 
      DEF P4
      DEF CP4 
M0920 STA P4        SAVE FOR RENAME 
* 
      JSB RNAME     RENAME A REMOTE FILE. 
      DEF *+7 
      DEF STATS 
      DEF IERR
      DEF P1        OLD NAME. 
      DEF P2        NEW NAME. 
      DEF SECUR 
      DEF P4
* 
      JMP M0830 
      HED CLOSE COMMAND * (C) HEWLETT PACKARD CO. 1976
* 
* CLOSE XXXXXX
* 
*       XXXXXX = FILE NAME. 
* 
M1000 JSB NAMCK     IS THERE A FILE NAME? 
* 
      JSB RCLOS     CLOSE A REMOTE FILE.
      DEF *+4 
      DEF STATS 
      DEF IERR
      DEF P1        FILE NAME.
* 
      JMP M0830 
      HED PURGE COMMAND * (C) HEWLETT PACKARD CO. 1976
* 
* PURGE XXXXXX,S
* 
*       XXXXXX = FILE NAME
*       S      = SECURITY CODE, OPTIONAL. 
*     CR            =CART REF, OPTIONAL 
* 
M1100 JSB NAMCK     NAME GIVEN? 
* 
      CLA 
      LDB CP2       SECURITY CODE?
      SZB,RSS 
      JMP M1110     NO, SET DEFAULT = 0.
      JSB CVT1      YES, CONVERT. 
      DEF P2
      DEF CP2 
M1110 STA SECUR 
* 
      CLA 
      LDB CP3       SEE IF CR SUPPLIED
      SZB,RSS 
      JMP M1120     NOT SUPPLIED
      JSB CVT1      CONVERT TO BINARY 
      DEF P3
      DEF CP3 
M1120 STA P3        SAVE FOR PURGE
* 
      JSB RPURG     PURGE A REMOTE FILE.
      DEF *+6 
      DEF STATS 
      DEF IERR
      DEF P1
      DEF SECUR 
      DEF P3
* 
      JMP M0830 
      HED DLIST PROCESSOR * (C) HEWLETT PACKARD CO. 1976
* 
*DLIST [FILTER][,MSEC CODE][,CR][,TYPE] 
* 
*     WHERE:
*MSEC CODE=MASTER SECURITY CODE 
*CR       =DISK LU
*TYPE     =FILE TYPE FILTER 
* 
M1200 LDA CP1       MOVE NAME TO PARMB
      SZA           NAME SUPPLIED?
      JSB NAMCK     YES...SPACE FILL
      LDA P1        MOVE NAME TO PARMB
      STA DLSN1 
      LDA P1+1
      STA DLSN1+1 
      LDA P1+2
      STA DLSN3 
      LDA CP2       MASTER SECURITY CODE
      SZA,RSS       SUPPLIED? 
      JMP M1201     NO
      JSB CVT1      YES...CONVERT IF
      DEF P2
      DEF CP2 
M1201 STA DMCOD     SAVE MASTER SECURITY CODE 
      LDA CP3       SEE IF CART LU SUPPLIED 
      SZA,RSS       NOT SUPPLIED
      JMP M1202 
      JSB CVT1      CONVERT TO BINARY 
      DEF P3
      DEF CP3 
M1202 STA MDCR      SAVE CART. LU 
      LDA CP4       IS IF TYPE FILTER SUPPLIED
      CLE,SZA,RSS   SUPPLIED? 
      JMP M1203     NO
      JSB CVT1      YES...CONVERT IF
      DEF P4
      DEF CP4 
      CCE           SET FOR SUPPLIED
M1203 RAL,ERA       SET IN SIGN BIT IF SUPPLIED 
      STA DTYP
      CLA           SET FOR NEW REQ 
      STA NEWRQ 
M1204 CLA,INA       SET IN STREAM TYPE
      STA DSTRM 
      LDA DEC27     54 CHAR LINE
      STA DLEN      SAVE LENGTH 
      JSB PTPON     SET LINE BUSY 
      DEF *+1 
      CLA           SET FOR RECIEVE DATA
      JSB #TAM
      DEF *+6 
      DEC 8 
      DEF DSTRM 
      DEC -50 
PRMBA DEF PARMB 
      DEC -54 
      INA,SZA       ANY ERRORS? 
      JMP LINER     YES 
M1205 CLA,INA       SET TO RECIEVE REQ
      JSB #TAM
      DEF *+4 
      DEC 5 
      DEF DSTRM 
      DEC -50 
      INA,SZA       ANY ERRORS? 
      JMP LINER     YES 
      LDA DSTRM     GET FIRST WORD OF REPLY 
      JSB RPYCK     SEE IF REPLY
      JMP M1205     NOT...IGNORE
      JSB PTPOF     TURN OFF LINE BUSY
      DEF *+1 
      LDA DLST      SEE IF WE ARE DONE
      SZA           DONE? 
      JMP QUERY     YES 
      LDA PRMBA 
      LDB DLEN      SEND OUT LINE 
      JSB OPDIS 
      JSB WAIT      WAIT FOR TTY TO COMPLETE
      JMP M1204     GET ANOTHER LINE
      SPC 1 
DEC27 DEC 27
      HED RLOAD PROCESSING * (C) HEWLETT PACKARD CO. 1976 
* 
*RLOAD...LOAD A REMOTE PROGRAM
*     CALLING SEQUENCE
*     JSB RLOAD 
*     DEF *+5 
*     DEF LINE STATUS 
*     DEF FILE MANAGER ERROR STATUS 
*     DEF NAME
*     DEF STARTING ADDRESS
* 
*     STATUS ERROR CODES
*     =#TAM ERROR CODES 
* 
*     ERROR CODE
*     1=PROGL BUSY...TRY LATTER 
*     0=NO ERROR
*     -1=OPEN ERROR ON FILE 
*     -2=FILE READ ERROR
*     -3=TRANSMISSION ERROR 
*     -4=TRANSMISSION ERROR 
*     -5=FILE CLOSE ERROR (MEMORY PROTECT)
*     -6=NO STARTING ADDRESS
* 
      SPC 2 
PRGST NOP 
PRGER NOP 
PRGNM NOP 
PRGSA NOP 
RLOAD NOP 
      JSB .ENTR     GET PRAMS 
      DEF PRGST 
      LDA PRGSA     GET STARTING ADDRESS LOC (OPTIONAL) 
      STA PGSTA     SAVE FOR LATTER 
      JSB .IOC. 
      OCT 40000 
      SSA           DRIVERS ALL DONE
      JMP *-3       NO
      JSB PTPON     SET LINE BUSY 
      DEF *+1 
      CLA           CLEAR OUT TEMPS 
      STA PRGER,I   CLEAR OUT ERROR WORD
      STA LSTAT     STATUS WORD 
      STA LODAD     ADDRESS (OF DATA
      STA LDERR     ERROR WORD
      STA LSC       SECURITY CODE 
      STA LDNFG     DONE FLAG 
      STA LNWRQ     NEW REQUEST FLAG
      STA 3         CLEAR OUT TRANSFER ADDRESS
      STA PRGSA     AND OPTIONAL STARTING ADDRESS 
      STA FATAL     CLEAR OUT FATAL FLAG
* 
      LDB MD3       MOVE IN NAME
      LDA LPNMA     GET ADDRESS OF NAME AREA IN PARMB 
      STA RLODA     SAVE IN TEMP
RLOD1 LDA PRGNM,I   MOVE IN NAME
      STA RLODA,I   SAVE NAME 
      ISZ PRGNM 
      ISZ RLODA 
      INB,SZB       DONE? 
      JMP RLOD1      NO 
* 
*     NOW GET THE PROGRAM 
* 
RLOD2 LDA $ESC      DO THEY WANT OUT? 
      SZA,RSS       ? 
      JMP RLD22     NO
      STA LDNFG     YES...TELL PROGL
      STA FATAL     SET FATAL NON ZERO
RLD22 LDA B3        SET IN STREAM TYPE
      STA LSTRM 
      CLA,INA 
      JSB #TAM      SEND REQ
      DEF *+4 
      DEC 6 
      DEF LSTRM 
      DEC -50 
      JSB CKLST     CHECK LOADER STATUS 
RLD23 CLA,INA       READ REPLY
      JSB #TAM
      DEF *+4 
      DEC 5 
      DEF LSTRM 
      DEC -50 
      JSB CKLST 
      LDA LSTRM     GET FIRST WORD OF REPLY 
      JSB RPYCK     SEE IF REPLY
      JMP RLD23     NOT REPLY...IGNORE
      LDA LSTAT     READ THE STATUS 
      CPA B1        IS THERE DATA?
      RSS           YES 
      JMP RLOD3     NO
      JSB MEMCK     CHECK MEMORY BOUNDS 
      LDA PLNGH     GET LENGTH
      CLE,ELA       CONVERT TO NEGATIVE BYTES 
      CMA,INA 
      STA DLNGH     SAVE LENGTH 
      CLA           SET TO READ DATA
      JSB #TAM
      DEF *+4 
      DEC 5 
      DEF LODAD,I         LOAD ADDRESS
DLNGH NOP 
      JSB CKLST     CHECK STATUS
      JMP RLOD2     GET NEXT RECORD 
      SPC 2 
* 
*     HERE IF NO DATA THERE 
* 
RLOD3 SSA           ERROR?
      JMP LODER     YES 
      LDB FATAL     ANY PREVIOUS ERRORS?
      SZB 
      JMP RDON      YES...GET OUT 
      CPA B3        ID SEG COMING?
      JMP RLOD4     YES 
      JSB #TAM      DON'T WANT IT SEND STOP 
      DEF *+2 
      DEC 2 
* 
RLOD4 LDA LPNAM+1   GET STARTING ADDRESS
      LDB LODAD     SEE IF STARTING ADDRESS SUPPLIED
      SZB,RSS       ZERO...NOT SUPPPLIED
      CLA 
      STA 3         SET IN STARTING ADDRESS 
      LDB PGSTA     DO THEY WANT STARTING ADDRESS 
      SZB 
      STA B,I 
      LDB MD6 
      SZA,RSS 
      STB PRGER     NO..TELL THEM 
RDON  JSB RESET     SEE IF BUSY SET 
      JSB PTPOF     CLEAR EXC KEY 
      DEF *+1 
      JMP RLOAD,I   AND RETURN
      SPC 1 
      SPC 2 
* 
*     ROUTINE TO GET LOAD ERROR 
* 
LODER CLB           SET IN CORRECT ERROR CODE 
      CPA MD2       FILE MANAGER ERROR? 
      CCB           YES...-1 ERROR
      CPA MD3       BUSY? 
      CLB,INB       YES...SET TO +1 
      SZB,RSS       HAVE AN ERROR CODE? 
      LDB MD2       NO...NOW WE DO
      STA PRGER,I   SAVE ERROR CODE 
      JMP RDON      AND GET OUT 
      SPC 1 
* 
*     SUBROUTINE TO CHECK ON LINE STATUS
* 
CKLST NOP 
      STA PRGST,I   SAVE STATUS 
      INA,SZA       ANY ERRORS? 
      JMP RDON      YES 
      JMP CKLST,I   NO
                                                                                                                                      