Google
 

Trailing-Edge - PDP-10 Archives - BB-R598A-RM_1983 - swskit-v3/listings/vnp36/misc.list
There are no other files named misc.list in the archive.
!
!	NONE
!								25-Jan-1983 10:16:08	TOPS-20 Bliss-36 2A(142)	    Page   1
								 1-Jan-1983 14:51:30	NETPKG:<VNP36>MISC.BLI.7 (1)

;	  0001	!<REL4A.TKB-VNP>MISC.BLI.6,  3-Dec-79 14:34:50, Edit by SROBINSON
;	  0002	MODULE MISC (					!MISCELLANEOUS
;	  0003			IDENT = 'X2.0'
;	  0004			) =
;	  0005	BEGIN
;	  0006	!
;	  0007	!
;	  0008	!
;	  0009	!                    COPYRIGHT (c) 1980, 1981, 1982
;	  0010	!                    DIGITAL EQUIPMENT CORPORATION
;	  0011	!                        Maynard, Massachusetts
;	  0012	!
;	  0013	!     This software is furnished under a license and may  be  used
;	  0014	!     and copied only in accordance with the terms of such license
;	  0015	!     and with the inclusion of the above copyright notice.   This
;	  0016	!     software  or any other copies thereof may not be provided or
;	  0017	!     otherwise made available to any other person.  No  title  to
;	  0018	!     and ownership of the software is hereby transferred.
;	  0019	!
;	  0020	!     The information  in  this  software  is  subject  to  change
;	  0021	!     without  notice  and should not be construed as a commitment
;	  0022	!     by DIGITAL EQUIPMENT CORPORATION.
;	  0023	!
;	  0024	!     DIGITAL assumes no responsibility for the use or reliability
;	  0025	!     of  its  software  on  equipment  which  is  not supplied by
;	  0026	!     DIGITAL.
;	  0027	!
;	  0028	
;	  0029	!++
;	  0030	! FACILITY: TKB-20 AND VNP-20
;	  0031	!
;	  0032	! ABSTRACT:
;	  0033	!
;	  0034	!
;	  0035	! THIS MODULE PROVIDES SEVERAL MISCELLANEOUS SERVICES
;	  0036	!
;	  0037	!
;	  0038	! ENVIRONMENT: TOPS-20 USER MODE
;	  0039	!
;	  0040	! AUTHOR: J. SAUTER, CREATION DATE: 14-DEC-77
;	  0041	!
;	  0042	! MODIFIED BY:
;	  0043	!
;	  0044	!	Scott G. Robinson, 13-JUN-79 : VERSION X0.2
;	  0045	!	- Make a Call to ERROR fatal
;	  0046	!-----------------------------------------------------------------------
;	  0047	!
;	  0048	!	Scott G. Robinson, 3-DEC-79 : Version X2.0
;	  0049	!	- Ensure DECnet-10 Compatibility
;	  0050	!
;	  0051	!	, : VERSION
;	  0052	! 01	-
MISC								25-Jan-1983 10:16:08	TOPS-20 Bliss-36 2A(142)	    Page   2
X2.0								 1-Jan-1983 14:51:30	NETPKG:<VNP36>MISC.BLI.7 (1)

;	  0053	!--
;	  0054	
;	  0055	!<BLF/PAGE>
MISC								25-Jan-1983 10:16:08	TOPS-20 Bliss-36 2A(142)	    Page   3
X2.0								 1-Jan-1983 14:51:30	NETPKG:<VNP36>MISC.BLI.7 (2)

;	  0056	!
;	  0057	! TABLE OF CONTENTS:
;	  0058	!
;	  0059	
;	  0060	FORWARD ROUTINE
;	  0061	    ERROR : NOVALUE,				!PROGRAMMING ERROR
;	  0062	    R50TOA : NOVALUE,				!RADIX50_11 TO ASCII
;	  0063	    RX50,					!ASCII CHAR TO RADIX50
;	  0064	    ATOR50 : NOVALUE;				!ASCII TO RADIX50_11
;	  0065	
;	  0066	!
;	  0067	! INCLUDE FILES:
;	  0068	!
;	  0069	!
;	  0070	! MACROS:
;	  0071	!
;	  0072	!	NONE
;	  0073	!
;	  0074	! EQUATED SYMBOLS:
;	  0075	!
;	  0076	
;	  0077	LITERAL
;	  0078	    DEBUG = 0;
;	  0079	
;	  0080	!
;	  0081	! OWN STORAGE:
;	  0082	!
;	  0083	
;	  0084	OWN
;	  0085	    ERR_FLAG : INITIAL (0);
;	  0086	
;	  0087	!
;	  0088	! EXTERNAL REFERENCES:
;	  0089	!
;	  0090	
;	  0091	EXTERNAL ROUTINE
;	  0092	    FND_CHAIN,					!FIND A BLOCK IN A CHAIN
;	  0093	    OUTPUT : NOVALUE,				!WRITE ON A FILE
;	  0094	    OUTSTR : NOVALUE,				!WRITE A STRING ON A FILE
;	  0095	    PCRLF : NOVALUE,				!SEND CRLF TO A FILE
;	  0096	    STOP_PROGRAM : NOVALUE;			!TERMINATE EXECUTION
;	  0097	
MISC								25-Jan-1983 10:16:08	TOPS-20 Bliss-36 2A(142)	    Page   4
X2.0								 1-Jan-1983 14:51:30	NETPKG:<VNP36>MISC.BLI.7 (3)

;	  0098	GLOBAL ROUTINE ERROR (MESSAGE) : NOVALUE = 	!SIGNAL A PROGRAMMING ERROR
;	  0099	
;	  0100	!++
;	  0101	! FUNCTIONAL DESCRIPTION:
;	  0102	!
;	  0103	!	PRINT A MESSAGE DUE TO A PROGRAMMING ERROR IN TKB-20
;	  0104	!	TERMINATE THE PROGRAM AFTERWARDS
;	  0105	!
;	  0106	! FORMAL PARAMETERS:
;	  0107	!
;	  0108	!	MESSAGE - POINTER TO THE STRING DESCRIBING THE ERROR
;	  0109	!
;	  0110	! IMPLICIT INPUTS:
;	  0111	!
;	  0112	!	ERR_FLAG
;	  0113	!
;	  0114	! IMPLICIT OUTPUTS:
;	  0115	!
;	  0116	!	ERR_FLAG
;	  0117	!
;	  0118	! ROUTINE VALUE:
;	  0119	!
;	  0120	!	NONE
;	  0121	!
;	  0122	! SIDE EFFECTS
;	  0123	!
;	  0124	!	NONE
;	  0125	!
;	  0126	!--
;	  0127	
;	  0128	    BEGIN
;	  0129	
;	  0130	    IF (.ERR_FLAG EQL 0)
;	  0131	    THEN
;	  0132		BEGIN
;	  0133		ERR_FLAG = 1;
;	  0134		PCRLF (0);
;	  0135		OUTPUT (0, %C'?');
;	  0136		OUTSTR (0, .MESSAGE);
;	  0137		END;
;	  0138	
;	  0139	    STOP_PROGRAM ();
;	  0140	    END;


	TITLE	MISC
	TWOSEG


	.REQUEST  SYS:B362LB.REL
MISC								25-Jan-1983 10:16:08	TOPS-20 Bliss-36 2A(142)	    Page   5
X2.0								 1-Jan-1983 14:51:30	NETPKG:<VNP36>MISC.BLI.7 (3)

	RELOC	0				;					000000'
ERR_FLAG:
	EXP	0				;					000000' 000000	000000


	EXTERN	FND_CHAIN, OUTPUT, OUTSTR, PCRLF, STOP_PROGRAM


AC0=	0
AC1=	1
AC2=	2
AC3=	3
AC4=	4
AC5=	5
AC6=	6
AC7=	7
AC10=	10
AC11=	11
AC12=	12
AC13=	13
AC14=	14
FP=	15
AC16=	16
SP=	17


	RELOC	400000				;					400000'
ERROR:: SKIPE	ERR_FLAG			; ERR_FLAG				400000' 332 00 0 00 000000'		0130
	JRST	L.1				; L.1					400001' 254 00 0 00 400015'
	MOVEI	AC1,1				; AC1,1					400002' 201 01 0 00 000001		0133
	MOVEM	AC1,ERR_FLAG			; AC1,ERR_FLAG				400003' 202 01 0 00 000000'
	PUSH	SP,C.1				; SP,[0]				400004' 261 17 0 00 400016'		0134
	PUSHJ	SP,PCRLF			; SP,PCRLF				400005' 260 17 0 00 000000*
	SETZM	0(SP)				; 0(SP)					400006' 402 00 0 17 000000		0135
	PUSH	SP,C.2				; SP,[77]				400007' 261 17 0 00 400017'
	PUSHJ	SP,OUTPUT			; SP,OUTPUT				400010' 260 17 0 00 000000*
	SETZM	0(SP)				; 0(SP)					400011' 402 00 0 17 000000		0136
	PUSH	SP,-3(SP)			; SP,MESSAGE				400012' 261 17 0 17 777775
	PUSHJ	SP,OUTSTR			; SP,OUTSTR				400013' 260 17 0 00 000000*
	ADJSP	SP,-3				; SP,-3					400014' 105 17 0 00 777775		0132
L.1:	JRST	STOP_PROGRAM			; STOP_PROGRAM				400015' 254 00 0 00 000000*		0139
C.1:	EXP	0				; 0					400016' 000000	000000
C.2:	EXP	77				; 77					400017' 000000	000077

; Routine Size:  16 words


;	  0141	
MISC								25-Jan-1983 10:16:08	TOPS-20 Bliss-36 2A(142)	    Page   6
X2.0								 1-Jan-1983 14:51:30	NETPKG:<VNP36>MISC.BLI.7 (4)

;	  0142	GLOBAL ROUTINE R50TOA (R50, ASCVAL) : NOVALUE = 	!CONVERT RADIX50 TO ASCII
;	  0143	
;	  0144	!++
;	  0145	! FUNCTIONAL DESCRIPTION:
;	  0146	!
;	  0147	!	CONVERT PDP-11 FORMAT RADIX50 TO ASCII
;	  0148	!
;	  0149	! FORMAL PARAMETERS:
;	  0150	!
;	  0151	!	R50 - 32 BITS OF PDP-11 FORMAT RADIX50
;	  0152	!	ASCVAL - 7-CHARACTER STRING OF RESULTING ASCIZ
;	  0153	!
;	  0154	! IMPLICIT INPUTS:
;	  0155	!
;	  0156	!	NONE
;	  0157	!
;	  0158	! IMPLICIT OUTPUTS:
;	  0159	!
;	  0160	!	NONE
;	  0161	!
;	  0162	! ROUTINE VALUE:
;	  0163	!
;	  0164	!	NONE
;	  0165	!
;	  0166	! SIDE EFFECTS
;	  0167	!
;	  0168	!	NONE
;	  0169	!
;	  0170	!--
;	  0171	
;	  0172	    BEGIN
;	  0173	
;	  0174	    MAP
;	  0175		ASCVAL : REF VECTOR [CH$ALLOCATION (7)];
;	  0176	
;	  0177	    LOCAL
;	  0178		ASCPTR,
;	  0179		CHAR,
;	  0180		TEMP1,
;	  0181		TEMP2;
;	  0182	
;	  0183	    ASCVAL [0] = 0;
;	  0184	    ASCVAL [1] = 0;
;	  0185	    ASCPTR = CH$PTR (ASCVAL [0], 5);
;	  0186	
;	  0187	    INCR WORD_NUMBER FROM 0 TO 1 DO
;	  0188		BEGIN
;	  0189		TEMP1 = .R50<(IF (.WORD_NUMBER EQL 0) THEN 0 ELSE 16), 16>;
;	  0190	
;	  0191		INCR CHAR_NUMBER FROM 1 TO 3 DO
;	  0192		    BEGIN
;	  0193		    TEMP2 = .TEMP1 MOD %O'50';
MISC								25-Jan-1983 10:16:08	TOPS-20 Bliss-36 2A(142)	    Page   7
X2.0								 1-Jan-1983 14:51:30	NETPKG:<VNP36>MISC.BLI.7 (4)

;	  0194		    TEMP1 = .TEMP1/%O'50';
;	  0195		    CHAR = (CASE .TEMP2 FROM 0 TO (%O'50' - 1) OF
;	  0196			SET
;	  0197			[0] : %C' ';
;	  0198			[1 TO 26] : %C'A' + (.TEMP2 - 1);
;	  0199			[27] : %C'$';
;	  0200			[28] : %C'.';
;	  0201			[29] : %C'&';			!ACTUALLY UNDEFINED
;	  0202			[30 TO 39] : %C'0' + (.TEMP2 - 30);
;	  0203			[OUTRANGE] : %C'&';		!SHOULD NEVER HAPPEN
;	  0204			TES);
;	  0205		    CH$WCHAR (.CHAR, .ASCPTR);
;	  0206		    ASCPTR = CH$PLUS (.ASCPTR, -1);
;	  0207		    END;				!OF INCR CHARACTER
;	  0208	
;	  0209		END;					!OF INCR WORD
;	  0210	
;	  0211	    CH$WCHAR (0, CH$PTR (ASCVAL [0], 6));	!APPEND 0 TO MAKE ASCIZ
;	  0212	    END;					!OF R50TOA


R50TOA::PUSH	SP,AC0				; SP,AC0				400020' 261 17 0 00 000000		0142
	PUSH	SP,AC10				; SP,AC10				400021' 261 17 0 00 000010
	PUSH	SP,AC11				; SP,AC11				400022' 261 17 0 00 000011
	PUSH	SP,AC16				; SP,AC16				400023' 261 17 0 00 000016
	MOVE	AC4,-5(SP)			; AC4,ASCVAL				400024' 200 04 0 17 777773		0183
	SETZM	0(AC4)				; 0(AC4)				400025' 402 00 0 04 000000
	SETZM	1(AC4)				; 1(AC4)				400026' 402 00 0 04 000001		0184
	MOVEI	AC1,0(AC4)			; AC1,0(AC4)				400027' 201 01 0 04 000000		0185
	HRLI	AC1,10700			; AC1,10700				400030' 505 01 0 00 010700
	MOVE	AC11,AC1			; ASCPTR,AC1				400031' 200 11 0 00 000001
	SETZ	AC10,				; WORD_NUMBER,				400032' 400 10 0 00 000000		0187
L.2:	JUMPN	AC10,L.3			; WORD_NUMBER,L.3			400033' 326 10 0 00 400035'		0189
	TDZA	AC1,AC1				; AC1,AC1				400034' 634 01 0 00 000001
L.3:	MOVEI	AC1,20				; AC1,20				400035' 201 01 0 00 000020
	MOVE	AC2,C.3				; AC2,[POINT 16,R50,35]  <0,16>		400036' 200 02 0 00 400166'
	DPB	AC1,C.4				; AC1,[POINT 6,AC2,5]  <30,6>		400037' 137 01 0 00 400167'
	LDB	AC0,AC2				; TEMP1,AC2				400040' 135 00 0 00 000002
	MOVEI	AC16,1				; CHAR_NUMBER,1				400041' 201 16 0 00 000001		0191
L.4:	MOVE	AC1,AC0				; AC1,TEMP1				400042' 200 01 0 00 000000		0193
	IDIVI	AC1,50				; AC1,50				400043' 231 01 0 00 000050
	MOVE	AC5,AC2				; TEMP2,AC2				400044' 200 05 0 00 000002
	MOVE	AC1,AC0				; AC1,TEMP1				400045' 200 01 0 00 000000		0194
	IDIVI	AC1,50				; AC1,50				400046' 231 01 0 00 000050
	MOVE	AC0,AC1				; TEMP1,AC1				400047' 200 00 0 00 000001
	JUMPL	AC5,L.10			; TEMP2,L.10				400050' 321 05 0 00 400135'		0195
	CAIGE	AC5,50				; TEMP2,50				400051' 305 05 0 00 000050
	JRST	L.5(AC5)			; L.5(TEMP2)				400052' 254 00 0 05 400054'
	JRST	L.10				; L.10					400053' 254 00 0 00 400135'
L.5:	JRST	L.6				; L.6					400054' 254 00 0 00 400124'
	JRST	L.7				; L.7					400055' 254 00 0 00 400126'
	JRST	L.7				; L.7					400056' 254 00 0 00 400126'
MISC								25-Jan-1983 10:16:08	TOPS-20 Bliss-36 2A(142)	    Page   8
X2.0								 1-Jan-1983 14:51:30	NETPKG:<VNP36>MISC.BLI.7 (4)

	JRST	L.7				; L.7					400057' 254 00 0 00 400126'
	JRST	L.7				; L.7					400060' 254 00 0 00 400126'
	JRST	L.7				; L.7					400061' 254 00 0 00 400126'
	JRST	L.7				; L.7					400062' 254 00 0 00 400126'
	JRST	L.7				; L.7					400063' 254 00 0 00 400126'
	JRST	L.7				; L.7					400064' 254 00 0 00 400126'
	JRST	L.7				; L.7					400065' 254 00 0 00 400126'
	JRST	L.7				; L.7					400066' 254 00 0 00 400126'
	JRST	L.7				; L.7					400067' 254 00 0 00 400126'
	JRST	L.7				; L.7					400070' 254 00 0 00 400126'
	JRST	L.7				; L.7					400071' 254 00 0 00 400126'
	JRST	L.7				; L.7					400072' 254 00 0 00 400126'
	JRST	L.7				; L.7					400073' 254 00 0 00 400126'
	JRST	L.7				; L.7					400074' 254 00 0 00 400126'
	JRST	L.7				; L.7					400075' 254 00 0 00 400126'
	JRST	L.7				; L.7					400076' 254 00 0 00 400126'
	JRST	L.7				; L.7					400077' 254 00 0 00 400126'
	JRST	L.7				; L.7					400100' 254 00 0 00 400126'
	JRST	L.7				; L.7					400101' 254 00 0 00 400126'
	JRST	L.7				; L.7					400102' 254 00 0 00 400126'
	JRST	L.7				; L.7					400103' 254 00 0 00 400126'
	JRST	L.7				; L.7					400104' 254 00 0 00 400126'
	JRST	L.7				; L.7					400105' 254 00 0 00 400126'
	JRST	L.7				; L.7					400106' 254 00 0 00 400126'
	JRST	L.8				; L.8					400107' 254 00 0 00 400131'
	JRST	L.9				; L.9					400110' 254 00 0 00 400133'
	JRST	L.10				; L.10					400111' 254 00 0 00 400135'
	JRST	L.11				; L.11					400112' 254 00 0 00 400137'
	JRST	L.11				; L.11					400113' 254 00 0 00 400137'
	JRST	L.11				; L.11					400114' 254 00 0 00 400137'
	JRST	L.11				; L.11					400115' 254 00 0 00 400137'
	JRST	L.11				; L.11					400116' 254 00 0 00 400137'
	JRST	L.11				; L.11					400117' 254 00 0 00 400137'
	JRST	L.11				; L.11					400120' 254 00 0 00 400137'
	JRST	L.11				; L.11					400121' 254 00 0 00 400137'
	JRST	L.11				; L.11					400122' 254 00 0 00 400137'
	JRST	L.11				; L.11					400123' 254 00 0 00 400137'
L.6:	MOVEI	AC3,40				; CHAR,40				400124' 201 03 0 00 000040
	JRST	L.12				; L.12					400125' 254 00 0 00 400141'
L.7:	MOVE	AC3,AC5				; CHAR,TEMP2				400126' 200 03 0 00 000005		0198
	ADDI	AC3,100				; CHAR,100				400127' 271 03 0 00 000100
	JRST	L.12				; L.12					400130' 254 00 0 00 400141'		0195
L.8:	MOVEI	AC3,44				; CHAR,44				400131' 201 03 0 00 000044
	JRST	L.12				; L.12					400132' 254 00 0 00 400141'
L.9:	MOVEI	AC3,56				; CHAR,56				400133' 201 03 0 00 000056
	JRST	L.12				; L.12					400134' 254 00 0 00 400141'
L.10:	MOVEI	AC3,46				; CHAR,46				400135' 201 03 0 00 000046
	JRST	L.12				; L.12					400136' 254 00 0 00 400141'
L.11:	MOVE	AC3,AC5				; CHAR,TEMP2				400137' 200 03 0 00 000005		0202
	ADDI	AC3,22				; CHAR,22				400140' 271 03 0 00 000022
L.12:	MOVE	AC1,AC11			; AC1,ASCPTR				400141' 200 01 0 00 000011		0205
	IDPB	AC3,AC1				; CHAR,AC1				400142' 136 03 0 00 000001
MISC								25-Jan-1983 10:16:08	TOPS-20 Bliss-36 2A(142)	    Page   9
X2.0								 1-Jan-1983 14:51:30	NETPKG:<VNP36>MISC.BLI.7 (4)

	SETO	AC1,				; AC1,					400143' 474 01 0 00 000000		0206
	ADJBP	AC1,AC11			; AC1,ASCPTR				400144' 133 01 0 00 000011
	MOVE	AC11,AC1			; ASCPTR,AC1				400145' 200 11 0 00 000001
	ADDI	AC16,1				; CHAR_NUMBER,1				400146' 271 16 0 00 000001		0191
	CAIG	AC16,3				; CHAR_NUMBER,3				400147' 307 16 0 00 000003
	JRST	L.4				; L.4					400150' 254 00 0 00 400042'
	ADDI	AC10,1				; WORD_NUMBER,1				400151' 271 10 0 00 000001		0187
	CAIG	AC10,1				; WORD_NUMBER,1				400152' 307 10 0 00 000001
	JRST	L.2				; L.2					400153' 254 00 0 00 400033'
	SETZ	AC2,				; AC2,					400154' 400 02 0 00 000000		0211
	MOVE	AC1,AC4				; AC1,AC4				400155' 200 01 0 00 000004
	MOVEI	AC1,1(AC1)			; AC1,1(AC1)				400156' 201 01 0 01 000001
	HRLI	AC1,350700			; AC1,350700				400157' 505 01 0 00 350700
	IDPB	AC2,AC1				; AC2,AC1				400160' 136 02 0 00 000001
	POP	SP,AC16				; SP,AC16				400161' 262 17 0 00 000016		0142
	POP	SP,AC11				; SP,AC11				400162' 262 17 0 00 000011
	POP	SP,AC10				; SP,AC10				400163' 262 17 0 00 000010
	POP	SP,AC0				; SP,AC0				400164' 262 17 0 00 000000
	POPJ	SP,				; SP,					400165' 263 17 0 00 000000
C.3:	POINT	16,-6(SP),35			; 16,R50,35				400166' 00 20 0 17 777772
C.4:	POINT	6,AC2,5				; 6,AC2,5				400167' 36 06 0 00 000002

; Routine Size:  104 words


;	  0213	
MISC								25-Jan-1983 10:16:08	TOPS-20 Bliss-36 2A(142)	    Page  10
X2.0								 1-Jan-1983 14:51:30	NETPKG:<VNP36>MISC.BLI.7 (5)

;	  0214	GLOBAL ROUTINE RX50 (CHAR) = 			!CONVERT ASCII CHAR TO RADIX50
;	  0215	
;	  0216	!++
;	  0217	! FUNCTIONAL DESCRIPTION:
;	  0218	!
;	  0219	!	CONVERT ASCII CHARACTER TO RADIX50_11
;	  0220	!	 NULLS ARE CONVERTED TO SPACES.
;	  0221	!
;	  0222	! FORMAL PARAMETERS:
;	  0223	!
;	  0224	!	CHAR - ASCII CHARACTER
;	  0225	!
;	  0226	! IMPLICIT INPUTS:
;	  0227	!
;	  0228	!	NONE
;	  0229	!
;	  0230	! IMPLICIT OUTPUTS:
;	  0231	!
;	  0232	!	NONE
;	  0233	!
;	  0234	! ROUTINE VALUE:
;	  0235	!
;	  0236	!	THE RADIX50 VALUE OF THE CHARACTER
;	  0237	!
;	  0238	! SIDE EFFECTS
;	  0239	!
;	  0240	!	NONE
;	  0241	!
;	  0242	!--
;	  0243	
;	  0244	    BEGIN
;	  0245	
;	  0246	    SELECTONE .CHAR OF
;	  0247		SET
;	  0248	
;	  0249		[%C' ', 0] :
;	  0250		    0;
;	  0251	
;	  0252		[%C'A' TO %C'Z'] :
;	  0253		    .CHAR + %O'1' - %C'A';
;	  0254	
;	  0255		[%C'$'] :
;	  0256		    %O'33';
;	  0257	
;	  0258		[%C'.'] :
;	  0259		    %O'34';
;	  0260	
;	  0261		[%C'0' TO %C'9'] :
;	  0262		    .CHAR + %O'36' - %C'0';
;	  0263	
;	  0264		[%C'a' TO %C'z'] :
;	  0265		    .CHAR + %O'1' - %C'a';
MISC								25-Jan-1983 10:16:08	TOPS-20 Bliss-36 2A(142)	    Page  11
X2.0								 1-Jan-1983 14:51:30	NETPKG:<VNP36>MISC.BLI.7 (5)

;	  0266	
;	  0267		[OTHERWISE] :
;	  0268		    %O'35';
;	  0269		TES
;	  0270	
;	  0271	    END;					!OF RX50


RX50::	MOVE	AC1,-1(SP)			; AC1,CHAR				400170' 200 01 0 17 777777		0246
	JUMPE	AC1,L.13			; AC1,L.13				400171' 322 01 0 00 400174'
	CAIE	AC1,40				; AC1,40				400172' 302 01 0 00 000040
	JRST	L.14				; L.14					400173' 254 00 0 00 400176'
L.13:	SETZ	AC1,				; AC1,					400174' 400 01 0 00 000000		0244
	POPJ	SP,				; SP,					400175' 263 17 0 00 000000
L.14:	CAIL	AC1,101				; AC1,101				400176' 301 01 0 00 000101		0246
	CAILE	AC1,132				; AC1,132				400177' 303 01 0 00 000132
	JRST	L.15				; L.15					400200' 254 00 0 00 400204'
	MOVE	AC2,AC1				; AC2,AC1				400201' 200 02 0 00 000001		0253
	SUBI	AC2,100				; AC2,100				400202' 275 02 0 00 000100
	JRST	L.18				; L.18					400203' 254 00 0 00 400221'
L.15:	CAIE	AC1,44				; AC1,44				400204' 302 01 0 00 000044		0246
	JRST	L.16				; L.16					400205' 254 00 0 00 400210'
	MOVEI	AC1,33				; AC1,33				400206' 201 01 0 00 000033		0244
	POPJ	SP,				; SP,					400207' 263 17 0 00 000000
L.16:	CAIE	AC1,56				; AC1,56				400210' 302 01 0 00 000056		0246
	JRST	L.17				; L.17					400211' 254 00 0 00 400214'
	MOVEI	AC1,34				; AC1,34				400212' 201 01 0 00 000034		0244
	POPJ	SP,				; SP,					400213' 263 17 0 00 000000
L.17:	CAIL	AC1,60				; AC1,60				400214' 301 01 0 00 000060		0246
	CAILE	AC1,71				; AC1,71				400215' 303 01 0 00 000071
	JRST	L.19				; L.19					400216' 254 00 0 00 400223'
	MOVE	AC2,AC1				; AC2,AC1				400217' 200 02 0 00 000001		0262
	SUBI	AC2,22				; AC2,22				400220' 275 02 0 00 000022
L.18:	MOVE	AC1,AC2				; AC1,AC2				400221' 200 01 0 00 000002		0244
	POPJ	SP,				; SP,					400222' 263 17 0 00 000000
L.19:	CAIL	AC1,141				; AC1,141				400223' 301 01 0 00 000141		0246
	CAILE	AC1,172				; AC1,172				400224' 303 01 0 00 000172
	JRST	L.20				; L.20					400225' 254 00 0 00 400230'
	SUBI	AC1,140				; AC1,140				400226' 275 01 0 00 000140		0265
	POPJ	SP,				; SP,					400227' 263 17 0 00 000000		0244
L.20:	MOVEI	AC1,35				; AC1,35				400230' 201 01 0 00 000035
	POPJ	SP,				; SP,					400231' 263 17 0 00 000000		0214

; Routine Size:  34 words


;	  0272	
MISC								25-Jan-1983 10:16:08	TOPS-20 Bliss-36 2A(142)	    Page  12
X2.0								 1-Jan-1983 14:51:30	NETPKG:<VNP36>MISC.BLI.7 (6)

;	  0273	GLOBAL ROUTINE ATOR50 (ASCVAL, R50) : NOVALUE = 	!CONVERT ASCII TO RADIX50
;	  0274	
;	  0275	!++
;	  0276	! FUNCTIONAL DESCRIPTION:
;	  0277	!
;	  0278	!	CONVERT ASCII TO RADIX50_11
;	  0279	!
;	  0280	! FORMAL PARAMETERS:
;	  0281	!
;	  0282	!	ASCVAL - SIX CHARACTERS OF ASCII
;	  0283	!	R50 - POINTER TO VECTOR OF LENGTH 4 TO RECEIVE BYTES
;	  0284	!
;	  0285	! IMPLICIT INPUTS:
;	  0286	!
;	  0287	!	NONE
;	  0288	!
;	  0289	! IMPLICIT OUTPUTS:
;	  0290	!
;	  0291	!	NONE
;	  0292	!
;	  0293	! ROUTINE VALUE:
;	  0294	!
;	  0295	!	NONE
;	  0296	!
;	  0297	! SIDE EFFECTS
;	  0298	!
;	  0299	!	NONE
;	  0300	!
;	  0301	!--
;	  0302	
;	  0303	    BEGIN
;	  0304	
;	  0305	    MAP
;	  0306		ASCVAL : REF VECTOR [CH$ALLOCATION (7)],
;	  0307		R50 : REF VECTOR [4];
;	  0308	
;	  0309	    LOCAL
;	  0310		ASCPTR,
;	  0311		CHAR1,
;	  0312		CHAR2,
;	  0313		CHAR3,
;	  0314		R50_INDEX,
;	  0315		TEMP;
;	  0316	
;	  0317	    ASCPTR = CH$PTR (.ASCVAL, -1);
;	  0318	    R50_INDEX = 0;
;	  0319	
;	  0320	    INCR COUNTER FROM 0 TO 1 DO
;	  0321		BEGIN
;	  0322		CHAR1 = CH$A_RCHAR (ASCPTR);
;	  0323		CHAR2 = CH$A_RCHAR (ASCPTR);
;	  0324		CHAR3 = CH$A_RCHAR (ASCPTR);
MISC								25-Jan-1983 10:16:08	TOPS-20 Bliss-36 2A(142)	    Page  13
X2.0								 1-Jan-1983 14:51:30	NETPKG:<VNP36>MISC.BLI.7 (6)

;	  0325		TEMP = (((RX50 (.CHAR1)*%O'50') + RX50 (.CHAR2))*%O'50') + RX50 (.CHAR3);
;	  0326		R50 [.R50_INDEX] = .TEMP<0, 8>;
;	  0327		R50_INDEX = .R50_INDEX + 1;
;	  0328		R50 [.R50_INDEX] = .TEMP<8, 8>;
;	  0329		R50_INDEX = .R50_INDEX + 1;
;	  0330		END;
;	  0331	
;	  0332	    END;					!OF ATOR50


ATOR50::PUSH	SP,AC0				; SP,AC0				400232' 261 17 0 00 000000		0273
	PUSH	SP,AC10				; SP,AC10				400233' 261 17 0 00 000010
	PUSH	SP,AC11				; SP,AC11				400234' 261 17 0 00 000011
	PUSH	SP,AC12				; SP,AC12				400235' 261 17 0 00 000012
	PUSH	SP,AC13				; SP,AC13				400236' 261 17 0 00 000013
	PUSH	SP,AC14				; SP,AC14				400237' 261 17 0 00 000014
	PUSH	SP,AC16				; SP,AC16				400240' 261 17 0 00 000016
	ADJSP	SP,2				; SP,2					400241' 105 17 0 00 000002
	MOVE	AC1,-13(SP)			; AC1,ASCVAL				400242' 200 01 0 17 777765		0317
	MOVEI	AC1,-1(AC1)			; AC1,-1(AC1)				400243' 201 01 0 01 777777
	HRLI	AC1,100700			; AC1,100700				400244' 505 01 0 00 100700
	MOVE	AC10,AC1			; ASCPTR,AC1				400245' 200 10 0 00 000001
	SETZ	AC0,				; R50_INDEX,				400246' 400 00 0 00 000000		0318
	MOVE	AC11,-12(SP)			; AC11,R50				400247' 200 11 0 17 777766		0326
	SETZ	AC12,				; COUNTER,				400250' 400 12 0 00 000000		0320
L.21:	IBP	AC10				; ASCPTR				400251' 133 00 0 00 000010		0322
	MOVE	AC1,AC10			; AC1,ASCPTR				400252' 200 01 0 00 000010
	ILDB	AC1,AC1				; AC1,AC1				400253' 134 01 0 00 000001
	MOVEM	AC1,-1(SP)			; AC1,CHAR1				400254' 202 01 0 17 777777
	IBP	AC10				; ASCPTR				400255' 133 00 0 00 000010		0323
	MOVE	AC1,AC10			; AC1,ASCPTR				400256' 200 01 0 00 000010
	ILDB	AC1,AC1				; AC1,AC1				400257' 134 01 0 00 000001
	MOVEM	AC1,0(SP)			; AC1,CHAR2				400260' 202 01 0 17 000000
	IBP	AC10				; ASCPTR				400261' 133 00 0 00 000010		0324
	MOVE	AC14,AC10			; CHAR3,ASCPTR				400262' 200 14 0 00 000010
	ILDB	AC14,AC14			; CHAR3,CHAR3				400263' 134 14 0 00 000014
	PUSH	SP,-1(SP)			; SP,CHAR1				400264' 261 17 0 17 777777		0325
	PUSHJ	SP,RX50				; SP,RX50				400265' 260 17 0 00 400170'
	MOVE	AC16,AC1			; AC16,AC1				400266' 200 16 0 00 000001
	IMULI	AC16,50				; AC16,50				400267' 221 16 0 00 000050
	MOVE	AC1,-1(SP)			; AC1,CHAR2				400270' 200 01 0 17 777777
	MOVEM	AC1,0(SP)			; AC1,0(SP)				400271' 202 01 0 17 000000
	PUSHJ	SP,RX50				; SP,RX50				400272' 260 17 0 00 400170'
	ADD	AC16,AC1			; AC16,AC1				400273' 270 16 0 00 000001
	IMULI	AC16,50				; AC16,50				400274' 221 16 0 00 000050
	MOVEM	AC14,0(SP)			; CHAR3,0(SP)				400275' 202 14 0 17 000000
	PUSHJ	SP,RX50				; SP,RX50				400276' 260 17 0 00 400170'
	MOVE	AC13,AC16			; TEMP,AC16				400277' 200 13 0 00 000016
	ADD	AC13,AC1			; TEMP,AC1				400300' 270 13 0 00 000001
	MOVE	AC1,AC11			; AC1,AC11				400301' 200 01 0 00 000011		0326
	ADD	AC1,AC0				; AC1,R50_INDEX				400302' 270 01 0 00 000000
	LDB	AC2,C.5				; AC2,[POINT 8,TEMP,35]  <0,8>		400303' 135 02 0 00 400330'
MISC								25-Jan-1983 10:16:08	TOPS-20 Bliss-36 2A(142)	    Page  14
X2.0								 1-Jan-1983 14:51:30	NETPKG:<VNP36>MISC.BLI.7 (6)

	MOVEM	AC2,0(AC1)			; AC2,0(AC1)				400304' 202 02 0 01 000000
	ADDI	AC0,1				; R50_INDEX,1				400305' 271 00 0 00 000001		0327
	MOVE	AC1,AC11			; AC1,AC11				400306' 200 01 0 00 000011		0328
	ADD	AC1,AC0				; AC1,R50_INDEX				400307' 270 01 0 00 000000
	LDB	AC2,C.6				; AC2,[POINT 8,TEMP,27]  <8,8>		400310' 135 02 0 00 400331'
	MOVEM	AC2,0(AC1)			; AC2,0(AC1)				400311' 202 02 0 01 000000
	ADDI	AC0,1				; R50_INDEX,1				400312' 271 00 0 00 000001		0329
	ADJSP	SP,-1				; SP,-1					400313' 105 17 0 00 777777		0321
	ADDI	AC12,1				; COUNTER,1				400314' 271 12 0 00 000001		0320
	CAIG	AC12,1				; COUNTER,1				400315' 307 12 0 00 000001
	JRST	L.21				; L.21					400316' 254 00 0 00 400251'
	ADJSP	SP,-2				; SP,-2					400317' 105 17 0 00 777776		0273
	POP	SP,AC16				; SP,AC16				400320' 262 17 0 00 000016
	POP	SP,AC14				; SP,AC14				400321' 262 17 0 00 000014
	POP	SP,AC13				; SP,AC13				400322' 262 17 0 00 000013
	POP	SP,AC12				; SP,AC12				400323' 262 17 0 00 000012
	POP	SP,AC11				; SP,AC11				400324' 262 17 0 00 000011
	POP	SP,AC10				; SP,AC10				400325' 262 17 0 00 000010
	POP	SP,AC0				; SP,AC0				400326' 262 17 0 00 000000
	POPJ	SP,				; SP,					400327' 263 17 0 00 000000
C.5:	POINT	8,AC13,35			; 8,TEMP,35				400330' 00 10 0 00 000013
C.6:	POINT	8,AC13,27			; 8,TEMP,27				400331' 10 10 0 00 000013

; Routine Size:  64 words


;	  0333	
;	  0334	END
;	  0335	
;	  0336	ELUDOM



	END

; Low  segment length:       1 word
; High segment length:     218 words





; Size:		218 code + 1 data words
; Run Time:	00:03.1
; Elapsed Time:	00:08.9
; Memory Used:	9 pages
; Compilation Complete
ASCPTR				 178	 185#	 205	 206#	 310	 317#	 322	 323	 324
ASCVAL				 142	 175	 183#	 184#	 185	 211	 273	 306	 317
ATOR50				  64#	 273*
CH$WCHAR			 205	 211
CHAR				 179	 195#	 205	 214	 246	 253	 262	 265
CHAR1				 311	 322#	 325
CHAR2				 312	 323#	 325
CHAR3				 313	 324#	 325
CHAR_NUMBER			 191
COUNTER				 320
ERROR				  61	  98*
ERR_FLAG			  85	 130	 133#
FND_CHAIN			  92*
MESSAGE				  98	 136
MISC				   2#
OUTPUT				  93	 135
OUTSTR				  94	 136
PCRLF				  95	 134
R50				 142	 189	 273	 307	 326#	 328#
R50TOA				  62	 142*
R50_INDEX			 314	 318#	 326	 327#	 328	 329#
RX50				  63	 214*	 325
STOP_PROGRAM			  96	 139
TEMP				 315	 325#	 326	 328
TEMP1				 180	 189#	 193	 194#
TEMP2				 181	 193#	 195	 198	 202
WORD_NUMBER			 187	 189