.MCALL .MODULE
.MODULE DIRPRE,VERSION=05,COMMENT=
,TITLE=NO,IDENT=NO
; Copyright (c) 1998 by Mentec, Inc., Nashua, NH.
; All rights reserved
;
; This software is furnished under a license for use only on a
; single computer system and may be copied only with the
; inclusion of the above copyright notice. This software, or
; any other copies thereof, may not be provided or otherwise
; made available to any other person except for use on such
; system and to one who agrees to these license terms. Title
; to and ownership of the software shall at all times remain
; in Mentec, Inc.
;
; The information in this document is subject to change without
; notice and should not be construed as a commitment by Digital
; Equipment Corporation, or Mentec, Inc.
;
; Digital and Mentec assume no responsibility for the use or
; reliability of its software on equipment which is not supplied
; by Digital or Mentec, and listed in the Software Product
; Description.
; DIR (Directory Program)
;
;C.G. 15-Nov-76
;C.G. 01-Nov-77
;M.G. 13-AUG-79
;
; V05 (005) 27-JUN-89 Definition of .CSTAT for use in DIRT11
; MBG
.NLIST
.ENABL LC
.LIST
.NLIST
.DSABL CRF
.MCALL .READW, .SETTO, .ENTER
.MCALL .LOOKU, .DATE, .WRITW
.MCALL .PRINT, .GTIM, .PURGE
.MCALL .CLOSE, .WAIT, .CSISP
.MCALL .SPFUN, .DSTAT, .RELEA
.MCALL .FETCH, .RCTRL, .GVAL
.MCALL .EXIT, .SERR, .HERR
.MCALL .QSET, .CSTAT
;+
;
; This macro generates calls to the formatting routine. The arguments
; are:
; BUFFER - a pointer to an output buffer. If not specified,
; R0 is assumed to point the output buffer.
; PICTUR - an ASCII string enclosed in '<>', containing the
; format string and/or formatting directives. See
; comments in file RESRC1.MAC.
; ARGUMENTS- values contained in '<>' to satisfy any formatting
; directives. SP addressing is not valid.
;
;-
.MACRO FORMAT BUFFER,PICTUR,ARGUMENTS,LAB1
.IF NB
PSECT $$$FMT
...FMT = .
.ASCIZ \PICTUR\
PSECT *
.ENDC
MOV R0,-(SP)
...ARG = 0
..ARGC = 0
.IRP ARG,
..ARGC = ..ARGC +1
.ENDM
..LOOP = ..ARGC
.REPT ..ARGC
..LOP1 = ..LOOP
.IRP ARG,
..LOP1 = ..LOP1 -1
.IF EQ ..LOP1
MOV ARG,-(SP)
...ARG = ...ARG +1
.ENDC
.ENDM
..LOOP = ..LOOP -1
.ENDR
.IF NB
MOV #...FMT,-(SP)
.IFF
.IF NB LAB1
MOV LAB1,-(SP)
.IFF
.ERROR ;No FORMAT string specified
.ENDC
.ENDC
...ARG = ...ARG +1
MOV #<...ARG*2>,-(SP)
.IF NB BUFFER
MOV BUFFER,R0
.IFF
MOV R2,R0
.ENDC
.GLOBL $FORMAT
JSR PC,$FORMAT
MOV R0,R2
MOV (SP)+,R0
.ENDM FORMAT
.MACRO UNORG
.ENDM UNORG
.MACRO ORIGIN SECT,LIST
.MACRO UNORG
.LIST BEX
PSECT SECT,
.ENDM UNORG
PSECT ,
.NLIST BEX
.ENDM ORIGIN
.MACRO PSECT SECT,LIST
.LIST BEX
.IF IDN SECT,<*>
UNORG
.NLIST BEX
.MEXIT
.IFF
.IF NB
.PSECT SECT,LIST
.IFF
.PSECT SECT
.ENDC
.ENDC
.NLIST BEX
.ENDM PSECT
.MACRO GBLDAT ARGS
.DSABL CRF
.GLOBL ARGS
.ENABL CRF
.ENDM GBLDAT
.MACRO PRTIT BUFF,LEN,END
.IIF NB , MOV BUFF,R1
.IIF NB , MOV LEN,R2
.IIF NB , MOV END,R2
.IIF B , SUB R1,R2
.GLOBL WRITIT
JSR PC,WRITIT
.ENDM
.MACRO TITLE NAME,SUBTTL,VERSION,EDIT
.TITLE NAME'.0'EDIT
.NLIST
.LIST ME
.LIST
.SBTTL NAME'SUBTTL
.IDENT \X'VERSION'.'EDIT\
.NLIST
.NLIST ME
.LIST
.ENDM TITLE
.MACRO XTERNL ARGS
.DSABL CRF
.GLOBL ARGS
.ENABL CRF
.ENDM XTERNL
.MACRO $ERROR NAME,LEVEL,RETURN,FILE,ASCII
.GLOBL ERROR, NAME'...
.IF NB
MOV FILE,R3
.IFF
CLR R3
.ENDC
.IF NB
MOV ASCII,R2
.IFF
CLR R2
.ENDC
JSR R5,ERROR
.BYTE 'NAME'...
...X.. = 0
...... = 0
.IRPC ..X...,
.IF EQ ......
.IIF IDN ..X..., ...X.. = 200
...... = 1
.ENDC
.ENDM
...... = 0
.IRPC ..X...,
.IF EQ ......
.BYTE ...X..+ERR$$'..X...
...... = 1
.ENDC
.ENDM
.ENDM $ERROR
.MACRO .SAVRG
.DSABL CRF
.GLOBL $SAVRG
.ENABL CRF
JSR R5,$SAVRG
.ENDM .SAVRG
.ENABL CRF
.LIST