! 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) $;