Google
 

Trailing-Edge - PDP-10 Archives - decuslib10-07 - 43,50450/utlmac.req
There are no other files named utlmac.req in the archive.
00100	% UTLMAC.REQ VERSION 2.1 % SWITCHES NOLIST;
00200	REQUIRE 'B11MAC.REQ' SOURCE;   
00300	%
00400		    RSX-11M UTILITY SERVICES MACRO LIBRARY FOR BLISS-11
00500	
00600	AUTHOR:
00700		K. E. GORLEN
00800		RM. 2017, BG. 12A
00900		DIVISION OF COMPUTER RESEARCH AND TECHNOLOGY
01000		NATIONAL INSTITUTES OF HEALTH
01100		BETHESDA, MD. 20014
01200		PHONE: (301) 496-5361
01300		NOVEMBER 7,1975
01400	
01500	SEE RSXMAC.DOC FOR DOCUMENTATION.
01600	
01700	%
01800	LINKAGE ?UTL.0=BLISS(REGISTER=0);
01900	LINKAGE ?UTL.01=BLISS(REGISTER=0,REGISTER=1);
02000	LINKAGE ?UTL.012=BLISS(REGISTER=0,REGISTER=1,REGISTER=2);
02100	LINKAGE ?UTL.345=BLISS(REGISTER=3,REGISTER=4,REGISTER=5);
02200	!
02300	! $CDTB -- CONVERT DECIMAL TO BINARY
02400	!
02500	MACRO $CDTB(INSTR,NUM,TERM)=BEGIN
02600	    EXTERNAL ?UTL.0 $NAME('$CDTB');
02700	    LOCAL ?.NEXT;		! ADDRESS OF NEXT BYTE IN INPUT STRING
02800	    ?.SAVEREG(R1,R2);
02900	    ?.NEXT=$NAME('$CDTB')(INSTR);
03000	    ?.SELECT(NUM,<NUM=.R1>);	! RETURN CONVERTED NUMBER
03100	    ?.SELECT(TERM,<TERM=.R2>);	! RETURN TERMINAL CHARACTER
03200	    .?.NEXT END$;
03300	!
03400	! $COTB -- CONVERT OCTAL TO BINARY
03500	!
03600	MACRO $COTB(INSTR,NUM,TERM)=BEGIN
03700	    EXTERNAL ?UTL.0 $NAME('$COTB');
03800	    LOCAL ?.NEXT;		! ADDRESS OF NEXT BYTE IN INPUT STRING
03900	    ?.SAVEREG(R1,R2);
04000	    ?.NEXT=$NAME('$COTB')(INSTR);
04100	    ?.SELECT(NUM,<NUM=.R1>);	! RETURN CONVERTED NUMBER
04200	    ?.SELECT(TERM,<TERM=.R2>);	! RETURN TERMINAL CHARACTER
04300	    .?.NEXT END$;
04400	!
04500	! ?.ODCVT -- CONVERT ASCII TO BINARY WITH OCTAL DEFAULT
04600	!
04700	MACRO ?.ODCVT(RESULT,INLEN,INSTR,ERR)=BEGIN
04800	    EXTERNAL ?UTL.345 ?.ODCVT;
04900	    SWITCHES UNAMES;
05000	    OPLABEL ?.NOERR;
05100	    OPCODE ?.BCC=BCC;
05200	    ?.SAVEREG(R2);
05300	    ?.ODCVT(RESULT,INLEN,INSTR);
05400	    ?.BCC(?.NOERR);
05500	    .R2;
05600	    DO (ERR) WHILE 0;
05700	    ?.NOERR:END$;
05800	!
05900	! ?.DCCVT -- CONVERT ASCII TO BINARY WITH DECIMAL DEFAULT
06000	!
06100	MACRO ?.DCCVT(RESULT,INLEN,INSTR,ERR)=BEGIN
06200	    EXTERNAL ?UTL.345 ?.DCCVT;
06300	    SWITCHES UNAMES;
06400	    OPLABEL ?.NOERR;
06500	    OPCODE ?.BCC=BCC;
06600	    ?.SAVEREG(R2);
06700	    ?.DCCVT(RESULT,INLEN,INSTR);
06800	    ?.BCC(?.NOERR);
06900	    .R2;
07000	    DO (ERR) WHILE 0;
07100	    ?.NOERR:END$;
07200	!
07300	! $EDMSG -- EDIT MESSAGE
07400	!
07500	MACRO $EDMSG(OUTSTR,INSTR,ARGBLK,OUTLEN,NXTARG)=BEGIN
07600	    EXTERNAL ?UTL.012 $NAME('$EDMSG');
07700	    LOCAL ?.LAST;		! ADDRESS OF LAST BYTE IN OUTPUT STRING
07800	    ?.LAST=$NAME('$EDMSG')(OUTSTR,INSTR,ARGBLK);
07900	    ?.SELECT(OUTLEN,<OUTLEN=.R1>);
08000	    ?.SELECT(NXTARG,<NXTARG=.R2>);
08100	    .?.LAST END$;
08200	!
08300	! $RLCB -- RELEASE CORE BLOCK
08400	!
08500	MACRO $RLCB(FREEHD,BLKSZ,BLKADR)=BEGIN
08600	    EXTERNAL ?UTL.012 $NAME('$RLCB');
08700	    $NAME('$RLCB')(FREEHD,BLKSZ,BLKADR) END$;
08800	!
08900	! $RQCB -- REQUEST CORE BLOCK
09000	!
09100	MACRO $RQCB(FREEHD,BLKSZ,ERR)=BEGIN
09200	    EXTERNAL ?UTL.01 $NAME('$RQCB');
09300	    LOCAL ?.BLKADR;		! ADDRESS OF ALLOCATED BLOCK
09400	    SWITCHES UNAMES;
09500	    OPLABEL ?.NOERR;
09600	    OPCODE ?.BCC=BCC;
09700	    ?.SAVEREG(R2);
09800	    ?.BLKADR=$NAME('$RQCB')(FREEHD,BLKSZ);
09900	    ?.BCC(?.NOERR);
10000	    .R2;
10100	    DO (ERR) WHILE 0;
10200	    ?.NOERR:.?.BLKADR END$;
10300	SWITCHES LIST;