File HIST.PA (PAL assembler source file)

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

/1 HISTOGRAM PROGRAM V1

	IFNDEF	HSTGRM	<HSTGRM=1000>	/START OF HISTOGRAM TABLE
	IFNDEF	HSTFLD	<HSTFLD=10>	/FIELD OF HISTOGRAM TABLE
	IFNDEF	HSTRES	<HSTRES=3>	/RESOLUTION FACTOR
					/ACTUAL RESOLUTION WILL BE
					/2**(HSTRES+3)
	IFNDEF	HSTLOW	<HSTLOW=0>	/LOWEST MEMORY ADDRESS%10
	IFNDEF	HSTHGH	<HSTHGH=HGHFLD^100+777>	/HIGHEST "
	IFNDEF	HSTLOC	<HSTLOC=4000>	/START OF HISTOGRAM PROGRAM
	IFNDEF	HSTCUR	<HSTCUR=10>	/FIELD OF HISTOGRAM PROGRAM
	IFNDEF	HSTGRP	<HSTGRP=3>	/NUMBER OF ITEMS IN A GROUP
	HP1=	HSTGRP+1
	IFNDEF	HSTLNS	<HSTLNS=70%HP1^HSTGRP>	/NUMBER OF GROUPS PER PAGE
	IFNDEF	HSTSIZ	<HSTSIZ=170>	/NUMBER OF COLUMNS WIDE IN HSTLOG
	IFNDEF	LPT	<LPT=TTY>
	IFNDEF	HSTLOG	<HSTLOG=LPT>	/LOG DEVICE FOR HISTOGRAM
	IFNDEF	HSTFLG	<HSTFLG=HSTLOC>

	S=HSTHGH-HSTLOW+1
	T=HSTRES
	IFNZRO T <S=S%2;T=T-1>
	IFNZRO T <S=S%2;T=T-1>
	IFNZRO T <S=S%2;T=T-1>
	IFNZRO T <S=S%2;T=T-1>
	IFNZRO T <S=S%2;T=T-1>
	IFNZRO T <S=S%2;T=T-1>
	IFNZRO T <S=S%2;T=T-1>
	IFNZRO T <S=S%2;T=T-1>

	TASK=	HIST
	INIWT=	0
	CUR=	HSTCUR

FIELD CUR%10 *HSTLOC HSTFLG, 0 START, TAD (HSTLOW /ONCE-ONLY CODE SKP HIGH, CLL RAR LINCNT, ISZ COUNT GRPCNT, JMP .-2 LOW, DCA LOW ADDR, TAD (-HSTRES-1 HSTPTR, DCA COUNT DIF, TAD (HSTHGH+1 CNTR, SKP CLL RAR ISZ COUNT JMP .-2 DCA HIGH TAD (-HSTRES-1 DCA COUNT STL RAL ISZ COUNT JMP .-2 DCA DIF GO, CLA IAC DCA HSTFLG CAL WAITE HSTFLG JMS I (NEWPAG TAD (HSTGRM DCA HSTPTR TAD (-HSTGRP DCA GRPCNT TAD LOW DCA ADDR TAD (-S DCA CNTR JMS I (TSTGRP LOOP, CDF HSTFLD TAD I HSTPTR /GET COUNT CDF CUR DCA COUNT TAD ADDR JMS I (NUM /PRINT NUMBER "0 TAD COUNT JMS I (NUM /PRINT USAGE COUNT " TAD COUNT /DIVIDE BY 32 RTR RTR RAR AND (177 TAD (-HSTSIZ+12 SMA CLA /DON'T LET SIZE GET TOO BIG TAD (HSTSIZ-12 SNA JMP NOSTAR /NO USAGE CIA DCA COUNT STAR, TAD ("* JMS I (PUT ISZ COUNT JMP STAR NOSTAR, JMS CRLF CDF HSTFLD DCA I HSTPTR CDF CUR /ZERO BUFFER ISZ GRPCNT JMP OVER JMS CRLF TAD (-HSTGRP DCA GRPCNT JMS I (TSTGRP OVER, ISZ HSTPTR TAD ADDR TAD DIF DCA ADDR ISZ LINCNT SKP JMS I (NEWPAG ISZ CNTR JMP LOOP DONE, CAL SENDW HSTLOG FORMSG JMP GO
CRLF, 0 CAL SENDW HSTLOG CRMSG JMP I CRLF COUNT, -HSTRES-1 PAGE
TPTR, 0 TSTGRP, 0 IN, TAD I (HSTPTR DCA TPTR CDF HSTFLD TAD I TPTR ISZ TPTR SZA CLA JMP LV TAD I TPTR ISZ TPTR SZA CLA JMP LV TAD I TPTR ISZ TPTR SZA CLA JMP LV TAD I TPTR ISZ TPTR SZA CLA JMP LV CDF CUR CLL TAD I (CNTR TAD (HSTGRP DCA I (CNTR SZL JMP I (DONE TAD I (HSTPTR TAD (HSTGRP DCA I (HSTPTR TAD (-HSTGRP DCA TEMK TAD I (DIF ISZ TEMK JMP .-2 TAD I (ADDR DCA I (ADDR JMP IN LV, CDF CUR JMP I TSTGRP TEMK, 0 PAGE
NEWPAG, 0 CAL SENDW HSTLOG FORMSG /PRINT FORM FEED CAL SENDW HSTLOG HDRMSG /PRINT HEADER JMS I (CRLF CAL SENDW HSTLOG HDR2 JMS I (CRLF TAD (-HSTLNS DCA I (LINCNT JMP I NEWPAG
FORMSG, ZBLOCK 3 NOPACK 0 214 0 HDRMSG, ZBLOCK 3 0 0 TEXT " RTS/8 HISTOGRAM PROGRAM V1" HDR2, ZBLOCK 3 0 0 TEXT / ADDR HITS/ CRMSG, ZBLOCK 3 0 0 0
NUM, 0 DCA TEMP TAD (-4 DCA KNT LUP, TAD TEMP RTL RTL AND (7 TAD ("0 JMS PUT TAD TEMP RTL RAL DCA TEMP ISZ KNT JMP LUP TAD I NUM /GET PADDING CHARACTER JMS PUT TAD (" JMS PUT JMP I NUM KNT, 0 TEMP, 0
PUT, 0 DCA CHAR CAL SENDW HSTLOG CHRMSG JMP I PUT CHRMSG, ZBLOCK 3 NOPACK+NOCRLF 0 CHAR, 0 0 PAGE FIELD HSTFLD%10 *HSTGRM ZBLOCK S X=.



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