Commodore 128 - Commodore 128

Commodore 128
Commodore-128.jpg
Fabricante Commodore Business Machines (CBM)
Modelo Computador de casa
Data de lançamento 1985 ; 36 anos atrás ( 1985 )
Interrompido 1989 ; 32 anos atras ( 1989 )
Unidades vendidas 5,7 milhões em todo o mundo
Sistema operacional Commodore BASIC 7.0
Digital Research CP / M 3.0
GEOS
CPU MOS 8502 @ 1–2 MHz
Zilog Z80 A ou Zilog Z80 B @ 4 MHz
Memória 128  KB (padrão), 640  KB (com 512 KB de RAM de expansão REU)
Gráficos VIC-II E (320 × 200, 16 cores, sprites , interrupção de raster ), MOS 8563 (RGBI 640 × 200 16 cores, blitter )
Som SID 6581/8580 (3 × Osc , 4 × Wave , Filter , ADSR , Ring )
Antecessor Commodore 64

O Commodore 128 , também conhecido como C128 , C-128 , C = 128 , é o último computador doméstico de 8 bits lançado comercialmente pela Commodore Business Machines (CBM). Apresentado em janeiro de 1985 no CES em Las Vegas , ele apareceu três anos após seu antecessor, o best-seller Commodore 64 .

O C128 é um sucessor significativamente expandido do C64, com compatibilidade quase total. A máquina mais recente tem 128  KB de RAM em dois bancos de 64 KB e uma saída de vídeo em cores de 80 colunas. Possui caixa e teclado redesenhados . Também está incluído um CPU Zilog Z80 que permite que o C128 execute CP / M , como uma alternativa ao ambiente normal do Commodore BASIC . A presença do Z80 e da enorme biblioteca de software CP / M que ele traz, juntamente com a biblioteca de software do C64, deu ao C128 uma das mais amplas gamas de software disponível entre seus concorrentes.

O principal projetista de hardware do C128 foi Bil Herd , que havia trabalhado no Plus / 4 . Outros engenheiros de hardware foram Dave Haynie e Frank Palaia, enquanto o trabalho de design do IC foi feito por Dave DiOrio. O principal software do sistema Commodore foi desenvolvido por Fred Bowen e Terry Ryan, enquanto o subsistema CP / M foi desenvolvido por Von Ertwine.

Visão geral técnica

O prompt BASIC para o Commodore 128 no modo de 40 colunas, executando o Commodore BASIC V7.0

O teclado do C128 inclui quatro teclas de cursor, uma tecla Alt , -chave Ajuda , -chave Esc , tecla Tab e um teclado numérico . Nenhum deles estava presente no C64 que tinha apenas duas teclas de cursor, exigindo o uso da tecla Shift para mover o cursor para cima ou para a esquerda. Este arranjo alternativo foi mantido no 128, para uso no modo C64. A falta de um teclado numérico, tecla Alt e tecla Esc no C64 era um problema com alguns softwares de produtividade CP / M quando usados ​​com o cartucho Z80 do C64. Um teclado foi solicitado por muitos proprietários do C64 que passaram longas horas de entrar em linguagem de máquina tipo em programas . Muitas das teclas adicionadas combinavam com as contrapartes presentes no teclado do IBM PC e tornaram o novo computador mais atraente para os desenvolvedores de software de negócios. Enquanto o modo de 40 colunas do 128's duplica de perto o do C64, um 1K extra de RAM colorida é disponibilizado para o programador, já que é multiplexado através do endereço de memória 1. A fonte de alimentação do C128 é melhorada em relação ao design não confiável do C64, sendo muito maior e equipado com saídas de resfriamento e um fusível substituível. O C128 não executa um teste de RAM do sistema na inicialização, como as máquinas Commodore anteriores. Em vez do único microprocessador 6510 do C64, o C128 incorpora um design de duas CPUs. O CPU principal, o 8502 , é uma versão ligeiramente melhorada do 6510, capaz de ter uma freqüência de 2  MHz . A segunda CPU é um Zilog Z80 que é usado para executar o software CP / M , bem como para iniciar a seleção do modo de operação no momento da inicialização. Os dois processadores não podem funcionar simultaneamente, portanto, o C128 não é um sistema de multiprocessamento .

A arquitetura complexa do C128 inclui quatro tipos de RAM de acesso diferente (128 KB de RAM principal, 16–64 KB VDC de vídeo RAM, 2 kNibbles VIC-II Color RAM, 2 kilobytes de RAM para unidade de disquete em C128Ds, 0, 128 ou 512 KB RAM REU ), duas ou três CPUs (principal: 8502, Z80 para CP / M; a 128D também incorpora um 6502 na unidade de disco) e dois chips de vídeo diferentes (VIC-IIe e VDC) para seus vários modos operacionais.

As primeiras versões do C128 ocasionalmente apresentam problemas de confiabilidade relacionados à temperatura devido ao uso de uma proteção eletromagnética sobre a placa de circuito principal. O escudo era equipado com dedos que contatavam o topo dos chips principais, fazendo com que o escudo agisse como um grande dissipador de calor . Uma combinação de mau contato entre a blindagem e os chips, a condutividade térmica inerentemente limitada dos pacotes de chips de plástico, bem como a condutividade térmica relativamente pobre da própria blindagem, resultou em superaquecimento e falha em alguns casos. O chip de som SID é particularmente vulnerável a esse respeito. O remédio mais comum é remover a blindagem, que o Commodore adicionou no final do desenvolvimento para cumprir os regulamentos de radiofrequência da FCC.

O C128 possui três modos de operação . O modo C128 ( modo nativo ) funciona a 1 ou 2 MHz com a CPU 8502 e tem modos de texto de 40 e 80 colunas disponíveis. O modo CP / M usa o Z80 e o 8502 e pode funcionar no modo de texto de 40 ou 80 colunas. O modo C64 é quase 100% compatível com o computador anterior. A seleção desses modos é implementada por meio do chip Z80. O Z80 controla o barramento na inicialização e verifica se há um disco CP / M na unidade, se há algum cartucho C64 / C128 presente ou se a chave Commodore (que serve como o seletor do modo C64 ) está deprimido na inicialização. Com base nessas condições, ele mudará para o modo de operação apropriado.

Modos

C128

Placa principal C128

Em 1984, um ano antes do lançamento do Commodore 128, o Commodore lançou o Plus / 4 . Embora direcionado a um mercado de negócios de baixo custo que não podia pagar o custo relativamente alto e os requisitos de treinamento dos primeiros PC compatíveis com IBM , foi percebido pela imprensa da Commodore como uma continuação do 64 e espera-se que melhore a partir desse modelo capacidades. Enquanto os gráficos e recursos de som do C64 foram geralmente considerados excelentes, a resposta ao Plus / 4 foi de decepção. Após a introdução do Plus / 4, repetidas recomendações foram feitas na impressora Commodore para um novo computador chamado "C-128" com maior capacidade de RAM, uma tela de 80 colunas como era padrão em computadores comerciais, uma nova linguagem de programação BASIC que fez é fácil para os programadores usarem os gráficos e som do computador sem recorrer a PEEK e POKEs , uma nova unidade de disco que melhorou a taxa de transferência abismal do 1541 , bem como a compatibilidade total com C64.

Os projetistas do C128 conseguiram resolver a maioria dessas questões. Um novo chip, o VDC , fornece ao C128 um display compatível com CGA em cores de 80 colunas (também chamado RGBI para vermelho-verde-azul mais intensidade ). O então novo microprocessador 8502 é totalmente compatível com as versões anteriores do C64 6510 , mas pode funcionar com o dobro da velocidade, se desejado. O BASIC 2.0 do C64 foi substituído pelo BASIC 7.0, que inclui comandos de programação estruturados do BASIC 3.5 do Plus / 4, bem como palavras-chave projetadas especificamente para aproveitar as vantagens das capacidades da máquina. Um editor de sprite e monitor de linguagem de máquina foram adicionados. A parte do editor de tela do Kernal foi aprimorada para suportar um modo de inserção e outros recursos acessados ​​por meio de combinações de teclas ESC, bem como um recurso de janela rudimentar, e foi realocado para uma ROM separada . O chip VIC-II que controla o display de 40 colunas só pode operar a 1 MHz, então o display de 40 colunas aparece confuso no FASTmodo. No modo de 80 colunas, o editor aproveita os recursos do VDC para fornecer texto piscando e sublinhado, ativado por meio de códigos de escape , além do texto reverso padrão do Commodore. O modo de 80 colunas do C128 pode exibir caracteres minúsculos junto com caracteres gráficos PETSCII ; O modo de 40 colunas está sujeito à mesma restrição de "maiúsculas e minúsculas" ou "maiúsculas e gráficos" dos Commodores anteriores. Os modos de 40 e 80 colunas são independentes e ambos podem estar ativos ao mesmo tempo. Um programador com display composto e RGB pode usar uma das telas como um "bloco de notas" ou para suporte rudimentar de buffer múltiplo. O display ativo pode ser alternado com ESC-X. Um botão de reinicialização de hardware foi adicionado ao sistema. O teclado, no entanto, não foi alterado para o layout Selectric como se tornou padrão, em vez disso, manteve o mesmo design derivado de ADM-3A dos modelos anteriores do Commodore.

A parte traseira do Commodore 128

O chip VDC é amplamente inútil para jogos, uma vez que não possui sprites ou interrupções raster. NTSC C128s funcionam com qualquer monitor do tipo CGA (TTL RGB @ 15 kHz / 60 Hz), como o IBM 5153. No entanto, os modelos PAL do C128 operam a 50 Hz e não são compatíveis com a maioria dos monitores CGA, que esperam um Taxa de atualização de 60 Hz. O pino 7 da saída VDC (normalmente não utilizado em monitores CGA) produz um sinal NTSC / PAL monocromático, mas nenhum cabo foi fornecido para ele e os usuários interessados ​​tiveram que fazer o seu próprio ou adquirir um no mercado de reposição.

Duas novas unidades de disco foram introduzidas em conjunto com o C128: o 1570 de um lado, de curta duração, e o 1571 de dois lados . Um modelo 1572 de disco duplo foi anunciado, mas nunca produzido. Mais tarde, o 1581 de 3,5 polegadas foi lançado. Todas essas unidades são mais confiáveis ​​do que o 1541 e prometem desempenho muito melhor por meio de um novo recurso de "modo intermitente". O drive 1581 também tem mais RAM on-board do que seus predecessores, tornando possível abrir um grande número de arquivos ao mesmo tempo. BASIC 7.0 inclui DLOADe DSAVEcomandos para suportar carregar e salvar em disco sem usar o ,8ou outro número de dispositivo, e também um DIRECTORYcomando que lê as informações de catálogo de um disco diretamente para a memória de tela sem sobrescrever a memória BASIC como no BASIC 2.0. Além disso, o C128 apresenta inicialização automática de software de disco, um recurso padrão na maioria dos computadores pessoais, mas ausente das máquinas Commodore até aquele ponto. Os usuários não precisam mais digitar LOAD"*",8,1. O BASIC também adicionou um comando COLLECT para remover arquivos "splat" (arquivos que não foram fechados corretamente e truncados para comprimento zero).

Todas as unidades 1571 serão inicializadas normalmente no modo nativo no C128. Se o usuário alternar para o modo C64 digitando "GO 64", a unidade permanecerá no modo nativo. Mas se o modo C64 for ativado mantendo a tecla Commodore pressionada ao ligar, o 1571 entrará no modo 1541. Essa rotina é necessária para o software que executa o acesso ao inversor de baixo nível.

O C128 tem o dobro de RAM do C64, uma proporção muito maior da qual está disponível para programação BASIC, devido ao novo chip de comutação de banco MMU . Isso permite que o código do programa BASIC seja armazenado separadamente das variáveis, aumentando muito a capacidade da máquina de lidar com programas complexos, agilizando a coleta de lixo e facilitando a depuração para o programador. Um programa em execução pode ser executado STOP, seu código editado, os valores das variáveis ​​inspecionados ou alterados no modo direto e a execução do programa reiniciada com a tabela de variáveis ​​intacta usando o GOTOcomando do BASIC . Embora outros BASICs suportem o CONTcomando para reiniciar a execução sem limpar variáveis, a edição de qualquer código faz com que sejam limpos. Diferentes configurações de memória podem ser carregadas usando o BANKcomando do BASIC .

BASIC 7.0 tem um complemento completo de gráficos e comandos de manipulação de som, bem como comandos de disco do BASIC 4.0 e limpeza de lixo aprimorada, e suporte para programação estruturada via IF ... THEN ... ELSE, DO ... WHILE, e WHILE ... WEND loops. Caracteres programáveis ​​ainda não são suportados, então o programador terá que manipulá-los com PEEK e POKE como no VIC-20 e C64.

No lado negativo, o BASIC 7.0 funcionou consideravelmente mais lento do que o BASIC 2.0, a menos que o modo 2 MHz fosse usado devido ao seu tamanho de 28 KB (um aumento de 250% sobre o BASIC 2.0) e ter que alternar para acessar as variáveis ​​do programa e o texto do programa BASIC (se maior que 16k de comprimento).

A ROM do 128 contém um ovo de páscoa : inserir o comando SYS 32800,123,45,6no modo nativo revela uma tela com uma lista dos principais desenvolvedores da máquina seguida pela mensagem Link arms, don't make them."Além disso, inserir as palavras-chave QUITou OFFproduzirá um ?UNIMPLEMENTED COMMAND ERROR. Esses comandos são remanescentes do interpretador BASIC destinado a um computador portátil LCD planejado, mas nunca produzido, e tinham a intenção de sair do interpretador BASIC e ignorar a entrada do teclado durante a execução do programa sensível, respectivamente.

Os maiores recursos de hardware do C128, especialmente o aumento de RAM, resolução de tela e velocidade do barramento serial, tornaram-no uma plataforma mais capaz do que o C64 para executar o sistema operacional gráfico GEOS .

CP / M

O uso do modo CP / M requer o uso de um disquete de inicialização. O disquete foi incluído com o computador, que não incluiu uma unidade de disco.

A segunda das duas CPUs do C128 é o Zilog Z80 , o que permite que o C128 para execução CP / M . O C128 foi enviado com CP / M 3.0 (também conhecido como CP / M Plus, que é compatível com versões anteriores com CP / M 2.2) e emulação de terminal ADM31 / 3A . Um cartucho CP / M estava disponível para o C64, mas era caro e de uso limitado, uma vez que o drive 1541 não consegue ler os discos formatados em MFM nos quais o software CP / M foi distribuído. O software tinha que ser disponibilizado em discos específicos do Commodore formatados usando o esquema de codificação GCR . Commodore fez versões de PerfectCalc eo EMACS derivada de PerfectWriter disponíveis, e Commodore grupos de usuários , por vezes, tinha uma selecção de CP / M disquetes, mas a disponibilidade de software limitada negada uma das CP / principais atrações-its de M enorme biblioteca de software. Além disso, os cartuchos funcionam apenas nos primeiros modelos C64s de 1982 e são incompatíveis com unidades posteriores. Como eles também eram incompatíveis com o C128, a equipe de design decidiu oferecer suporte ao CP / M colocando o Z80 na placa de sistema principal.

O C128 executa o CP / M visivelmente mais lento do que a maioria dos sistemas CP / M dedicados, pois o processador Z80 funciona a uma velocidade efetiva de apenas 2 MHz. Isso ocorreu porque o barramento de sistema do C128 foi projetado em torno das CPUs 65xx. Essas CPUs lidam com endereçamento de dados e memória de maneira muito diferente do Z80. O CP / M também funcionou mais lentamente devido aos motivos mencionados abaixo, como a necessidade de passar o controle para o 8502 para qualquer processamento de E / S ou interrupção. Por essas razões, poucos usuários realmente executaram o software CP / M no C128.

Quando o C128 é ligado, o Z80 fica ativo primeiro e executa uma pequena ROM do carregador de inicialização a $ 0- $ FFF para verificar a presença de um disco CP / M. Se nenhum for detectado, o controle é passado para o modo nativo 8502 e C128 é iniciado.

O modo CP / M na prática requer um drive 1571 ou 1581 para ser útil, uma vez que um 1541 não pode ler discos MFM e irá rodar muito mais devagar devido a não suportar o modo burst do C128. No entanto, os discos de inicialização CP / M devem estar no formato GCR nativo da unidade; Os discos MFM não podem ser inicializados, apenas lidos quando o usuário já estiver no CP / M. Isso ocorre porque o código necessário para operar a unidade no modo MFM é carregado como parte do processo de inicialização. Além disso, o modo de 80 colunas geralmente é necessário, pois a maioria dos softwares CP / M espera uma tela de 80 colunas. O C128 emula um terminal ADM-3A no modo CP / M, então o software terá que ser configurado para isso. Além dos comandos do terminal ADM-3A padrão, vários comandos extras estão disponíveis para usar os recursos do VIC-II e do VDC, incluindo a configuração do texto e da cor de fundo. O interpretador de comandos CP / M (embora não seja um software aplicativo) inclui uma proteção para evitar que o usuário emita um código de controle para tornar o texto e o fundo da mesma cor, o que tornaria o texto invisível e forçaria o usuário a reiniciar o computador. Se isso acontecer, o padrão será um fundo cinza com texto marrom.

No modo CP / M, é possível executar o MBASIC, o lançamento da Microsoft do BASIC-80 para CP / M. Comparado com o modo nativo BASIC 7.0, MBASIC é conciso e limitado em suas capacidades, exigindo o uso de combinações de teclas no estilo de terminal para editar linhas de programa ou mover o cursor de texto e sem qualquer som ou recursos gráficos. Embora MBASIC tenha recursos matemáticos e de cálculo que faltam no BASIC 7.0, como suporte a variáveis ​​inteiras e de precisão dupla, qualquer vantagem de velocidade obtida pelo uso de variáveis ​​inteiras é considerada discutível pelo desempenho extremamente lento do computador no modo CP / M. Além disso, o Commodore BASIC tem ponto flutuante de 40 bits que serve como meio-termo entre o ponto flutuante de 32 bits do MBASIC e as variáveis ​​de precisão dupla de 64 bits. MBASIC também oferece apenas 34k de espaço de programa livre contra aproximadamente 90k do BASIC 7.0.

Outros softwares CP / M, como Wordstar e Supercalc, também serão significativamente superados por equivalentes C128 de modo nativo como PaperClip , que também têm uma interface mais fácil de usar.

O CP / M CBIOS (a parte do CP / M que faz interface com o hardware) não faz interface direta com o hardware como na maioria das implementações CP / M, em vez disso, ele chama as rotinas kernal para manipulação de interrupção e I / O - quando o kernal precisa ser usado, o Z80 usa rotinas em $ FFD0- $ FFEF para passar dados de parâmetro para o 8502, que é então ativado e o Z80 desativado. Após o término da execução da rotina kernal, o controle é passado de volta para o Z80. Foi relatado que o programador encarregado de portar o CP / M para o C128 pretendia ter a interface CBIOS com o hardware diretamente na linguagem de máquina Z80, mas teve grande dificuldade com os chips VDU, pois eles eram sujeitos a superaquecimento e autodestruição . O VDU também passou por várias revisões de hardware enquanto o C128 estava em desenvolvimento e o programador CP / M não conseguiu fazer seu código funcionar corretamente, então a equipe de engenharia do C128 solicitou que ele simplesmente reescrevesse o CBIOS para passar chamadas de função para o 8502.

O modo CP / M é muito diferente dos ambientes operacionais familiares aos usuários do Commodore. Enquanto o Commodore DOS está embutido na ROM das unidades de disco do Commodore e geralmente é acessado através do BASIC, o CP / M requer o uso de um disquete de inicialização e requer a entrada de comandos concisos herdados de plataformas de minicomputador . Os programas CP / M tendem a não ter a natureza amigável da maioria dos aplicativos Commodore. Com o objetivo de dar ao novo computador uma grande biblioteca de software de negócios de nível profissional que faltava ao Commodore, o CP / M havia passado de seu auge em meados da década de 1980 e, portanto, raramente era usado no C128.

C64

Foto da década de 1980 mostrando uma configuração C128 com duas unidades de disco e dois monitores exibindo as telas independentes de 40 e 80 colunas. Muitos usuários continuaram a usar o 1541 herdado de seu sistema C64 como uma segunda unidade.

Ao incorporar os ROMs C64 BASIC e Kernal originais em sua totalidade (16 KB no total), o C128 atinge quase 100 por cento de compatibilidade com o Commodore 64. O modo C64 pode ser acessado de três maneiras:

  1. Mantendo pressionada a tecla do logotipo Commodore ao inicializar.
  2. Inserindo o GO 64comando e, em seguida, respondendo Yao ARE YOU SURE?prompt, no BASIC 7.0.
  3. Inicializando com um cartucho C64 conectado.

O aterramento das linhas / EXROM e / ou / GAME da porta do cartucho fará com que o computador seja inicializado automaticamente no modo C64. Este recurso duplica fielmente o comportamento do C64 quando um cartucho (como o BASIC de Simons ) é conectado à porta e ativa qualquer uma dessas linhas, mas, ao contrário de um C64 real, onde a ação de alteração do mapa de memória dessas linhas é implementada diretamente em hardware, o código de inicialização do firmware Z80 do C128 monitora essas linhas na inicialização e, a seguir, alterna os modos conforme necessário. Os cartuchos de modo nativo C128 são reconhecidos e iniciados pelos locais definidos por polling do kernel no mapa de memória.

O modo C64 duplica quase exatamente os recursos de um C64 de hardware. O MMU, Z80 e o modo burst IEC são desabilitados no modo C64, no entanto, todos os outros recursos do hardware C128, incluindo o VDU ​​e o modo 2 MHz, ainda estão acessíveis. As teclas estendidas do teclado C128 podem ser lidas em linguagem de máquina, embora as rotinas kernal só reconheçam as teclas existentes no C64. Alguns jogos são capazes de detectar se um C128 está sendo executado e alternar para o modo 2 MHz durante o retrace vertical para um desempenho mais rápido.

Em C128s norte-americanos, quando no modo C64, até mesmo a ROM de caracteres (fonte) muda daquela do modo C128. Os primeiros protótipos do C128 tinham um único ROM, com um conjunto de caracteres ligeiramente melhorado em relação ao C64. Mas alguns programas C64 lêem a ROM de caracteres como dados e falharão de várias maneiras em um C128. Assim, o C128 recebeu uma ROM de caracteres de tamanho duplo, que fornece a fonte C128 no modo C128 e a fonte C64 no modo C64. Os modelos internacionais do C128 usam a fonte C64 não modificada em ambos os modos, já que a segunda metade da ROM de caracteres é, em vez disso, dedicada à fonte internacional (contendo coisas como caracteres acentuados ou tremas alemães ).

Alguns dos poucos programas C64 que falham em um C128 serão executados corretamente quando a caps locktecla for pressionada (ou a tecla ASCII / Nacional em modelos C128 internacionais). Isso tem a ver com a porta de E / S embutida maior da CPU do C128. Enquanto a SHIFT LOCKchave encontrada no C64 e C128 é simplesmente uma trava mecânica para a SHIFTchave esquerda , a CAPS LOCKchave no C128 pode ser lida através da porta de E / S embutida do 8502 . Alguns programas C64 ficam confusos com esse bit de E / S extra; manter a CAPS LOCKchave na posição para baixo forçará a linha de E / S para baixo, combinando com a configuração do C64 e resolvendo o problema.

Alguns programas C64 gravam $D030 (53296), geralmente como parte de um loop que inicializa os registradores do chip VIC-II . Este registro mapeado na memória, não utilizado no C64, determina a taxa de clock do sistema. Uma vez que este registro é totalmente funcional no modo C64, uma gravação inadvertida pode embaralhar o display de 40 colunas mudando a CPU para 2-MHz, na qual a taxa de clock do processador de vídeo VIC-II não pode produzir uma exibição coerente. Felizmente, poucos programas sofrem com essa falha. Em julho de 1986, o COMPUTE! 'S Gazette publicou um programa de digitação que explorava essa diferença usando uma interrupção raster para habilitar o modo rápido quando a parte inferior da tela visível era alcançada e, em seguida, desabilitá-lo quando a renderização da tela recomeçasse no topo . Usando a taxa de clock mais alta durante o período em branco vertical , a exibição de vídeo padrão é mantida enquanto aumenta a velocidade geral de execução em cerca de 20 por cento.

Uma maneira fácil de diferenciar entre um hardware C64 e um C128 operando no modo C64, normalmente usado em um programa em execução, é escrever um valor diferente de $FF (255)para o endereço de memória $D02F (53295) , um registro que é usado para decodificar as chaves extras do C128 ( o teclado numérico e algumas outras teclas). No C64, esse local de memória sempre conterá o valor, $FFnão importa o que esteja escrito nele, mas em um C128 no modo C64, o valor do local - um registro mapeado na memória - pode ser alterado. Portanto, verificar o valor do local depois de escrever nele revelará a plataforma de hardware real.

Configuração de RAM

Para lidar com as quantidades relativamente grandes de ROM e RAM (dez vezes o tamanho do espaço de endereço de 64 KB do 8502), o C128 usa o chip 8722 MMU para criar mapas de memória diferentes, nos quais diferentes combinações de RAM e ROM apareceriam de acordo com padrões de bits escritos em o registro de configuração da MMU no endereço de memória $FF00 . Outro recurso da unidade de gerenciamento de memória é permitir a realocação da página zero e da pilha .

Embora o C128 possa teoricamente suportar 256k de RAM em quatro blocos, o PCB não tem condições de adicionar essa RAM extra, nem pode a MMU realmente acessar mais de 128k. Portanto, se a MMU está programada para acessar os blocos 2 ou 3, tudo o que resulta é um espelho da RAM nos blocos 0 e 1.

Uma vez que os registros de E / S e ROMs do sistema podem ser desabilitados ou habilitados livremente, além de serem localizados em qualquer banco de RAM e no conjunto VIC-II para usar qualquer um dos bancos para seu espaço de memória, até 256 configurações de memória são possíveis, embora o a grande maioria deles são inúteis (por exemplo, combinações impraticáveis ​​como a ROM kernal no banco 0 e os registradores de E / S no banco 1 são possíveis). Por causa disso, a instrução BANK do BASIC permite ao usuário selecionar 15 dos arranjos mais úteis, com o padrão de inicialização sendo o Banco 15. Este padrão coloca os ROMs do sistema, registros de E / S e texto do programa BASIC no bloco 0, com bloco 1 sendo usado por variáveis ​​de programa BASIC. O texto e as variáveis ​​do programa BASIC podem se estender até $ FFEF. Mas, como o bloco 0 contém os ROMs e os registradores de E / S de $ 4000 em diante, o BASIC usa uma rotina de comutação interna para ler o texto do programa acima de $ 3FFF.

O 1k superior e o inferior de RAM ($ 0– $ 3FF e $ FF00- $ FFFF) são RAM "compartilhada", visível de ambos os blocos. O MMU permite ser expandido em incrementos de até 16k. O intervalo $ 0– $ 3FF contém a página zero e a pilha, enquanto $ FF00- $ FFFF contém os registradores MMU e vetores de reset. Essas áreas são sempre compartilhadas e não podem ser alternadas para RAM não compartilhada. A RAM compartilhada é sempre o banco oposto daquele que está sendo usado pela CPU, portanto, se o banco 0 for selecionado, qualquer leitura ou gravação na RAM compartilhada fará referência aos locais correspondentes no banco 1 e vice-versa. O VIC-II pode ser configurado para usar qualquer banco de RAM e, a partir daí, sua janela normal de 16k. Enquanto no C64, o VIC-II só consegue ver o ROM de caracteres nos bancos 2 e 4 de seu espaço de memória, o C128, por outro lado, permite habilitar ou desabilitar o ROM de caracteres para qualquer banco VIC-II via o registro em $ 1. Além disso, existem dois conjuntos de RAM colorida - um visível para a CPU, o outro para o VIC-II e o usuário pode selecionar qual chip vê o quê.

No modo CP / M, o Prefixo do Segmento do Programa e a Área do Programa Transiente residem no Banco 1 e os registros I / O e o código do sistema CP / M no Banco 0.

A RAM do C128 é expansível do padrão 128 KB para 256, 512 ou até 1.024 KB, seja usando módulos de expansão de memória comerciais ou fazendo um baseado em esquemas disponíveis na Internet.

As unidades de expansão de RAM do Commodore usam um controlador 8726 DMA externo para transferir dados entre a RAM do C128 e a RAM na unidade de expansão.

C128D

Commodore 128D em exibição no Musée Bolo , EPFL , Lausanne
Fonte de alimentação comutada Commodore 128DCR , equipada com ventoinha de resfriamento de 40 mm

No final de 1985, a Commodore lançou no mercado europeu uma nova versão do C128 com um chassi redesenhado semelhante ao Amiga 1000 . Chamado de Commodore 128D , este novo modelo europeu apresentava um chassi de plástico com uma alça de transporte na lateral, incorporou um drive de disco 1571 no chassi principal, substituiu o teclado embutido por um destacável e adicionou uma ventoinha de resfriamento . O teclado também apresentava duas pernas dobráveis ​​para alterar o ângulo de digitação.

O C128 foi lançado no Reino Unido em 25 de julho de 1985 e na América do Norte em novembro de 1985.

De acordo com Bil Herd , chefe da equipe de hardware (também conhecido como "C128 Animals"), o C128D estava pronto para produção ao mesmo tempo que a versão regular. Trabalhar para lançar dois modelos ao mesmo tempo aumentou o risco de entrega no prazo e era evidente que o PCB principal tem grandes orifícios em seções críticas para suportar o case C128D e o case normal simultaneamente.

Na última parte de 1986, a Commodore lançou uma versão do C128D na América do Norte e em partes da Europa conhecida como C128DCR, CR que significa "custo reduzido". O modelo DCR apresenta um chassi de aço estampado no lugar da versão de plástico do C128D (sem alça de transporte), uma fonte de alimentação comutada modular semelhante à do C128D, mantendo o teclado destacável do modelo e a unidade de disquete 1571 interna. Vários componentes da placa - mãe foram consolidados para reduzir os custos de produção e, como medida adicional de redução de custos, a ventoinha de 40 mm instalada na fonte de alimentação do modelo D foi removida. No entanto, as disposições de montagem no subchassi da fonte de alimentação foram mantidas, bem como os dois pontos de conexão CC de 12 volts na placa de circuito impresso da fonte de alimentação para alimentar o ventilador. A provisão de montagem do C128DCR é para uma ventoinha de 60 mm.

Uma melhoria significativa introduzida com o modelo DCR foi a substituição do controlador de vídeo 8563 (VDC) pelo 8568 VDC mais avançado tecnicamente e equipando-o com 64 kilobytes de RAM de vídeo - a quantidade máxima endereçável pelo dispositivo. O aumento de quatro vezes na RAM de vídeo em relação à instalada no "plano" C128 tornou possível, entre outras coisas, manter várias telas de texto em suporte a um verdadeiro sistema de janelas, ou gerar gráficos de alta resolução com uma paleta de cores mais flexível . Um pequeno software comercial aproveitou essas possibilidades.

O C128DCR é equipado com novos ROMs apelidados de "ROMs de 1986", assim chamados a partir da data de copyright exibida na tela do banner de inicialização. Os novos ROMs abordam uma série de bugs que estão presentes nos ROMs originais, incluindo um erro infame off-by-one na tabela de decodificação do teclado, em que o caractere 'Q' permaneceria em minúsculas quando CAPS LOCK estivesse ativo. Alguns softwares só serão executados no DCR, devido às dependências dos recursos de hardware aprimorados do computador e ROMs revisados.

Apesar dos recursos aprimorados de vídeo RGB do DCR, o Commodore não aprimorou o BASIC 7.0 com a capacidade de manipular gráficos RGB. Conduzir o VDC no modo gráfico continua a exigir o uso de chamadas para primitivas ROM do editor de tela ou seus equivalentes em linguagem assembly , ou usando extensões de linguagem BASIC de terceiros, como o " BASIC 8 " do Free Spirit Software , que adiciona alta resolução Comandos gráficos VDC para BASIC 7.0 .

Desempenho do mercado

Em janeiro de 1987, a Info relatou que "todos aqueles rumores sobre a morte iminente do C128 podem ter alguma base em fatos." Declarando que a Commodore queria desviar recursos para aumentar a produção de 64C e seus clones de PC, a revista afirmou que, "A última palavra online é que o último C128 sairá das linhas em dezembro de 1987." Calcular! declarou em 1989, "Se você comprou seu 128 com a impressão de que o software específico para 128 seria abundante e rápido para chegar, provavelmente ficou bastante desapontado. Um dos principais argumentos de venda do 128 é sua compatibilidade total com o 64, um ponto que funcionou mais contra o 128 do que a favor. " Porque o 128 seria executado praticamente todos os 64 software, e porque a próxima geração 32 / 16 bits computadores, principalmente em casa o Commodore Amiga e Atari ST -represented a tecnologia mais recente, relativamente pouco software para o modo nativo do C128 apareceu (provavelmente na de 100–200 títulos comerciais, mais a cota usual de programas de domínio público e tipos de revistas ), levando alguns usuários a se arrependerem de sua compra. Enquanto o C128 vendeu um número total de 4 milhões de unidades entre 1985 e 1989, sua popularidade empalideceu em comparação com seu antecessor. Uma explicação para esses números de vendas mais baixos pode ser porque o C64 foi vendido para pessoas principalmente interessadas em videogames, que o C128 mais caro não agregou muito valor para melhorar.

Alguns softwares C64, como Bard's Tale III e Kid Niki, rodaram no modo 128 sem declarar isso na documentação, usando o autoboot e o acesso mais rápido ao disco do 1571's. Algumas aventuras de texto da Infocom aproveitaram a tela de 80 colunas e aumentaram a capacidade de memória. Alguns jogos C64 foram portados para o modo nativo como Kikstart 2 e The Last V8 da Mastertronic , que tinha versões C128 separadas, e Ultima V: Warriors of Destiny da Origin Systems , que usava RAM extra para música se rodando no C128. Star Fleet I: The War Begins from Interstel tinha versões separadas e aproveitou a exibição de 80 colunas no C128. A grande maioria dos jogos simplesmente rodava no modo C64.

Em contraste, muitos títulos de software de produtividade C64 foram transferidos para o C128, incluindo as populares séries PaperClip e Paperback Writer. Esse software usava memória extra, tela de 80 colunas, teclado aprimorado e unidades de disco de grande capacidade para fornecer recursos considerados essenciais para uso comercial. Com sua avançada linguagem de programação BASIC, compatibilidade CP / M e pacotes de software nativos " amigáveis ​​ao usuário " como o Jane , a Commodore tentou criar um mercado de negócios low-end para o C128 semelhante à sua estratégia com o Plus / 4 , até mesmo se distanciando na etiqueta do computador doméstico, marcando o C128 como "Computador Pessoal" no gabinete. Significativamente, o C128 foi o primeiro computador Commodore a anunciar seu uso do Microsoft BASIC , onde o nome Microsoft teria sido um ativo competitivo.

O C128 certamente era uma máquina de negócios melhor do que o C64, mas não era realmente uma máquina de jogos melhor. Pessoas que queriam máquinas comerciais compraram clones de PC IBM quase que exclusivamente na época em que o C128 foi lançado. A disponibilidade de compatíveis com a IBM de baixo custo, como o Leading Edge Model D e o Tandy 1000 que, em alguns casos, eram vendidos por menos de um sistema C128 completo, atrapalhando a estratégia de computadores para pequenas empresas da Commodore . Havia um programa CAD de nível profissional , Home Designer da BRiWALL, mas, novamente, a maior parte desse trabalho era feito em PCs na era do C128. A principal razão pela qual o C128 ainda vendeu razoavelmente bem foi provavelmente que ele era uma máquina muito melhor para programação amador do que o C64, além de ser um modelo de continuação natural para proprietários com investimentos significativos em periféricos e software C64.

Mas, no final das contas, o C128 não conseguiu competir com os novos sistemas de 16/32 bits, que o superaram e o resto de sua geração de 8 bits em quase todos os aspectos. Quando o C128 (D / DCR) foi descontinuado em 1989, foi relatado que custava quase tanto para fabricar quanto o Amiga 500 , embora o C128D tivesse que ser vendido por várias centenas de dólares a menos para manter intacta a imagem de marketing de ponta do Amiga. .

Bil Herd afirmou que os objetivos de design do C128 não incluíam inicialmente 100% de compatibilidade com o C64. Alguma forma de compatibilidade sempre foi planejada depois que Herd foi abordado na introdução do Plus / 4 por uma mulher que ficou desapontada com o pacote de software educacional que ela havia escrito para o C64 não rodaria no novo computador do Commodore, mas quando o departamento de marketing do Commodore soube disso , eles anunciaram de forma independente a compatibilidade total. Herd deu a razão para a inclusão do 128 de um processador Z80 como garantia de "100% de compatibilidade", já que o suporte do cartucho Z80 do C64 significaria que o C128 forneceria energia adicional à porta do cartucho. Ele também afirmou que o chip de vídeo VDC e o Z80 foram fontes de problemas durante o projeto da máquina. Herd acrescentou que "Eu esperava que o C128 fosse vendido por cerca de um ano, achamos que alguns milhões seriam bons e é claro que não prejudicaria o Amiga ou mesmo o C64". Depois que a Commodore aumentou o preço do 64 pela primeira vez, introduzindo o 64C redesenhado em 1986, seu lucro de cada 64C vendido foi supostamente muito maior do que o do C128.

Especificações

  • CPUs:
    • MOS Technology 8502 @ 2 MHz (1 MHz selecionável para modo de compatibilidade C64 ou modo C128 de 40 colunas)
    • Zilog Z80   @ 4 MHz (funcionando a 2 MHz efetivos por causa dos estados de espera para permitir que o chip de vídeo VIC-II acesse o barramento do sistema)
    • (C128D (CR)): Tecnologia MOS 6502 para o controlador de disquete integrado
  • MMU: Unidade de gerenciamento de memória MOS Technology 8722 controla a seleção do processador 8502 / Z80; Banco de ROM / RAM; áreas comuns de RAM; realocação de página zero e pilha
  • RAM: 128 KB de RAM de sistema, 2 KB de RAM em cores dedicada de 4 bits (para VIC-II E), 16 KB ou 64 KB de RAM de vídeo dedicada (para VDC), até 512 KB de RAM de expansão REU
  • ROM: 72 KB
    • 28 KB BASIC 7.0
    • 4 KB MLM
    • 8 KB C128 KERNAL
    • Editor de tela de 4 KB
    • BIOS Z80 de 4 KB
    • 16 KB C64 ROM: ≈9 KB C64 BASIC 2.0 + ≈7 KB C64 KERNAL
    • Gerador de caracteres C64 (ou internacional) de 4 KB
    • 4 KB C128 (ou nacional) gerador de caracteres
    • ROM de função interna de 32 KB (opcional: para colocação no soquete da placa-mãe)
    • ROM de função externa de 32 KB (opcional: para colocação no soquete REU)
  • Vídeo:
    • MOS 8564/8566 VIC-II E (NTSC / PAL) para vídeo composto de 40 colunas (um aparelho de TV pode ser usado em vez de um monitor, se desejado)
      • Acesso direto ao registro por meio de E / S mapeada em memória
      • Modo de texto: 40 × 25, 16 cores
      • Modos gráficos: 160 × 200, 320 × 200
      • 8 sprites de hardware
      • 2 KB de RAM colorida de 4 bits dedicada, caso contrário, usa a memória principal como RAM de vídeo
    • MOS 8563 VDC (ou, no C128DCR, o 8568 ) para vídeo componente RGB I digital de 80 colunas , compatível com monitores IBM PC CGA , exibição monocromática também possível em monitores de vídeo composto; utilizável com aparelhos de TV apenas quando o aparelho tiver SCART e / ou tomadas de entrada de vídeo de banda base, além do conector de antena. A cor é possível através do SCART, apenas monocromático através da entrada de vídeo em banda base.
      • Acesso indireto ao registro (registro de endereço, registro de dados na memória mapeada)
      • Modo de texto: totalmente programável, normalmente 80 × 25 ou 80x50, 16 cores RGBI (não é a mesma paleta do VIC-II)
      • Modos gráficos: totalmente programáveis, os modos típicos são 320x200, 640 × 200 e 640 × 400 (entrelaçado).
      • 16 KB de RAM de vídeo dedicado (padrão de 64 KB em C128DCR, C128 / C128D pode ser atualizado para 64 KB), acessível à CPU apenas em um método duplamente indireto (registro de endereço, registro de dados no VDC, que por sua vez são endereçados através do registro de endereço , registro de dados na memória mapeada)
      • Funcionalidade de blitter limitada
  • Som:
  • Portas de E / S:
    • Todas as portas do Commodore 64 com 100 por cento de compatibilidade, mais o seguinte:
    • Maior velocidade de "modo burst" possível no barramento serial
    • Porta de expansão programável de forma mais flexível
    • Saída de vídeo RGBI ( conector DE9 ) logicamente semelhante ao conector IBM PC CGA , mas com um sinal composto monocromático adicionado . Este sinal adicionado causa uma pequena incompatibilidade com certos monitores CGA que podem ser retificados removendo o pino 7 do plugue em uma extremidade do cabo de conexão.
    • Entrada de teclado externo ( conector DB25 ) (somente C128D (CR))

Veja também

Notas

Referências

Bibliografia

  • Greenley, Larry, et al. (1986). Guia de Referência do Programador do Commodore 128 . Bantam Computer Books / Commodore Publications. ISBN  0-553-34378-5 .
  • Gerits, K .; Schieb, J .; Thrun, F. (1986). Commodore 128 Internals . 2ª ed. Grand Rapids, Michigan: Abacus Software, Inc. ISBN  0-916439-42-9 . Edição original em alemão (1985), Düsseldorf, Alemanha Ocidental: Data Becker GmbH & Co. KG.
  • Simmonds, Jr., Thomas; Borden, Jim (setembro de 1986). "Declarações de dados instantâneas" . Corra . No. 33. p. 82-84.

links externos