Google
 

Trailing-Edge - PDP-10 Archives - decuslib20-06 - decus/20-153/ttyout.mac
There is 1 other file named ttyout.mac in the archive. Click here to see a list.
	TITLE TTYOUT
	ENTRY TTYOUT

AC0==0
AC1==1
AC2==2
AC3==3
AC4==4
J==16
P==17

TTYOUT:	PUSH	P,AC0
	PUSH	P,AC1
	PUSH	P,AC2		;SAVE AC'S
	PUSH	P,AC3
	PUSH	P,AC4

	HLLZ	AC0,-1(J)	;-ARG #,,0
	AOBJN	.		;0,,+ARG #
	SKIPA			;SKIP 1ST TIME
LOOP:	ADDI	16,1		;NEXT ARG
	MOVE	AC1,(J)		;ARG
	HLRZ	AC2,AC1		;CODE
	CAIE	AC2,100		;NUMERIC?
	JRST	DOASCI		;NO, ASCII-SIXBIT
	MOVE	AC3,(AC1)	;YES, GET NUMBER
	PUSHJ	P,DECOCT
	JRST	DOIT		;& DOIT TOIT
DOASCI:	HRRZ	AC2,1(AC1)	;SIZE
	MOVE	AC1,(AC1)	;POINTER
	SETZ	AC3,
LOOP1:	ILDB	AC4,AC1		;LOAD BYTE
	TLNE	AC1,100		;SIXBIT?
	SUBI	AC4,40		;NO CONVERT
	SUBI	AC4,20		;TO BINARY
	IMULI	AC3,10		;BUMP UP
	ADD	AC3,AC4		;ADD
	SOJG	AC2,LOOP1	;LOOP CHAR. # TIMES
DOIT:	OUTCHR	AC3		;OUTPUT C(AC3)
	SOJG	LOOP		;GET NEXT CHARACTER

	POP	P,AC4
	POP	P,AC3
	POP	P,AC2
	POP	P,AC1
	POP	P,AC0
	POPJ	P,		;RETURN

DECOCT:	IDIVI	AC3,12
	JUMPE	AC3,.+5
	HRLM	AC4,(P)
	PUSHJ	P,DECOCT
	HLRZ	AC4,(P)
	IMULI	AC3,10
	ADD	AC3,AC4
	POPJ	P,
	END