恢复另一个PDP-11 / 04

另一篇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-038A923-039A923-040A923-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上玩冒险游戏或节目!

Source: https://habr.com/ru/post/zh-CN390793/


All Articles