问题标签 [amiga]

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 投票
1 回答
381 浏览

assembly - Hires,Amiga Devpac 上的隔行屏幕,带有窗口、菜单和按钮

使用DevPac 3,我需要生成一个以与 DPaint 类似的方式显示图形的应用程序。没有右侧工具栏,只有一个垂直滚动的图像,最好是在 HAM 模式下。

应用摘要:

  • 以硬件允许的尽可能多的颜色打开一个新员工隔行扫描屏幕
  • 我可以操作的基本菜单结构(顶部右键菜单)
  • 一个项目窗口,类似于 DevPac 编辑器
  • 顶部的控制面板类似于 Digita Wordworth 中的控制面板,带有文本框、按钮和选项卡

  • 我还需要一个屏幕外缓冲区,它与屏幕一样宽,并且与内存允许的一样高。

这需要兼容:

  • 工作台 3.0 及以上
  • 68020及以上
  • ECS & AGA 芯片组
  • 0.5..2Mb 芯片内存 + 0..∞ 快速内存

我不知道从哪里开始,任何帮助将不胜感激。

0 投票
1 回答
292 浏览

c - 雇用,Amiga HiSoft C 上的隔行屏幕,带有窗口、菜单和按钮

我是 Amiga 编程新手。

我需要制作一个显示图形的应用程序,该应用程序的显示方式与流行的绘图应用程序相似,Dan Silva 的 Deluxe Paint,由 Electronic Arts 出版。只是一个垂直滚动的图像,最好是在 HAM 模式下。

如何使用 HiSoft C for Amiga 根据屏幕模式请求者对话框的结果打开新屏幕?

要求:

  • 以硬件允许的尽可能多的颜色打开一个新员工隔行扫描屏幕
  • 我可以操作的基本菜单结构(顶部右键菜单)
  • 一个项目窗口,类似于 HiSoft C 编辑器
  • 顶部的控制面板类似于 Digita Wordworth 中的控制面板,带有文本框、按钮和选项卡

  • 我还需要一个屏幕外缓冲区,它与屏幕一样宽,并且与内存允许的一样高。

这需要兼容:

  • 工作台 3.0 及以上
  • 68020及以上
  • ECS & AGA 芯片组
  • 0.5..2Mb 芯片内存 + 0..∞ 快速内存
0 投票
1 回答
343 浏览

algorithm - 解码使用过时语言压缩的文件

我正在尝试解压缩最初使用 AMOS Pro 扩展名压缩的数据文件,这是旧的 Amiga BASIC 语言,随 AMOS Pro 编译器一起提供。我仍然拥有编程语言并且可以访问压缩器和解压缩器,但我正在尝试使用 C 解压缩文件。我最终希望能够在现代硬件上查看这些文件,而不必求助于使用 Amiga先模拟器。

但是,没有关于压缩机如何工作的文档,所以我试图仅通过观察它的行为来对其进行逆向工程。这是我到目前为止所得到的。

这是一个原始文件(ASCII):

这是压缩版本(十六进制):

使用各种文件进行测试给了我一些见解:

  • 最后 4 个字节是原始文件的大小。
  • 该文件似乎用作位流,因此字节边界并不重要(我之所以这么说是因为我已经看到 ASCII 代码出现在一些文件中并且它们未与字节边界对齐)。
  • 文件中的所有位都反向存储。

前 4 个字节似乎代表一个序列长度。在上面的例子中,值0xD811011000二进制的;镜像它(位是相反的),你会得到00011011,它是0x1B十六进制或十进制的 27。这与序列长度匹配。

但是,我没有取得任何进展。这看起来像标准压缩算法吗?我接下来要尝试什么?

0 投票
1 回答
184 浏览

posix - amiga minix , minix st , macminix 和其他 minix1.5 版本 posix 兼容性

我知道 minix 2.0 及更高版本具有 posix 兼容性。我想在 Commodore Amiga、Atari ST 和 i386 cpu 等历史计算机上测试类 unix 操作系统,并运行 pkgsrc、x 窗口系统和 blackbox wm(对于 40Mhz 更高版本)等 posix 兼容应用程序 minix 1.5 是这些系统的最佳操作系统(更好比netbsd),但它不兼容posix。

如何将 posix 移植到非 posix *nix 操作系统?

肿瘤坏死因子

0 投票
2 回答
407 浏览

amiga - 在 Amiga 上生成“大师冥想错误”

任何人都可以发布一些源代码,这些源代码在编译(如有必要)并运行时会在 Amiga 上产生“Guru Meditation Error”。

汇编程序、C 或 ARexx 都可以。

谢谢。

0 投票
1 回答
75 浏览

gcc - amigaos 的交叉编译:'autom4te2.64' 错误

我正在尝试为 AmigaOS3.x 安装交叉编译 Windows64 的环境,但是我有一个我无法解决的问题。当我在 /toolchains/m68k-unknown-amigaos 中运行“make”时,此错误返回:

我用:

  • git://git.netsurf-browser.org/toolchains.git
  • 赛格温 32

是我的 cygwin 遗漏了什么还是其他什么?我真的很讨厌

0 投票
0 回答
98 浏览

gcc - 在 Ubuntu 16.04 上为 Amiga 交叉编译时缺少文件

我正在尝试在 ubuntu 16.04 主机系统上为 AmigaDOS 3.x 构建一些软件,但在链接时出现此错误:

从 .c 到 .o 的构建过程运行良好且没有错误。它只是显示任何错误的链接阶段。我正在使用的链接命令是:

有任何想法吗?

0 投票
3 回答
169 浏览

c - 如何在固定颜色显示器中找到最红的颜色?

我正在为一台名为 Amiga 的传统计算机编写 UI(你们中的一些人可能还记得这些)。它们具有具有固定颜色数量的显示模式 - 2、4、8、16 等,您可以使用 0 到 255 的 RGB 设置其中的任何一个。

因此,在 4 色显示器上,您可以:

  • 颜色 0 R=0, G=0, B=0 (黑色)
  • 颜色 1 R=255,G=255,B=255(白色)
  • 颜色 2 R=128, G=128, B=128(中灰)
  • 颜色 3 R=255,G=0,B=0(红色)

您可以在“正常”显示器上拥有的最大颜色数为 255(有一些特殊的显示模式将其推高,但我不需要担心这些)。

我正在尝试编写一些 C 代码来读取显示器的颜色列表并找到最红、最绿和最蓝的颜色,但我无法理解所涉及的比较。

如果我有 3 个变量 - 红色、绿色和蓝色 - 所有整数都包含当前颜色 rgb vals 和另外 3 个 - stored_red、stored_stored_green 和 stored_blue。

如何编写一个函数来记住与其他颜色相比最红的颜色编号?

我试过了:

但这不起作用。我想我需要研究比率,但无法弄清楚数学。

0 投票
2 回答
923 浏览

assembly - VASM 交叉汇编程序问题 (m68k)

我想知道是否有人可以帮助我解决使用 VASM 汇编程序为 Amiga 编译 MC68000 二进制文件时遇到的烦人问题。问题在于标签地址操作的错误(我认为)实现。
以下是详细信息:

我在上面的代码中尝试做的是将屏幕地址拆分为最重要的字和次要的字,以便为芯片寄存器提供屏幕数据地址(如果您愿意,也可以是向量)。

但是,以这种形式编译代码会给我“非法重定位”错误 39。

我尝试了很多方法来解决这个问题,因为我认为由于屏幕地址很长(即不是单词),“screen>>16”的结果可能会保持很长,因此我不能将这样的值放入单词范围内。

有趣的是,以下代码编译时没有错误,但生成的二进制文件中的两个值都编译为值 0:

作为一种临时的变通方法,我在代码开头的某个地方在运行时计算这些值:

但这显然是荒谬和完全错误的。

任何帮助表示赞赏。

0 投票
0 回答
503 浏览

c - 如何将我的旧 amiga 68000 游戏转换为便携式 c

很久以前,我为 Commodore Amiga 制作了一些游戏。全部在 68000 组装中完成(所以我仍然有来源)

我想将这些游戏移植到现代平台上,而不是托管模拟器,而是考虑将程序集转换为 C,并添加一个 SDL 层。

关于如何处理 68000 -> C 转换部分的任何想法?(不是手动,而是自动。就像在转译器中一样)

我正在考虑创建一堆名称与寄存器相似的变量,然后转换如下内容:

进入

我唯一不确定它是如何工作的就是分支和子程序。我想我可以让它与一个非常大的 switch 语句一起工作,并且有任何标签我都可能跳到一个 case 语句。

有什么想法吗?我可以从中汲取灵感的任何现有技术吗?