[Idea] Macintosh 68k Programming Study Group?

BFEXTU

Tinkerer
Jul 15, 2022
177
147
43
For ResEdit, download the ResEdit Docs. For programming, start with Think (LightSpeed) C or Pascal matched to your intended build machine and OS + ResEdit. C is probably the best modern starting point. Use Inside Macintosh for info about using the Mac Toolbox. Or, if you are new to programming, you could learn to program in a Pascal-like language by using HyperCard and still have just as much fun. (MPW has a high learning curve and is a power IDE; CodeWarrior/Metrowerks are great, but better on later OSes). Borland TurboPascal also has its advantages, but best for platforms targeting the late '80s.
 

BFEXTU

Tinkerer
Jul 15, 2022
177
147
43
If you are looking for the classic C reference, it is: The C Programming Language, 2nd Edition by Kernighan & Ritchie. There may also be PDF/eBooks available for purchase. In general, avoid pirate PDFs/software (and pirates, in general, unless you are a Pastafarian). There are many other C/C++ books, including the O'Reilly 'C is for Cow' books - moo(f) - and no, the books aren't really called that. Additionally, there are books, like the one from the OP, that address C on the Mac, with examples.

For Pascal, the classic book was (or is) "Oh! Pascal!," commonly used in college Computer Science classes. And, there are also a number of specific references/tools for the Mac, including Macintosh Pascal (by Apple) and the Intro/Advanced Hayden books.

For assembly language, 68K or otherwise, you need the data book from the manufacturer, but, in the case of the 68000, there are also gentle or higher level introductions and references that make it less scary. However, learning how to read and understand a processor databook is a great skill to have.

The bottom line is to just get started. Beyond introductory material, you don't have to overwhelm yourself with books to become a Mac programmer -- it's one of the amazing things about the original Mac and its ease of use. Choose a programming language/tool/target OS & machine, look at sample code and see if you can get something working. You don't have to understand everything before you start. When you are bootstrapping, there is always a shift (or even an imperative) to learning by doing vs. by reading. Philosophically, in startup life, there is usually never enough time for either one (in addition to the fact that, when you are at the cutting edge, nobody has ever done what you are trying to do anyway).

I will see what old books I still have and will post a pic.
 

rikerjoe

Tinkerer
Oct 31, 2021
146
220
43
I’ve been following this thread with a growing sense of excitement. I started my career at NASA 35 years ago as a C and FORTRAN programmer. The idea of dusting off my programming chops and translating them into the classic Mac world somehow sounds oddly appealing. Looking forward to the classes and pulling my programming references off the shelf, many of which were referenced earlier in the thread. Great suggestion, @eric!
 

eric

Administrator
Staff member
Sep 2, 2021
961
1,569
93
MN
scsi.blue
My thoughts would be to have it like this - threads per "week" (week meaning ever 2-4 ish weeks) and you can jump between them or into them anytime you want, jump in next year if thats the time that works for you.

I'd suggest THINKC 5/6 with the book "Macintosh C Programming Primer 1992" - while I agree with purchasing in print books - many of these are out of print and available online or archive.org - the author won't be getting the 5 cent royalty anyways buying a used book, though I did buy it used to have on the shelf.

A rough outline of what I had in mind. This is obviously focused on beginner - but if others want to setup some more advanced topics or challenges that would be welcome too.

[Week 0] Setup Development environment - a thread where we post links, pre-made images, and discuss how to setup the environment
[Week 1] Hello, World - get your first ANSI window up with Hello, World - write a few C functions and build some simple CLI apps to better understand C and the IDE (Segments, files, headers, etc)
[Week 2] Hello, World - with ToolBox - Get a window on screen, draw some text, learn more about toolbox init and documentation
[Week 3] Events
[Week 4] Quickdraw, coordinates, pen, etc
[Week 5] Controls - lists and buttons
[Week 6] Menu Bar
[Week 7] Some challenge
 

BFEXTU

Tinkerer
Jul 15, 2022
177
147
43
retro - do you need this book? 1st right of refusal. if you dont, then someone else can have it. pm me an address. free copy.
 

Attachments

  • 20220806_150542.jpg
    20220806_150542.jpg
    341.8 KB · Views: 70
Last edited:
  • Like
Reactions: retr01

Kai Robinson

TinkerDifferent Board President 2023
Staff member
Founder
Sep 2, 2021
1,179
1
1,184
113
42
Worthing, UK
Just an idea to throw into the mix - how about a community led initiative as a goal? Ie, people put ideas for a useful program they'd like, that doesn't exist, and everyone has their own go at the idea, posts them, and we pick a winner, and give some sort of accolade or potentially a prize?
 

eric

Administrator
Staff member
Sep 2, 2021
961
1,569
93
MN
scsi.blue
Just an idea to throw into the mix - how about a community led initiative as a goal? Ie, people put ideas for a useful program they'd like, that doesn't exist, and everyone has their own go at the idea, posts them, and we pick a winner, and give some sort of accolade or potentially a prize?
While I like the idea - I think it's out of scope for the Study Group - though hopefully the pool of people with knowledge grows such that when we have some ideas for modern solutions on 68k machines someone will be interested and have the skills to give it a try.
 

YMK

Active Tinkerer
Nov 8, 2021
368
301
63
I'd settle for just a subforum. "Software" is far too broad and 68K dev topics will be lost.

Given that we're scattered across time zones and skill levels, I don't see the benefit of such a structured, university-like approach.

Let people ask and answer as they will and the knowledge base will build itself, but it needs a place.
 

eric

Administrator
Staff member
Sep 2, 2021
961
1,569
93
MN
scsi.blue
I don't see the benefit of such a structured, university-like approach.
Study Group, book club, knitting club, etc, just a little structure (like people reading the same chapter in a book or working on the same problem) can go a long ways, sometimes the hardest part is knowing where/how to start.

Seems like there is atlesat some interest in a subforum, though not sure if build it and they will come will work, but could be as there is no real other place to chat about this topic (that i know of)
 

Eric's Edge

Tinkerer
Oct 31, 2021
122
87
28
Study Group, book club, knitting club, etc, just a little structure (like people reading the same chapter in a book or working on the same problem) can go a long ways, sometimes the hardest part is knowing where/how to start.

Seems like there is atlesat some interest in a subforum, though not sure if build it and they will come will work, but could be as there is no real other place to chat about this topic (that i know of)
I like the idea of some structure and being able to post questions, have discussions, toss ideas for projects around, etc. I think this is an opportunity to eat our cake and have it too.
 
  • Like
Reactions: tom_B

BFEXTU

Tinkerer
Jul 15, 2022
177
147
43
_SDGOL_ said:
I think this is an opportunity to eat our cake and have it too.

I would be curious to see a Macintosh Quilting Bee and Pie-Eating Contest. Every entrant gets a free raspberry pie!!
 

mmu_man

Tinkerer
Jan 30, 2022
163
85
28
I'm more of the cross-compiling type, being used to git and other niceties, although there are possibilities to run git on older OSes too…
How about Retro68 (GCC based) as a compiler? Haven't tried it yet. Also, the NetSurf team has a collection of toolchains for their CI that we might want to augment (no, I don't have time to port NetSurf, but I can assist whoever wants as I wrote the initial BeOS support).
 

Crutch

Tinkerer
Jul 10, 2022
293
228
43
Chicago
I'm more of the cross-compiling type, being used to git and other niceties, although there are possibilities to run git on older OSes too…
How about Retro68 (GCC based) as a compiler? Haven't tried it yet. Also, the NetSurf team has a collection of toolchains for their CI that we might want to augment (no, I don't have time to port NetSurf, but I can assist whoever wants as I wrote the initial BeOS support).

I keep meaning to try Retro68 but the edit-compile-run-test loop feels awfully clunky. Every time I want to try my code I have to go through some LaunchAPPL gymnastics? THINK C in an emulator is blazing fast, reliable, and has a built-in debugger. It seems to me like the way to go.
 

Mu0n

Active Tinkerer
Oct 29, 2021
610
560
93
Quebec
www.youtube.com
Requirements for Retro68

  • Linux, Mac OS X or Windows (via Cygwin)
Cygwin...yeah, not touching that.


And I say this as someone who learned how to use git on the fly back in 2017, has more than 100k lines of code in a java project repository that I've come to lead. Just learning the intricacies of the vintage Mac toolbox is already a formidable challenge without adding to teach about version control. My least favorite part about programming is being torn apart by advocates for SO MANY different tools.

version control would be great for a large project and multiple contributors.

This is not it, not yet.
 
Last edited:

Mu0n

Active Tinkerer
Oct 29, 2021
610
560
93
Quebec
www.youtube.com
I'd like to make some resources available for all:

I can make: a 30 mb HFV file containing Symantec THINK C v6.0, THINK Reference Viewer, Popfuncs, ResEdit and Resorcerer
I can't make: a HDA file of the same

HFV: runs well on emulators such as Basilisk II (recommend) and mini-vMac (don't recommend, too small screen), contains no SCSI hard disk driver
HDA: runs well on real machines via BlueSCSI and RaSCSI, as well as emulators, contains a SCSI hard disk driver

I can't make HDAs because the Disk Jockey tool that was made by the community is mac/unix only and I own a PC. If someone could kindly produce this for me, I'd appreciate it. (please make me 10 mb, 20 mb and 30 mb non-booting HDAs)

I suggest using two volumes;

FIRST VOLUME: contains all your tools and not much else, 30 mbs should encompass the mentioned programs. it shouldn't need to be much bigger. Feel free to set up a large disk volume if you absolutely need more tools.

SECOND VOLUME: contains your projects, resources, source code, self-made libraries, etc. Think of it as your personal current project scratch disk. Keep it small and on your favorite cloud service so you can sync it up if you ever need to switch your coding machine, need to easily share it to others, etc. It makes no sense having a 1gb volume (even if you can) and having to upload-sync that whole thing everytime a small change in your code is done. Depending on your aspirations, that volume could be enough at 10 mb, more if you feel prolific.

THIRD VOLUME (Bonus): even though the mactech articles are semi-accessible online (tons of pictures have broken links, but the text is all there), I have an old CD image .toast of a cache of these sitting in my stuff that I meant to convert to a format usable by both Basilisk II and RaSCSI (and BlueSCSI?), that could be a neat optional source of information to draw upon while coding.


P.S.:
Think Reference Viewer: looks like this. It's a must. The underlined words are navigation links, just like browsing the www. The Go Back button should be used and abused as you peek in and out of stuff you want to check. Data formats are neatly listed and explained. Mac toolboxes all have their own pages. It's like having Inside Macintosh all in one smooth exploring experience.:
1660045327691.png


PopFuncs: is a brain dead simple tool that sticks to your THINK C 6 installation and gives you an extra left side menu to navigate to your functions, useful if you tend to code long source code files (all beginners do). It's not necessary and you can just rely on searching with cmd-F.
1660045435412.png


ResEdit is the standard way to edit in resources so you can keep your application's hard coded information as light as possible and sport cool icons and windows that you easily recall:
1660045633245.png


Resorcerer is an alternative:

1660045771205.png
 
Last edited:

Crutch

Tinkerer
Jul 10, 2022
293
228
43
Chicago
What a great post @Mu0n . Everything you wrote there sounds brilliant! I would LOVE to get access to an archive of all the old MacTutor articles. I have been meaning to track down one of those CDs myself one day.

I would quibble with one thing - Mini vMac under Mac II emulation can make the screen any reasonably large size. The problem with Basilisk in my experience is sooner or later you will really wish you had Macsbug, which Basilisk doesn’t support. So I’ve always found Mini vMac to be superior … but Macsbug may be far afield for this project for now. (Basilisk definitely has superior file transfer capabilities through its native shared-folder support.)
 

retr01

Senior Tinkerer
Jun 6, 2022
2,474
1
796
113
Utah, USA
retr01.com
If someone could kindly produce this for me, I'd appreciate it. (please make me 10 mb, 20 mb and 30 mb non-booting HDAs)

I will make for you:
  • One 10 megabytes non-booting HDA image
  • One 20 megabytes non-booting HDA image
  • One 30 megabytes non-booting HDA image
Producing...please wait...
 
  • Like
Reactions: Mu0n