题
我想为 Amiga 编写一个应用程序,只是为了好玩!
请有人根据以下内容发布一步一步的操作方法?
- 我到底应该使用什么编程工具,是否已经安装了?
- 我是否仅限于纯文本编辑器,或者是否有可用的 IDE 和调试工具?
- 如果尚未安装任何工具,如何做到这一点?有免费的吗?
- 我想学习一门传统的 Amiga 语言,你能推荐一门吗?
- 我应该用什么来编译你建议的语言?
- 请您推荐我可以用来调试建议语言的工具吗?
- 是否有我应该注意的库,例如 GUI 库?
有些事情需要注意...
- 我正在 WinUAE 模拟器中运行 Workbench 3.1。
- 在 Workbench 中,我可以访问 Windows 硬盘上的文件。
- 如果可能的话,我想从工作台编码和编译它。
- 我在 A1200 模式下运行 WinUAE,不确定这是否重要。
- 已经安装了一个名为 MEmacs 的应用程序。
- 我很了解 C++ 和 C#,也许有类似的 Amiga 语言。
- 我知道您可以使用 C 和 C++ 进行编码,但我想学习一门新语言。
更新:
我已经回答了我自己的问题,但请提供更多答案,因为我打算扩展我的答案。感谢迄今为止所做的所有贡献,你们提供了很大的帮助!
解决方案
笔记: 请不要拖延回答;这是一个正在进行的线程。
感谢您迄今为止的所有回答:-)
花了几天时间才搞清楚。这些说明适用于 AMOS Pro,请随时发布您自己的不同语言的答案,或更新此答案(这是一个社区 wiki)。
工作台使用说明:
- 安装 Amiga Forever 2008(增强版包括 Workbench 3.1)。
- 使用 Amiga Forever 或 WinUAE 作为模拟器(我更喜欢 WinUAE)。
安装 Amiga Workbench 3.1 到定制硬盘.- 如果使用 WinUEA,只需使用 af_3x 配置文件(与 Amiga Forever 一起安装)。
- 熟悉 Workbench 和 Amiga Shell(请参阅 资源).
AMOS Pro 说明:
AMOS Pro 是一款 IDE,看起来有点像老黑客电影中的东西,而且您甚至可以打开电影中听到的那些令人恼火的声音。那不是很好吗?不管怎样,继续看如何...
- 获取AMOSPro的磁盘(v2.00共有6块磁盘)。
- 插入AMOSPro_系统盘并 按照说明安装 AMOS Pro.
- 安装后,打开 AMOS_Pro 目录,然后运行 AMOSPro。
- 如果你不知道AMOS, 学习一些 AMOS 编码基础知识.
- 类型:
Print "Hello world!"
- 按 F1 运行(与 AMOS 徽标右侧的红色三角形相同)。
- 欢喜为
"Hello world!"
以橙色背景上的白色文本显示。 - 去做: 了解如何将其编译为可以从 Workbench 运行的二进制文件 (?)。
AMOS 专业版:你好世界!http://img7.imageshack.us/img7/7867/001tpe.png
这里还有一些有趣的 AMOS 代码。
Input "Who are you? ";S2$
S1$="Oh, hello "
S3$=", nice to see you!"
Print S1$+S2$+S3$
阿米加提示:
- [左Amiga]是 视窗 键,[Right Amiga] 是 上下文菜单 钥匙。
- 按[左Amiga]+A 在AMOS Pro 和Workbench 之间切换。
- 英式 [@ '] 键产生 # 或 @(shift)字符。
- 英国[〜#]密钥会产生或| (Shift)字符。
- 英国[Ø
] key produces either the ' or ~ (shift) or
(替代)字符。
资源:
- 阿莫斯工厂 - AMOS 论坛和资源
- 永远的阿米加 - 我选择的 Amiga 模拟器包(包括 WinUAE)
- *
绿色阿米加外星人指南:工作台3.1 - 工作台定制 - Amiga 适合新手的东西 - Amiga Shell 和 Workbench 的提示
- Amiga操作系统开发 - Amiga.org 上的论坛类别
*使用 WinUAE Amiga Forever 配置 (af_3x) 时不需要。
去做:
我将尝试为每种语言编写如下指南。
其他提示
这一定是最奇怪但同时又非常鼓舞人心的问题。
请原谅我,作为一名前 Amiga 开发人员,我已经放弃了这个平台。对我来说,现在写点东西的想法是相当抽象的。
然而,出于对曾经我认为可以成为第一的平台的责任,我必须勤奋地回答你们的问题。
编程工具;68k 汇编程序或带有 SAS/C 的 C
我个人一直用 天鹅座埃德 用于编辑,我不知道有任何 IDE。我认为 SAS/C 有某种模糊的 IDE,但我不能确定,因为我只使用了源代码级调试器(当时对我来说是一个非常新的东西)。
在免费工具方面,我参与了在 Amiga 上提供 GCC 和库的工作,但我不知道这个项目发生了什么。谷仓里我的 A3000 上可能有东西,但没有理由去查明。
唯一传统的 Amiga 语言是本机 68k 汇编程序。但是,只要您详细阅读了 RKM 的 15",您就可以使用 C 做很多事情。
顺便说一句,阿莫斯是垃圾。当时的玩具。
为了调试,我只使用过 SAS/C(或正式名称为 Lattice)。
是否有我应该注意的库,例如 GUI 库?
很多。为了在 Amiga 上有效地编码,您确实需要了解操作系统各层的许多内容是如何结合在一起的。当时,这是互联网出现之前的最大障碍,因为信息和知识的获取要困难得多。
Workbench 3.1 是最好的。如果我能记住这些细节的话,我可能会让你感到厌烦。
与 C++ 最相似的 Amiga 语言是 C,了解 C 只能让你了解其中的一小部分,因为问题在于系统调用/库的细节。
如果你想学习一门新语言,那么也许不要选择一个几乎死了的平台。如果我有时间,我会学习 lua。
即使现在,阿莫斯仍然是垃圾。
您当然应该使用模拟器——运行 UAE 的现代 PC 与 A1200 是天壤之别。您可以以良好的高屏幕分辨率运行,CPU 性能也可以提高几个数量级(如果您希望它更快,当然,所有这些都是可选的)。哦,如果你愿意的话,你实际上可以通过模拟器提供的 Amiga 库访问 PC 硬件。
如果您想接触“硬件”,Amiga 参考手册将是您的起点。Devpac 是大多数人选择的汇编器。
有一些 C 编译器,以及至少一种 C++ 编译器,SAS/C。这是更多的链接 Amiga编译器
如果您想学习一门新语言,那么 Modula-2 可能是一个选择,但实际上 C 才是大多数人的首选语言。操作系统本身是用 C 编写的(至少从 2.0 开始 - 在此之前的 BCPL),并且所有库都提供了用于访问它们的 C 头文件。
汇编语言在游戏和演示中也非常流行,我个人可以保证这非常有趣。这方面的好书:
另一种有趣的选择可能是相当强大的 雷克斯 脚本语言。您可以用它做很多事情,例如通过其他应用程序的“ARexx 端口”控制它们以访问其功能。比其他选项更高级别,但很容易让它做有趣的事情。
有的是 Amiga 开发者 CD 2.1 其中包含所需的一切:所有 SDK(包括 1.3、2.0 和 3.1 的经典 SDK,以及据我所知也可以在 3.9 上使用的 3.5 的较新 SDK)和一个合适的 68k C 编译器。
一些供应商仍然可以提供它,我记得用它写了一些东西。它是C,所以它应该相当简单。
虽然不支持 AmigaOS4,但话又说回来,Workbench 3.1 是最后一个真正的 AmigaOS。
不要忘记 ARexx,它随大多数 Amiga 安装一起提供。它是一种真正美妙的语言,具有令人惊讶的可读性和易于编写性。Amiga 上的大多数现有应用程序都具有 ARexx 挂钩,因此您可以轻松高效地从许多较小的应用程序中拼凑出较大的应用程序。ARexx 我最喜欢的方面之一是它的多功能字符串处理。尽管它是一种解释性语言,但它的速度却惊人地快,特别是如果您充分利用它与其他程序的连接来为其执行低级操作。
我应该使用哪些编程工具,是否已经安装了?
Basic 和 AREXX 是唯一预先打包的语言,即使如此,BASIC 也有两种方言(ABasic 和 AmigaBasic)。您需要查看 Fred Fish 系列或 AmiNet 以获取更多工具。
要购买商业编译器,请尝试 Vesalia Online 上提供的 Amiga Developers CD,尽管可能还有其他编译器。
我是否仅限于纯文本编辑器,还是有IDE和调试工具可用?
您几乎回到了编辑-保存-编译-链接-运行-崩溃-为什么崩溃-doh-修复-编辑循环,IDE 并不容易使用。我会看看 DME(Dillon 的宏编辑器)之类的东西,也可以在 Fred Fish 系列或 AmiNet 上找到(http://wuarchive.wustl.edu/pub/aminet/)。它提供了一些有帮助的基本宏观构造设施。
如果没有安装工具,该如何完成?有免费的吗?
是的。还是 Fred Fish 或 AmiNet。
我想学习一种传统的Amiga语言,您能推荐一种吗?
德拉科。它的作者是克里斯·格雷。它有点“原始”,但它应该为您提供所需的一切,包括正确的绑定和常量。该语言的编译和运行速度与 C 相当。
我应该用什么来编译您建议的语言?
Manx 或 Lattice C 是当时的 C 编译器(如果你能找到它们,祝你好运),Manx 倾向于 16 位,而 Lattice 则倾向于 32 位。有一些小型的基于 C 的编译器。有 68k 程序集(恕我直言,neato 指令集)、Draco、pascal 方言、可能是 Modula-2,以及 DICE(免费的 C 编译器,但您正在寻找其他东西)...
请您建议我可能使用的工具来调试建议的语言吗?
同样,商业工具少之又少,您将不得不挖掘公共领域档案才能找到任何东西。
我应该知道任何图书馆,例如GUI库吗?
这些库都是内置的。intuition.library 是提供基本窗口支持的库的名称。gfx.library 将为您提供高级基元,layers.library 将为您提供处理图形的独特位平面方法的支持。在你做到这一点之前,你需要看看 执行, ,这是操作系统的核心和灵魂。它提供抢占式多任务、内置链表原语、消息传递原语、IO原语等。并在整个系统中被大量重用。如果您了解 exec,您就会了解系统其余部分的低级内部结构。
请记住,系统的状态看起来更像嵌入式游戏机,因为没有内存保护、SMP 支持等。由于第一台 Amiga 发货之前引入的设计限制,所有这些东西都无法轻易添加。我似乎记得这个问题围绕着它如何处理多个处理器和内存保护,因为整个微内核都在非特权 CPU 模式下运行。
最后但并非最不重要的一点是,神奇的数字是 4,它是一个内存地址。该地址是指向 exec 的指针(它不仅是一个微内核,也是一个库),使用它您可以通过 OpenLibrary() 调用引导到系统的其余部分。无法找到的库将通过 AmigaDOS 自动从磁盘加载。这就是 Amiga 处理可移植代码问题的方式 - 所有代码都是使用偏移量写入指向库“基址”的指针,并且除了地址 4 之外没有固定地址。每个库都有一个每个条目 6 字节的调用表(一条跳转指令),然后引导到正确的入口点。只要您的“标题”格式正确,编写自己的库就很容易。设备驱动程序“借用”了库的结构,并使用相同的概念来提供默认的 I/O 处理程序。
抱歉,如果名字稍有错误,这些信息是我近 20 年前就想到的……
可能还有其他信息途径。 有人在维基上做出了努力 通过一些搜索,我相信您可以找到更多信息。
有些事情需要注意...
我正在从Winuae仿真器中运行Workbench 3.1。
凉爽的。你已经准备好了。那是最后一个伟大的“经典”工作台。
从Workbench中,我可以从Windows硬盘驱动器访问文件。
这会有所帮助,但你会想尽可能地“本土化”。
如果可能的话,我想从Workbench中进行编码并进行编译。
往上看。
我正在以A1200模式运行Winuae,不确定这是否重要。
这是您正在模拟的硬件模型;这是一台不错的预算机器,但如果可能的话,尝试将其设置为 A3000,在 Commodore 遇到麻烦之前,这是一台不错的高端机器。
已经安装了一个名为memacs的应用程序。
如果您喜欢 Emacs,请尝试一下...否则我会看看一些本机工具。
非常了解C ++和C#,也许也有类似的Amiga语言。我知道您可以与C和C ++进行编码,但我想学习一种新语言。
那么德拉科就适合你。它具有大部分库的绑定,编译干净,并且由于它与特定的硬件平台绑定,因此它正式成为“死”语言。非常针对Amiga。:)
祝你好运!让大家知道结果如何...
嘿,如果你想用 Amiga 编程来娱乐,这里有一个 新的 一款将震撼您的世界的软件:
来自 Airsoft Softwair 的好莱坞 4.5
它是一种非常简单有趣的语言,主要针对多媒体演示。它是一种基于 Lua 语法的脚本语言,但它也让我想起了一些古老的 Amos,因为它有许多强大的 gfx 和声音功能。它非常易于使用,附带优秀的文档和许多示例。此外,它是多平台的,解释器/编译器适用于所有不同的 Amiga 平台(包括。OS 3.1、AROS、MorphOS...),完成的编译脚本甚至可以在 Windows 和 Mac OS X 上轻松运行!
您可能会觉得 89 欧元有点贵,但我可以告诉您,如果您想享受有趣的编程,那么这是值得投资的,而且我在任何其他平台上都没有见过类似的东西!
您可能想测试我的创作之一:-)。这是一款由真人演员参与的格斗游戏,在好莱坞制作,Windows 版本可以在这里下载:
Amigas 有一个大型编程工具,与圣经中的某个人同名......
阿莫斯
就是这样。
http://en.wikipedia.org/wiki/AmigaE
这就像 C 语言,但没有指针。我家里的某个地方还保存着我的系统 API 书籍。
我曾担任 Amiga 程序员一段时间,并且只使用 68k 汇编语言。Amiga 参考手册是圣经,不可或缺。至于有趣的程序,我怀疑大多数都在 Amiga 上被搞死了……只要搜索您有的任何想法,我相信您会找到现有的代码。
玩碎块对我来说总是很有趣,但这就是我正在工作的领域。
我确信您可以找到其他人提到的模拟器,但我想补充一点,Modula-2 在 Amiga 程序员中相当受欢迎。
正如前面提到的,AMOS 是一种相当不错的基本方言,尽管我可能会看看 Blitz Basic。当然,或者使用 Asm-ONE 直接进行 68k 组装。Asm-One 是一种 IDE,只是不要指望 Visual Studio 级别的支持工具。
SAS/C 是我在 Amiga 平台上选择的武器,尽管也有其他 C 编译器的端口。