問題タブ [mac-classic]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
user-interface - Apple の本当に古い UI デザイン本の名前を見つけようとしている
今朝、Apple (Snow Leopard または FCC) に関するニュース記事を読んでいたときに、Apple (IIRC) の古い本に言及している部分に出くわしました。これには 2 つの部分があり、最初の部分は UI だけでした。デザイン。その本を手に入れようとしたのですが、記事へのリンクを失ったようです。この本は誰かにベルを鳴らしますか?もしそうなら、タイトルは何ですか? (この本は 2000 年より前、おそらく 1990 年より前に出版されたので、誰かがこの本を覚えているなら、おめでとう!、あなたは素晴らしい記憶を持っています)。
macos - Mac OS Classic の開発に関するリソースはどこで入手できますか?
私は最近退屈して古い Mac OS Classic エミュレーターを起動し、そのシステム用の昔ながらのアプリケーションを書くことに懐かしくなりました。だから、私の質問:
- Classic をターゲットにできる開発ツールはどこで入手できますか? (これはただの楽しみのためなので、理想的には無料ですが、eBay で CodeWarrior の中古バージョンを入手するのが最善の方法である場合は、それで構いません。)
- Carbon/System Toolbox を推測して確認する必要がないように、少なくとも参考資料はどこで入手できますか?
- 私が行き詰まったときに古い学校の Mac に関する質問に答えてくれるフォーラムがまだ開催されていますか?
これは純粋に楽しむためのものです。知っている。
legacy-code - より高速なリモート マシンで従来の Mac コードを実行するにはどうすればよいですか?
非常に緊急に実行する必要があるいくつかのレガシー ソフトウェアを継承しました。これは Lisp で書かれており、ソース コードはありません (開発者は亡くなっています)。Mac OS 9 でしか動作しません (いくつかのバグにより、新しいものでは実行できないようです)。実行するにはライセンス ドングルが必要です。
ソフトウェアを実行する古いマシンがありますが、それは恐竜です。理想的には、このソリューションはリモート アクセスも提供します。
私が最初に考えたのは、新しいマシンまたは VPS で何らかのエミュレーターを使用することでした。しかし、これらが USB ドングルでどのように機能するかについて懸念があります。古いコードで作業するのは面倒だということを受け入れて、それを続けるよりも良い解決策を提案できる人はいますか?
retro-computing - MPW ツールのメイン シンボルの構造は何ですか?
この質問は、数年前から廃止されているMac OS Classicに関するものです。誰かがまだそれについて何か知っていることを願っています!
ここ数週間、PEF実行可能パーサーを作成しており、PowerPC インタープリターをプラグインしました。ある程度の魔法があれば、Mac OS X でいくつかの Mac OS 9 プログラムを (ある程度) 実行できると思います。実際、小さなアプリケーションでテストを開始する準備ができました。
それを支援するために、古いバージョンの Mac OS を SheepShaver 内にインストールし、(現在は無料の) MPW Tools 1をダウンロードし、「hello world」MPW ツールを構築しました ( puts("Hello World!")
Mac OS 用にコンパイルされたものを除く、従来の C プログラムのみ)。 9)。
ビルドすると、コード セクションとデータ セクションを含むプログラムが生成されます。実行可能ファイルのメイン シンボル (ローダー セクションのヘッダーで指定) にジャンプできると思っていましたが、大きな驚きを覚えました。コンパイラはメイン シンボルをデータ セクション内に配置しました。
明らかに、データ セクションには実行可能なコードはありません。
Mac OS ランタイム アーキテクチャのドキュメント (1997 年に発行され、驚くべきことに今も Apple の Web サイトに掲載されています) に戻ると、これは完全に合法であることがわかりました。
メイン シンボルをデータ構造として使用する
前述のように、メイン シンボルはルーチンを指す必要はありませんが、代わりにデータ ブロックを指すことができます。この事実をプラグインに利用すると、メイン シンボルによって参照されるデータ ブロックにプラグインに関する重要な情報を含めることができます。この方法でメイン シンボルを使用すると、いくつかの利点があります。
- コード フラグメント マネージャーは、プログラムでフラグメントを準備するときにメイン シンボルのアドレスを返すため、FindSymbol を呼び出す必要はありません。
- プラグインのエクスポートの特定の名前を予約して文書化する必要はありません。
ただし、特定のシンボル名がないということは、プラグインの目的がそれほど明白ではないことを意味します。プラグインは、その名前、アイコン、またはそのシンボルに関する情報をメイン シンボル データ構造に保存できます。この方法でシンボリック情報を格納すると、FindSymbol を複数回呼び出す必要がなくなります。
したがって、私の結論は、MPW ツールは MPW シェル内のプラグインとして実行され、実行可能ファイルのメイン シンボルは、開始方法を指示するデータ構造を指しているということです。
しかし、それはまだそのデータ構造に何があるかを理解するのに役立たず、その16進ダンプを見るだけではあまり有益ではありませんでした(コンパイラがこの特定のプログラム__start
のアドレスをどこに置いたかはわかりますが、それだけでは十分ではありませんジェネリック MPW シェル「置換」を作成します)。そして明らかに、このトピックに関する最も貴重な情報源は、2004 年の Mac OS 9 で姿を消したようです。
では、MPW ツールのメイン シンボルが指すデータ構造の形式は何ですか?
1. どうやら、Apple はごく最近、私が MPW Tools を入手した FTP サーバーのプラグを抜いたようです。「MPW_GM.img.bin」をグーグルで検索すると、いくつかの代替手段が見つかります)。
c - Mac OS 7-9 - C プログラミング
Mac OS System 7 から OS 9 で、標準の Unix 機能に依存する C 機能がいくつ動作するか興味があります。このプラットフォームでの開発経験はありませんが、標準のコマンド ラインもどこにもないことはわかっています。動作するストリーム。コマンドラインがない場合、コマンドライン引数はありますか? 環境変数はどうですか?
昔ながらの Mac OS プログラミング ガイドを探してみましたが、驚くほど見つけにくいものです。
retro-computing - Mac OS Classicランタイムに関する参考資料は残っていますか?
私はMacOSClassicランタイムの実装に取り組んでおり、OSXでClassicプログラムを再度実行しています。このプロジェクトには、PowerPCエミュレーター、PEF実行可能リンカー、およびネイティブ(x86)コードを呼び出す可能性が含まれています。
エミュレーターとリンカーはうまく機能しているように見えるので、Mac OS Classicライブラリーの(再)実装に焦点を移しました。現在、「エミュレータ」を使用してMPWツールを実行しようとしています。AppleがサーバーからMPWShellをプルして、SheepShaver内で実行する数時間前に、文字通りMPW Shellのコピーを取得し、一般的な「HelloWorld!」をコンパイルしました。プログラムと私はそれを正常に実行することができます。
ただし、互換性に関する限り、これはほぼ同じです。Unmangleプログラムを実行しようとする_IntEnv
と__NubAt3
、2つのStdCLibエクスポートグローバルにアクセスしようとしていることがわかりました。これについては、ドキュメントが残っていないようです。(Googleには、Mac OS Xの初期のリンケージの問題に関するAppleメーリングリストの結果がまだいくつかあります。BingとYahoo!は結果を返しません。)
私は、ドキュメントの欠如が特に動揺していることに気づきました。クラシックヘッダーファイルを使用してグローバルのレイアウトを推測したり、逆アセンブルを使用したプログラムでグローバルがどのように使用されているかを推測できる場合もありますが、実際には効率的ではなく、正しく理解できたとは言えません。
また、StdCLibの大部分を正しく取得したとしても、ある時点で他のライブラリに関するドキュメントが必要になります。
Mac OS Classicランタイムに関するドキュメントはどこにありますか?
core-foundation - CFStringをMPWのSIOWアプリにリンクする
私はMacintoshProgrammersWorkshopを使ってMacOS9での開発をいじっています。CImportsフォルダーに、最愛のCoreFoundation文字列を含むCFString.hがあることに気付きました。
stdioベースのhelloworldを構築して実行することができましたが、またはなどのCFString関数を使用しようとするとCFSTR("my string")
、CFStringGetLength(myStr)
リンカーエラーが発生します。
リンク用の正しいライブラリを見つけるようにMPWを構成するにはどうすればよいですか?また、Cを知っているが、MPWにアプローチしたことのない開発者向けのリソースはありますか?
このチュートリアルに従ってこのポイントに到達しました:https ://sites.google.com/site/chuzzum/macintosh-c-programming-guide/macintosh-development-environments/getting-started-with-mpw
objective-c - Macintosh ファイルの属性の検索
私の問題のユースケースを説明します。
たまたま とFinder 7.5.5
古いFinder 8.1
Mac OS バージョンの 2 つのファイルがあります。
使用するCmd + I
と、次の情報が得られます。
と
これらの情報をプログラムで抽出したいと考えています。ただし、どこで開催されているかさえわかりません。
小さなObjective-Cプロジェクト(Foundation)で、7.5
ファイルに対して次のことを行いました。
これは出力です:
ご覧のとおり、バージョンや著作権への言及はありません。「アプリのコンテンツ」を開くことができません。レガシー アプリケーションには明らかに存在しないためです。
それで、それが拡張属性である可能性があると考えたので、コンソールを取得してこれを行いました:
次に、それぞれに次のエントリを見つけました。
特に開発では、拡張属性を実際に使用したことはありません。だから、ここで私はいくつかの光が必要です。バージョン番号が異なる位置にあることがわかります。OSX Finder のように、この情報を直接取得するにはどうすればよいですか? 手動で行うのに数分かかりましたが、バージョンがどのように保存されているかまだわかりません。この情報を見つけることができる他の場所はありますか、それとも正しい方向に進んでいますか?
これを行う目的の C または C ソリューションはありますか?
助けてくれてありがとう!
もチェックしてみrsrc
ました。バージョン番号の直前にイースターエッグを発見。