PDP-11 基础分析项目

2021-08-08 19:54:01

PDP-11 BASIC 分析项目旨在逐行分解和分析 PDP-11 BASIC 代码的操作。分析范围很广,并且已经发布了多个博客条目,描述了 BASIC 应用程序的不同组件。提前澄清一下,这不是一个关于在 PDP-11 上加载或使用 BASIC 的项目。如果您想在模拟环境中加载和使用 PDP-11 BASIC,请转到此处。如果您正在寻找 PDP-11 BASIC 代码的逐行反汇编,那么您可以访问:第 0 部分:PDP-11 BASIC 代码在很大程度上依赖于软件 TRAP 的使用。在本系列的任何其他部分变得有意义之前,您需要对这些有一个清晰而简洁的理解。此外,本文还介绍了 PDP-11 BASIC 用于将 TRAP“路由”到不同处理子例程的代码。第 1 部分:分析 TTY 中断处理例程、TRAP 0、TRAP 2 和 TRAP 66。 第 5 部分:解释长格式选项对话框的操作、内存和磁带阅读器配置、删除扩展函数、加载 EXF 函数、跳转到显示“READY”并进入语法解析循环。

第 6 部分:通过查看行号的标识、确定已输入哪个命令以及 BASIC 命令的标记来开始分析语法解析代码。第7部分:分析TRAP 74、TRAP 76、TRAP 102和TRAP 104。这些在语法解析代码分析的第二部分中使用。第 8 部分:描述语法解析代码的其余部分、立即模式下 BASIC 命令的执行以及延迟模式下 BASIC 命令的存储。第 11 部分:描述 BASIC 运行时状态存储模型并详细检查 TRAP 130、TRAP 122、TRAP 112 和 TRAP 114。第 12 部分:分析 GOTO、GOSUB 和 RETURN BASIC 命令,以及 TRAP 120 和 TRAP 134。第 13 部分:通过检查 TRAP 64、TRAP 14 和 TRAP 12 详细解释整数到 ASCII 功能的操作。第 14 部分:检查 PDP-11 BASIC 中浮点数的结构并查看 TRAP 36 和 TRAP 40。

第 15 部分:这篇文章研究了一些浮点运算; TRAP 24(取反一个浮点数)、TRAP 20(加两个浮点数)和 TRAP 22(减去两个浮点数)。第 16 部分:检查乘法代码; TRAP 62(32 位整数乘法)、TRAP 16(16 位整数乘法)和 TRAP 30(浮点乘法)。第 17 部分:这篇文章将介绍一些更多的浮点操作陷阱; TRAP 26(浮点除法)和 TRAP 34(浮点比较)。 TRAP 34 使用的 TRAP 54 也与 TRAP 32 一起描述。 第 19 部分:介绍用户定义的函数并描述 BASIC DEF 命令,以及一些支持其操作的 TRAP(TRAP 140、TRAP 126 和 TRAP 110)。第 20 部分:描述用于管理堆栈上和运行时状态存储中的浮点变量的 TRAP 的操作。我们将研究 TRAP 142、TRAP 150、TRAP 146、TRAP 144 和 TRAP 132。第 21 部分:分析数学表达式求值代码。表达式无处不在,解析它们的主要入口点是 TRAP 136。第 22 部分:描述 TRAP 124 的操作和 BASIC DIM 和 LET 命令,以及 DATA 和 REM 命令。

这个项目仍在进行中,所以我会在添加新的分析部分时保持这个页面的最新状态。