File SIMBKJ.PA (PAL assembler source file)

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



PAGE


/********************LADDER PREDICTOR*****************************




/CALL:	LADRPD
/	INPUT
/	INPUT PREC
/	OUTPUT
/	NR OF TAPS
/	SIGNAL DELAY LINE
/	COEFFICIENT STORE
/	COEFFICIENT PREC
/	COEFFICIENT ONE	/NR OF BITS AFTER POINT
/	INTEGRATOR1 STATES
/	INTEGRATOR2 STATES
/	INTEGRATOR TIME CONSTANT





LADRPD,	13


	COPY
	1
	LDTEM1


	COPY
	LDTEM1
	LDTEM2


	BLOUT

	GETAD
	5
	DCA LDSTOR

	GETAD
	6
	DCA LDA0S

	ACUM
	4
	CMA
	DCA LDCNT

	ACUM
	10
	CIA
	DCA LDPREC

	GETAD
	11
	DCA I LDST1P

	GETAD
	12
	DCA I LDST2P

LDLOOP,	ISZ LDCNT
	SKP
	JMP LDLOPF

	INBLIP


	DELAY
LDSTOR,	0
	LDTEM1
	LDTEM1
	

	BLJUMP
	LDPAGE


LDBACK,	COPY
	LDTEM7
LDA0S,	0


	MULTSG
	LDTEM1
	NNX14
	LDTEM7
	NNX14
	LDTEM3
	NNX14

	SCALSG
	LDTEM3
	NNX14
	LDPREC
	LDTEM3


	COMPLM
	LDTEM3
	LDTEM3

	MULTSG
	LDTEM2
	NNX14
	LDTEM7
	NNX14
	LDTEM4
	NNX14


	SCALSG
	LDTEM4
	NNX14
	LDPREC
	LDTEM4


	COMPLM
	LDTEM4
	LDTEM4

	ADDER
	LDTEM1
	NNX14
	LDTEM4
	NNX14
	ONE
	LDTEM1


	ADDER
	LDTEM2
	NNX14
	LDTEM3
	NNX14
	ONE
	LDTEM2


	BLOUT

	TAD LDSTOR
	TAD NN
	DCA LDSTOR

	TAD LDA0S
	TAD NN
	DCA LDA0S

	TAD I LDST1P
	TAD NN
	DCA I LDST1P

	TAD I LDST2P
	TAD NN
	DCA I LDST2P

	JMP LDLOOP


LDLOPF,	INBLIP

	COPY
	LDTEM2
	3

	BLEND


LDST1P,	LDST1
LDST2P,	LDST2
LDPREC,	0
LDCNT,	0
LDTEM1,	ZBLOCK N
LDTEM2,	ZBLOCK N
LDTEM3,	ZBLOCK N
LDTEM4,	ZBLOCK N
LDTEM5,	ZBLOCK N
LDTEM6,	ZBLOCK N
LDTEM7,	ZBLOCK N
LDLIM1,	7777
	7777
	7777
	7777
	3777
LDLIM2,	7777
	7777
	7777
	7777
	3777








LDPAGE,	ADDER
	LDTEM1
	NNX14
	LDTEM2
	NNX14
	ZERO
	LDTEM5


	MULTSG
	LDTEM5
	NNX14
	LDTEM5
	NNX14
	LDTEM5
	NNX14


	COMPLM
	LDTEM1
	LDTEM6


	ADDER
	LDTEM6
	NNX14
	LDTEM2
	NNX14
	ONE
	LDTEM6


	MULTSG
	LDTEM6
	NNX14
	LDTEM6
	NNX14
	LDTEM6
	NNX14


	ADDER
	LDTEM5
	NNX14
	LDTEM6
	NNX14
	ZERO
	LDTEM7


	SMIGTR
	LDTEM7
	NNX14
	LDTEM7
	LDLIM1
	13
	13
LDST1,	0


	COMPLM
	LDTEM6
	LDTEM6


	ADDER
	LDTEM5
	NNX14
	LDTEM6
	NNX14
	ONE
	LDTEM5


	SMIGTR
	LDTEM5
	NNX14
	LDTEM5
	LDLIM1
	13
	13
LDST2,	0


	SCALSG
	LDTEM5
	NNX14
	10
	LDTEM5


	DIVSG
	LDTEM5
	NNX14
	LDTEM7
	NNX14
	LDTEM7
	NNX14
	LDERR


LDCONT,	LIMIT
	LDTEM7
	NNX14
	LDLIM2
	LDTEM7

	BLJUMP
	LDBACK


LDERR,	COPY
	ZERO
	LDTEM7

	BLJUMP
	LDCONT







/********************LADDER RECEIVE END FILTER**********************



/CALL:	LADRRE
/	INPUT
/	INPUT PREC
/	OUTPUT
/	NR OF TAPS
/	SIGNAL DELAY LINE
/	COEFFICIENT STORE
/	COEFFICIENT PREC
/	COEFFICIENT ONE	/NR OF BITS AFTER POINT


PAGE



LADRRE,	10


	COPY
	1
	LDTEM2


	BLOUT

	GETAD
	5
	DCA RESIG2

	TAD RESIG2
	TAD NN
	DCA RESIG1

	TAD RESIG1
	DCA RESIG4

	GETAD
	6
	DCA REA01

	ACUM
	4
	CMA
	DCA RECNT

	TAD RECNT
	IAC
	DCA REA02	/TEM USE

READLP,	ISZ REA02
	SKP
	JMP READF
	TAD REA01
	TAD NN
	DCA REA01
	JMP READLP

READF,	TAD REA01
	DCA REA02


	ACUM
	10
	CIA
	DCA REPREC


	INBLIP

	BLOTNT
	REINIT


RELOOP,	ISZ RECNT
	SKP
	JMP RELOPF

	INBLIP


	MULTSG
RESIG1,	0		/READ POINTER
	NNX14
REA01,	0
	NNX14
	LDTEM3
	NNX14


	SCALSG
	LDTEM3
	NNX14
	REPREC
	LDTEM3


	ADDER
	LDTEM2
	NNX14
	LDTEM3
	NNX14
	ZERO
	LDTEM2


	MULTSG
	LDTEM2
	NNX14
REA02,	0
	NNX14
	LDTEM4
	NNX14


	SCALSG
	LDTEM4
	NNX14
	REPREC
	LDTEM4


	COMPLM
	LDTEM4
	LDTEM4


	ADDER
RESIG4,	0		/READ POINTER
	NNX14

LDTEM4 NNX14 ONE RESIG2, 0 /DEPOSIT POINTER BLOUT TAD RESIG1 DCA RESIG2 TAD RESIG1 TAD NN DCA RESIG1 TAD RESIG2 /DEPOSIT POINTER DCA RESIG3 TAD RESIG1 DCA RESIG4 TAD REA01 TAD WORDCT DCA REA01 TAD REA01 DCA REA02 JMP RELOOP RELOPF, INBLIP COPY LDTEM2 3 COPY LDTEM2 RESIG3, 0 BLEND REINIT, CLA TAD WORDCT DCA COUNT DCA I RESIG2 ISZ RESIG2 ISZ COUNT JMP .-3 ISZ RECNT JMP REINIT INEND REPREC, 0 RECNT, 0
PAGE /*******************SIMPLE INTEGRATOR*************************** /CALL: SMIGTR / INPUT / INPUT PREC / OUTPUT / STATE LIMIT /STATE*2^STATE POINT (MAX,MIN) / TIME CONSTANT /BINARY LOG OF ALPHA / STATE POINT /NR OF BITS RIGHT OF POINT IN STATE / STATE /LAST OUTPUT * 2^STATE POINT (N WORDS) SMIGTR, 7 BLOTNT IGRINT ACUM 5 SPA TYDER /TIME CONST. MUST BE POSITIVE CIA DCA IGRM5A ACUM 6 CIA DCA IGRM6A INBLIP SCALSG 7 NNX14 IGRM5A IGRTM1 COMPLM IGRTM1 IGRTM1 ADDER IGRTM1 NNX14 7 NNX14 ONE IGRTM1 SCALSG 1 2 6 IGRTM2 ADDER IGRTM1 NNX14 IGRTM2 NNX14 ZERO IGRTM1 LIMIT IGRTM1 NNX14 4 7 IGREND, SCALSG 7 NNX14 ZERO /OUTPUT=STATE PRECISION!!!! 3 BLEND IGRINT, INBLIP COPY ZERO 7 BLJUMP IGREND IGRTM1, ZBLOCK N IGRTM2, ZBLOCK N IGRM5A, 0 IGRM6A, 0
/***************** RECTIFIERS ************************ /CALL: HWRECT /HALF WAVE RECTIFIER / INPUT / INPUT PRECISION / OUTPUT /CALL: FWRECT /FULL WAVE RECTIFIER / INPUT / INPUT PRECISION / OUTPUT HWRECT, 3 BLOUT JMS RECTGT FWREND, JMS HWRSR INEND FWRECT, 3 BLOUT JMS RECTGT SNL JMP FWREND JMP RCTEND HWRSR, 0 CLA TAD WORDCT DCA COUNT HWROUT, SNL TAD I INPOI DCA I TM1POI ISZ INPOI ISZ TM1POI ISZ COUNT JMP HWROUT JMP I HWRSR RECTGT, 0 JMS ARGET1 TAD OUTPOI DCA TM1POI TAD INPOI DCA TM2POI JMS SIGNSR JMP I RECTGT SIGNSR, 0 CLL CLA CMA SGNLP1, TAD PRECIS TAD NM14 SPA JMP WRDFND DCA PRECIS ISZ TM2POI JMP SGNLP1 WRDFND, DCA PRECIS TAD I TM2POI SGNLP2, RAL ISZ PRECIS JMP SGNLP2 CLA JMP I SIGNSR
PAGE /*************** SWITCH ************************* /CALL: SWTCHI / INPUT1 / INPUT2 / OUTPUT / CONTROL SIGNAL / PRECISION OF CONTROL SIGNAL /CALL: SWTCHO / INPUT / OUTPUT1 / OUTPUT2 / CONTROL SIGNAL / PRECISION OF CONTROL SIGNAL /IF CONTROL SIGNAL POSITIVE SIGNAL 1 AND 3 ARE CONNECTED SWTCHI, 5 BLOUT CLA CLL IAC RAL /AC_2 DCA SWARG1 CLL CML CLA IAC RAL /AC_3 DCA SWARG2 SWSTRT, JMS SIGNGT SZL CLA JMP SW2 INBLIP COPY 1 3 BLEND SW2, INBLIP COPY SWARG1, 0 SWARG2, 0 BLEND SIGNGT, 0 GETAD 4 DCA TM2POI ACUM 5 DCA PRECIS JMS SIGNSR JMP I SIGNGT SWTCHO, 5 BLOUT CLA IAC /AC_1 DCA SWARG1 CLA CLL IAC RAL /AC_2 DCA SWARG2 JMP SWSTRT
/************ VERKNUEPFUNGEN ******************** /CALL: INCLOR / INPUT1 / INPUT2 / OUTPUT /CALL: EXCLOR / INPUT1 / INPUT2 / OUTPUT /CALL: LOGAND / INPUT1 / INPUT2 / OUTPUT INCLOR, 3 BLOUT JMS ORSUB CMA DCA INPOI TAD I TM2POI CMA AND INPOI CMA JMP ORSBRT EXCLOR, 3 BLOUT JMS ORSUB AND I TM2POI CLL RAL CIA TAD I TM1POI TAD I TM2POI JMP ORSBRT LOGAND, 3 BLOUT JMS ORSUB AND I TM2POI JMS ORSBRT ORSUB, 0 TAD WORDCT DCA COUNT GETAD 1 DCA TM1POI GETAD 2 DCA TM2POI GETAD 3 DCA TM3POI INCLLP, TAD I TM1POI JMP I ORSUB ORSBRT, DCA I TM3POI ISZ TM1POI ISZ TM2POI ISZ TM3POI ISZ COUNT JMP INCLLP INEND
/******************* CLEANER FOR RESIDUAL *********************** /CALL: CLEANR / INPUT / OUTPUT /14 BITS MAX!!!!!!!!!!! / OUTPUT TAP / CLEAR TAP / STATE /1.WORD: REGISTER / /2. WORD: COUNT CLEANR, 5 BLOUT GETAD 5 DCA TM1POI TAD TM1POI IAC DCA TM2POI INBLIP BLOTNT CLINIT ACUM 1 SPA CLA CLL CMA RAR CLL CIA TAD I TM1POI SMA CLA JMP CLREJ ACUM 1 CLINIT, DCA I TM1POI DCA I TM2POI PUT 2 INEND CLREJ, ISZ I TM2POI NOP ACUM 3 CIA TAD I TM2POI CLA SNA TAD I TM1POI PUT 2 ACUM 4 CIA TAD I TM2POI SNA CLA DCA I TM1POI INEND
PAGE /******* THRESHOLD-COMPARES INPUT WITH AV. OF PRECEEDING PULSES ***** /CALL: TRSHLD / INPUT / OUTPUT / THRESHOLD K /THRESHOLD AT 2^K*AVERAGE / NR OF TAPS /NR MUST BE POWER OF 2 / DELAY LINE /ADDRESS OF STORAGE AREA / STATE /SHIFTREG POINTER TRSHLD, 6 BLOTNT TRNOT0 GETAD 1 DCA TM1POI JMS SZSIG JMP TRNOT0 TRZERO, INBLIP COPY ZERO 2 BLEND TRNOT0, INBLIP COPY ZERO TRTEM1 SHFTRG TRSHFT 1 BLOUT ACUM 4 CIA DCA TRCNT DCA TRTAPN CAM TAD TRCNT CIA NMI SCA CLA TAD TRM12 ACUM 3 DCA TRSCAL TRLOOP, ISZ TRTAPN INBLIP TAP TRTAPN TRTEM2 ADDER TRTEM1 NNX14 TRTEM2 NNX14 ZERO TRTEM1 BLOUT ISZ TRCNT JMP TRLOOP INBLIP SCALSG TRTEM1 NNX14 TRSCAL TRTEM1 COMPLM TRTEM1 TRTEM2 ADDER 1 NNX14 TRTEM2 NNX14 ONE TRTEM2 HWRECT TRTEM2 NNX14 TRTEM2 BLOUT TAD TRTM2P DCA TM1POI JMS SZSIG JMP TROUT JMP TRZERO TROUT, INBLIP COPY 1 2 BLEND TRTEM1, ZBLOCK N TRTEM2, ZBLOCK N TRSHFT, 5 4 CN 6 TRCNT, 0 TRSCAL, 0 TRTAPN, 0 TRTM2P, TRTEM2 TRM12, -12 SZSIG, 0 /SKP ON ZERO SIGNAL CLA /TM1POI POINTS TO SIGNAL TAD WORDCT DCA COUNT SKPLOP, TAD I TM1POI SZA CLA JMP I SZSIG ISZ TM1POI ISZ COUNT JMP SKPLOP ISZ SZSIG JMP I SZSIG
/**************** EXCITR ****************** /BLENDS NOISE IN GRADUALLY AT END OF VOICED SOUNDS /CALL: EXCTR / INPUT1 /PITCH PULSES / INPUT1 PRECISION / INPUT2 /NOISE / INPUT2 PRECISION / OUTPUT / STATE / STATE PRECISION / DECAY PARAMETER /NEGATIVE!! EXCITR, 10 SCALSG /UPDATE STATE 6 7 10 SLTM1 COMPLM SLTM1 SLTM1 ADDER SLTM1 NNX14 6 NNX14 ONE 6 BLOTNT SLINIT ACUM /SHIFT INPUT SIGNAL 2 CIA ACUM 7 DCA SLSHFT TAD SLSHFT CIA DCA SLSFT2 INBLIP HWRECT 1 2 SLTM1 SCALSG SLTM1 2 SLSHFT SLTM1 COMPLM 6 SLTM2 ADDER /PITCH - STATE SLTM1 NNX14 SLTM2 NNX14 ONE SLTM2 SWTCHO SLTM1 SLTM1 6 SLTM2 7 FWRECT 3 4 SLTM2 /NOISE COMPLM 6 SLTM1 SCALSG SLTM1 7 SLSFT2 SLTM1 ADDER SLTM1 NNX14 SLTM2 NNX14 ONE SLTM1 HWRECT SLTM1 7 SLTM3 COMPLM SLTM3 /SLIDING NOISE SLTM2 /-SLIDING NOISE ADDER SLTM2 NNX14 ONE NNX14 ZERO SLTM2 SWTCHI SLTM3 SLTM2 5 3 4 BLEND SLINIT, INBLIP COPY ZERO 6 COPY ZERO 5 BLEND SLTM1, ZBLOCK N SLSFT2, 0 SLTM2, ZBLOCK N SLTM3, ZBLOCK N SLSHFT, 0
/************** GABEL FUER PROGRAMM ******************* /CALL: GABEL / WEG1 /AUCH BEI INITIALISIERUNG / WEG2 / STATE GABEL, 3 BLOTNT GBINIT ACUM 3 GBDO, SNA CLA CMA DCA TM1POI TAD TM1POI PUT 3 TAD TM1POI SMA CLA JMP GBWAY2 INBLIP BLJUMP 1 BLEND GBWAY2, INBLIP BLJUMP 2 BLEND GBINIT, CLA JMP GBDO PAGE /*************** ZERO CROSSINGS ****************** /CALL: ZCROSS / INPUT / INPUT PRECISION / OUTPUT /0 IF NR OF ZERO CROSS HIGHER / /-1 IF NR. SMALLER / INTEGRATION TIME /NR OF SAMPLES / NR OF ZERO CROSSINGS / STATE /ZBLOCK ^4 ZCROSS, 6 BLOUT GETAD 6 DCA VVCNT1 /SAMPLE COUNT TAD VVCNT1 IAC DCA VVCNT2 /ZERO CROSSINGS COUNT TAD VVCNT2 IAC DCA VVLIN /LAST INPUT SIGN TAD VVLIN IAC DCA VVLOUT /LAST OUTPUT INBLIP BLOTNT VVINIT BLOUT JMS RECTGT RAR CLA DCA VVTEM TAD VVTEM TAD I VVLIN SPA CLA ISZ I VVCNT2 NOP TAD VVTEM DCA I VVLIN ISZ I VVCNT1 JMP VVOVER ACUM 5 CMA CLL TAD I VVCNT2 SNL CLA VVEND, CMA DCA I VVLOUT ACUM 4 CIA DCA I VVCNT1 DCA I VVCNT2 VVOVER, TAD I VVLOUT PUT 3 INEND VVINIT, CLA DCA I VVLIN JMP VVEND VVTEM, 0 VVCNT1, 0 VVCNT2, 0 VVLIN, 0 VVLOUT, 0 /********** MOVE TABLE OF SIGNALS ****************** /CALL: MOVE / INPUT TABLE / FIELD OF INPUT TABLE / LENGTH OF TABLE / CONTROL SIGNA /MOVE FOR POS CONTROL SIGNAL / PREC OF CONTROL SIGNAL / OUTPUT TABLE / FIELD OF OUTPUT TABLE MOVE, 7 BLOTNT MVINIT JMS SIGNGT SZL CLA INEND MVINIT, ACUM 3 CIA DCA TM3POI GETAD 1 DCA MVFROM GETAD 6 DCA MVTO ACUM 2 DCA MVFLD1 ACUM 7 DCA MVFLD2 MVNXT, JMS SIGMOV MVFROM, 0 MVFLD1, 0 MVTO, 0 MVFLD2, 0 ISZ TM3POI JMP MVNXT INEND SIGMOV, 0 CLA TAD I SIGMOV ISZ SIGMOV DCA MVFROM TAD I SIGMOV ISZ SIGMOV DCA MVINS1 TAD I SIGMOV ISZ SIGMOV DCA MVTO TAD I SIGMOV ISZ SIGMOV DCA MVINS2 TAD WORDCT DCA COUNT MVINS1, HLT TAD I MVFROM MVINS2, HLT DCA I MVTO ISZ MVFROM ISZ MVTO ISZ COUNT JMP MVINS1 CDF 10 JMP I SIGMOV PAGE /*********** SINGLE PRECISION COUNT ****************** /CALL: SPCNT / OUTPUT / PRESET VALUE / STATE /SINGLE WORD SPCNT, 3 BLOTNT SCEND ACUM 3 SMA JMP SCOVER IAC SCEND, DCA SCTEM TAD SCTEM PUT 3 INBLIP PRESGN SCTEM CONS14 1 BLEND SCOVER, ACUM 2 CIA JMP SCEND CONS14, 14 SCTEM, 0



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