Porta 32765 (#7FFD)
Eletrônica

Porta 32765 (#7FFD)


Apesar de já ter comentado sobre esta porta de entrada e saída (I/O) do Spectrum 128 e da TKMEM-128, julguei conveniente repetir, pois ajudará na compreensão da listagem BASIC publicada ontem.

Fonte: Wikipédia

Esta é uma das novas portas introduzidas no Spectrum 128 para acessar os hardwares que foram adicionados (no Spectrum 48 só havia a porta 254). Esta porta é somente de saída, isto é, só admite a operação de escrita através da instrução OUT do BASIC ou do Assembly.

O valor de 8 bits enviado à porta 32765 serve para configurar: 
  • bits 0 a 2 selecionam o banco de RAM da página 3;
  • bit 3 seleciona para exibição, o vídeo normal (0) ou o shadow video (1);
  • bit 4 seleciona ROM 0 (BASIC 128) ou ROM 1 (BASIC 48) da página 0;
  • bit 5, uma vez enviado valor 1, a porta 32765 não aceitará mais nenhum comando até o Spectrum ser desligado ou sofrer reset
  • D6-D7 não tem uso no Spectrum mas são usados no Pentagon e alguns outros clones.
O chaveamento da página 3 da memória, que compreende os endereços 49152-65535, é feito através do envio do valor binário entre 0 a %111, para selecionar os bancos de RAM de 0 a 7. Portanto o comando BASIC OUT 32765,3 ou OUT 32765,BIN 00000011 seleciona o banco de RAM 3.

O chaveamento de RAM requer alguns cuidados. Da forma como foi descrito o comando do exemplo acima, acaba-se selecionando a ROM 0 pois o bit 4 está com valor 0. Normalmente isto não é desejável e o melhor seria usar OUT 32765,19 ou OUT 32765,BIN 00010011 para selecionar o banco de RAM 3.

Após executado OUT para a porta 32765, todo o conteúdo de RAM nos endereços 49152-65535 são trocados devido ao chaveamento. Haverá problemas se a pilha de máquina do Z80 estiver nessa faixa, portanto a sua posição deve ser mudada através de comando como CLEAR 49151 (ou endereço menor).

Mais um cuidado a ser tomado, quando se está no modo 128 BASIC,  é atualizar a variável de sistema em 23388 com o último valor enviado para a porta 32765. Assim, para que funcione tanto no BASIC tanto na versão 48 com 128, é mais correto empregar:

POKE 23388,19: OUT 32765,19

A seleção entre o vídeo normal ou shadow, definido pelo bit 3 da porta 32765, não é muito útil na programação BASIC, pois não existe comando para imprimir no vídeo secundário. Além disto, não funciona no TK90X com a TKMEM e, assim, não será abordada nesta postagem.

O bit 5 desativa por completo a porta 32765 e deixa o computador no modo 48, sem acesso ao 128 BASIC nem aos 128KB de RAM. Neste modo a compatibilidade com o modelo antigo é máxima, o que é requerido por certos softwares. Pode ser feito com o comando:

OUT 32765,48

ou, se estiver no modo 128 BASIC:

SPECTRUM

Um vez neste modo, não há como retornar ao modo 128 a não ser desligando a alimentação ou acionando o reset.



loading...

- Tkmem-128 E Programa De Teste
Ontem chegou a minha TKMEM-128 montada pelo Eduardo Luccas. Trata-se de uma interface do TK90X que lhe adiciona ROM e RAM do ZX Spectrum 128. Mais fotos: Como de praxe, fiz um teste de chaveamento dos bancos de RAM. O melhor é que o programa é...

- Silkworm 128... ?
Emmerson Maurilio fizera uma wishlist de jogos para TKMEM-128 a serem adaptados e, entre estes, figurava Silkworm que teria comportamento diferente entre 48 e 128K. Resolvi tirar a prova. Carreguei o jogo no emulador Fuse, definindo no debugger um breakpoint...

- Programa '48kbmode'
Alguns programas para 48KB são incompatíveis com o modo 128KB e não rodarão na TKMEM-128, a não ser que o chaveamento da RAM seja desativado. Os jogos da Ultimate como Knight Lore, Alien 8 e Pentagram têm este problema. Para solucionar isto, os...

- 48 E 128 Basic
O TKMEM-128 não tem a ROM 0 do Spectrum 128, mas não é muito difícil gravar uma EPROM e fazer uma mod na interface. Com isto, o TK90X ficaria mais semelhante ao Spectrum 128 e seria possível usar o BASIC 128. Aqueles que usam o emulador obrigatoriamente...

- Memórias No Spectrum128 E No Tkmem-128
Fiquei um tempo sem postar, mas não quer dizer que estava parado no hobby. Eu e o Eduardo Luccas estivemos testando a interface de 128KB para o TK90X, a TKMEM-128, para vermos as suas possibilidades e limitações. Interessante é que nós nunca nos...



Eletrônica








.