问题标签 [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.

0 投票
3 回答
280 浏览

user-interface - 想找一本很老的苹果UI设计书的名字

今天早上,我在看一篇关于 Apple(Snow Leopard 或 FCC)的新闻文章,我看到一个部分提到了 Apple 的一本旧书(IIRC),它有两个部分,第一部分只是关于 UI设计。我试图获得那本书的副本,但似乎我丢失了该文章的链接。这本书是否与任何人一起敲响了警钟,如果有,书名是什么?(这本书出版于 2000 年之前,甚至可能在 1990 年之前,所以如果有人还记得这本书,恭喜!,你的记忆力很好)。

0 投票
5 回答
4667 浏览

macos - 我在哪里可以获得用于 Mac OS Classic 开发的资源?

我最近感到无聊并启动了我的旧 Mac OS Classic 模拟器,然后开始怀念为系统编写老式应用程序。所以,我的问题:

  1. 我在哪里可以获得仍然可以针对 Classic 的开发工具?(理想情况下是免费的,因为这只是为了好玩,但如果在 eBay 上获取使用过的 CodeWarrior 版本是最好的方法,那就这样吧。)
  2. 我在哪里可以获得至少参考资料,这样我就不必猜测和检查 Carbon/系统工具箱的方式了?
  3. 是否有任何论坛仍在运行,可以在我遇到困难时回答老式 Mac 问题?

这纯粹是为了好玩,所以不要担心这是多么不切实际。我知道。

0 投票
1 回答
183 浏览

legacy-code - 如何在更快的远程机器上运行遗留的 Mac 代码?

我们继承了一些我们急需运行的遗留软件。它是用 Lisp 编写的,我们没有源代码(开发人员已死),只能在 Mac OS 9 上运行(一些错误似乎阻止它在更新的任何东西上运行)并且需要许可证加密狗才能运行。

我们有一台可以运行软件的旧机器,但它是恐龙。理想情况下,该解决方案还将提供远程访问。

我的第一个想法是在较新的机器上使用某种模拟器,甚至是 VPS。但我担心这些将如何与 USB 加密狗一起使用。谁能提出一个比接受使用旧代码很糟糕并继续使用它更好的解决方案?

0 投票
1 回答
159 浏览

retro-computing - MPW 工具的主要符号的结构是什么?

这个问题是关于 Mac OS Classic的,它已经过时了好几年了。我希望有人仍然对此有所了解!

在过去的几周里,我一直在构建一个PEF 可执行解析器,并且我已经插入了一个 PowerPC 解释器。借助大量的魔法,我希望能够(在某种程度上)在 Mac OS X 下运行一些 Mac OS 9 程序。事实上,我现在已经准备好开始使用小型应用程序进行测试了。

为了帮助我解决这个问题,我在 SheepShaver 中安装了旧版本的 Mac OS 并下载了(现在免费的) MPW Tools 1,我构建了一个“hello world” MPW 工具(只是你的经典puts("Hello World!")C 程序,除了为 Mac OS 编译9)。

构建后,它会生成一个带有代码段和数据段的程序。我希望我能够直接跳转到可执行文件的主符号(在加载程序部分的标题中指定),但我大吃一惊:编译器将主符号放在数据部分中。

显然,数据部分中没有可执行代码。

回到Mac OS Runtime Architectures文档(1997 年发布,令人惊讶的是仍然在 Apple 的网站上),我发现这是完全合法的:

使用主符号作为数据结构

如前所述,主符号不必指向例程,而是可以指向数据块。您可以将此事实用于插件,其中主要符号引用的数据块可以包含有关插件的基本信息。以这种方式使用主符号有几个优点:

  • 当您以编程方式准备片段时,代码片段管理器会返回主符号的地址,因此您无需调用 FindSymbol。
  • 您不必为插件保留和记录导出的特定名称。

但是,没有特定的符号名称意味着插件的用途并不那么明显。插件可以将其名称、图标或有关其符号的信息存储在主符号数据结构中。以这种方式存储符号信息消除了对多个 FindSymbol 调用的需要。

因此,我的结论是 MPW 工具在 MPW shell 内作为插件运行,并且可执行文件的主要符号指向一些应该告诉它如何启动的数据结构。

但这仍然不能帮助我弄清楚该数据结构中的内容,并且仅查看其十六进制转储并不是很有启发性(我知道编译器将这个特定程序__start的地址放在哪里,但这绝对不足以做一个通用的 MPW 外壳“替换”)。显然,关于这个主题的最有价值的信息来源似乎在 2004 年随着 Mac OS 9 消失了。

那么,一个 MPW 工具的主符号所指向的数据结构的格式是什么?

1. 显然,Apple 最近取消了我从中获取 MPW 工具的 FTP 服务器的插件,因此它可能不再可用;虽然谷歌搜索“MPW_GM.img.bin”确实找到了一些替代品)。

0 投票
2 回答
3343 浏览

c - Mac OS 7-9 - C 编程

我很好奇有多少依赖于标准 Unix 功能的 C 功能可以在 Mac OS System 7 到 OS 9 上运行。我没有任何平台开发经验,但我知道标准没有命令行,也没有任何地方流工作。没有命令行是否有任何命令行参数?环境变量呢?

我确实尝试过寻找经典的 Mac OS 编程指南,但它们出奇地难找。

0 投票
1 回答
146 浏览

retro-computing - Mac OS Classic 运行时是否有一些参考资料?

我正在研究 Mac OS Classic 运行时的实现,以便再次在 OS X 上运行 Classic 程序。该项目包括一个 PowerPC 仿真器、一个 PEF 可执行链接器以及调用本机 (x86) 代码的可能性。

模拟器和链接器似乎运行良好,所以我将注意力转移到(重新)实现 Mac OS Classic 库上。我目前正在尝试用我的“模拟器”运行 MPW 工具;在 Apple 从其服务器中提取 MPW Shell 并在 SheepShaver 中运行它之前的几个小时,我获取了一份 MPW Shell 的副本,我编译了您的通用“Hello World!”。程序,我能够成功运行它。

但是,就兼容性而言,这差不多。当我尝试运行 Unmangle 程序时,我发现它正在尝试访问_IntEnv__NubAt3,两个 StdCLib 导出的全局变量,显然没有文档。(谷歌仍然有一些苹果邮件列表结果,用于 Mac OS X 早期的链接问题;必应和雅虎都没有结果。)

我发现缺乏文档特别令人不安。我有时可以通过 Classic 头文件猜测全局变量的布局,甚至可以猜测它们在反汇编程序中的使用方式,但这并不是很有效,没有什么可以告诉我我做对了。

即使我得到了大部分 StdCLib 的正确性,在某些时候我仍然需要有关其他库的文档。

在哪里可以找到有关 Mac OS Classic 运行时的文档?

0 投票
1 回答
123 浏览

core-foundation - 将 CFString 与 MPW 中的 SIOW 应用程序链接

我正在使用 Macintosh Programmers Workshop 在 Mac OS 9 上进行开发。我注意到在 CImports 文件夹中有一个 CFString.h 与我们心爱的核心基础字符串。

我已经设法构建并运行了一个基于 stdio 的 hello world,但是当我尝试使用 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

0 投票
1 回答
501 浏览

applescript - OS X Lion Automator 在经典模式下保存脚本?

我有一个我编写的自动化应用程序,它使用一些基本的自动化工具并包含在一些 AppleScript 中,它可以正确保存并在我的计算机上运行(我运行的是 OS X 10.7.5)。我将它通过电子邮件发送给运行 10.8.4 的同事,当她试图打开它时出现错误:据You can't open the application "MyApp" because the Classic environment is no longer supported. 我了解,经典支持在早期版本的 Mac OS 中下降,我不明白为什么它应该给我错误今天,也不知道为什么我在 Lion 机器上编写的程序会保存在这么旧的状态。我正在运行的 AppleScripts 会不会有问题?或者我保存应用程序的方式?

编辑
我注意到,当我尝试下载我通过电子邮件发送的副本并运行它时,我在我的机器上遇到了同样的问题。它可以从我的计算机上正常启动,但是从我的电子邮件中下载的版本也有同样的问题。

0 投票
3 回答
651 浏览

macos - OS X 中的二进制转换器工具/脚本(从旧 PostScript 字体文件生成 webfont)?

有人告诉我,我需要使用Mac Binary Converter将 postscript 字体转换为 macbinary .bin 文件,以便与fontsquirrel一起使用。

我通常对命令行很满意(主要使用 Ruby gems 和 ssh),但是如何将此工具添加到我的命令行并使用它?它需要先坐在我的路径上吗?

非常感谢任何帮助

0 投票
1 回答
379 浏览

objective-c - 查找 Macintosh 文件的属性

我将说明我的问题的一个用例。

我这里有两个文件,它们恰好是Finder 7.5.5旧版Finder 8.1Mac OS 版本。

如果我使用Cmd + I我会得到以下信息:

我想以编程方式提取这些信息。但是,我什至不确定它在哪里举行。

在一个小的 Objective-C 项目(Foundation)中,我对文件做了以下7.5操作:

这是输出:

如您所见,没有提及版本或版权。我无法打开“应用程序的内容”,因为旧应用程序显然没有它。

所以我认为它可能是一个扩展属性,所以我得到了控制台并这样做了:

然后我在每个条目中都找到了这些条目:

我从来没有真正使用过扩展属性,特别是在开发中。所以在这里我需要一些光。我看到版本号在不同的位置。我怎样才能像 OSX Finder 一样直接获取这些信息?我花了几分钟手动完成,但我仍然不清楚版本是如何存储的。还有其他地方我可以找到这些信息还是我朝着正确的方向前进?

是否有 Objective-C 或 C 解决方案可以做到这一点,所以我不需要重新发明轮子?

感谢您的帮助!

文件信息窗口

我也试过检查rsrc。在版本号之前发现了一个彩蛋。

在此处输入图像描述