很高兴看到您对这些超级 q 指针感到满意。这里的问题是对象模块进入了托管 BASIC 源的文件的字典。但是,当您使用主机操作系统路径而不指定字典时,它不知道将目标代码放在哪里。为此,我建议以下内容:
create-file dict chris_programs 3
(首先将您的 md q 指针复制到其他名称,否则您将无法使用相同的名称。)
将有一个默认的 q-pointer 放入该 dict 文件中,它将对数据文件的任何引用指向 dict (因此 dict 和 data 是相同的空间)。然后,您可以将已有的 q 指针(根据上面重命名)复制到 dict 中以替换该项目:
copy md renamed_pointer (o
to: (dict chris_programs
所以现在您的源将在主机文件系统中,而对象将在 D3 中。
有一种方法可以在主机操作系统中同时拥有字典和数据,但我现在不记得语法了。如果我得到信息,我会在稍后尝试更新它。
我建议不要跟进“但我真的想要主机操作系统中的所有内容!” 目标代码在 DBMS 之外没有任何用途,因此您不妨将其保留在那里。至于源代码,我也在操作系统级别放置了一些源代码,用于源代码控制(与 Subversion 集成),与其他编辑器一起使用,并与其他 MV DBMS 共享。除非您正在做这样的事情,否则我建议您将所有源和对象保留在 DBMS 中。如果您想要一个更好的编辑器,AccuTerm wED(Windows 编辑器)是一个带有语法高亮和许多其他功能的 GUI。如果这是您的目标,我们可以单独讨论。
编辑:以下内容旨在为所需问题提供解决方案,超出已采取的错误步骤的限制。
让我们回到基础:源代码在数据文件中,对象在字典中。以下是如何将操作系统级别的源链接到 DBMS 级别的对象。
create-file dict bp1 3
将有一个默认的 q-pointer 放入该 dict 文件中,它将对数据文件的任何引用指向 dict (因此 dict 和 data 是相同的空间)。您可以用主机操作系统的新指针替换该自反指针。使用 ED 或您喜欢的任何编辑工具,但想法是:
ed dict bp1 bp1
dict中的指针项与dict同名。将该项目替换为以下内容:
01 q
02
03 /path/foldername
行号仅供参考,请勿输入。根据需要替换路径。您的 D3 用户(在 pick0 操作系统文件中指定)必须具有对该路径的读/写访问权限。
所以现在你应该能够做这样的事情:
ED BP1 TEST1
01 CRT "SUCCESS"
COMPILE BP1 TEST1
RUN BP1 TEST1
您会在 /path/foldername 中找到 TEST1。如果您列出 DICT BP1,您将看到指向数据文件的 BP1 指针以及 TEST1 的对象模块的项。
与其改造你所拥有的,不如按照这个来,你应该在几分钟内就成功了。
请参阅上面关于“但我真的想要主机操作系统中的所有内容!”的注释。
另一种源代码控制方法(不一样但很接近):将所有内容保存在 DBMS 中。定期将您的源转储到操作系统级别的备份文件,或复制到文件夹。然后对该操作系统数据进行源代码控制。这消除了操作系统和程序之间的直接联系,这是大多数 D3 人无论如何都不理解的。