File NUMOUT.PA (PAL assembler source file)

Directory of image this file is from
This file as a plain text file

/COMBINATION OCTAL-DECIMAL OUTPUT ROUTINE
/ENTER:	TAD	VALUE
/	JMS	NUMOUT
/	S D 3
/	RETURN
/
/
/S	MEANS TO SUPPRESS LEADING ZEROS
/D	MEANS TO OUTPUT IN DECIMAL
/3	DIGITS TO OUTPUT, 1 TO 4 DIGITS
/
/

S=	4000
D=	2000

NUMOUT,	0
	DCA	NUM
	TAD I	NUMOUT
	CLL RAL		/OCTAL OR DECIMAL OUTPUT?
	SPA CLA
	TAD	DECOCT	/DECIMAL
	TAD	OCTPNT	/OCTAL
	DCA	STKPNT	/PUT IT IN STACK POINTER
	TAD	NUM260
	DCA	DATA+1
	TAD	NUM260
	DCA	DATA+2
	TAD	NUM260
	DCA	DATA+3

	TAD	DATPNT
	DCA	DATA	/SET DATA POINTER
	CMA CLL RTL
	DCA	COUNT	/SET UP ISZ LOOP
	TAD	NUM	/GETETH OUT NUMBER
NUMLOP,	CLL
	TAD I	STKPNT	/TAKE AWAY VALUE
	SNL
	JMP	.+3	/IF NEG, CHANGE TO POWER-1
	ISZ I	DATA	/TAKEN AWAY VAL, INCRE VALUE
	JMP	NUMLOP	/TAKE AWAY MORE
	DCA	NUM	/WE TOOK TOO MUCH
	TAD I	STKPNT	/ADD THAT VALUE BACK
	CIA
	TAD	NUM
	ISZ	DATA	/INCRE DATA TO NEXT CHAR
	ISZ	STKPNT	/INCRE STKPNT TO NEXT VALUE
	ISZ	COUNT	/ARE WE DONE?
	JMP	NUMLOP	/NOPE, GOWAN BACK!
	TAD	P4260	/THIS IS A ZERO, BUT IT IS
	DCA	DATA+4	/NEGATIVE, INDICATES END OF STACK

	TAD I	NUMOUT	/ARE WE TO SUPPRESS
	SMA CLA		/LEADING ZEROS?
	JMP	NUMPUT	/NO, GO OUTPUT
	TAD	DATPNT
	DCA	DATA
	CMA CLL RTL
	DCA	COUNT
NUMSUP,	TAD	NUM260
	CIA
	TAD I	DATA	/IF THIS IS A ZERO
	SZA CLA		/PUT A SPACE HERE
	JMP	NUMPUT	/IF NOT, DON'T SUPPRESS ANYMORE
	TAD	NUM240
	DCA I	DATA
	ISZ	DATA
	ISZ	COUNT	/IF THIS IS ALL ZERO NUMBER
	JMP	NUMSUP	/DON'T SUPPRESS THE LAST ONE

NUMPUT,	TAD I	NUMOUT	/FIGURE NUMBER
	AND	NUM7	/OF CHARS TO OUTPUT
	CIA
	TAD	OUTPNT
	DCA	17
	TAD I	17
	TLS
	SMA CLA
	JMP	.-3
	ISZ	NUMOUT
	JMP I	NUMOUT

/HERE IS ALL THE DATA NEEDED FOR THE ROUTINE

NUM260,	"0
NUM240,	" 
P4260,	4260
NUM7,	7
COUNT,	0
STKPNT,	0
NUM,	0
DECOCT,	DECSTK-OCTSTK
OCTPNT,	OCTSTK
DECIMA
DECSTK,	-1000	/-1000 DECIMAL
	-100	/-100 DECIMAL
	-10	/-10 DECIMAL
OCTAL
OCTSTK,	-1000	/-1000 OCTAL
	-100	/-100 OCTAL
	-10	/-10 OCTAL

DATPNT,	.+2
DATA,	.+1
	0	/THOUSANDS
	0	/HUNDREDS
	0	/TENS
	0	/ONES+4000
OUTPNT,	.-1




Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search