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, 0
NA=100 /LENGTH OF STACK