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