The LC isn’t a strong Macintosh. It is after all, a low cost model. And what I’m doing isn’t even slightly fair to it.
Since it has a mere 68020 running at a blazing 16Mhz with no 68881 nor any MMU running something like A/UX is simply out of the question. However MMU less Mac’s can run MachTen.
Although I did make a backup of the disk to find out that this thing had been in Harvard of all places, apparently once belonging to Mark Saroyan.
Although there was nothing even slightly academic or useful on the disk. I wonder if the software was even pirated as the last owner sure enjoyed all the various SIM games (city/earth/life/ant) it seems more than anything else.
I formatted the massive 50MB SCSI disk, put on a fresh copy of MacOS 7.0.1 along with the network driver and MachTen 2.2.
And as far as LC’s go, this one isn’t too bad, it’s loaded up with the maximum 10MB of RAM, although it seems the VRAM is pretty sparse as it’ll only go to 16 colours. But since we are playing UNIX here, I didn’t see any need for that, and set it to mono.
I thought it’d be fun to install a gopherd server onto this machine, and that is where the fun started.
Granted it’s been a long time since I used a machine with no real L2 cache, let alone running at a whopping 16Mhz, and using a compiler like GCC is just incredibly slow.
So I thought I could just ‘cheat’ the system by taking the source code to GCC-1.42 and tweaking the SUN3-Mach configuration into a SUN2-Mach configuration but keeping it targeting a BSD like OS, along with setting it to compile to a 68020 without a 68881. Oddly enough getting a cross compiler wasn’t so difficult, but the assembler on the LC, a modified GAS wouldn’t assembler the files. So I went ahead and built a68 from GAS 1.38 and now I can cross assemble from Windows. However I couldn’t get the linker ld from binutils-1.9 working. I guess it was an endian issue somewhere, but my attempt at byte swapping files it was reading just led to further confusion. And I figured linking on the target host wouldn’t be the end of the world, as compiling sure feels like it is.
So fighting the source and in a matter of a 30 minutes of on/off work I had it compiled. All I needed to do then was FTP the objects to the machine, link and run. Surprisingly this proved to be pretty simple.
I managed to get a few pages out of it, and suddenly my telnet sessions dropped. Looking over at the console and MacOS was busy being MacOS.
And that was that.
I tried another program to cross compile and upload phoon!
It took a while to set the clock to the right year, as my minimal System 7 install doesn’t have the time control panel, and advancing 1 year at a time from 1999 takes time, by advancing the date to New Years Eve every minute 19 times to get us to 2018 with the old date syntax:
date 12312359
Lessons learned?
Obviously if I want to do something like this, I’m going to need a better Macintosh. Or just not do things like this….
I’m kind of on the fence as to whither 68k Unix is really all that useful in the age of Ghz x86.
; 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
; Technology.
When I’d bought this 1020 in question, I picked it up from an AT&T customer with the intention of basically using it as a camera. Well it was kind of okay but it had been upgraded to Windows 10, which technically is unsupported on the 1020 hardware. And no wonder as the 1020 specific camera applications aren’t available, nor is performance all that great on Windows 10. I’m guessing there is a laundry list of reasons of why Windows 10 was not available for the 1020.
So I saw this website, lumiafirmware.com that not only has an incredible amount of firmware saved, but it sure makes the process of loading different firmware pretty simple.
Download the firmware form this site only the ffu.
And now open CMD as administrator
Type “cd C:\Program Files (x86)\Microsoft Care Suite\Windows Device Recovery Tool” /Â (32 bit pc) “cd C:\Program Files\Microsoft Care Suite\Windows Device Recovery Tool”
Connect now your phone to your pc
Type in cmd “thor2 -mode uefiflash -ffufile “C:\the location of the ffu\file name.ffu” -do_full_nvi_update -do_factory_reset”
Wait now until your phone gives a green screen
Type now in cmd “thor2 -mode rnd -bootnormalmode”
Really doesn’t that sound not that difficult at all?!
Except it wasn’t.
Looking at the incredibly extensive list, I see that the AT&T 1020 phone in yellow colour is the RM877. So I download the appropriate ffu image and run:
Start sending payload data V2Sbl in async mode...
Percents: 0
Device responded a message that has invalid size!
Expected: 16, Received: 0
Exception during programming: 262150
Safe write descriptor index reached: false
Payload data transfer speed (0.22 MB/s) Elapsed time 40.83 sec
Payload data size 9.000123 MB
[IN] programSecureFfuFile. Closing RM877_3051.50009.1451.1_RETAIL_nam_att_205_01_473928_prd_signed.ffu
programming operation failed!
Operation took about 1 minute, 6 seconds. Average transfer speed was 0.11 MB/s.
Unknown error code.
THOR2 1.8.2.18 exited with error code 262150 (0x40006)
Unknown error code! What the hell does that mean?
Glancing over at the phone I’ll show you what it means.
So the phone was stuck at the red screen waiting to be programmed, but obviously that failed. Re-running the programmer just gave me this:
Detecting UEFI responder
Send HELLO
Send HELLO
Send HELLO
Send HELLO
Send HELLO
Lumia UEFI Application did not respond to version info query
Device is not in Lumia UEFI mode
Reading device mode failed
Failed to detect UEFI responder. 84017
THOR2_ERROR_TO_COMMUNICATE_WITH_DEVICE
THOR2 1.8.2.18 exited with error code 84102 (0x14886)
So I thought I’d hold down the volume down button & power and do a reset. Except now my device was nearly bricked. The display wouldn’t turn on at all, and there was no haptic feedback on powering up and or down.
HOWEVER plugging in the USB would make the connection noise, and how me a “QHSUSB_DLOAD” device. So I could try to talk to it in emergency mode.
Apparently on the same download page, there is a hex file and a mbn file. Downloading those and running:
And this looked like it was going to work… but then as always it failed.
Sending OPEN_MULTI_REQ
Received valid response to OPEN_MULTI_REQ
Programming image R
Image opened successfully for reading
SAFE hex file was used and unallowed memory address was being written.
Reset the device and use the correct HEX file.
ALPHA EMERGENCY FLASH END
Emergency messaging closed successfully
Operation took about 11.00 seconds.
Unknown error code.
THOR2 1.8.2.18 exited with error code 85034 (0x14C2A)
Use the correct HEX file? But it was the one that I downloaded from the right page! Great now my phone is dead. Unplugging it in and out however gives me a little hope as it’s still showing up as a QHSUB_DLOAD device.
After a lot of searching I see Joemar Serrato went down the same road, and they did something weird where they split out the mbnfile from the ffu file themselves. So I ran the following command to split out the mbn files:
Sending OPEN_MULTI_REQ
Received valid response to OPEN_MULTI_REQ
Programming image g
Image opened successfully for reading
Uploading MBN image 70
SAFE hex file was used and unallowed memory address was being written.
Reset the device and use the correct HEX file.
ALPHA EMERGENCY FLASH END
Emergency messaging closed successfully
Operation took about 11.00 seconds.
Unknown error code.
THOR2 1.8.2.15 exited with error code 85034 (0x14C2A)
And it appeared nothing changed at all. Great. In disgust I unplug the phone and hold down the volume down & power button for 15 seconds, but this time it vibrated. I couldn’t believe it! Within a few seconds it powered back up to the red screen, ready to load new firmware!
Size of system mem: 2097152 KB
Send backup to RAM req...
Clearing the backup GPT...SKIPPED!
Successfully parsed FFU file. Header size: 0x000c0000, Payload size: 0x00000000572e0000, Chunk size: 0x00020000, Header offset: 0x00000000, Payload offset: 0x00000000000c0000
RKH match between device and FFU file!
Option: Skip CRC32 check in use
Start sending header data…
Start sending payload data V2Sbl in async mode...
Percents: 0
Percents: 1
Percents: 2
Percents: 3
Percents: 4
Percents: 5
I was astonished! The progress bar was slowly moving, and the phone was doing what it should have been doing about 2 hours ago. I dared not move, so unfortunately I don’t have any pictures.
Payload data transfer speed (9.79 MB/s) Elapsed time 142.41 sec
Payload data size 1394.893921 MB
Read flashing status..
[IN] programSecureFfuFile. Closing RM877_3045.0000.1325.0001_RETAIL_nam_att_205_01_223461_prd_signed.ffu
Get EMMC write speed...
Get EMMC write speed, SKIPPED!
Get data verify speed...
Get data verify speed, SKIPPED!
Send restore backup from RAM req...
programming operation completed!
[THOR2_flash_state] Post programming operations
[THOR2_flash_state] Executing factory reset
[Factory reset result] 0
Factory reset done
[THOR2_flash_state] Executing Full NVI Update
Write flash options ( WriteNvi: Full )
Write parameter to device via UEFI Flash App
Write parameter Ok
Flash options set successfully.
[Full NVI update result] 0
Operation took about 2 minutes, 24 seconds. Average transfer speed was 10.16 MB/s.
Exited with success
And then just like that, the phone rebooted itself, and then brought itself up to the ‘green screen’
All that remained to do was to tell the phone to boot up normally
thor2 -mode rnd -bootnormalmode
And that was it!
My 1020 is now running 8.0, which includes not only the special Nokia phone apps, but all the AT&T bloatware of 2012. I can’t believe there was a yellow pages app. How are they still a thing?
This repo contains the original source-code and compiled binaries for MS-DOS 1.25 and MS-DOS 2.0.
These are the same files originally shared at the Computer History Museum on March 25th 2014 and are being (re)published in this repo to make them easier to find, reference-to in external writing and works, and to allow exploration and experimentation for those interested in early PC Operating Systems.
License
All files within this repo are released under the MIT (OSI) License as per the LICENSE file stored in the root of this repo.
At first I just thought it was simply just another mirror of the original source that had been released that had some incredible restrictions.
Original license: To access this material, you must agree to the terms of the license displayed here, which permits only non-commercial use and does not give you the right to license it to third parties by posting copies elsewhere on the web.
However the restrictions have been lifted, and MS-DOS 1.25 & 2.0 are now available under a MIT license.
I came across this hefty box, “the easy way bundle”, as it bills itself, the easy way to save over $1,000 on four popular software packages for your new Macintosh computer. Clearly the box has seen better days over the last 27 years but amazingly the contents are just fine.
It’s amazing how much more cheaper software has gotten over the years. Software used to be super expensive on the PC level, it really wasn’t until the office bundling with new machines that drove the price down. Back in the 80’s and early 90’s it wasn’t uncommon to pay upwards of $500 USD for a single application, like a spreadsheet or word processor.
Inside the box is more boxes, and inside those boxes is a rare sight, manuals! Actual printed manuals! That is how you know this is something of near museum quality. I kind of like being able to read a physical book from time to time, and it’s really great.
Oh and incidentally the disks all worked, much to my amazement. I just needed to get a working Macintosh with a drive that can read 800kb disks and an Ethernet card.
Although it does list four packages, it really is 3, featuring:
WordPerfectÂ
Lotus 1-2-3
SoftPC
AccessPC is simply a FAT driver for MacOS to read MS-DOS floppies & removable media.
So let’s take a quick look!
I haven’t seen something like this in a long while, an actual license printed on nice stock certificate stock paper (remember those?!), with a hologram tag. Does WordPerfect even exist anymore? Can I mail this in for an upgrade? Does it even matter?
While the install options give the impression that WordPefect is a really full featured word processor once loaded up for some reason it really felt barren.
Although it does have the important proofing tools, don’t expect a dictionary or thesaurus to have anything more than the words, no definitions or anything like a style guide. It did ship on floppy and I guess I’ve just become so spoiled living in the future with terabytes of storage and an overwhelming supply of deference media.
Going back to 1992 is a real trip to not only how clean some of the UI elements feel, but just how seemingly feature sparse the more advanced applications feel.
Personally I never really liked WordPerfect so I more so installed it as a curiosity, much like when I had WordPerfect for Unix. I’m the crazy one that likes MS Word.
With that said, I went ahead and installed Lotus 1-2-3, and I was really surprised, that the installer was not only really appallingly bad, requiring you to copy the contents to the HD before installing it (so you need a lot of free space), but there was no copy protection at all either on the disks, or in the form of a certificate/serial code. In school I did start with 1-2-3, but with the onslaught of Microsoft Office had quickly moved to Excel, and after 30+ years I really don’t remember much of the slash commands, let alone how to use if effectively. Luckily the menu is okay to walk through, and of course there is Macintosh style menus so you don’t even have to deal with the slash menu if you don’t want to.
SoftPC didn’t come with a box within the box, just the two manual sets & the disks shoved into the manuals. I doubt it came like that, but this is all I have.
Compared to the WordPerfect certificate, the stickers hidden in the folds of the SoftPC manual just feel cheap. And the years have not been kind as you can see with the discoloration, and the cheap adhesive on them has completely dried off. After I had scanned this they have all fallen off the backing paper. Although I also have version 3.1, I didn’t want to lose this so I’ll just save it for prosperity.
And SoftPC is a great program, although it really is an absolute crutch, allowing you to run PC software on your Mac. Flash forward 30 years, and the industry continues with VMware & Parallels. What is more amazing is how so many leaders in PC emulation completely missed the virtualization market. But most people would think you were a little strange to run a PC on a PC. Or more than one at the same time.
SoftPC emulates a really barebones PC, it only supports a maximum of 640kb of RAM, and the CGA graphics adapter. For anything more advanced you really need to get SoftAT, which supports more options. Or even better, get a copy of SoftPC 3.1, which not only allows more memory but bundles a copy of MS-DOS 5.0 and Windows 3.1
I found the emulation of the CGA kind of lacking when compared to version 3.1Â Although some games like BattleTech render just fine, Space Quest just looks horrible in version 2.52.
Although to be fair it doesn’t look so much better in version 3.1 either. However 3.1 emulates both EGA & VGA (along with expanded & extended memory) giving a far more richer 286 based emulation solution
As you can see there really is no comparison to the EGA version.
Although there are far more better solutions today to do PC emulation, for some reason there is always something cool to have an emulator running an emulator.. Sadly the 80386 based emulation didn’t come to the 68000 based platform, instead the later generation emulation was only available to the PowerPC.
I guess it goes to show, but of all the applications I have for MacOS, I enjoy SoftPC the most. I suppose I need better softwares.
I’ve been pretty dismayed for the longest while that newer versions of Windows bundle newer versions of ODBC that refuse to talk to any version of SQL Server prior to 2000 (at the moment). Of course if I were ‘professional‘ Id be upgraded to the latest version, maybe even running on Linux. But I’m not, and you didn’t come here for how to upgrade/update but rather how can you use tools from the 90’s in the 10’s.
If you try to use the current SQL Server driver, you’ll get this message. Don’t be fooled, SQL Server 7.0 isn’t supported either (probably because of the SUN vs Microsoft Java debacle), it will only work with SQL Server 2000 or later versions.
It’s been this way since Windows 7, and I’ve just given up and gotten used to having to have a VM to access older databases. That is, until today.
While I was dumping data and moving stuff for my blog (something I need to write about another BCP adventure), I wanted to do a simple Access database to make sure it’s looking sane. And I figured I’d jump down to Windows 95, and load up Office 95. Well sure enough there was no proper SQL Server ODBC driver. Popping in the SQL Server 6.5 CD, naturally there is no ODBC drivers for Windows 95, but rather a 16bit driver for Windows 3.1, and 32bit drivers for Windows NT. I installed the NT version, and was still unable to connect until I installed the SQL client which then let me run WINDBVER.EXE so I could configure the appropriate transport DLL (TCP/IP) and then I could connect.
And this got me thinking, is it possible to just take those DLL’s and move them onto Windows 10? Well naturally that won’t work as the driver sqlsrv32.dll is a system protected file, and you can’t overwrite it without a lot of pain. However this got me to thinking that it should be possible to just tell the system it’s a new driver with a different name.
Looking through the registry I notice that HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\ODBC is where the 32bit ODBC stuff is stored, so this is where I’ll make my ‘OLD SQL’ driver. I simply used the existing one and renamed the driver/setup DLL’s to sql65-sqlsrv32.dll so that way the 2 DLL’s can co-exist without freaking out.
With that done, the key Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\ODBC\ODBCINST.INI\ODBC Drivers will need a new SZ string saying the ‘OLD SQL’ driver is installed.
I also copied the following files from the SQL 6.5 client into a subdirectory of SysWOW64 so I could configure the transport:
Now if you are going to use named pipes it’ll just work out of the box. Running WINDBVER you’ll see that it’s set that way by default.
to change it to TCP/IP I coped the files DBMSSOC3.DLL & DBMSSOCN.DLL into the SysWOW64 directory and re-ran WINDBVER, and then selected TCP/IP.
Now we can go ahead and add a SQL DSN. Remember to use the 32-bit ODBC Data Source tool
If everything is setup correctly you should see the ‘OLD SQL’ Database driver. Scrolling to the right you’ll see that it’s version 2.65.02.01 dated 7/7/1997
Now we just need to configured the driver. Be sure to hit the Options button and type in the database name, otherwise it’ll just go to the default database. Since I’m just using the ‘sa’ user that would be the master database, but I want Access to instead use the ‘pubs’ database.
Sadly these old drivers don’t have any test functionality. So there is no real way to know if it is working at this point, however I would imagine it should as we have added a regsitery key for the driver, added it to the available driver list, selected (if needed) a transport DLL, and populated the needed fields. The next thing to do is to try to use it.
Start Access, and select a blank database. Go to the External Data tab, and then choose the New Data Source, and the From Other Sources option. This will bring up the ODBC database wizard.
I’m going with linked, as I want the data to be used from the SQL Server all of the time. You will be then prompted to choose the Data Source
You can select the DSN we setup earlier, and then it’ll prompt you to login.
Again I’m using SA because… why not. And now for the moment of truth, if everything is correct you’ll be presented with the list of tables! This means that it’s working!
You can choose to save the password, and if needed select unique fields, or just leave it as it is. Now you should be able to access your SQL 4.21 database!
And there we have it.
If anyone is brave/crazy enough I extracted the driver here: sql65odbc-files.7z SQL Server 6.5 should not only be able to access 4.21, and 6.0 but I think it ought to be able to access SQL Server 7.0, although I haven’t tested it out yet.
Yes, I know this is crazy but… I don’t know if anyone else would care. Windows 10 (7 & 8 as well, I guess…) include a .NET 2.0 option or a 3.5 which includes 2.0 install but if you need the first real ‘release’ version of .NET v1.1 you cannot install it. And some applications were pretty much hard coded to 1.1, even though the whole point of .NET was to avoid this kind of version/DLL hell.
Well, I had come across this great post here on techjourney.net. And yes, it sounds crazy, but it works!
All you need to do is download the version 1.1 framework + SP 1, and slipstream the SP 1 patch into the directory and run the setup..
I’ve gone ahead and combined the .NET v1.1 framework + SP1 into this zip file: dotnet1.1-withsp1.zip, so you can bypass those steps, and just go. No more bizarre errors about the debugger not finding itself and crashing out the installer.
And now I can manage my nested VMware ESX 2.5.2 cluster on Windows 10 natively as managing from a VM just wasn’t the great experience I’d been hoping for.