概要
(株)アスキーの月刊MacPowerで連載していたマッキントッシュ用プログラム解説記事『松原園長のキョービのプログラマはそんなもんスか?』で紹介した全プログラムを、以下に紹介します。プログラムはすべて、公開当時のままとなっておりますので、基本的にはTHINK Cのプロジェクトです。アプリケーション系を現在のカーボン環境へ移すのは、慣れた人ならわりと簡単な作業ですが、機能拡張系は残念ながら全滅です。アイデアとして面白いプログラムは、今後ぼちぼちとカーボン化したり、Cocoa化したり、Windowsへの移植もやって行こうと思っています。「コレをアレへ移植しちくれー」という要望があれば、メールコンタクトフォームでお知らせ下さい。できるだけお返事するよう努めます。
第2回 TextEditのスペシャルな使い方
(月刊MacPower1992年8月号掲載)
 ★TextEditを利用するプログラマに役立ちます★
 サンプルプログラム:002TESpecial
 TESpecialでは、次のふたつの機能を実現しています。
【1】TextEditで「Shiftキー+アローキー」(文字選択領域の拡張)を実現する方法
【2】TextEditで高速日本語入力機能を実現する方法
第3回 ドーナツ型ウインドウのWDEF
(月刊MacPower1992年9月号掲載)
 ★ウインドウ定義関数(WDEF)を自作したいプログラマに役立ちます★
 サンプルプログラム:003WDEFandWTester
 WDEFandWTesterには、次のふたつのプログラムが含まれています。
【1】ドーナツ型のウインドウを実現するウインドウ定義関数cWDEF.c
【2】ウインドウ定義関数をテストするためのアプリケーションWTester
第4回 縦書きメニューのMDEF
(月刊MacPower1992年10月号掲載)
 ★メニュー定義関数(MDEF)を自作したいプログラマに役立ちます★
 サンプルプログラム:004MDEFandMTester
 MDEFandMTesterには、次のふたつのプログラムが含まれています。
【1】縦書きのメニューを実現するメニュー定義関数cMDEF.c
【2】プログラム定義関数をテストするためのアプリケーションMTester
第5回 画面を扱うFKey
(月刊MacPower1992年11月号掲載)
 ★スクリーンショットを取りたいプログラマ、FKeyを自作したいプログラマに役立ちます★
 サンプルプログラム:005FKeys
 FKeysには、次のふたつのプログラムが含まれています。
【1】GetScreen.c : スクリーン画像を入手するFKey
【2】ScreenPuzzleFKey.c : 全画面でパズルを楽しむFKey
第6回 GlueWindowINIT
(月刊MacPower1993年1月号掲載)
 ★INITを自作したいプログラマに役立ちます★
 サンプルプログラム:006GlueWindowINIT
 GlueWindowINITは、ウインドウをドラッグした時に、ウインドウ同士がピタッと貼り付くようにくっいてくれるシステム機能拡張プログラム(INIT)です。このプログラムでは、システム起動時のアイコン表示等を行っていませんので、次の007GlueWindowINIT2の方がもっと役に立つと思います。
第7回 GlueWindowINIT2
(月刊MacPower1993年2月号掲載)
 ★INITを自作したいプログラマに役立ちます★
 サンプルプログラム:007GlueWindowINIT2
 GlueWindowINIT2は、GlueWindowINITに起動時アイコン表示の機能を追加したものです。INIT制作の参考になると思います。今現在では、GlueWindowINIT2のコードよりもさらに優秀で汎用性のある起動時アイコン表示を行うコード「ShowInitIcon.c」がアップルから提供されていますので、そちらを参考にしたほうが良いと思います。アップルのftpサイトを探してください。見つかるはずです。
第8回 キーボードのLEDを点滅させる方法
(月刊MacPower1993年3月号掲載)
 ★キーボードのLEDを点滅させたい変わったプログラマに役立ちます★
 サンプルプログラム:008LED
 LEDは、拡張キーボードに付いている3つのLED(num lock/caps lock/scroll lock)を、マイク2000のノーズのように(んなもん誰も憶えていないか)順次点滅させるという変わったプログラムです。トマソンソフト(役立たずソフト)の好きなプログラマには好まれるかもしれません。キーボードのようなADB付属のデバイスとの通信方法を知りたいという真面目なプログラマの好奇心も満たしてくれるかも。
第9回 CDROMドライブで音楽CDを制御する方法
(月刊MacPower1993年4月号掲載)
 ★CDROMドライブに音楽CDをマウントして、プログラムから制御したいというプログラマに役立ちます★
 サンプルプログラム:009AudioCD
 AudioCDは、マッキントッシュのCD-ROMドライブにマウントされたCDの音声トラックを制御するプログラムです。再生・停止・頭出し・曲番号表示・タイム表示といった機能を持っています。
第10回 PowerBookバッテリ残容量のチェック法
(月刊MacPower1993年5月号掲載)
 ★PowerBookのバッテリ残容量を調べたいというプログラマに役立ちます★
 サンプルプログラム:010PowerChecker
 PowerCheckerは、パワーブックのバッテリの残容量を調べてメニューバー右上に数値表示し続けるというプログラムです。システム標準のバッテリ残容量表示プログラムのイイカゲンサに怒って作ったものです。
第11回 ファイルのクリエイタ/ファイルタイプを変更する方法
(月刊MacPower1993年6月号掲載)
 ★ファイルタイプ/クリエイタを一括変更したいユーザに役立ちます★
 ★ファイルタイプ/クリエイタの変更方法を知りたいプログラマに★
 ★フォルダに含まれる全ファイルを処理対象としたいプログラマに★
 サンプルプログラム:011ChangeFInfo
 ChangeFInfoは、ファイルのクリエイタやファイルタイプを変更するプログラムです。同一フォルダに含まれる全ファイル及びサブフォルダに含まれる全ファイルまでも一括変更することが可能です。フォルダに含まれる全ファイルを処理対象とするには、ファイルマネージャのわかりにくい関数を使ってアレコレする必要があります。そういうことをやりたいプログラマには参考になると思います。
第12回 マウスの位置を強制移動する方法
(月刊MacPower1993年7月号掲載)
 ★マウスポインタを見失いがちなうっかりユーザに役立ちます★
 ★マウスポインタの位置を強制変更したいプログラマに役立ちます★
 サンプルプログラム:012MouseFinder
 MouseFinderは、あるキーコンビネーション(コマンドキー+コントロールキー+シフトキー+オプションキー)が押されると、マウスポインタの位置を強制的にアップルメニューのところへ移動してしまうプログラムです。マウスポインタの強制移動というテクニック(ヒジョーにアブノーマルで危険な方法ではありますが)を知っていると、何かと便利。たとえば私はトレインシミュレータというCDROMソフトのシリーズを作っているのだけれど、このプログラムの店頭デモなどでは、このテクニックを使っている。誰も触っていないのにマウスポインタが勝手にズルズルと動いて行き、あるボタンをクリックする(これはPostEvent関数を使っているのだけれど)といった事ができるわけです。
第13回 パレットアニメーションの方法
(月刊MacPower1993年8月号掲載)
 ★パレットアニメーションの効果をボンヤリ楽しみたいユーザに役立ちます★
 ★パレットアニメーションを使いたいプログラマに役立ちます★
 サンプルプログラム:013PaletteAnimation
 PaletteAnimationは、インデックスカラーのパレットアニメーションを利用した独特のカラーアニメーション効果を使ったプログラムです。プログラム自体は別に何の役にも立ちませんが、キレイなアニメーションが楽しめます。
第14回 ファイル検索の方法
(月刊MacPower1993年9月号掲載)
 ★同一クリエイタを持つファイルを全部検索したいユーザに役立ちます★
 ★ファイルを検索したいプログラマに役立ちます★
 ★ダイアログ上にリストを表示したいプログラマに役立ちます★
 サンプルプログラム:014FindSameAPPL
 FindSameAPPLは、同一クリエイタを持つファイルを、全ハードディスク上から検索してリスト表示してくれるプログラムです。ソフトをインストールすると自動的にコピーされてしまうTeachTextやSimpleText等、いつのまにかハードディスク上に溜まってしまう同一プログラムを一掃するのに便利です。
 プログラムテクニックとしては、ダイアログ上にスクロールバー付きのリストを表示する際の参考になりますし、ファイル検索の簡単な方法を知ることもできます。
第15回 シリアルポートのモニタリング
(月刊MacPower1993年10月号掲載)
 ★シリアル上に流れるデータを監視したいユーザ&プログラマに役立ちます★
 ★シリアルポートへのアクセス方法を知りたいプログラマに役立ちます★
 サンプルプログラム:015SerialMonitor
 SerialMonitorは、マッキントッシュのふたつのシリアルポート(モデムポートとプリンタポート)を利用して、シリアルライン上を流れる全データをモニタリング(監視)するというプログラムです。たとえばモデムポートから入ってきたデータの内容を画面に表示した後、プリンタポートへ出力するといった事ができるわけです。シリアル機器を扱うソフトを開発している時に、デバッガを使ったりするのではなく、シリアルライン上を流れるデータだけを監視したいような場合にとても便利。
第16回 ゲームプログラミングの基礎
(月刊MacPower1993年11月号掲載)
 ★しょーもない単純ゲームの愛好家に★
 ★これからゲームを作ろうかと思っているプログラマに役立ちます★
 サンプルプログラム:016SimpleShootingGame
 SimpleShootingGameは、ヒジョーに単純なゲームのプログラムです。ただし、ゲームプログラミングのツボを押えた作りになっています。オフスクリーングラフィックスワールドを利用したフリッカレス表示の方法や、単純な効果音の出し方などを知りたいプログラマに役立ちます。もっとも、今ではアップルもようやく本腰を入れてゲームデベロッパ支援に乗り出したようで、「Apple Game Sprockets」というものを提供し始めました。本格的なゲームプログラムをやりたい方は、アップルのftpサイトで探してみてください。結構役に立つライブラリがありますよ。
第17回 マンデルブロート集合の表示
(月刊MacPower1993年12月号掲載)
 ★マンデルブロート愛好家に是非★
 ★マンデルブロート集合を自分のプログラムで表示したいプログラマに★
 サンプルプログラム:017Mandelbrot
 Mandelblotは、ウインドウの中にマンデルブロート集合をグラフィックス表示するプログラムです。マウスでクリックすることにより、無制限に拡大表示することができます。これが単なる複素数の集合だとは思えないくらい美しいのだが、世の中の何に役立つものなのか、私は知らない。
第18回 3Dグラフィックスの基礎の基礎の基礎
(月刊MacPower1994年1月号掲載)
 ★3Dグラフィックスをこれから始めるプログラマに役立つかもしれません★
 サンプルプログラム:0183DBox
 3DBoxは、3D(3次元)グラフィックスの基礎的手法によって、ボックスを表示するだけのプログラムです。Zソートによる簡単な陰面処理もできます。これから3Dプログラムをいぢってみようかなぁと思っているプログラマには、少しは役に立つかもしれません。今ではマックで3Dプログラムを書く場合はQuickDraw 3Dを使えば良いので、このプログラムのように数学的計算をテメエで書くなんてことはしなくても済むのですが、まあ何にせよ、ちょっとしたベンキョーにはなります。
第19回 お手軽電話帳
(月刊MacPower1994年2月号掲載)
 ★軽くて素早い電話帳が欲しいユーザに是非★
 ★ダイアログを使いこなしたいプログラマに参考になるかも★
 サンプルプログラム:019PhoneBook
 PhoneBookは、ダイアログを用いた単純な電話帳プログラムです。電話番号に限らず、あらゆるメモに使えます。このプログラムの良いところは、「変更されてるけど保存するか」といった面倒な問い合わせは一切表示されず、自動的にデータが保存されるのでお手軽です。当然検索機能もあります。書き込まれている全文字を対象に検索しますので、ラクチンです。
第20回 内部時計を厳密にアジャストする
(月刊MacPower1994年3月号掲載)
 ★時計が厳密でないと気が済まない厳格なユーザに是非★
 ★サウンド入力を使ってみたいプログラマに役立ちます★
 サンプルプログラム:020JustClock
 JustClockは、NTTの117の時報をマックのマイク入力端子に接続したマイクに聴かせて、マックの内部時計を厳密にアジャストしてしまうというおかしなプログラムです。具体的な使い方はAboutダイアログに書いてありますので、お試しください。
 サウンド入力を使いこなしたいプログラマには、参考になるソースだと思います。
第21回 短波の気象ファックスをサウンド入力で受信する
(月刊MacPower1994年4月号掲載)
 ★アマチュア無線ファンのマックユーザは是非使ってみてください★
 ★短波のファックス放送に興味のあるプログラマに役立ちます★
 ★サウンド入力を使ってみたいプログラマに役立ちます★
 サンプルプログラム:021Sandstorm
 Sandstormは、短波を使って放送されている気象ファックスの音声をマイク入力端子から入力して、マックのウインドウ上に画像として表示するという、天才的プログラムです。短波のファックス放送に興味のあるプログラマ(日本中探しても数人しかいないかもしれないけれど)には、ヒジョーに役立つソースコードです。
第22回 ゴミ箱ブロックFBA
(月刊MacPower1994年5月号掲載)
 ★乱暴な子供とマシンを共有しているユーザに有効★
 ★FBAを作ってみたいプログラマに役立ちます★
 サンプルプログラム:022TrashBlock
 TrashBlockは、ゴミ箱に入れられたファイルを、自動的にもとの場所に戻してしまうプログラムです。プログラム構造的には、FBA(フェイスレスバックグラウンドアプリケーション)という方式を取っています。つまり、バックグラウンドのみで動作して、画面上にはいっさい現れないアプリケーションです。FBAを作ってみたいプログラマには良い参考になります。
第23回 ビジュアルエフェクトプログラム
(月刊MacPower1994年6月号掲載)
 ★ビジュアルエフェクトを実現したいプログラマに役立ちます★
 サンプルプログラム:023VisualEffects
 VisualEffectsは、ワイプやスクロールといった基本的なビジュアルエフェクト15種類を実現したサンプルコードです。ビジュアルエフェクトを自作プログラムに組み込みたいプログラマの参考になると思います。
第24回 DeskPictureINIT
第25回 DeskPictureCDEV
 (月刊MacPower1994年7・8月号掲載)
 ★デスクトップ上に絵を表示したいユーザ&プログラマに役立ちます★
 ★INITとCDEVの連携を取りたいプログラマに役立ちます★
 サンプルプログラム:025DeskPictureINITandCDEV
 DeskPictureINITとDeskPictureCDEVは、デスクトップ上(通常はコントロールパネルで設定したパターンが表示されている部分)に、ユーザが指定した絵を表示するというプログラムです。このプログラムは、INITとCDEVが連携を取って動作するというテクニックを学習したいプログラマには良い参考になると思います。
第26回 AfterDarkModuleの基礎
(月刊MacPower1994年9月号掲載)
 ★どんなつまらないAfterDarkModuleでもいいから見てみたいという奇特な方★
 ★AfterDarkModuleをこれから作ってみようかというプログラマに★
 サンプルプログラム:026ADMModules
 ADMModulesには、「BlackOut」と「SoundWave」というふたつのAfterDarkModuleのサンプルが入っています。BlackOutは、黒くなるダケという最もシンプルなモジュール。SoundWaveは、マイク入力の音に反応したグラフィックを表示するという、ちょっと変わったモジュールです。
第27回 QuickTimeムービーを16パズルに
(月刊MacPower1994年10月号掲載)
 ★16パズル愛好家、16パズルコレクターに是非★
 ★16パズルのプログラムを作りたいプログラマに★
 ★QuickTimeムービーをオフスクリーンで扱いたいプログラマに★
 サンプルプログラム:027QTPuzzle
 QTPuzzleは、あらゆるQuickTimeムービーを16パズルにしてしまうというプログラムです。QTPuzzleを起動すると、標準入力ファイルダイアログが表示されますので、そこで何らかのムービーファイルを開いてみてください。すると、指定したムービーが16パズルとして表示されます。もちろんムービーは動き続けます。
 プログラム的には、ムービーをオフスクリーンに描画させ、オフスクリーン上から画面にCopyBitsするというテクニックを使っています。
第28回 プリンタドライバを作ろう
(月刊MacPower1994年11月号掲載)
 ★QuickDrawプリンタドライバを作りたいプログラマの参考に★
 サンプルプログラム:028PrintPaint
 PrintPaintは、QuickDrawのプリンタドライバです。セレクタで選択して、アプリケーションから「印刷」を実行すると、印刷結果がペイントファイルとして出力されるというものです。これからQuickDrawのプリンタドライバを作りたいと思っているプログラマには参考になると思います。PrintPaintはGX環境下では動作しません。
第29回 GXのグラフィックスの基礎の基礎
(月刊MacPower1994年12月号掲載)
 ★QuickDraw GXのグラフィック処理を利用したいプログラマの参考に★
 サンプルプログラム:029SpinningChar
 SpinningCharは、QuickDraw GXの機能を使って、文字をグルグルと回転させて表示するプログラムです。GX特有のグラフィックの扱い方や、図形の縮小・回転の方法がわかります。
第30回 Pictureを回転させる
(月刊MacPower1995年1月号掲載)
 ★今さらながらにPowerPCの速度を実感したい方に★
 ★FATバイナリの作り方を知りたいプログラマに役立ちます★
 ★Pictureの自由回転を行いたいプログラマに役立ちます★
 サンプルプログラム:030RotatePicture
 RotatePictureは、読み込んだPICTファイルをグルグルと回転させるプログラムです。PowerPCの速度計測用に作りました。PICTデータの回転には、QuickDraw GXを用いず、独自のコード(アフィン変換のインプリメント)で回転させていますので、同じ様なことをやりたいプログラマには良い参考になると思います。
 CodeWarrierの68K版、PPC版、FAT版およびMPWの68K、PPC、FAT版をコンパイルできるようになっていますので、興味のある方はどうぞ。
第31回 ビデオをキャプチャーする方法
(月刊MacPower1995年2月号掲載)
 ★ビデオキャプチャープログラムを作りたいプログラマに役立ちます★
 サンプルプログラム:031VideoCapture
 VideoCaptureは、QuickTimeのビデオ取り込み機能を利用して、映像と音声を取り込み、QuickTimeムービーとして保存するプログラムです。
第32回 AfterDarkModule作りを簡便化するツール
(月刊MacPower1995年3月号掲載)
 ★AfterDarkModuleを作っているプログラマに役立ちます★
 サンプルプログラム:032ADMPlayer
 ADMPlayerは、AfterDarkModule作りを簡単にするためのツールです。通常、AfterDarkModuleのデバッグは、実際にモジュールをコンパイルした後、インストールしてリスタートしなければデバッグできませんが、このADMPlayerを利用すれば、通常のアプリケーションを開発する際と同様に、ソースレベルデバッガを使いながらデバッグすることが可能となります。モジュール作家の方は、是非使ってみてください。
第33回 マンデルブロート集合の表示(PPC版)
(月刊MacPower1995年4月号掲載)
 ★MandelbrotのPPC版が欲しい方★
 サンプルプログラム:033MandelbrotPPC
 MandelbrotPPCは、第17回で紹介したMandelbrotプログラムのPowerPC版です。より高速な描画が楽しめます。
第34回 DXFファイルビューア
(月刊MacPower1995年5月号掲載)
 ★DXFファイルの取り込みに興味のあるプログラマの参考になります★
 ★3Dグラフィックスのお勉強をしたいプログラマの参考になります★
 サンプルプログラム:034DXF3DViewer
 DXF3DViewerは、DXFファイルを読み込んで、3Dで表示するビューアプログラムです。
第35回 役立つ小さなプログラム達
(月刊MacPower1995年6月号掲載)
 ★エクセルのテキストファイルを取り込みたいプログラマに役立ちます★
 ★KeyMapのフラグ番号を知りたいプログラマに役立ちます★
 ★壊れたリソースデータを少しでも取り出したい方に役立ちます★
 サンプルプログラム:035MiniPrograms
 MiniProgramsには、次の3つの小さなプログラムが入っています。

【1】ExcelImportは、エクセルで作成したテキストファイルを取り込むプログラムです。このプログラムを参考にすれば、各種パラメータをエクセル上で作っておいて、それを取り込むことによってプログラムのデータ作りを支援することができます。

【2】KeyMapFinderは、キーボードの状態をGetKeysで調べる時に、どのキーが押されているかを判定するためのフラグ番号を簡単に知ることができるユティリティプログラムです。プログラマにはちょいと便利。

【3】rsrc2dataは、リソースフォークを丸ごと読み込んでデータフォークにコピーしてしまうプログラムです。通常は使い途がないけれど、リソースフォークのマップ部分が破壊されて読めなくなってしまった場合に、リソースデータ中のテキストデータを助けるくらいの事には役立ちます。私自身は、過去に2度だけ役立つ事があったのだけれど、今後二度と使うことがあるとは思えません。
第36回 ダイアログ操作用ユティリティライブラリ
(月刊MacPower1995年7月号掲載)
 ★ダイアログをバリバリ使いこなしたいプログラマに役立ちます★
 サンプルプログラム:036DialogUtils
 DialogUtilsは、ダイアログマネージャを使う際にとっても便利なユティリティ関数を収めたプログラムです。ヒジョーに便利なので、是非見てみてくださいな。
第37回 QuickDraw用ユティリティライブラリ
(月刊MacPower1995年8月号掲載)
 ★QuickDrawをバリバリ使いこなしたいプログラマに役立ちます★
 サンプルプログラム:037QDUtils
 QDUtilsは、QuickDrawを使う際にとっても便利なユティリティ関数を収めたプログラムです。ヒジョーに便利なので、是非見てみてくださいな。
第38回 SoundManager用ユティリティライブラリ
(月刊MacPower1995年9月号掲載)
 ★Sound Managerをバリバリ使いこなしたいプログラマに役立ちます★
 サンプルプログラム:038SoundUtils
 SoundUtilsは、Sound Managerを使う際にとっても便利なユティリティ関数を収めたプログラムです。
(今では、Apple Game SprocketsのSoundSprocketの方が便利で役立つと思います)
第39回 PlainTalkに日本語を読ませる
(月刊MacPower1995年10月号掲載)
 ★外人が喋るヘタな日本語を聴いてみたい方に是非★
 ★PlainTalkに興味のあるプログラマの参考になります★
 サンプルプログラム:039SpeakTest
 SpeakTestは、PlainTalk(スピーチシンセサイザ)を使って、日本語(ひらがな)を読ませるアプリケーションプログラムです。ヘタな日本語が何ともいえず愉快です。 隠語をしゃべらせてみるのも一興かと。
第40回 メモリリークを根絶するツール
(月刊MacPower1995年11月号掲載)
 ★メモリマネージャの内部に興味のあるプログラマの参考になります★
 ★メモリリークを厳密にデバッグしたいプログラマの役に立ちます★
 サンプルプログラム:040HeapChecker
 HeapCheckerは、アプリケーションヒープを監視して、メモリリーク(ハンドルやポインタ等のメモリブロックの解放忘れ)を厳密にチェックすることができる古今無双のデバッグプログラムです。次のようなメモリブロックについての情報を表示してくれます。
 ●削除されたメモリブロック
 ●生成されたメモリブロック
 ●長さが変更されたメモリブロック
 ●ブロックの先頭16バイトの内容が変更されたメモリブロック
 ●ロックビットが変更されたメモリブロック
 ●パージビットが変更されたメモリブロック
 ●リソースビットが変更されたメモリブロック
 ●変更されたメモリブロックの先頭16バイトのダンプ
第41回 リージョンを使いこなす(1)
(月刊MacPower1995年12月号掲載)
 ★リージョンを使いこなしたいプログラマの役に立ちます★
 ★マスクを使ったグラフィック描画をしたいプログラマの参考になります★
 サンプルプログラム:041MakeRgn
 MakeRgnは、マスクパターンのPICTファイルからリージョンを生成してリソースデータとして保存するアプリケーションです。グラフィックをマスク付きで表示したりするときにヒジョーに便利。
第42回 リージョンを使いこなす(2)
(月刊MacPower1996年1月号掲載)
 ★リージョンを使いこなしたいプログラマの役に立ちます★
 ★マスクを使ったグラフィック描画をしたいプログラマの参考になります★
 ★マスク付きアニメーションを実現したいプログラマの参考になります★
 サンプルプログラム:042RgnSprite
 RgnSpriteは、第41回で紹介したMakeRgnで作成したリージョンを使ったアニメーションソフトです。リージョンを便利に正しく扱う方法がわかります。
第43回 プログラム対戦ゲームリバース(1)
(月刊MacPower1996年3月号掲載)
 ★オセロタイプのゲームが好きな方に★
 ★プログラム同士で対戦するゲームを作りたいプログラマに★
 ★プログラム間通信のノウハウを知りたいプログラマの参考に★
 サンプルプログラム:043Reverse
 Reverseは、思考プログラム同士が対戦することが可能なオセロタイプのゲームプログラムです。もちろんユーザと思考プログラムが対戦することも可能です。
 ゲーム本体と思考プログラムとの間でプログラム間通信を行うというテクニックを使っているので、興味のあるプログラマは見てみてください。
第44回 プログラム対戦ゲームリバース(2)
(月刊MacPower1996年4月号掲載)
 ★オセロタイプのゲームが好きな方に★
 ★プログラム同士で対戦するゲームを作りたいプログラマに★
 ★プログラム間通信のノウハウを知りたいプログラマの参考に★
 ★オセロの必勝プログラムが書けるプログラマには是非★
 サンプルプログラム:044ReverseClient
 ReverseClientは、プログラム対戦ゲーム/リバース用の思考プログラムです。このサンプルプログラムには、リバースクライアントを開発するためのソースコード一式が入っています。サンプルとして大馬鹿思考ルーチンが入っています。弱いです。
第45回 プログラム対戦ゲームリバース(3)
(月刊MacPower1996年6月号掲載)
 ★オセロタイプのゲームが好きな方に★
 ★プログラム同士で対戦するゲームを作りたいプログラマに★
 ★オセロの必勝プログラムが書けるプログラマには是非★
 サンプルプログラム:045MoreReverseClients
 MoreReverseClientsは、いろいろな方々が作られたリバースクライアントのセットです。にぽぽさんの作られた「にぽぽ1号」、壁谷武憲さんの作られた「北白川シリーズ」、武蔵三山さんこと中野貴之さんの作られた「東山シリーズ」が収められています。腕に覚えのあるあなた、挑戦してみては如何?
第46回 度量衡換算プログラム
(月刊MacPower1996年7月号掲載)
 ★度量衡換算プログラムが欲しいユーザに是非★
 サンプルプログラム:046NumConverter
 NumConverterは、度量衡換算を行うプログラムです。長さ/重さ/広さ/体積/通貨(96/05/10現在)の値を、各種単位間で変換表示してくれます。ResEditを使えば独自の換算式を追加することもできます。
第47回 QuickDraw3Dの基礎の基礎
(月刊MacPower1996年9月号掲載)
 ★QuickDraw 3Dに興味のあるプログラマの参考になります★
 ★QuickDraw 3Dで3DMFを表示したいプログラマの役に立ちます★
 サンプルプログラム:047QD3DSamples
 QD3DSamplesは、QuickDraw 3Dを利用したプログラムのサンプルコード集です。QuickDraw 3Dの基本的な呼び出し方や、3DMFファイルの表示、3DMFリソースの表示方法などが理解できます。QD3D入門者に是非。
第48回 巨大文字生成プログラム
(月刊MacPower1996年10月号掲載)
 ★巨大文字を作りたいユーザの役に立ちます★
 ★巨大文字をコメントに利用したいプログラマの役に立ちます★
 サンプルプログラム:048BigText
 BigTextは、入力された文字を上にあるような巨大な文字に変換するプログラムです。各種フォント、各種記号を使った変換が可能です。目立ちたい通信ユーザには役に立つかもしれません。巨大文字でコメントをいれると、プログラムも読みやすくなります。
第49回 QuickTakeでムービーを作る
(月刊MacPower1996年11月号掲載)
 ★QuickTakeをお持ちのユーザに役立ちます★
 ★プログラムからQuickTakeにアクセスする方法を知りたいプログラマに★
 ★静止画像からムービーを作る方法を知りたいプログラマに★
 サンプルプログラム:049MakeMovieFromQTake
 MakeMovieFromQTakeは、QuickTakeをマックに接続し、設定した周期で自動的にシャッターを切ることによってQuickTimeムービーを作成するというおかしなプログラムです。コマ落とし(超低速映像)ムービーが作れます。
第50回 ビデオ映像から早回しムービーを作る
(月刊MacPower1996年12月号掲載)
 ★QuickTakeをお持ちのユーザに役立ちます★
 ★プログラムからQuickTakeにアクセスする方法を知りたいプログラマに★
 ★静止画像からムービーを作る方法を知りたいプログラマに★
 ★シーケンスグラバーの使い方を知りたいプログラマに★
 サンプルプログラム:050MakeHiSpeedMovie
 MakeHiSpeedMovieは、MakeMovieFromQTakeの入力としてQuickTimeのビデオ取り込み機能(シーケンスグラバー)を追加したプログラムです。ビデオ映像をコマ落としの早回し映像として取り込むことができます。天体/気象映像を早回しで作ると、なかなか気持ちのよい映像が出来上がります。
第51回 フローティングウインドウを使う
(月刊MacPower1997年1月号掲載)
 ★フローティングウインドウを扱いたいプログラマに役立ちます★
 サンプルプログラム:051FloatWinSample
 FloatWinSampleは、フローティングウインドウを実現するサンプルコードです。これからフローティングウインドウを使いたいプログラマの参考になります。
第52回 コントロールストリップを作る
(月刊MacPower1997年3月号掲載)
 ★時計ソフトの好きなユーザに★
 ★コントロールストリップを自作したいプログラマに役立ちます★
 サンプルプログラム:052CSClock
 CSClockは、コントロールバー上に小さなアナログ時計を表示するコントロールストリップモジュールです。とても小さいので、時刻がよくわからない場合もありますが、笑って許してください。これからコントロールストリップモジュールを作ろうと思っているプログラマの参考になります。時計ソフトコレクター(世の中に何人いるのだろうか?)には見逃せない一品です。
第53回 起動アプリを明示指定する

(月刊MacPower1997年4月号掲載)
 ★同一アプリの複数バージョンをインストールしているユーザに★
 ★ファインダのアプリ探索ロジックに興味のあるプログラマに★
 サンプルプログラム:053DefaultApplicationChooser

 ある書類をダブルクリックした時、使いたいアプリケーションの別バージョンが起動してしまって、『チッ』と舌打ちをした経験はありませんか?Excel 4.0を使いたいのに5.0が起動されてしまうとか、Photoshop 3.0Eを使いたいのに3.0Jが起動されてしまうとか。これは、同一クリエイタのプログラムを複数インストールしている場合に生じる問題です。DefaultApplicationChooserは、こういった不愉快な現象を解決するユティリティプログラムです。

第54回 初期設定ファイルをマルチユーザ化する
(月刊MacPower1997年5月号掲載)
 ★1台のマックを複数のユーザが共有している場合に★
 ★ファイルを扱いたいプログラマの参考になります★
 サンプルプログラム:054UserSwitcher 0.9
 プログラマのあなた、ファイルを扱うプログラムを書くときに便利なサンプルコード「MoreFiles」を知っていますか?MoreFilesは、アップル社のマッキントッシュデベロッパテクニカルサポートのプログラマが提供しているサンプルコードで、ファイルやディレクトリを扱う際に便利な関数がたくさん入っています。MoreFilesは、だれがどのように自由に利用しても良いという、とても嬉しいコードなので、今回はこれを利用したプログラム「UserSwitcher 0.9」を作ってみました。UserSwitcher 0.9は、1台のマシンを複数のユーザが共有している場合に、いろいろなアプリケーションの初期設定ファイルをユーザ別に管理するためのユティリティプログラムです。
第55回 キーボードを楽器にしてしまう

(月刊MacPower1997年7月号掲載)
 ★キーボードを楽器代りにして遊びたい方に★
 ★QuickTime Musicを使ってみたいプログラマの参考になります★
 サンプルプログラム:055QTMusic KB

 QuickTimeの最新バージョン(現時点では2.5)には、QuickTime Musical Instruments(日本語版では「QuickTime 音色」)という機能拡張ファイルが付属しています。この機能拡張をインストールしておくと、QuickTimeでMIDI音源を利用することが可能となります。QuickTime MovieにMIDIデータを付加する事により、少ないデータで高品質の音楽を演奏させることができるわけですね。今回は、このQuickTime Musical InstrumentsのMIDI音源発音機能を利用して、マッキントッシュのキーボードを楽器代りに使うプログラム「QTMusic KB」を作ってみました。QTMusic KBで、あなたも今日から指ドラマーになりませんか?

第56回 音楽CDからデータを読み込む

(月刊MacPower1997年8月号掲載)
 ★音楽CDコントロールプログラムのコレクタに★
 ★音楽CDからオーディオデータを取り込んでAIFFにしたいユーザに★
 ★CD-ROMで音楽CDを制御したいプログラマの参考になります★
 ★音楽CDからオーディオデータを取り込みたいプログラマの参考になります★
 サンプルプログラム:056CDAudioImporter

 CD Audio Importer 1.0は、音楽CDからオーディオデータを読み込んでAIFFファイルに保存するプログラムです(一部のマックでは、うまく取り込めないという報告を受けていますが、原因はよくわかりません。ご容赦を)。CD-ROMライタで自分だけの音楽CDを作るときにとても役に立ちます。また、音楽CDの再生制御機能も備えていますので、システム標準付属の『AppleCD オーディオプレーヤ』の代りに使用することもできます。

第57回 Drag and Dropクリップボードを作る

(月刊MacPower1997年9月号掲載)
 ★Drag and Dropマニアの方に★
 ★Drag and Dropを自作プログラムに組み込みたいプログラマの参考になります★
 サンプルプログラム:057DDclip1.0

  DDClip 1.0は、ウインドウ上にあらゆるデータをDrag and Dropして、自由な大きさでレイアウトする事ができるアプリケーションです。PICT、TEXT、hfs(ファイル名)をドロップした時には、それらをウインドウに表示してくれます。配置したデータは、移動したり削除したり、クリップデータの右下部分をドラッグして大きさを変更することも可能。もちろん、他のプログラムや他のウインドウへのDrag and Dropも可能。データを配置したウインドウは、そのままファイルとして保存可能。自動保存オプションや、プログラム起動時の自動オープン機能もあります。

 まあとにかく、Drag and Dropを使うことの多いユーザに役立ちます。また、Drag and Dropを自作のプログラムに組み込んでみたいプログラマの参考になるソースコードが入っていますので、興味のある方はダウンロードしてみてください。

第58回 フォルダの比較検証プログラムを作る

(月刊MacPower1997年10月号掲載)
 ★フォルダ全体を比較検証したいユーザに★
 ★バックアップデータを検証したいユーザに★
 ★CD-ROMに焼いたフォルダを検証したいユーザに★
 ★ファイルの比較検証方法を知りたいプログラマに★
 ★フォルダ内の全ファイル/フォルダに関する情報を入手したいプログラマに★
 ★68Kコードでスタック領域を明示的に確保する方法を知りたいプログラマに★
 サンプルプログラム:058VerifyFolder

  VerifyFolderは、ユーザが指定したふたつのフォルダ(またはファイル)の比較検証を行うプログラムです。指定したフォルダが含む全フォルダおよび全ファイルのサイズや最終変更日付、データの内容を調べて、一致するか否かを教えてくれます。

第59回 CD−ROMの不可視ファイルを表示する機能拡張

(月刊MacPower1997年11月号掲載)
 ★CD-ROM上の不可視ファイル/フォルダをファインダで扱いたいユーザに★
 ★HFSDispatchにパッチをあてたいプログラマの参考に★
 ★機能拡張とコントロールストリップ間でデータをやり取りしたいプログラマの参考に★
 サンプルプログラム:059ShowAllCDFiles

  Show All CD Filesは、機能拡張(INIT)とコントロールストリップモジュール(CS)から成り立っています。Show All CD Files INITは、CD-ROMに焼かれたInvisible(表示されない)フォルダとInvisibleファイルを、ファインダのウインドウに強制的に表示するための機能拡張プログラムです。Show All CD Files CSは、Show All CD Files INITを制御して、CD-ROM上のInvisibleフォルダ(ファイル)を表示したり消したりする事ができるコントロールストリップです。残念ながら、MacOS8では正しく動作しないようです。

第60回 ゴミ箱アイコンを水洗トイレに変更する

(月刊MacPower1997年12月号掲載)
 ★ふつうのゴミ箱に飽き足らないユーザに★
 ★システムリソースをINITで入れ替えたいプログラマの参考に★
 ★INITで音を出したいプログラマの参考に★
 ★PBHDeleteにパッチをあてたいプログラマの参考に★
 サンプルプログラム:060FlushTrash

  Flush Trashは、ゴミ箱のアイコンを水洗トイレに変更し、空にする時に水洗の音を出すという、馬鹿げた機能拡張書類です。Flush Trash内のアイコンやサウンドデータをResEdit等のツールを使って変更すれば、あなたの好みのゴミ箱が作れます。

第61回 シフト+矢印でテキスト選択を可能にする機能拡張

(月刊MacPower1998年1月号掲載)
 ★シフト+矢印の愛好者に★
 ★TextEditにパッチを当てたいプログラマの参考に★
 サンプルプログラム:061ShiftSelection

  ShiftSelectionは、Mac OS標準のテキスト編集ルーチンTextEditの一部を独自関数に置き換える事で、シフト+矢印でテキスト選択領域を変更できるようにするための機能拡張プログラムです。ShiftSelectionをインストールしておけば、ファインダのファイル名変更時や、ダイアログ中のテキスト編集時に、シフト+矢印が使えるようになります。

第62回 動かないダイアログを無理矢理動かす機能拡張

(月刊MacPower1998年2月号掲載)
 ★どんなダイアログでも動かしたのだ、というユーザに★
 ★GNEフィルタに感心のあるプログラマに★
 サンプルプログラム:062MoveDialog

  MoveDialogは、通常は移動できないダイアログ(ファイルを開く/保存時のダイアログや、メッセージ表示のアラートボックス)を強制的に移動する事を可能とする機能拡張プログラムです。ツールボックスイベントマネージャのGNEフィルタ(GetNextEventフィルタ)を使ってイベントをインターセプトするINITを書いてみたいプログラマの参考になります。