File SGOUT2.PA (PAL assembler source file)

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






/       SIGOUT       JG /JSB/MI 23.4.76

/OUTPUT SIGNAL FROM DISC TO DAC 1
/TIMING BY REAL TIME CLOCK
/FILE ORGANISATION BY PS 8
/RATE DEFINES THE SAMPLING RATE
/BLKBEG DEFINES STARTING BLOCK FOR PLAY  TYPE:B/
/FLENGT DEFINES THE LENGTH OF THE PLAY   TYPE: F/



PAGE1=2000

FIELD 1

*PAGE1

AGAIN,	SWAB
	CAM
	TAD (7606
	DCA ARG1
	DCA ARG2

	CLA IAC		/DEV NR 1
	JMS I (7700           /LOOK UP
	2
ARG1,	0
ARG2,	0                   /NAME OR -LENGTH
	JMP ERROR3


	TAD SWWRD	/SWITCH FILTER
	CO3
	CLA

TSTKB,  LAS
        RAR
        SNL CLA
        JMP CHCKUP
        TOOLSR
        JMP TSTKB
CHCKUP, LAS
        RAR
        SZL CLA
        JMP PLAY
        TOOLSR
        JMP CHCKUP


PLAY,	CAM
	TAD ARG1              /NEXT MULTIPLE OF FOUR
	TAD BLKBEG
	CIA
	AND (3
	DCA DSHIFT

	TAD DSHIFT	
	TAD BLKBEG
	TAD ARG2
	SMA	
	JMP ERROR5
	DCA LGTEM	/WHOLE FILELENGTH FROM BLKBEG

	TAD DSHIFT            /STARTING ADDRESS ON DISK
	TAD ARG1
	TAD BLKBEG
	DCA DSTART

	TAD FLENGT	/CHECK FILE LENGTH
	SNA
	JMP DIV4	/NO FLENGT SPEZIFIED
	TAD LGTEM	/CHECK IF FLENGT GT. LGTEM
	SMA CLA
	JMP DIV4
	TAD FLENGT
	JMP .+3
DIV4,	TAD LGTEM
	CIA
	LSR
	2
	CIA
	DCA TFTOT

	TAD TFTOT
	SMA
	JMP ERROR4	/FLENGT LESS THAN 4
	DCA SBFTCT

	DCA ERFLAG
	TAD BFNUM
	DCA BFSEMP



TAD RATE /SET UP SAMPLING RATE CIA CLAB CLA TAD ENABLE CLOE CAM TAD NRBLKS /WORK OUT NR OF SAMPLES IN 1 BUF SHL 10 DCA BFLNG TAD DSTART DCA CURBLK TAD RETRNP /SET UP RETURN ADDR IN SAMHAN DCA SAMHNP TAD COMWRD DLDC TAD BFST /SET UP AUTO FOR START UP PHASE DCA AUTO JMP JGLIN FILLSR, 0 CLA TAD BFSEMP SZA CLA JMP I FILLSR TAD SMHNA /RESTORE SMHNPTR DCA SAMHNP TAD FILLSR DCA SMHNSR /TRANSFER SR RETURN ADDRESS INTDON, TLS TDC "I JMP SMHNIN
DSHIFT, 0 MMXLEN, 0 ERFLAG, 0 BLKBEG, 0 /START BLOCK WITHIN FILE FLENGT, 0 /LENGTH OF PLAY RATE, 200 /SAMPLING RATE ENABLE, 5640 SMHNA, SMHNSR RETRNP, FILLSR COMWRD, 0 CMWRD1, 200 DSTART, 0 SWWRD, 1 LGTEM, 0
*PAGE1+200 SAMHAN=JMS I . SAMHNP, SMHNSR LOP1, TAD CURBLK DLDR SAMHAN TAD NRBLKS /UPDATE DISC ADDRESS TAD CURBLK DCA CURBLK SAMHAN /WAIT FOR END OF TF DSKD JMP .-2 DSKE /TF ERROR ? JMP TFOK ISZ ERFLAG DCLS TFOK, SAMHAN ISZ TFTOT JMP NOEND TAD NRBLKS CIA TAD CURBLK DCA CURBLK SAMHAN CMA DCA TFTOT NOEND, SAMHAN ISZ TFBFCT JMP TIN1
JGLIN, TAD BFST DCA TFBFNX SAMHAN TAD BFNUM CIA DCA TFBFCT JMP TIN2 TIN1, TAD TFBFNX /UPDATE TRASFERBUF NEXT TAD BFLNG DCA TFBFNX TIN2, SAMHAN TAD BFLNG /SET UP WC AND CA FOR TRANSFER CIA DLWC SAMHAN CMA TAD TFBFNX DLCA SAMHAN KSF SKP /END TRANSFER IF KEYBOARD STRUCK TOOLGO TTOCLS, SAMHAN TAD BFSEMP /ANYTHING TO TRANSFER? SNA CLA JMP TTOCLS /NO, WAIT SAMHAN CLA CLL CMA /DECREMENT BUFSEMP TAD BFSEMP DCA BFSEMP /BFSEMP SHOULD BE CALLED BUFSFUL!!! SAMHAN JMP LOP1 SBFTCT, 0 CURBLK, 0 NRBLKS, 4 TFTOT, 0 /CNT FOR TOTAL NR OF BUFFERS TFBFCT, 0 SYSRES, 100 /PROTECT FILES PN DISC BFST, 1000 /BOTTOM OF BUFFER AREA TFBFNX, 0 /ADDRES OF NEXT BUF TO BE TRANSFERRED BFNUM, 3 /NR OF BUFFERS IN CORE BFLNG, 0 BFSEMP, 0 GETSAM=JMS I . GTSMSR SMHNSR, 0 /HANDLES INPUT SAMPLES GETSAM ISZ SAMCNT /THIS INPUT BUF FULL? JMP I SMHNSR /NO, RETURN TO MAIN PROGRAMM GETSAM CLA IAC /FREE BUF AVAILABLE? TAD BFSEMP CMA TAD BFNUM SMA SZA CLA JMP IN3 TDC /NO, TYPE DIAGNOSTIC "O JMP IN2 IN3, GETSAM ISZ BFSEMP /UPDATE BFSFULL!!! SKP HLT /CATASTROPHIC HLT ISZ SBFTCT SKP JMP DUN GETSAM ISZ SGBFCT /NEXT SIGNAL BUF IN LINE? JMP IN1 /YES SMHNIN, TAD BFST /START FOR INIT DCA SGBFNX /NEXT SIG BUF STARTS FROM BOTTOM OF GETSAM TAD BFNUM CIA DCA SGBFCT JMP IN2 IN1, TAD SGBFNX /NEXT SIG BUF IS IN LINE TAD BFLNG DCA SGBFNX GETSAM IN2, GETSAM TAD BFLNG CIA TAD EXTRAS DCA SAMCNT GETSAM CMA /AUTOINDECREG FOR GETSAM UPDATED TAD SGBFNX DCA AUTO JMP I SMHNSR SAMCNT, 0 SGBFNX, 0 SGBFCT, 0 EXTRAS, 6 *PAGE1+400 START, CAF CAM DCA BLKBEG DCA FLENGT JMS I (7700 /DECODE 5 5200 /SPECIAL MODE TLS TAD I (7611 AND (7700 CHECK 5200 /CHECK FOR * EXTENSION JMP STAR SHL 6 AND (7700 CHECK 5200 SKP TOOLGO STAR, TDC 4252 /"*" "? JMP START DUN, DSKD /WAIT FOR END OF TF JMP .-1 CLA TAD ERFLAG SNA JMP END TDC "E TDC "= TAD ERFLAG TOCT END, JMP I PLAYP PLAYP, CHCKUP ERROR3, TLS TDC "I TDC "P TDC "T TDC "? JMP START ERROR4, TLS TDC "F TDC "< TDC "4 JMP FRAG ERROR5, CLA TLS TDC "B TDC "> TDC "F TDC "I TDC "L TDC "E FRAG, TDC "? TOOLGO AUTO=10 GTSMSR, 0 CLA CLSK JMP OK TSF SKP TLS CLSA CLA OK, CLSK JMP .-1 CDF 0 TAD I AUTO CDF 10 DAC1 CLSA CLA JMP I GTSMSR $$$$$$$$$$$$$$$$$$$$$



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