Measurement Computing Personal488 rev.3.0 For DOS & Windows 3.Xi User Manual

Page 105

Advertising
background image

8I. Turbo Pascal

II. SOFTWARE GUIDES - 8. Driver488/DRV

II-90

Personal488 User’s Manual, Rev. 3.0

Readln(IeeeIn,Response);
Writeln(Response);
Writeln(IeeeOut,’OUTPUT 16;F0R0X’);
Writeln(IeeeOut,’ENTER 16’);
Readln(IeeeIn,Reading);
Writeln(Reading);
Reading:=Copy(Reading,5,255);
Val(Reading,voltage,code);
Writeln(‘The read value is ‘,voltage);
Val(Copy(Reading,5,255),voltage,code);
Writeln(‘The read value is ‘,voltage);
sum:=0.;
FOR i:=1 TO 10 DO BEGIN
Writeln(IeeeOut,’ENTER 16’);
Readln(IeeeIn,Reading);
Val(Copy(Reading,5,255),voltage,code);
sum:=sum+voltage;
END;
Writeln(‘The average of 10 readings is ‘,sum/10);

Writeln(IeeeOut,’ENTER 16 #1700 BUFFER ‘,
Seg(r[0]),’:’,Ofs(r[0]));
FOR i:=0 TO 1699 DO Write(r[i]);
Writeln(IeeeOut,’ENTER 16 #1700 BUFFER ‘,
Seg(r[0]),’:’,Ofs(r[0]),’ CONTINUE’);
Writeln(IeeeOut,’STATUS’);
Readln(IeeeIn,Response);
Writeln(Response);
Writeln(IeeeOut,’WAIT’);
Writeln(IeeeOut,’STATUS’);
Readln(IeeeIn,Response);
Writeln(Response);
PROCEDURE CheckInt(Signal:integer);
BEGIN
VAR sp: INTEGER;
VAR st195: INTEGER;
Regs.AX=$0400;
{Function 4, check light pen status}
Intr($10,Regs); {BIOS interrupt $10}
WHILE Registers.AH 0 DO BEGIN
{A Driver488/DRV interrupt has occurred}

{Take the appropriate action}

Regs.AX=$0400;
{Check if another interrupt has occurred}
Intr($10,Regs);
END
Writeln(IeeeOut,’ARM SRQ’);
Writeln(IeeeOut,’OUTPUT 16;M2X’);
Writeln(IeeeOut,’STATUS’);
Readln(IeeeIn,Response); CheckInt(10);
Writeln(IeeeOut,’ENTER 16’);
Readln(IeeeIn,Reading); CheckInt(20);
Writeln(‘Interrupt detected at signal ‘,Signal);
Writeln(IeeeOut,’SPOLL’);
Readln(IeeeIn,sp);
IF sp=0 THEN BEGIN
Writeln(‘Non-SRQ Interrupt!’); Halt
END;
Writeln(IeeeOut,’SPOLL 16’);
Readln(IeeeIn,st195);
IF (st195 and 64)=0 THEN BEGIN
Writeln(‘Non-195 SRQ!’); Halt
END;
IF (st195 and 32)=0 THEN BEGIN {
ERROR is not set}

Advertising