; LOGO Language Interpreter for the Apple-II-Plus Personal Microcomputer
; Written and developed by Stephen L. Hain, Patrick G. Sobalvarro,
; and the M.I.T. LOGO Group, at the Massachusetts Institute of
So yeah, I wanted to get a ‘real’ SAN for a while, but they always cost too much. So I just decided to look for something older, like a MSA-1000, which are surprisingly still expensive. Failing that I thought about how I could get that MacPro 2010 for ~$300 so I said what the heck and picked up a super cheap 7TB fully loaded out Xserve RAID.
I got a PCI-133 LSI Logic “LSI7202XP” Fiber Channel card for my G5, as I figured that this stuff was of the same era, may as well configure it with a PowerPC.
After setting the LSI to 2GB and in point to point mode, the system needed a reboot, and it would report a link on the FC adapter. Great.
To actually configure the array, you need the Xserve RAID admin tool, along with a working copy of Java on your machine. I downloaded version 1.5.1 which is thankfully still on Apple’s site. It runs fine from OS X 10.5, although the readme does make mention of 10.2, so perhaps it’d run there, although I didn’t feel like booting into 10.2 to find out. By default the password for read only access is ‘public’ and for admin control it’s ‘private’. Yes just like SNMP community strings.
You need to connect the Xserve RAID to an Ethernet network. I’ve only used the MSA’s and they let you configure them over the FC, but no so with Apple, it’s a Bonjour enabled service, so you don’t have to setup the Ethernet, just plug it in, and that’ll be good enough.
Creating the array is straight forward, however the SAN with it’s two controllers aren’t redundant, rather it’s really 2 SAN’s in one chassis with a left & right hand side.
So the solution is to use 2 connectors to the dual card, I have 2 DAC cables so I’m set.
But for now it’s just more so messing with the unit. I’ll probably just set it in JBOD mode, and pass it up to something like Solaris 10 with ZFS exports.
It’s no secret that I always was fascinated with the 1988 game Captain Blood. Last time I played it through was when I’d modified it to run with a virtual floppy drive on an Amiga 600. While the game had been ported to numerous 8 bit and 16 bit platforms, it basically vanished into the haze that was French 80’s SciFi body horror.
And sure enough I grabbed a copy of the IIGS emulator KEGS32, the ROM, an OS disk, and booted up System 6.0.1 after putting the OS disk into slot S7D1. I then mounted up the source code diskette found at brutaldeluxe.fr
Well it’s a bunch of assembler files. Ok, so when I try to open one from System 6.0.1 I get this:
So not giving up just yet, I loaded up a program called CiderPress that can read the IIGS disk image files, and using that I was able to extract the source.
And then I saw this gen scattered in the ASM files that were.. well honestly pretty bare of any comments. Or sane labels.
TFBD generated externals
Which of course is the output from The Flaming Bird Disassembler, a product of Brutal Deluxe, aka where this ‘source’ came from. Although apparently it can be re-assembled into a working executable, as Antoine had fixed it so the mouse used toolbox calls for the mouse for ROM 03.
I put the source code online in CVS. Although I don’t think many people would care, as it’s reversed and VERY terse.
There is no games, nothing fun to do, I didn’t even build a compiler. It’s just enough to show that it’ll boot up. If you manually conifgure the loop back you can ping yourself, launch inetd you can even try to telnet in, but control break is .. broken, and there is no NetInfo running so no passwords.
Of course for anyone finding this site today there are more newer, and capable images on my sourceforge page:
I only have to wait 24,153,992 minutes to unlock my iPod! That is just under 46 years.
So I haven’t used this in a few months, and the battery went flat, but with iOS 9 or whatever this is running it reset to 1970, and now won’t let me even try to unlock it. Good thing the MacBook Air I sync’d it with is dead too. I guess that’s 2012 for me.
I just don’t want to hard reset it, so I guess I’ll have to see if there is a root kit/hack to set the clock.
I found this out trying to install XCode 4.2 on OS X 10.6
Failed install preflight: Error Domain=PKInstallErrorDomain Code=102 UserInfo=0x1d9a30 “The package “iPhoneSDKTools.pkg” is untrusted.” Underlying Error=(Error Domain=NSOSStatusErrorDomain Code=-21 47409654 UserInfo=0x1dbe90 “The operation couldn’t be completed. CSSMERR_TP_CERT_EXPIRED”)
Yep turns out XCode 4.2 (and probably many others) will actually expire. So turn off the automatic clock sync, and set your time back to before the package was issued (Xcode 4.3, released on February 16, 2012..) and you’ll be good to go.
Good news, as mentioned here, the Shoebill emulator was recently given some much needed SDL love, and ported to Linux.
Well that’s great and all, but the vast majority of people who run anything these days do it with Windows. So I decided to try to get it to compile with MinGW to see how far I could get.
And the short version is that I got it working!
The long version is that in the first pass there is some SIGUSR2 stuff that is undefined. And for a good reason, since it won’t work. So I just commented them out. The next minor problem was the lack of bzero. Honestly I don’t know why bzero is missing from MinGW, but who knows why.
Shoebill also processes some internal macros with a perl script that for some reason was dropping in binary values into the source, making GCC mad. I just commented out a line that was adding in more comments into the header. This let me compile with a simple pass.
There was some issues reading the ROM file, since the 68000 is a BIG ENDIAN processor, and the 8086 is LITTLE ENDIAN, Shoebill makes extensive use of hotns and hotnl, ntohl, and ntohll. These can be found in the winsock library, and even better they dont need any winsock initialization, they work right away. I just have to make sure I include winsock2.h, and link against the winsock library.
However when trying to boot, the checksum was 0x00000000, not the expected value! Luckily there was an assert to catch that and crash. This led me to notice that in Linux files are opened in binary mode by default, while on Windows, they are opened in ASCII mode. A quick change of all the fopen calls, and I was reading the ROM, but now crashing on the disk.
As it turns out newer versions of GCC go all crazy when it comes to structs, and try to automatically align to boundaries for quick access. Which sound nice, until you try to read in some binary data, and expect things to be in certain locations and find out that your structure is larger than expected, and data is read in the wrong place.
The solution is to force the compiler to leave it alone with
HOWEVER as luck would have it, Microsoft apparently packs structures a different way, and you have to either make a macro to do a bunch of work to force it to make the structure 1:1 of what you expect, or use the CFLAG option of
And now MinGW’s GCC will build something along the lines of what it’d build on Linux.
I nearly forgot before I shut down the VM for a long while, to do a f2c/dungeon build… I only had a minor snag on how libf2c removes symbols from the build, but commenting out it’s “ld -x” fun, and it worked great.
Now I think I’m only a few dozen builds behind Tenox’s aclock.