File SIMBKK.2

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



FIELD 1


*F1NEXT

PAGE




/*************** PITCH CODEC  *******************


/CALL:	PITCOD
/	PITCH PULSES IN
/	BITS OUT


/CALL:	PITDCD
/	BITS IN
/	PULSES OUT



PITCOD,	2

	BLOTNT
	PCDINT

	JMS CLOCK
	JMS TIMER
	JMS PLSCHK
	JMS SERDO

	INEND


CLOCK,	0
	CLA
	ISZ SUBCNT
	JMP NULNUL

	TAD SPEED1
	CIA
	DCA SUBCNT

	CLA IAC
	DCA FSTCLK

	ISZ MNCNT
	JMP ONENUL

	TAD SPEED2
	CIA
	DCA MNCNT
	IAC
	JMP ONEONE

NULNUL,	DCA FSTCLK
ONEONE,
ONENUL,	DCA SLWCLK

	JMP I CLOCK

FSTCLK,	0
SLWCLK,	0
SPEED1,	1
SPEED2,	10
SUBCNT,	0
MNCNT,	0


PLSCHK,	0
	CLA
	TAD SLWCLK
	SZA CLA
	DCA PULSE	/CLEAR FF
	ACUM
	1
	CDF 10
	SPA SNA CLA
	JMP I PLSCHK
	CLA IAC
	DCA PULSE	/SET FLIPFLOP
	JMP I PLSCHK


PULSE,	0



TIMER,	0
	CLA
	TAD FSTCLK
	SNA  CLA
	JMP NULOUT

	TAD PULSE
	SZA CLA
	ISZ TIMERC
	NOP

	TAD SLWCLK
	SNA CLA
	JMP NULOUT
	TAD TIMERC
	DCA PAROUT
	DCA TIMERC
	JMP I TIMER
NULOUT,	DCA PAROUT
	JMP I TIMER

TIMERC,	0
PAROUT,	0


SERDO,	0
	CLA
	TAD OUTFLG
	SZA CLA
	JMP FLGUPS

	TAD PAROUT
	SNA CLA
	JMP BITNUL

	TAD NBITS
	CIA
	DCA OUTFLG

	CLA CLL CMA
	TAD PAROUT
	RAL
	DCA SEROUT

FLGUPS,	TAD SLWCLK
	SNA CLA
	JMP BITNUL

	ISZ OUTFLG
	NOP
	TAD SEROUT
	RAR
	DCA SEROUT
	SZL
	CLA IAC
BITNUL,	PUT
	2
	CDF 10
	JMP I SERDO

OUTFLG,	0
NBITS,	4
SEROUT,	0


PCDINT,	CLA CMA
	DCA SUBCNT
	CLA CMA
	DCA MNCNT
	DCA PULSE
	DCA TIMERC
	DCA OUTFLG

	INEND


PAGE



PITDCD,	2

	BLOTNT
	PDCINT

	JMS PARDO
	JMS PLSGEN

	INEND



PARDO,	0
	CLA CLL
	TAD SLWCLK
	SNA SPA CLA
	JMP INOVER

	TAD INFLG
	SZA CLA
	JMP FLGUPR

	TAD MN14
	TAD NBITS
	DCA INTEM
	TAD SERIN
INLOOP,	CLL
	RAR
	ISZ INTEM
	JMP INLOOP
	DCA INOUT
	DCA SERIN
	ACUM
	1
	CDF 10
	SNA CLA
	JMP I PARDO

	TAD NBITS
	CIA
	DCA INFLG

FLGUPR,	ISZ INFLG
	NOP
	CLA CLL
	ACUM
	1
	RAR
	TAD SERIN
	RAR
	DCA SERIN
	JMP I PARDO

INOVER,	DCA INOUT
	JMP I PARDO

INFLG,	0
SERIN,	0
MN14,	-14
INTEM,	0
INOUT,	0



PLSGEN,	0
	CLA CLL
	TAD INOUT
	SNA
	JMP PLSOVR
	RAR
	CIA
	TAD SPEED2
	CIA
	DCA PLSCNT
PLSOVR,	TAD FSTCLK
	SNA SPA CLA
	JMP NOPULS
	ISZ PLSCNT
	JMP NOPULS
	DCA PLSCNT

	TAD N200
	SKP
NOPULS,	CLA 
	PUT
	2
	CDF 10
	JMP I PLSGEN

PLSCNT,	0
N200,	200



PDCINT,	CLA
	DCA SERIN
	DCA INFLG
	DCA PLSCNT

	INEND

FIELD 2 *F2NEXT 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
PAGE /******* THRESHOLD-COMPARES INPUT WITH AV. OF PRECEEDING PULSES ***** /CALL: TRSHLD / INPUT / OUTPUT / THRESHOLD K /THRESHOLD AT 1- 2^K*AVERAGE (AMPLITUDES) / NR OF TAPS /NR MUST BE POWER OF 2 / DELAY LINE /ADDRESS OF STORAGE AREA / STATE /SHIFTREG POINTER / THRESHOLD T /THRESHOLD AT 1-2^T*AVERAGE (TIMES) / NR OF TAPS /MUST BE POWER OF 2 / DELAY LINE /SINGLE WORD PER CELL SUFFICIENT / STATE /SHFTREG POINTER 2 TRSHLD, 12 BLOTNT TRINIT GETAD 1 DCA TM1POI JMS SZSIG JMP TRNOT0 TAD PSCNT CIA TAD PSLIM SMA CLA IAC TAD PSCNT DCA PSCNT TRZERO, INBLIP COPY ZERO 2 BLEND TRNOT0, INBLIP COPY ZERO TRTEM1 SHFTRG TRSHFT 1 BLOUT ACUM 4 CIA DCA TRCNT CLA IAC DCA TRSGP ACUM 3 DCA TRSCL1 DCA TRTAPN JMS TRAVRG JMP TRTIME TROUT, JMS TRESET DCA PSCNT INBLIP COPY 1 2 BLEND TRTIME, INBLIP TAPSET PSSHFT COPY ZERO TRTEM1 BLOUT ACUM 10 CIA DCA TRCNT TAD PSCNTP DCA TRSGP ACUM 7 DCA TRSCL1 JMS TRAVRG JMP TRZERO JMP TROUT TRINIT, CLA DCA PSCNT JMP TRNOT0 TRTEM1, ZBLOCK N TRTEM2, ZBLOCK N TRSHFT, 5 4 CN 6 PSSHFT, 11 10 ONE 12 PSCNT, ZBLOCK N PSLIM, 200 PSCNTP, PSCNT TRSCL1, 0 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 TRESET, 0 INBLIP SHFTRG PSSHFT PSCNT BLOUT JMP I TRESET PAGE TRAVRG, 0 CAM TAD TRCNT CIA NMI SCA CLA TAD TRM12 DCA TRSCAL DCA TRTAPN 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 SCALSG TRTEM1 NNX14 TRSCL1 TRTEM2 COMPLM TRTEM2 TRTEM2 ADDER TRTEM1 NNX14 TRTEM2 NNX14 ONE TRTEM2 COMPLM TRTEM2 TRTEM2 ADDER TRSGP, 0 NNX14 TRTEM2 NNX14 ONE TRTEM2 HWRECT TRTEM2 NNX14 TRTEM2 BLOUT TAD TRTM2P DCA TM1POI JMS I SZSIGP ISZ TRAVRG JMP I TRAVRG TRTAPN, 0 TRCNT, 0 TRM12, -12 SZSIGP, SZSIG TRTM2P, TRTEM2 TRSCAL, 0
/**************** 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!! SLSHFT, 0 SLSFT2, 0 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 SLTM2, ZBLOCK N SLTM3, ZBLOCK N
/*********** 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 PAGE /********** 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 20 JMP I SIGMOV
PAGE /*************** CLEANER FOR NNX14 BIT WORDS ************************ /CALL: PCLEAN / INPUT / INPUT PRECISION / OUTPUT / OUTPUT TAP / CLEAR TAP / COUNT /ONE WORD STATE / REGISTER /ZBLOCK N STATE PCLEAN, 7 BLOUT GETAD 6 DCA CLCNTP INBLIP BLOTNT CLINIT INBLIP COMPLM 1 CLTEM1 ADDER CLTEM1 NNX14 7 NNX14 ONE CLTEM1 BLOUT CLA TAD CLTM1P DCA TM2POI ACUM 2 DCA PRECIS JMS SIGNSR SNL CLA JMP CLREJ CLINIT, DCA I CLCNTP /RESET COUNT INBLIP COPY /INPUT BIGGER THAN REG. 1 7 COPY ZERO 3 BLEND CLREJ, ISZ I CLCNTP /INPUT SMALLES THAN REG. NOP ACUM 4 CIA TAD I CLCNTP CLA SZA JMP CLOVER INBLIP COPY /DO OUTPUT 7 3 BLOUT CLCONT, ACUM /CHECK FOR CLEAR REG. 5 CIA TAD I CLCNTP SMA CLA JMP CLCLER INEND CLOVER, INBLIP /NO OUTPUT BUT CHECK FOR CLEAR COPY ZERO 3 BLOUT JMP CLCONT CLCLER, DCA I CLCNTP /CLEAR REGISTER AND COUNT INBLIP COPY ZERO 7 BLEND CLTEM1, ZBLOCK N CLTM1P, CLTEM1 CLCNTP, 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