Using my iPhone to write this message. I’m really enjoying it so far.
More on this later, once I have things sorted out.
Using my iPhone to write this message. I’m really enjoying it so far.
More on this later, once I have things sorted out.
The whole iPhone situation has been sorted out. Not sure why the escalation was required, but regardless, it’s in the mail, and I have a tracking number.
Now, my biggest woe is waiting for it to arrive…
I am excited!
Well, I decided to take the plunge and get an iPhone, but actually getting one is turning out to be more of a hassle than anticipated.
My first thought is to check and see if the Virgin dealer (my preferred carrier) in town has any available. Unsurprisingly, this turns out to be a bum lead; our town is pretty small, and the demand for iPhones outside of the holidays is fairly low. I give the guy my name, regardless, in case he is able to get stock from another store, but I’m assured it’ll take a couple weeks minimum.
Well, Virgin sells phones online, right? I check out the web site, choose the phone + plan, try to pay for it, and it just doesn’t want to work. The info is all correct, the form just won’t accept it. I call them up to see if they can figure it out, but I get a front line CSR who needs to escalate the issue to their tech department, which is closed.
Considering I want to give them $3000 over the next 3 years (sure adds up quickly, doesn’t it?), you’d think they’d have their ducks better aligned. I’m not mad, I’m just annoyed that I’m having to put this much time and effort for the privilege of purchasing a $800 phone.
After modifying my code to be C89-compatible, and fiddling a bit with the prefix file, I’m pleased to say that Snow works on 68k machines. How useful it is, considering there’s no way to specify input files presently, is another matter, but it runs, and can parse code just fine.
I’m surprised that over the past 20 years, the C language itself has changed very little. While I was making Snow C89-compatible, the biggest problem I had to deal with was the lack of inline variable declaration support, which in my opinion, is more a stylistic change than anything.
I still have some cleanup to do from the conversion to C89. Once that’s done, I’ll be making the compiler code more flexible so front-ends (like one written using the Mac OS toolbox) can make better use of it.
For a bit of fun and nostalgia, I have been playing with the very first C compiler I ever got my hands on once again.
Back in 1998, I was in my final year of middle school, taking a course on HyperCard. Of course, by that time, I had mastered it, written a couple programs in it, and was looking for something new to cut my teeth on. My teacher insisted I complete the course outcomes, so I hammered out the required stacks in about a week. The remainder of my time was spent figuring out the very basics of C on my own: my teacher dropped a tome of ANSI C in front of me, along with an envelope of several floppy disks with Think C on it, and told me to make something useful.
I ended up making a Towers of Hanoi game. I hadn’t figured out arrays and pointers at that point (keep in mind I was coming from a HyperCard background), so there were a lot of hard-coded variables and kludges. Reminiscing about it makes me cringe somewhat, but I was learning, and that’s what’s important.
However, I digress.
The reason I picked up Think C again was the fact that I was curious to see if Snow would compile under it — which it did not, unsurprisingly. The code for Snow is based on the C99 standard, but Think C 5.0 is based on the C89 standard (or something similar enough to it). As such, I am looking at providing some shim code to abstract away the major differences between the two standards, and if all goes well, I should have a Mac 68k/PPC build once the differences are sorted out and compensated for.
I don’t plan on spending a great deal of time on this, but, if nothing else, I would like to give a final nod to the platforms I grew up on. And really, it would be totally awesome if someone managed to get it working, even if that someone isn’t me. I would love to see what creative folks with the right tools can do with old hardware.