Calamus for Windows NT RISC

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

A Christmas gift for those who run Windows NT on Alpha AXP, MIPS or PowerPC. These ports of Windows are really lacking some good applications. Yes, there are utilities and games, Alpha even has Microsoft Word, Excel and Oracle DB, but apart from that there just are no serious apps available.

Calamus is a professional DTP (Desktop Publishing) software. It was actively developed and sold by a German company Invers up until 2018. If you want to play around with the latest version you can download a 30 day trial and (at the time this article was written) even purchase the Lite version for 99 Euro on calamus.net. There are versions for Windows, Mac and Atari ST.

Atari ST ?! Well yes, the original Calamus was born some 30 years ago on Atari ST:

I had pleasure of using Calamus professionally on Atari for several years in early 90s. At the time when 486 could have max 64MB RAM and 640×480 VGA, a high-end Atari TT packed 256MB Magnum card and 1280×1024 framebuffer. The memory and high resolution displays were really needed to process large images and complex page layouts.  You can read more about my Atari TT restoration efforts.

In the mid ’90s DMC decided to port Calamus to Windows NT to take advantage of emerging high end PCs and RISC platforms. An interesting fact is that the port wasn’t really a full source code rewrite, which was impossible due a large codebase size. Even that Calamus has 100% native Windows GUI and a lot of functionality has been rewritten, inside the software lives a small embedded Atari ST emulator that does on fly translation of some of the Atari/m68k ABI. You can read a bit about it here.

Calamus on Windows NT Alpha AXP

At the time of the port, Windows NT was still being actively developed on RISC platforms, so thankfully Calamus has been compiled on all of the available NT CPUs. Alpha version was probably the most popular choice because of performance. High end Alphas were the fastest machines capable of running Windows among all hardware. When publishing firms were thinking about upgrades they naturally looked at DEC as a first choice as regular PCs weren’t powerful enough.

I finally found a copy Calamus NT with support for all the RISC CPUs. It took me quite a lot of time and resources to track down and obtain copy of a surviving media from an owner of a publishing studio. This is how it looks when you first install it:

Calamus NT Install Wizard

Interestingly there were separate builds for 386/486 and Pentium CPUs. 

If you don’t have one of these machines you can still run Windows NT MIPS on Qemu:

Calamus on Windows NT MIPS under QEMU

And finally to the goods! You can get them in my my archive. If you just want to play with small demo without installing the whole app look in the demo folder.

2013-2017 Aclock Binary Contributions

(this is a guest post from Antoni Sawicki aka Tenox)

I was little busy and I didn’t process new binary submissions for over three years. Here they are, more or less in order of appearance.While not a lot for 3 years they are very important historically! Also almost all contributed, thank you all!

AmigaOS bootable floppy disk by Jason Stevens.

Aclock on Amiga

Android port by Adam Gutman. See below, it also runs on a watch!

aclock-android

MVME PowerPC Linux by Plamen Mihaylov.

ELKS by Lorenzo Gatti. This also includes a boot image! It’s hard to believe I somehow missed ELKS in my own efforts. Also there is a boot image available.

MVME M68k NetBSD by Plamen Mihaylov. Thank you for collecting all these beautiful and rare Motorola MVME machines!

HeliOS on Transputer by Michael Bruestle. Oh boy I have been looking for this for quite some time! Unless you started 30 years ago, transputters are rather hard to get into from scratch. This port should also work on Atari ATW800. I wish I had one to test 🙂

BSDI 1.1 by Dima Naumov. This is very cool because of all the flavors of BSD I somehow missed this one! I’m still trying to figure out BSDi, BSD/OS and BSD/386 naming convention. Someone please help.

VxWorks by myself. While VxWorks port existed before it was only compiled for a simulated Pentium (SIMPENTIUM) rather than actual target CPUs. I have came across a set of compilers and built it for ARM, MIPS, PowerPC, SH and Xscale. I still don’t have SPARC. See this post about how to run your own target on VMware.

ReactOS by Dima Naumov. While it’s expected that native Win32 aclock will run on ReactOS, this is a build targeting the OS specifically. Sharp X68000 running Human68k OS, by Jason Stevens. That’s a nice surprise! I’ve been looking for this one for a while. No screenshot for but hopefully Jason will be able to produce one. Human68k has a very cool looking GUI!

Microsoft XENIX 1.0 running on AT/286 by Michal Necasek. This was possible thanks for Michal’s huge efforts to patch this historical os to run on VirtualBox.

I happen to own the original set of floppy disks that Microsoft produced and shipped to various OEMs such as IBM, Radio Shack, Intel, SCO, etc.

The set comes with a development kit which now you can run on a VM. You can read some more about efforts to virtualize Microsoft/IBM Xenix on Michal’s Blog.

Venix/86 on AT/286 by Jim Carpenter. This port was delivered as part of a virtualization challenge, which was won by Jim. Thank you and congratulations again! There also is a runner up entry by Mihai Gaitos which has some fascinating details including about Aurora software that came with the system.

Wyse UNIX for 386 by Mihai Gaitos. This port was delivered as part of a similar virtualization challenge, which was won by Michai. Congrats!

Cisco 1700 (PPC) emulated via Dynamips by Jason Stevens. This one is also very close to my heart because of my networking past and present. I will definitely want to try load it on a physical device! Jason is also working on MIPS version so hopefully this will run on Cisco 2500 and up.

Android Wear. Parker Reed send me this photo of Aclock Android by Adam Gutman running on an actual watch! Wow this is so cool!

BSD/OS 4.1 aka BSDI for SPARC by Plamen Mihaylov. Also thanks to Cory Smelosky for releasing the images!

EFI firmware on various platforms, such as x86, x64, ia64, arm32 and 64 by Natalia Portillo aka Claunia. This aclock can be launched from UEFI Shell or by running EFI standalone application if EFI shell is not available.

This is a screenshot of aclock EFI x64 running on HP DL380 via iLO remote console.

Linux and FreeBSD builds for ARM and PowerPC by Natalia Portillo. Claunia sent me a Christmas package with a aclock builds lot of missing CPUs for Linux and FreeBSD, both 32bit and 64bit PPC and ARM for both OSes. Total 8 binaries!

Singularity on x86 by Natalia Portillo. SingularityOS was a research operating system from Microsoft. Rumor has it Microsoft wanted for it to eventually replace Windows NT line with managed code OS. As expected it didn’t perform too well and with doom of Windows Vista the project was eventually scrapped. Singularity development kit has been released to the public on CodePlex. Since the OS is text mode only, it was a natural target for Aclock. A port in C# (OMFG) has been created and the binary integrated in to the iso boot image.

RISC iX running on Acorn R260 by Raymond Stricklin aka Bear. I was scorching the earth looking for a working copy of RISC iX and there he had it. Thank you. It’s beautiful.

Minix 3 for ARM by Natalia Portillo. Latest release of Minix adds experimental support for ARM architecture. No network and framebuffer but aclock works over a serial console!

Again thank you for all your contributions!

If you want to to help contribute to aclock, there is a wanted list. Some of them come with a monetary reward. Please contact me before undergoing any major work as some of them are under way.

Also, aclock now lives on GitHub, for easier.. everything.

Snoopy – a basic packet sniffer for Windows

(this is a guest post by Tenox)

A few days ago I wrote a basic packet sniffer / analyzer for Windows for fun. I was working with raw sockets for another application and out of curiosity winged a small packet sniffer in just 200 lines of code. I actually used it already several times to resolve some firewall port blocking issues, instead of spinning up Wireshark, so I decided to release it to public.

The good:

  • Portable, a single, tiny exe
  • Easy to use
  • Doesn’t install any driver like libpcap
  • Extensible, just 200 lines of simple code

The bad:

  • It’s very basic and doesn’t allow anything outside of simple unicast TCP, UDP and ICMP, most importantly layer 2, broadcasts, multicasts, etc are out of question
  • Currently it doesn’t directly support filtering, however you can just pipe it to findstr to filter for anything you want

Raw socket limitations are possibly the biggest issue, but if you just want to find out simple stuff like traffic going to a given port or ip address it’s a perfect little handy dandy tool to carry around.

To use snoopy you specific IP address of the interface on which you want to listen:

snoopy1There also is a verbose mode which shows some more detailed protocol information:

snoopy2Today I decode ICMP message types, TCP flags, sequence, ack and window numbers and DSCP, ECN, TTL and Dont Fragment flags for IP. I’m thinking of embedding /etc/protocols and /etc/services in a .h file to resolve them on the fly.

Bug reports and suggestions most welcome!

Available here: http://www.tenox.net/out#snoopy

 

OpenNT – Windows NT 4.5

(This is a guest post from Tenox)

Just stumbled across this: someone has forked Windows NT 4.0 and created an open source version of it. But wait, forked what? Windows source code doesn’t live on Github. Is it ReactOS? No! Upon some digging, it was apparently born from the leaked source code of NT4.0, some W2K bits and 2003 WRK…

Enter NT version 4.5:

NT45Test-2015-04-27-18-20-37More screenshots here: http://www.opennt.net/projects/opennt/wiki/Screenshots

The main project site: http://www.opennt.net/

Looking at activity the project seems to be alive and well. There is some background information and discussion going on BetaArchive for those interested.

I wonder what Microsoft has to say about this 🙂

EDIT* for those from the future, you may be interested in this followup – OpenNT 4.5 revisited, where it’s compiled and run!

NVIDIA GRID – GPU Virtualization under Windows

(this is a guest post by Tenox)

I spent a day evaluating NVIDIA GRID K1 card, which is a GPU for high end, graphics intensive desktop virtualization (VDI) deployments. Otherwise called vGPU. What does it actually mean?

gridk1As you can see on the stock photo, the card doesn’t have VGA, HDMI, DVI, DP or any video output port what so ever. The output happens purely through Remote Desktop Protocol (RDP) extension called RemoteFX. On VMware and Citrix it works little bit different but I will be covering Windows / Hyper-v installation only.

The GRID K1 is somewhat similar to Quadro card so the driver is not your usual GeForce package, but the experience is quite similar nevertheless. Upon installation you see 4 different physical GPUs in Device manager:

grid1This works similarly to having multiple CPU cores that show up as separate processors in the OS. Here is a first fun fact: you can’t actually use any of these directly, as they simply have no output port and can’t display any graphics… Instead, you have to use Hyper-v with RemoteFX extension:

grid2Then for each guest machine, you add a RemoteFX graphics card as hardware:

grid3In order to use RemoteFX you need to Remote Desktop (RDP) to the guest machine. The protocol is fortunately available since version 7.1 so even Windows 7 can use it. However only Enterprise editions of Windows support it.

Inside the guest VM you see a virtual RemoteFX Display Adapter in the Device Manager:

grid4And as you can see Direct3D is available and enabled. Note that this is over RDP to a VM! The VM’s console curiously displays following message:

grid5Hard to show on static screenshots, but I have to say that RemoteFX user experience is noticeably better compared to a regular RDP. Everything works smoother and faster, scrolling pages, moving windows is a snap. You can play videos / YouTube, etc. But I was more interested in real use case which are high end 3D applications. So I proceeded to install Steam…

remotefx2Yes! this is GTA V running over Remote Desktop in a VM!

remotefx3The frame rate sucks quite considerably, even in safe mode, but it was playable and quite responsive (no lag). I actually spent couple of hours going through it and except for low FPS had no issues.

I also spun up this Wyse Thin Client terminal:

20151111_215651146_iOSdisconnected my RDP session and reconnected from the terminal… poof the game was still going:

20151111_232610662_iOSI even got sound out of the little thing.

I suspect that the low FPS is rather to do with small GPU horse power and vRAM assigned rather that with remote viewing or NVIDIA itself. Unfortunately in Hyper-v it’s impossible to control or fine tune assignment of GPU resources to a particular VM beyond simple on/off switch. The K1 card supports 32 users, so I was only getting 1/32th power and RAM. Perhaps I could have spawned 32 VMs with GTA. Or Call Of Duty multiplayer….

In ending notes I have to conclude that this is a rather interesting technology. According to NVIDIA, Cloud is future of Gaming. In fact they already have cloud game streaming service:

http://shield.nvidia.com/game-streaming-with-geforce-now

Beware of campers who now will be able to disconnect from online games for months at a time.

 

QNX Updates

(this is a guest post by Tenox)

A few interesting things have happened in QNX area in a last month or so.

First of all, there is a QNX BSP for Raspberry PI:

qnxrpiIt’s an early developer release, not fully complete, but it does boot and work. It adds an interesting os beside RISC OS and Plan9 to the Pi family. The BSP is available from SHC Products. They have a binary and source code version.

Secondly, in the archaeology department, this has surfaced:

qnx12bootqnx12c

But even more interestingly I’ve found a beta / preliminary release v0.4 of QNX:

qunixStay tuned for more…

You can run VxWorks too!

(this is a guest post from Tenox)

VxWorks is an embedded operating system that typically runs on things like Mars probes, Boeing 787 or Apache helicopters, but today you can run it too! WindRiver has an evaluation target that you can run on an Intel CPU, meaning you can spin it up on your favorite hypervisor at home.

Go to this page: http://www.windriver.com/evaluations/bsp/ register, download the two ZIP files and follow the instructions.

VxWorks running on VMwareVxWorks comes with two shell modes C and admin. In C shell you execute C code and you can write simple programs or even patch existing running code like they did on Mars Pathfinder. This is the default one with -> prompt. You can enter to admin shell by typing “cmd”. If you are familiar with KSH “vi” mode you can use it for history and editing command line.

The evaluation target is very basic and limited. If you want to do and learn more stuff, you need to download evaluation of VxWorks Platform and spin up the VxWorks Simulator, or build your own target. This is a picture of a slightly older version running on Windows:

vxworks-emulatorThe operating system was also recently featured in Forbes

Local mirrors:

WYSE Unix Virtualized

(this is a guest post from Tenox)

wyseunix

WYSE Unix Virtualization Challenge has been officially won by Mihai Gaitos of hawk.ro. He received $100 prize via PayPal. Congratulations!

WYSE Unix has now been virtualized and can run in Qemu via Curses mode, or modified Bochs due to character map issues and vanilla VirtualBox!

wyse_on_bochswyse_on_vboxMihai has posted some gory details of the installation challenges on his website.

Ready to run image with modified Bochs binary for Linux is available here.
VirtualBox OVA file available here.

For hard core fanatics, the system comes with SLIP/slattach so you should be able to network it much like Dell Unix.

Special thanks to:
Andrew Gong for finding a tape image on eBay
Al Kossow of bitsavers.org for recovering the tape image
Michal Necasek for patching up the original floppy disk image