File PCM2B.PA (PAL assembler source file)

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

*PART1
ITRANS, 0
        JMS I LCINIT
LCPCM,  0
        JMS I LINIT
        DSIZE
LDPCM,  0
        JMS I LINPSP
LPSP,   0
        JMS I ITRANS
LTRANS, 0
        JMS I LCPCM
        JMS I LPSP
        JMS I LDPCM
        DSIZE
        JMP I LTRANS


LCINIT, CINIT
LINIT,  INIT
LINPSP, INPSP
DSIZE,  0
        0




*PART2
INPSP,  0
        CLA
        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
        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




INDSKP, 0
        CLA
        TAD GONUM
        CIA
        DCA PERIOD
        JMS I INDSKP
DSKP,   0
        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





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
        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




*PART3
INSSKP, 0
        JMS R
        CLA
        TAD CALL
        CIA
        DCA CURCAL
        JMS PRAN
        ISZ CURCAL
        JMP .-2
        JMS I INSSKP
SSKP,   0
        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 CGO, JMS I CINIT CODPCM, 0 DCA INPUT 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 JMS I DECSIN SIZEC CLA TAD CCODE JMP I CODPCM CINIT, 0 JMS I DECINP SIZEC DECSIN, 0 JMP CGO DECINP, INIT THTABA, THTAB 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
/LSM 20 7 70 / N-BIT SYLLABIC P.C.M DECODER *PART5 GO, JMS I INIT DECPCM, 0 AND M1 /N BITS DCA CODE 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 CLA 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