quarta-feira, 23 de abril de 2014

Reclaim TRDOS Vars

Quando o sistema da interface de drive Beta está ativo, 112 bytes extras são usada para armazenar as variáveis de sistema. Muitas vezes este espaço de memória faz falta. 


Comentei na adaptação do demo LSD Megademo, sobre como se pode liberar este espaço. De fato, tenho utilizado um código para limpar a área entre 23734 a 23845, mas percebi que não tinha publicado antes. Segue listagem:

LD HL,(CHANS)  ; Fetch channel data address.
LD DE,23734    ; Channel data address if no devices are attached.
PUSH HL        ; Save address.
AND A          ; Reset carry flag before subtracting.
SBC HL,DE      ; Zero flag is zero if addresses have same value.
POP HL         ; Restore address.
CALL NZ,RECLAIM_1       ; Reclaim space.

Para não ter que redigitar a listagem acima, neste link há o respectivo arquivo que pode ser incluído no código principal. O arquivo 'Header_Basic.asm' é requerido (vide este link).

Nenhum comentário:

Postar um comentário

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