segunda-feira, 3 de setembro de 2012

Dica: programa que funciona para Beta 48 e 128

Fonte: World of Spectrum
 As interfaces de drives Beta 48, comuns no Brasil, e Beta 128, amplamente adotadas no leste europeu possuem pontos de entrada para comandos do DOS em endereços diferentes. 

Por exemplo, o programa BASIC para o Beta 48:
10 BORDER 0: PAPER 0 : INK 0: CLEAR 24575 
20 RANDOMIZE USR 15363: REM : LOAD "tela" CODE 16384 
30 RANDOMIZE USR 15363: REM : LOAD "codigo" CODE 
40 RANDOMIZE USR 24575

Ficaria assim, para o Beta 128:
10 BORDER 0: PAPER 0 : INK 0: CLEAR 24575 
20 RANDOMIZE USR 15619: REM : LOAD "tela" CODE 16384 
30 RANDOMIZE USR 15619: REM : LOAD "codigo" CODE 
40 RANDOMIZE USR 24575

Para funcionar em ambas versões do Beta, insere-se uma linha (15, neste exemplo) e invoca-se o DOS com a variável d:
10 BORDER 0: PAPER 0 : INK 0: CLEAR 24575 
15 LET d=15363: IF PEEK d<>195 THEN LET d=15619
20 RANDOMIZE USR d: REM : LOAD "tela" CODE 16384 
30 RANDOMIZE USR d: REM : LOAD "codigo" CODE 
40 RANDOMIZE USR 24575

O programa acima assume que, se a interface for Beta 48, a região da ROM 15360-15615 será interceptada, o que permite um teste com PEEK.

2 comentários:

  1. Hmmmm... se sair a emulação de TR-DOS na divIDE, poderemos utilizar suas conversões? :)

    ResponderExcluir
    Respostas
    1. Aquelas que usam o BASIC somente funcionariam sim. Já as que usam o código de máquina, não necessariamente. Mas aos poucos estou convertendo os programas para funcionarem nas Beta 48 e 128.

      Excluir

Seu comentário é bem vindo, mas peço que use este espaço adequadamente.