标签: amiga

如何编写和编译Amiga应用程序?

我想为Amiga编写一个应用程序,只是为了好玩!

请有人根据以下内容逐步发布howto吗?

  • 究竟我应该使用哪些编程工具,是否已经安装了?
  • 我是否仅限于纯文本编辑器,还是有IDE和调试工具可用?
  • 如果没有安装任何工具,这怎么办?有免费的吗?
  • 我想学习传统的Amiga语言,你能推荐一个吗?
  • 我应该用什么来编译你建议的语言?
  • 请问您可以建议我用来调试建议语言的工具吗?
  • 有没有我应该注意的库,比如GUI库?

有些事要注意......

  • 我正在WinUAE模拟器中运行Workbench 3.1.
  • 从Workbench,我可以从我的Windows硬盘访问文件.
  • 如果可能的话,我想从Workbench编写代码并编译它.
  • 我在A1200模式下运行WinUAE,不确定是否重要.
  • 已经安装了一个名为MEmacs的应用程序.
  • 我非常了解C++和C#,也许有类似的Amiga语言.
  • 我知道你可以用C和C++编写代码,但我想学习一门新语言.

更新:

我已经回答了我自己的问题,但在我打算扩展答案时,请提供更多答案.感谢迄今为止所做的一切,您一直非常乐于助人!

amiga

43
推荐指数
13
解决办法
1万
查看次数

帮助68k组装 - 跳桌?

我正在为IDA的大型Amiga项目进行逆向工程,我取得了很大的进步.但是,有一些我无法弄清楚的东西.也就是说,我发现了几个使用我认为是"跳转表"的子程序 - 但我无法弄清楚它们是如何工作的.有人有建议吗?

        moveq   #0,d0
        move.b  d7,d0       ; set D0 to a byte from CTRL
        subq.w  #1,d0       ; subtract 1 from it
        blt.w   finish_29ABA    ; if D0 is less than 1, branch
        cmpi.w  #$16,d0
        bge.w   finish_29ABA    ; if D0 is greater than or equal to 16, branch
        add.w   d0,d0       ; otherwise, double D0
        move.w  dword_29918(pc,d0.w),d0
        jmp dword_29918+2(pc,d0.w)
; ---------------------------------------------------------------------------
dword_29918:    dc.l $400036        ; CODE XREF: serialCtrlCmd+E0j
        dc.l $360036
        dc.l $3601A0
        dc.l $3601A0
        dc.l $1A001A0
        dc.l $360040
        dc.l $2A01A0
        dc.l $400036 …
Run Code Online (Sandbox Code Playgroud)

assembly 68000 machine-language amiga

12
推荐指数
1
解决办法
2510
查看次数

尝试写入块时,在iffw库中获取错误

当我尝试使用EA iffw.c库来编写IFF文件时,我无法通过StartWGroup()调用.它在IFFWriteBytes()中失败,因为context-> ckHdr.ckSize为零.在IFFWriteBytes()里面有一个if(),它检查(size)!= szNotYetKnown.(szNotYetKnown是一个常量.)这个例子似乎表明它应该有效,但我看不出如何.IFFWriteBytes()返回CLIENT_ERROR因为nBytes是4 - 我试图保存32位int.

我失败的代码:

outfp = fopen(outfile, "wb");

ifferr = OpenWIFF(outfp, &filec, szNotYetKnown);

if (ifferr) {
    return 2;
}

ifferr = StartWGroup(&filec, LIST, sizeof (ID_NATAMI_FLASH), ID_NATAMI_FLASH, &listc);

if (ifferr) {
    printf("ifferr: %d\n", ifferr);
    return 3;
}
Run Code Online (Sandbox Code Playgroud)

最后一次失败,StartWGroup().

IFF和XML一样简单,我可以在没有库的情况下生成它,但是使用曾经常见且经过良好测试的库会更好.

问题不是关于Amiga,但这种文件格式在Amiga上很受欢迎.顺便说一句,你知道DjVU,RMFF,AIFF,RIFF和许多其他格式是IFF还是略有变化

更新: 易于阅读IFF描述.

c interop file-format amiga

8
推荐指数
1
解决办法
241
查看次数

托管内核和虚拟机之间的差异

我一直在阅读AROS,尤其是托管版本.AROS说如下.

kernel.resource contains AROS microkernel. It's the lowest level component,
which is responsible for handling CPU and motherboard. For
hosted ports kernel.resource contains a virtual machine.
Run Code Online (Sandbox Code Playgroud)

从我读到的有关虚拟机的内容来看,有两种类型的系统虚拟机和进程虚拟机.我知道AROS不是一个系统虚拟机,但是所有的流程虚拟机都可以像Java JVM,Mono,Python,Ruby等一样.它们都是特定于语言的.AROS接缝是一个完整的系统/平台,在用户模式下运行,如用户模式Linux.

AROS托管:操作系统中的操作系统?

AROS最初是在基于Intel的计算机上运行的Linux上开发的.但它可以运行在更多的机器和操作系统上.这可能听起来很奇怪:运行在其他操作系统之上的操作系统,这是仿真,对吧?

AROS托管的一个很好的术语是"API仿真".API是Application Programmer接口的三个字母的缩写.用简单的英语:API提供程序员可以使用的(C语言)函数.AmigaOS API包含一系列库调用,Amiga程序员可以使用它来制作Amiga程序.AROS模拟AmigaOS API:它尝试提供与AmigaOS相同的库调用.Amiga仿真器,如阿联酋; 模拟Amiga计算机:处理器,连接的硬件,一切.这有其优点,例如能够在不同硬件上播放二进制Amiga游戏,以及它的缺点,例如无法在"真实"处理器上将模拟器用作"真实"OS.AROS托管在"真正的"处理器上运行.但它不是"真实的" 操作系统,除非你以不需要Linux的方式运行.这被称为"原生"AROS.

AROS可以在Intel和Amiga计算机上本机运行,但不如在Linux上运行.AROS库函数首先在Linux下运行,内部使用Linux内核和库调用.这样,程序员就有机会首先关注整个系统的实现,并在以后的体育场中打扰技术细节.人们正在努力使"原生"AROS更加有用.结果非常令人印象深刻,完全可以将AROS-native用作IBM PC兼容机器上的真实(且唯一)操作系统.

当然,AROS不仅仅是一个API模拟器.它还试图为所有AmigaOS 3.1系统软件提供替代品,你也会发现AROS附带的一些演示和游戏,只是为了表明它们有效 - 我们可能只占整个系统的77%,但我们已经有Quake运行了!

从这些信息中可以看出,当用作虚拟机时,AROS kernel.resource只是包装了Linux内核的系统调用接口?或者我错过了什么

另外还有像AROS这样的其他系统吗?

我想制作一些可以在许多操作系统上托管的东西.

kernel virtual-machine microkernel amiga

7
推荐指数
1
解决办法
668
查看次数

如何开发可从软盘启动的Amiga应用程序(NON-DOS)?

继续" 如何编写和编译Amiga应用程序? "问题,需要哪个开发库才能从软盘启动Amiga应用程序?

更新:(2012-04-10)为了解决问题的解决,我编辑了标题和正文,只关注图书馆.仍然缺少从软盘部署工具启动,可以在另一个问题中询问.

boot floppy retro-computing amiga

6
推荐指数
1
解决办法
2890
查看次数

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

我正在尝试解压缩一个最初使用AMOS Pro扩展压缩的数据文件,这是AMOS Pro编译器附带的旧Amiga BASIC语言.我仍然使用编程语言并可以访问压缩器和解压缩程序,但我正在尝试使用C解压缩文件.我最终希望能够在现代硬件上查看这些文件而无需使用Amiga首先是模拟器.

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

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

AABCDEFGHIJKLMNOPQRSTUVWXYZAABCDEFGHIJKLMNOPQRSTUVWXYZAABCDEFGHIJKLMNOPQRSTUVWXYZ
Run Code Online (Sandbox Code Playgroud)

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

D802C6B5
05048584
4544C5C4
2524A5A4
6564E5E4
15149594
5554D5D4
3534B591
00000007
AD763363
00000051
Run Code Online (Sandbox Code Playgroud)

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

  • 最后4个字节是原始文件的大小.
  • 该文件似乎是一个位流,所以字节边界并不重要(我说这是因为我看到ASCII代码出现在几个文件中,它们没有与字节边界对齐).
  • 文件中的所有位都以相反的方式存储.

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

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

compression algorithm binary amiga

6
推荐指数
1
解决办法
292
查看次数

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

很久以前,我为Commodore Amiga制作了一些游戏.全部在68000汇编完成(所以我仍有源)

我想将这些游戏移植到现代平台,而不是托管模拟器,我想到将Assembly转换为C,并添加SDL层.

关于如何处理68000 - > C转换部分的任何想法?(不是手动而是自动.如在转换器中)

我只想创建一堆与寄存器名称相似的变量,然后像这样转换:

 MOVE.l #23, d7
Run Code Online (Sandbox Code Playgroud)

 MOVEL(23, d7);
Run Code Online (Sandbox Code Playgroud)

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

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

c assembly 68000 amiga transpiler

6
推荐指数
0
解决办法
248
查看次数

WPF Boing演示需要生命支持

还记得Amiga boing演示吗?我正在读Amiga文章25周年,他们提到了这一点.带回了一些回忆.我记得一个WPF(当时称为Avalon)演示放在一起模仿它.我做了一些谷歌搜索,并在这里找到它.但是,当我尝试在VS 2010中构建(重新定位到CLR 4.0 Client Profile)时,XAML标记和代码隐藏充斥着错误似乎已经过时了.是否有任何能够并愿意将其带入这十年的WPF大师?这对我来说理解WPF/XAML堆栈有很长的路要走.谢谢!

编辑:我正在使用我刚才在这里找到的稍微更新的版本.

编辑第二个:我已经得到它编译并显示漂亮的渐变蓝色背景,但不是弹跳格仔球.问题是我找不到现代的等价物:

        <x:Include x:Content="{ball}" />
Run Code Online (Sandbox Code Playgroud)

wpf xaml amiga

5
推荐指数
1
解决办法
185
查看次数

如果hyperion将amiga发布到另一个平台,今天,它会存活吗?

如果hyperion发布amiga到另一个平台,今天,它会做得好吗?我很乐意为amiga平台开发.我确实想念它.

我们需要什么?

顺便说一下,我意识到这不是一个问题,更多的是amiga未来的愿望清单.

operating-system amiga

5
推荐指数
2
解决办法
356
查看次数

将十六进制HTML颜色转换为Amiga颜色寄存器十六进制(和后面)

HTML十六进制颜色用6位数字写成(3个字节,一个所谓的A hex三元组).Amiga的颜色寄存器采用一个字(2字节,16位)来定义颜色.

例:

  • 黄色 - HTML十六进制#FFFF00
  • 黄色 - Amiga颜色寄存器$ 0FF0

必须有某种算法(或/和)一些工具,可以轻松地在HTML颜色和Amiga颜色注册表之间进行转换?或者?...请帮忙:)

html assembly hex 68000 amiga

3
推荐指数
1
解决办法
1005
查看次数

在Amiga上生成'Guru Meditation Error'

任何人都可以发布一些源代码,当编译(如果需要)并运行时,将在Amiga上产生'Guru Meditation Error'.

汇编程序,C或ARexx都可以.

谢谢.

amiga

2
推荐指数
1
解决办法
327
查看次数

为旧系统开发游戏

我有一个学校的编程项目,只要我们证明自己的编程技能,该课程是免费的,我身边有amiga 500,我想知道我是否可以为此做游戏?也许没有什么复杂的,我知道系统的局限性,但是是否可以在Windows 10 pc上使用仿真器对其进行测试,然后再将其刻录到磁盘上?我是否也可以将comodore disquette放在USB磁盘读取器中以读取代码?还是从中学到任何东西?谢谢 !

amiga

1
推荐指数
1
解决办法
94
查看次数