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):
14921 Feb 19 1999 ASK3C4C.EXE
783572 Jan 20 2000 TDS700CG.EXE
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!!!"
.
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)"
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.
'$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