begin ; ! Generate DECZAP4 source for ESDL
integer i,j,k
constintegerarray cdef(1:4)=150,2900,5400,8150
string (19)AtoV ="ABCDEFHJKLMNPRSTUV"
string (19)dcb ="DCB"
string (19)lkjhfe ="LKJHFE"
string (19)lkjhfedcb="LKJHFEDCB"
string (19)nmlkjhfe ="NMLKJHFE"
integerfn gioq(integer actual,lowlimit,highlimit)
integer virtual
signal 15 unless lowlimit<=actual<=highlimit
virtual=actual-'A'
signal 15 if actual='G'; result =virtual if actual<'G'
signal 15 if actual='I'; result =virtual-1 if actual<'I'
signal 15 if actual='O'; result =virtual-2 if actual<'O'
signal 15 if actual='Q'; result =virtual-3 if actual<'Q'
result =virtual-4
end
routine dec connector(integer rack,pin,side)
rack=rack-'C'; signal 15 unless rack>>2=0
pin=gioq(pin,'A','V')
side=side-'1'; signal 15 unless side>>1=0
side=30 unless side=0
pin=pin+22 if rack>0
pin=pin+20 if rack>1
pin=pin+22 if rack>2
write((125*pin+150)//10,0); printsymbol(':')
write(70+side,0)
end
routine pjl(integer row,subrow,col)
row=(84-gioq(row,'A','N')*6-gioq(subrow,'A','F'))*10
signal 15 unless 0<=col<=98
write((col+3)*10,0); printsymbol(':'); write(row,0)
end
selectoutput(1)
printstring("Coption NoSignals
Board DecZap4 (
")
for i='C',1,'F' cycle ; ! DEC connector CA1 to FV2
for j='1',1,'2' cycle
for k=1,1,18 cycle
printsymbol(i); printsymbol(charno(AtoV,k)); printsymbol(j)
printsymbol(','); newline if k=9 or k=18
repeat
repeat
repeat
for i='A',2,'C' cycle ; ! DIN connector 01A to 32C
for j=1,1,32 cycle
printsymbol('0') if j<10; write(j,0); printsymbol(i)
if j&7=0 start
if i+j='C'+32 then printsymbol(')') else printsymbol(',')
newline
finishelse printsymbol(',')
repeat
repeat
printstring("Size 1045:860
Pins(
")
for i='C',1,'F' cycle
for j='1',1,'2' cycle
for k=1,1,18 cycle
dec connector(i,charno(AtoV,k),j)
printsymbol(','); newline if k=9 or k=18
repeat
repeat
repeat
for i='C',2,'E' cycle
for j=36,-1,5 cycle
pjl('A',i,j)
if j=5 and i='E' then printsymbol(')') else printsymbol(',')
newline if j&7=5
repeat
repeat
printstring("NB00:DIL2 at "); pjl('N','B',0); newline
printstring("NB01:DIL2 at "); pjl('N','B',1); newline
!printstring("MB05:TO45 at "); pjl('M','B',5); newline
!printstring("MB10:TO45 at "); pjl('M','B',10); newline
!printstring("MB15:TO45 at "); pjl('M','B',15); newline
for i=1,1,8 cycle
for j=2,9,65 cycle
printsymbol(charno(NMLKJHFE,i)); printsymbol('B')
printsymbol('0') if j<10; write(j,0)
printstring(":DIL16 at ")
pjl(charno(NMLKJHFE,i),'B',j); newline
repeat
repeat
for i=1,1,3 cycle
for j=1,12,73 cycle
for k=20,-4,16 cycle
printsymbol(charno(DCB,i)); printsymbol('B')
printsymbol('0') if j<10; write(j,0)
printstring(":DIL"); write(k,0); printstring(" at ")
pjl(charno(DCB,i),'B',j); newline
repeat
repeat
repeat
for i=1,1,9 cycle
for k=20,-4,16 cycle
printsymbol(charno(LKJHFEDCB,i)); printstring("B86:DIL")
write(k,0); printstring(" at ")
pjl(charno(LKJHFEDCB,i),'B',86); newline
repeat
repeat
for i=1,1,6 cycle
printsymbol(charno(LKJHFE,i)); printstring("B76:DIL16 at ")
pjl(charno(LKJHFE,i),'B',76); newline
repeat
printstring("End
Finish
")
endofprogram