Periféricos necessários para executar o Tiny BASIC interativamente em um Intel 8080
Eu tenho um núcleo Intel 8080 e gostaria de construir o sistema de computador mínimo em torno dele para executar o Tiny BASIC interativamente. Estou construindo este computador em um FPGA, então não estou perguntando sobre os componentes reais, mas sim sobre a conexão dos periféricos em termos de portas ou endereços mapeados na memória.
Uma resposta ideal para minha pergunta consistiria em um link para um binário Tiny BASIC pronto para ser carregado em um Intel 8080, junto com informações de layout de memória (por exemplo, "coloque o binário na RAM começando em 0x0000 com tamanho de pelo menos 4 K"), inicialização ("redefina o PC para 0x0100 para iniciar") e IO (por exemplo, "se um byte for gravado na porta 0x01, mostre-o como ASCII para o usuário. Se um byte for lido na porta 0x02, retorne 1 se um novo byte de entrada está pronto, caso contrário, 0. Se um byte for lido da porta 0x69, retorne o próximo byte de entrada ", ou" interrompa RST 3quando um novo byte de entrada estiver disponível e coloque-o no endereço de RAM 0Ff000 ").
Devo também acrescentar que estou procurando uma versão autônoma, não uma que requeira CP / M. Quanto mais simples forem os periféricos, melhor.
Respostas
Eu tenho o código-fonte do Tiny BASIC 1 e 2, exatamente pelo mesmo motivo que você descreveu (meu próprio computador baseado em 8080).
Aqui está um código fonte e um binário , pronto para carregar a partir de 01000h. A comunicação serial é fornecida pelo ACIA MC6850 - consulte as linhas 1420 - 1475, rotinas outce chkio. O ACIA é acessado via 0DEh (registro de controle / status) e 0DFh (registro de dados).
Então: carregue-o a partir de 1000h, comece com JMP 01000h, a leitura de 0DEh espera um byte de status (bit 2 = 1 quando ACIA está liberado para enviar, bit 1 = 1 quando ACIA recebeu dados), a leitura de 0DFh lê os dados recebidos, escrevendo para 0DFh envia dados para transmissão.
Acredito que você possa apreciar a implementação VHDL do MC6850 para FPGA .
(Sinta-se à vontade para entrar em contato comigo para obter mais detalhes ou ajudar na personalização do seu hardware.)