Further Into The Universe Mac OS
Wine allows OS X users to run Windows applications. Note: this listing is for the official release of Wine, which only provides source code. If you want a version of Wine that is packaged specifically for OS X, then use Winebottler, available here.
Further Into The Universe Mac Os X
- Neutralized pending further study: 0. When OS X settles into the Mac universe in a more-or-less final version and Windows XP is released, the series should be.
- Minimum requirements for Paladins on Mac include OS X 10.10 or above, an Intel Core 2 Duo 2.4GHz processor, 2GB of RAM and a dedicated graphics card with 512MB of VRAM and Shader Model 3.0+ support. I would have put Paladin much higher on the list, however, since it no longer works on macOS Catalina as Catalina doesn’t support 32-bit code.
Next article: Plausible Labs is Hiring
Previous article: Buy Videos of My VTM Presentations
Tags: classicfridayqnaguestnostalgiaoldschooltoolbox
Hi again, readers of NSBlog! This is my first guest post of 2012, and also my first one writing the introduction myself. I plan to do posts every two weeks, alternating with Mike's to bring back the once-a-week format. This week, at my own suggestion, I'm doing a historical piece on the original programming environment for Macs: The Mac Toolbox. Time for a trip down memory lane!
Back In My Day, We Tracked Mouse Drags 512 Pixels Through One-Bit Color!
When the very first Macintosh computers were released, they didn't have much of anything we take for granted in modern times. For example:
- Virtual memory
- Color
- Networking
- Hard drives
- Large software libraries
What you had was an 8 Mhz Motorola 68000 CPU, 128KB of RAM (that's kilobytes, as in half the size of the raw rendered HTML for this article!) a 512x384 black & white screen, one 400K 3.5' floppy disk drive, a keyboard with no arrow keys connected with a RJ11 (telephone) plug, a one-button mouse plugged into a DB-9 connector, and if you had paid the extra money or had one left over from your Apple ][, a rather noisy dot-matrix printer with a proprietary DE-9 connector. The machine was not upgradable in any meaningful fashion.
While many of these limitations, ridiculous to the point of absurdity by modern standards, were eventually lifted, its legacy carried forward in one very visible way right up until the introduction of the Carbon API with the development Mac OS X: The Mac Toolbox, the original API for programming with the Macintosh computer.
What Is This Toolbox?
The Mac Toolbox was a comprehensive set of APIs for interacting with the Macintosh hardware and operating system to read input, process data, and output results (the fundamental nature of any program). It was originally written in a mix of MC68000 assembly language and Lisa Pascal. To those used to today's Objective-C programming in Cocoa, it can look like quite a lot of gibberish.
In particular, even in its most modern incarnation before Carbon, the Toolbox did not do things that many Cocoa programmers have never even considered handling manually. To create an application which has a single window, containing a simple text field with a scroll bar, and functional File and Edit commands is the work of almost zero code in modern Cocoa. The equivelant program using the Mac Toolbox is a bit more complicated.
Further Into The Universe Mac Os 11
We start with the resource file for the program. A resource file is a document containing an organized database of resources, various formatted bits of data in a known format that the OS can load on command. Nib files are partially an evolution of resource files, but resources contained considerably more than UI elements, and were considerably harder to manage than nibs. Far and away, the most popular program for editing resources was Apple's free ResEdit tool. To save time and space, I won't walk through the fairly simple process of setting up the resources the program will use; here's the completed resources file:
That's three MENU
resources for the Apple, File, and Edit menus, an MBAR
resource listing the three menus and their resource IDs, and a WIND
resource with the basic template for the window. There's also an ALRT
/DITL
pair for the about box.
Put The Tools In The Box And Rattle Them Around
Now for some code. Please be aware that to keep things from getitng wildly out of hand with complications, I've ignored error checking. This is a Bad Idea at the best of times; with the Toolbox it could often be all but suicidal. It's 'okay' for sample code, but you'd never try it in reality.
No, I mean it. In Cocoa you can often get away with ignoring errors, though you shouldn't. Back in Toolbox days, you couldn't get away with it. Period.
As you can see, I've left a lot of the 'meat', the routines that actually do anything, unimplemented. There's two reasons for that: First, it shows just how much raw boilerplate code one had to write in Toolbox-land; a lot of this was unnecessary even with Carbon. In Cocoa only a few lines of it translate to anything other than empty space.
The other reason is I just don't remember enough Toolbox anymore to show the implementation of those routines! There are at least three 'major' flavors of Classic code: The old System 6 routines, the newer System 7 routines, and the 'appearance-aware' routines that came with OS 8.5. Keeping track of which functions belong to which era is problematic enough without realizing that with the amount of manual lifting that has to be done, the 5-line Cocoa app becomes a 2000-line Classic program.
Conclusion
All in all, I feel I have to apologize for the terseness of this article. I'd hoped to explore the Toolbox in more depth, but I don't have the time to invest in re-learning a system that, in all likelihood, I will never use again. The Toolbox was a brilliant API for its time, and its worst fault was that it suffered from what all good things do: Age.
The Toolbox is gone, but not forgotten. Classic Mac OS, I salute you. Thanks for reading, everyone; I'll be making a followup post in the next few days looking at the code in detail, and I'll be back in two weeks with another Friday Q&A. Stay tuned for Mike's article next week!
So, not-Mike, thanks for a trip back through history. We'd love to know who you are.
One legacy doc worth skimming is TN1122 'Locking and Unlocking Handles' (https://developer.apple.com/legacy/mac/library/#technotes/tn/tn1122.html). It was years before Apple realized you could readily mess up the state of something that's either locked or unlocked without a count: your callstack nests, but your lock/unlocks don't, so you have to take care to save and restore that state manually. You'll likely run across code making this same mistake but with a different (more modern) resource at some point.
Just a short correction: IdleControls() is a fairly new call. There were no pre-made 'edit text' controls until the Appearance Manager, only dialog items (which weren't all controls). Giving idle time to pushbuttons and scroll bars wasn't necessary at that time.
Apart from that, it is a nice example of a System 7-style application.
Also, I would at least add a stub function for the update event between the BeginUpdate()/EndUpdate() calls, or a call to DrawControls or somesuch.
diskEvt
and inSysWindow
stuff right up until Carbon Events came along.Of course, even waaay back in the day, sensible programmers didn't use this kind of procedural boilerplate, but wrote an object wrapper around it. I started with Object Pascal, then THINK Class Library (TCL), the first version wasn't even C++ but some weird C thing with some proprietary object extensions - but there was MacApp, later CodeWarrior (C++) and even my own (dare I mention it!) MacZoop (C++).
These would be much more familiar to a Cocoa programmer today than raw toolbox stuff.
Add your thoughts, post a comment:
Spam and off-topic posts will be deleted without notice. Culprits may be publicly humiliated at my sole discretion.
JavaScript is required to submit comments due to anti-spam measures. Please enable JavaScript and reload the page.
The Entropia Universe client is designed to operate on Microsoft compatible PC:s running Microsoft Windows as an operating system. It is not designed to run natively under Mac OS X or Linux.
However, your Mac running OS X or PC running Linux that meet the hardware system requirements for Entropia Universe may also be able to run Microsoft Windows, the operating system needed to run the Entropia Universe client software.
There are primarily two ways to run Windows along with Mac OS X or a Linux distribution on your existing computer, either in a dual-boot configuration or in a software based virtual machine. Both ways may require additional computer skills than is needed to install the Entropia Universe client on a PC with Microsoft Windows preinstalled.
Before you continue reading PLEASE NOTE that Entropia Universe support cannot assist you in configuring your computer. Further, the information provided below should not be considered as recommendations and is provided as a guide only. MindArk and its Planet Partners will not be responsible for any damages incurred by you as result of using these solutions, and hereby expressly disclaims all liability for any direct or indirect damages arising from or related to your use of these solutions.
Please also consider that you may also have to buy licenses for Microsoft Windows that is applicable for use on virtualized environments, and virtual machine software.
Using a dual-boot solution:
To set up a dual-boot environment to run Microsoft Windows on your intel-based Mac running OS X, use Apple's BootCamp software. See:
http://www.apple.com/support/bootcamp/
for system requirements and instructions.
For Linux PC:s a dual-boot setup may differ depending both on your hardware and your Linux distribution. Please see your distributions help and support pages for instructions. A general overview can be found on the help pages for the popular Ubuntu distribution:
http://help.ubuntu.com/community/WindowsDualBoot
Using software based virtual machine:
A virtual machine is a software that emulates a computer’s hardware and e.g. makes it possible to run another operating system as a program. However, please note that the performance inside a virtual machine is almost always lower than when the operating system is run natively on the computer. For graphically intense software such as Entropia Universe the virtual machines ability to utilize the hardware’s graphic acceleration is a key feature. Recent virtual machine software can make more use of the computers graphic acceleration and provide a decent overall performance. Please note that this solution was not tested by us and the guidelines here are based on information provided by other users.
While it is hard to give more precise system requirement specs for virtual machines, we recommend other users’ experience shows that you should give the virtual machine 4Gb of RAM and 2 CPU cores if available. While performance may vary on many parameters users have reported that it is possible to run Entropia Universe with medium to high graphic settings inside the virtual machine 'Parallels Desktop 15' and Microsoft Windows 10 on an iMac 27' (2015 model) with intel Core i7 CPU.
For help or further advice on setup issues and other matters related to these solutions ask your fellow entropians on Entropia Forum or your planets forum.