Como montar o Apple 1 e escrever um jogo para ele


Passaram-se 40 anos desde o lançamento do computador Apple 1. Atualmente, seus recursos não atingem sequer dispositivos microprocessadores ou microcontroladores simples. Mas em 1976, essa novidade fez muito barulho, foi dito até sobre uma revolução no mundo dos computadores. Convido o leitor a coletar a Apple 1 comigo para descobrir o que era interessante e escrever algum tipo de programa.
Devo dizer imediatamente que não o colecionei de uma só vez. Demorou três anos para procurar componentes, criar e depurar no seu tempo livre, depurar a mesma quantia e finalmente se reunir e escrever este artigo.
Características Apple 1
Tipo: Computador Pessoal
Anos de produção: julho de 1976 - março de 1977
Processador: MOS 6502
Frequência do relógio: 1MHz
Memória: ROM de 256 bytes, 4kB de RAM, expansível até 8 kB
Vídeo: caracteres 40x24
Fabricado: cerca de 200 peças
Um pouco de história
O criador da Apple 1 é Stephen Wozniak. Na verdade, no momento de sua criação, ainda não era chamado Apple 1. Sim, e a própria Apple não estava lá.
Steve gostava de projetar dispositivos eletrônicos desde tenra idade. Sua primeira máquina de computação foi "cream soda", projetada em circuitos integrados sem o uso de um processador central e capaz de executar operações matemáticas simples. Infelizmente, não consegui encontrar fotos ou descrições deste computador, apenas informações bastante más do próprio Steve, descritas em seu livro. O destino do "refrigerante com creme" também é triste - queimou e não houve tentativas de restaurá-lo. Mais tarde, quando Steve trabalhou em calculadoras na HP, seu amigo Allen Baum convidou uma reunião do Computer Club em Palo Alto, Califórnia. Steve foi informado de que esta reunião foi dedicada a terminais e tecnologia de vídeo. Naquela época, ele já havia criado seu próprio terminal para trabalhar na ARPANET e tinha uma idéia sobre a técnica do terminal, motivo pelo qual ele concordou em ir. Steve era um cara modesto e, se soubesse que era sobre computadores, disse que não iria para lá.
Na reunião, ele se sentiu à vontade, pois os presentes estavam discutindo alguns microprocessadores estranhos e o computador Altair 8800.
Após a reunião, ele recebeu um folheto descrevendo o microprocessador i8080A. Ele decidiu estudá-lo à vontade e percebeu que isso era exatamente o que estava fazendo em seu primeiro “refrigerante de creme” para PC, e como isso poderia ser facilitado. No mesmo dia, ele nasceu a arquitetura do futuro Apple 1. Mas só chegou à montagem depois de alguns meses, que passou a estudar as especificações de novos microcircuitos e a procurar componentes. O fato é que, nos anos 70, os microprocessadores e a memória eram muito caros e escassos. O problema com o processador foi resolvido quando a empresa MOS Technology lançou um processador de orçamento 6500 e logo 6502, um análogo de 6500, mas com ótimos recursos, e custando apenas US $ 25. Foi o lendário 6502 quem primeiro caiu nas mãos de Steve.
O próximo problema da época era preparar o computador para o lançamento. Naqueles anos, o programa de inicialização, via de regra, era inserido nos computadores manualmente ou em fita, isso levava meia hora, e somente depois disso era possível fazer algo neles. Um vídeo do lançamento do BASIC e um programa de jogos escrito no Altair 8800 estão disponíveis no segundo link no final do artigo. Steve resolveu esse problema instalando chips de memória permanente (ROM) em seu PC, com o programa de controle gravado neles, que ele chamou de "Monitor". O nome refletia o objetivo - na maioria das vezes ela monitorava as teclas digitadas e as transferia para o terminal, além de permitir exibir os valores nas células da memória e executar o programa em um local específico. O monitor de Wozniak cabe em 253 bytes.
Mas ele ainda não tinha memória RAM para iniciar o computador. A primeira versão do seu PC foi construída com memória estática lenta. Mais tarde, ele o substituiu por um dinâmico, que reduziu o número de chips no tabuleiro e afetou positivamente a velocidade do trabalho.
Steve mostrou seu PC ao público, e seu amigo, Steve Jobs, que ajudou a levar o monitor para o clube, sugeriu começar a produzir placas de circuito impresso para esse PC e abrir sua própria empresa, chamada Apple.
Você pode ler mais sobre isso e muito mais no livro do iWoz.
Placa principal da Apple 1

Arquitetura de PC
Um PC consiste em vários nós.


(
Fonte do site )
Unidade de formação e saída de imagem (terminal)

Na verdade, este é o próprio terminal Steve da ARPANET. Na sua entrada, há um barramento de sete bits, através do qual os dados são recebidos para saída em uma tela de TV.
Não possui esquemas para acesso direto à memória de vídeo (DAP), mas utiliza uma atualização de memória cíclica de 1024 células de 7 bits (além disso, 64 células não são usadas). Devido à falta de um DAP, este terminal funciona como uma máquina de escrever - eles enviaram um caractere para a entrada, ele o exibiu na tela, moveu o cursor para o próximo caractere e nenhum gráfico. Devido à constante atualização dessa memória, a operação do terminal é bastante lenta. Todos os caracteres são exibidos em sequência. Não é possível voltar atrás e corrigir um caractere digitado incorretamente. Para edição, você precisa inserir o comando Monitor, que alterará o conteúdo da célula de memória em que o erro foi cometido e, em seguida, use o outro comando para exibir o valor de byte da célula de memória alterada.
Se em nosso programa queremos limpar a tela, precisamos transferir o carro 24 vezes para uma nova linha 24 vezes. A propósito, quando você pressiona Return (a designação moderna é Enter), o gerador é iniciado, que imprime o caractere de espaço no final da linha.
Não há modo gráfico, e o conjunto de caracteres é limitado ao conjunto padrão de códigos ASCII, com valores de 1 a 127 (apenas caracteres do intervalo 32-126 são exibidos na tela, outros são usados como caracteres de controle, por exemplo, alimentação de 13 linhas), portanto, o barramento de sete bits e na ordem mais alta, a unidade está sempre definida.
Os layouts de todos os caracteres exibidos são gravados na memória somente leitura (ROM). Depois que o caractere chega à entrada do terminal, ele é gravado primeiro em uma memória pequena (um análogo da memória de vídeo moderna) e, em seguida, através do sistema do contador, os endereços na ROM do gerador de caracteres contendo o layout do caractere de saída são selecionados e, através do turno, esses dados são misturados aos pulsos do relógio de vídeo gerados. entrada do monitor (ou entrada de TV de baixa frequência).
Para ajustar o brilho da imagem, a placa possui um resistor de sintonia. Substituí-lo por uma simples bissetriz.
Também deve ser observado que, devido a erros no esquema de formação de imagem, ele não pode ser exibido corretamente na maioria dos TVs ou monitores digitais modernos. As TVs analógicas perdoam esses erros. No final do artigo, um vídeo de três minutos com meu tormento em um monitor assim.
Unidade de microprocessador
Ele contém um microprocessador 6502, ROM, porta de entrada e saída (PIA), amplificadores de buffer, um decodificador de endereço de dispositivo, RAM e alguns microcircuitos de pequena escala.Bloco de E / S e trabalho com dispositivos externos

O teclado é pesquisado e o caractere inserido é transmitido ao barramento de dados pelo controlador de entrada e saída (PIA) 6520. Em vez disso, instalei o 6821. E funciona bem.
O trabalho com dispositivos externos ocorre como nas células de memória. Cada dispositivo possui sua própria área de memória. O decodificador de porta lida com a inclusão de entrada / saída de um dispositivo específico. Suas linhas de entrada são conectadas às linhas de endereço do microprocessador; portanto, quando você define o endereço desejado, o dispositivo que precisamos é conectado ao barramento de dados. O que e como você pode fazer isso é determinado pelo programa e pelo próprio dispositivo.
Como as interrupções não são implementadas neste PC, o processador central está envolvido no processamento de todo o fluxo de dados (entrada do teclado, saída de caracteres, troca de dados com dispositivos externos, etc.).
Para conectar um dispositivo externo, há um conector na placa principal. O único dispositivo conhecido por mim que foi criado para este PC nos anos 70 é uma placa de interface para trabalhar com um armazenamento de dados externo - um gravador.


Fonte de alimentação

Tudo é simples aqui. São necessárias quatro voltagens para alimentar um computador. + 5V, -5V, + 12V e -12V. A fonte de alimentação foi fabricada pelo comprador de forma independente. Para isso, foi necessário adquirir separadamente dois transformadores abaixadores e conectá-los à placa principal, na qual já havia retificadores e estabilizadores. O radiador possui um estabilizador de + 5V e aquece significativamente, muitos usuários instalaram um ventilador nele, eu não inventei uma bicicleta e fiz o mesmo.
Obviamente, era possível colocar uma fonte de alimentação de comutação moderna, mas eu queria um tubo quente roncando a 50 Hz.
Pesquisa, montagem e comissionamento de componentes
Como escrevi acima, levou quase três anos para procurar componentes, embora de forma intermitente. O primeiro foi comprado uma placa de circuito impresso, depois de ficar cerca de um ano em uma prateleira, começou a crescer gradualmente em componentes. Primeiro, soldamos os soquetes para microcircuitos e conectores para conectar a energia e um monitor. Então todos os elementos passivos - resistores, capacitores e diodos. É verdade que os capacitores originais da Sprague não puderam ser obtidos imediatamente e, em vez deles, a primeira metade do ano eram eletrólitos modernos comuns.
A maioria dos microcircuitos foram adquiridos imediatamente, além disso, a maioria deles possui análogos soviéticos da 155a série. Eu tive que correr para esses microcircuitos:
ROM de vídeo - um determinado firmware deve ser gravado nele, caso contrário não haverá imagem adequada.
2504V - sete registros nos quais a imagem exibida na tela é armazenada.
2519B é um contador usado para criar uma imagem que não possui análogos.
8T97 - buffers de barramento de dados que impedem a sobrecarga do barramento de dados do microprocessador; em outros assuntos, eles mais tarde encontraram um substituto soviético - K155LP11.
ROM com o programa de controle "Monitor".
Depois que todos os componentes foram encontrados, soldados ou instalados na placa principal, a parte mais interessante começou - a depuração.
A primeira ligação - clique no botão liga / desliga, 5 segundos, desligue - não há fumaça, congestionamentos no apartamento estão intactos, nada pegou fogo - ordem. Eu ligo, olho a foto - há lixo de caracteres aleatórios na tela. Pressiono RESET e LIMPAR A TELA por trás dele (sim, sim, existe um botão assim - os usuários não eram mimados com coisas da moda, e os designers pensavam, deixavam o usuário limpar a tela quando precisava), nada acontece - o mesmo lixo aleatório.
Acima de tudo, o estabilizador em + 5V já está começando a assar, um aroma de tubo quente de feltros de verniz recém queimados, feltros de tinta desse estabilizador percorreram a sala. Eu desligo, aguardo 5 minutos, até que esfrie completamente e, em séries tão curtas, tento depurar ainda mais durante o período de depuração, portanto esse fato não é mais indicado.
Se tudo funcionou, depois de ligar o computador, uma tela inicial de boas-vindas deve aparecer na tela na forma de caracteres alternativos "@_" em todo o espaço de trabalho do monitor e, após pressionar RESET e CS, a tela deve limpar e apenas o cursor para entrar no comando deve permanecer programa de controle "Monitor".
A inspeção visual e a continuidade dos circuitos de imagem e de potência não renderam nada. E depois de vários dias de tormento, descobri que o vendedor me enviou os análogos errados dos chips de memória de vídeo. Fiquei 1403A, embora os análogos sejam 1404A. Tirei esses registros dos painéis e nada mudou na tela. O vendedor admitiu seu erro e pediu para enviar esses registros de volta para ele, mas como não eram caros, eu não me incomodei com isso. Os registros originais já me custaram cerca de US $ 80. Eles tiveram que esperar três semanas.
Depois de substituir os registros, os esperados cães piscantes (ou maçãs, de quem você gosta mais) finalmente apareceram, o que significa memória de vídeo e, com ela, todo o bloco de vídeos conquistado.
Pressiono RESET, CS, a tela é limpa, mas o cursor não aparece. Portanto, a unidade de microprocessador não funciona. Não há muitas fontes de problemas - o processador ou a ROM ou a pequena lógica em sua ligação.
O primeiro componente que foi investigado foi a ROM com o "Monitor", pois um dos microcircuitos estava aquecendo significativamente.
Um pouco distraído, direi que o programa de controle é gravado em dois chips de memória, cada um com 255 células de memória e cada chip possui apenas 4 bits na saída. Para controlar o processador de oito bits, Wozniak colocou 2 desses microcircuitos em paralelo, recebeu os 8 bits de dados necessários na saída. E todo o seu programa de controle cabia em 253 bytes (2 bytes permaneciam livres).

Para ler o conteúdo dessa memória, montei um dispositivo baseado em Arduino em uma placa de ensaio.
O controlador classificou sequencialmente os endereços dessas ROMs, mesclou dados de 4 bits em 8 bits e os exibiu em formato hexadecimal no monitor do canal de comunicação no computador. Depois de verificar o conteúdo da ROM, não encontrei nenhum erro nela.
Substituir a lógica mesquinha também não produziu resultados, então suspeitas caíram nos anos veneráveis do processador principal e em sua aposentadoria.
Como não tenho outro computador baseado no 6502, instalei-o em uma placa de ensaio, forneci-o com energia de Arduinki, pulsos de clock do gerador a 1 MHz (do futuro PC especialista), instalei um comando NOP no barramento de dados com jumpers para + 5V e Eu esperava que, executando uma ação vazia, aumentasse o valor do contador de endereços. Mas isso não aconteceu. Nada aconteceu. Parece que uma pedra agora é definitivamente uma pedra. Encomendei outro, pois deve ser produzido pelo MOS. Enquanto ele dirigia, consegui sair de férias e nadar no mar.


Testando o processador 6502. Sim, era possível obter 1 MHz a partir de mega temporizadores, sim, era possível ficar sem ele, eu posso fazer tudo isso, mas queria fazer exatamente isso.
Após instalar um novo processador, ligue a linha de comando - olá, cães - RESET - CS - olá! A unidade processadora funcionou, menos de seis meses se passaram!
O próximo problema - eu não tinha nada para digitar comandos e códigos, não havia teclado.
Teclado
O teclado deste PC é uma grade de condutores, nos quais os botões estão instalados. Este gabinete está conectado a um decodificador de tecla pressionada, que emite um código de tecla pressionada ao longo de uma linha ASCII de sete bits e um pulso de disparo de curto prazo em uma linha separada. Como esse impulso passou para o barramento de controle, o processador começa a processar o caractere inserido.

Para obter esse teclado, em geral, o assunto ainda está sendo resolvido, mas esse geralmente é um número com dois zeros, e não em rublos russos. Portanto, comecei a pensar em como conectar meu teclado PS / 2 ao meu computador.
Nada mais interessante do que o Arduino Nano me ocorreu. Durante a noite, montei o adaptador entre o PS / 2 e a porta ASCII montando o suporte e escrevi o firmware para ele. Como o Apple 1 não possui as teclas PgUp e PgDown, usei-as como os botões RESET e CLEAR SCREEN. A partir desse dia, eu não tive que fechar as pernas lado a lado com uma pinça no quadro, o que foi muito agradável.
Os caracteres digitados foram impressos na tela, e até o programa de teste da documentação deste computador funcionou. Tudo o que ela faz é exibir todos os caracteres exibidos neste computador em um loop.
Vista superior
Vista inferiorUma história engraçada aconteceu com o teclado. Inicialmente, a tecla Return funcionava apenas pela metade - inseria corretamente os comandos na memória e fornecia instruções para sua execução, mas a conversão para uma nova linha não ocorreu. Em geral, devido à natureza do terminal, isso não criou grandes problemas. Mas eu decidi resolver esse problema. Comecei estudando o diagrama do circuito do PC, uma grande ajuda foi fornecida pelo usuário Mdesk, com zx-pk.ru. Quando estudei o circuito, não tinha uma única pergunta na operação da unidade de conversão de carro de hardware, sentei-me no testador e no osciloscópio. O zumbido dos condutores não produziu nada - tudo intacto. Então o osciloscópio entrou em ação. Liguei para os sinais de entrada do PIA - eles estavam normais, o sinal foi perdido em algum lugar no 7451N, tentei alterá-lo para 7450 e os análogos soviéticos (155LR1 e 155LR11), isso não funcionou. Desvendando ainda mais as correntes, cheguei ao vibrador único 74123, era necessário verificar os atrasos gerados por ele. Mas meu adaptador o fecha fisicamente, o que torna a chamada desconfortável.
Então eu escrevi um programa de teste
280: A9 8D 20 EF FF A9 31 20 EF FF 4C 80 02
Tudo o que ela faz é exibir a sequência Retorno-1-Retorno-1 (unidades com rolagem para baixo).
Comecei, unidades, como esperado, foram para a linha. Depois tirei o adaptador da tomada e as unidades acabaram imediatamente. Então, o motivo é o adaptador. Depois disso, o problema foi resolvido rapidamente. Os botões PgUp e PgDown que uso como redefinir e limpar a tela. A limpeza de tela (CLR) pendurada em uma das pernas da Arduina, no momento da limpeza, apliquei uma lá, depois de liberá-la, redefini para 0. E esse mesmo 0 extinguiu toda a linha de CLR, mas na verdade também usa o bloco de alimentação de linha. A solução é simples - coloque um diodo entre Arduinka e CLR, e funcionou!
Como discar programas kilobyte de mão em mão seria uma tarefa tediosa e nem sempre precisa, tive a idéia de conectar um cartão SD ao mesmo Arduinka com o qual você pode inserir programas. Funciona assim - solto o arquivo chamado dump.hex na raiz e, quando pressiono a tecla TAB, o controlador lê o conteúdo do arquivo e pressiona as teclas apropriadas.
De software
Não existem muitos programas escritos para a Apple 1, associo isso à aparência iminente de um computador mais avançado - a Apple 2. E, no entanto, existem vários jogos e programas de sistema para ele. 30 Apple 1, ( ).
, . 2048. , ( 6502 ) 2 . 1679 . , .
280: 4C F8 08 20 20 20 20 20
288:20 20 32 20 20 20 34 20
290:20 20 38 20 20 31 36 20
298:20 33 32 20 20 36 34 20
2A0:31 32 38 20 32 35 36 20
2A8:35 31 32 31 30 32 34 32
2B0:30 34 38 01 00 00 00 00
2B8:00 00 00 00 00 00 00 00
2C0:00 00 00 2B 2D 2D 2D 2D
2C8:2D 2D 2B 2D 2D 2D 2D 2D
2D0:2D 2B 2D 2D 2D 2D 2D 2D
2D8:2B 2D 2D 2D 2D 2D 2D 2B
2E0:8D 00 A2 00 A9 8D E8 20
2E8:EF FF E0 24 F0 03 4C E6
2F0:02 60 A9 2B 20 EF FF A9
2F8:20 20 EF FF 60 A9 8D 20
300:EF FF 60 0A 2A A8 A9 00
308:79 83 02 20 EF FF C8 A9
310:00 79 83 02 20 EF FF C8
318:A9 00 79 83 02 20 EF FF
320:C8 A9 00 79 83 02 20 EF
328:FF A9 20 20 EF FF 20 F2
330:02 60 20 FD 02 A2 00 BD
338:C3 02 20 EF FF E8 E0 1E
340:F0 03 4C 37 03 60 20 32
348:03 20 F2 02 AD B3 02 20
350:03 03 AD B4 02 20 03 03
358:AD B5 02 20 03 03 AD B6
360:02 20 03 03 20 32 03 20
368:F2 02 AD B7 02 20 03 03
370:AD B8 02 20 03 03 AD B9
378:02 20 03 03 AD BA 02 20
380:03 03 20 32 03 20 F2 02
388:AD BB 02 20 03 03 AD BC
390:02 20 03 03 AD BD 02 20
398:03 03 AD BE 02 20 03 03
3A0:20 32 03 20 F2 02 AD BF
3A8:02 20 03 03 AD C0 02 20
3B0:03 03 AD C1 02 20 03 03
3B8:AD C2 02 20 03 03 20 32
3C0:03 60 32 30 34 38 8D 8D
3C8:57 2D 55 50 8D 41 2D 4C
3D0:45 46 54 8D 44 2D 52 49
3D8:47 48 54 8D 53 2D 44 4F
3E0:57 4E 8D 8D 43 4F 44 45
3E8:3A 20 44 45 4E 49 53 20
3F0:50 41 52 59 53 48 45 56
3F8:8D 8D 50 52 45 53 53 20
400:41 4E 59 20 4B 45 59 A2
408:00 BD C2 03 20 EF FF E8
410:E0 45 F0 03 4C 09 04 AD
418:11 D0 10 FB AD 10 D0 8D
420:E1 02 60 47 41 4D 45 20
428:4F 56 45 52 59 4F 55 20
430:57 49 4E 20 E2 02 A2 00
438:BD 23 04 20 EF FF E8 E0
440:09 F0 03 4C 38 04 A2 34
448:BD C2 03 20 EF FF E8 E0
450:43 F0 03 4C 48 04 AD 11
458:D0 10 FB AD 10 D0 4C F8
460:08 A0 00 AD E1 02 29 0F
468:AA C8 C0 11 F0 C5 BD B3
470:02 C9 00 F0 0A E8 E0 10
478:D0 EF A2 00 4C 69 04 A9
480:01 9D B3 02 8E E1 02 60
488:A2 00 A9 00 9D B3 02 E8
490:E0 10 D0 F8 A9 01 8D B3
498:02 60 00 00 00 00 00 00
4A0:AE 9F 04 BD 9A 04 C9 00
4A8:D0 14 AE 9E 04 BD 9A 04
4B0:AE 9F 04 9D 9A 04 A9 00
4B8:AE 9E 04 9D 9A 04 60 A9
4C0:03 8D 9F 04 A9 02 8D 9E
4C8:04 20 A0 04 A9 02 8D 9F
4D0:04 A9 01 8D 9E 04 20 A0
4D8:04 A9 01 8D 9F 04 A9 00
4E0:8D 9E 04 20 A0 04 A9 03
4E8:8D 9F 04 A9 02 8D 9E 04
4F0:20 A0 04 A9 02 8D 9F 04
4F8:A9 01 8D 9E 04 20 A0 04
500:A9 03 8D 9F 04 A9 02 8D
508:9E 04 20 A0 04 60 20 E2
510:02 A2 00 BD 2C 04 20 EF
518:FF E8 E0 07 F0 03 4C 13
520:05 A2 34 BD C2 03 20 EF
528:FF E8 E0 43 F0 03 4C 23
530:05 AD 11 D0 10 FB AD 10
538:D0 4C F8 08 AE 9E 04 BD
540:9A 04 C9 00 F0 1D AE 9F
548:04 DD 9A 04 D0 15 A8 C8
550:98 AE 9F 04 9D 9A 04 C9
558:0B F0 B3 A9 00 AE 9E 04
560:9D 9A 04 60 A9 02 8D 9E
568:04 A9 03 8D 9F 04 20 3C
570:05 A9 01 8D 9E 04 A9 02
578:8D 9F 04 20 3C 05 A9 00
580:8D 9E 04 A9 01 8D 9F 04
588:20 3C 05 60 20 BF 04 20
590:64 05 20 BF 04 60 AD B3
598:02 8D 9D 04 AD B7 02 8D
5A0:9C 04 AD BB 02 8D 9B 04
5A8:AD BF 02 8D 9A 04 20 8C
5B0:05 AD 9A 04 8D BF 02 AD
5B8:9B 04 8D BB 02 AD 9C 04
5C0:8D B7 02 AD 9D 04 8D B3
5C8:02 AD B4 02 8D 9D 04 AD
5D0:B8 02 8D 9C 04 AD BC 02
5D8:8D 9B 04 AD C0 02 8D 9A
5E0:04 20 8C 05 AD 9A 04 8D
5E8:C0 02 AD 9B 04 8D BC 02
5F0:AD 9C 04 8D B8 02 AD 9D
5F8:04 8D B4 02 AD B5 02 8D
600:9D 04 AD B9 02 8D 9C 04
608:AD BD 02 8D 9B 04 AD C1
610:02 8D 9A 04 20 8C 05 AD
618:9A 04 8D C1 02 AD 9B 04
620:8D BD 02 AD 9C 04 8D B9
628:02 AD 9D 04 8D B5 02 AD
630:B6 02 8D 9D 04 AD BA 02
638:8D 9C 04 AD BE 02 8D 9B
640:04 AD C2 02 8D 9A 04 20
648:8C 05 AD 9A 04 8D C2 02
650:AD 9B 04 8D BE 02 AD 9C
658:04 8D BA 02 AD 9D 04 8D
660:B6 02 60 AD B3 02 8D 9A
668:04 AD B7 02 8D 9B 04 AD
670:BB 02 8D 9C 04 AD BF 02
678:8D 9D 04 20 8C 05 AD 9D
680:04 8D BF 02 AD 9C 04 8D
688:BB 02 AD 9B 04 8D B7 02
690:AD 9A 04 8D B3 02 AD B4
698:02 8D 9A 04 AD B8 02 8D
6A0:9B 04 AD BC 02 8D 9C 04
6A8:AD C0 02 8D 9D 04 20 8C
6B0:05 AD 9D 04 8D C0 02 AD
6B8:9C 04 8D BC 02 AD 9B 04
6C0:8D B8 02 AD 9A 04 8D B4
6C8:02 AD B5 02 8D 9A 04 AD
6D0:B9 02 8D 9B 04 AD BD 02
6D8:8D 9C 04 AD C1 02 8D 9D
6E0:04 20 8C 05 AD 9D 04 8D
6E8:C1 02 AD 9C 04 8D BD 02
6F0:AD 9B 04 8D B9 02 AD 9A
6F8:04 8D B5 02 AD B6 02 8D
700:9A 04 AD BA 02 8D 9B 04
708:AD BE 02 8D 9C 04 AD C2
710:02 8D 9D 04 20 8C 05 AD
718:9D 04 8D C2 02 AD 9C 04
720:8D BE 02 AD 9B 04 8D BA
728:02 AD 9A 04 8D B6 02 60
730:AD B6 02 8D 9A 04 AD B5
738:02 8D 9B 04 AD B4 02 8D
740:9C 04 AD B3 02 8D 9D 04
748:20 8C 05 AD 9D 04 8D B3
750:02 AD 9C 04 8D B4 02 AD
758:9B 04 8D B5 02 AD 9A 04
760:8D B6 02 AD BA 02 8D 9A
768:04 AD B9 02 8D 9B 04 AD
770:B8 02 8D 9C 04 AD B7 02
778:8D 9D 04 20 8C 05 AD 9D
780:04 8D B7 02 AD 9C 04 8D
788:B8 02 AD 9B 04 8D B9 02
790:AD 9A 04 8D BA 02 AD BE
798:02 8D 9A 04 AD BD 02 8D
7A0:9B 04 AD BC 02 8D 9C 04
7A8:AD BB 02 8D 9D 04 20 8C
7B0:05 AD 9D 04 8D BB 02 AD
7B8:9C 04 8D BC 02 AD 9B 04
7C0:8D BD 02 AD 9A 04 8D BE
7C8:02 AD C2 02 8D 9A 04 AD
7D0:C1 02 8D 9B 04 AD C0 02
7D8:8D 9C 04 AD BF 02 8D 9D
7E0:04 20 8C 05 AD 9D 04 8D
7E8:BF 02 AD 9C 04 8D C0 02
7F0:AD 9B 04 8D C1 02 AD 9A
7F8:04 8D C2 02 60 AD B6 02
800:8D 9D 04 AD B5 02 8D 9C
808:04 AD B4 02 8D 9B 04 AD
810:B3 02 8D 9A 04 20 8C 05
818:AD 9A 04 8D B3 02 AD 9B
820:04 8D B4 02 AD 9C 04 8D
828:B5 02 AD 9D 04 8D B6 02
830:AD BA 02 8D 9D 04 AD B9
838:02 8D 9C 04 AD B8 02 8D
840:9B 04 AD B7 02 8D 9A 04
848:20 8C 05 AD 9A 04 8D B7
850:02 AD 9B 04 8D B8 02 AD
858:9C 04 8D B9 02 AD 9D 04
860:8D BA 02 AD BE 02 8D 9D
868:04 AD BD 02 8D 9C 04 AD
870:BC 02 8D 9B 04 AD BB 02
878:8D 9A 04 20 8C 05 AD 9A
880:04 8D BB 02 AD 9B 04 8D
888:BC 02 AD 9C 04 8D BD 02
890:AD 9D 04 8D BE 02 AD C2
898:02 8D 9D 04 AD C1 02 8D
8A0:9C 04 AD C0 02 8D 9B 04
8A8:AD BF 02 8D 9A 04 20 8C
8B0:05 AD 9A 04 8D BF 02 AD
8B8:9B 04 8D C0 02 AD 9C 04
8C0:8D C1 02 AD 9D 04 8D C2
8C8:02 60 AD 11 D0 10 FB AD
8D0:10 D0 8D E1 02 C9 D7 D0
8D8:04 20 96 05 60 C9 D3 D0
8E0:04 20 63 06 60 C9 C1 D0
8E8:04 20 30 07 60 C9 C4 D0
8F0:04 20 FD 07 60 4C CA 08
8F8:20 88 04 20 E2 02 20 07
900:04 20 E2 02 20 61 04 20
908:46 03 20 CA 08 4C 01 09
Trabalho em vídeo no youtube.O que vem a seguir?
Primeiro de tudo, o caso, quero torná-lo bonito.
Adaptador para teclado e cartão SD. Como é necessário livrar-se da montagem na superfície, pretendo desenvolver e solicitar uma placa de circuito impresso na China.
Trabalhe com vários arquivos. Eu pretendo escrever um gerenciador de arquivos para o Arduinka, o que me permitirá selecionar um arquivo do cartão e executá-lo.
Também comprei um conector para placas de expansão. Quero soldar para ele uma placa de áudio no K580VI53 (apenas porque esse timer está em casa) e desenhar uma pequena demonstração com som.
Este provavelmente será o próximo artigo.
Conclusão
Dizer que eu realmente gostei de criar, depurar e escrever um programa para a Apple 1 é quase nada a dizer.
Muito obrigado ao usuário Mdesk e a todos os caras do zx-pk.ru por sua ajuda na explicação dos meandros da arquitetura e por dicas úteis na configuração deste PC.
Bem, os maiores agradecimentos a Steve Wozniak por este maravilhoso computador pessoal !!!
Links úteis
Apple 1 no wikiCarregamento BASIC no Altair 8800Apple 1 e um monitor moderno (três minutos e meio de dor e sofrimento)30 anos Apple 1 (demo)Emulador online da Apple 1Montador / desmontador / depurador online 6502Sites em russo dedicados à Apple 1:
mdesk.ruzx-pk.ru