QNX 1.2 Virtualized

(This is a guest post by Antoni Sawicki aka Tenox)

A few week ago we ran a Virtualization Challenge to virtualize QNX 1.2. The difficult part of this one was that the boot disk was copy protected. Thanks to Kryoflux and SuperCard Pro I was able to image the disks and convert them to usable images using HxC software tool HFE.

Technically the competition has been won by Crazyc who was the first to submit disk images with copy protection worked around. He however waived his monetary prize and did not do any further work on making whole system bootable from hard disk.

While the copy protection turned out to be quite easy to circumvent and several people did it independently, installation on a hard disk proved to be quite impossible. You can fdisk, create partitions, lay out file system, mount and copy files to hard disk. However there is no way to install a boot loader and the kernel. QNX 2.x and above provide a way of doing it but unfortunately not version 1.x. Many people including various QNX gurus looked at it and we all gave up at this point.

Probably the only reasonable way of using hard disk with QNX 1.x is to copy all files from all the floppies to the hdd. Then use the boot floppy disk for booting and the rest from hard disk. This is likely why the disk set came with a backup copy of boot disk. This is what Forty eventually did in effect winning the competition. Forty supplied a 86Box ready to run configuration with patched and modified boot floppy to mount and use the hard disk image. I have buffed it up a bit to a faster XT and EGA video for better resolution. This is how it looks like during boot:

You can safely ignore date/time prompt with enter. To login to the system just enter slash ‘/‘ as the user name:

You can find all the binaries in /cmds directory. The system does have some sort of networking facility but I have not figured it out yet. Probably a good candidate to explore in another post.

QNX has a super cool editor which is basically ed on steroids. Documentation for it can be found in 2.x manuals.

Also working C compiler:

Finally QNX has some sort of a DOS emulator or hypervisor called QDOS:

Unfortunately I don’t know how to exit that. There is a little bit information about QDOX in expl inform section about other QNX products:

Congratulations to Forty for winning the competition and gettin $100 via PayPal. Thanks to his time and work you can boot and play the system yourself. 86Box files are here.

You may also be interested in QNX 2.x, QNX Windows and QNX 4.x posts.

Finally QNX 1.2 also works under PCjs emulator and you can try it online here.

Have fun with virtualization!

UPDATE : QNX 1.2 challenge Act II – HDD Boot

UPDATEReverse-engineering QNX 1.2 to boot from HDD

8 thoughts on “QNX 1.2 Virtualized

  1. To get out of the QDOS hypervisor you press Ctrl+F12 in 86Box to send Ctr+Alt+Del to QNX and then 9.

    One good way to leave QNX is typing park 3 and then logoff.

    chkfsys 3 to check integrity of hard disk.

  2. Can I extend the contest to get QNX booting from a hard disk and offer to pay $2000 for the winner? Here is a dialog between a few of us at QNX at that time.

    • when was 1.2 released?

      So cool!

      Would have been in the mid 80’s I think

      In the picture of the floppy it says copyright 1984

      lol. I might have some old QNX floppies at home.

      Yeah very cool Dan.

      Is it possible to boot from HD and they just couldn’t figure it out?

      Dan, you should post some “expert” tips in the comments

      If I remember correctly, it sent a special message to the floppy driver to “move” the license from the floppy to the hard drive. I believe it wrote a mismatching sector number to the floppy so it would fail a read. Since the emulated driver would try to “fix” that it would probably fail and the license wouldn’t be “moved”.

      This is awesome.

      We were way ahead of the industry. We had a dedicated PC connected to a modem which allowed you to download new OS’s images. A joke on customer support was asking a customer when they downloaded their latest image. If they said Tuesday we would say what time Tuesday as we would provides updates as we made them. The modem farm grew to about 8 over time using US Robotics modems. Way before the internet. Number no longer in service lol.

      So ahead of its time

      I remember figuring out the special message that was the second half of the licensing and basically allowed you to enable the hard drive without the boot floppy. An early hack before starting at QNX. Used it only for backup purposes (really!)

      We even had a conferencing system which supported multiple channels. Like an early slack.

      I remember working at a company using QNX. The first thing I would do every day is login to the server and “qcp +n”

      I miss that editor – qed. It was great, mind you I wrote it so there may be some bias

      I still miss “qed”. The column cut and paste doesn’t exist in any other editor I’ve seen.

      Dan was thisclose to taking over the world!

      Need to add a “qed mode” Easter egg to vscode

      We were call Quantum Software System so put a q on the front of most of our apps. Like qmail, qchat (a realtime chat system which ran full screen allowing multiple users to enter text in real time), qcal (calendar), qtalk (modem remote connect).

      Peter, you should post your boot hint! (see above)

      And who can forget “ditto”. That was cool!

      Did Dan Hildebrand write ditto?

      Yes.

      Ditto was VNC for QNX. You could ditto another users screen and see everything they wee doing and enter input as well.

      Since we supported terminals a single PC was a multi-user system. With a connect-tech uart board we could support up to 16 users on one PC.

      Turning Personal Computers into Mainframes.

      And remote execution. Syntak for QNX 1/2 was something like “$ [2] task”.
      (Which is a “ps” running on node 2 from any node in the system)
      Which meant on node 2 (another PC) you could remotly run commands. The advantage of a fully distrubuted operating system.

      And likely little security. So you couldn’t stop Dan from taking over your screen and fixing your code as you typed it in.

      There was full user level security. But multiple machines were considered a “bigger” single system. Kind of like if you had
      16 terminals to one machine, or 16 networked machines each with one user. The permissions were across the group.

      So if you had the “superuser” password you could access anyone else on the same machine or over the network.

      Does anyone have a problem if I copy and past this entire conversation to the website?

      Nobody did…

      • On a QNX tangent, what was the deal with the ICONS? Is there anything surviving of that era? Seems crazy that Ontario was in so many ways pivotal but quickly sidelined. Just like the BBC micros didn’t leave the UK, the ICONs never left Ontario.

Leave a Reply to Dan Dodge Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.