sexta-feira, 15 de junho de 2012

Interface de demo do TK90X

Visitando o site do Eduardo Luccas, encontrei um item interessante para download que seria a imagem (dump) da EPROM da interface de demonstração do TK90X. Pela descrição dada, seria uma interface conectada a TK90X em exposição em loja, que ficaria executando continuamente um programa.

Eu tive um problema em carregar o referido arquivo, pois o ZIP estava corrompido, mas o Eduardo gentilmente me enviou por e-mail um que estava funcionando. Meus sinceros agradecimentos a ele.


A listagem que obtive dessa EPROM foi:

; z80dasm 1.1.3
; command line: z80dasm -g 0 -t DEMO-TK.BIN

        org     00000h

        nop                     ;0000   00      .
        ...                     ...     ...     ...

        nop                     ;0015   00      .
        di                      ;0016   f3      .
        ld hl,00064h            ;0017   21 64 00        ! d .
        ld de,05b00h            ;001a   11 00 5b        . . [
        ld bc,01f92h            ;001d   01 92 1f        . . .
        ldir                    ;0020   ed b0   . .
        ld sp,07a65h            ;0022   31 65 7a        1 e z
        pop iy                  ;0025   fd e1   . .
        pop ix                  ;0027   dd e1   . .
        pop af                  ;0029   f1      .
        ld i,a                  ;002a   ed 47   . G
        exx                     ;002c   d9      . 

        ...                     ...     ...     ...

Eu pude ver que esta EPROM deveria desabilitar a ROM interna do TK90X, para ocupar os endereços 0-8191 (#0000-#1FFF). Logo após um reset, é executado a rotina acima a partir do endereço 0, mas efetivamente só a partir de 22 (#16) é que faz alguma coisa. No caso, copia o bloco de 8082 bytes a partir do endereço 100 (ROM) para 23296 (RAM), ajusta o apontador de pilha do Z80 (SP) e continua atribuindo valores para os registradores (provavelmente salvos na pilha de modo análogo à Multiface 1).

Para poder executá-lo sem uma interface especial, basta colocar o código da ROM na RAM (a partir de 32768/#8000) e alterar o destino do LDIR (fazendo apenas um POKE 32793,128).

Assim ficou fácil converter o programa para ser carregado da fita (formato TZX) ou de disco Beta 48 (formato Hobeta).  Estão disponíveis no Google Drive ou 4 Shared.

Nenhum comentário:

Postar um comentário

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