Obrigado a Julio Marchi pelo espaço cedido na MSX All
 

Screen 2 Show

  Crie displays animados de tela para a screen 2 do MSX como no Graphos III.


Detalhes do projeto
  O projeto Screen 2 Show envolve tanto o MSX como o PC. No que diz respeito ao MSX, tem como objetivo o desenvolvimento de algoritmos de display de telas em linguagem de máquina. No PC, desenvolver ferramentas para adicionar o display de telas a imagens convertidas para o MSX.
  No presente momento, o projeto somente trabalha com imagens no formato da screen 2 do MSX 1. Porém, pode ser expansível a outros modos de tela.


  Funcionamento do programa

      Arquivo                     RAM                  VRAM

 10 SCREEN 2                9000 | MPPPP  |      0000 | PPPPPP |
 20 BLOAD"TELA.SCR",R  ->   .... | CCCCD  |  ->  .... |        |
 30 GOTO 30                 FFFF |        |      2000 | CCCCCC |
  Primeiro o programa contendo a imagem é carregado na memória RAM, a partir da posição &H9000. Ele contém:
  • O programa principal (assinalado com o "M" em verde)
  • A imagem compactada (assinalada com a tela de padrões "P" em azul e a tela de cores "C" em vermelho)
  • O programa de display (assinalado com o "D" em azul ciano)
  Diferente da versão anterior que trabalhava com telas compactadas, o programa principal agora chama o código de display que transfere a imagem, a partir do endereço &H9000, para a VRAM.


  Layout do arquivo

Parte Endereço MSX
Header 8FF5
Código principal 8FFC
Imagem padrão 9000
Imagem cor A800
Código da exibição na tela C000


  Descrição do header do arquivo de tela

Endereço MSX Valor Descrição
- FE  Identificador de programa binário
- F5  Inicio do programa
- 8F  Inicio do programa (8FF5)
- xx  Fim do arquivo
- xx  Fim do arquivo
- FC  Inicio execução
- 8F  Inicio execução (8FFC)
8FF5 xx  Tipo de abertura:
 00 - Direto
 01 - Cima para baixo
 02 - Esquerda para direita
 03 - Diagonal
 04 - Snail in
 05 - Frame
8FF6 4D  "M"
8FF7 61  "a"
8FF8 72  "r"
8FF9 4D  "M"
8FFA 53  "S"
8FFB 58  "X"

  - → Endereço não usado.
  xx → Valor indefinido.



  Código do programa principal em Assembly Z-80

 line code              mnemonics
------------------------------------------------------------------------
   10 			ORG  &H8FFC
   20 CD 00 C0		CALL &HC000		; Chama rotina de display
   30 C9		RET			; Fim

  Código em Assembly dos displays
  10		ORG &HC000
  20 TELA:	LD   BC,&H1800		; $
  30 		LD   DE,0		; $
  40 		LD   HL,&H9000		; $
  50 		CALL &H5C		; $ Rotina particular de cópia para a tela
  60 		LD   BC,&H1800		; $ Neste caso, copia diretamente
  70 		LD   DE,&H2000		; $
  80 		LD   HL,&HA800		; $
  90 		CALL &H5C		; $
  100 		RET 			; $

  Acesse aqui:

  Antigo projeto que compactava tela
  Códigos dos displays
  Suporte: arquitetura da screen 2


Marcelo Silveira
Engenheiro de Sistemas e Computação
Especialista em Processamento de Imagens e Inteligência Artificial
© MarMSX 1999-2021