Measurement Computing Personal488 rev.3.0 For DOS & Windows 3.Xi User Manual
Page 188
![background image](https://www.manualsdir.com/files/797818/content/doc188.png)
II. SOFTWARE GUIDES - 9. Driver488/SUB
9G. Pascal
Personal488 User’s Manual, Rev. 3.0
II-173
begin
{ Check if the interrupt was due to a Service Request }
sp: = ioSPoll (ieee);
if sp = 0 then begin
Writeln (‘No SRQ detected’);
halt;
end;
{ Check that the Service Request was from the ADC488 }
stadc: = ioSPoll (adc);
if not bitSet (stadc,64) then begin
Writeln (‘Not an ADC488 SRQ.SPOLL = ‘,stadc);
halt;
end;
{ Interpret the Serial Poll response }
if bitSet(stadc,1) then
Writeln (‘Triggered’);
if bitSet(stadc,2) then
Writeln(‘Trigger overrun’);
if bitSet(stadc,4) then
Writeln(‘Buffer overrun’);
if bitSet(stadc,8) then
{ Read and interpret the ADC488 error status }
Writeln(‘ADC488 error’);
errnum: = 5;
lrv: = ioOutput (adc,’E?’);
lrv: = ioEnter (adc,errtext);
Val (errtext,errnum,code);
ifbitSet (errnum,1) then
Writeln (‘Invalid DDC’);
ifbitSet (errnum,2) then
Writeln (‘Invalid DDC option’);
ifbitSet (errnum,4) then
Writeln (‘Conflict error’);
ifbitSet (errnum,8) then
Writeln (‘NVRAM setup error’);
ifbitSet (errnum,16) then
Writeln (‘Calibration error’);
ifbitSet (errnum,32) then
Writeln (‘NVRAM calibration error’);
end;
ifbitSet (stadc,32) then
Writeln (‘Ready’);
ifbitSet (stadc,64) then
Writeln (‘SRQ asserted’);
ifbitSet (stadc,128) then
Writeln (‘Data acquisition complete’);
{ Set up interrupt pointers }
nilptr: = nil;
rv: = ioOnEvent (ieee,@isr,nilptr);
end;
{ Display Status from Driver488/SUB }
procedure showstat (substat : StatPtr);
begin
Write(‘SC
: ‘, substat^.SC);
Write(‘CA
: ‘, substat^.CA);
Write(‘Primaddr
: ‘, substat^.Primaddr);
Write(‘Secaddr
: ‘, substat^.Secaddr);
Writeln(‘SRQ
: ‘, substat^.SRQ);
Write(‘addrChange
: ‘, substat^.addrChange);
Write(‘talker
: ‘, substat^.talker);