Tradução de outro artigo de recuperação do PDP-11/04. Você pode ler a última trilogia aqui - parte 1 (próprio PDP-11/04), parte 2 (estação de fita TU60), parte 3 (terminal LA30). Itálico são meus comentários.PDP-11/04, enviado por Gunnar
Recebemos esse dispositivo da Gunnar Barbro e, com ele, vários itens diferentes para o PDP-11. Mas o estado do próprio computador estava longe de ser perfeito. Não havia processadores e placas de memória suficientes, o interruptor foi substituído por um remake e, além disso, tudo estava terrivelmente empoeirado. A placa do console de programação KY11-LB, XY11 (um módulo para controlar uma plotadora, por exemplo, IBM 1627, que veio com máquinas DEC e era canônica CalComp 565 ), KW11-P ( módulo RTC programável, sim, estava conectado ao backplane ) Sim, havia uma placa inteira sob o RTC! ), A placa principal RK11-D com um conjunto de módulos (um controlador para unidades de disco magnético, era um conjunto de placas (3 ou 4 peças), combinado por uma placa comum ) e o DR11-B (Controlador DMA, que, novamente, consistia em várias placas: M7194, M971, M5916, M7820, ... ), também com todos os módulos.
Limpeza
Desmontamos o computador em partes e lavamos-os delicadamente com água e sabão e depois os secamos com um compressor. Após a secagem, eles foram coletados em um único todo. Durante esses procedimentos, pontos de ferrugem foram encontrados aqui e ali.Montagem e inspeção
Obviamente, nada funcionou mesmo quando conectamos o processador e as placas de memória retiradas de nossas ações! O console estava morto. Se no início pudéssemos discar códigos digitais, e eles fossem exibidos no console (indicador de sete dígitos e seis dígitos ), depois de algum tempo a situação piorou e essa oportunidade desapareceu.KY11-LB
KY11-LB é uma opção muito interessante disponível para PDP-11/04 e PDP-11/34. Você pode não apenas ligar e desligar a CPU, depurar o código, visualizar e alterar a memória, inserindo programas e dados na máquina, mas também usar o modo de serviço, no qual a depuração passo a passo do microcódigo do processador está disponível! Esse recurso é fornecido ao conectar um par de loops ao módulo do processador. Mas se o processador estiver ausente ou congelar, o KY11-LB permitirá que você trabalhe com o Unibus (um barramento que conecta módulos em muitos computadores DEC) sem a participação da CPU. Isso ocorre devido à presença de seu próprio microprocessador i8008. Na foto abaixo eu circulei em vermelho. E isso é uma ótima notícia se você precisar verificar a operação do próprio barramento ou realizar testes simples de memória e placas de E / S. Quando um destino inexistente é solicitado, a lâmpada BUS ERR acende. Jörg Hoppe escreveu um excelente documento sobre o uso do KY11-LB.
Após conectar o analisador lógico, verifiquei se o 8008 na placa M7859 (KY11-LB) funciona normalmente e executa o programa gravado corretamente. Mas o código acreditava que ninguém pressionava nenhuma tecla ... Acabou que todos os sinais CLR ( apagados, um sinal para apagar o registro ) dos registros de saída estavam em um estado ativo. O controlador de barramento unibus que processou o sinal DCLO (o sinal no barramento Unibus, que informa que a tensão CC está muito baixa ) estava com defeito. Vários drivers de buffer de coletor aberto e chips de registro estavam com defeito. Assim que os substituí, o console ganhou vida! Mas, novamente, houve uma falha após iniciar o processador e testá-lo com o diagnóstico de sua funcionalidade. E duas vezes O primeiro é um bug no M9301, a placa de inicialização. O oitavo bit no barramento de dados foi o último disponível para o motorista. Ele não conseguia ler dados suficientes do ônibus. Na segunda vez, o processador simplesmente congela. Nada foi definido no barramento de endereços, e o exame do microcódigo mostrou que o plugue acontecia ao tentar capturar o barramento. O processador só inicializou depois que tirei o M7859 ( KY11-LB) Verificou-se que o M7859 gerou um sinal BBSY de 9MHz no barramento Unibus ( Bus Busy, no estado ativo, sinaliza que sinais D0-D15 (os dados solicitados estavam chegando através deles) estão sendo usados por alguém ). Porque Um gatilho 7474 quebrou e oscilou como um louco. Depois de substituí-lo, o processador e os diagnósticos de memória foram bem-sucedidos!M9301-YB
O PDP-11/04 M9301-YB é um módulo de inicialização e um terminador. A PROM da placa armazena o emulador do console e o código de inicialização para vários dispositivos comuns. Para que o processador inicie a execução imediatamente após iniciar a partir da área de inicialização na PROM, o módulo gera um endereço especial 0173000 no barramento ( pulso de 300ms usando o multivibrador 9602 ) ( geralmente um sistema de números octais é usado para pdp, portanto, zeros no início dos números não são preenchidos, ou seja, uma referência a CC ) e o processador solicita o endereço de resumo após uma falha de energia, configurando o endereço 024/026 no barramento Unibus ( no primeiro endereço o registro MMIO em que o PC está localizado, no segundo - PSW, palavra de status do processador, vários sinalizadores e status do processador) Como resultado, uma solicitação de dados é enviada ao barramento nos endereços 0173024 e 0173026. Para a célula 0173024, o M9301 encontra uma correspondência entre o conjunto de valores do microinterruptor ( na foto, no centro, 10 peças ) e os dados no PROM. Essas opções, de fato, determinam a partir de qual endereço no espaço 0173xxx o processador iniciará a execução. Despejei quatro chips PROM - 23-038A9 , 23-039A9 , 23-040A9 e 23-041A9 . Como o M9301-YB inverte alguns bits para suportar a possibilidade de disjunção dos comutadores da placa com sinais externos ( nos contatos fotográficos são TP1 / TP2 / TP3, seus valores OR estão com os valores dos microinterruptores na placa, por exemplo, TP1 está conectado a S1 e S2 ), escrevi um pequenoum programa que combina esses quatro arquivos em um único binário . Tendo feito apenas a análise inicial da lista do desmontador, no entanto, eu já notei que o código é muito semelhante ao PROM do M9301-YA, exceto que os blocos de código estão espalhados em endereços diferentes.
Inicie o RT11SJ e o XXDP V2.2
Para executar cada um desses programas, você precisa do procedimento apropriado no código do carregador de inicialização. Normalmente, esses procedimentos são executados em um chip PROM separado, cuja execução do código ocorre ao digitar certos caracteres no emulador de console. Mas nesta máquina há uma placa M9201-YB que não contém um carregador de inicialização primário da DU (o DEC possui nomes muito informativos, a DU é um carregador de inicialização da mídia via MSCP (MSCP é um protocolo para comunicação com unidades, como ATAPI) ). Então eu tive que martelar este gerenciador de inicialização manualmente (o emulador de console, que faz parte deste módulo, suporta 4 funções - carregando o endereço L, lendo a memória no endereço E, escrevendo no endereço D, iniciando a execução de S; na verdade, isso permite que você insira o código manualmente. A sequência de comandos do tipo L 016000, D XXXXXX, D XXXXXX, ..., S 16002 ). Não foi fácil encontrar um gerenciador de inicialização adequado, mas ainda encontrei um no SimH de origem ( emulador de diferentes sistemas antigos ). Usando o PDP11GUI , carreguei um pequeno arquivo na memória da máquina. E funciona (pelo menos na maioria dos casos).Despejar este gerenciador de inicialização 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
Comece a preencher a memória com 016000 e a execução com 016002 ( 0x4455 - palavra mágica ).
Depois disso, tentei iniciar a imagem de disco com o XXDP v2.2. Mas, infelizmente, não houve sucesso. A linha de comando XXDP apareceu, mas todos os comandos que funcionavam com o disco, como "D" ( obtém uma lista de arquivos na mídia carregada ), terminaram com um erro no console "? RD ERR". Parece que o programa não pode acessar o disco. Por isso, verifiquei o pequeno kit de distribuição RT11 ( sistema operacional em tempo real para PDP-11 ). Criou uma imagem de disco com a versão 5.3 e tentou iniciar. E tudo correu bem! Você pode jogar Adventure ou programar no BASIC'e!