File PCM.PA (PAL assembler source file)

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




FIELD 1

*PART1

ITRANS, 0
	CAM
	RDF
	TAD CFINST
	CDF 10
	DCA RETURN
	TAD RETURN
	DCA MRETRN

        JMS I LCINIT
LCPCM,  0
        JMS I LINIT
        DSIZE
LDPCM,  0
        JMS I LINPSP
LPSP,   0
RETURN,	HLT
        JMS I ITRANS


LTRANS, 0
	CDF 10
        JMS I LCPCM
	JMS I LPSP
        JMS I LDPCM
        DSIZE
MRETRN,	HLT
        JMP I LTRANS


CFINST,	CDF CIF
LCINIT, CINIT
LINIT,  INIT
LINPSP, INPSP
DSIZE,  0
        0


FIELD 1 *PART4 INPSP, 0 SWBA CAM TAD NUM CIA DCA CURBIT /INTERMEDIATE USE TAD FLAGTB DCA FLAGAD DCA I FLAGAD ISZ FLAGAD ISZ CURBIT JMP .-3 STA TAD NUM DCA SHIFT TAD NUM CIA DCA BITNR JMS I LIERSKP LERSKP, 0 JMS I INPSP PSP, 0 DCA WORD /INIT AFTER EVERY WORD SWBA DCA CHWORD TAD BITNR DCA CURBIT TAD FLAGTB DCA FLAGAD BEGIN, JMS I LERSKP 50 /ERRARG. THRESHOLD OR PERIOD JMP NOERR CLA IAC DCA I FLAGAD TAD WORD CLL RAR CML JMP ENDNE NOERR, CLA DCA I FLAGAD TAD WORD CLL RAR ENDNE, DCA WORD TAD CHWORD RAR DCA CHWORD ISZ FLAGAD ISZ CURBIT JMP BEGIN TAD CHWORD MQL SHL /SHIFT CHANGED WORD IN RIGHT POSITION SHIFT, 0 JMP I PSP LIERSKP,INDSKP FLAGTB, FLAG1 NUM, 2 /NUMBER OF BITS IN WORD BITNR, 0 WORD, 0 CHWORD, 0 CURBIT, 0 FLAGAD, 0 IBURST, 0 JMS INDSKP LDSKP, 0 JMS I LISSKP LSSKP, 0 CLA TAD LENGTH CIA DCA CURLEN CMA DCA COUNT2 /INIT COUNT 2 TO 7777 DCA BFLAG JMS I IBURST BURST, 0 SWBA CLA TAD I BURST DCA PER1 ISZ BURST TAD BFLAG SZA CLA JMP BURGEN JMS I LDSKP PER1, 0 /PERIOD FOR 1ST COUNTER, SET FROM PSP JMP I BURST ISZ COUNT2 JMP I BURST CLA IAC DCA BFLAG /SET BURSTFLAG TAD FAKTOR CIA DCA COUNT2 BURGEN, ISZ CURLEN JMP .+5 DCA BFLAG TAD LENGTH CIA DCA CURLEN JMS I LSSKP 4000 /PROBABILITY FOR ERR IN BURST SKP ISZ BURST JMP I BURST LISSKP, INSSKP LENGTH, 20 CURLEN, 0 BFLAG, 0 COUNT2, 0 FAKTOR, 14 *PART4+200 INDSKP, 0 CLA TAD GONUM CIA DCA PERIOD JMS I INDSKP DSKP, 0 SWBA CLA ISZ PERIOD JMP WEIT TAD I DSKP DCA DIV CMA MQL DVI DIV, 0 CLA MQA CIA DCA PERIOD ISZ DSKP WEIT, ISZ DSKP JMP I DSKP GONUM, 100 /INTERVALL AFTER START PERIOD, 0 INSSKP, 0 JMS R CLA TAD CALL CIA DCA CURCAL JMS PRAN ISZ CURCAL JMP .-2 JMS I INSSKP SSKP, 0 SWBA JMS PRAN CLL TAD I SSKP ISZ SSKP SZL CLA /LINL = 1 FOR ERROR ISZ SSKP JMP I SSKP CALL, 100 /NUM OF CALLS FOR PRAN CURCAL, 0 R, HLT JMP R+63 PRAN, HLT CLA TAD R+77 RAL AND R+71 DCA R+74 TAD R+76 AND R+70 TAD R+74 7006 7006/RAL RAT RAL DCA R+72 TAD R+77 AND R+70 7006 7006 RAL TAD R+76 DCA R+73 7430/SNL SKP ISZ R+72 7000 TAD R+77 7104/CLL RAL 7430 ISZ R+73 SKP ISZ R+72 7000 CLL TAD R+77 DCA R+77 TAD R+76 RAL 7430 ISZ R+72 7000 CLL TAD R+73 DCA R+76 TAD R+75 RAL TAD R+75 TAD R+72 DCA R+75 TAD R+75 JMP I PRAN 0/NOT USED 7201/CLA IAC DCA R+77 DCA R+76 DCA R+75 JMP I R 177 7400 0 0 0 0 0 0 HLT HLT FLAG1, 0 /FLAG FOR BIT 11 FLAG2, 0
/JSB 21 7 70 /N-BIT SYLLABIC P.C.M CODER /USING CALL TO DECODER *PART4+400 CGO, JMS I CINIT CODPCM, 0 DCA INPUT SWBA TAD INPUT SMA CMA DCA MARG / -MOD(INPUT) CMA TAD THTABA TAD DISP0 DCA LOC TAD DISP0 DCA DISP CODLOP, TAD I LOC DCA MULTC TAD SIZEC /COMPUTE THRESHHOLD MQL MUY MULTC, 0 SHL 2 TAD MARG CLA SNL /IF MOD(INPUT)>THESHOLD, TAD DISP /SUBTRACT DISP FROM LOC CIA TAD LOC DCA LOC TAD DISP /HALVE DISP CLL RAR SNA /IF DISP=0, JMP DUN /FINISHED DCA DISP TAD LOC TAD DISP DCA LOC /LOC:=IF BIT N=1 THEN LOC-DISP, / ELSE LOC+DISP JMP CODLOP DUN, CMA TAD THTABA CIA TAD LOC /COMPUTE BITS DCA LSBITS CLL TAD INPUT SPA CLA STL TAD LSBITS SZL CMA /MODIFY CODE AND CM4 /N BITS DCA CCODE TAD CCODE JMP I NWPCMP MAIN, DCA CCODE TAD CCODE JMS I DECSIN SIZEC CLA TAD CCODE JMP I CODPCM CINIT, 0 JMS I DECINP SIZEC DECSIN, 0 JMP CGO DECINP, INIT THTABA, THTAB NWPCMP, NEWPCM THTAB, 527 CM4, 3 DISP0, 1 /ALL ABOVE SET FOR 2 BITS INPUT, 0 MARG, 0 DISP, 0 LOC, 0 LSBITS, 0 CCODE, 0 SIZEC, 0 /DECODER STATE 0 NEWPCM, DCA ORBIT TAD ORBIT AND M2 CLL SZA CLA CML TAD ORBIT SZL CMA AND M3 DCA MAG CLA RAL DCA SIGN ISZ NEWCNT JMP CHANGE TAD NUMBER CIA DCA NEWCNT TAD MAG DCA SVSIZE CHANGE, TAD SVSIZE DCA MAG TAD SIGN CLL RAR /SIGN INTO LINK TAD MAG SZL CMA AND M3 DCA NEWBIT RTL TAD NEWBIT JMP I MAINP NUMBER, 2 SVSIZE, 0 ORBIT, 0 NEWCNT, -1 MAINP, MAIN NEWBIT, 0 MAG, 0 SIGN, 0
/LSM 20 7 70 / N-BIT SYLLABIC P.C.M DECODER *PART4+600 GO, JMS I INIT DECPCM, 0 AND M1 /N BITS DCA CODE SWBA TAD I DECPCM /BRING IN STATE NOP /ISZ DECPCM IF SPLIT STATES DCA TEM TAD I TEM DCA SIZEHI ISZ TEM TAD I TEM DCA SIZELO TAD CODE AND M2 /MS BIT CLL SZA CLA CML /INTO LINK TAD CODE SZL CMA /USE SIGN BIT AND M3 /N-1 BITS DCA MODCOD CLA RAL /MS BIT INTO POLCOD DCA POLCOD TAD MODCOD TAD OPTAB DCA TEM TAD I TEM DCA MULT TAD SIZEHI MQL MUY MULT, 0 ASR 10 TAD POLCOD /INSERT POLARITY CLL RAR MQA SZL CIA DCA OUTPUT TAD MODCOD TAD STTAB /UPDATE STATE DCA TEM TAD I TEM DCA TEM JMP I TEM OUT, TAD I DECPCM /RETURN STATE ISZ DECPCM DCA TEM TAD SIZEHI DCA I TEM ISZ TEM TAD SIZELO DCA I TEM TAD OUTPUT JMP I DECPCM /------------------ /STATE CHANGE ROUTINES DECAY, TAD SIZELO MQL TAD SIZEHI LSR 2 CMA CLL TAD SIZEHI DCA SIZEHI MQA /DEC SIZELO CIA STL TAD SIZELO SNL ISZ SIZEHI /CARRY DCA SIZELO TAD MIN /LIMIT SMALL CIA CLL TAD SIZEHI CLA TAD MIN SNL /MIN INTO SIZEHI DCA SIZEHI /IF SIZEHI<MIN CLA JMP OUT GROW, TAD SIZELO MQL TAD SIZEHI LSR 0 TAD SIZEHI DCA SIZEHI MQA /GROW SIZELO TAD SIZELO DCA SIZELO SZL IAC /CARRY TAD SIZEHI SPA CLA CLL CMA RAR /SET AC TO 3777 DCA SIZEHI JMP OUT /INITIALISATION INIT, 0 SWBA CAM TAD I INIT ISZ INIT DCA TEM TAD MIN DCA I TEM ISZ TEM DCA I TEM JMP GO /TABLES GROST, GROW DECAY OP, 1000 /MAX ALWAYS 1000 253 /STORAGE CODE, 0 MODCOD, 0 POLCOD, 0 TEM, 0 OUTPUT, 0 SIZEHI, 0 SIZELO, 0 /PARAMETERS, SET FOR TWO-BIT GROW M1, 0003 M2, 0002 M3, 0001 OPTAB, OP STTAB, GROST MIN, 10 INC, 100 /---------------------- $



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