File SGIN2.PA (PAL assembler source file)

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

/      SIGIN3          JSB/JG/MI 23.4.76

/INPUT SIGNAL ON DISK
/TIMING BY REAL TIME CLOCK
/FILE ORGANISATION BY PS 8
/OPTION =N DEFINES DESIRED LENGTH OF FILE IN OCT
/IF NO =N IS GIVEN THE MAX AVAILABLE FILE LENGTH WILL
/BE ALLOCATED
/IF A FILE LONGER THAN THE MAX AVAILABLE FILE LENGTH
/IS SPECIFIED BY =N NO ERROR DIAGNISTIC IS
/GIVEN BUT THE PROGRAMM WILL RETURN TO THE COMMAND
/DECODER FOR ANOTHER FILE SPECIFIACTION
/RATE DEFINES THE S//AMPLING RATE


FIELD 1

PAGE1=2600
AUTO=10

*PAGE1

SIGIN,  SWAB
	CAM
	
	TAD (7606
	DCA ARG1

	CLA IAC
	JMS I (7700	/ENTER
	3
ARG1,	0
ARG2,	0                   /NAME OR -LENGTH
	JMP ERROR


	TLS
	TAD (JMP ENTRY2+1
	DCA SIGIN+1

ENTRY2,	JMP SIGIN
	CAM
	DCA ERFLAG
	DCA BFSEMP
	DCA TOTAL

	CMA			/CLEAR BUFFER AREA
	TAD BFST
	DCA AUTO
	TAD M6000
	DCA CLERCT
	CDF 0
	DCA I AUTO
	ISZ CLERCT
	JMP .-2
	CDF 10

	TAD ARG1              /NEXT MULTIPLE OF FOUR
	CIA
	AND (3
	DCA DSHIFT


	DCLS
	TAD DSHIFT		/SET UP WC,CA FOR INIT XFER
	SNA
	JMP NOSHFT
	SHL
	10
	CIA
	DLWC
	CMA
	TAD BFST
	DLCA
	TAD COMWRD
	SKP
NOSHFT,	TAD COMWD2		/SEARCH TRACK ONLY
	DLDC
	TAD ARG1		/CLEAR 1.BLOCKS ON DISC
	DLDW
	DSKD
	JMP .-1
	DSKE
	JMP .+3
	ISZ ERFLAG
	DCLS

	TAD DSHIFT            /STARTING ADDRESS ON DISK
	TAD ARG1
	DCA CURBLK

	TAD DSHIFT         /CHECK FILE LENGTH
	TAD ARG2
	DCA MMXLEN
	CLL CML CMA
	TAD MMXLEN
	TAD I (7646           /LENGTH BY  =N
	SNL CLA
	JMP .+3
	JMS TPLNGS		/TYPE AVAILABLE FILE LENGTH
	JMP SIGIN

	TAD I (7646
	CIA
	SNA
	TAD MMXLEN
	CIA
	LSR
	2
	CIA
	DCA TFTOT



	TAD I RATEP
	CIA
        CLAB
        CLA
        TAD ENABLE
	CLOE
	CAM


        TAD  RETRNP      /SET UP RETURN ADDR IN SAMHAN
        DCA SMHNSR      /FOR INIT OF SAMHAN

        TAD COMWRD
        DLDC

        TAD BFST          /SET UP AUTO FOR INIT PHASE
        DCA AUTO

        TAD GAIN
        ADSC
	CLSA
        CLA

        JMP SMHNIN




CLERCT, DSHIFT, 0 MMXLEN, 0 ERFLAG, 0 RATE, 200 /SAMPLING RATE ENABLE, 5640 RETRNP, INTDON COMWRD, 0 COMWD2, 200 GAIN, 0 /ADC SENSITIVITY AND CHANNEL 0 M6000, -6000 TEM, RATEP, 2145 /IN SIGOUT ERROR, TDC "R TDC "E TDC "C TDC "? TOOLGO
*PAGE1+200 SAMHAN=JMS I . SMHNSR LOP1, TAD SYSRES /CHECK DISC ADDRESS CIA CLL TAD CURBLK SNL HLT SAMHAN TAD CURBLK DLDW 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 TOTAL ISZ TFTOT SKP JMP DUN 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 LAS /CHECK SR BIT 11 RAR SNL JMP DUN SAMHAN KSF /INTERRUPT IF KEYBOARD STRUCK SKP TOOLSR 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 CURBLK, 0 NRBLKS, 4 TFTOT, 0 /CNT FOR TOTAL NR OF BUFFERS TFBFCT, 0 SYSRES, 400 BFST, 1000 TFBFNX, 0 /ADDRES OF NEXT BUF TO BE TRANSFERRED BFNUM, 3 /NR OF BUFFERS IN CORE BFLNG, 2000 BFSEMP, 0 TOTAL, 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 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 INTDON, CLA /SWITCH FILTER TAD SWWRD SO3 JMS TPLNGS TSTKB, LAS RAR SNL CLA JMP CHCKUP TOOLSR JMS PPM JMP TSTKB CHCKUP, LAS RAR SZL CLA JMP CLCKGO TOOLSR JMS PPM JMP CHCKUP CLCKGO, CLA CMA CLZE CAM TAD ENABLE CLOE CLSA CLA JMP JGLIN DUN, CLA TAD ERFLAG SNA JMP NOERR TDC "E TDC "= TAD ERFLAG TOCT NOERR, CAM TAD TOTAL SHL 2 CIA DCA I PLAYP1 /FILE LENGTH FOR PLAY TAD ARG1 DCA I PLAYP2 /STARTING ADDRESS O DISK TAD (NOERR DCA I PLAYP3 /RETURN TO SIGIN AFTER PLAYING TDC "C TDC "L TDC "O TDC "S TDC "E TDC "? KSF JMP .-1 KRS CHECK "Y JMP CLOSE DCA ACSAVE LINE TAD ACSAVE TOOLSR TOOLGO PLAYP1, 2011 /IN SIGOUT ARG2 PLAYP2, 2010 /ARG1 PLAYP3, 2445 /PLAYP ACSAVE, 0 SWWRD, 1 CLOSE, TCHAR KCC CAM TAD TOTAL SHL 2 DCA LENGTH IAC /DEC NR 1 JMS I (7700 /CLOSE 4 7606 LENGTH, 0 HLT END, CIF CDF 0 JMP I .+1 7600
*PAGE1+600 PPM, 0 /DISPLAY SIG AMPLITUDE IN MQ CLA CMA CLZE CLA TAD PPMCLE CLOE CLSA CLSK JMP .-1 ADSF JMP .-1 ADRB SPA CMA DCA SAMPLE TAD STATE CIA TAD SAMPLE SPA CLA JMP SMALL TAD SAMPLE DCA STATE SMALL, TAD STATE IAC SPA CLA JMP OVLOAD TAD STATE NMI TAD (1000 AND (6000 DCA SAMPLE /TEM USE SCA DCA SHIFT TAD SAMPLE LSR SHIFT, 0 MQL JMP UPDATE OVLOAD, CMA MQL ISZ CNT JMP .-3 UPDATE, TAD STATE TAD DECR DCA STATE JMP I PPM STATE, 0 SAMPLE, 0 DECR, -1 PPMCLE, 5500 GTSMSR, 0 ADSF JMP .-1 CLA CLSK JMP OK TSF SKP TLS CLSA CLA OK, ADRB CLSK JMP .-1 CDF 0 DCA I AUTO CDF 10 CLSA CLA JMP I GTSMSR CNT, TPLNGS, 0 TDC "N TDC "= TAD MMXLEN CIA TOCT JMP I TPLNGS $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$



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