我正在转换为Microfocus编译器编写的一组COBOL程序,以便与GnuCobol一起使用。到目前为止,我已经取得了一定的成功,只需要更改一些特定于微距聚焦的日期命令,以及使用GnuCobol的-std=mf
参数。
我正在使用www.arnoldtrembley.com/GnuCOBOL.htm
中的预构建版本成功编译后运行某个文件时遇到此错误:
libcob: module '»' not found
在OpenCOBOLIDE玩游戏后,我发现违规行是
CALL X"AF" USING SET-BIT-PAIRS
USER-KEY-CONTROL
我该怎么做才能解决这个问题?
答案 0 :(得分:2)
您需要重新编码该部分。 GnuCOBOL仅支持一些编号的系统支持例程。 x“91”,x“E4”,x“E5”,x“F4”和x“F5”。 x“AF”不在内置系统库例程列表中。甚至支持的也不包括所有子功能的处理。
由于x“AF”与屏幕相关(至少从我见过的一个文档页面),您可以直接找出要发送到终端的转义码并使用DISPLAY而不是CALL手动执行该部分。
在不知道调用什么x“AF”子功能的情况下(无论SET-BIT-PAIRS中是什么),都无法想出特定的VT100序列来建议尝试。如果它只是子功能18,则单个字符的显示没有进展可能就足够了。子功能22仅意味着振铃终端铃声,这可以通过发出Ctrl-G来完成。等
如果您感到好奇,请运行cobc --list-system
(或者只查看您使用的预构建包中的GnuCOBOL手册),以查看GnuCOBOL支持哪些库存系统库调用。
如果您喜欢冒险,您可以自由查看编译器源代码树,只需通过将CALL编号链接到C函数来更改libcob以支持您的代码,并使用新条目扩展libcob / system.def并从源头重建GnuCOBOL。