blog:486_advantech_pca6145

This is a 486 level system (socket 3) on a single 16bit ISA card. It is very compact, with almost everything you would want in a DOS system.

I bought this card in February 2024 with the intention to build an ultra small form factor DOS PC, so that I could put all of the full-size systems away in storage, to claw back some space in my office.

  • Socket 3 (CPU support from Intel 486DX-33 up to 133MHz models from AMD and the Cyrix/IBM 5×86), supports both 3.3v and 5v chips
  • VIA VT82C496G chipset
  • 128KB secondary cache
  • 1MB C&T 65550 VGA, connected via VESA Local Bus.
  • Primary IDE controller (up to 2 devices)
  • Floppy controller (up to 2 devices, both 3.5“ - 720,1440,2880k - and 5.25” - 360,1200k - support)
  • 1x 72pin SIMM socket, supporting EDO
  • Parallel port
  • Serial port
  • PC/104 interface
  • (optional) 10BaseT Ethernet interface
  • (optional) Disk On Module storage

Power is by the ISA interface, or by a 3.5“ floppy style connector at the top of the board.

These are all from the manual, but for quick reference:

NOTE! The locations/labelling for JP15 and JP20 are REVERSED on the user guide and the above images extracted from it The Startup guide has them labelled correctly, but the main user guide is incorrect. Please refer to the Startup guide when setting jumpers for your specific processor!

The startup guide labels the jumpers (correctly) as below:

Position Function Position Function
JP1 Turbo LED CN1 IDE Controller
JP2 Turbo Switch CN2 LCD Connector
JP3 HDD LED CN3 Floppy Drive Connector
JP4 CPU Frequency Select COM1 Serial Port
JP5 CPU Frequency Select COM2 Serial Port
JP6 CPU Frequency Select J1 Alternative Power Connector
JP7 CPU Type Select J2 VGA Connector
JP8 CPU Type Select J3 Ethernet Connector
JP9 Battery J4 External Keyboard
JP11 CPU Type Select J5 External PS/2 Keyboard
JP13 CPU Type Select J6 Keyboard Lock
JP14 CPU Voltage Select J7 PC Speaker
JP15 PS/2 Mouse Enable CN4 Parallel Port
JP20,JP21 CPU Type Select
JP22,JP23,JP24 Disk-on-chip Function Set
JP28 LCD Control
JP29 Watchdog Timer
JP30 Reset Switch
JP35-JP39 COM2 Select

Power Connector J1

The pinout for the J1 power connector is silk screened on the board, but can be a little difficult to make out. It is, as follows:

Pin Signal
1 +5v DC
2 Ground
3 Ground
4 +12v DC

i.e. it is exactly the same as a standard PC 3.5” floppy power connector (4 pin mini spox). The SBC does not appear to have a -12v or -5v DC input header; it will be present on the ISA edge connection, but I am unsure at this time whether either of those voltages is strictly necessary for the SBC to function adequately - it would appear from the manual that it is fine without them.

The card was pretty dirty and very smelly when it arrived, but was otherwise complete and in good condition.

Thoroughly cleaned with 99% IPA, and the rear IO panel rubbed down with fine sandpaper:

Booting

With the 3.5“ FDD power connected to J1, the card by itself powers on without issue:

Image Part Quantity Supplier Cost Description
PCA-6145 486 SBC 1 Ebay £75 Supplied with Intel DX4-100 and unknown 72pin SIMM
ESS ES1868F Soundcard 1 N/A £0 Out of my spares box
Realtek 8019AS Network Card 1 Ebay £16 Ethernet and ROM socket for XT-IDE BIOS
Compaq ISA Riser Card 1 Ebay £12 Three-slot riser used as the backplane mount for the above card
AMD X5-133 CPU 1 N/A £0 Out of my spares box, will replaced the DX4-100
32MB 60ns EDO SIMM 1 N/A £0 Out of my spares box, will replace the unknown 72pin SIMM
Sony MPF920 3.5” Floppy Drive 1 N/A £0 Out of my spares box
Pico PSU 1 N/A £0 Out of my spares box, was previously used for X68000
60 Gelid Silent fan 1 To cool AMD 5×86/133 and/or an Intel DX4. Will probably mount to case, rather than CPU.
Noctua RC-10 3pin fan speed reducer 1 From spares box.
IDE to CF adapter 1 From spares box.
Red LED 1 From spares box. HDD activity LED for front of case
Yellow LED 1 From spares box. Turbo LED for front of case
Green LED 1 From spares box. Power LED for front of case
SPST toggle switch 2 Turbo and Power switch for front of case
SPST momentary switch 1 Reset switch for front of case
340x110x4mm Acacia/Arabica Gum boards 3 Ebay £10/each Sides/front/rear of case
340x150x3mm Maple boards 2 Ebay £9/each Top/bottom of case
300x15x15mm hardwood strips 8 Ebay £12/pack Fasteners/strengtheners for inside of case
Raspberry Pi Compute Module 4 1 ThePiHut.com £29 To run MT32pi/Fluidsynth software MIDI
WP32 McCake 1 Serdashop.com Euro 55 Interface between waveblaster header on soundcard and Pi compute module

With cards fitted to the riser/backplane, it looks like I will just have enough room for a full sized 3.5“ floppy drive at the bottom, so I can add that in without really increasing the overall size of the system:

Overall dimensions look like it is going to be approximately 20cm front to back, 10cm high and 15-16cm wide.

Case Dimensions

  • Top/bottom: 2x 240x150x3mm
  • Sides: 2x 240x110x4mm
  • Front/back: 2x 158x110x4mm

Building the framework, cutting panels to size and test fitting components:

Mounting ISA riser/backplane card:

Using router to radius case edges:

Applied boiled linseed oil to colour/protect natural wood finish:

Case finished, with power, turbo and reset switches, power turbo and HDD status LED's, CF card and 3.5” FDD installed:

Connected up with keyboard and 17“ Dell LCD:


This is a fairly standard setup, there isn't a need for any particular wacky drivers or fancy memory setups. A basic configuration to allow boot in HIMEM + EMM386 (XMS + EMS) and a secondary one to boot with only HIMEM (XMS only) is sufficient for all of the games installed so far.

I am using Win 98SE DOS, which is available on the boot floppy distributed with that version of Windows - mainly because that version of DOS supports FAT32 and large drives. The command line tools to make up a complete DOS install are on the Win 98SE CD. Windows itself is not installed.

Config.sys

[MENU]
MENUITEM STANDARD, HIMEM and EMM386
MENUITEM NOEMS, HIMEM Only
MENUDEFAULT STANDARD,3

[STANDARD]
dos=high,umb
device=c:\dos\himem.sys
device=c:\dos\EMM386.EXE ram
INCLUDE BASIC

[NOEMS]
device=c:\dos\himem.sys
INCLUDE BASIC

[BASIC]
fileshigh=40
buffershigh=20
stacks=9,256
lastdrive=i
SHELL=C:\TOOLS\4DOS\4DOS.COM C:\TOOLS\4DOS\ /P

Autoexec.bat

@ECHO OFF
SET PROMPT=$P$G
SET TEMP=C:\TMP
SET TMP=%TEMP%
SET PATH=C:\DOS;C:\DRIVERS\TLBMM;C:\TOOLS\4DOS;C:\DRIVERS\UNISOUND
SET PATH=%PATH%;C:\DRIVERS\CTMOUSE;C:\DRIVERS\MIDI;C:\TOOLS\VOLKOV
SET PATH=%PATH%;C:\TOOLS\MTCP;C:\TOOLS\SHSUCD;C:\TOOLS\ISOMOUNT
SET PATH=%PATH%;C:\DRIVERS\VESA;C:\DRIVERS\JEMM;C:\TOOLS\BIN

REM =============== Disk cache ====================
LOADHIGH LBACACHE

REM =============== Network Stack =================
LOADHIGH C:\DRIVERS\RTL8019\PNPPD.COM
SET MTCPCFG=C:\TOOLS\MTCP\MTCP.CFG

REM =============== Sound Config ==================
SET BLASTER=A220 I7 D1 T4 P330
CALL UNISOUND.BAT

REM =============== Mouse Driver ==================
CT20 /P /B

REM =============== 4DOS ==========================
LOADHIGH C:\TOOLS\4DOS\KSTACK.COM

The ESS1864F sound chip on the ISA sound card doesn't need any special drivers loaded and works in the following modes:

  • Adlib - FM/OPL2 music/effects, no digital effects
  • Soundblaster 1 - FM/OPL2 music/effects, mono 8bit digital effects
  • Soundblaster Pro 2 - FM/OPL3 music/effects, stereo 8bit digital effects
  • ESS native mode - FM/ESSFM music/effects (1), stereo 16bit digital effects (2)
  • MPU-401 - UART mode MIDI interface (3)

By having support for Adlib, Soundblaster and Soundblaster Pro 2, this chip covers almost the entire range of DOS games. The only titles that would not be supported are anything that predates Adlib; for example Covox or Tandy audio. It may be possible to add a discrete external Covox or Tandy audio adapter to the parallel port in the future.

(1) The enhanced ESS FM mode sounds brighter and allow for more simultaneous FM parts than regular OPL3 playback would allow. Not supported in all games.

(2) Native support for the ESS 16bit digital audio is not very common in DOS titles, but is supported in Windows.

(3) Intelligent mode MPU-401 MIDI is not supported as standard, but can be implemented using the SoftMPU utility.

The lack of a dedicated 16bit Soundblaster mode is not really that much of a drawback; there wasn't a lot of games which had native 16bit digital audio, with very few titles using actual 16bit samples.

The ESS1868F can be initialised with the excellent unisound utility, which doesn't load any drivers or consume any memory:

I have a simple batch file which runs and configures unisound in my Autoexec.bat file:

SET BLASTER=A220 I7 D1 T4 P330
UNISOUND.COM /C2 /V75 /VF75 /VW75 /VC75

Where C2 is the second Plug & Play ISA card in the system (the network card is the other), and all the others are simply volume controls (set everything to 75%).

Since the MT32Pi can operate in MT-32 or General MIDI mode, I used the mt32pi-control software to control it from the DOS command prompt.

I also wrote a couple of simple batch file wrappers to automate the various mode changes:

MIDI_MT.BAT

rem ==== Sets the device to MT-32 (rev 0) mode ====
MT32-PI.EXE -v -m --mt32-reset -b old

MIDI_MTN.BAT

rem ==== Sets the device to MT-32 (rev 1) ====
MT32-PI.EXE -v -m --mt32-reset -b new

MIDI_CM.BAT

rem ==== Sets the device to CM-32L mode ====
MT32-PI.EXE -v -m --mt32-reset -b cm32l

MIDI_GM.BAT

rem ==== Sets the device to General MIDI/Fluidsynth mode ====
rem ==== Chooses soundfont number 0 ====
MT32-PI.EXE -v -g --gm-reset -s 0

SoftMPU

The MPU-401 MIDI port on the ESS1868F card is a simple UART implementation - it works with many later games without issue, but a lot of earlier titles (late 1980's and the first couple of years of the 1990's) expected an Intelligent mode card, like the Roland MPU-IPC, and will ordinarily refuse to initialise music.

Fortunately the SoftMPU utility can work on the ESS card, and implements an intelligent mode MIDI interface via software.

I wrote a batch wrapper around softmpu that also works on Dosbox, so I can add this entry before any games expecting an intelligent mode MIDI interface and it will set up the right environment, regardless of whether I am running the game in an emulated environment, or in my real hardware.

With the ESS card, you must configure SoftMPU to use the same MPU base address, Soundblaster base address and Soundblaster interrupt number that you configured in the SET BLASTER line and passed to unisound:

Softmpu.bat

@ECHO OFF
SET DOSBOXDRIVE=Z:

IF EXIST %DOSBOXDRIVE%\COMMAND.COM GOTO DOSBOX
GOTO MPU

:MPU
LOADHIGH C:\DRIVERS\MIDI\SOFTMPU.EXE /MPU:330 /SB:220 /IRQ:7
GOTO EXIT

:DOSBOX
ECHO SOFTMPU not supported in Dosbox
ECHO Configuring MPU-401 to intelligent instead...
%DOSBOXDRIVE%\CONFIG -SET mpu401=intelligent
GOTO EXIT

:EXIT

It is important to note that SoftMPU can only run when EMM386 (or QEMM) is loaded. It does not work without it.

A lot of later DOS games came on CD-ROM and it is often convenient to keep them in an ISO format on the drive (especially since I don't have a CD-ROM drive with this system!).

Fortunately there is a virtual CD-ROM driver available which can mount ISO files as a CD drive:

Since I use a lot of games interchangeably between Dosbox and this real system, I wrote a couple of batch files which determine whether to use the Dosbox imgmount command, or the shsucdhd and shsucdx commands on the real system:

Isomount.bat

@ECHO OFF
SET ISODIR=D:\ISO
SET ISODRIVE=E
SET DOSBOXDRIVE=Z:
SET SHSPATH=C:\TOOLS\SHSUCD

IF EXIST %ISODIR%\%1 GOTO CHECKBOX
GOTO MISSING

:CHECKBOX
REM -= Mount an ISO =-
@echo Mounting ISO file %ISODIR%\%1 as %ISODRIVE%
IF EXIST %DOSBOXDRIVE%\COMMAND.COM GOTO DOSBOX
GOTO REALBOX

:REALBOX
REM -= Mount an ISO using shsucdhd/shsucdx =-
@echo Calling SHSUCDHD
%SHSPATH%\SHSUCDHD /F:%ISODIR%\%1 /Q
@echo Calling SHSUCDX
%SHSPATH%\SHSUCDX /D:SHSU-CDH,%ISODRIVE% /Q
GOTO END

:DOSBOX
REM -= Mount an ISO using Dosbox imgmount =-
REM @echo Calling Dosbox imgmount
%DOSBOXDRIVE%\imgmount %ISODRIVE%: %ISODIR%\%1 -t iso -fs iso
GOTO END

:MISSING
REM -= ISO is missing =-
@echo Warning! The source ISO %ISODIR%\%1 is missing
@echo ===============================================
@echo You must call this tool with the name of an ISO file
@echo which is available in %ISODIR%
@echo e.g. ISOMOUNT.BAT TENTACLE.ISO
GOTO END

:END
REM -= End of ISO mount wrapper =-

Isoumnt.bat

@ECHO OFF
SET ISODIR=D:\ISO
SET ISODRIVE=E
SET DOSBOXDRIVE=Z:
SET SHSPATH=C:\TOOLS\SHSUCD

:CHECKBOX
REM -= Unmount an ISO =-
@echo Unmounting ISO file on %ISODRIVE%
IF EXIST %DOSBOXDRIVE%\COMMAND.COM GOTO DOSBOX
GOTO REALBOX

:REALBOX
REM -= Unmount an ISO using shsucdhd/shsucdx =-
@echo Calling SHSUCDHD to unload
%SHSPATH%\SHSUCDHD /U /Q
@echo Calling SHSUCDX to unload
%SHSPATH%\SHSUCDX /U /Q
GOTO END

:DOSBOX
REM -= Unmount an ISO using Dosbox imgmount =-
@echo Calling Dosbox imgmount to unload
%DOSBOXDRIVE%\imgmount -u %ISODRIVE%:
GOTO END

:END
REM -= End of ISO mount wrapper =-

It assumes all of your ISO image files are stored in D:\ISO (adjust the file to suit if otherwise). You call the batch file as follows:

ISOMOUNT.BAT GAME.ISO

… and to unmount the drive and free up memory:

ISOUMNT.BAT

Since it is mounting ISO image files, CD audio is not supported. That isn't a huge issue in most cases when games have alternative soundtracks. Though be warned - some later CD titles only have CD audio music. I have highlighted any of these in my game testing below.

The C&T 65550 VESA Local Bus VGA that is embedded in the 486 single board computer is a later video card with a VESA 2.0 BIOS and unfortunately has had the 8×14 VGA font removed. This is apparent in DOS titles that use the 8×14 font to display text:

  • SimCity - Main game text and menus
  • Shadow of the Comet - Installation/configuration utility only

This manifests as corrupt text display:

Fortunately it is possible to use a small utility to load back the 8×14 font as needed:

When loaded (it will loadhigh if you have upper memory blocks available via EMM386 or similar), it resolves the problem for the above titles:

  • blog/486_advantech_pca6145.txt
  • Last modified: 2024/04/13 09:35
  • by john