我正在寻找一些(命令行)工具,可以将 Unix 或 Linux 计算机上的主机文件与 Commodore.D71
和类似 CP/M 格式的图像文件进行传输。我现在的具体用例是,一位朋友拥有一台 Commodore 128 和一台 Ultimate II+ 或类似设备,我们想开发 CP/M 软件并将文件复制.COM
到图像中,以便我们可以在真正的 Commodore 128 上测试它们。
我找到了一些 Windows 程序,但 Unix 的东西很少。到目前为止,我只从上找到了 CTools 0.4 ,它声称可以在 Unix 下构建,但编译失败,因为无法找到 new.h,它似乎是 Windows 独有的头文件,所以我不确定这是怎么回事。
0
最佳答案
2
这并没有直接回答问题,但是对于评论来说太长了……
CTools 需要进行一些修改才能使用现代 C++ 编译器进行构建(这看起来很公平,毕竟它只有 27 年的历史)。
-
new.h
不是 Windows 标头,它已过时(但仍随new.h
Windows C++ 编译器一起提供);它提供了现在在 中std
并在 中声明的new
。要修复该问题,请编辑err.cc
,将其替换#include <new.h>
为#include <new>
,并将set_new_handler
其替换为std::set_new_handler
。 -
tools.cc
尝试在不进行显式强制转换的情况下将 a 转换const char *
为非 – ;在第 304 行添加一个:const
t = (char *) strrchr(filename, '/');
-
makefile.unx
还尝试使用常规cc
链接,但因 C++ 程序需要而失败libstdc++
;要修复该问题,请运行make -f makefile.unx CC=g++
(假设您正在使用
g++
)。
2
-
1哈哈,我刚刚看到这个问题,按照上面的方法,我陷入了困境,得意洋洋地来到这里发布答案,却发现已经有一个答案了。干得好!
– -
2显然,这项工作相当受欢迎,因为 Michael Steil 不久前也做过:。(我刚刚测试过,在 Debian 12 上只需 就可以编译成功
cd src && make
。)
–
|
在 Debian 上,有一个cpmtools
包:
$ apt-cache show cpmtools
Package: cpmtools
Version: 2.23-4
Installed-Size: 493
Maintainer: Bdale Garbee <bdale@gag.com>
Architecture: amd64
Depends: libc6 (>= 2.34), libdsk4 (>= 1.5.4+dfsg), libncurses6 (>= 6), libtinfo6 (>= 6)
Description-en: Tools to access CP/M file systems
This package allows access to CP/M file systems similar to the well-known
mtools package, which accesses MSDOS file systems.
.
All CP/M file system features are supported.
上游源代码在。
不确定这与 Commodore 磁盘映像配合得如何,基本上你需要一个代表块(或软盘之类的设备)的普通文件。
的代码后,似乎 Commodore CP/M 格式对 CP/M 块到磁道/扇区的映射不规则,如果不在代码中插入某种类似的转换,这在 cpmtools 中甚至对于原始磁盘格式也无法工作。
尽管如此,仍将这个答案留在这里以供参考。
3
-
我查看了
cpmtools
diskdefs 文件中没有找到任何 Commodore 格式的条目。
– -
这就是我写“我不知道这会有多好用”的原因。看起来 D71 是一种“原始”格式,所以如果 Commodore CP/M 布局在某处有文档记录,那么可能可以在那里添加一些条目。如果你能把 D71 文件放到网上某处,我可以试试。
– -
提供了几张图片。快速浏览了 ctools 源代码后,我怀疑格式可能是 CBM 和 CP/M 的组合,因为我认为我看到它正在更新块地址映射。
–
|
|