Menor valor de RAMTOP com Beta 48/128
Eletrônica

Menor valor de RAMTOP com Beta 48/128


Uma das aplicações de compressores como Lerm Code Compressor 1 ou o mais recente ZX7, é liberar espaço para o carregador BASIC. Sobra a pergunta: qual espaço mínimo é necessário para o programa BASIC?

Fonte: Wikipédia

O endereço de início do programa BASIC no TK90X é dado pela variável de sistema PROGBAS (PROG na nomenclatura da Sinclair), cujo conteúdo pode ser examinado com: 
PRINT PEEK 23635+256*PEEK 23636

Para um TK90X sem expansões, este endereço é 23755. Alguns periféricos alteram este valor por usar parte da RAM para armazenar dados e variáveis. O DOS da interface Beta (TR-DOS) usa 112 bytes e portanto empurra o início do programa BASIC para 23867. Portanto qualquer linha que for digitada será adicionada a partir deste endereço.

O limite superior da RAM usada pelo sistema BASIC é dado pela variável de sistema RAMTOP, cujo conteúdo pode ser visto com:
PRINT PEEK 23730+256*PEEK 23731

Este valor pode ser definido com o comando CLEAR. Por exemplo: 
CLEAR 24999
estipula que o sistema BASIC deixará intocada a RAM entre 25000 a 65535 (último byte do TK90X de 48KB).

Neste exemplo, com o TR-DOS, o sistema BASIC terá um espaço entre 23867 a 24999 disponível para armazenar o programa, as variáveis, os dados da calculadora, os dados do editor de linhas e os dados da pilha do Z80. Seriam 1133 bytes, que comportaria com certa folga um programa de carregamento.

Um programa que emprego comumente como carregador seria algo como:

10 POKE 23693,0 : BORDER 0 : POKE 23624,0 : CLEAR 24999
20 LET d=15363: IF PEEK 15363<>195 THEN LET d=15619
30 RAND USR d : REM : LOAD "EXEMPLO$"CODE
40 RAND USR d : REM : LOAD "EXEMPLO%"CODE
50 RAND USR 25000

Tal programa ocuparia 180 bytes que caberia confortavelmente com este valor de RAMTOP.

Qual seria o limite mínimo de RAMTOP para que um programa carregador como o acima continue funcionando? Fiz alguns testes com emuladores e, no caso da Beta 48, o limite inferior é de 24190; abaixo deste valor, o programa acusa erro de falta de memória e trava. 

Para Beta 128 o limite fica bem acima, ficando em 24453. O motivo desta diferença é que esta versão do TR-DOS usa 256 bytes extras nas operações de leitura ou escrita, como buffer temporário para guardar o equivalente a um setor do disco.



loading...

- Strike Force Cobra (piranha)
Depois de um longo tempo, converti um jogo para disco Beta. Strike Force Cobra é um jogo 3D isométrico em que se controlam 4 personagens alternadamente. Destaca-se dos demais do gênero - em geral monocromáticos - por ter cores na área de jogo....

- Proteger Programa Contra Break
Uma medida obrigatória para proteger um programa e evitar sua listagem é não deixar que seja interrompida. Quando um programa BASIC é executado no TK90X, pode ser interrompido ao se pressionar a tecla BREAK (Caps-shift e Espaço). BREAK reseta computador...

- Reclaim
Experimente digitar o seguinte programa no seu TK90X: Pode ser que a listagem não fique clara na imagem, portanto estou repetindo abaixo:    10 FOR n=50000 TO 50009: READ a: POKE n,a: NEXT n   20 RAND USR 50000   30 DATA 237,91,83,92,42,75,92,195,229,25...

- Adaptação De Jogos De Fita Para Beta 48 (parte 1)
Penso em começar uma série sobre adaptação de jogos para o Beta 48, após pedidos. A maior dificuldade está em começar, pois o início sempre traz muitas dúvidas e expectativas. Acredito que o melhor ponto de partida é discutir um pouco sobre...

- Gyroscope E Lerm Code Compressor 1
Adaptei o jogo Gyroscope do TK90X para a interface Beta 48, que está disponível aqui neste link. Aproveitando esta ocasião, apresento o ótimo Lerm Code Compressor 1 que tanto tem me ajudado nas adaptações dos programas para a Beta 48. O programa...



Eletrônica








.