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 NEWDAT=JMS I PAGE0+11 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 BLFELD=371 ;0 /BLIP CDF CIF P=.-PAGE1 /......................... *PAGE0 SRINIT SRGTAD SRPTAD SRACUM SRPUT SRIN RINEND SRAGAC SRAGPT SRNWDF / ........................ *PAGE1 SRADAD, 0 DCA X /ENTER WITH ADDRESS OF AN ARGUMENT JMS FLDSET CLA RAL /SAVE LINK DCA TEM2 TAD APTR /LIST STACK IS ON TOP OF RETURN STACK DCA BPTR /CLEAR LIST STACK CLA CLL CMA RAL TAD RETFLD DCA DATFLD TAD APTR DCA TEM3 /READ RETURN STACK POINTER DATFLD, HLT CHASE, TAD I X CDF 10 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, JMS DATFSR TAD I X /ISOLATE ARGUMENT REFERENCE CDF 10 AND MKLDAS DCA X TAD ABOT /PSEUDO-POP(A) CIA CLL TAD TEM3 SNL CLA TYDER /REF. TO BLOCK BELOW BOTTOM OF STACK TAD I TEM3 DCA DATFLD CLA CMA TAD TEM3 DCA TEM3 TAD X SNA TYDER /0 ARGUMENT TAD I TEM3 DCA X /X POINT TO NEXT ARG UP CMA TAD TEM3 JMP CHASE-2 ADHAN, CLA IAC CLL /BLIST IS ABOVE APTR TAD APTR /POP(B) CIA CLL TAD BPTR SNL CLA JMP GOTIT /LINK IS CLEAR JMS DATFSR TAD I X CDF 10 TAD I BPTR DCA X /X POINTS TO LIST ENTRY CMA TAD BPTR DCA BPTR JMP CHASE-1 GOTIT, TAD TEM2 RAR /RESTORE LINK TAD X /RETURN WITH DIRECT ADDRESS OF AN ARGUMENT JMP I SRADAD DATFSR, 0 CLA TAD DATFLD DCA .+1 HLT JMP I DATFSR X, 0 BPTR, 0 TEM3, 0 NM400, -400 NMLDAS, 360 /CHECKS FOR LIST ARGS MKLDAS, 0017 /STRIPS OFF LIST REFERENCE RJUMP, TAD FELD DCA RJFLD TAD SRIN IAC /PSEUDO BLOK TO JUMP RJFLD, HLT JMS SRADAD DCA SRIN CLA IAC TAD TEM3 CMA TAD APTR SNA JMP ONELEV SPA CLA JMP SAMLEV CLA CLL RTL IAC TAD TEM3 DCA DATFSR TAD I DATFSR DCA NXTFLD SAMLEV, TAD DATFLD DCA FELD TAD TEM3 DCA APTR /WHICH SUPPLIED THE ADDRESS TAD FELD DCA FELD2 JMP FELD2 ONELEV, TAD FELD JMP SAMLEV-1 / ......................... PAGE SRIN, 0 /USED AS "PROGRAM COUNTER" CLA RDF TAD CCDF CIA TAD FELD SZA TYDER BLPLP, CLL CLA TAD SRIN CIA TAD BRKPNT SNA CLA NOP /PUT A DDT BREAK POINT HERE CLL CLA FELD, CDF 10 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 CDF 10 TAD SRIN DCA I APTR ISZ APTR TAD FELD DCA I APTR TAD FELD DCA FELD2 TAD NXTFLD DCA FELD CLA IAC FELD2, HLT 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 FELD DCA NXTFLD TAD I APTR DCA FELD CLA CMA TAD APTR DCA APTR TAD I APTR DCA TEM2 CMA TAD APTR DCA APTR TAD FELD DCA .+1 HLT TAD I TEM2 DCA TEM4 NOP NXTFLD, 0 TAD I TEM4 TAD TEM2 IAC JMP JMRET+1 PSUD, TAD I SRIN /PSEUDO BLOK ROUTINE CDF 10 TAD TABAD DCA TEM2 TAD I TEM2 DCA TEM2 JMP I TEM2 /JMP TO ADDR IN TABLE RFELD, ISZ SRIN TAD FELD DCA .+1 0 TAD I SRIN DCA NXTFLD ISZ SRIN JMP BLPLP FLDSET, 0 RDF TAD CCIFDF CDF 10 DCA RETFLD JMP I FLDSET BRKPNT, 0 /EXECUTE BKPT NOP IF (SRIN)=(BRKPNT) CCIFDF, CDF CIF TEM2, 0 TEM4, 0 CCDF, CDF MNPSOP, P-400 TABCON, -P TABAD, ALIST-400 ABOT, ALIST ATOP, ALIST+NA-1 APTR, 0 SRNWDF, 0 DCA TEM2 JMS FLDSET TAD I SRNWDF DCA FELDDO+1 ISZ SRNWDF TAD RETFLD DCA .+1 HLT TAD TEM2 JMP I SRNWDF FELDDO, 0 CDF 10 JMP I FELDDO RNITON, CLA IAC /SET INIT FLAG RNITOF, DCA FLAG /CLEAR INIT FLAG ISZ SRIN JMP BLPLP FLAG, 0 /INITIALISATION FLAG /SET DURING INITIALISATION / ........................ PAGE SRGTAD, 0 CLA TAD SRGTAD ISZ SRGTAD JMS I SRADI DCA T1 JMS DATFSR TAD I T1 JMS FELDSR JMP I SRGTAD SRPTAD, 0 DCA T1 TAD SRPTAD ISZ SRPTAD JMS I SRADI DCA T2 JMS DATFSR TAD T1 DCA I T2 JMS FELDSR JMP I SRPTAD SRAGAC, 0 /AUGMENTED ACUM DCA T2 RDF TAD KCDF DCA AGACF TAD SRAGAC ISZ SRAGAC JMS I SRADI DCA T1 JMS DATFSR TAD I T1 AGACF, HLT TAD I SRAGAC DCA T1 ISZ SRAGAC JMS FELDDO TAD T2 TAD I T1 JMS FELDSR JMP I SRAGAC SRAGPT, 0 /AUGMENTED PUT DCA T2 RDF TAD KCDF DCA AGPTF TAD SRAGPT ISZ SRAGPT JMS I SRADI DCA T1 JMS DATFSR TAD I T1 AGPTF, HLT TAD I SRAGPT DCA T1 ISZ SRAGPT JMS FELDDO TAD T2 DCA I T1 JMS FELDSR JMP I SRAGPT FELDSR, 0 DCA T2 KCDF10, CDF 10 TAD I FELDSR DCA .+3 TAD T2 RETFLD, 0 T1, 0 /USED BY FELDSR T2, 0 KCDF, CDF ABOTI, ABOT APTRI, APTR SRADI, SRADAD FELDI, FELD / .............................. SRINIT, 0 JMS FLDSET CLA CMA TAD I ABOTI DCA I APTRI IAC DCA FLAG CLA CMA CLL RAL TAD RETFLD DCA I FELDI TAD I FELDI DCA FELD2 TAD I FELDI DCA NXTFLD TAD KCDF10 DCA FELDDO+1 JMS FELDSR JMP I SRINIT SRACUM, 0 /COMBINES GETAD AND TAD DCA T2 TAD SRACUM ISZ SRACUM JMS I SRADI DCA T1 JMS DATFSR TAD I T1 DCA T1 JMS FELDDO TAD T2 TAD I T1 JMS FELDSR JMP I SRACUM SRPUT, 0 /COMBINES GETAD AND DCA DCA T2 TAD SRPUT ISZ SRPUT JMS I SRADI DCA T1 JMS DATFSR TAD I T1 DCA T1 JMS FELDDO TAD T2 DCA I T1 JMS FELDSR JMP I SRPUT PAGE ROUTNT, ISZ I SRINA /BLOUT WITH INIT. CHECK TAD I FLAGI SNA CLA JMP ROUT TAD I SRINA /FLAG IS SET. DCA T3 /JUMP OUT TO ADDR GIVEN TAD I FELDA DCA .+1 0 TAD I T3 CDF 10 DCA I SRINA SKP ROUT, IAC /JUMP OUT TO MACHINE CODE TAD I SRINA DCA T3 CLA CLL IAC RAL TAD I FELDA DCA .+1 0 JMP I T3 RINEND, INBLIP BLEND SRINA, SRIN FELDA, FELD T3, 0 FLAGI, FLAG /PSEUDO BLOK ROUTINE ADDRESS TABLE RFELD RNITOF RNITON RJUMP REND ROUTNT ROUT ALIST, 0 /ADDRESS TABLE MUST PRECEED ALIST!!!!!!!!!! NA=100 /LENGTH OF STACK FIELD 2 *PAGE0 INIT2 GTAD2 PTAD2 ACUM2 PUT2 IN2 INEND2 AGAC2 AGPT2 SRNWD2 *PAGE1-200 GTAD2, 0 CLA TAD GTAD2 CIF CDF 10 DCA I GTADP CDF 20 JMP I GTADDO GTADP, SRGTAD GTADDO, SRGTAD+1 INIT2, 0 CLA TAD INIT2 CDF CIF 10 DCA I INITP CDF 20 JMP I INITDO INITP, SRINIT INITDO, SRINIT+1 PUT2, 0 DCA F2TEM TAD PUT2 CDF CIF 10 DCA I PUTP CDF 20 TAD F2TEM JMP I PUTDO PUTP, SRPUT PUTDO, SRPUT+1 ACUM2, 0 DCA F2TEM TAD ACUM2 CIF CDF 10 DCA I ACUMP CDF 20 TAD F2TEM JMP I ACUMDO ACUMP, SRACUM ACUMDO, SRACUM+1 PTAD2, 0 DCA F2TEM TAD PTAD2 CIF CDF 10 DCA I PTADP CDF 20 TAD F2TEM JMP I PTADDO PTADP, SRPTAD PTADDO, SRPTAD+1 AGAC2, 0 DCA F2TEM TAD AGAC2 CIF CDF 10 DCA I AGACP CDF 20 TAD F2TEM JMP I AGACDO AGACP, SRAGAC AGACDO, SRAGAC+1 AGPT2, 0 DCA F2TEM TAD AGPT2 CDF CIF 10 DCA I AGPTP CDF 20 TAD F2TEM JMP I AGPTDO AGPTP, SRAGPT AGPTDO, SRAGPT+1 F2TEM, IN2, 0 CLA TAD IN2 CDF CIF 10 DCA I INP CDF 20 JMP I INDO INP, SRIN INDO, SRIN+1 SRNWD2, 0 DCA F2TEM TAD SRNWD2 CDF CIF 10 DCA I NWDFP CDF 20 TAD F2TEM JMP NWDFDO NWDFP, SRNWDF NWDFDO, SRNWDF+1 INEND2, INBLIP BLEND