ASMB,R,L,C
*     NAME:   LSTDF 
*     SOURCE: 92070-18120 
*     RELOC:  92070-16120 
*     PGMR:   D.J.W.
* 
*  ***************************************************************
*  * (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.       *
*  ***************************************************************
* 
* 
      NAM LSTDF,7  92070-1X120  REV.1941  791011
* 
* 
*  LSTDF CREATES AND OPENS THE LIST FILE. NOTE THAT THE ERROR 
*  EXIT IS TO P+2, NOT P+1 AS USUAL.
* 
*  CALLING SEQUENCE:  JSB LSTDF 
* 
*  ON RETURN:         P+1:  LIST DEVICE DEFINED AND OPEN
*                     P+2:  ERROR OR NULL LIST, A-REG = ERROR CODE
* 
      ENT LSTDF,HEADR 
      EXT .MVW,AB.RT,CNAMR,CREAT,DRKEY,FCONT
      EXT FMPER,FOPEN,FTIME,I.ERR,IN.TR,IPBUF 
      EXT  LDCB,LNAMR,OPENF,PL.ST,SPACE,TMSTG 
* 
A     EQU 0 
B     EQU 1 
* 
LSTDF NOP 
      LDA IPBUF+3   WHAT TYPE NAMR IS THIS ?
      SZA,RSS 
      JMP RETRN     NULL, SO RETURN 
* 
      AND P3
      CPA P1        IS THIS AN LU ? 
      JMP OPENL     YES, GO OPEN THE FILE 
* 
*  NAMR IS A FILE 
* 
      LDA IPBUF     IS THE FIRST CHARACTER
      AND M7400 
      CPA QUOTE     A QUOTE "'" ? 
      JMP OPEN      YES, SO TRY OPENING THE FILE
* 
CRETF JSB CREAT     NO, JUST CREATE THE FILE
      DEF *+8 
      DEF LDCB+0    LIST DCB
      DEF I.ERR+0   ERROR PARAMETER 
AIPBF DEF IPBUF+0   LIST NAMR 
      DEF P12       FILE SIZE 
      DEF P4        FILE TYPE 
      DEF IPBUF+4   SECURITY CODE 
      DEF IPBUF+5   CARTRIDGE REFERENCE NUMBER
* 
ERR?  SSA           FMP ERROR ? 
      JMP ERROR 
GOOD  LDA AIPBF     NO ERROR, MOVE NEW LIST NAMR
      LDB ALNAM     INTO OFFICIAL LIST NAMR BUFFER
      JSB .MVW
      DEF P6
      NOP 
      JMP LSTDF,I   AND TAKE A GOOD RETURN
* 
*  ERROR ON ATTEMPTED CREAT OR OPEN 
* 
ERROR STA ERR       SET ASIDE THE ERROR CODE
      JSB FOPEN 
      DEF *+5 
ALNAM DEF LNAMR+0   NAMR UNCHANGED
      DEF LDCB      LIST DCB
      DEF IOPTN 
      DEF P144      DCB LENGTH
      JMP AB.RT     ERROR ON OPEN, WERE SUNK !!!
      LDA ERR       GOOD RETURN, NOW
      JSB FMPER     OUTPUT ORIGIONAL ERROR MESSAGE
      DEF IPBUF+0   ABOUT DESIRED LIST
* 
RETRN ISZ LSTDF     TAKE ERROR EXIT FROM LSTDF
      JMP LSTDF,I 
* 
ERR   BSS 1         ERROR CODE
P12   DEC 12
P3    DEC 3 
P144  DEC 144 
IOPTN DEC 0 
* 
*  TRY OPENING THE FILE 
* 
OPEN  JSB OPENF     OPEN THE LIST FILE
      DEF *+7 
      DEF LDCB      DCB ADDRESS 
      DEF I.ERR     ERROR PARM
      DEF IPBUF     NAMR BUFFER 
      DEF IOPTN     OPEN OPTION 
      DEF IPBUF+4   SECURITY CODE 
      DEF IPBUF+5   CRN 
      CPA N6        FILE NOT FOUND ?
      JMP CRETF     YES, CREATE THE FILE
      JMP ERR?      CHECK FOR AN ERROR
* 
*  LIST NAMR IS AN LU 
* 
OPENL JSB OPENF     OPEN THE (TYPE 0 ) FILE 
      DEF *+5 
      DEF LDCB      DCB ADDRESS 
      DEF I.ERR     ERROR PARM
      DEF IPBUF     LU TO BE OPENED 
      DEF P1        OPEN OPTION 
      SSA           FMP ERROR ? 
      JMP ERROR     YES 
* 
      LDA IN.TR     NO ERROR, CHECK FOR LIST = COMMAND
      SZA,RSS 
      JMP GOOD      COMMAND NOT INTERACTIVE, CANT BE EQUAL
      LDA IPBUF     ARE THEY THE SAME LU ?
      CLB,INB 
      CPA CNAMR 
      INB 
      STB IN.TR     YES, SET IN.TR = 2
      JMP GOOD
* 
QUOTE OCT 23400 
P6    DEC 6 
M7400 OCT 77400 
N6    DEC -6
P4    DEC 4 
P1    DEC 1 
      HED OUTPUT HEADER MESSAGE TO LIST DEVICE
* 
* 
*  HEADR OUTPUTS A HEADER MESSAGE TO THE LIST DEVICE
*  CONSISTING OF THE CURRENT TIME AND DATE STRING AS
*  RETURNED FROM SYSTEM SUBROUTINE  'FTIME'.   THE
*  STRING IS PLACED IN EXTERNAL BUFFER 'TMSTG'. 
* 
*  CALLING SEQUENCE:  JSB HEADR 
* 
*  ON RETURN:    P+1: ERROR RETURN
*                P+2: GOOD RETURN 
* 
* 
* 
HEADR NOP 
      JSB FTIME     CALCULATE THE CURRENT TIME AND DATE 
      DEF *+2 
ATMST DEF TMSTG+0   DESTINATION ADDRESS 
* 
      LDA PL.ST     ARE WE LISTING ?
      SZA,RSS 
      JMP NOLST     NO, SO DON'T NEED HEADER
      LDB ATIME     YES, SET TIME STRING INTO OUTPUT BUFFER 
      LDA ATMST     SAVE IN BUFFER IN THE MAIN
      JSB .MVW
      DEF P15       LENGTH OF TIME STRING BUFFER
      NOP 
* 
*     JSB FCONT     DO A TOP OF FORM REQUEST
*     DEF *+5 
*     DEF LDCB      LIST DCB
*     DEF I.ERR     ERROR PARAMETER 
*     DEF ICNWD     CONTROL WORD
*     DEF N2
      LDA MESH      GET HEADER MESSAGE ADDRESS
      LDB LMESS     AND LENGTH
      JSB DRKEY     OUTPUT TO THE LIST DEVICE 
* 
      SSA           FMP ERROR ? 
      JMP HEADR,I    YES, RETURN P+1
* 
      JSB SPACE     NO, SPACE UP A BLANK LINE 
      JSB SPACE 
NOLST ISZ HEADR     RETURN P+2
      JMP HEADR,I 
* 
ATIME DEF TIME
MESH  DEF *+1 
      ASC 15, 
TIME  ASC 15, 
LMESS DEC 60
ICNWD OCT 1100
P15   DEC 15
N2    DEC -2
      END 
                                                                                                                                                                                                                                                  