Happy 37th Anniversary WWDC! (for those who celebrate). I was in the Apple II Developer Technical Support group at that time, and got a t-shirt 😄
Jim Luther
Retired Apple software engineer. I used to polish, refine and fix things, and sometimes I created completely new things (virtual memory, HFS Plus, iDisk, CarbonCore, parts of CoreFoundation/Foundation, and lots of stuff nobody sees but must work correctly).
Now I cook a lot, play fast paced video games, and play bass guitar.
-
I replaced routines that moved blocks of memory 1-byte at a time in loop with calls to BlockMoveData for improved performance. Someone at sometime thought BlockMove/BlockMoveData couldn't be called at interrupt time and added that slow memory copy routine -- they were wrong.
-
I replaced BlockMove calls with BlockMoveData wherever possible (BlockMove was only needed when moving code) for improved performance.
-
I locked out loading on Mac OS versions earlier than 7.6 (this version of AppleShare was only tested with Mac OS 9.1/9.2.x but it should work back to 7.6). That's because code in the AppleShare client had required features only in 7.6 and later.
-
I removed dead pre-System 7.6 code (much of it still ran during initialization but did nothing).
4/5 🧵
-
I replaced multiple INIT resource with a single INIT resource that loads the other code (now in CUST resources) in the correct order. If the AppleShare client was edited with a resource editor on Mac OS 9.1 or later, those INIT resource might have loaded in the wrong order.
-
Fixed a few other random bugs I saw that probably wouldn't be noticed by anyone else but they bugged me.
5/5 end of 🧵
-
I made MakeFSSpec much faster. When System 7.0 first shipped, I got a developer bug that showed MakeFSSpec (new in System 7) was very slow on AppleShare. I filed a bug for the developer and even explained what the problem was. The code would enumerate a directory to find a matching filename to the filename passed to MakeFSSpec. If the filename was the last to be seen in a directory enumeration, that resulted in many transactions. With my rewrite, making an FSSpec is accomplished with only one or two transactions with the server. This bug effected creating FSRefs, too.
-
Increased size of response buffers used for ATP to hold 8 full-sized ATP response packets (it was 1) to increase network performance (reduce the number of transactions with the server). Why was it so small? The code had not changed since 1987.
3/5 🧵
Help my friend Becky fight her recent cancer diagnosis. Like many, I played games Becky helped create on the Apple II/IIgs, Macintosh, and other personal computing platforms.
@burgerbecky@mastodon.gamedev.place
Check out this podcast about Atlantic Records and the producers, engineers, songwriters, etc. who worked there. https://offtherecordonthecharts.podbean.com
The hosts are the children of 3 of Atlantic’s most important producers from the late 1940s through the 1970s.
The first full episode is an interview with Jerry Wexler’s son.
The second episode is with Mike Stoller (of Leiber and Stoller).
@mdavis@mastodon.social I plan to cancel accounts with several companies whose services are sometimes useful, but I don’t like who the profits are going to. PayPal and Venmo top my list.
