Thread
Developing Software
I'm looking for some advice. I'd like to develop two internet apps for OS7. Are there any freely available development tools for 68k macs, OS6 or OS7 with a decent collection of example code? I remember using Think Pascal, but it's not something I have anymore.
So if anyone can recommend a development system that is available (even low cost would be ok). One that makes socket programming easier and not harder, and/or comes with some example code for internet apps; that would be great.
Thanks,
Nathanial Hendler
Tucson, AZ USA
http://retards.org/
So if anyone can recommend a development system that is available (even low cost would be ok). One that makes socket programming easier and not harder, and/or comes with some example code for internet apps; that would be great.
Thanks,
Nathanial Hendler
Tucson, AZ USA
http://retards.org/
You will probably want to grab MPW from Apple, as well as any documentation for the Macintosh toolbox that you can find.
If you have a little money to burn, a product like CodeWarrior Gold 9 will include the compilers, debuggers, and some getting-started books all on CD. The IDE is also easier to use than MPW, albeit less powerful IMHO. I'm guessing that a second-hand copy is rather cheap these days.
If you have a little money to burn, a product like CodeWarrior Gold 9 will include the compilers, debuggers, and some getting-started books all on CD. The IDE is also easier to use than MPW, albeit less powerful IMHO. I'm guessing that a second-hand copy is rather cheap these days.
I looked a little at MPW, but it seems very modern. I need to develop both for, and on a Mac SE. Would it be a misconception to think that it's not even worth trying to get MPW running on an SE? I've found that Think Pascal is freely available. I remember using that on a plus at one point. I just don't know if it has any internet/socket programming abilities.
Are there any mailing lists or forums for 68k programming? I haven't found any.
Thanks for your reply.
Nathan
Are there any mailing lists or forums for 68k programming? I haven't found any.
Thanks for your reply.
Nathan
The version of MPW on Apple's website requires System 7.5.5, which would chew up the RAM on an SE. Though it does run on a 68k. There are older versions that will run in System 6, but I haven't seen those versions in circulation. (Though I do have a copy for System 7.)
Technically, Think Pascal was never freely available. Somebody just discovered that the updater on Symantec's FTP site was essentially the whole deal. Unfortunately it was also pulled a while back.
Technically, Think Pascal was never freely available. Somebody just discovered that the updater on Symantec's FTP site was essentially the whole deal. Unfortunately it was also pulled a while back.
The old Info-Mac archive used to have a section with lots of frameworks and programming samples. Think C should run fine on an SE, and programming examples are definitely available.
Just wondering, is it worth using a high level language on a 68000 based machine with 4 megs or less RAM? Wouldn't an assembler be better for speed?
It depends upon the coder. A proficient programmer who has extensive knowledge of both algorithms and the system architecture should be able to beat a compiler in terms of optimized code any day. A middle of the road programmer with a middle of the road knowledge of algorithms should just stick to compilers since a compiler (even an old one with poor optimization) should be able to outdo that programmer. And a poor programmer with no knowledge of algorithms will end up with faster interpreted code if the interpreter provides a more extensive library. Choose where you fit in.
If you value your time, higher level languages are most definitely worth it. (4MB RAM is a huge amount of RAM for most System 6 programming.) And to the OP, find a copy of THINK C 5 or THINK Pascal 4 to use. There is heaps of sample code on the net - for internet/TCP/Sockets type stuff look at things like Peter Lewis's sample code (Stairways Software) and the NewsWatcher source. Old USENET articles are worth checking (google groups) and also the MacTech archives. Another thing is any info-mac archives have various bits of source code you can check - especially the old comp.sys.mac.programmer archives.
Ken
Ken
And if you're looking for something to write, consider a system-6 text-only browser, like wannabe. Heck, even if it were a port of (mac)lynx, it would represent a revolution for system 6!
You're making an assumption that every compact out there has been fully upgraded. Coders have to write for the lowest common denominator. I have three Pluses and one SE and none of them has more than the standard 1 meg. So is 1 meg sufficient RAM to hold the OS, plus the high level language with any extensions that may be needed plus the code plus any data that may be required by the code??If you value your time, higher level languages are most definitely worth it. (4MB RAM is a huge amount of RAM for most System 6 programming.) And to the OP, find a copy of THINK C 5 or THINK Pascal 4 to use. There is heaps of sample code on the net - for internet/TCP/Sockets type stuff look at things like Peter Lewis's sample code (Stairways Software) and the NewsWatcher source. Old USENET articles are worth checking (google groups) and also the MacTech archives. Another thing is any info-mac archives have various bits of source code you can check - especially the old comp.sys.mac.programmer archives.
Ken
1 MB is a fair bit of RAM to deal with, and compilers tend to be fairly efficient (particularly if your code lacks structure, as many assembly programs would).
I tend to disagree with the "if you value your time" bit though. Programmers tend to create things for other people, not just themselves. So any programmer who values their time above mine leaves me in dismay. After all, 10 seconds here, 10 seconds there, and soon enough it amounts to real man seconds of lost time. Well, maybe Job's mantra for the original Macintosh doesn't work when there are only a few hundred classic Mac users left.
I tend to disagree with the "if you value your time" bit though. Programmers tend to create things for other people, not just themselves. So any programmer who values their time above mine leaves me in dismay. After all, 10 seconds here, 10 seconds there, and soon enough it amounts to real man seconds of lost time. Well, maybe Job's mantra for the original Macintosh doesn't work when there are only a few hundred classic Mac users left.
No assumptions - just knowledge and experience. I've written heaps of code for system 6 - in C, Pascal and assembly, and none of this code was ever seriously constrained by RAM. Now speed on the other hand...You're making an assumption that every compact out there has been fully upgraded. Coders have to write for the lowest common denominator. I have three Pluses and one SE and none of them has more than the standard 1 meg. So is 1 meg sufficient RAM to hold the OS, plus the high level language with any extensions that may be needed plus the code plus any data that may be required by the code??If you value your time, higher level languages are most definitely worth it. (4MB RAM is a huge amount of RAM for most System 6 programming.) And to the OP, find a copy of THINK C 5 or THINK Pascal 4 to use. There is heaps of sample code on the net - for internet/TCP/Sockets type stuff look at things like Peter Lewis's sample code (Stairways Software) and the NewsWatcher source. Old USENET articles are worth checking (google groups) and also the MacTech archives. Another thing is any info-mac archives have various bits of source code you can check - especially the old comp.sys.mac.programmer archives.
Ken
Doesn't take away the simple fact that it takes far longer to write something in assembly than C or Pascal, so you pretty much only use assembly where and when you have good reason.I tend to disagree with the "if you value your time" bit though.
Could I ask why System 7? Goodness knows we could use some more, fun assembly-written apps for System 6! Even on a fast 68k Mac, System 6 makes it all the faster, and hence, more fun! And in many cases, the code you write for a System 6 app can also work without problem under System 7 (and faster too).
I did some searching a while ago and found that the maclynx code had been released, but it does not seem to be available anywhere now, and the only archive.org links I could find for it were broken.
Now maclynx only works for System 7 and higher, but porting it down to System 6 would certainly be easier than starting from scratch.
Ken
*Kallikak* waves to JDW from Tokyo
Now maclynx only works for System 7 and higher, but porting it down to System 6 would certainly be easier than starting from scratch.Ken
*Kallikak* waves to JDW from Tokyo
It will take longer because the code that you write is less dense, but I don't see why it has to take that much longer. After all, anything that you can do in a high level language can be mapped into assembler. In a lot of cases the mapping can be fairly direct. You even have things like function calls, can create object oriented code, and so forth, without too much effort.Doesn't take away the simple fact that it takes far longer to write something in assembly than C or Pascal, so you pretty much only use assembly where and when you have good reason.
Most people like to dis assembler because it is hard and because it is time consuming. Well, it is neither. It is just a very unfamiliar language that takes time to learn, and you have to put yourself in a different mindset (you have to think much more discretely).
Developing for C or Pascal using any of the THINK environments would be easy on an SE with 4 megs of RAM. No need to worry about doing assembly unless it's something that interests you, and if you do end up programming something that requires the extra speed, the inline assembler in THINK works fine. Lots of examples and tutorials out there on the web too.
MPW is very powerful, but I haven't been able to find any earlier versions that don't require 7.5.x, which as someone has mentioned is a hefty OS for an SE.
MPW is very powerful, but I haven't been able to find any earlier versions that don't require 7.5.x, which as someone has mentioned is a hefty OS for an SE.
In my opinion, the benefits of properly written assembly code on an old Mac is worth making yourself interested! Seriously, it is THAT much faster! And on a slow Mac, speed is of critical importance. Plus, you can lower the RAM requirements too. Why do you think System 6 is so much faster than 7? No, it's not simply "the bloat of 7" that is the cause. System 6 is mostly assembly code, well written and compacted!No need to worry about doing assembly unless it's something that interests you...
Let the assembly code roll off those programming fingers!
In Mac development, a large part of the code is related to handling the interface elements, and there is not much bloat or speed penalty for coding that up in a high level language. If you really need speed, the THINK C inline assembler is a very good choice - since you can refer directly to your variables etc, and it makes managing the stack much easier etc. Most of my coding was related to mathematical problems, so speed was certainly an issue, but a good knowledge of the compiler being used and the features of the language (C or Fortran mostly for my examples) meant tight loops could be very efficiently compiled and optimised. That being said, coding it in assembly would probably have roughly doubled the speed, but it was generally floating point code, and I always found floating point assembly hard to work with - largely because of the representation of the values and the associated difficulty debugging.
On the other hand, on my Apple 1 clone I never do anything in BASIC, but write everything in 6502 assembly. But I'm biased, since I wrote the assembler. [
] ]'>
On the other hand, on my Apple 1 clone I never do anything in BASIC, but write everything in 6502 assembly. But I'm biased, since I wrote the assembler. [
] ]'>
I want to quickly thank everyone for their input. I'm now doing further research based on leads from this thread.
I'll have more questions shortly I'm sure.
Nathan
I'll have more questions shortly I'm sure.
Nathan
Kallikak -- the link to MacLynx source from archive.org exists, but the download always hangs at about 50%. Frustrating.
The developer, Olivier (often misspelled Oliver) Gutknecht, is still very much around, however, and might be willing to send it to you. I would've contacted him, except that I wouldn't be able to do anything with the source myself.
The developer, Olivier (often misspelled Oliver) Gutknecht, is still very much around, however, and might be willing to send it to you. I would've contacted him, except that I wouldn't be able to do anything with the source myself.
I've been looking into writing some MacTCP apps in C, and for me, the streams interface to MacTCP has been the hardest part. I'm not real keen on learning a new interface that isn't connect().
there are a few libraries that emulate a socket interface to MacTCP. Simple Sockets and GUSI (Grand Unified Socket Interface) both come to mind, but I didn't ever get anywhere with them.
Just learning to use the silly MacTCP streams is probably better than using a socket layer.
there are a few libraries that emulate a socket interface to MacTCP. Simple Sockets and GUSI (Grand Unified Socket Interface) both come to mind, but I didn't ever get anywhere with them.
Just learning to use the silly MacTCP streams is probably better than using a socket layer.
Someone earlier mentioned supporting system 6. Something I hadn't given much thought to, but am now convinced I should do so.
This is sort of a round-a-bout question, hopefully someone can help me figure out what it is I want to ask, and the answer as well...
I have two versions of Think Pascal. 4.5 and 3.?. 3 doesn't have any TCP libraries and 4.5 has MacTCP.p.
As Kallikak suggested, I looked at some of Peter Lewis's code, which uses some included tcp libraries (TCPStuff.unit, TCPConnections.unit, TCPTypes.unit) but does not use MacTCP.p.
So, if I want to write an internet app that runs on system 6 through system 9, is it even possible? Should I use the pre-MacTCP.p code as a starting point, or should I use MacTCP.p?
If MacTCP.p is what I should be using, does anyone know of any simple sample code? Something along the lines of Peter Lewis's examples?
Thanks,
Nathan
This is sort of a round-a-bout question, hopefully someone can help me figure out what it is I want to ask, and the answer as well...
I have two versions of Think Pascal. 4.5 and 3.?. 3 doesn't have any TCP libraries and 4.5 has MacTCP.p.
As Kallikak suggested, I looked at some of Peter Lewis's code, which uses some included tcp libraries (TCPStuff.unit, TCPConnections.unit, TCPTypes.unit) but does not use MacTCP.p.
So, if I want to write an internet app that runs on system 6 through system 9, is it even possible? Should I use the pre-MacTCP.p code as a starting point, or should I use MacTCP.p?
If MacTCP.p is what I should be using, does anyone know of any simple sample code? Something along the lines of Peter Lewis's examples?
Thanks,
Nathan
I don't know anything about using Pascal, but it's not too hard to support System 6: Just use the raw MacTCP interface (MacTCP.p, if that's what that is) and use calls that are documented in Inside Macintosh Volumes 1-5.
Alternately, don't do any gestalt checking and code your code. See where it crashes on Sys6 to identify calls that require System 7. ;-)
Alternately, don't do any gestalt checking and code your code. See where it crashes on Sys6 to identify calls that require System 7. ;-)
If someone here is developing a web browser for System 6, it would be nice to see one with as many modern technologies incorporated as possible. I know a lot of things just won't be possible given the hardware, but it would likely turn out better than anything System 6'ers are currently using.
But is a browser really feasible? Sure, a text only browser might; but I'm talking about a real browser that let's you see graphics and forms too.
iCab once supported older 68k Macs, but they haven't released a version for System 7 in ages. I've even written to them multiple times about this, but my words have fallen on deaf ears. iCab is so buggy though that I can't use it on my SE/30.
After comparing every single browser (including the text only ones) on my SE/30, the best I've found is Netscape 2.0. It doesn't support some features that 3.0 does, but Netscape 2.0 is "wicked fast" on my SE/30.
So if a browser is indeed in the works, it would be nice to see something on order of Netscape 2.0 for System 6, especially in terms of speed. But I think that a browser of that magnitude on System 6 may not be possible. If it was, then why didn't Netscape make it compatible with 6 & 7? And again, there would be hundreds if not thousands of man-hours involved. True, it would be one of a kind and truly "wicked fast" because System 6 is so much faster than 7. But again, the effort required to bring it to the light of day may be overwhelming.
iCab once supported older 68k Macs, but they haven't released a version for System 7 in ages. I've even written to them multiple times about this, but my words have fallen on deaf ears. iCab is so buggy though that I can't use it on my SE/30.
After comparing every single browser (including the text only ones) on my SE/30, the best I've found is Netscape 2.0. It doesn't support some features that 3.0 does, but Netscape 2.0 is "wicked fast" on my SE/30.
So if a browser is indeed in the works, it would be nice to see something on order of Netscape 2.0 for System 6, especially in terms of speed. But I think that a browser of that magnitude on System 6 may not be possible. If it was, then why didn't Netscape make it compatible with 6 & 7? And again, there would be hundreds if not thousands of man-hours involved. True, it would be one of a kind and truly "wicked fast" because System 6 is so much faster than 7. But again, the effort required to bring it to the light of day may be overwhelming.
Well, I'm not developing a browser.
Sorry.
I *am* looking into writing an m68k mpd client so I can use my Mac SE (since it's such a pretty hip thing) to control my home stereo system. Actually, the genesis for this comes from the timing between a $10 Mac SE I found at a thrift store, and not being to run the Mac OSX mpd client on my wife's laptop because 10.3.9 is "too old". :?:
Bah! I'll show you too old!!
So, back to reality... My Mac programming skills are rusty, and were never that good to begin with, but I think this is a reasonable task for me.
Anyone here running mpd that would be willing to beta test for me (in apx. 900 years)?
Nathan
Sorry.
I *am* looking into writing an m68k mpd client so I can use my Mac SE (since it's such a pretty hip thing) to control my home stereo system. Actually, the genesis for this comes from the timing between a $10 Mac SE I found at a thrift store, and not being to run the Mac OSX mpd client on my wife's laptop because 10.3.9 is "too old". :?:
Bah! I'll show you too old!!
So, back to reality... My Mac programming skills are rusty, and were never that good to begin with, but I think this is a reasonable task for me.
Anyone here running mpd that would be willing to beta test for me (in apx. 900 years)?
Nathan
I won't be able to, unfortunately. Please keep up the good work, though.
A browser would be very hard to develop indeed. Maybe starting with a port of KHTML, like Safari, but it would be SO SLOW...
I have a 48MHz 68040 in my SE/30, and Netscape 2 is not as fast as Safari on my 1000MHz G4 or FireFox on my P3 500 OpenBSD box. Netscape 2 is also by far the fastest browser I have ever seen on 68k Mac. You do the math...
A browser would be very hard to develop indeed. Maybe starting with a port of KHTML, like Safari, but it would be SO SLOW...
I have a 48MHz 68040 in my SE/30, and Netscape 2 is not as fast as Safari on my 1000MHz G4 or FireFox on my P3 500 OpenBSD box. Netscape 2 is also by far the fastest browser I have ever seen on 68k Mac. You do the math...
Another programming suggestion for you...
If you want a real challenge and create a tsunami of interest from System 6 community, how about a 32-bit clean version of MultiFinder? This is perhaps one of the single largest benefits any programmer could offer the world of System 6!
If you want a real challenge and create a tsunami of interest from System 6 community, how about a 32-bit clean version of MultiFinder? This is perhaps one of the single largest benefits any programmer could offer the world of System 6!
Ah yes, giving us the ability to use all of that RAM that we freed up by using efficient software *and* by obtaining cheap SIMMs in today's market.
As for a web browser, I wouldn't bother working from a modern rendering engine like KHTML. CSS, JavaScript, and tables would tax a 68030 -- never mind a 68000. As for parsing the HTML, that in itself wouldn't be too bad (assuming that the HTML is well formed).
As for a web browser, I wouldn't bother working from a modern rendering engine like KHTML. CSS, JavaScript, and tables would tax a 68030 -- never mind a 68000. As for parsing the HTML, that in itself wouldn't be too bad (assuming that the HTML is well formed).
While there is some merit to what you say, there are still benefits to a 32-bit clean MultiFinder. MultiFinder itself allows you to run multiple apps simultaneously and switch between them. More RAM allows you to run more of those apps. And some of those apps can eat a lot of RAM, such as Deneba Canvas 3.5.x.Ah yes, giving us the ability to use all of that RAM that we freed up by using efficient software *and* by obtaining cheap SIMMs in today's market.![]()
So even though my SE/30 is loaded with RAM, I could still make use of more of that RAM while in System 6 if MultiFinder was 32-bit clean. But again, it would be a real programming challenge, I'm sure!