• State Not Answered
  • Date
  • Date 29 Jun 2011 19:29
  • Replies 12 replies
  • Subscribers 157 subscribers
  • Views 7289 views
Product Documentation

nice challenge for anyone interested !

[Migrated content. Thread originally posted on 29 June 2011]

Hello guys,

I am new here, and I come here loaded with a "problem" that needs solved somehow.

This is the brief:
I am myself a consultant/programmer/sysadmin, and I have been trying to help a friend of mine with an application he has running in an old Xenix 3.2.4 system, in an old 386, since 1990 !!!!!!!!!! (original disk!!!!)

We have managed to put the hard disk into another old system, and with knoppix we did a "dd" of the disk through NFS into my linux laptop, and also burned a few copies to CDrom.

I then managed to extract the files (the Xenix file system spec is actually wrong in one spot and it took us a while to figure that out), and I have the tarball and also the full file system (complete) with all the files available, and properly untarred, without corruption. Took me and some other genius buddy of mine 3 months to figure that out !

Now, I have the following problem. The application runs using the "runcobol" program, which in itself seems to be an old 286 (16bit) application. Most of the files in the application are ".obj" files, I assume they are compiled cobol files.

I have put the files into a trial version of SCO openserver 5.0.7 (running in VMware in my linux laptop), and every time I execute runcobol (I suspect it is automagically loading its 286 emulator), it just crashes (memory fault).

I would like to know if you know of someone really knowledgeable in this area, so that they may be able to help us to recreate a runcobol program that will run on Sco Openserver, or maybe move this to Linux, I don't know what would be best at this point.

thanks a lot, I really hope there is someone here with the necessary knowledge to help me out.
We are willing to pay consulting fees !
  • Firstly, I would suggest trying to find out what COBOL product you have.
    The chances are you may be able to purchase an up-to-date version of the run-time (i.e. runcobol)
    and run the application on Linux, etc.

    It seems you could have an old version of RM/COBOL, which is still available, as a current COBOL

    To check this out you should check out the various directories for documentation where the run-time
    files are, e.g. as a sub-directory off /usr maybe. You also try using grep(?) to do a search for the string 'RM'.

    The other possibilities are that you have an AcuCOBOL run-time, or there was also another COBOL compiler
    available then called ACE, I think.
  • Cheers colemanj

    I did a "strings runcobol" and found this:

    RM/COBOL Runtime (ver 2.1A1)
    Copyright 1983,1985 by Ryan-McFarland Corporation. All rights reserved.
    usage: runcobol file [-a] [-b n] [-d] [-f n] [-k] [-r] [-s value]

    I will investigate a linux version of this to run the ".obj" files.
    Example, this application is started by a shell script when some specific user logs in, like this:

    (in the .profile, the last line reads:)

    exec runcobol -k htmenu.obj

    I guess I have still a long learning curve, on how to run a .obj file with a linux runcobol , that I know they only run .cob , but I am not sure at all.

    I will keep investigating and testing, and post my findings here.
  • so, apparently it's an old x286 version too.

    on linux, in the Xenix tree, I did: file ./runcobol
    ./runcobol: Microsoft a.out separate pure segmented word-swapped not-stripped pre-SysV V3.0 286 small model executable Large Text not stripped
  • Tested this on a linux version of rm/cobol without luck yet:

    exec runcobol -k htmenu.obj

    RM/COBOL: Message file version mismatch.

    RM/COBOL Runtime - Version 7.10.00 for Linux (Intel).
    Configured for 0050 users.
    Copyright (c) 1985, 1986-2000 by Liant Software Corp. All rights reserved.
    Registration Number: 7H-0000-10698-0050

    Usage: RUNCOBOL name [options]
    Options: [A=arguments] [B=buffersize] [C=configfile] Drinks Idea [K]
    [L=libname] [M] [S=switches] [T=sortsize] [V] [X=configmod]

    (btw, I copied the RUN.MSG , REC.MSG and RMC.MSG to /etc and /usr/bin and the current execution folder, but I still get that version mismatch message)
  • I don't fully understand.
    It looks like you've copied the Xenix run-time to Linux, because the version and copyright info is from the year 2000. RM is now at version 12 (I think).

    As I see it, your best approach is to purchase an up-to-date Linux RM/COBOL run-time/license from Micro Focus, and
    install it on the Linux machine, then copy your object files and shell scripts.

    As far as I know, RM allows object extensions to be defined by the user if the user does not want to use the default extension, which might explain the .obj extension rather than .cob.
  • hello again,

    no, I found a source package of rm/cobol somewhere, downloaded it, and compiled it in linux.

    It's an old version maybe yeah, maybe that's why it won't work right.

    I will see if I can get a newest version from microfocus, is there a trial version I can test for linux ? that will allow me to run the .obj files

    BTW, these .obj files seem to be precompiled cobol somehow. i.e. they are not text files, they are binary, so I hope my linux cobol proggy can run them properly. I can't find the original source .cob files anywhere in the app, just .obj files and database files (.inx, etc)

  • Hello again guys,

    I have had no luck contacting Microfocus, filled up a contact form to sales with my request for an RM/Cobol license, but I have received no answer.

    Does anyone know how to purchase this product, hopefully with support ? since looks like I will need it !

    I would really appreciate further info.

  • Please email your contact info to me directly (at chuck.edgin@microfocus.com) and I'll put you in touch with a sales rep who can assist you.

  • Dear friends, indeed the first step is to purchase a license for RM / COBOL for UNIX, Linux or Windows.
    As the version of RM / COBOL was Xenix 2.x is, if there are changes that do and they have to convert files and recompile programs to ANSI 85.
    Any help will be to serve them.
  • OK guys, the last reply I got from Rupert at Microfocus is that the .obj files are way to old to be read by version 12 of RM/Cobol.

    Question to any of you, does anyone know if I can use maybe an old installation of RM/Cobol (say version 8 or 9), and that will be able to read the .obj files ?

    I know the original sourcecode files were in some 5.25 inch floppies and have since disappeared, Ergo the need to use the old .obj files to continue forward.

    cheers, and thanks to anyone who's willing to jump in, we are willing to pay well for consulting on this if it can bring a solution.
    We have successfully decoded the Xenix file system from the drive, and were able to recreate the complete file system and its sitting on my linux laptop. But I can't make the proggies work unfortunately.


    Okay guys, the latest is, I have gotten XENIX 2.3.4 to run under a VirtualBox, and it seems to work well.
    Take into consideration, this is RM/Cobol 2.1A1 286 (from the core files it dumps)

    I used kermit over a host pipe to transfer the data from the backup of the old system.

    I moved the /usr/rmcobol folder over,and copied /usr/rmcobol/runcobol to /usr/bin

    Copied the environment almost exactly (*well i have no /dev/rmt0 since there is no tape drive)
    however, every time I execute "runcobol -k htmenu.obj" (the main entry object file), it comes up with Memory Fault - core dumped

    I haven't been able to deduce what is the core about.
    in fact, every time I execute runcobol, or rmcobol, it dumps core. Shouldn't it give me at least a "Usage" message ?

    Anyone have an old user guide ?

    I appreciate the help.

    by the way, the only proggies I see in the rmcobol tree are:
    find ./usr/rmcobol/ -print

    and then the copy of runcobol in /usr/bin/

    am I maybe missing som parts ?
  • ROBERT Estimdo:

    We have over 25 years of experience with RM / COBOL, if you try to run XENIX versions of products to another platform such as Linux, Unix, or Windows, this will not be possible because the kernel is different in each case. In Unix you in early versions may work but are no longer available.
    Our sujerencia is to buy the latest versionde RM / CIOOBOL and do the cnversion of version.
    Nonosotros we can assist in the migration, if you want you can do a demo, with a data file and send us details of their structure (SELECT and FD).
    Tell us where you write.
    Any other concerns please write us.