Video: C Programming on System 6 - Demo Application

posted on oct 5th, 2020 with tags mac, retrocomputing, and video
part of C Programming on System 6 series

In this video, I create a new GUI application from scratch, create a resource file and add an image to it, and then display that image in a window. I also cover using THINK C’s debugger to inspect a struct. Then, my Mac dies.

Video notes:

  • Inside Macintosh
  • At 21:40: When processing an updateEvt event, one should send (WindowPtr)event.message to BeginUpdate() and EndUpdate(), not event_win as set by FindWindow() which I show here. While usually these are the same, sometimes updateEvt events can come through for the system which will cause FindWindow() to set event_win to NULL. Passing NULL to BeginUpdate() causes problems and will trigger “odd address” errors in the debugger.

I was able to upgrade my look-through-an-iPhone recording situation to a look-through-an-iPad one, so it’s a bit easier for me to see the screen as I work.

The 03FFFF error displayed when my Mac reboots appears to indicate a memory test failure. After recording, I swapped out the four RAM SIMMs and ran Apple Personal Diagnostics in a loop, but after about 4 loops it rebooted and just showed the question-mark-disk icon. I removed the motherboard and 512K rear case and swapped in a Mac Plus motherboard and rear case that I had available. Apple Personal Diagnostics finished over a dozen loops with no problems, so I guess there is some issue with the 512K motherboard or (more likely) its Mac Rescue upgrade board.

If anyone has an early 1986 Mac Plus rear case in the older beige color (not just a yellowed Platinum one) that they don’t need, please let me know. My current Mac Plus rear case is the newer platinum color which doesn’t match the 512K’s front.

Meta notes:

  • I received some feedback that those in Europe were unable to stream the previous video without a lot of buffering despite my server being on a 10Gbit connection with plenty of resources available. I have setup up a virtual server in the UK which is mirroring my videos and the DNS entry is using geolocation so hopefully those in Europe and Asia will be fetching videos from my UK host.

  • Also, since encoding a version of my video in WebM is excruciatingly slow (many hours vs. 10 minutes for the MP4), I am going to stick to just one H.264-encoded MP4 file format for videos going forward since it seems to have very wide compatibility. I’m sorry to those that need a WebM/Vorbis version.

Please contact me with any feedback or questions for future videos, and subscribe to my RSS feed for new videos and other posts.

Questions or comments? E-mail me or tweet at @jcs.