Google
 

Trailing-Edge - PDP-10 Archives - decuslib10-04 - 43,50325/iomacs.beg
There are no other files named iomacs.beg in the archive.
! File:   IOMACS.BEG
!
!    This work was supported by the Advanced Research
!    Projects Agency of the Office of the Secretary of
!    Defense (F44620-73-C-0074) and is monitored by the
!    Air Force Office of Scientific Research.

!	DEFINITIONS NEEDED BY MODULES THAT DO I/O
!-------------------------------------------------

!--------------------------------
!1. SPECIAL CHARACTER DEFINITIONS


    BIND
	EOL	=#15,	! END OF LINE (CARRIAGE RETURN)
	FORMF	=#14,	! FORM FEED
	LINEF	=#12,	! LINE FEED
	HTAB	=#11,	! PDP10 HORIZONTAL TAB
	BELL	=#7,
	DOLLAR	=#44,
	BLANK	=#40;



!----------------------------------
!2. OUTPUT DEVICE SELECTOR VALUES
!
!	WHEN THE GLOBAL VARIABLE "DEVICE" IS SET TO ONE OF THESE
!	VALUES, THE CORRESPONDING DEVICE IS USED AS THE OUTPUT
!	DEVICE BY THE I/O ROUTINES (ESP. "OUTXSTRING" AND "OUTPUT"
!	IN THE LOIO MODULE).
!
!	BE VERY CAREFUL IF YOU CHANGE THESE VALUES.  CERTAIN
!	ASSUMPTIONS ARE MADE ABOUT THEM.  FOR EXAMPLE, SOME
!	ROUTINES RELY ON THE FACT THAT TTYDEV IS THE SAME AS
!	LOGICAL "TRUE".

EXTERNAL
	DEVICE;

    BIND
	TTYDEV=1,		! TTY
	BINDEV=2,		! BINARY DEVICE (NOT IMPL. YET)
	LSTDEV=4,		! LISTING DEVICE
	ERRDEV=LSTDEV+TTYDEV;	! ERROR DEVICE


!-------------------------------------
!3. I/O ROUTINES (EXTERNAL) AND MACROS

! THE GENERAL LOW-LEVEL I/O ROUTINES

EXTERNAL
	OUTPUT,
	OUTXSTRING,
	OUTNUM,
	OUTCRLF,
	OUTSEVERAL;

! MACROS USED TO CALL THE ABOVE

MACRO
	MSG(STR) = (PLIT ASCIZ 'STR')<29,7> $,
	OUTS(STR) = OUTXSTRING((PLIT ASCIZ STR)<29,7>,64,0) $,
	OUTMSG(STR) = OUTS('STR') $,
	OUTP(PTR) = OUTXSTRING((PTR)<29,7>,64,0) $,

	OUTPXLIM(PTR,LIMIT) = OUTXSTRING((PTR)<29,7>,LIMIT,0) $,
	OUTPXFLD(PTR,WIDTH) = OUTXSTRING((PTR)<29,7>,WIDTH,WIDTH) $,
	OUTSXFLD(STR,WIDTH) = OUTXSTRING((PLIT(STR))<29,7>,WIDTH,WIDTH) $,

	OUTSTN(NTE) = OUTXSTRING(NT[NTE,0,29,7],10,0) $,
	OUTSTE(STE) = OUTSTN(.ST[STE,NAMEPTR]) $,

	OUTBLANK(N) = OUTSEVERAL(BLANK,N) $,

	OUTDEC(NUM,REQD) = OUTNUM(NUM,10,REQD) $,
	OUTOCT(NUM,REQD) = OUTNUM(NUM, 8,REQD) $,

	CRLF = OUTCRLF()$,

	TAB = OUTPUT(HTAB) $;

!-----------------------------------------------
!4. MACRO TO CONVERT LOWER CASE ALPHABETIC INPUT

MACRO	UPPERCASE(CHAR) = (CHAR AND NOT #40) $;