PC99 and Linux

From Ninerpedia
Revision as of 21:56, 5 January 2015 by Stephen Shaw (talk | contribs) (small spelling correction)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

The commercial TI99/4a emulator PC99 has been written for DOS based systems, and will run in many Windows systems.

To run it under Linux it requires DOS emulation, which is supplied in most Linux distributions in the form of dosemu.

This article describes how a Linux owner can run PC99 with minimal difficulty.


USING PC99 WITH DOSEMU 1.4.0.1 (using the Freedos supplied with dosemu)

If not already installed, install DOSEMU 1.4.0.1 and run xdosemu (under X11) or dosemu (if at Linux console). dosemu is included in almost all distributions of Linux and may already be installed.

Running xdosemu (try it with -h option) will set in place a file structure which may vary in different Linux distributions but the use of the home directory will probably be identical in all. In most use (but see below re sound) only the home directory is of importance.

Using an X11 server the command to use is xdosemu

Structure of dosemu on your system

 In my system running XDOSEMU creates:
          in my home directory:   .dosemu/     
              containing directories:
                                drive_c   which contains:
                                             directory   /tmp
                                             and files   autoexec.bat
                                                         config.sys
                                run which contains dosemu-midi
                                drives which contains:
                                          c which links to drive_c above
                                          d which links to /usr/share/dosemu/drive_z


(Note - in the directory drives, using any other letters or order will not change their actual use, in dos first will be c anyway)


Location of supplied freedos

In /usr/share/dosemu/drive_z can be found FreeDOS in several directories and files kernel.sys and command.com. The files autoexec.bat and config.sys are templates copied to your home directory and are not used. The files autoemu.bat and config.emu are provided in case you with to use some other dos than freedos.


Drive D?

PC99 will not need a DOS drive D but I have set one up for other uses as follows.

Drive D for dosemu - not really relevant for PC99 but this reflects our install:

By default drive d is in your home directory but I have mapped it to the location I prefer by means of an entry in autoexec.bat. First REM out the old lines referring to drive D:

rem unix -s DOSDRIVE_D
rem if "%DOSDRIVE_D%" == "" goto nodrived
rem lredir del d: > nul
rem lredir d: linux\fs%DOSDRIVE_D%
rem :nodrived

then insert:

lredir del d: > nul
lredir d: linux\fs/newlocation  eg where newloacation would be eg /windows/e/dosdata

PC99 and DOS drive C

Our PC99 is in /win/x which I have allocated a DOS drive as follows in the config.sys in my home directory:

devicehigh=d:\dosemu\emufs.sys /win/x 

Although I have used d: in the devicehigh setting, emufs.sys will end up mapped in z: due to changes later on by config.sys. DOS has already been told about drives C and D(to become Z) so it will allocate DOS drive E for PC99.

I launch PC99 using George Shaw's menu.bat system

To run pc99 I have created a couple of batch files located in E:\PC99:

dosemu.bat is:
@ECHO OFF
E:
CD \PC99
CALL 99MENU.BAT
EXITEMU

99menu.bat is the same as supplied with PC99 Menu.

And I run this with xdosemu -E "E:\PC99\dosemu.bat" (including the double quotes).

Note the path to the batch file is a DOS path, with backslashes, the -E is passing this to dosemu as a dos command.

SOUND and DOSEMU

dosemu has issues with sound, notably not supporting fm sound and uses a legacy sound system called OSS. Additionally on our system we have had to amend the default sound setting for dosemu. This is by adjusting the "$_sound" setting in (on our system) /etc/dosemu/dosemu.conf.

Change the sound setting line to read "$_sound = (2)". Set PC99's sound configuration to Soundblaster Compatible.

On an older PC with a genune SB64 card we were unable to obtain sound with dosemu.

We found incompatabilities between sound with dosemu and the Pulseaudio system, causing dosemu to crash when sound was enabled. You may need to set dosemu sound off if you have pulseaudio. It may be worth trying to use dosemu sound with pulseaudio not running. PC99 can be set to use one sound channel and the PC "speaker" (still retained in most PCs for warning beeps).