另一篇PDP-11 / 04恢复文章的翻译。您可以在此处阅读最后的三部曲- 第1部分(PDP-11 / 04本身),第2部分(TU60磁带站),第3部分(端子LA30)。斜体是我的评论。由Gunnar发送的PDP-11 / 04
我们从Gunnar Barbro那里收到了该设备,并为PDP-11带来了许多不同的东西。但是计算机本身的状态远非完美。没有足够的处理器和存储卡,电源开关被翻新取代,此外,所有东西都尘土飞扬。到背板(背板)分别接板编程控制台KY11-LB,XY11(模块用于控制绘图仪,例如IBM 1627,其与一个DEC机供给,并且是典型的CalComp 565),KW11-P(模块可编程RTC,哒是的,RTC下有一整块板!),RK11-D主板带有一组模块(磁盘驱动器控制器,是一组卡(3或4件,由一块普通板组合而成)),以及DR11-B(DMA控制器又由几块板组成:M7194,M971,M5916,M7820等。
清洁用品
我们将计算机分解为几部分,然后用肥皂和水轻轻地清洗了它们,然后用压缩机将它们吹干。干燥后,将它们收集成一个整体。在这些过程中,到处都有锈斑。组装检查
当然,即使连接了从库存中取出的处理器和内存板,也无济于事!控制台已死。如果起初我们可以拨打数字代码,然后将它们显示在控制台上(七段六位数字指示器),那么一段时间后情况就恶化了,这种机会就消失了。KY11-LB
KY11-LB是用于PDP-11 / 04和PDP-11 / 34的非常有趣的选件。您不仅可以打开和关闭CPU,调试代码,查看和更改内存,从而将程序和数据输入机器,还可以使用服务模式,在该模式下,可以逐步调试处理器微代码!通过将一对回路连接到处理器模块来提供此功能。但是,如果处理器丢失或死机,则KY11-LB允许您使用Unibus(一种连接许多DEC计算机中的模块的总线),而无需CPU的参与。这是由于存在自己的微处理器i8008而实现的。在下面的照片中,我用红色圈了起来。如果您需要检查总线本身的操作或对内存和I / O卡进行简单测试,那么这是个好消息。当请求不存在的目的地时,BUS ERR灯点亮。约尔格·霍普(JörgHoppe)就KY11-LB的使用撰写了出色的文件。
连接逻辑分析仪后,我检查了M7859(KY11-LB)板上的8008是否正常工作并正确执行了记录的程序。但是代码认为没有人按下任何按键...结果证明,输出寄存器的所有CLR信号(清除,清除寄存器的信号)都处于活动状态。处理DCLO信号的unibus总线控制器(Unibus总线上的信号,该信号表明DC电压过低)。几个开放式收集器缓冲器驱动器和寄存器芯片有故障。我一更换它们,控制台就栩栩如生!但是在启动处理器并使用其功能诊断对其进行测试之后,再次出现故障。然后两次。第一个是启动板M9301中的错误。数据总线上的第8位是总线驱动程序的最后一个可用位。他无法从总线读取足够的数据。第二次,处理器只是冻结。地址总线上未设置任何内容,对微码的检查表明,插头在试图捕获总线时发生了。仅在我取出M7859(KY11-LB)事实证明,M7859在Unibus总线上产生了一个9MHz的BBSY信号(处于活动状态的Bus Busy,表示有人正在使用D0-D15信号(请求的数据来自它们))。怎么了 一个触发器7474断裂并像疯了似地振荡。更换后,处理器和内存诊断成功!M9301-YB
PDP-11 / 04 M9301-YB是自举模块和终结器。评估板的PROM存储了几种常用设备的控制台仿真器和启动代码。为了使处理器从PROM中的引导区启动后立即开始执行,该模块在总线上生成一个特殊地址0173000 (使用多谐振荡器9602的300ms脉冲)(pdp 通常使用八进制数系统,因此数字开头的零不作填充,即对CC),并且处理器在电源故障后请求恢复工作的地址,将Unibus总线上的地址024/026设置为PC所在的MMIO寄存器的第一个地址,第二个为PSW,处理器状态字,各种标志和处理器状态)结果,对数据的请求被发送到地址0173024和0173026的总线。对于单元0173024,M9301在微开关值的集合(在照片中,在中间,为10个)和PROM中的数据之间找到对应关系。实际上,这些开关确定了处理器将从0173xxx空间中的哪个地址开始执行。我做了一个转储四个芯片的PROM - 23-038A9,23-039A9,23-040A9和23-041A9。由于M9301-YB反转了一些位以支持板开关与外部信号分离的可能性(在光电触点中为TP1 / TP2 / TP3,它们的OR值与板上的微动开关的值相同,例如TP1连接到S1和S2),我写道一小一个将这4个文件合并为一个二进制文件的程序。但是,我仅对反汇编程序列表进行了初步分析,但是我已经注意到,该代码与M9301-YA的PROM非常相似,只是代码块分散在不同的地址上。
启动RT11SJ和XXDP V2.2
要运行所有这些程序,您需要在引导加载程序代码中执行适当的过程。通常,此类过程在单独的PROM芯片中执行,在控制台仿真器中键入某些字符时,将执行代码。但是在这台机器上有一个M9201-YB板,其中不包含主DU引导加载程序(DEC具有非常有用的名称,DU是通过MSCP从介质启动的引导加载程序(MSCP是用于与驱动器进行通信的协议,例如ATAPI))。所以我不得不手动锤击这个引导程序作为该模块一部分的控制台仿真器支持4种功能-加载地址L,读取地址E的内存,写入地址D,开始执行S,实际上,这使您可以手动输入代码。类型为L 016000,D XXXXXX,D XXXXXX,...,S 16002的命令序列)。找到合适的工作引导加载程序并不容易,但是我仍然在源SimH(不同古代系统的仿真器)中遇到了一个。在PDP11GUI的帮助下,我将一个小文件上传到了机器的内存中。并且它起作用(至少在大多数情况下)。转储此MSCP引导加载程序:0016000 042125 012706 016000 012700 000000 012701 172150 012704
0016020 016162 012705 004000 010102 005022 005712 100001 000000
0016040 030512 001773 012412 006305 100370 105714 001434 012702
0016060 007000 005022 020227 007204 103774 112437 007100 110037
0016100 007110 112437 007114 112437 007121 012722 007004 010522
0016020 012722 007104 010512 024242 005711 005712 100776 005737
0016040 007016 001743 000000 005011 005003 012704 016020 005005
0016060 005007 100000 007204 000000 000001 004420 020000 001041
0016200 000000
开始用016000填充内存,并用016002(0x4455-魔术字)执行。
之后,我尝试使用XXDP v2.2启动磁盘映像。但是,可惜没有成功。出现了XXDP命令行,但是任何与磁盘一起使用的命令,例如“ D”(获取已加载媒体上的文件列表),都以“?RD ERR”控制台中的错误结束。似乎程序无法访问磁盘。因此,我检查了小型分发工具包RT11(PDP-11的实时操作系统)。创建了版本为5.3的磁盘映像并尝试启动。一切顺利!您可以在BASIC'e上玩冒险游戏或节目!