Sunday, July 19, 2009

So Close...

I have succesfully posted a tweet from a Mac SE running system 6.0.5 using a dialog to input the tweet, and Base64 encoding for the authentication. Woo.

How you ask?

I've spent an ungodly amount of time over the last 4 days working on a System 6, 68000 compatible twitter client. The application, called "Grackle68k", isn't ready, but I feel the need to post an update for you all. It's been a long weekend with many ups and downs. There was some serious head-on-desk moments. Writing software for modern systems is so much easier.

First of all, I may have written the most retarded Base64 encoding function ever created. One way to authenticate with Twitter is through the http header. Base64 encoding is used so that the username and password aren't plaintext when sent. Some day I'd like to document my hacky solution (it involves bit manipulation and storing binary numbers as a giant string of ones and zeros. Go on, shake your head in disbelief). For now, it works, and I'm more than fine with that.

Ah, before I forget... for the future me that forgets... I'm not positive, but it seems like 68000 macs need code segments that are under 32k. Otherwise they freak out. Try to keep that in mind.

I've been writing every line of code on an LC475 with 36 Megabytes of memory, running system 7.5.3, using an original Apple ADB keyboard. It's been a bit of an endurance run. I don't love the feel of the keyboard; it's very slow to type on. I miss having a scroll-wheel on my mouse. I miss editing with vim. I miss a high resolution screen. I miss alt-tab.

So that's about it. I set up a twitter account to test the client. You can see it here. It is a small record of my trials and tribulations, although I did purge many of them at one point. The official twitter link for the sofware is here.

I expect to release a beta version on Tuesday. I'll need help verifying that the authentication works.

1 comment:

Yuhong Bao said...

The problem is that 68k processors before the 68020 do not have a 32-bit relative jump instruction. This could also be workaround by using jump islands.