Skip to main content
Home▸ Forums▸ 68kMLA▸ Where are all the programmers?
Thread

Where are all the programmers?

68kMLA Development 97 posts Oct 28, 2009 to Apr 21, 2013
Yeah, CodeWarrior is pretty opaque and certainly not freeware (though I know lots of people have asked). This is one reason a lot of people who want to port C code to the Mac are stymied, because you have to usually go abandonware or snipe on eBay. (My copies of CW Pro 2/5/6/7 actually happen to be legal, but, well, you know. :p )

However, there are lots of other free tools for people to write in. What about FutureBASIC? Chris just made it all freeware, FB2 apps run on 68K and PPC (and behave nicely in Classic), and FB5 for OS X is community driven. I've even written extensions/INITs in FB2, so it's not just a toy! { http://www.stazsoftware.com }

Where are all the programmers, dang it? :rambo:

MPW is free on the classic Mac.

MacOSX has X-Code for free, and gcc/g++ etc.

That only further makes my point, though. Why aren't people developing anymore for the classic Mac, even if just for the heck of it? (Let's ignore Xcode for purposes of this thread; it's not Classic-compatible except if you jump through a lot of Carbon hoops.)

Speaking of MPW, I tried very hard to like it, but I just don't. The sheets metaphor is weird, and doesn't at all act how you would expect a command line to (at least not an old Unix fart like me). The compiler is nice and adept, but CW just seems more "Mac like" if I were going to program in C/C++. I only have MPW around on my dev MDD for ToolServer; my dev PowerBook with CW Pro 5 just has CW and I never start MPW on it at all.

Still, I repeat people can get as much mileage, if not more, out of tools like FutureBASIC, which are also freely available.

Why aren't people developing anymore for the classic Mac, even if just for the heck of it?
I'm still developing Browser6..... :) Slowly admittedly.

*does a little digging and comes up with browser6.site88.net* A fine start. :)

Okay, that's two. Where's everyone else?

My Unix endeavors, m68k and otherwise, keep me more than busy enough. :)

I know absolutely nothing about coding (beyond Applescript or FileMaker or the like). But this is a really good question. Excuse the ignorance that follows:

Is Macintosh programming of the sort that the question is speaking about easily done, as in, is it designed in any way to be as user-friendly at the programming level as it is at the user level? Or would that be the "object oriented" approach to which the abortive systems of the 90s were heading, but never reached (OpenDoc et al.)?

Classic macintosh programming is both an art and a pig. The goal is to make things easier for the user, not the programmer.

The programmer has one hell of a job writing an app that both solves a problem, looks good, is consistent and has AppleScript support.

Languages were 68k assembler and pascal, then C and later C++. OpenDoc was aborted from a political level, not a technical level.

Tried some Pascal however the lack of inline completion and documentation (aside from a System 3.3 DA older than Color QuickDraw which keeps bombing and Apple's free online release of Inside Mac) wear me.

*raises hand*

Here's my situation. I started programming on the Mac as soon as I got my first PPC Performa in '96 (a 6116). I bought the Codewarrior "Discover" kit which was in my budget but it only included a 68k compiler. When I got comfortable with the Mac toolbox and wanted PPC speed I switched to MPW, which was also in my budget (free, lol). The learning curve was definitely higher but once you create one makefile you can use it as a template for future projects. PPCDebugger isn't as elegant as Codewarrior's debugger but it was free. As a hobbyist programmer I could never afford the $300 (or whatever it cost) for the Codewarrior PPC compiler so it was MPW that I've used since.

My main project was an action/adventure RPG. Certainly not a good choice for a first project so when I ran into a problem that had to be solved I would branch off with a "mini-project" just to learn what I needed to learn then go back to the main one. Anyway, this project became my "model train" project: never fully realized; adding a bit here, a bit there; sometimes scrapping it altogether and rewriting the code after realizing there's always "a better way".

Then came Mac OS X.

Hmm, do I Carbonize something that's not even finished or do I press on with what I have? Press on I did. More time goes by, I pick up a Cocoa book or two, try out some small projects then decide: I'm going to stop developing for classic Mac OS and jump on the Cocoa train. Wait. What's this? I have to go through what hoops to duplicate my hand-rolled offscreen blitters? OK, I think I got it now but it's going to take a lot of work to port my scripting engine (yes, I wrote a scripting engine, lol). Plus, I never could wrap my head around Cocoa's memory management. And it seems to change every time Apple releases a new version of Project Builder/Xcode. Not to mention they keep deprecating stuff! Not only that, something I built in Panther doesn't even run in Tiger! What is this crap? I'll just wait until the Cocoa API stabilizes somewhat. So now it's back to development on classic Mac OS. Finish it first, deal with the consequences later. If only two people get to enjoy it, cool. At least there will be something to enjoy.

What I'm doing now is going through my code and making it OS-neutral as much as possible. I'm rolling my own toolbox calls (like NumToString(), StringToNum(), PtInRect(), MoveDataBlock(), stuff like that) just so I can (someday) get it compiled in Cocoa.

So what did I accomplish in all those years of seemingly unproductive coding?

- custom 8, 16, and 32-bit blitters with optional effects (darken/lighten, blend, make grayscale, etc.)

- graphic scaling (just wanted to see if I could figure out how to do it without looking ;) )

- a smoothing algorithm for 2x scaled graphics

- a scripting language using tags and a custom assembly-like syntax (much easier than parsing x = 12 * y - 16)

- an animation engine for sprites and "cinema" animations

Anyway, sorry for the long post but I thought I'd share. (Plus, it's exciting to know there's still interest in Classic Mac OS programming!)

That's sort of where I'm at. It's more fun to program for Classic Macs now, and it's no longer a moving target.

OpenDoc was aborted from a political level, not a technical level.
Now that it's also no longer a "moving target", is it in any way shape or form a viable development platform for our toys? At least those that can run it?

I noticed a couple of interesting comments in the Slashdot thread about Classilla

One led me to discover OggFrog:

Ogg Frog 1.0 will play music files and Internet radio, decode music files to WAV / Version 1.1 will add support for encoding and tagging / 2.0 will support CD ripping, burning, backup, skins and integration with portable music players like the iPod, and natively support many different platforms and microprocessors.
That's right: Ogg Frog is a cross-platform application / Version 1.0 will support Windows, all versions of Mac OS X, with Universal Binaries for 10.4 users, Linux for PowerPC and x86, and BeOS for PowerPC and x86 as well as Haiku and BSD. 1.1 will also support the Classic Mac OS for PowerPC and 680x0 as well as the Solaris operating systems.

Supported Music Formats

Ogg Frog will play these formats right out of the box:

* Ogg Vorbis

* Native FLAC - the Free Lossless Audio Codec

* Ogg FLAC

* Speex

* WAV

* BIN

* AU

If you computer has QuickTime, Ogg Frog will be able to play:

* MP3

* AAC - also known as M4A

If your computer has Windows Media Player or the Windows Media Components for QuickTime, Ogg Frog will play:

* MP3

* WMA

You'll be able to play Internet radio streams for all the supported formats. If you compile the source code kit for the patented sound file formats, you'll be able to play AAC+ or HE-AAC streams.
I also noticed this tidbit:

I've recently hacked the 7300/7500/7600/8500/8600 Graphics Driver to support resolutions in the 1600x1200 range / I now have a 20" 1680x1050 LCD connected and working perfectly / I figured out where the timing parameters are stored in the driver, allowing other new resolutions as well (like 1440x900), and fine-tuning of the pixel rate. / Contact me if you'd like try the driver or have a different resolution.
The rest of the thread has a few interesting comments about people who are still working with and/or supporting the classic Mac OS, and why they do.

a viable development platform?
Most definitely, I have it running on Mac(68k +ppc), also win32, AIX and OS/2!

I am in the process of doing an open source version matching the original IDL and have a workable version that runs on Linux and modern Win32.

:O 8-o :approve:

Folks, I think I've discovered that our Porter is actually Jamie Madrox. There's no way anybody could have this many side projects going at one time. ;)

REALbasic v1.1.1 is still a good choice for RAD. Compiles nice, small 68K programs, and has some powerful features like easy-to-use TCP sockets.

In fact REALbasic supported 68K all the way until v3.5.2, although I would recommend using an earlier version.

I think you could make some really cool functional programs using REALbasic. Do we have an RSS reader for 68K?

Or, use Facebook API or whatever it is and replicate Facebook in a REALbasic application. Instead of writing a web browser that attempts to work with CSS and JS, completely bypass them!

I can't believe this discussion has gone this long without mention of the greatest programming environment of all on the 68K Mac--HyperCard!!!

HyperCard may not be an "industry standard", but it certainly is a blast to use and has been used to create some amazing programs (most notably Myst and the other early Cyan titles). Apple had an excellent series of HyperCard-based classroom management programs in the early 1990s (HyperCard for Education) and plenty of other software was on the market that took advantage of HyperCard (I remember hearing about a family tree maker and a bar code creator). There were also some excellent public domain HyperCard stacks out there, from references (I have one about the characteristics, prevention, and cure of Mac viruses) to games.

As a programming environment, HyperCard worked a bit like HTML but was even easier to use and understand. It was easy enough for a moderately experienced Mac user to understand yet powerful enough for an experienced user who wanted to create decent programs. Danny Goodman had an excellent reference on HyperCard that turned many into decent program designers, but trial and error could lead to an understanding on the part of anyone. I first tinkered in HyperCard when I was five years old and am willing to bet there are some other folks who started young out there. (Some children probably started with Roger Wagner's HyperStudio, which was an even friendlier version of HyperCard that supported color, something that was difficult with Apple's program).

I still use HyperCard whenever I need to string together something to use as a program, bringing my iBook G3 along to use the stacks with. I develop with HyperCard 2.4.1 (I have the CD-ROM version of 2.3 and used Apple's updater from their website to bring it up to date). The HyperCard player is still on Apple's website and SuperCard is still out there to do what HyperCard used to--on OS X, no less.

I have used Code Warrior to program in C++. I used it at a computer camp on a PPC machine running OS 9.2.2 and felt it was a decent C++ environment. I used a Microsoft complier (on Win2K) in another C++ class I took and wasn't as impressed with it as I was with Code Warrior. I can't say I've done any C++ programming in about six years, but if I ever found a copy of Code Warrior for sale I'd have to consider getting back into it.

Does anyone have any comparisons between Code Warrior and Think C? I had wanted Think C in the 1990s but it was out of the price range for a Christmas gift for a nine year old (which is when I first read a book about programming in C using the compiler). I wound up getting SimCity 2000 (the CD Collection) that year instead (which was one of my favorite Christmas gifts ever).

Does anyone have any comparisons between Code Warrior and Think C?
Apart from Code Warrior is PowerPC/68k and C/C++ where as Think C is 68k and C only?

Symantec C++ is both PPC and 68k.

REALbasic v1.1.1 is still a good choice for RAD. Compiles nice, small 68K programs, and has some powerful features like easy-to-use TCP sockets.
You don't say? Now, BASIC, I think I could have a crack at. Used to do some fairly complex projects in BBC Basic back in high school.

REALbasic v1.1.1 is still a good choice for RAD. Compiles nice, small 68K programs, and has some powerful features like easy-to-use TCP sockets.
I generally agree with that. Programs aren't that small, however. The runtime (which is embedded in a compiled program) was 1MB+ when I used RB 2.5. Fine for Mac IIs and Quadras, but not for a Plus or SE. I briefly investigated writing an extension that would enable contextual menus in System 7, but I think that my first compile was 1.5MB in size.

Porter is being a naughty, contrary boy :-) RB has a relatively modern style and encourages good practice.

REALbasic v1.1.1 has a very small runtime. I think it uses internal compression, because when you stuff a blank app, it barely gets smaller. This was back when they still cared about such things as file size.

http://mikerichardson.name/graveyard/Systaller.sit

This is an old app I made originally in RB v2.1.2 where it was 325K. Then I ported it down to RB v1.1.1 and it shrunk to 164K. The .sit file is 168K.

The programming style is also very modern compared to just about all of the other choices. There's free garbage collection on top of that, so you don't have to worry about memory. It's not suitable for System 6, but I think you could get by on System 7.0.1 with maybe a few extensions like Drag Manager.

Just to sweeten the pot even further - you can use XCMDs and XCFNs in your REALbasic programs! v1.1.1 does not let you Declare into the toolbox though.

Here is my attempt to write a BASIC environment in REALbasic. I think this one is compiled in REALbasic v2.1.2. http://mikerichardson.name/graveyard/SilverBASIC.sit

It includes a "Runtime68K" file. Basically the "compiler" just bundles your BASIC source code with the Runtime program to create a stand alone app. You could use this to make really simple apps if you wanted to.

There's the far more advanced SilverCreator v1.5. The editor is PPC only, but you can deploy the compiled games onto 68K. This is made with at least REALbasic v3.2 so I know you must have at least System 7.5 to run the apps. http://www.silvercreator.net/downloads/SilverCreator1.5PPC.sitx

I still distribute SilverCreator v1.5 because it's the last one that runs on Classic at all. The new v2.0 versions are OS X only.

REALbasic v1.1.1 is still a good choice for RAD. Compiles nice, small 68K programs, and has some powerful features like easy-to-use TCP sockets.
I generally agree with that. Programs aren't that small, however. The runtime (which is embedded in a compiled program) was 1MB+ when I used RB 2.5. Fine for Mac IIs and Quadras, but not for a Plus or SE. I briefly investigated writing an extension that would enable contextual menus in System 7, but I think that my first compile was 1.5MB in size.
So use FutureBASIC. It makes nice, tiny executables. Like I say, I even wrote an extension with FB2 once. And it's freeware!

Chris is a great guy.

Even the newest version compiles to 68k IIRC.

It's too bad FutureBASIC gave up on their own compiler though. That thing generated some stellar code.

They had it going until Carbon PEF PPC, but I'm guessing it would have required a huge re-write just to get to Carbon Mach-O PPC, and then another order of magnitude to get Carbon Mach-O Intel. I'm guessing Staz Software really isn't in business anymore.

While I do code/support for a living, I have never coded a program for either Classic or MacOS X.

FutureBasic appears to be pretty nice. I may put it on my Lombard and see what I can come up with. While it has enough disk space (maybe) for the OS X dev tools, it's only a G3/333....

So use FutureBASIC. It makes nice, tiny executables. Like I say, I even wrote an extension with FB2 once. And it's freeware!
FB2 looks quite capable, but I haven't managed to get it to run properly on miniVMac yet.

If we're talking freely available 68K development, I'd either go for ThinkPascal 4.5; which *is* quite capable of decent development; being a fairly well-known language; modest memory requirements and a simple object-oriented model. Or I'd go for the MacMeth Modula-2 compiler; which although it has a pretty poor user-interface and poor code-generation and is a fairly obtuse language, yet fits quite nicely in a 4Mb Plus-type environment.

For more advanced 68K development I have a genuine ThinkC 5.0.4 installation on my LC II - why oh why isn't it freely available?

-cheers from Snial @P

MacMETH has possibilities. It's hard to work with and requires a lot of effort to do simple things, but it does make nice tiny executables. I wrote an old 68K benchmark system in METH a number of years ago:

http://www.floodgap.com/retrotech/mac/ahl/

I hope I still have the source, it's been a good seven years since I touched it last.

Several people above mentioned FutureBASIC, and i'd like to try it out

(especially now that it's free!), but the only versions i can find to

download are 4.4.3 or later, which will *not* run under OS9 or earlier.

Does anyone know of a good link for downloading ver. 2, 3, or 4.0?

Ver. 4.0 definitely ran under OS9, but perhaps that ver. was not

yet free..? Several sites seem to indicate that 4.x all run under

Classic Mac OS, but they simply do not. Unfortunately the original

site (stazsoftware.com) has recently gone offline.

I want to give FutureBASIC a try because i am not thrilled with

REALbasic which, although very powerful, uses a strict OOP model

that is awkward to use for large projects. TNTbasic and Chipmunk

basic on the other hand, while fun, are not compilers. Thanks.

MacMETH just makes me want to scream in horror!!!

In college at OSU back in 1990 Modula-2 was the first language they taught us. We didn't get to C until 1994. My favorite still to this day was the extremely bizzare Pegasus Pascal for the IIGS. I remember using it for lots of my discrete math projects and confusing the professors. Pegasus was a "fuzzy" compiler so I would custom craft certain mistakes in the source that I knew how it would correct then compile.

But we did Modula-2 on the Mac Plus 4 mb machines and then on Sun 4 workstations.. ahh the good ole days. IIRC Tim Meekins was stuck in those same labs on campus when he was writing parts of GNO. And he suffered the same Mod2 stuff too!

I like MacMETH a lot, but I think it's just because I was such a Pascal bug back in the day. (Makes Mac development perfect, no? ;-) ) I also got a lot of wear out of Turbo Pascal, and it was an easy jump to Modula-2.

That isn't to say I didn't do my fair share of cussing at the compiler, of course.

Paul, I'm looking around for my FB2 and FB3. If I find them, I'll put them on the gopher server unless someone beats me to it.

I've ordered a handful of programming books from the US of A:

Tao of Objects: Beginners guide to OO Programming

A guide to Programming and Logic Design

Palm Programming for the Absolute Beginner

I picked them up for a handful of bucks each from a seller I was buying other stuff from, as I tend to learn better from books than screen-reading.

I also picked up the classic "Art Of Electronics" by Horowitz and Hill.

Classilla, no one has posted anything yet so i hope they don't beat you to it. Futurebasic 3 would be great as it compiles (i think) PPC code where as v2 only compiles for 68k (i think).

I found my .sea of FBII. I also have a big ol' CD of it, which is probably not of interest. I'm still trying to find where my FBIII CD went.

Don't lose that.... It's pretty much irreplaceable at this point.

I did get ahold of FB2 (stazsoftware site is back up) but from everything i can find, FB3 is the one.....

This might be legal gray area, but CodeWarrior Pro 7.1 is available at a certain popular abandonware website.

Huh. Veery interesting. I already have a version of CW7 but it doesn't do Pascal.

I' will check this one out and see if it does (i can't even stand the sight of C++).

However, i'd still love to try FB3.......

Okay, this is sad...replying to my own post. But i'm still "looking for" FB3, and also just tried to download FreePascal for OS9 from:

http://www.freepascal.org/down/powerpc/macos-ftp.freepascal.org.html

Such a nice site, but crawling with bad links. How pathetic. So.... in addition to FB3, does anyone have/know where to get the old Freepascal for OS9? (I *think* it would be v2.0.2 or earlier.) Thanks.

Does anyone have any comparisons between Code Warrior and Think C?
Apart from Code Warrior is PowerPC/68k and C/C++ where as Think C is 68k and C only?

Symantec C++ is both PPC and 68k.
Didn't Think C 5.0 add some kind of object support? It wasn't C++ but I thought there was something extra there beyond C.

Anyone have Think Reference? I have Think C 5.0 (never used it much except for class assignments) but never bought the Reference utility.

This might be legal gray area, but CodeWarrior Pro 7.1 is available at a certain popular abandonware website.
Does anyone have a Taxonomy of the various CodeWarrior versions and what they did/supported. I bought something like CodeWarrior Gold 10 or 11 way back when. Then the Pro versions started the numbering over again, I think. And there were student versions mixed in there somehow.

I don't remember the exact taxonomy, but the Gold CodeWarriors are pretty much hopeless for any code that's even remotely modern, so I use the Pro versions. I have CW 5, 6, 7 and 8. CW 6 is the last 68K version (I use CW 5 most of the time for 68K projects, however), and CW 7 is the first one to support Carbon. I don't remember when Mach-O capability was added (I think 8 ).

I don't know anything about the Windows or Java capabilities; I don't use those.

Hi I would also be interested in obtaining a copy of FutureBasic that can compile for 68k. (does anybody posses a tutorial?) The latest available only compiles for pcc and up. Classichasclass, could you upload your version? (Btw Tenfourfox runs great on my cube->Many thanks).

Does anybody has a version of hypercard that will fit on a floppy (or a few). I don't have enough appletalk parts to make a network,so every thing needs to over floppy to my Performa 460 and IIci

FB2 is actually better for 68K than FB3 IMHO -- I'll put that on the gopher server. (TenFourFox can use gopher; install OverbiteFF from https://addons.mozilla.org/addon/7685/ or use Camino, Classilla, Netscape or Firefox 3.6.)

gopher://gopher.floodgap.com/1/archive/by-request/classic-mac/

I don't remember the exact taxonomy, but the Gold CodeWarriors are pretty much hopeless for any code that's even remotely modern, so I use the Pro versions. I have CW 5, 6, 7 and 8. CW 6 is the last 68K version (I use CW 5 most of the time for 68K projects, however), and CW 7 is the first one to support Carbon. I don't remember when Mach-O capability was added (I think 8 ).
I don't know anything about the Windows or Java capabilities; I don't use those.
Thank you, Cameron. It may be nine months later but it's still timely. I'll probably get around to writing code some time coincident with the heat death of the universe. Plenty of project ideas. So little time and skill.

I think I have a copy of Pro 6 around here somewhere. I mentioned to a professor from whom I was taking C++ that I had a Mac at home and he burned me off a set of copies. We were using it on the PCs in the labs at school. Nice crazy guy, but I did not like C++. Too many confusing ways to do things. Very powerful I suppose, but also so intricate that it seemed to make coding impossible to follow.

Does Freescale still sell CodeWarrior for the Mac?

Sadly, Freescale no longer sells CodeWarrior for Mac. The last version being CodeWarrior Pro 10 for Mac.

I didn't realize it until now. But http://www.stazsoftware.com/ has a link to FBII right on the front page: http://www.stazsoftware.com/downloads/FutureBASICII.sea

Pretty convenient. :D

I recently discovered MacTech Magazine. They have a complete archive of their articles. All the way back to 1984! I been browsing some of them, around the 93/94 era.

Found one that was pretty interesting. How to make control strip modules.

http://www.mactech.com/articles/mactech/Vol.10/10.12/ControlStrip/index.html

Source code

Might have some fun trying to come up with something.

http://www.mactech.com/articles/mt_indices/Vol_10_Issues.html

Volume 10 (1994) has a whole bunch of neat stuff explaining the PowerPC architecture. Having a blast looking at these, it's like re-living the past that I was too young to understand at the time. Being only three years old at the time. :p

I also found a interesting two part article called "Pascal Programmer’s Guide

to Understanding ‘C’."

http://www.mactech.com/articles/mactech/Vol.09/09.12/PascalUnderstandsC/index.html

http://www.mactech.com/articles/mactech/Vol.10/10.01/PascalCII/index.html

Thanks Classichasclass,

Is it perhaps possible to .sit or.hqx this FuturbasicII.sea. My computer doesn't recognise it after I have downloaded it. (Nor on 8.5.1 or on 7.5.5).

I also downloaded the other two programs you offered on your gopher and could install them without trouble. BTW what does the drag and drop extension do?

Dropping it on Stuffit doesn't work?

The Drag-Drop extension is mostly for 7.1.

No sorry , It starts to rumble but then stuffit just quits without having done anything. Very annoying. It is probably stuffed with a much newer version of stuffit.

Ookaaay, Stuffit 5.5 and the futurebasic.sea run my Performa 460 in the ground. Have been able to expand it on my Powermac 6500, and restuffed it with a much older version of stuffit time to set up and old school local talk network.

Anyone have any sample projects in futurebasic? i have NEVER used it, so i dont know where to even begin.

There's a dmg image of example sources on stazsoftware.com's shareware page. (Weird place for it huh?)

Been looking around at this mirror of the old ftp.apple.com and found some interesting goodies in Tool_Chest:

http://mirrors.vanadac.com/ftp.apple.com/developer/Tool_Chest/Devices_-_Hardware/

There's sample codes for CD detection, SCSI, ADB, Nubus, etc.

(One of us really need to mirror this copy of ftp.apple.com before it disappears too!)

Hopefully by the end of this summer I'll be on that list of Classic Mac Programmers. :D

(One of us really need to mirror this copy of ftp.apple.com before it disappears too!)
I think John Klos has a mirror of it on his ftp site.

Hi,

I have been developing web (js/RoR) and iOS applications for the last few years and now I start to get interested in system 7 C++ development.

In fact, I installed system 7 on my well upgraded 9500 and I think I will never go back to 9 again. System 7 on that machine is so fast, such a great user experience! Sometimes I even feel that my intel iMac is quite slow after using the 9500.

I use 7.6.1 and I feel that some modern applications/utilities are missing and could be done without much pain (maybe I'm wrong...). So, I would like to start developing some of them on my free time and make them open source of course.

I am thinking about connected applications such as a twitter client, gmail client, or a cool control panel like a dock to replace the default mac launcher. In fact, I think that plenty of small iOS/mobile applications could be made for system 7.

My ultimate dream would be to have a lightweight webkit component working under system 7 to build apps on top of it... this is just a dream at the moment :)

Thanks for digging this thread back up out of the muck, I failed to follow it after the first few replies and now I've found a couple of really great bits of info.

I bought FutureBasic in first release, but never really got into it . . .

. . . programming in basic is something I used to be pretty good at when absolutely necessary, but coding is just not my thing . . .

. . . hate it actually, I'm glad you folks enjoy it. [:)] ]'>

Question:

If I know the timing parameters for a few supported resolutions, how hard should it be to locate them in the Drivers for, and the DeclROMs of, some of the 3MB Video Cards in my available collection?

The Siren song of 1600x1200, 720p and 1080p is steering me ever closer to the rocks of absolute necessity. :-/

feeef, I think small apps like that would be absolutely possible for System 7+. The trick is the network connectivity, but Open Transport acts enough like MacTCP that a lot of things will "just work."

A webkit framework for building webapps upon would be extremely helpful to anyone coming to the platform with network apps in mind.

Barely related - I talked to Tobias and he has released a script to replace the system wide webkit on 10.4 with the updated version used in tenfourkit. With it you can use his updated webkit in other browsers that rely on the system framework such as Sunrise, Nagara and others.

You've also got 16 days left if your interested in winning the RetroChallenge, lol

A webkit framework for building webapps upon would be extremely helpful to anyone coming to the platform with network apps in mind.
XULRunner says hi.

Yes, either one would work. That said, I've no idea how close either are to a [up-to-date?] usable framework within the Mac OS. (My working knowledge of either ends at "You build webapps on top of them.")

Hm, I'd never seen this thread before. Development on classic systems (Amiga and DOS, primarily, but Mac as well) is something I've wanted to devote more time to for a while now, I've just been caught up in other stuff...

Is there a good getting-started guide for C/C++ programming on Classic MacOS? I know I have some edition of Inside Macintosh saved around here somewhere, but I've yet to read very far into it...

Thanks a lot ClassicHasClass! XULRunner looks cool! I may have a closer look at it later. I have to get more familiar with development tools and system 7 APIs first.

@commodorejohn, personally, I use CodeWarrior pro v1 and I think it is really complete. With PowerPlant, it looks much the same as the first versions of XCode & IB.

If you have Inside Macintosh, have a look in the Macintosh ToolBox documentation. It describes the API that handles the Macintosh GUI. I find it quite tricky to find the class and method names in this kind of docs, but I think I will get used to it!

Unfortunately, it's a bit short for me to do the RetroChallenge but maybe on a future project! I have to learn Open Transport! :)

Well, on System 7, XULRunner has about as much chance of getting off the ground as WebKit (little to none). I think Theos was talking more about options for earlier versions of OS X -- you can use TenFourFox's patches to build a 10.4-compatible XULRunner, for example. Classilla works on OS 8.6-9 because it's a hacked Mozilla 1.3.1 which already worked on OS 9 to begin with. You might be writing your own app-specific renderer for this use case.

@commodorejohn, there are some very good CodeWarrior/PowerPlant books for the classic Mac OS. Dan von Sydow wrote one, but the title escapes me.

Ok! I see!

So the best option for those missing web apps under 7 is to take them out of the browser.

I have just started a Twitter app! :)

On the CodeWarrior reference CD, I found a PowerPlant example showing how to do HTTP requests. It looks like it's first checking if the system can handle Open Transport or MacTCP and use one of them. The lib is already written so I don't really need to worry about it.

It works well and I used it as a base for my Twitter app.

Thanks a lot for the link Theos911! It's exactly what I needed!

Out of browser is probably good, especially if you are targeting 7 where there really isn't an up to date browser to build on anyway.

Hmmm... twitter you say? This project hasn't been updated sine 2009 so twitter's API has probably broken it several times by now, but it is a worthwhile place to look for the tweet sending part.

http://www.retards.org/projects/grackle68k/

http://www.retards.org/projects/grackle68k/files/

You could probably drop the dev a line and get a hold of some source code.

@commodorejohn, there are some very good CodeWarrior/PowerPlant books for the classic Mac OS. Dan von Sydow wrote one, but the title escapes me.
Are you sure? A search for the name results in a few VHS tapes on Amazon :p

I've been looking for good CodeWarrior books, but I don't know which one to buy. Do you remember anything else?

Ah, yeah. That's the one I have in my wish list! Glad to know it seems to be all right ;)

Perhaps the von came from the actor Max von Sydow?
No, I was thinking of the seminal tome, "King Osiric Teaches Mac Programming To Barbarians." :I

feeef, what version of CW is this?

Just found this -- it's incredible and I *believe* he's a member here.

https://sites.google.com/site/chuzzum/macintosh-c-programming-guide

My problem wasn't that I didnt want to program for Classic MacOS (I really really really do) but there weren't enough resources/books to find ... until now.

So yeah i'll at the very least be making tic-tac-toe for MacOS. (LOL)

ClassicHasClass, I use CodeWarrior Pro 1. It has the IDE v 2.0. Is it good enough? It is the only one version I have here.

Grackle68k is just a tweet sender. I plan to do a read/write tweets apps. I used to work in an agency, doing this kind of connected apps for mobile devices so I have (more or less) the concept in mind.

The first thing I will do actually, is a JSON parser so it can be used in many other apps. I will try to make it as light and fast as possible. If it's too heavy on some requests for our older machines, I will try to think of something else like a web proxy that generates lighter data. I will see how it goes!

No, it should be fine for the purposes you need. Note that Twitter is moving to a full OAuth system for API 1.1, so you will need to be able to handle that as well. For TTYtter, for example, I had to implement HMAC-SHA-1 signatures, and your network library will require SSL.

I am thinking about connected applications such as a twitter client, gmail client, or a cool control panel like a dock to replace the default mac launcher. In fact, I think that plenty of small iOS/mobile applications could be made for system 7.
Facebook chat?

Facebook Chat is a good idea too!

You are right ClassicHasClass! I didn't think about OAuth. I don't know about implementing SSL apps under 7 but I will have a look at it.

You know, before doing any app, I will actually build a few libs to make things easier... and to give other people some tools to develop modern connected apps for System 7! :) I will do what I can, I am not an expert, but I think it's a good goal!

The JSON lib is a start and it's going forward. As soon as I have a first working version, I will add it on github for sharing (I have an account there). It will be a C++ CW pro 1 project but the files should only rely on the default C++ API and be easy to build on any platform.

I am thinking about connected applications such as a twitter client, gmail client, or a cool control panel like a dock to replace the default mac launcher. In fact, I think that plenty of small iOS/mobile applications could be made for system 7.
Facebook chat?
We need a Sys7 Jabber client with SSL support then.

I also think we need easy-to-use MODERN (no basic, basic is always ew - along the lines of Python, Java, C#, Perl, Ruby, and Haskell for the functional hipsters, some we have ancient versions of - Java/C# before foreach and generics is no fun at all) language that works and works well with classic Mac OS. Once we get that, it will lower the gap.

The Amiga folks can get anything done with their Amigas and their crazy projects, but that's just crazy Germans in denial making new stuff for their little Miggies.

The Amiga folks can get anything done with their Amigas and their crazy projects, but that's just crazy Germans in denial making new stuff for their little Miggies.
Oh, laugh if you want, but our time will come, my friend. Our time will come...

Perl 5 works just fine with System 7 and can make very credible GUI apps. The main problem is distribution of the runtime.

That said, FutureBASIC and CodeWarrior are still my preferred Classic dev environments.

Oh, laugh if you want, but our time will come, my friend. Our time will come...
6502 NOW!

I wouldn't mind writing some toy programs for Classic Mac OS, last time I found all the parts of MPW, I could not figure out how to compile anything :( .

I don't know about implementing SSL apps under 7 but I will have a look at it.
OpenSSL still has classic MacOS code in its tree. The original author did his work with CW Pro 5, so it may take a bit of work to get it to work with CW Pro 1. I was able to make 0.9.6m build and work with CW Pro 7.1 but it took updating the project file to add and remove files that had changed since the project file was created.

I wanted to build newer versions but ran out of time. IIRC whatever the latest 0.9.5 revision is compiled fairly easily. One note, though: I had tons of problems at first that turned out to be because StuffIt was messing up the CR/LF conversions when extracting the tar file. Using SUNtar it compiled almost out of the box.

I've been working a bit more on the SSL issue. I'm working on a port of PolarSSL in CW Pro 1. I have a few more interfaces to adapt to native MacOS calls, including the rather important sockets code. There's also a bit of PPC assembly code that I need to adapt to Metrowerks' syntax. But what's there now compiles and runs tests successfully.

I was able to build the library pretty much as-is using CW Pro 7 with GUSI, the fantastic UNIX compatibility library. But that apparently only works with CW Pro 5, 6 and 7. I only have 7 and 1 so if I want to build anything for 68k I have to stick with 1. I should probably note, though, that the performance is already mediocre on a G4, so I can't imagine how bad it'll be on a 68k.

I'll be posting all of this on Github or something when I'm a bit further along.

That's some really good work you did there leitec! Thanks for the research!

I am searching CW Pro 5 but can't find it anywhere so I think I will keep working with CW Pro 1. I want to do a dynamic array underCw Pro 1 but always have a syntax error when using "vector arr;" if you are familiar with the software, do you know how to do it leitec?

Also, I have been working for a company that made connected apps for J2ME mobile phones. A good workaround we used to handle really small resources is to make a web proxy that does the work for you. I remember we had security issues with sending passwords over the normal HTTP connexion but don't remember exactly how we worked that out. I will investigate.

You're welcome!

I am not very familiar with C++, but I did try to figure that out today. The C/C++ compiler manual and MSL reference both indicate that that is possible, but testing showed otherwise. I finally found the answer in the release notes. If you look at vector.h, the part that defines a default allocator is not active (#ifdef MSIPL_DEF_TEMPARG), so you have to define it manually. One of the examples in the release notes has it as:

vector > v;

The tricky part is that the space between the two >'s is significant, which I suppose has to do with the fact that >> is an operator in C++. If you look at the inactive default allocator thing in vector.h, it's there too:

template >

I tried with

vector > arr;

and it worked.

leitec, you're a wizard! it works!! Thank you so much! I will be able to complete my JSON lib! :)

Thanks for the link Bunsen! it looks really interesting indeed!

PolarSSL ported to CW Pro 1 is up here: https://github.com/leitec/polarssl. It's not well-tested but I figure others might be interested.

Disclaimer: basic SSL client connections work fine as far as I can tell but I don't know if it's actually secure. PolarSSL supports platforms that don't have an OS PRNG (and that code is enabled), so I'm guessing it's OK. Still, I provide no guarantees at all. I'm especially suspicious about 68k, since PowerPC at least is using the processor tick register that PolarSSL's HAVEGE PRNG uses. 68k is using OS ticks (Microseconds()) instead.

Well done, leitec. That's a good basic tool for further developments.

Loband is now here
Thanks, feef. I'll fix the link in the other thread.

For what it's worth re SSL, I believe OpenSSL 1.0.0 will compile on Mac OS 9 at least, possibly for older Mac OS as well - I'd have to ask the guy who pulled that off for more specifics.

While OpenSSL isn't necessarily a light library, it is arguably the best-audited of the SSL implementations and thus is probably the best choice for security-critical application.

;)

Yup, I got an older version (0.9.6) to compile OK with CW Pro 7.1 and GUSI (POSIX compatibility library). Although there is a port that is totally "native" (i.e. not using GUSI) it is completely unmaintained. I managed to get a newer version built later, but I had to manually sync the file list from the Makefile to the CW project file. So it was a bit of a pain, and I wanted something I could build with an older version of CW.

PolarSSL is not as widespread, but it is actively maintained and used widely enough in embedded systems that I feel comfortable using it. Plus, it being small and more manageable/readable is a huge plus. Once I rewrote the PPC asm stuff to work with CW the performance became quite good, too. Surprisingly there is also 68020 assembly code upstream, but I haven't ventured into porting it just yet.

The biggest issue for my port is that of entropy and RNG, but that is also a problem for OpenSSL. PolarSSL might actually have an advantage here because of its use on limited embedded systems without OS or hardware entropy sources. I am not at all an expert in this field, so I have to trust the result that I got from the entropy analyzer "ent," which showed good-enough results on both PPC and 68k.

On a more general note, I've also been writing an OAuth library in C that works with PolarSSL on CodeWarrior. It can successfully authenticate against Twitter over SSL on my Mac. I am cleaning it up by decoupling the HTTP/network code from the OAuth signature stuff, so when that's done I'll put it up on Github.

Hi leitec,

Well done! I see you are going forward. :)

I haven't been able to find some time to code lately. My job and my family are just taking all my time. I hope things are going to evolve soon and I will be back helping you!

Sorry about that.

No worries feeef -- I'm working at a snail's pace on this stuff.