Eu queria fazer uma demonstração desde que me familiarizei com esse fenômeno da subcultura de computadores no exemplo clássico da polonesa
Lyra II . Eu também regularmente queria exibir algo no maior demopati russo, a
Chaos Constructions , mas cada vez que minhas mãos não chegavam. Por fim, foi possível satisfazer as duas necessidades ao mesmo tempo, no estilo de Van Damme (duplo golpe, do toca-discos) - para fazer e montar o
AONDEMO . Na competição
ZX Spectrum 640K Demo .
Nós oferecemos-lhe um guia detalhado sobre como chegar a essa vida.
A história
Telefones com identificador de chamadas automático (também conhecido como "identificador de chamadas" ou "secretário eletrônico") apareceram na URSS por volta de 1989 e, nos 15 anos seguintes, desenvolveram-se rapidamente, passando pelos meios de ganhar estudantes, engenheiros desempregados (junto com a montagem Espectro) e cooperativas inteiras, para o principal tema de atividade de empresas bastante grandes. Em meados da década de 1990, esse telefone foi encontrado em quase todos os apartamentos, e qualquer usuário da rede telefônica de uma vez podia entender, pela natureza dos bipes no aparelho, se seu número agora está determinado (bipes falsos e o som característico da solicitação). Em 2004, a popularidade de tais dispositivos desapareceu, o serviço de determinar o número no PABX inicialmente foi pago e, em seguida, foi completamente abolido, dando lugar a um padrão europeu mais moderno. A onipresença das comunicações móveis rapidamente levou os telefones com fio para o subterrâneo profundo, onde ainda não está claro quem estão saindo dos exigidos descendentes "de elite" dos AON 90s (
Palikha ).
O cenário de desenvolvedores e montadores de identificações de chamadas anteriores é um tipo de realidade paralela ao Spectrum doméstico. Raízes de rádio amadores e romance. Desenvolvimento espontâneo, desenvolvimento e produção artesanal. Hardware semelhante, interesses semelhantes, período semelhante e volume de popularidade. Muitas pessoas a princípio fizeram as duas coisas simultaneamente. Os jovens autores do software all-Union (Pavel Sukhodolsky, autor da
Rússia , então tinha cerca de 15 anos), emprestando código não selecionado uns dos outros, direitos autorais e mensagens no código, endereços de fidosny, artigos na imprensa, livros, mitologia e muito mais. Uma história em larga escala, mas já completamente coberta pelas areias do tempo, história do início da era digital, ainda esperando por seus pesquisadores.
Identificador de chamadas e eu
O meu conhecimento da AON ocorreu na primeira metade dos anos 90, já após os primeiros jogos que vi no Spectrum e no Dandy, mas pouco antes do início das atividades de programação criativa. Eu gostava de mexer com esses telefones, experimentando sequências de teclas em firmware novo ou desconhecido, ouvindo melodias populares em uma versão "computador" e me surpreendendo com as vozes "computador", além de ler as instruções para mencionar artefatos desconhecidos "gravador", "loop de segurança" , “Cartão de voz”, “bip”. Um amigo de infância ajudou seu pai a montar esses dispositivos, e eu gostava de eletrônicos e apenas me interessei por computadores e, assim, aos trancos e barrancos, envolvi-me em conhecimentos secretos sobre o Z80, BB55 e outras notações mágicas. Ao mesmo tempo, "determinantes" começaram a aparecer entre todos os amigos. Eles freqüentemente quebravam e caíam em minhas mãos com um pedido para tentar consertar, o que eu fiz, algumas vezes com sucesso, muitas vezes não. Nos anos 2000, essa atividade não deu em nada.
Em 2013, ao escavar os cantos mais distantes do apartamento, deparei-me com dois telefones sobreviventes e lembrei-me dos velhos tempos. Um pouco mais tarde, as pesquisas na área de música de 1 bit, sintetizadores de bricolage e especialmente computadores antigos, como o KIM-1, me fizeram pensar que o AON é um computador de placa única, pronto e completo, que pode ser usado para fins musicais não padrão (como bateria eletrônica ou seqüenciador). Entusiasmado, comecei a escrever um emulador e desmontar o firmware antigo, mas logo ficou claro que os telefones encontrados anteriormente eram jogados com sucesso durante o processo de limpeza. O tópico foi adiado.
Gradualmente vários interesses, idéias e assuntos - o desenvolvimento do PCSPE para PC Speaker, memórias e interesse em telefones antigos com AON e sua história, lendo o site
155la3 sobre raros componentes de rádio soviéticos (
indicadores de segmento incríveis! ), Antigas idéias sobre o uso musical deste ferro, a aquisição de muitos As identificações de chamadas no Avito, bem como as peças de reposição e ferramentas eletrônicas para vários projetos, o trabalho contínuo no emulador e assim por diante, se desenvolveram no esquema certo. Pouco antes do
Multimatográfico de 2018, uma conexão lógica foi finalmente formada entre as entidades “demo” e “phone” (tanto quanto me lembro, isso foi causado pela frase “demo para uma calculadora” vista) e um trabalho intencional começou. É claro que nada de significativo poderia ser feito em uma semana com um pouco, as coisas desaceleraram, mas foram retomadas com a abordagem do
CC2018 . Nas melhores tradições, com trabalho duro e esforços incríveis, por dois dias e na noite anterior à festa, consegui inventar, escrever e depurar a maioria dos planos, gravar e editar o vídeo e enviar o trabalho para o concurso de manhã cedo.
Já após o lançamento, eu descobri que os displays de sete segmentos não são raros nos trabalhos de
Wild ompo . Mas eu nunca vi essas pessoas e nunca ouvi falar delas antes.
Ferro

De fato, o AON é o computador de placa única mais simples com uma tela de sete segmentos, um teclado de telefone e uma interface de linha telefônica. Ao longo de uma década e meia, o ferro mudou, do design do KR580VM80 (i8080) 1989 ao chip
R100-XP customizado da
Russia-Telecom 2003 (8051, periféricos e analógico AY-3-8910 em um chip), com muitos intermediários paradas e galhos.
Escolhi a versão mais clássica e popular do desenvolvimento de 1990, histórica e tecnicamente mais próxima do espírito do Spectrum: Z80 a 4 MHz exatamente, 2 kilobytes de RAM estática, 8-64 kilobytes de ROM, porta 8255 e timer 8253 com uma frequência de entrada de 1 MHz. Um dos canais do timer gera interrupções, outro som, o terceiro não está envolvido. Esse esquema foi apresentado na forma de placas "grandes" e "pequenas"; a primeira foi projetada especificamente para instalação no caso do telefone com botão de pressão
VEF-TA-12 da Letônia; a segunda foi colocada em uma ampla variedade de telefones importados, principalmente clones de escritório da
Panasonic . Para essas placas, havia uma variedade de firmware, em particular,
Arktur-36 ,
Selena ,
Lira ,
Hello . E, claro, a mais famosa é a
Rússia , incluindo a versão 23.
A reprogramação do telefone é muito simples - qualquer ROM de 5 volts do volume necessário e um programador são suficientes. Usei várias EEPROMs de placas-mãe antigas e o novo Winbond W27C512 adquirido na China, além do programador WizardProg-87 mais fácil e acessível.
A maior dificuldade ao trabalhar com ferro acabou sendo o estado dos painéis sob a ROM nas placas da antiguidade de um quarto de século ou mais. Eles não eram inicialmente de alta qualidade e hoje em dia o contato é constantemente perdido, o que dificulta determinar se isso é um erro no código escrito ou apenas um não contato no soquete. Tentei resolver esse problema instalando um soquete ZIF, mas a altura dos outros componentes na placa não permitiu que ele fosse soldado, e a prateleira dos conectores de aumento de altura, inseridos no soquete original, também sofria com a perda constante de contato.
Efeitos

Antes de iniciar o desenvolvimento da demo, escrevi, ou melhor, acrescentei o emulador AON, iniciado em 2014. Eu tive que lidar com alguns pontos não óbvios, bem como aplicar o código de emulação de temporizador 8253 de outra pessoa para obter um som mais ou menos normal e a frequência das interrupções. A presença de um emulador e pelo menos recursos rudimentares de depuração nele aceleram bastante o desenvolvimento. Além disso, o código foi testado principalmente no emulador, e apenas ocasionalmente no hardware, para garantir que tudo funcione corretamente e pareça normal no display de LED com indicação dinâmica, uma simulação adequada da qual ainda não fui capaz de fazer.
O código foi escrito em
SjAsmPlus regular. O identificador de chamadas tem um cartão de memória bastante bizarro, provavelmente o resultado de minimizar as alterações de hardware enquanto expande os volumes de ROM para um firmware novo e mais poderoso. Como resultado, embora seja possível instalar até 64 kilobytes de ROM, apenas 32 kilobytes estão disponíveis na memória, alternando entre bancos de 8 kilobytes de RAM. Metades de 32 kilobytes da ROM completa podem ser trocadas pela saída para a porta, mas isso não era necessário para a demonstração, tudo se encaixava em 32K. Na imagem da ROM, os bancos de 8 kilobytes devem seguir uma linha, sem lacunas, portanto, usando diretivas assembler e um arquivo BAT, eu tive que organizar a colocação dos bancos nos endereços desejados com adições de zeros, salvar e mesclar separadamente na imagem final.
Cerca de metade dos efeitos da demo são escritos em código honesto, e a segunda metade, que já estava ficando sem tempo, foi feita na forma de animação. A animação foi desenhada em um editor-puxador
LED9ED , que pode ser baixado no meu site.

Devido à densidade bastante alta de efeitos, cerca de 4 segundos por efeito, e o embaralhamento gradual de efeitos, mais próximo do prazo, descobriu-se que o conteúdo da parte central de 16 segundos da demo, onde a pseudo-polifonia musical se desenrola com força total, estava completamente ausente. Um efeito de preenchimento explícito foi inventado com urgência, embora bastante pegajoso, com segmentos em queda, alternando com o analisador de espectro previamente escrito. Eu tinha que esperar que a alta densidade de informações sonoras desviasse a atenção da ação prolongada na tela.
Os primeiros nomes no bloco de boas-vindas são uma homenagem aos entusiastas do passado. Estes são os nomes dos autores do firmware AON encontrados nas telas de apresentação e no código.
Embora esse não fosse exatamente o assunto, seria imperdoável perder a oportunidade de mostrar a famosa inscrição EGGOG de sete segmentos. O local mais lógico para isso foi encontrado no final - a demonstração começou com uma imitação de falha e terminou com uma mensagem de erro.
Análise da implementação do software dos efeitos não faz muito sentido, tudo é bastante transparente. A principal característica da plataforma, que vale a pena mencionar, é a necessidade de indicação dinâmica de software, ou seja, você precisa separar constantemente os bits da tela e incluir os segmentos desejados. Isso é feito através de interrupções. A taxa de interrupção foi escolhida bastante alta, 960 hertz (~ 4166 ciclos de relógio por interrupção), e a indicação foi feita através de uma lista de comprimento arbitrário, que descreve a ordem em que as descargas são ativadas. Além de uma tela estável com brilho decente, isso facilitou a realização de dois efeitos - “congelamento” com um oito característico de brilho (a enumeração de dígitos deixa de funcionar) e o efeito de alterar o brilho (algumas descargas são ativadas várias vezes em um ciclo). No modo de exibição normal, a taxa de atualização da tela é de cerca de 106 hertz, o que eliminou a cintilação perceptível aos olhos e simplificou a captura subsequente em vídeo.
Música
O único canal de som da AON é construído em um dos canais do timer 8253 e copia essencialmente o dispositivo PC Speaker, apenas com uma frequência de entrada diferente - ou seja, ele pode tocar um som de uma determinada altura enquanto o processador trabalha. Não há como alterar a forma e o volume do sinal. Desde que trabalho com o tema da música no PC Speaker clássico há algum tempo - escrevi a ferramenta PCSPE VST para criar convenientemente essa música no DAW moderno e ganhei experiência em organizar melodias estritamente monofônicas (apenas uma nota sempre soa de cada vez) - uma solução era óbvio: não escrever outro mecanismo de 1 bit, mas apenas fazer música no PCSPE e adaptá-lo ao AON. É menos trabalhoso, autêntico em som e ideologicamente verdadeiro - retira o incomum do familiar.

A música foi escrita em
Reaper . Como a idéia artística para iniciar a demo era imitar o lançamento padrão do firmware Rus, eu apenas repeti essa melodia, imitei alguns sons típicos (pressionamentos de botão, toque padrão) e construí uma composição rítmica a partir deles. Além disso, a pista se desenvolveu gradualmente, com base na idéia inicial, ao longo do caminho da complicação gradual - cada vez mais partidos, criando a ilusão do som simultâneo de vários canais. Como a ideia do efeito mais difícil da demo era um símbolo que corria da esquerda para a direita com diferentes níveis de brilho, remanescente da iluminação de uma máquina Kitt, também fiz uma inserção com uma melodia da
Knight Rider e encontrei um local adequado para ela.
A plataforma escolhida é muito limitada em termos visuais e, para aumentar o entretenimento, foi inicialmente decidido fazer o trackmo, ou seja, uma sincronização exata da música e dos efeitos visuais. Portanto, a música e o enredo da demo foram principalmente inventados e escritos em paralelo. Ao contrário dos rastreadores, onde apenas o padrão atual e a lista de pedidos são visíveis, no Reaper você pode ver a faixa e sua estrutura como um todo, além de reorganizar fragmentos com facilidade. Isso ajudou a tomar decisões sobre a estrutura e o conteúdo da demonstração.
Infelizmente, a sincronização precisa dos efeitos com a música acabou sendo muito difícil. O som no meu emulador bruto não corresponde exatamente à exibição, os testes frequentes no hardware são difíceis e não houve tempo para desenvolver um sistema de sincronização normal usando registros de data e hora. Como resultado, em alguns lugares, você pode ver não exatamente o impacto exato dos efeitos na música. Enquanto havia tempo, ao longo do caminho, os tempos eram ajustados manualmente, mas no final eu tive que chegar a um acordo com a sincronização não mais precisa e publicar como ela é.
Além dos sons, o firmware para AONs era notável para amostras de voz. No processo, ordenei em termos gerais o formato de armazenamento e ouvi amostras em que havia muitas coisas interessantes (3-4 vozes diferentes, emprestando-as discretamente de firmware para firmware, frases de envio de um assinante para vários lugares). Havia uma idéia para inserir um discurso na demo composta por essas amostras, dizendo algo inesperado em uma voz reconhecível. Mas não houve tempo suficiente para apresentar uma boa ideia e sua implementação. Como um fato interessante, a voz no firmware antigo é armazenada na forma de amostras de 4 bits com uma frequência de amostragem de 4500-5000 Hz e é reproduzida através do timer PWM.
Vídeo
Para mostrar uma demonstração de um hardware incomum, não podendo participar da festa com esse hardware, eu precisava gravar e editar um vídeo - essa não é uma ocupação comum para um programador ao criar uma demonstração.

No processo de desenvolvimento, foram utilizados dois dispositivos, um completamente não apresentável com uma prancha pequena e um
VEF-TA-12 clássico bem preservado com uma prancha grande. Os testes foram realizados principalmente no primeiro e no último toque de depuração e gravação de vídeo - no segundo. Também difere da vantagem em números visualmente maiores no visor, embora o tipo de indicador seja o mesmo. Provavelmente, a menor distância da tela ao filtro teve um papel importante.
Uma característica interessante dessa tela, a calculadora
ALS318 , acabou sendo que, em todas as cópias dos AONs que tenho em mãos, algumas das descargas visivelmente perderam o brilho. Provavelmente o fato é que os identificadores de chamadas gostaram de travar e, quando a indicação dinâmica congela, uma das descargas por um longo tempo acende com brilho total. Embora fosse possível escolher e exibir a exibição mais animada, eu não fiz nada sobre isso, decidindo que isso acrescentaria autenticidade ao vídeo.
Tudo foi filmado no último momento com muita pressa, em uma câmera de vídeo comum, e depois rápida e rapidamente montada no Blender - porque lá de alguma maneira eu sabia como fazê-lo, mas não havia mais nada à mão. A parte introdutória foi projetada para lembrá-lo do milagre da tecnologia e para explicar como outro programa chegou lá. Os planos também tinham um quadro com a inserção da ROM na placa, mas precisavam ser abandonados devido ao estado do painel da ROM, exigindo a substituição de duas mãos por um longo e obsceno grunhido.
Divulgação e Resultados
Seção para aqueles que estão interessados na vida das demoscenas e sutilezas organizacionais.
Como se viu, a demo estava na categoria
ZX Spectrum . Apenas duas semanas antes do evento, uma alteração nas regras foi introduzida, dizendo que a participação nessa categoria está autorizada a funcionar "para computadores compatíveis com o ZX Spectrum e outros computadores lançados até 1991". De fato, a categoria se transformou em uma
demonstração combinada da velha
escola , ou seja, uma demonstração de qualquer plataforma de computador antiga e, por motivos de natureza política da cena, o nome permanece o mesmo. Obviamente, isso causou uma certa quantidade de mal-entendidos e críticas, e já começou a se tornar um meme da cena local.
Além disso, na própria festa, devido ao número insuficiente de trabalhos em várias competições, a maioria das demos para plataformas raras e
Wild foram combinadas na
Demonstração Combinada e, além do meu trabalho, apenas um trabalho não-ZX entrou na
Demonstração ZX . Nesta situação, acredito que seria mais apropriado destacar esses dois trabalhos no
Combined , deixando desta vez uma competição com o ZX Spectrum em nome apenas do ZX Spectrum. Se soubesse dessa situação no momento do envio do trabalho, escolheria a categoria
Demonstração combinada .
Por quais razões, decidi não exibir na categoria
Wild (tradicionalmente exibia trabalhos no formato de vídeo e animação, embora teoricamente também seja destinado a trabalhos em plataformas não-padrão). Não discuto que, de fato, o trabalho esteja muito próximo dessa direção.
Mas ainda assim, essa é uma demonstração real, com um código-fonte e binário TRD real , para uma plataforma real e muito popular no passado, semelhante aos nossos computadores domésticos. Ele pode ser facilmente iniciado e visualizado em hardware real - você só precisa de um programador, como no caso de consoles. O próprio ferro também é bastante acessível, definitivamente mais acessível do que, por exemplo, o ZX-81. Também não há emulador. Em outras palavras, essa não é uma ação única e repetidamente dificilmente repetida na forma de um vídeo (como uma demonstração de um caixa eletrônico ou um modelo raro de câmera), qualquer um pode ver facilmente meu trabalho e fazer algo semelhante agora.Baixar
AONDEMO com fontesAONZ80Emu para WindowsLED9ED para WindowsPCSPE para DAW com suporte a VSTi