Ás de Júpiter
O Jupiter Ace da Jupiter Cantab foi um computador doméstico britânico do início dos anos 80. O Ace diferia de outros microcomputadores da época porque seu ambiente de programação usava o Forth em vez do mais popular BASIC.
Depois que a Jupiter Cantab cessou suas atividades, a marca foi adquirida pela Boldfield Computing Ltd em 1984, antes de ser vendida para a empresa de Paul Andrews, Andrews UK Limited, em 2015.
História
Jupiter Cantab foi formado por Richard Altwasser e Steven Vickers. Ambos estiveram na equipe de design do ZX Spectrum: Altwasser trabalhou no desenvolvimento do ZX-81 e no design do hardware do Spectrum. Vickers adaptou e expandiu a ROM 4K ZX-80 para a ROM 8K ZX-81 e escreveu a maior parte da ROM para o Spectrum.
O Jupiter Ace recebeu o nome de um dos primeiros computadores britânicos, o Pilot ACE.
As vendas para o público em geral foram lentas. Inicialmente o computador só estava disponível por correspondência, e o Jupiter Cantab relatou que havia dificuldades de produção, mas que já haviam sido superadas em janeiro de 1983 e que as unidades chegavam às lojas. O uso do Forth em vez da escolha mais comum do BASIC, e a disponibilidade e sucesso do ZX Spectrum, bem como software publicado limitado, o case pobre e a pequena memória inicial pesaram contra a aceitação mais ampla do mercado.
Vendas
As vendas da máquina nunca foram muito grandes; o número relatado de Ace's vendidos antes de o Jupiter Cantab fechar os negócios era de cerca de 5.000. No início dos anos 2000, as máquinas sobreviventes eram incomuns, muitas vezes alcançando preços altos como itens de colecionador.
Forth, embora estruturado e poderoso, era considerado difícil de aprender, e o conhecimento de BASIC adquirido com a familiaridade com outros computadores domésticos não era de nenhuma ajuda prática para aprendê-lo. Uma análise de 1982 afirmou que "o sucesso do Jupiter Ace dependerá da aceitação do público comprador de máquinas por outra linguagem de microcomputador".
Além disso, havia apenas uma gama muito limitada de software publicado - programas comerciais ou programas impressos em revistas de hobby - para a máquina, e estes eram restritos pela pequena quantidade de RAM do modelo básico.
As tentativas de promover o Ace no mercado educacional também falharam; as dúvidas sobre se o Forth seria relevante para os programas de exames e a falta de apoio do corpo docente para o Forth foram questões-chave. Os alunos estavam mais interessados em aprender o amplamente usado BASIC do que uma linguagem usada por apenas uma máquina (incomum) com uma sintaxe RPN peculiar.
Finalmente, os gráficos baseados em blocos se comparam mal aos gráficos baseados em pixels de outras máquinas - que também eram coloridos em vez do monocromático do Ace. Isso restringiu as vendas em grande parte a um nicho de mercado de entusiastas de programação técnica.
Design
O Jupiter Ace é frequentemente comparado com o ZX81 devido ao seu tamanho semelhante, baixo custo e fator de forma semelhante. Internamente seu design é mais parecido com o ZX Spectrum embora o Ace também tivesse uma memória de vídeo dedicada de 2 KB, evitando em parte a lentidão quando os programas acessavam o mesmo banco (mesmos chips) da memória de vídeo. Como o Spectrum, o Ace usava chaves pretas de borracha condutora.
Os recursos de áudio eram controlados pela CPU com frequência e duração programáveis. A saída de som era feita por um pequeno alto-falante embutido.
Como era comum na época, utilizava um gravador comum ao invés de unidades de disco/fita. Da mesma forma, uma televisão era necessária como tela - mas era apenas em preto e branco, em vez da cor suportada por modelos concorrentes, como o Spectrum.
O Jupiter Ace foi baseado no Zilog Z80, que os designers tinham experiência anterior ao trabalhar no Sinclair ZX81 e ZX Spectrum.
Os gráficos e o texto podem ser exibidos ao mesmo tempo: (1) redefinição dos blocos de caracteres fornecidos gráficos padrão de 256 × 192 limitados aos 128 caracteres 8 × 8 disponíveis (definíveis), simultâneos com a plotagem de gráficos de 64 × 48.
Alto-falante interno controlado diretamente pela CPU em modo de tarefa única, com controle de frequência e duração do som em ms.
O armazenamento era feito por meio de uma interface de fita cassete a 1500 baud. Os arquivos podem ser usados para armazenamento de programas Forth (código compilado) ou despejos brutos de memória.
Memória
O Ace tinha uma ROM de 8 KB contendo o kernel Forth e o sistema operacional, e o dicionário predefinido de palavras Forth em cerca de 5 KB. Os 3 KB restantes de ROM suportavam várias funcionalidades: biblioteca de números de ponto flutuante e tabela de definições de caracteres, acesso ao gravador, descompilação e redefinição de 'palavras' (ou seja, rotinas). Algumas das ROMs foram escritas em código de máquina Z80, mas algumas também foram codificadas em Forth.
Os próximos 8 KB foram construídos na RAM que foi apenas parcialmente decodificada, com 2 KB de RAM de vídeo repetidos duas vezes e 1 KB de RAM do usuário repetido 4 vezes (com a mesma memória aparecendo em vários endereços de memória diferentes).
O uso do espelho de endereço inferior da RAM de vídeo selecionaria a prioridade da CPU, resultando em alguns pixels aleatórios momentâneos na tela quando o subsistema de vídeo e a CPU acessassem a RAM de vídeo no mesmo ciclo de clock. O uso do endereço superior pausaria brevemente a CPU na interferência, afetando o tempo do programa e tornando este modo inadequado para operações de E/S. Como a RAM de vídeo estava parcialmente separada do endereço principal e dos barramentos de dados, na maior parte do tempo o subsistema de vídeo e a CPU podiam operar em paralelo.
Os primeiros 16 KB do mapa de memória foram usados para ROM, Vídeo e RAM disponível para o usuário, deixando os segundos 16 KB do mapa de memória livres para extensão de RAM e os 32 KB superiores indefinidos.
Um banco de 1K permitiu a redefinição da maioria de seus 128 caracteres baseados em ASCII em formato bitmap de 8×8 pixels. O outro banco 1K armazenava a exibição em tela cheia de 24 linhas × 32 colunas de caracteres em preto e branco. A cor deveria ser alcançada como expansão, mas embora uma placa gráfica colorida tenha sido projetada, nenhuma foi produzida comercialmente.
1 KB de RAM com opção de um RAM-Pack de 16 KB e posteriormente de 32 KB. Um PCB também foi comercializado pela Boldfield Computing que converteu o conector de borda para compatibilidade elétrica com um Sinclair ZX81, permitindo o uso do pacote ZX81 16K RAM.
Especificações
Característica | Valor |
---|---|
Processador | Zilog Z80A com 3,25 MHz. |
Sistema operacional | FORTH (como linguagem de programação e interface de linha de comando). |
Memória | 2KB para vídeo + 1 base KB expansível até 49 KB (vídeo excluído). |
Vídeo | Subsistema independente com 2 dedicado Bancos SRAM: Tela (1 KB) + Char Tiles (1 KB). |
Soa. | Alto-falante interno, CPU conduzido (não dedicado). |
Expansão | 2 conectores: Principal (CPU relacionado) + Vídeo (Screen + sinal AV). |
Teclado e Carset | 40 chaves Qwerty teclado (Symbols acesso com chave extra).
Todos os chars em Charset (baseado em ASCII-1967) são redefináveis. |
Conjunto de caracteres | Baseado em ASCII-1967 com extensões como para o conjunto de caracteres ZX Spectrum incluindo ↑, £ e ©. |
As referências ao Ace RAM às vezes incluem a memória de vídeo separada de 2 KB, que não estava disponível para programação, levando a alguma confusão. Da mesma forma, às vezes é argumentado que, devido à eficiência de Forth, a RAM padrão de 1 KB era comparável a pelo menos 2 KB em um sistema BASIC.
Programação
Sua característica mais marcante foi a escolha do Forth, uma linguagem estruturada. A compilação encadeada permitia que programas escritos fossem executados quase tão rápido quanto muitas linguagens compiladas nativamente carregadas por computadores mais caros. Forth foi considerado bem adaptado para microcomputadores com sua memória pequena e processadores de desempenho relativamente baixo. Quatro programas são eficientes em termos de memória; à medida que se tornam maiores, eles reutilizam mais código definido anteriormente. As estruturas de controle podem ser aninhadas em qualquer nível, limitadas apenas pela memória disponível. Isso permitiu que programas complexos fossem implementados, permitindo até mesmo programação recursiva. O Ace's Forth foi declarado "dez vezes mais rápido que o Basic". e usava menos da metade da memória (uma porcentagem de custo significativa dos computadores de baixo custo da época) de um programa equivalente escrito em BASIC interpretado. Também permitia a fácil implementação de rotinas de código de máquina, se necessário.
O Ace's Forth foi baseado principalmente no Forth-79, com algumas diferenças relevantes, em particular adicionou verificação de sintaxe para controlar estruturas e construções definidoras e algumas palavras extras foram adicionadas com base em som, vídeo e fita BASIC comuns comandos. A implementação carecia de algumas palavras Forth usadas com menos frequência, sendo facilmente implementadas, se necessário. A verificação de erros em tempo de execução pode ser desativada para aumentar a velocidade em 25% a 50%.
Descompilando
Its Forth foi adaptado para o hardware de computador doméstico que usa fita sem disco, sendo capaz de salvar/carregar "vocabulários compilados" do usuário, em vez dos blocos de programação numerados usuais usados pelos sistemas de disquete.
A descompilação evitou o desperdício de RAM ao simular um Block System ausente, usado tanto com drivers de disco quanto de fita (estes últimos não devem ser confundidos com gravadores). Como substituto, incluiu um arquivo de dados extra, para dados binários brutos. Essas soluções eram exclusivas do Jupiter Ace.
DEFINIDOR x COMPILADOR
Para permitir a descompilação, ele distinguiu a criação de palavras do definidor e do compilador Forth, substituindo CREATE.. DOES>, par de criação por:
- ... Sim. Criar novas palavras Defining, geralmente usadas para definir e construir estruturas de dados. Semelhante a CREATE.DOES uso em FORTH padrão. (Exemplo: Adicionando Estruturas de Dados como Arrays, Records,...).
- COMPILER.. RUNS> Criar novas palavras de compilação, menos frequentemente usadas para estender a linguagem com palavras de compilador onde CREATE..DOES> é a implementação FORTH dependente. (Exemplo: Novo Compiler Control Structures as Case, Infinite Loop,...).
Esses 2 pares definidores, em vez de um sozinho, permitiram que o Ace descompilasse seus programas, ao contrário dos sistemas Forth usuais. Essa capacidade de descompilação foi uma solução para a ausência do sistema de disco mais flexível usado pelo Forth. Não armazenando a fonte de um programa Forth, mas compilando o código após a edição, evitou completamente a emulação de uma unidade de disco/fita na RAM, economizando memória do computador. Também economizou tempo na leitura e gravação de programas de fita cassete. Essa solução compatível com fita e com economia de RAM foi exclusiva do Jupiter Ace Forth.
Os nomes podem ser equívocos fora de um contexto Forth, pois todas as palavras são compiladas quando declaradas. DEFINER define uma nova Classe (como um array) que construirá (compilará) um Objeto array. Eles estão ativos no 'Interpreter'. Emparelhando este modo de interação, o COMPILER define uma estrutura de programação (geralmente um par ou um trio) como IF-ELSE-THEN. Essas 'programação estruturada' estão ativos em 'Compilar' modo (que é simplesmente construir um novo Forth Word). Em suma, "Modo de interpretação" significa estágio de execução, enquanto "modo de compilação" refere-se a um estágio de edição.
Desenvolvimento
Evitar fontes era compensado armazenando comentários inseridos no código com a saída compilada, a compilação tradicional descartaria tais comentários. Os comentários foram então recuperados na descompilação. Como resultado de "código é a fonte", as palavras modificadas (editadas) exigiriam a atualização de todo o código usando o recém-editado. Isso foi feito com o comando REDEFINE não padrão.
Embora não explicitamente projetado para tal finalidade, o Forth compilado pode ser utilizado para extensões de ROM para o sistema integrado. ROMs externas foram desenvolvidas com Ace Forth para serem usadas como aplicações de controle.
Complementos
A máquina foi capaz de usar alguns complementos ZX-81 devido a locais de RAM semelhantes e slot de expansão externa. O Jupiter Cantab fez um pacote de RAM de 16 KB e empresas externas fizeram pacotes de RAM semelhantes, bem como outros periféricos e interfaces.
- Pacotes de RAM
- 16 KB de Júpiter Cantab.
- 16 KB e 32 KB pela Stonechip Electronics.
- 16 KB de Sinclair, com placa adaptadora de Júpiter Cantab para compatibilidade elétrica.
- 48 KB por Boldfield (novo proprietário de Júpiter Ace após Júpiter Cantab).
- Teclado
- Memotech Keyboard, da Memotech.
- Soa.
- SoundBoard (1983) por Essex Micro Electronics,
- Armazenamento
- Jet-Disc Disc Drive System (1983) por MPE (controle até quatro 3", 5 ou 8 unidades).
- "Deep Thought" Interface de disco com um 4K AceDOS em um EPROM (1986) por J Shepherd & S Leask.
- Adaptadores de impressora
- ADS Centronics Interface Machine (1983), de Advanced Digital Systems,
- RS232 & Centronics PrinterCard (1984) da Essex Micro Electronics.
- Cartão de gráficos
- Cartão de escala cinza - 4 tons de cinza por S Leask (1986)
Modelos
1982 - Júpiter Ace original em uma caixa a vácuo - Relatado 5000 unidades construídas.
1983 - Jupiter Ace 4000 em caixa moldada por injeção mais forte - Relatou 800 unidades construídas.
Contenido relacionado
Arquitetura Padrão da Indústria Estendida
Atari ST
Dublin Core