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