Products > Test Equipment

Tektronix TDS Scope Field Adjustment Software reverse engineering

<< < (6/11) > >>

m k:
From earlier mentioned fork thread I'd say that TI/NEC chip or register level compatible and equally connected is accepted.
Can't be sure though, but the old card is also practically nothing more than a chip and a ROM, and optional RAM.

Needed drivers can be tested.
Newer CEC/KPC card has ROM disabled by default.
Leave it like that and try using it without drivers.
Then enable ROM to CC00 or so and try again.

If polling method is used then drivers are not needed, sill a bad practice.

Personal488 seems to be NI compatible.
It has more components than CEC so maybe CEC was first and then NI shuffled register addresses of the same chip.
Then others followed former or latter model.
This board's IOT7210 doesn't seem to be very far from the original copy either.

TERRA Operative:
So I found this while sorting through stuff on my PC, it seems to have some programming examples in various languages.

National Instruments GPIB-PCII/IIA Win95-98 drivers:
https://drive.google.com/file/d/1MUKwPHVAb4Bpsc41y0qHyrL66hzbH0Y9/view?usp=sharing

m k:
uPD7210 and TMS9914 are not equals nor register compatible.

NI 8bit ISA card
PCII uPD7210C chip, no ROM.
PCII/IIA VLSI or NI ASIC chip with ROM and 7210/9914 and PCII/PCIIA dip switches.
PCII/IIA-R a bit different layout.
PCIIA uPD7210C chip, no ROM.
PCIIB TMS9914A chip, no picture.

NI 16bit ISA card
AT-GPIB/TNT (c)'93 a single chip thing, low DMA settings are missing and last address digit is always zero.
AT-GPIB/TNT (c)'95 dual ASIC thing without manual settings.
AT-GPIB dual ASIC thing with manual settings and ROM.
AT-GPIB (c)'90 PLCC sockets, NI TURBO488 chip, no rom.

DMA is not usually required and 8bit card can set last address digit to zero.

DC1MC:
Well then,
due to some health shite I could not give 100%, but now that I have a (short) break being poked and prodded and used as a needle pillow  :-[ :'(, let's put a bit this show on the road, I have given a first pass over the installed software archive posted by @TERRA.
There are two executable files and on other binaries: libraries, overlays and such, just big fat static executable, the memory management is left to Microsoft C for DOS runtime, which is a pain (see later):


--- Code: ---14921 Feb 19  1999 ASK3C4C.EXE
783572 Jan 20  2000 TDS700CG.EXE

--- End code ---

I have no rotating clue what ASK3C4C.EXE is, but I'm eager to find out, please help here.
So the first victim is TDS700CG.EXE, a big fat 750KB executable, that is quite depressingly large :(, but there is a silver lining, they didn't use any compressors, obfuscators and shit like that and the organization is pretty logical, in nicely separate modules and it seems that the WHOLE library is liked there, including some of their internal modules with tests that say as an error message: "If you see this call Cathy at 1225342!!!"  :-DD.

Actually by just looking at referenced functions it seems that the calibration program front-end for the library actually exposes a very small percentage of the available functions !!!, this could be a false result given by the fact that IdaPro has a gadzillion of fails when I analyze the executable with overlays and the fact that it doesn't know about the Microsoft C for DOS compiler from 1988 (most likely 5.x or 6.x, widely available on net and I'll se if we can get some standard library addresses). :(. So if you look into the attached file you'll see now and then the "SP Analysis Failed" at end of functions :(

But it is as it is, I have attached, along with the ASM listing, the IdaPro database, I did already the tedious conversion to ASCII of some messages and corrected some auto-parsing stuff, if someone has a better Ida analyze,please share.

Now let's look at the library, there are 179 modules, if you look into the file listing and in the ASM listing you see that the help files (.HLP) have exactly the same name as the .c module linked in, this is nice, you'll also recognize as the name of the module some famous instrument names, so is most certain that that module deals with that instrument. Most of the names are self explanatory as well, for example a2d_off may or may not deal with Analogue to Digital Offset calibration ;).

So, IMHO, we need to determine the structure of the modules (humble me I'll try with beep.c, but feel free get more complex ones :), as well ass the parser for the "Blenoragic LISP (TM)"  >:D configuration files syntax (qconfig.c module maybe  :-// ?!?).

HELP REQUEST: I can't determine for now, could someone (@TERRA) try to start the calibration program WITHOUT the card driver loaded, I want to see if it's used at all for PCII or PCII/II cards for the callibration process, if it is, I have to see what IOCTLS offers, if not, I will ignore it for the moment.

Later I will try a GHIDRA analyze as well, I'll recover from the tiredness and meds, but now is the moment for the reversers to step in.


--- Code: ---'$Id: a2d_off.c,v 1.1 1994/08/02 22:44:13 claudr Exp $',0
'$Id: accoupl.c,v 1.4 1999/05/27 16:09:26 nucats Exp $',0
'$Id: acqrate.c,v 1.2 1995/04/13 21:36:53 rona Exp $',0
'$Id: at5010.c,v 7.3 1994/09/13 21:49:38 catsos Exp $',0
'$Id: atten.c,v 1.2 1999/02/02 22:21:16 nucats Exp $',0
'$Id: beginend.c,v 1.12 1999/07/04 02:25:47 dougro Exp $',0
'$Id: bitslo.c,v 1.2 1995/04/13 21:37:05 rona Exp $',0
'$Id: btl_pms.c,v 1.11 1999/07/02 16:26:26 michaelp Exp $',0
'$Id: busywait.c,v 1.2 1995/04/13 21:37:12 rona Exp $',0
'$Id: bwlimit.c,v 1.4 1999/05/27 16:10:36 nucats Exp $',0
'$Id: calstat.c,v 1.37 1999/11/24 22:12:00 claudr Exp $',0
'$Id: cg5001.c,v 7.0 1992/10/12 22:26:26 stefanus Exp $',0
'$Id: cg.c,v 7.1 1992/10/12 22:51:59 stefanus Exp $',0
'$Id: chaniso.c,v 1.6 2000/01/11 21:21:20 aaronan Exp $',0
'$Id: chkspec.c,v 1.9 1999/07/01 20:53:27 nucats Exp $',0
'$Id: clkacc.c,v 1.5 1999/07/05 05:47:47 nucats Exp $',0
'$Id: cntl_interface.c,v 7.4 1997/04/04 17:14:06 catsos Exp $',0
'$Id: cntl_lex.c,v 7.2 1994/10/27 19:57:08 catsos Exp $',0
'$Id: cntl_misc.c,v 7.1 1994/10/27 19:57:10 catsos Exp $',0
'$Id: cntl_parse_1.c,v 7.1 1992/10/12 22:54:23 stefanus Exp $',0
'$Id: cntl_parse_2.c,v 7.1 1992/10/12 22:55:19 stefanus Exp $',0
'$Id: cntl_parse_3.c,v 7.1 1992/10/12 22:56:25 stefanus Exp $',0
'$Id: cntl_parse_4.c,v 7.3 1994/09/13 21:50:49 catsos Exp $',0
'$Id: cntl_parse_5.c,v 7.3 1995/02/10 21:16:34 catsos Exp $',0
'$Id: cntl_par_seq.c,v 7.1 1992/10/12 22:53:18 stefanus Exp $',0
'$Id: coldstar.c,v 1.3 1994/10/06 22:44:58 claudr Exp $',0
'$Id: config.c,v 1.3 1999/02/02 22:21:16 nucats Exp $',0
'$Id: constant.c,v 1.2 1995/04/13 21:37:20 rona Exp $',0
'$Id: counter.c,v 1.1 1998/01/19 19:26:25 catsos Exp $',0
'$Id: curvetov.c,v 1.2 1995/04/13 21:37:26 rona Exp $',0
'$Id: cvrcal.c,v 1.9 1999/06/23 21:56:56 michaelp Exp $',0
'$Id: datetime.c,v 1.3 1999/05/27 17:30:17 nucats Exp $',0
'$Id: dc5010.c,v 7.8 1998/01/19 19:37:40 catsos Exp $',0
'$Id: dc.c,v 1.3 1999/02/02 22:21:16 nucats Exp $',0
'$Id: delay.c,v 1.8 1999/05/06 22:17:47 nucats Exp $',0
'$Id: diags.c,v 1.5 1999/06/15 18:06:57 loch Exp $',0
'$Id: diffnonl.c,v 1.7 1999/07/05 02:08:02 nucats Exp $',0
'$Id: dm5110.c,v 1.3 1999/11/10 21:58:51 nucats Exp $',0
'$Id: dm.c,v 1.1 1999/01/07 17:12:14 nucats Exp $',0
'$Id: dp8200.c,v 7.1 1996/07/18 21:10:16 catsos Exp $',0
'$Id: drvr_gio.c,v 1.6 1999/08/31 20:22:52 nucats Exp $',0
'$Id: drvr_misc.c,v 7.4 1994/09/13 22:02:25 catsos Exp $',0
'$Id: drvr_parse.c,v 7.1 1994/10/27 19:57:15 catsos Exp $',0
'$Id: drvr_util.c,v 7.2 1994/10/27 19:57:16 catsos Exp $',0
'$Id: dutgpib.c,v 1.4 1999/10/06 19:07:51 nucats Exp $',0
'$Id: dutintfc.c,v 1.2 1999/11/11 16:05:43 nucats Exp $',0
'$Id: dutio.c,v 1.2 1999/08/31 20:22:52 nucats Exp $',0
'$Id: effbits.c,v 1.2 1999/07/05 05:47:47 nucats Exp $',0
'$Id: eisnum.c,v 7.2 1994/09/13 22:33:03 catsos Exp $',0
'$Id: errlog.c,v 1.5 1995/03/23 00:23:07 claudr Exp $',0
'$Id: fg5010.c,v 7.2 1998/01/19 19:37:40 catsos Exp $',0
'$Id: fg.c,v 7.4 1998/01/19 19:25:16 catsos Exp $',0
'$Id: fl6060a.c,v 7.3 1997/01/16 19:49:02 catsos Exp $',0
'$Id: fl8840a.c,v 7.3 1997/11/10 19:12:27 catsos Exp $',0
'$Id: fltosi.c,v 7.1 1992/10/12 23:03:34 stefanus Exp $',0
'$Id: flushsrq.c,v 1.2 1995/04/13 21:37:45 rona Exp $',0
'$Id: getbits.c,v 1.3 1995/04/13 21:37:51 rona Exp $',0
'$Id: getchan.c,v 1.7 2000/01/18 17:18:59 aaronan Exp $',0
'$Id: getinsid.c,v 1.12 1999/08/06 18:05:30 datt Exp $',0
'$Id: getsn.c,v 1.11 1999/05/27 17:31:52 nucats Exp $',0
'$Id: globals.c,v 7.5 1996/09/11 15:20:50 catsos Exp $',0
'$Id: hfcal.c,v 1.26 1999/12/07 18:09:44 aaronan Exp $',0
'$Id: hyd.c,v 7.1 1993/09/22 16:22:29 catsos Exp $',0
'$Id: initdut.c,v 1.6 1999/05/27 17:32:38 nucats Exp $',0
'$Id: init_instr.c,v 7.22 1998/01/19 19:26:25 catsos Exp $',0
'$Id: inittgl.c,v 1.5 1999/07/01 20:53:27 nucats Exp $',0
'$Id: inputr.c,v 1.10 1999/06/21 23:21:44 datt Exp $',0
'$Id: intglnonl.c,v 1.6 1998/06/19 20:49:16 nucats Exp $',0
'$Id: intradj.c,v 1.12 1999/11/24 21:20:53 claudr Exp $',0
'$Id: intrleav.c,v 1.25 1999/11/24 21:10:05 claudr Exp $',0
'$Id: intrmisc.c,v 1.16 1999/11/24 21:15:36 claudr Exp $',0
'$Id: intrpipe.c,v 1.13 1999/11/24 22:10:08 claudr Exp $',0
'$Id: iosig.c,v 1.7 1999/10/19 18:59:31 claudr Exp $',0
'$Id: iscalqc.c,v 1.4 1999/07/01 20:53:27 nucats Exp $',0
'$Id: Logce.c,v 7.4 1995/11/08 16:41:54 catsos Exp $',0
'$Id: Logd.c,v 1.3 1999/08/12 15:44:55 nucats Exp nucats $',0
'$Id: Logmisc.c,v 1.2 1999/02/02 22:21:16 nucats Exp nucats $',0
'$Id: Logsf.c,v 1.2 1999/08/12 15:45:50 nucats Exp $',0
'$Id: Logsh.c,v 1.2 1999/02/02 22:21:16 nucats Exp nucats $',0
'$Id: Logtf.c,v 1.4 1999/08/31 20:04:59 nucats Exp nucats $',0
'$Id: Logth.c,v 1.3 1999/08/12 15:48:01 nucats Exp nucats $',0
'$Id: manint.c,v 1.7 1999/06/23 22:52:01 michaelp Exp $',0
'$Id: manroute.c,v 1.5 1999/06/23 22:57:20 michaelp Exp $',0
'$Id: menu_bclear.c,v 7.1 1992/10/12 23:18:25 stefanus Exp $',0
'$Id: menu_benter.c,v 7.1 1994/09/14 15:14:22 catsos Exp $',0
'$Id: menu_binst.c,v 7.0 1992/10/12 22:27:57 stefanus Exp $',0
'$Id: menu_binter.c,v 7.1 1992/10/12 23:19:21 stefanus Exp $',0
'$Id: menu_bmsg.c,v 7.1 1992/10/12 23:20:04 stefanus Exp $',0
'$Id: menu_bscroll.c,v 7.2 1994/10/27 19:57:31 catsos Exp $',0
'$Id: menu_bsel.c,v 7.4 1995/08/18 16:39:06 catsos Exp $',0
'$Id: menu_bstr.c,v 7.0 1992/10/12 22:28:08 stefanus Exp $',0
'$Id: menu_bwarn.c,v 7.0 1992/10/12 22:28:09 stefanus Exp $',0
'$Id: menu_foot.c,v 7.2 1994/10/27 19:57:34 catsos Exp $',0
'$Id: menu_head.c,v 7.1 1992/10/12 23:20:56 stefanus Exp $',0
'$Id: menu_init.c,v 7.2 1994/10/27 19:57:34 catsos Exp $',0
'$Id: menu_inp.c,v 7.2 1998/03/02 20:36:46 catsos Exp $',0
'$Id: menu_pwarn.c,v 7.2 1994/10/27 19:57:36 catsos Exp $',0
'$Id: multigpi.c,v 1.7 1999/07/01 20:53:27 nucats Exp $',0
'$Id: multitxt.c,v 1.4 1999/07/01 20:53:27 nucats Exp $',0
'$Id: oa5000.c,v 1.3 1998/08/27 18:04:08 catsos Exp $',0
'$Id: oa.c,v 1.2 1997/03/19 17:39:58 catsos Exp $',0
'$Id: operset.c,v 1.1 1994/06/28 17:18:02 claudr Exp $',0
'$Id: os_active.c,v 7.6 1997/03/18 16:40:53 catsos Exp $',0
'$Id: os_chg_control.c,v 7.3 1998/02/23 20:05:28 catsos Exp $',0
'$Id: os_color.c,v 7.1 1994/10/27 19:57:38 catsos Exp $',0
'$Id: os_endmenu.c,v 7.2 1998/03/20 16:41:43 catsos Exp $',0
'$Id: os_env.c,v 1.2 1999/08/31 20:22:52 nucats Exp $',0
'$Id: os_err.c,v 7.1 1992/10/12 23:22:43 stefanus Exp $',0
'$Id: os_fileio.c,v 7.6 1995/06/22 13:38:36 catsos Exp $',0
'$Id: os_help.c,v 7.1 1993/09/22 16:23:11 catsos Exp $',0
'$Id: os_hlpdisplay.c,v 7.2 1994/10/27 19:57:41 catsos Exp $',0
'$Id: os_hlpmisc.c,v 7.2 1994/09/14 15:58:51 catsos Exp $',0
'$Id: os_interrupt.c,v 7.3 1994/10/27 19:57:43 catsos Exp $',0
'$Id: os_main.c,v 1.5 1999/08/31 20:22:52 nucats Exp $',0
'$Id: os_misc.c,v 7.4 1997/02/14 23:01:03 catsos Exp $',0
'$Id: os_pctime.c,v 7.1 1994/10/27 19:57:48 catsos Exp $',0
'$Id: os_route.c,v 7.1 1994/10/27 19:57:49 catsos Exp $',0
'$Id: os_route_init.c,v 7.1 1994/10/27 19:57:51 catsos Exp $',0
'$Id: os_run_proc.c,v 7.1 1998/03/20 16:40:59 catsos Exp $',0
'$Id: os_sel_dut.c,v 1.2 1999/08/31 20:22:52 nucats Exp $',0
'$Id: os_sel_mode.c,v 7.4 1998/01/19 19:24:35 catsos Exp $',0
'$Id: os_sel_proc.c,v 7.5 1998/05/20 16:49:33 catsos Exp $',0
'$Id: os_sel_test.c,v 7.0 1992/10/12 22:28:44 stefanus Exp $',0
'$Id: overload.c,v 1.6 1999/07/05 02:08:02 nucats Exp $',0
'$Id: pcompcal.c,v 1.7 1999/06/24 16:40:46 michaelp Exp $',0
'$Id: pcompchk.c,v 1.6 1999/06/02 20:11:22 michaelp Exp $',0
'$Id: pfcheck.c,v 1.2 1996/04/24 16:17:50 datt Exp $',0
'$Id: pg.c,v 1.1 1998/01/19 19:25:16 catsos Exp $',0
'$Id: pgsetup.c,v 1.2 1995/04/13 21:38:08 rona Exp $',0
'$Id: pipebal.c,v 1.3 1999/06/02 20:22:33 michaelp Exp $',0
'$Id: pmeasure.c,v 1.5 1999/07/02 14:47:51 nucats Exp $',0
'$Id: pnpltcal.c,v 1.3 1997/06/30 14:41:11 michaelp Exp $',0
'$Id: presult.c,v 1.5 1999/09/21 14:52:45 nucats Exp $',0
'$Id: ps.c,v 7.7 1998/02/04 21:48:06 catsos Exp $',0
'$Id: psDmISet.c,v 1.2 1998/05/19 03:24:30 michaelp Exp $',0
'$Id: ps_man.c,v 1.1 1997/07/10 18:11:36 cats Exp nucats $',0
'$Id: pwr_cycl.c,v 1.3 1994/08/26 22:37:28 claudr Exp $',0
'$Id: qconfig.c,v 1.3 1999/07/04 05:16:59 dougro Exp $',0
'$Id: rdutlib.c,v 1.6 1995/04/13 21:38:28 rona Exp $',0
'$Id: resultsm.c,v 1.6 1999/07/01 20:28:16 nucats Exp $',0
'$Id: ringbell.c,v 1.16 1999/03/03 15:48:04 nucats Exp $',0
'$Id: rndnoise.c,v 1.3 1999/05/27 16:29:09 nucats Exp $',0
'$Id: rrcvrcal.c,v 1.14 1999/06/08 22:09:47 danmc Exp $',0
'$Id: rt.c,v 7.9 1998/01/19 19:24:35 catsos Exp $',0
'$Id: scaleuni.c,v 1.5 1999/07/01 20:53:27 nucats Exp $',0
'$Id: selsec.c,v 1.5 1999/07/14 20:46:26 michaelp Exp $',0
'$Id: seq_pf.c,v 7.1 1992/10/12 23:48:50 stefanus Exp $',0
'$Id: setnvram.c,v 1.2 1995/04/13 21:38:36 rona Exp $',0
'$Id: setupdut.c,v 1.13 1999/05/27 17:35:14 nucats Exp $',0
'$Id: sg5030.c,v 7.3 1998/01/19 19:37:40 catsos Exp $',0
'$Id: sg.c,v 7.16 1998/10/27 22:28:05 catsos Exp $',0
'$Id: shipdoc.c,v 1.14 1999/07/02 00:23:44 dougro Exp $',0
'$Id: si5020.c,v 7.5 1998/10/27 22:28:05 catsos Exp $',0
'$Id: snvalflg.c,v 1.2 1996/05/07 17:14:55 rona Exp $',0
'$Id: spc.c,v 1.3 1996/04/24 16:19:00 datt Exp $',0
'$Id: srchmisc.c,v 1.6 1999/05/26 18:53:13 nucats Exp $',0
'$Id: startend.c,v 1.19 1999/05/27 19:45:00 nucats Exp $',0
'$Id: stenmisc.c,v 1.12 1999/07/01 20:28:16 nucats Exp $',0
'$Id: stubremoveDut.c,v 1.1 1996/04/09 19:40:46 catsos Exp $',0
'$Id: t_acc.c,v 1.3 1998/06/03 17:45:30 jimk Exp $',0
'$Id: t_dsens.c,v 1.2 1999/05/27 16:30:18 nucats Exp $',0
'$Id: t_gacc.c,v 1.1 1994/06/28 17:18:48 claudr Exp $',0
'$Id: th.c,v 7.2 1993/09/22 16:24:20 catsos Exp $',0
'$Id: t_jitter.c,v 1.2 1999/05/27 16:32:01 nucats Exp $',0
'$Id: tmode.c,v 1.5 1999/07/01 20:53:27 nucats Exp $',0
'$Id: t_msens.c,v 1.2 1999/05/27 16:33:36 nucats Exp $',0
'$Id: t_pacc.c,v 1.1 1999/06/09 22:02:47 loch Exp $',0
'$Id: tposcal.c,v 1.15 1999/08/13 20:15:54 sonn Exp $',0
'$Id: tposchk.c,v 1.8 1998/07/30 15:18:26 danmc Exp $',0
'$Id: trigsens.c,v 1.3 1995/11/28 23:55:57 claudr Exp $',0
'$Id: tsterror.c,v 1.4 1999/07/01 20:53:27 nucats Exp $',0
'$Id: tstmaloc.c,v 1.5 1999/07/01 20:53:27 nucats Exp $',0
'$Id: util_sleep.c,v 1.4 1999/11/02 22:20:00 nucats Exp $',0
'$Id: v_bal.c,v 1.3 1999/06/16 23:49:19 datt Exp $',0
'$Id: v_bw.c,v 1.6 1998/04/23 23:42:49 michaelp Exp $',0
'$Id: v_gain.c,v 1.7 1999/05/27 16:37:44 nucats Exp $',0
'$Id: v_hfstep.c,v 1.6 1999/09/14 17:47:26 claudr Exp $',0
'$Id: v_lfstep.c,v 1.6 1998/05/25 22:26:12 danmc Exp $',0
'$Id: v_off.c,v 1.7 1999/07/07 00:09:06 datt Exp $',0

--- End code ---

TERRA Operative:
Good work!

I'm off to Canada for a week or so to stare at the aurora borealis and buy some western clothes and shoes that fit me.... :D But when I'm back in Japan, I'll have time to poke at things and play around.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

There was an error while thanking
Thanking...
Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod