(Note this is a guest post by Antoni Sawicki aka Tenox)
Enter 1988… around that time Microsoft just released MS-DOS 4.01 and IBM shipped OS/2 1.1. Compare to the other two, this QNX was years ahead of its time. Pretty much on every aspect. Now, some 25 years later QNX2 is still found running industrial machinery, clean rooms, avionics and military hardware. Some people report systems up and running non-stop for 15 years and longer!
It took me similar amount of time to acquire usable media set. QNX is an embedded system and never really seen life on a desktop machine, so finding these floppies was rather hard and expensive adventure. Fortunately I can finally let it see some daylight. Let’s examine how the system will install on a modern hardware under VMware Workstation.
The install is rather straight forward. Floppy boot comes with a login prompt.
After you log in as qnx you need to swap the floppy disk to Boot Utilities and run install. The script guides you through setup steps.
First you need to select the disk controller. For compatibility mode QNX 2 provides access via int 13 (real mode).
Then you partition the disk. QNX partition type is either 7, 8 or 9. You will be asked to mark it bootable later on.
Then you have to select the kernel. QNX can operate in real mode and protected mode on AT286.
The install script copies all the data from distribution floppy disks, asks about boot loader and active partition. Finally you get to choose some video options.
The system also asks about networking options. Unfortunately it only works with custom Arcnet cards so I skipped this. Once complete you are asked to remove the boot floppy disk and reboot the machine. This is what comes up after first hard disk boot.
I guess what is in the system will be the a topic of another post.
QNX 2.x files are here, a ready to run VMware image is here. Virtual Box here.
You may also be be interested in QNX Windows and Fun with QNX 4 Networking posts.
did want the disk images!
please share with fans
It’s a difficult situation because the system is by no means dead or even obsolete. Dell Unix for instance was plainly abandoned and forgotten a long time ago. With QNX2 it’s unfortunately different. It’s still widely used in the embedded world. Worse, the manufacturer (QNX) still sells licenses for it. I have worked pretty hard to get my own copy.
You can get aclock-demo bootable floppy which has a second console and few utilities like ls and tsk to play around. http://www.tenox.tc/out/aclock-qnx2-boot.img
And don’t give hope, someone will probably eventually slip it away somewhere.
yeah, a demo disk is good for such purpose 🙂
thanks for the demo disk 😀
You know the demo disk may eventually have enough utilities to copy itself to a hard disk 😉
No, it’s wrong.
Can you shed more light on what’s wrong?
The only available commands are in /cmds directory, I don’t think it is enough for cloning that aclock qnx2 fdimage onto a harddisk:
C:\TEMP\WINDOWS>qemu-system-i386.exe -nographic -curses -fda aclock-patched-qnx2-boot.img -net none -snapshot -m 16
bitmap +boot +cmds +config
$ ls boot
$ ls cmds
aclock ed ls sh
cat ed.macros mount timer
colors login rtc tsk
$ ls config
Drive 1: Floppy, 1.4M, p=1
$tty0 = $con , Colour at 0030
$tty1 = $lpt , Parallel at 0378
$tty2 = $sid , Colour at 0030
$tty3 = $mdm , Serial at 03F8
Library(6A): Software Math
read what I said – it MAY EVENTUALLY have enough tools
That aclock disk boots in MESS. I’d be interested in hearing more about the NIC and the possibility of adding support for that to MESS (I wrote the NE2000 emulation for it).
Unfortunately QNX 2 does not support NE2000 or any other Ethernet. It only supports Arcnet, and not even generic. It only works with Corman Arcnet cards. Currently sold by http://www.betech.biz/ . I have a working Arcnet driver for Qemu but we are still short of Corman BIOS and chipset.
Is information about the qemu arcnet driver available somewhere? I’m assuming it’s for some other arcnet device? When I asked roughly 10 years ago, QNX didn’t want to give out details about how you interface to the card (which would obviously be useful if you wanted to emulate it), I guess if the cards are still being sold that might still be the case.
I’ve never looked… 1.6 also fixes ISA, but my old NetWare 3.12 still crashes mounting the disk.
I have qemu patches, however these are for regular arcnet. The cards that QNX works with require special a BIOS, which is not available and it’s still being commercially produced – see here http://www.betech.biz/B&E%20TECH/Arcnet_products.htm . If you want the patches email me. With a bit of determination the BIOS can be dumped and used in Qemu I guess.
So the BIOS is the only special thing about them – you can get some other generic arcnet card which has documentation about its memory-mapped interface, and the only difference between that card and the QNX one is the BIOS?
I can’t say I ever looked up any information about the various chips on the QNX arcnet card so wouldn’t know if they’re generally documented or not.
A late response but…
So I know a little about Corman cards, not enough to write a driver. The card uses a standard Arcnet chip. The chip usually interfaces via io-ports. The Corman card has it engineered to use have those ports accessed as memory map. There is also the boot EPROM and some sort of EEPROM to store settings.
If anyone wants QNX 4.25 floppy images and CD ISO I have copies. Did some major searching and found them tucked away on a server in Russia. Nothing has come up yet for QNX 2.x yet. 🙁 This is the holy grail ….I’ll keep looking.
I have virtualized QNX2 and have it talking to a Siemens PLC running machine control software and this works great, but what is missing is the ARCNet connection. I also need to emulate this and was planning on writing a driver that sends ARCNet traffic over the local Ethernet network (as broadcast UDP traffic). I have several Corman ARCnet cards and confirm that it is using a standard SMC COM90C165LJ chipset and standard PHY drivers, but the issue is they’re using an FPGA (Actel A40MX02-F). The ROM bios is easy enough to copy, but it is unclear what precisely the function of the FPGA is. I believe the statement of an earlier user is correct, they are using memory mapped I/O to simplify access. I’ve purchased an ISA to USB converter and intent to interrogate the ARCNet card to see what I can learn.
I have just started working on a Corman Arcnet card, this one has the ROM BIOS extension for a Unisys ICON-PC. I can confirm that the purpose of the FPGA is to memory-map everything, and allow software controlled IRQ routing. QNX 2.1 manual states that diskless PC netbooting is possible.
An earlier version of the Corman card is mentioned here:
near the bottom… search for “Waterloo” or “Corman”
Base address appears to be the EPROM
0x1780 Microwire NVRAM port
0x17a0 ARCNET node ID register
0x17e0 – IRQ & LEDs?
0x1800 2KiB Packet buffer
I’ll continue disassembling the ROM.
> Unisys ICON-PC
wait, what?! Do you have disks/disk images…??!?
Holy crap is there an actual chance that the Ontario educational machines from hell are coming back to life?!
ha ha YES! Contrary to what Wikipedia says, not *everything* related to CEMCORP/Burroughs/Unisys ICON was destroyed. The Ontario Archives has many boxes of documents and floppy disks, some with software that runs on Canada’s Bionic Beaver.
Several of the few remaining hard disks have been found unreadable or with nothing interesting, but recently a working Lexicon fileserver with 600MB of disk has been recovered, with lots of the popular software and games. Teaser photo:
HOLY CRAP, this is the most exciting thing I’ve heard since my school foolishly installed the C compiler! Damn this is going to be the biggest Ontario centric retro crazy thing ever!
Such a pitty they never sold these in homes like the BBC micro’s, what an incredibly missed opportunity to have a region centric thing. Although it’s better than just ‘yet another pet/apple’ school of the 80’s.
How can I stay updated on this?
I’m looking for more information on this… Do you happen to know what record series you found the ICON software in?
If you are interested I have ARCNET emulation patch for QEMU.
I would be very interested in seeing your Corman ARCNET emulation patch for QEMU.
Ive added them to here:
Ill try to email you directly
I confirm that qnx2 10MB hdimage boots well in stock 0.74 dosbox.
Earlier milestones: pce-ibmpc with both lowlevel xthd-controller driver and with int13h-biosonly qnx hd driver. 8086tiny with modded bios and image ripped from pce-ibmpc experiments.
If I were talented id grab the mame 80386 core and make some expansions…
So much potential!
I think that a bare 200/16/63 qnx2-in-qemu install could work with the original bios in 8086tiny.
Proven that the usual dummy bios c/h/s autodetection can be improved with only a little work.
There is a thumbs rule set for deriving vintage MFM/RLL/IDE hd images’ parameters from size like:
– #SPT must be 17, 26, 34, 35 or 63
– 1<#HEADS<#SPT and #HEADS<=16
– #CYLS<=1024, but rare exception when it is 1224
– #SPT | #ALLSECTORS
– #HEADS | #ALLSECTORS
– #CYLS | #ALLSECTORS
Unfortunately, intel 8086 DIV has glitches, it is usually better to hardcode a CHS lookup table upon common size values unless it is ambiguous like 820*6*17 === 615*8*17 and so on. Prime factorization of the total number of sectors seldom provides unique chs tuple solution.
it will be nice if people can provide chs values from commandline like qemu does.
and there is some fix you may missed:
Fix DAA/DAS instruction bug
github dot com/FOX21/8086tiny/commit/d9f36f482
Fix ROL/ROR/RCL/RCR mem/reg, imm bug
github dot com/FOX21/8086tiny/commit/f6f85d48f
Will try it around Xmas (or before, I hope).
Tried it, did not generate new bugs 🙂
anyway, both pcix/86 and xenix8086 hang immediately after starting the vm. Trying to find it out in weekend.
Anyway, such improvements likr DAA/RAR and classic 8086/8088-only opcode reuse in official “gaps” like C1=C3, C0=C2 etc is easy, just a minor modification of opcode lookup table is needed. The same apply to conditional jumps (0x70..0x7F maps to 0x60..0x6F )
You may also be interested to know that all my QNX archives were posted to archive.org here: https://archive.org/download/quantumqnx/qnx/
I’m taking a look (just for fun) to QNX 2 starting from the image availble at archive.org
– via qemu -> https://archive.org/download/quantumqnx/qnx/qnx2/qnx2-hdd.rar
– via vmware player -> https://archive.org/download/quantumqnx/qnx/qnx2/QNX2-VMware.rar
Is it possible to mount a qnx-2 file system under Linux ?
For ex. with a command similar to -> sudo mount -o loop -t msdos qnx2-fdd-boot.img mnt/floppy
If not, is it the qnx-2 file system documented somewhere ?
I highly doubt it. When I was forced to use QNX, the workgroup server had a disk drive we could mount under the MS-DOS emulator and we could copy stuff in and out from that.
Although the version we ran on the ICONs I’m sure wasn’t very stock. Although the model 2 stuff with it’s EGA hardware was enough to run SIERRA games.
A cool trick for data exchange is that using a raw r/w guest device with *nix/like/qnx guests, and then tar-ing to/from it.
Last I checked, there was no Linux support for the QNX 2 filesystem, but I seem to recall that the filesystem’s on-disk structure is documented in the manual.
We actually still use QNX 2. We have a data acquisition system called Autonet that runs on QNX3.15 I think. I was told it’s just QNX2 in protected mode. We use Linksys ether16 NE2000 cards.
Sounds sweet! Although you should take pictures and disk image/back that thing up and test restoring it…
+1. I wonder is there is an available library/sw base for the supported ethernet cards
we have a big printing offset machine ..Harris Heidelberg M3000 that use QNX2.2 OS …From MPC boots five macines in net without hard disks ..