Thanks to LGR I just found out about SimCity for palm pilots was a thing!

I only owned one palm, the Palm VII which was the first taste of 2007 from back in ’99 or so.

Palm stumbled however delivering such a low powered low memory, low storage and amazingly out dated 68000 based machine, but what set it apart from all the rest was the integrated cellular modem. Raise the little antenna and you could send and receive emails, “browse” websites all from the palm of your hand. It really was fantastic, until I got the cellular bill. AT&T saw this as an ultra premium device and service, not something for normal people and priced it as an ultra niche thing. And it’s a shame as the future was right there, in the plam of your hand so to speak.

SimCity!

I looked on google play and picked up PHEM, and downloaded some ROMs. I started with the VII ROM out of nostalgia, but sadly the VII ROM I found is version 3.5

And naturally SimCity won’t work.

I kind of remember this being another issue with the VII, that it was basically a dead end evelotionary branch, not a vision or path forward. It was a fluke.

Version 4 devices were back to needing rs232 docks.

For me the future wouldn’t come back until 2002 with the first Windows CE phones, that features an ARM processor, expandability and a more robust OS.

I always thought there was no good full featured games back then, it’s amazing playing SimCity, even under emulation. Although if anyone wants to try, modern android phones run it far too quickly.

Are you Japanese?

On my latest trip, I managed to find a copy of Zork 1 for the PC-98! And let me say, let the adventure begin!

I went to Beep and the place next door I always forget it’s name, and I found this burried in the back for a mere ¥2,860! Not exactly what I thought would be a bargain, but flipping it over however…

Zork 1 for the PC-98!

¥7,800 YEN! From 1991!Honestly I don’t even know what is up with the price of software in Japan! Clutching this thing in my hands for the ¥2,800 makes it feel like a steal so of course I buy it!

Contents of the box

Nice to see that opening of the box gives me a catalogue, a manual, minimal map, registration card and a diskette! And I’m hoping I can read it using a USB drive.

Now I have no pc98 gear in Japan, and I’m trying to not have a mountain of hardware here, the i7 desktop and 30″ cinema display are already feeling ‘too big’ for this place anyways. I go to hardoff and pick up 2 USB floppy drives hoping to read the 3 1/2″ diskette.

Now I bought an IBM & some weird iMac looking drive, I was hoping between the two drives, maybe one would work. And I was right for buying the two. The IBM drive didn’t read the disk AT ALL.

However this iMac looking Logitec LFD-31US did the trick!

Apparently you need what is known as a “3-mode USB floppy drive”. Whatever that means. Although I can read the disk fine from Windows 10, winimage was unable to make a disk image. Disk Explorer is another option, which also specializes in the PC-98’s weird 1.2MB on a 1.44MB disk, however it couldn’t read the disk either.

I write a simple C program to read 512, 1024, 2048 blocks from \\.\A: (the physical drive), however it was cut short after 138kb. Maybe a hidden bad sector? Xcopy ran without issues, so who knows.

Looking at what I could dump, it does look like a bootable image:

and the xcopy did pick up MSDOS.SYS & IO.SYS. I though Microsoft was so against people redistributing MS-DOS, but then again aren’t most PC98’s floppy only?

I was able to cobble together a DIY disk image, and it doesn’t work fully on Neko Project II sadly. However Annex86 works fine.

On boot there is a nice graphical logo, and animation as the door opens. Really cool I have to say. Searching through zork.exe there is some interesting strings

  • Are you Japanese?
  • MS Run-Time Library – Copyright (c) 1988, Microsoft Corp
  • Original copyright (c)1988 Infocom Inc.
  • Used under license from Activision. All rights reserved.
  • (c)1991 SystemSoft
  • Copyright VACS Corp./ASCII Corp.,1986-90.
  • @(#)sunedit.c 1.0 07/03/1989 by VACS Corp.

Well that’s interesting. I was wondering how to trigger the ‘Are you Japanese?’ and well it turns out it’s pretty simple:

I’d have to figure out how to type in things like eat/sleep take… Although it is a twist on the old Infocom style. Now could this have ‘saved’ Infocom before their sale to Activision? I guess there was a market for Infocom games in Japan, although probably far earlier than 1991.

GCC moved to git!

After all that flap about having moved GCC into GIT I thought it would be worth checking out, you know digging for interesting old artifacts.

I found the ‘start’ back over here on github:

Sadly the ‘initial revisions’ only contain a few files, far from the contents of the ’87 archive.

Pitty.

Not that I would envy anyone crazy enough to do such a thing, I was just hoping someone else would have done a better job than I did.

emulator-sun-2

Since I was playing with the 68000 based GCC ’87 I know it was going to be more geared to SUN workstations, certainly of the early 80’s vintage as they would be the most ‘affordable/cheap/donated’ to FSF (Or so I’d imagine).

Naturally the go to emulator is TME, however this time while searching around for the install scripts and stuff I found lisper‘s (heeltoe.com) emulator-sun-2, a greatly cut down and SUN-2 focused emulator that emphasizes ease of use.

Wait, what? SUN-2, and ease of use? Why yes, not only that, as it uses SDL 1.2 it also means it’s much easier to compile. After an hour of messing around with it, I had it running on Windows. After a few minutes I had it running on my ARM based Acer NovaGO.

At it’s core is the m68k 68010 emulation from Karl Stenerud‘s Musashi core which is a great choice for the SUN-2 as it’s a 68010 based machine. Some fun notes from web.cuzuco.com/~cuzuco/sun2/ include:

  • CPU is a Motorola 68010 running at 10MHz
  • Maximum physical memory is 4 Megabytes
  • Maximum virtual memory is 16 Megabytes
  • All I/O is via a Multibus (an Intel design)
  • Main disk is a SMD, the largest size is 380Mbyte
  • Has a SCSI adapter, but the disk is slow and small (42Mbyte)
  • Sun was just finishing NFS
  • alludes to future AT&T UNIX System VI and VII
  • Display supported dual heads and a resolution of 1152×900
  • List price as tested: $44,900
  • Sun was still private, had 400 employees and sold 1500 units

You can read about the debut of the SUN-2 in the UNIX/WORLD Magazine, VOlume 1, Number 5 dated October 1984 in archive.org. It starts on page 86.

I started to integrate sigurbjornl’s patches for networking but I think I need to work through SunOS 2.0’s weird VAX 4.2BSD arp issues (anyone have the source code to SunOS 2.0?!). I’ll probably update it with UDP or some fixed ARP thing to remove that or just let the SUN-2 talk to a VAX with 4.2BSD so they can be weird, together.

I’m also pretty sure my old Cockatrice III sort of debugged SLiRP thing broke the packed structs to let it work properly when compiled with Microsoft C, so I’ll have to break down and either try to fix that, or update and borrow the vastly updated SLiRP from SIMH.

For Windows users who want to play along the bundle is on the terribly named page “Ancient UNIX/BSD emulation on Windows” as SUN2.zip.

GCC from ’87 on the 68000

Years ago I found the ‘first’ released version of GCC, and had built it for the VAX. And things were… fun.

While digging around on bitsavers for new and interesting things, I saw some newer stuff from MIT, and stumbled into the GNU directory and rediscovered the early GNU software depot.

And I re-built the early GCC to target the 68000 which I’d imagine primarily was for the SUN target.

simple program

Using a simple program I can run it through the pre-processor, and the compiler to get the following assembly:

assembly from ’87 GCC

Then it’s a matter of running it through the cross assembler, uuencoding it, and sending it to the target.

I used the cross assembler from the AtariST cross ‘project’, to get an object file. I fired up MachTen, pasted my object file to the VM, and uudecoded the object.

And yeah, much to my surprise the object file linked fine, and I got my native EXE.

It’s not much of a cross toolkit, and honestly it’s kind of useless… but I thought it was maybe worth a bare paragraph to show the other available target available for the 1987 release of GCC.

Also on the MIT archive is TRIX, the MIT Unix work alike that almost became the GNU Kernel, until Mach stole their hearts, and basically lead them on a wild goosechase.

I haven’t bothered uploading binaries or patches or anything yet, I don’t know if people are interesting in such a fringe thing……

The Jingsha x79 redeemed itself

Back on Christmas Eve I struggled to get this board to do much of anything. When it did boot it’d bluescreen Windows with a useless ‘ IRQL NOT LESS OR EQUAL ‘ error. I took it that the board was crap, and just shelved it.

Today however I’m working on another project and I need to emulate a ‘datacentre’ deployment so I’m stuck looking for machines with RAM, and of course cores. They can be slow I don’t care, but I need to run a TONNE of VM’s. I need egress, ingress, routers, policing, domains, email, servers, various databases, some container infrastructure to provision some other apps and all kinds of crap. I’d planned on maxxing this board out to 256GB or more, but it wasn’t playing nice. And now that it’s like the end of the world out here, getting more RAM from China really isn’t going to happen.

So this time I tried something different.

I have this Dell r710 server with a bunch of memory but it’s CPU’s are frankly lacking. I took the 32GB I had reserved for the Jingsha and swapped out 64GB from the Dell to put into here. I also picked up some massive GAMEMAX GM-1650 power supply which I figured would be more than enough for the dual processor board. The PSU clearly was built for a miner, and I had to use some really lame Y cable for the CPU power. I wasn’t sure what would happen if any of it even worked. My expectations were pretty low, and the first few times the board didn’t appear to do anything at all.

Then suddenly it beeped!

Booting Windows 10 from USB

I shoved in a Windows install USB, and it actually booted this time!

I bought some more of those ALSEYE 120mm cpu radiators as they couple with socket 2011 just fine.

Probably the weakest Quadro ever. But it’s low powered compared to anything modern

Although finding an E-ATX case that isn’t some ‘bling surprise’ is kind of difficult. It’s annoying all these ‘glass window’ cases, and other nonsense. What was wrong with IBM AT BEIGE?!

The lack of a boot diagnostic LED display really hurts this board. Clearly there was something about the memory I had it doesn’t like. It ran fine in the Huananzhi dual x79 board, and it runs fine in the Dell r710.

So yeah. Now I have 3 machines with 64GB of ram, and one with 96. It’d be easier to order but here we are.

So 6 weeks later the Jingsha finally did something useful.

One thing to mention as well is that like others have mentioned while running Linux it’s not uncommon to freeze, reboot and other fun things. Meanwhile Windows is fine. What is going on here?!

I enabled NUMA thinking if something was going wrong maybe it’d be isolated to a single NUMA node, and not take down the entire machine. I’m not convinced I was right, HOWEVER I did capture this error message!

Feb 19 07:31:27 rancher kernel: [    5.820094] mce: [Hardware Error]: CPU 1: Machine Check: 0 Bank 7: cc00008000010093
Feb 19 07:31:27 rancher kernel: [ 5.821328] mce: [Hardware Error]: CPU 0: Machine Check: 0 Bank 7: cc00008000010093
Feb 19 07:31:27 rancher kernel: [ 6.812122] mce: [Hardware Error]: CPU 1: Machine Check: 0 Bank 7: cc0069c000010093

Well that’s not good. So what is more interesting, is that I entered the BIOS after hammering F2/DEL like a typical end user and found this in the memory settings:

Memory is being configured as 1333Mhz, incorrectly

As you can see the current memory speed is 1333 MHz.

However as you can see, I’m using hynix 8gb 2rx4 pc3-10600r-9-11-e2 memory sticks, which means they should be clocked down to 1066 MHz. It’s probably a bit premature to write this, but I’m 30 minutes up, which is a record running Linux on the Jingsha.

It feels like RAM is the new Lupus. it’s never Lupus, but it’s always Lupus.

Cross compiling SDL 1.2.15 for ARM Win32

I was getting this fun error:

C:\proj\ss\SDL-1.2.15\VisualC\SDL>link /dll -out:sdl.dll *.obj winmm.lib dxguid.lib gdi32.lib user32.lib advapi32.lib dxguid.lib uuid.lib dxguid.lib Version.res
Microsoft (R) Incremental Linker Version 14.24.28315.0
Copyright (C) Microsoft Corporation. All rights reserved.

Creating library sdl.lib and object sdl.exp
SDL_dx5events.obj : error LNK2001: unresolved external symbol GUID_SysMouse
SDL_dx5events.obj : error LNK2001: unresolved external symbol GUID_SysKeyboard
SDL_dx5events.obj : error LNK2019: unresolved external symbol IID_IDirectInputDevice2A referenced in function DX5_DInputInit
SDL_dx5video.obj : error LNK2001: unresolved external symbol GUID_XAxis
SDL_dx5video.obj : error LNK2001: unresolved external symbol GUID_YAxis
SDL_dx5video.obj : error LNK2001: unresolved external symbol GUID_ZAxis
SDL_dx5video.obj : error LNK2001: unresolved external symbol GUID_RxAxis
SDL_dx5video.obj : error LNK2001: unresolved external symbol GUID_RyAxis
SDL_dx5video.obj : error LNK2001: unresolved external symbol GUID_RzAxis
SDL_dx5video.obj : error LNK2001: unresolved external symbol GUID_Slider
SDL_dx5video.obj : error LNK2001: unresolved external symbol GUID_Key
SDL_dx5video.obj : error LNK2001: unresolved external symbol GUID_POV
sdl.dll : fatal error LNK1120: 12 unresolved externals

Which was NOT easy to track down. Thankfully while amputating and chasing the origin of GUID_Key, I ran across this: cboard.cprogramming.com

I have read various texts that state you must
Code:?

1#define INITGUID

And yes, you do!

In the file SDL-1.2.15\src\video\windx5\directx.h I just added it to the top, and now it’ll build the hacky DLL!

Maybe it’s something for Visual C++ version 19? I don’t know.

Anyway the advantage is now I have full audio for DosBOX!

Luckily updating binaries wasn’t too hard.

Congruent (Toolbusters) GCC 2.4.5 for Windows NT

Perhaps one of the more interesting, if not abandoned GCC ports.

It’s from 1994 (although they apparently had earlier), and it’s just enough binutils & gcc to compile stuff for Win32.

I stumbled onto the directory http://www.nic.funet.fi/index/win-nt/gcc/ while looking for the source code to the ‘top’ program, which incidentally can be found here. In hindsight the name ‘top’ is pretty terrible, as looking at the ‘top program for Linux’, well you are going to find all kinds of crap, and surely not top.

The files gnu-bin.tar.Z and gnu-lib.tar.Z contain enough binaries for GCC 2.4.5 C/C++ and ObjectiveC, along with GAS and what purports to be a linker, although I think it just prints the flags to MS Link that you’d need.

And as mentioned in this post, by Juha Inkari, how on earth do you use this thing? Well thankfully in the future we have access to more stuff, so I decided to throw MinGW at it, and see what happens.

I’m using the Linker & LIBC from Fortran PowerStation 1.00 with the linker update.

There is no source diffs, patches, or anything really.

Is this useful? I suspect not. Thanks to RSXNT there is easier ways to get much older versions of GCC… Although I guess it speaks more so to this port using OMF objects.

Congruent Corporation
110 Greene Street
New York City, NY 10012
(212) 431 – 5100
(212) 219 – 1532 (f)

Anyone ever heard of Congruent? Sounds almost Cygnus like.

Living with ARM for a week

So after the crazed purchase I made a few weeks ago, I returned from Japan, and was able to unbox and use the machine I’d been wanting for a while, a non x86 Windows laptop!

The NovaGo has a Snapdragon 835, and my phone, the ASUS ROG phone has the 845. Yes for this week, my cellphone actually has the stronger processor than my computer. Honestly this is almost an unthinkable situation! Although I haven’t been using my phone as a desktop substitute this week. It’s amazing how MS screwed up 10 on the phones, and Continium.

By default it comes crippled with this ‘S’ mode Windows, which hearkens back to the Windows RT launch, with the difference that it’s a quick trip to the application store to unlock Windows 10 Professional. It’s a free download as it should be, and it doesn’t even require a reboot!

Build quality isn’t so bad, the screen folds all the way back to make the machine into a ‘tablet’ although I don’t like that mode so much, it just feels wrong to wrap a keyboard around a monitor. However if you have rambunctious young kids, it’s great as when someone went running by me flailing their arms around like a while animal, when they struck the laptop the screen could easily fold back 180 degrees. Yay.

My first thing to do after setting up Office and VMWare VDI was to install the Linux subsystem, and Ubuntu. it’s exactly the same as it is on x86_64, which is great. And this let’s me have the best of both worlds, just like x86_64. As much as I dislike stumbling around with that aborted child of Pascal & Fortran (Python) at least I can run it under (mostly) Linux to get something close to like the production environment.

The C/C++ compiler is actually all cross tools. I wanted CLI only stuff because I like torturing myself, and it required a few GB of downloads. The good news is that the latest Windows 10 SDK does support GDI/CLI apps, so no crazy SDK hacking required, unlike back in the Windows RT days. Oddly enough the Taskforce 87 interpreter runs fine, but nothing else does.

I did a horrible job at hacking up SDL 1.2 to at least run (kind of, the audio doesn’t work, and it’s all WinDB *EDIT I got it fixed!!!) I got a few things up and running, including DOSBox and FrontVM. One thing that greatly helps is that i386 binaries ‘just work’. Honestly you wouldn’t even know you are running them when you are. Which made hunting down the ARM64 version of Chromium Edge kind of difficult to find. There really needs to be a more apparent way to tell them apart, if anything for battery efficiency.

As pictured, SQL Server 4.21a runs just fine, again you wouldn’t even notice. Same for Visual C++ 1.0 & FORTRAN PowerStation 1.0.

Again the audio in my crap SDL build doesn’t work, so DOSBox is silent, and without Direct X, the text mode is tiny. Oh also, there is no OpenGL in this version of Windows dev kit for some reason. Running ssystem is ungodly slow. Also the default optimizations seems to be Os, optimize for space, and on this ASUS I have to say /Ox is way way faster. DooM is quite playable on DOSBox when build with /Ox, unlike /Os.

For me, I spend most of my day to day in Office, and VMWare VDI, connecting to secure networks. So I’m just one step above a terminal. Which I guess is kind of sad, but this machine more than fills that roll for me. The 120GB of storage is tight. This isn’t a development machine persay, nor is it something to download tonnes of data to, it’s a lightweight machine where it’s strength is the built in 4G modem, and when running ARM software the longer battery life. To me the biggest drawback is that the keyboard isn’t backlit. Even though I touch type, I didn’t realize how much I’d grown used to it for casual use.

I guess it’s a hard toss up from this and a PINEBOOK Pro, I think most readers here would prefer the Pinebook, for all it’s openness, although I still like the idea of being able to copy over the Win32s version of Lemmings, and it just running. For me I kind of like this thing, although once I switch back to an x86_64 with more memory, better GPU and disk options, maybe this just feels like some kids toy.

Neko98 ARM!

I don’t know how I didn’t think of this, but I also ported Neko98! Although the STL is having an issue with the ‘control panel’ so Neko is on autopilot.

This app can’t run on your PC

As for the emulation, it is 32bit only, so expect to see this stupid message quite a bit. The neckbeard is a nice touch though.

Also built into the thing is a cell modem. I guess it’s really not a surprise as the 835 really is a cellphone SOC. I have a ‘wifi egg’ as they are called here, a WiFi hotspot with unlimited internet from CLS, which is on the old 4G network. I popped the SIM in, and it picked up the APN settings on it’s own and I was connected in under a minute. I have to say that it’s about time that SIM cards have this stuff programmed into them for a plug & play experience. And thankfully the ASUS is unlocked, although from what I understand these were sold in the USA bundled with some cell service plans.

For anyone with one of these rare machines that cares to play along you can find my built stuff on my ‘vpsland’ archive:

https://vpsland.superglobalmegacorp.com/install/Windows10-ARM/

And the f2c/dungeon build along with the C/C++ compiler is in the aptly named dungeon-2.5.6-ARM(32bit)-win32.zip file.

Random fun with video cards

So that 3d Mark 11 bench tool was on sale, and I thought it’d be interesting to judge various machines.

NVIDIA GeForce RTX 2070(1x) and Intel Core i7-9700K ProcessorNVIDIA GeForce GTX 980(1x) and Intel Xeon Processor E5-2678 v3AMD Radeon R9 290X(1x) and Intel Xeon Processor E5-2620 v2
3DMark Score239801635113534
Graphics Score290581758518872
Physics Score15672132897876
Combined Score15824138556623
Graphics Test 1 fps1146.83182.54180.92
Graphics Test 2 fps2145.84282.38290.27
Graphics Test 3 fps3173.273111.73124.86
Graphics Test 4 fps481.82452.33457.79
Physics Test (fps)49.7642.1925
Combined Test (fps)73.664.4430.81

One glaring thing is that the old AMD (new ones too??) don’t have any PhysX acceleration so the weak processors shine through. And honestly the 980 is still a really solid card. Assuming yours hasn’t been mined to death.

Going from memory here is roughly what I paid (Yes I bought the RTX 2070 before the announcement of the Supers, and basically it’s too high for right now, but this is what happens in tech, value slides way down).

RTX 2070GTX 980R9 290x
price in HKD$3,739$800$350
3DMark Score239801635113534
3DMark per HKD6.4120.4438.67

So the biggest bang for the buck is the used stuff. Like it’s not even close. I should probably add in MSRP’s for the old cards. But here we are.

My old GPU was an GTX 460, before I tried out the 1030 & 1050 before making the leap to the 2070. But lately I’ve been looking for old gen cards as they seem to perform pretty well. Also for AutoCad I picked up a P2000. It’s insane how much those cards can go for, and I should bench that one to show how terrible it is at gaming. But wow what a speed difference in CAD.