Please ignore any reference to a telephone number or address for CharterHouse.  Instead, contact Tamlin Software Developers

Running CharterHouse on a Linux (UNIX) server

This applies to CharterHouse versions 3.10A and later.

Yes, it does work.  CharterHouse does not support this configuration, but it has been tested and is available for your inspection.   It works far better than Windows NT server (also not supported).  You are welcome to make an appointment to come and examine our setup.  If you do not understand this document, do not attempt this.  There is no such thing as UNIX FOR DUMMIES.

Advice: Buy Linux Network Toolkit by Paul G. Sery (IDG books ISBN 0764531468).  This is a step-by-step guide and contains both Red Hat 5 and Samba.  It is worth every cent of its $50 cover price.  There is also Samba: Integrating UNIX and Windows by John D. Blair ($30 published by Computer Literacy, ISBN 1578310067) which you may wish to browse.

If you follow Sery's instructions, perhaps it is permissible to be a UNIX dummy.

Our system consists of a Slackware 7 Linux server (host) and MS-DOS clients.  We suggest a Slackware distribution of Linux, although other distributions will also work.  You will need to compile a stable ("not experimental") Linux kernel version 2.0.33 or higher that supports the hardware upon which it runs.  When you 'make config', say NO to Samba so that the Samba you load is the one you compiled; thus no surprises.  Since Microsoft networking requires SMB, we recommend you use Samba, version 1.9 or higher (stable release).  In order to minimize the use of third party software, we use TCP/IP, which requires that you assign an IP address (preferably two) to each computer on the network.  Samba contains a sufficient Name Server.  You can download a package that will allow Windows 3.1, Windows 3.11 ("Win3.1x") and / or MS-DOS version 3.31 and higher to LOGIN to the UNIX server, currently at  Please read the license agreement and be aware that there are no installation instructions with this package.  It also uses gobs of conventional and expanded memory, so we recommend that a good memory manager such as QEMM be employed; CharterHouse programs need at least 570K of conventional memory on each client to run efficiently. Windows for Workgroups requires that you use Microsoft's 32-bit TCP/IP from   You should also peruse the directories under /bussys and /peropsys there.  Windows 95 and Windows 98 ("Win9x") do not require any additional software.  Windows NT Workstation cannot be used.  Samba can be obtained from the source at  We recommend that you document your setup / configuration decisions immediately after compiling a working Samba setup; it will prove valuable in testing and configuring Samba.

Although Linux can and will run on a PC, the use of the term "PC" within this document refers to a computer with an Intel or compatible CPU running under Microsoft DOS version 3.31 or higher.  If you use a DOS version lower than 5.00, a third party memory manager will be required.  With a version of DOS that contains MEMMAKER, you may get by with EMM386.EXE RAM, although we were not able to obtain a sufficient LARGEST EXECUTABLE PROGRAM SIZE (our best was 510K; CharterHouse needs 570K) when we ran MEM_t_AKER.  While other DOSes do exist, CharterHouse does not support its software for use under any operating system other than Microsoft DOS.  "UNIX" and "Linux" refer to the host computer, which may run any processor that Linux can support.  Again, while there are other UNIX operating systems than Linux, their use is at your risk. We have tested only Linux.

The UNIX box:

Set up the networking by running the configuration program.  RFC1597 has specified IP addresses for private networks. You should use 192.168.#.# for a class C network.  Although you can run a Name Server, it is simpler to just set up your /etc/hosts file so that all machines are delineated there.  The files affected by the network configuration program are /etc/HOSTNAME, /etc/networks, /etc/resolv.conf and /etc/hosts.

Create accounts with passwords for each user. UNIX does not care whether or not a password exists, but DOS requires it. Be aware that there are security problems in the default UNIX passwording which PAM or Shadow are designed to solve.  However, neither is 100% compatible with all software so you will need to decide whether or not to use one of these.  Our system runs fine with Shadowed passwords and Slackware.

Create a directory for your CharterHouse (and other) programs; we use /apps. On the PC, this directory will display as if it were a volume label. (This is not the executable \CHARTER directory).  Set the attributes of this directory so that there are no restrictions on its access; that is, chmod 777 it.  We recommend it be a top-level directory.

Edit Samba's Makefile so that it matches your directory structure and reflects your decision regarding PAM or Shadowed passwords.  Make and install it.  Edit smb.conf (wherever you had make put it) and add a section to it similar to the following:

comment = Applications
path = /apps
valid users = john1 john2 kim1 kim2 peter1 peter2 tina1 tina2
create mask = 0777
guest ok = yes
writable = yes

Run testparm to confirm that smb.conf is error-free.  Check /etc/rc.d to verify that rc.samba exists and is executable.  Reboot the UNIX box and confirm that Samba loads.

The PC:

All of your clients need a CONFIG.SYS that allocates these resources:

FILES=  CharterHouse suggests that Win3.1x-based machines set 99; DOS machines can get by with 45.
BUFFERS=  Set the maximum number of BUFFERS that will not reduce conventional memory.  For Win9x this is usually 20 or 34. For DOS 5 or higher, it is near 40.
   Where possible, set
STACKS=0,0  In cases where that fails, set STACKS=9,256. Win9x needs no STACKS setting.
   DOS and Win3.1x machines should also set

AUTOEXEC.BAT is only needed on machines that run DOS or Win3.1x; Win9x does not need any AUTOEXEC.BAT at all.  Microsoft creates a recommended CONFIG.SYS and AUTOEXEC.BAT when the TCP/IP software is installed; you should use these as guides. CharterHouse does not need any drive cache, but if you insist, use the most current version you can find (SMARTDRV v5.1 or higher).  Please keep its memory usage minimal and load it after MSCDEX so that it caches the CD-ROM.  The network drivers must be loaded as soon as possible, so your AUTOEXEC.BAT should look something like this:

C:\DOS\MSCDEX.EXE  /D:driveID  /E  /L:D  /M:32  /V
C:\DOS\SMARTDRV.EXE  /X  A-  B-  C  D  256  16  /B:8192
   If needed, increase "256" and "16" to 4096, RAM permitting...
Reboot the computer if you changed any of these settings.

Setup - General:

If your network card ("NIC") is ISA, you should run the setup program (from DOS!) on its installation floppy to confirm that the IRQ and PORT settings work.  If the card is Plug-and-Play, you might be lucky enough to skip this.  Confirm the settings and jot down the appropriate information.

Setup - Win9x:

The easiest test system is a Win9x based PC.  If you do not have one, see one of the sections below that explains either a Windows for Workgroups or a DOS / Win3.1x setup.

Go to the Control Panel and select the Network icon.  Select the Identification tab and set the Computer name to one of your valid UNIX (Machine Name) logins.  Set the Workgroup to correspond to that in Samba.  You may leave the Computer Description blank.  Select the Configuration tab and click the Add button. Select Client and click Add.  Select Microsoft on the left and Client for Microsoft Networks on the right, then click OK. Add the Adapter (which may also add the IPX protocol); install the proper card drivers for your network card.  Once again click Add, select Protocol and click Add.  Select Microsoft on the left and TCP/IP on the right, then click OK.  This step is optional but recommended: remove the IPX protocol.  Make sure Primary Network Logon is Client for Microsoft Networks.  Select the TCP/IP protocol and click on PropertiesBindings are to Client for Microsoft.  For now, set DNS to Disabled.  In Gateway, Add the IP address of the UNIX box.  For now, disable WINS resolution. Finally, specify the IP address for this machine so that it corresponds to that on the Linux box.  Click OK on Properties.  Click OK on Network.  Windows will install any necessary software and suggest you reboot the computer.  Do so.  Confirm that you get a network login prompt when Windows restarts.  In that prompt, enter the same password as that set up on the UNIX box and click OK.

DOS and Win3.1x (not Workgroups) PC:

There is no documentation with this package when you download it from Microsoft.  Extract the two executables to two floppy diskettes.  Be sure your network hardware (NIC) is installed and connected to the Linux box.  Insert disk 1 into drive A:.  Log to the A: drive.  Run SETUP.  Enter the desired path to your network drivers; by default this will be C:\NET.  We recommend you hit ENTER rather than C so that SETUP optimizes buffers.  Enter the UNIX (Machine Name) login name of this workstation. Select CHANGE NETWORK CONFIGURATION and verify the NIC driver; usually SETUP finds the correct NIC but often the IRQ and PORT are wrong. Add the TCP/IP protocol and set the IP Address and NetMask for this machine.  Go to CHANGE NAMES and set the correct WORKGROUP and DOMAIN names; confirm that the Machine Name is the same for both the USER and COMPUTER name.  Select CHANGE SETUP OPTIONS and confirm USE THE FULL REDIRECTOR, RUN THE NETWORK CLIENT and DO NOT LOGON TO DOMAIN are set.  When everything is correct, ENTER to confirm.  At the "PLEASE INSERT" prompts, please remember that there are two disks <grin>.  The necessary files will be copied to your NET directory.  If SETUP cannot find a driver that suits your NIC, you will need to install the correct driver from the diskette supplied with the NIC.  Examine the suggested CONFIG.SYS and AUTOEXEC.BAT files.  Edit C:\CONFIG.SYS to contain LASTDRIVE=Z and DEVICE=C:\NET\IFSHLP.SYS.  Do not create an AUTOEXEC.BAT yet.  Reboot.  Now, type each line of the suggested C:\NET\AUTOEXEC.BAT and read each response.  Correct any problems now.  Edit C:\AUTOEXEC.BAT so that the necessary drivers are loaded.  See the section below that refers to DOS / Win3.1x PC.

Windows for Workgroups PC:

If you download the suggested drivers, you will find complete installation instructions inside the archive.  Follow those instructions.  Since much of the setup is similar to Win9x (as described above), refer to that section for guidance.  It is important that the NIC software be 32-bit.

Win9x PC:

Open a DOS prompt on the PC and PING the IP address of the UNIX box.  If it fails, fix it.  If it works, go to the UNIX box and ping the IP address of the PC.  If it fails, fix it. If it works, ping the PC by name.  If that works, confirm your Samba setup by following the instructions in DIAGNOSIS.txt that are provided with Samba.  On the PC, from DOS, run NET VIEW \\servername.  You must see the directory you set up in smb.conf in that list.

Go to Network Neighborhood and confirm that the UNIX server shows.  Double click on its icon, then right click on the directory icon; map a drive letter to the directory.  Click Reconnect at logon and OK.  If you are prompted for a password, use the UNIX password for this PC.

DOS / Win3.1x PC:

Load the necessary drivers in CONFIG.SYS and AUTOEXEC.BAT.  From the NET directory, PING the IP address of the UNIX box.  If it fails, fix it.  If it works, go to the UNIX box and ping the IP address of the PC.  If it fails, fix it. If it works, ping the PC by name.  If that works, confirm your Samba setup by following the instructions in DIAGNOSIS.txt that are provided with Samba.  On the PC, run NET VIEW \\servername.  You must see the directory you set up in smb.conf in that list.  Map a drive letter by typing


If you are prompted for a password, use the UNIX password for this PC.  You should now be able to type DIR F: and see a directory listing.  Start Windows if applicable.

Windows for Workgroups PC:

Open a DOS prompt and type SET.  You must see the full DOS environment.  If not, fix your network setup.  PING the IP address of the UNIX box.  If it fails, fix it.  If it works, go to the UNIX box and ping the IP address of the PC.  If it fails, fix it.  If it works, ping the PC by name.  If that works, confirm your Samba setup by following the instructions in DIAGNOSIS.txt that are provided with Samba.  On the PC, from the DOS prompt, run NET VIEW \\servername.  You must see the directory you set up in smb.conf in that list.  You map a drive via the File Manager.  Be sure to X the RECONNECT box; we suggest you remove the X from the BROWSE box.


CharterHouse recommends that you remove the IPX protocol on all your workstations.  Use TCP/IP instead.

Software installation:

On the PC, from a DOS prompt, insert the CharterHouse diskette containing the Master Menu in drive A:.  Type A: and hit ENTER.  Type INSTALL and hit ENTER.  Continue to install all of the modules (that have an INSTALL.EXE) now.  When complete, if INSTALL did not create data files, initialize them.  Remember that you need to run Master Menu (F2-5) Utilities - Computer Definition and set the Network Device Map to the drive letter where you just installed. We recommend you check the (F2-3) Utilities - Company Maintenance record for the company, making sure the FILE LOCATIONS at the bottom of that record all contain a (valid) number corresponding to the Network Device Map as set in Computer Definition.  Finally, use F2-2 to select the correct company for processing.

Go to the UNIX box and chmod 777 the installation directory and all files in it, as well as the data directory and all files in it; users must have unrestricted access.  If you run ATTRIB *.* and see R (read-only) attributes, you have not granted full access and CharterHouse will fail.

Cold boot both the Linux box and the PC.  Run your CharterHouse program.  In the Master Menu, confirm that the correct company is selected for processing and that the Machine Name is displayed in the top left corner of the screen.  If not, fix it - usually by running  MNAME.EXE  UNIXname  before starting the CharterHouse program.  Now you can create a batch file, PIF or shortcut to run the software.  MNAME comes with CharterHouse's Windows Integration Kits.

Printing to a UNIX printer:

On the Linux box, edit /etc/printcap.  You need an entry similar to this:


For a laser printer, suppress form feeds (:sf:) may be inappropriate.  Make sure you can print from UNIX:

lpr  charter.bat

Check your Samba smb.conf file, which should look similar to this:

comment = All Printers
path = /var/spool/lpd/oki
browseable = no
print ok = yes
create mask = 0700

On the PC, capture the printer as LPT2 (or LPT3). Do not install any print driver on the PC for this printer.  In CharterHouse, test by selecting some print option and enter correct information at the PREPARE YOUR PRINTER prompt.  For a dot matrix printer this would be 2:NORMAL while for a laser printer it would be 2:LASER-N (assuming 80-column reports).

Our setup does not require the use of any print filter.  But yours might.

Questions and answers:

Q: Why can't I use Windows NT or NT Workstation?
A: Because NT is a DOS emulator and its emulation is insufficient to run CharterHouse programs.

Q: Slackware 3.4.0 won't compile Samba.
A: There is a problem with the binary distribution of the GNU C compiler.  Either update your Slackware or recompile gcc- from the source on the CD.  The configuration for Slackware is i486-unknown-linux-gnulibc1.

Q: Can I open two or more instances of CharterHouse in Windows?
A: No.  Well, at your own risk.  It is discouraged because irrecoverable data corruption can occur with non-unique Machine Names.

Q: Why must I use Microsoft DOS?
A: As the software publisher, CharterHouse has the right to specify the operating environment under which it runs.  We require a robust, standard DOS.  Our source code and compilers are created using Microsoft products.  Samba expects Microsoft Networking.

Q: Can the workstations be simple serial devices attached to the server?
A: No.  We require that the client execute DOS programs, which requires the client to boot a DOS operating system.

Q: I'm stuck.  Even after checking out your system I can't make my setup work.  Can't you help me?
A: No.  If you can't build it, you can't maintain it either.

Q: Why TCP/IP rather than some other protocol?
A: Because other protocols require that some third party software be used.  TCP/IP works.  The "whole world" is using TCP/IP because it is the "protocol of the Internet".  Linux support of other protocols is no longer being maintained.

Q: Can CharterHouse users gain access to other parts of my UNIX system? In particular, I'm concerned about the password file and other security issues.
A: No, because you must specifically grant access.  See the documentation for smb.conf.  However, be very careful about granting access via a dialup connection; savvy users might avoid (not be restricted by) Samba.  And avoid smbmount.

Q: Can I backup and restore from the client?
A: Yes.  We recommend the use of our Zip Backup package for backup and restore of the data files.  It does not backup the executable directory, so you'll probably want a tape backup on the UNIX system also.

Q: My Windows clients occasionally hang while processing. Reboot, retry is almost always successful.  What is causing these crashes?
A: This is the author's opinion, so take it for what its worth.  Windows is a multitasking environment and it "just gets lost". It "forgets" that an application is running so it does not return to it. For example, you can watch Windows check the CD-ROM drive when no disk is in it and while you are running some application; why does it do that? Grr! The other most common reason is video.  In spite of years of problems caused by bad video drivers, they still proliferate.  I think this is because they are designed to perform well in Winstone rather than be robust.  Shame, because there are Lies, Damn Lies and Benchmarks (in that order)...  And the final reason is that Microsoft wants DOS to die, so support for DOS programs is as minimal as they can justify.

Q: What does SMB mean?
A: SMB is an acronym for Session Message Block protocol.

Q: What precautions should I take?
A: Charterhouse printer definitions are destroyed if you reinstall.  Save the files with @MM extensions if they are modified for your printers.  Computer setups, company records, passwords and other information that is either difficult or time-consuming to recreate are in files with MM extensions.  We recommend you make simple backups of these so they can be easily restored:
COPY  *.MM  *.SAV  will do the trick.

Old files in the data directory which have numeric extensions should be purged occasionally.  Purge files in the executable directory that begin with TEMP and those with RPT or numeric extensions.

Backup often and use a rotating backup so that at least 3 backups are available for restoration.  One should be kept offsite.

REINDEX and TRUNK data files occasionally. It speeds file access and helps prevent data errors.

Run CHLOCK regularly.  Watch out for users who show as logged in when they are not.  Find the reason and fix the problem so it does not continue.  It is critical that every user have a unique, non-blank Machine Name which is displayed in the top left corner of the Master Menu screen.  Duplicate or blank machine names are guaranteed to cause you grief.  When you run CHLOCK, there should never be a "User no. 1".

Return to the Home Page    Return to Help