Google
 

Trailing-Edge - PDP-10 Archives - TOPS-20_V6.1_DECnetSrc_7-23-85 - mcb/utilities/cat5.lst
There are 2 other files named cat5.lst in the archive. Click here to see a list.
								12-Apr-1985 07:09:05	TOPS-20 Bliss-36 4A(225)	    Page   1
								30-Dec-1982 17:28:16	DNET61:<DECNET.UTILITIES>CAT5.BLI.1 (1)

;   0001  0	
;   0002  0	MODULE CAT5 (					!Convert ASCII to RAD50
;   0003  0			IDENT = '001000',
;   0004  0			LANGUAGE (BLISS16, BLISS36) %BLISS36 (, ENTRY ($CAT5))
;   0005  0			) =
;   0006  1	BEGIN
;   0007  1	!
;   0008  1	!                    COPYRIGHT (c) 1980, 1981, 1982
;   0009  1	!                    DIGITAL EQUIPMENT CORPORATION
;   0010  1	!                        Maynard, Massachusetts
;   0011  1	!
;   0012  1	!     This software is furnished under a license and may  be  used
;   0013  1	!     and copied only in accordance with the terms of such license
;   0014  1	!     and with the inclusion of the above copyright notice.   This
;   0015  1	!     software  or any other copies thereof may not be provided or
;   0016  1	!     otherwise made available to any other person.  No  title  to
;   0017  1	!     and ownership of the software is hereby transferred.
;   0018  1	!
;   0019  1	!     The information  in  this  software  is  subject  to  change
;   0020  1	!     without  notice  and should not be construed as a commitment
;   0021  1	!     by DIGITAL EQUIPMENT CORPORATION.
;   0022  1	!
;   0023  1	!     DIGITAL assumes no responsibility for the use or reliability
;   0024  1	!     of  its  software  on  equipment  which  is  not supplied by
;   0025  1	!     DIGITAL.
;   0026  1	!
;   0027  1	
;   0028  1	!++
;   0029  1	! FACILITY: SYSTEM LIBRARY
;   0030  1	!
;   0031  1	! ABSTRACT:
;   0032  1	!
;   0033  1	!
;   0034  1	!	This module contains the routine to convert 3 or less characters
;   0035  1	!	to a RAD50 word.
;   0036  1	!
;   0037  1	!
;   0038  1	! ENVIRONMENT: ANY
;   0039  1	!
;   0040  1	! AUTHOR: ALAN D. PECKHAM, CREATION DATE: 26-sep-78
;   0041  1	!
;   0042  1	! MODIFIED BY:
;   0043  1	!
;   0044  1	!	, : VERSION
;   0045  1	! 01	-
;   0046  1	!--
;   0047  1	
;   0048  1	!
;   0049  1	! TABLE OF CONTENTS:
;   0050  1	!
;   0051  1	
;   0052  1	FORWARD ROUTINE
CAT5								12-Apr-1985 07:09:05	TOPS-20 Bliss-36 4A(225)	    Page   2
001000								30-Dec-1982 17:28:16	DNET61:<DECNET.UTILITIES>CAT5.BLI.1 (1)

;   0053  1	    $CAT5;					!Convert ASCII to RAD50
;   0054  1	
;   0055  1	!
;   0056  1	! INCLUDE FILES:
;   0057  1	!
;   0058  1	!
;   0059  1	! MACROS:
;   0060  1	!
;   0061  1	!
;   0062  1	! EQUATED SYMBOLS:
;   0063  1	!
;   0064  1	!
;   0065  1	! OWN STORAGE:
;   0066  1	!
;   0067  1	!
;   0068  1	! EXTERNAL REFERENCES:
;   0069  1	!
;   0070  1	
CAT5								12-Apr-1985 07:09:05	TOPS-20 Bliss-36 4A(225)	    Page   3
001000								30-Dec-1982 17:28:16	DNET61:<DECNET.UTILITIES>CAT5.BLI.1 (2)

;   0071  1	GLOBAL ROUTINE $CAT5 (BUF_PTR_ADR, FLAG) =
;   0072  1	
;   0073  1	!++
;   0074  1	! FUNCTIONAL DESCRIPTION:
;   0075  1	!
;   0076  1	!
;   0077  1	! FORMAL PARAMETERS:
;   0078  1	!
;   0079  1	!	.BUF_PTR_ADR				!Address of character sequence
;   0080  1	!						!pointer to buffer to extract
;   0081  1	!						!number from.
;   0082  1	!	.FLAG					!If non-zero, the period is
;   0083  1	!						!accepted as a character.
;   0084  1	!
;   0085  1	! IMPLICIT INPUTS:
;   0086  1	!
;   0087  1	!	NONE
;   0088  1	!
;   0089  1	! IMPLICIT OUTPUTS:
;   0090  1	!
;   0091  1	!	The buffer pointer ..BUF_PTR_ADR is updated to point past
;   0092  1	!	the characters used in the conversion.
;   0093  1	!
;   0094  1	! ROUTINE VALUE:
;   0095  1	!
;   0096  1	!	The RAD50 equivalent of the next 3 (or less) characters.
;   0097  1	!
;   0098  1	! SIDE EFFECTS:
;   0099  1	!
;   0100  1	!	NONE
;   0101  1	!
;   0102  1	!--
;   0103  1	
;   0104  2	    BEGIN
;   0105  2	
;   0106  2	    LOCAL
;   0107  2		INDEX,
;   0108  2		CHAR,
;   0109  2		VALUE;
;   0110  2	
;   0111  2	    VALUE = 0;
;   0112  2	
;   0113  2	    INCR INDEX FROM 0 TO 2 DO
;   0114  3		BEGIN
;   0115  3		CHAR = CH$RCHAR_A (.BUF_PTR_ADR);
;   0116  4		VALUE = .VALUE*%O'50' + (SELECTONE .CHAR OF
;   0117  4		    SET
;   0118  4		    [%C' '] : %O'0';
;   0119  4		    [%C'A' TO %C'Z'] : .CHAR - %C'A' + %O'1';
;   0120  4		    [%C'$'] : %O'33';
;   0121  4		    [%C'.'] : IF .FLAG NEQ 0 THEN %O'34' ELSE
;   0122  5			    BEGIN
CAT5								12-Apr-1985 07:09:05	TOPS-20 Bliss-36 4A(225)	    Page   4
001000								30-Dec-1982 17:28:16	DNET61:<DECNET.UTILITIES>CAT5.BLI.1 (2)

;   0123  5			    .BUF_PTR_ADR = CH$PLUS (..BUF_PTR_ADR, -1);
;   0124  5			    0
;   0125  4			    END;
;   0126  4		    [%C'0' TO %C'9'] : .CHAR - %C'0' + %O'36';
;   0127  4		    [OTHERWISE] :
;   0128  5			BEGIN
;   0129  5			.BUF_PTR_ADR = CH$PLUS (..BUF_PTR_ADR, -1);
;   0130  5			0
;   0131  4			END;
;   0132  3		    TES);
;   0133  2		END;
;   0134  2	
;   0135  2	    .VALUE
;   0136  1	    END;					!End of $CAT5


	TITLE	CAT5
	TWOSEG


	ENTRY	$CAT5


	.REQUEST  SYS:B362LB.REL


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'
$CAT5:: PUSH	SP,AC16				; SP,AC16				400000' 261 17 0 00 000016		0071
	SETZ	AC1,				; VALUE,				400001' 400 01 0 00 000000		0111
	MOVE	AC4,-3(SP)			; AC4,BUF_PTR_ADR			400002' 200 04 0 17 777775		0115
	MOVEI	AC5,2				; INDEX,2				400003' 201 05 0 00 000002		0113
L.1:	ILDB	AC2,0(AC4)			; CHAR,0(AC4)				400004' 134 02 0 04 000000		0115
	MOVE	AC16,AC1			; AC16,VALUE				400005' 200 16 0 00 000001		0116
	IMULI	AC16,50				; AC16,50				400006' 221 16 0 00 000050
CAT5								12-Apr-1985 07:09:05	TOPS-20 Bliss-36 4A(225)	    Page   5
001000								30-Dec-1982 17:28:16	DNET61:<DECNET.UTILITIES>CAT5.BLI.1 (2)

	CAIN	AC2,40				; CHAR,40				400007' 306 02 0 00 000040		0118
	JRST	L.6				; L.6					400010' 254 00 0 00 400042'
	CAIL	AC2,101				; CHAR,101				400011' 301 02 0 00 000101		0119
	CAILE	AC2,132				; CHAR,132				400012' 303 02 0 00 000132
	JRST	L.2				; L.2					400013' 254 00 0 00 400017'
	MOVE	AC3,AC2				; AC3,CHAR				400014' 200 03 0 00 000002
	SUBI	AC3,100				; AC3,100				400015' 275 03 0 00 000100
	JRST	L.7				; L.7					400016' 254 00 0 00 400043'		0116
L.2:	CAIE	AC2,44				; CHAR,44				400017' 302 02 0 00 000044		0120
	JRST	L.3				; L.3					400020' 254 00 0 00 400023'
	MOVEI	AC3,33				; AC3,33				400021' 201 03 0 00 000033		0116
	JRST	L.7				; L.7					400022' 254 00 0 00 400043'
L.3:	CAIE	AC2,56				; CHAR,56				400023' 302 02 0 00 000056		0121
	JRST	L.4				; L.4					400024' 254 00 0 00 400031'
	SKIPN	-2(SP)				; FLAG					400025' 336 00 0 17 777776
	JRST	L.5				; L.5					400026' 254 00 0 00 400037'
	MOVEI	AC3,34				; AC3,34				400027' 201 03 0 00 000034
	JRST	L.7				; L.7					400030' 254 00 0 00 400043'
L.4:	CAIL	AC2,60				; CHAR,60				400031' 301 02 0 00 000060		0126
	CAILE	AC2,71				; CHAR,71				400032' 303 02 0 00 000071
	JRST	L.5				; L.5					400033' 254 00 0 00 400037'
	MOVE	AC3,AC2				; AC3,CHAR				400034' 200 03 0 00 000002
	SUBI	AC3,22				; AC3,22				400035' 275 03 0 00 000022
	JRST	L.7				; L.7					400036' 254 00 0 00 400043'		0116
L.5:	SETO	AC3,				; AC3,					400037' 474 03 0 00 000000		0129
	ADJBP	AC3,0(AC4)			; AC3,0(AC4)				400040' 133 03 0 04 000000
	MOVEM	AC3,0(AC4)			; AC3,0(AC4)				400041' 202 03 0 04 000000
L.6:	SETZ	AC3,				; AC3,					400042' 400 03 0 00 000000		0116
L.7:	MOVE	AC1,AC16			; VALUE,AC16				400043' 200 01 0 00 000016
	ADD	AC1,AC3				; VALUE,AC3				400044' 270 01 0 00 000003
	SOJGE	AC5,L.1				; INDEX,L.1				400045' 365 05 0 00 400004'		0113
	POP	SP,AC16				; SP,AC16				400046' 262 17 0 00 000016		0071
	POPJ	SP,				; SP,					400047' 263 17 0 00 000000

; Routine Size:  40 words


;   0137  1	
;   0138  1	END						!End of module
;   0139  1	
;   0140  0	ELUDOM




; Low  segment length:       0 words
; High segment length:      40 words
CAT5								12-Apr-1985 07:09:05	TOPS-20 Bliss-36 4A(225)	    Page   6
001000											

; Size:		40 code + 0 data words
; Run Time:	   00:00.8
; Elapsed Time:	   00:01.2
; Lines/CPU Min:   10157
; Lexemes/CPU-Min: 20459
; Memory Used:	6 pages
; Compilation Complete