Program ex8_2 (input,output); Const %include 'ilap:nmos.consts' maxnum = 20; Type %include 'ilap:nmos.types' Var suby, loady, vddy, phi2y, phi1y, gndy : integer; ins, outs, outsb : Array [1..maxnum] Of Integer; i, pn, number : integer; outfile : string[255]; ports : Array [1..6+2*maxnum] of connf; %include 'ilap:nmos.specs' Begin Prompt ('Number of counter stages: '); Readln (number); If number > maxnum Then Begin number := maxnum; Writeln ('Maximum number of counters = ',maxnum); End; Prompt ('File name for the chip: '); Readln (outfile); Initialise (outfile); counter ('counter', number, suby, loady, vddy, phi1y, phi2y, gndy, ins, outs, outsb); fillport (ports[1], 1, 4, vddy, 8, metal); fillport (ports[2], 3, 4, phi1y, 2, diffusion); fillport (ports[3], 3, 4, phi2y, 2, diffusion); fillport (ports[4], 2, 2, gndy, 8, metal); fillport (ports[5], 3, 4, loady, 2, diffusion); fillport (ports[6], 3, 4, suby, 2, diffusion); pn := 6; for i:= 1 to number do begin pn := pn + 1; fillport (ports[pn], 3, 1, ins[i], 2, diffusion); pn := pn + 1; fillport (ports[pn], 4, 3, outs[i], 2, diffusion); end; placepads ('counter chip', 'counter', ports, pn); Finish; End.