File BLIPS.

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




FIELD 1
*1000


PAGE1,

/       HIGH SPEED BLOCK DIAGRAM INTERPRETER

/       L.S.M.  15/1/71
/       J.S.B.  02/7/71
/       J.S.B.  10/8/71

/       BLIP3.4



        PAGE0=40


/       NEW INSTRUCTIONS

        NTBLIP=JMS I PAGE0
        GETAD=JMS I PAGE0+1
        PUTAD=JMS I PAGE0+2
        ACUM=JMS I PAGE0+3
        PUT=JMS I PAGE0+4
        INBLIP=JMS I PAGE0+5
        AUGACM=JMS I PAGE0+7
        AUGPUT=JMS I PAGE0+10

        INEND=JMP I PAGE0+6

/       PSEUDO-INSTRUCTIONS

*PAGE1           /THIS IS FOR JIGGERY POKERY
                /TO SET P


        BLOUT=377      ;0    /EXIT FROM BLIP INTO M.C.
        BLOTNT=376      ;0    /BLOUT WITH A JUMP IF INIT IS SET
        BLEND=375      ;0    /RETURN TO CALLING BLOK
        BLJUMP=374      ;0    /TRANSFER TO ADRESS GIVEN
        BLNTON=373      ;0    /SWITCH ON INIT FLAG
        BLNTOF=372      ;0    /SWITCH OFF INIT FLAG

        P=.-PAGE1

/.........................




        *PAGE0

        SRINIT
        SRGTAD
        SRPTAD
        SRACUM
        SRPUT
        SRIN

        RINEND

        SRAGAC
        SRAGPT



/       ........................

*PAGE1 SRADAD, 0 DCA X /ENTER WITH ADDRESS OF AN ARGUMENT CLA RAL /SAVE LINK DCA TEM2 TAD APTR /LIST STACK IS ON TOP OF RETURN STACK DCA BPTR /CLEAR LIST STACK TAD APTR DCA TEM3 /READ RETURN STACK POINTER CHASE, TAD I X CLL TAD NM400 SZL /JMP TO ADD. HANDLING JMP ADHAN /ROUTINE IF X>OR=400 TAD NMLDAS SNL /DON'T PUSH LIST STACK JMP NOLIST /IF X<20 CLL RTR /ISOLATE LIST ENTRY RTR AND MKLDAS DCA TEM4 /PUSH(B) TAD ATOP CIA CLL /REF TO FIRST ITEM IS 0 TAD BPTR SZL CLA TYDER /STACK FULL IN USING LIST REF. ISZ BPTR TAD TEM4 DCA I BPTR NOLIST, CLA TAD I X /ISOLATE ARGUMENT REFERENCE AND MKLDAS DCA X TAD ABOT /PSEUDO-POP(A) CIA CLL TAD TEM3 SNL CLA TYDER /REF. TO BLOCK BELOW BOTTOM OF STACK TAD X SNA TYDER /0 ARGUMENT TAD I TEM3 DCA X /X POINT TO NEXT ARG UP CMA TAD TEM3 DCA TEM3 JMP CHASE ADHAN, CLA IAC CLL /BLIST IS ABOVE APTR TAD APTR /POP(B) CIA CLL TAD BPTR SNL CLA JMP GOTIT /LINK IS CLEAR TAD I BPTR TAD I X DCA X /X POINTS TO LIST ENTRY CMA TAD BPTR DCA BPTR JMP CHASE GOTIT, TAD TEM2 RAR /RESTORE LINK TAD X /RETURN WITH DIRECT ADDRESS OF AN ARGUMENT JMP I SRADAD / .........................
SRIN, 0 /USED AS "PROGRAM COUNTER" BLPLP, CLL CLA TAD SRIN CIA TAD BRKPNT SNA CLA NOP /PUT A DDT BREAK POINT HERE CLL TAD I SRIN TAD MNPSOP SNL /JMP TO ERROR ROUTINE IF TYDER /CONTENTS OF SRIN < 400-P TAD TABCON SZL CLA /JMP TO PSEUDO INSTRUCTION JMP PSUD /ROUTINE IF C(SRIN) < 400 TAD ATOP /PUSH (A) CIA CLL TAD APTR SZL CLA TYDER ISZ APTR TAD SRIN DCA I APTR CLA IAC JMRET, TAD I SRIN DCA SRIN JMP BLPLP REND, TAD ABOT / "BLEND" END OF BLOK CIA CLL /POP (A) TAD APTR SNL CLA TYDER TAD I APTR DCA TEM2 CMA TAD APTR DCA APTR TAD I TEM2 DCA TEM4 TAD I TEM4 TAD TEM2 IAC DCA SRIN JMP BLPLP PSUD, TAD I SRIN /PSEUDO BLOK ROUTINE TAD TABAD DCA TEM2 TAD I TEM2 DCA TEM2 JMP I TEM2 /JMP TO ADDR IN TABLE BRKPNT, 0 /EXECUTE BKPT NOP IF (SRIN)=(BRKPNT) TEM2, 0 TEM3, 0 TEM4, 0 X, 0 NM400, -400 NMLDAS, 360 /CHECKS FOR LIST ARGS MKLDAS, 0017 /STRIPS OFF LIST REFERENCE MNPSOP, P-400 TABCON, -P TABAD, ALIST-400 ABOT, ALIST ATOP, ALIST+NA APTR, 0 BPTR, 0 / ........................
*PAGE1+200 RJUMP, TAD I SRINI IAC /PSEUDO BLOK TO JUMP JMS I SRADI /TO GIVEN ADDRESS DCA I SRINI TAD I TEM3I /AT LEVEL OF BLOK DCA I APTRI /WHICH SUPPLIED THE ADDRESS JMP I JMRETI SRGTAD, 0 CLA TAD SRGTAD ISZ SRGTAD JMS I SRADI DCA T1 TAD I T1 JMP I SRGTAD SRPTAD, 0 DCA T1 TAD SRPTAD ISZ SRPTAD JMS I SRADI DCA T2 TAD T1 DCA I T2 JMP I SRPTAD SRAGAC, 0 /AUGMENTED ACUM DCA T2 TAD SRAGAC ISZ SRAGAC JMS I SRADI DCA T1 TAD I SRAGAC TAD I T1 DCA T1 ISZ SRAGAC TAD T2 TAD I T1 JMP I SRAGAC SRAGPT, 0 /AUGMENTED PUT DCA T2 TAD SRAGPT ISZ SRAGPT JMS I SRADI DCA T1 TAD I SRAGPT TAD I T1 DCA T1 ISZ SRAGPT TAD T2 DCA I T1 JMP I SRAGPT SRINIT, 0 CLA CMA TAD I ABOTI DCA I APTRI IAC DCA FLAG /SET INIT FLAG JMP I SRINIT ABOTI, ABOT APTRI, APTR SRINI, SRIN JMRETI, JMRET SRADI, SRADAD TEM3I, TEM3 T1, 0 T2, 0 / ..............................
ROUTNT, ISZ I SRINI /BLOUT WITH INIT. CHECK TAD FLAG SNA CLA JMP ROUT TAD I SRINI /FLAG IS SET. DCA T1 /JUMP OUT TO ADDR GIVEN TAD I T1 DCA I SRINI SKP ROUT, IAC /JUMP OUT TO MACHINE CODE TAD I SRINI DCA T1 JMP I T1 RNITON, CLA IAC /SET INIT FLAG RNITOF, DCA FLAG /CLEAR INIT FLAG ISZ I SRINI JMP I BLPLPI FLAG, 0 /INITIALISATION FLAG /SET DURING INITIALISATION BLPLPI, BLPLP SRACUM, 0 /COMBINES GETAD AND TAD DCA T2 TAD SRACUM ISZ SRACUM JMS I SRADI DCA T1 TAD I T1 DCA T1 TAD T2 TAD I T1 JMP I SRACUM SRPUT, 0 /COMBINES GETAD AND DCA DCA T2 TAD SRPUT ISZ SRPUT JMS I SRADI DCA T1 TAD I T1 DCA T1 TAD T2 DCA I T1 JMP I SRPUT RINEND, INBLIP BLEND /PSEUDO BLOK ROUTINE ADDRESS TABLE RNITOF RNITON RJUMP REND ROUTNT ROUT ALIST, ZBLOCK NA NA=15 /LENGTH OF STACK



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