i did some low level tests on both systems and figured out that the
instrument does NOT expect to have messages terminated with EOI.
i attached two new capture logs, they are basically the same now. The DOS/CEC version works, the Win/NI version does not
😞
The only differences i see, which might be important:
- the data lines get asserted at different times
- the timing, maybe modern GPIB interfaces are too fast for this old instrument?
btw, here are two source code snippets:
DOS/CEC (BASICA):
690 MY.ADDR%=21
700 RETSTAT%=0:LEVEL%=0
720 CALL INIT%(MY.ADDR%,LEVEL%)
750 MESS$="UNL UNT LISTEN 30 MTA"
751 CALL TRANSMIT%(MESS$, RETSTAT%)
775 CMD$="D0150T"+CHR$(10)
780 MESS$="DATA '"+CMD$+"'"
781 CALL TRANSMIT%(MESS$, RESTAT%)
Win/NI (C/C++):
int bus = ibfind("GPIB0");
ibeot(bus, 0);
ibsic(bus);
ibcmd(bus, "?", 1);
ibcmd(bus, "_", 1);
ibcmd(bus, ">", 1);
ibcmd(bus, "U", 1);
ibwrt(bus, "D0150T\n", 7);
(i removed all the error detection stuff)