Virtual Xenix & the internet pt 2

So retrohun is doing their blog thing on github of all things, and the latest entry, is of course Xenix tales. As mentioned in comments on this blog & other places they found another driver for Xenix TCP/IP!

Going back years ago, the tiny NIC driver support for the elderly Microsoft/SCO Xenix 386 v2 included 3COMA/B/C and SLIP. However it’s been recently unearthed that D-Link had drivers for their DE-100 & DE-200 models, and as it happens the DE-200 is a NE-2000 compatible card!

That means that Qemu can install/run Xenix, and it can get onto the internet* (there is a catch, there is always a catch).

You can download the driver either from github or my password protected mirror. Simply untar the floppy under Xenix (tar -xvf /dev/fd0) and do the install via ‘mkdev dlnk’

Setting up the driver is… tedious. Much like the system itself. I found Qemu 0.90 works great, and is crazy fast (in part to GCC 3) even though Qemu 0.9’s floppy emulation isn’t good enough to install or read disks. With all the updates to Qemu 3.1 use that, it’ll read the disks, and allow for networking.

To give some idea of speed I ran the age old Dhrystone test, compiled by GCC 1.37.1 and scored the following:

Dhrystone(1.1) time for 5000000 passes = 8
This machine benchmarks at 625000 dhrystones/second

When compared to the SGI Indy’s 133Mhz R4600SC score of 194,000 @ 50000 loops that makes my Xeon W3565 322 times faster, under Qemu 0.90! And that’s under Windows!

Setting up the commandline/launching is pretty much this:

qemu.exe -L pc-bios -m 16 -net nic,model=ne2k_isa -net user -redir tcp:42323::23 -hda ..\xenix.vmdk
added SLIRP
adding a [GenuineIntelC] family 5 model 4 stepping 3 CPU
added 16 megabytes of RAM
trying to load video rom pc-bios/vgabios-cirrus.bin
added parallel port 0x378 7
added NE2000(isa) 0x320 10
pci_piix3_ide_init PIIX3 IDE
ide_init2 [0] s->cylinders 203 s->heads 16 s->sectors 63
ide_init2 [1] s->cylinders 0 s->heads 0 s->sectors 0
ide_init2 [0] s->cylinders 2 s->heads 16 s->sectors 63
ide_init2 [1] s->cylinders 0 s->heads 0 s->sectors 0
added PS/2 keyboard
added PS/2 mouse
added Floppy Controller 0x3f0 irq 6 dma 2
Bus 0, device 0, function 0:
Host bridge: PCI device 8086:1237
Bus 0, device 1, function 0:
ISA bridge: PCI device 8086:7000
Bus 0, device 1, function 1:
IDE controller: PCI device 8086:7010
BAR4: I/O at 0xffffffff [0x000e].
Bus 0, device 1, function 3:
Class 0680: PCI device 8086:7113
IRQ 0.
Bus 0, device 2, function 0:
VGA controller: PCI device 1013:00b8
BAR0: 32 bit memory at 0xffffffff [0x01fffffe].
BAR1: 32 bit memory at 0xffffffff [0x00000ffe].

In the file /etc/tcp the default installation does a terrible job of setting up the NIC. I changed the ifconfig line to this:

ifconfig dlink0 10.0.2.15 -trailers broadcast 10.0.2.255 netmask 255.255.255.0

Which at least brings it up a bit better. I added in a gratuitous ping also in the startup script to build the arp for the gateway.

ping 10.0.2.2 32 1

Which brings us to the next point, the routing command is broken after loading the D-Link driver. I tried all the available TCP/IP drivers for Xenix (1.1.3.f 1.2.0e).

# route add default 10.0.2.2 1
add net default: gateway 10.0.2.2 flags 0x3: No such device or address

So no dice there. And yes, for SLIP/no interfaces the route command works as expected, just not with the DLINK driver.

However local connections from the host machine do work, so yes, you can telnet into the VM!

Welcome to 1990!

This makes using Xenix far more usable say for managing files, control/compiling etc.

For you die hard IRC fans, all is not lost, you can simply run a local proxy (See: Teaching an old IRC dog some new tricks) on your host machine, and point the irc client to 10.0.2.2

IRCII on Xenix/Qemu

So there you go, all 20 Xenix fans out there! Not only a way to get back online, but to do it in SPEED!

Thanks to Mark for pointing out that there has been tremendous progress with version 3.1 of Qemu, and it’s TCG user speed is up to the 0.90 levels of speed (at least with dhrystone/Xenix), and it just takes a little (lot) of massaging to get up and running with Xenix with the right flags:

qemu-system-i386.exe -net none -L . -m 16 -hda xenix.vmdk -device ne2k_isa,mac=00:2e:3c:92:11:01,netdev=lan,irq=10,iobase=0x320 -netdev user,id=lan,hostfwd=tcp::42323-:23

This is based off my old post, Running Netware 3.12 on Qemu / KVM 2.8.0 although with a few more flags to assert the user mode tcp redirect.

I’m using Stefan Weil’s build of the x64 native i386 Qemu.

Stanford uploads 111 lectures by Donald Knuth.

This is pretty cool! I didn’t know they were recording stuff back in 1980!

Stanford has a nice playlist here.

Naturally it’s full of TeX & Mathematical writing, along with trees and other ‘fun’ CS stuff.

While we are overall drowning in cat videos, and other uh ‘multimedia’ content, it’s still amazing the wealth of information that is available to the world (well the part of the world that can view YouTube).

I have no idea what the licensing is, but it’d be such a shame if it was hosted on additional platforms to make them available to the larger world.

Test video of Fallout 76 on a 2006 MacPro

So, I thought my mic was working but yeah it’s not. I’ve shot a bunch a footage, and did some capture stuff too. Turns out the audio I though I had working isn’t. I should have started with a 10 second short to get things ironed out.

I’m using old crap I’ve had lying around in this case, software wise, I’m using liteCam Game: 100 FPS Game Capture, which I guess is ‘okay’ for video capture. It runs on my 2006 MacPro so that’s great, but the video compressor it likes to use, the RSUPPORT MPEG4 Codec isn’t understood by the video editor I’m using, VEGAS Pro 15 Edit Steam Edition.

So FFMPEG to the rescue!

ffmpeg.exe -i 20190107-122714.avi -t 00:05:00.0 test2MP4_.mp4

This gets me a 5 minute clip trans-coded from one MPEG-4 to another, but at least Vegas can read it now.

I used the great program myTube to clip audio from another video, and convert only the audio stream into something Vegas could deal with:

ffmpeg.exe -i DASH-Yakety Sax- Music.dasha” -vn -c:a copy Yakety Sax-Music.mp4

Editing was a fun time flailing around figuring out how to cut tracks, fade in/out add in other layers, and that’s when I noticed that my MIC wasn’t capturing anything. And I didn’t want to try to literally phone it in, so it’s a test video.

24 minutes to render a 5 minute video!

I was kind of crazy, and used the 2006 MacPro to make the video file. I should have known with the ‘blazing’ speed of 0.407x doing the trans-coding that this was going to be SLOW. Obviously dual Xeon 5130‘s @2Ghz isn’t really ideal for video editing today.

Clearly I need a bigger boat.

But just like running Fallout 76 on a 13 year old computer, it still runs. SLOWLY.

I wanted to some crappy branding/art things, but as I made a new channel I’m too much of a n00b apparently to set custom thumbnails. So I need to fluff it out or something I guess.

So here we go!

Consider it more of a process test, I need to get some lighting, and figure out what is up with my audio, maybe hit SSP and get an old audio board or something. Let me know how terrible it looks/sounds… I’m still working on transitions and stuff. I got Vegas on sale for a tiny fraction of the price, I guess it’s high time to use it.

OSnews hacked.

Well this sucks. OSnews has been around for a long long time, and like other long in the tooth sites (slashdot sourceforge etc) things tend to stagnate, and then eventually get exploited.

To be perfectly honest, when contemplating what needed to be done to properly move the site to a new platform, I considered just throwing in the towel and going offline permanently. Revenues from advertising don’t cover expenses, and though this could probably be rectified by exploring more creative sponsorship approaches, I don’t have the time.

I can totally relate to this kind of thing. Once you’ve been doing something for over 10 years, and like me, doing it kinda poorly there becomes a demotivational wall. One thing that keeps me going however is the user comments. Granted any time there is a popular blip I can easily get 30k+ visitors in a day, but absolutely zero engagement. It’s the long term stuff however that actually gets the engagement, along with so many thanks for either spelling things out, or pointing people in the right direction for their projects or work.

The one thing that I think has artificially killed OSnews is that they had limited comments to articles for 2-3 days which I can tell you with some articles garnering over 100k hits is that the torrential storm of interest, and eventual comments and engagement comes later. Sometimes YEARS after the fact (The Opus #1 cisco hold music has garnered a TONNE of hits, follow up articles and a stereo re-release!. All of which started well over a year from publishing).

One thing I lament is that the auto-moderator ends up killing legit comments from time to time, but the amount of SPAM I get is unreal. I have over 1,000 from the start of this year to give an example of the volume. It’s a shame. As much as I’d like to be more like reddit or something more cultivated, I’d need humans working 24x7x365 in shifts to guard and watch the site, and I know I don’t have the funding for that, nor is anyone insane enough to do it for free, so enter the bots.

So yeah… Old sites end up drifting in and out of popularity as the years go by, especially if they don’t magically explode in popularity. News at 11 so they say.

Oh and update your passwords, if you haven’t done so already.

Quake 2 for MS-DOS full playthrough

Playthrough by TheSlipGateUser

I was just alerted to this playthrough of Quake 2 for MS-DOS by TheSlipGateUser which showcases the game play under DOSBox.

Honestly I’m terrible at Quake, QuakeWorld and Quake 2, but it’s great to see someone who knows that they are doing, and more so that under emulation the game is holding up.

I know the MS-DOS port isn’t exactly the most popular in the world, although I suspect if it had been a thing in 1997 there would have been an audience with people that didn’t want to have Windows in the background as a distraction.

That said, any new people will of course want to check out the excellent (if I do say so myself!) series “Porting Quake II to MS-DOS“.

NCC / K&R C compiler for the AMD64 platform

I saw this mentioned over at Hacker News, Charles Youse’s NCC and had to check it out! It really is a ‘tiny’ K&R C compiler that is targeting a proprietary a.out file format.

This is NCC, the “new” C compiler. It is intended to be used as the system compiler for BSD/64 (my port of pre-Reno 4.3BSD to Intel/AMD 64-bit desktops).

The dialect of C accepted by the compiler is basically pre-ANSI (K&R 1978) with some common extensions and a few minor “fixes”. (See the DIALECT file for specifics.) This is both a function of the compiler’s purpose — to operate on a mid-80s codebase — and, admittedly, personal taste.

The binary tools work on a proprietary object file format and produce a.out- format executables. These are documented in obj.h and a.out.h respectively.

The compiler and its tools are fully functional and have been fairly well- tested, though they are works in progress. In particular, the optimizer is quite minimal: the framework for a more aggressive optimizer is there, but for the moment only rudimentary data-flow analysis is done to aid the register allocator and clean up the more egregious output from the code generator.

Included in the source is:

* ncc: compiler driver.
* ncpp: an ANSI C89 compliant C preprocessor.
* ncc1: the C compiler proper, produces assembly output
* nas: accepts 16/32/64-bit Intel syntax assembly and produces .o object.
* nld: the object linker – combines .o files into a.out executables.
* nobj: object/executable inspector.

You can find the source over at github here: https://github.com/gnuless/ncc

I have to admit, I’m more interested in this 4.3BSD port to the AMD64, although Charles hasn’t made any mention of it just of yet.

For those who are interested in that sort of thing, NCC is licensed under the 2-clause BSD license.

Installing Windows 10 pro onto an older Mac Pro

So I have this 2006 Mac Pro 1,1 that I’ve had laying around and I wanted to put my old Nvidia 1030 into it, along with Windows 10 for a newer (stronger?) home machine.

So I burnt the downloadable ISO from Microsoft onto a DVD, tried to boot it up and got this:

Ignore the microwave…

I got stuck at this “Select CD-ROM Boot Type : ” prompt, which you can’t type anything into. Apparently it’s a common and known issue with 64bit boot code, as the older Intel Apple Mac’s are of course 32bit only. So there is a fix, you have to use something called “oscdimg” to rebuild the ISO with a 32bit friendly loader.

So first I just used 7zip to extract the downloaded ISO, and then create the new 32bit ISO with the following:

oscdimg -n -m -bc:\temp\Windows10\boot\etfsboot.com c:\temp\Windows10 c:\temp\LegacyBootWindows10dvd.iso

And yes, it boots!

Brigadier

Now what about those special ‘bootcamp’ drivers? Obviously under Windows 10 there is no nice way to get the ones you want. And what about which model/download package to get?

Then I found Brigadier!

It’ll probe your hardware type and grab the drivers for you!

https://github.com/timsutton/brigadier/releases

Booting a PC over serial port via ROM Basic!

Galaxian via Basic over the serial port

I was sent this link while out for vacation: https://github.com/retrohun/blog/tree/master/dt/bootingfromcom1

So this is great for machines that included the seemingly useless ‘casette basic’ as you could maybe shove over something to config the machine, maybe ‘rom dos’ directly into ram to fdisk/format without using disks… Interesting stuff to say the least!

Remember to upgrade your SSD firmware!

I kid you not. I had this older SSD that would just lock up after a few hours of usage, no matter what OS I’d be running.  Resetting the machine would just hang as the SSD would just disappear from the computer!

Even a fresh install of Windows 10 would hang after the install, and while it was initializing itself with the “It’s taking a bit longer than expected, but we’ll get there as fast as we can” message!

Its taking a bit longer because the SSD crashed!

Unacceptable!

Well it turns out that these things have their own processors, operating systems and well they are not just passive storage devices but machines in their own right.

crucial SSD firmware updater

And in my case it turns out that my SSD was running version 9.  The latest version is version 70!

Needless to say, not only does the new version have a noticeable difference in performance, but more importantly it’ll run for hours now without crashing the SSD (which is what I imagine was happening before).

I can only imagine how long it’ll be, until there are user mode programs to load into storage, and when we cross the line with internet connectivity requirements, anti-virus and firewalls needed for storage.

YUCK!