![]() |
|
Obrigado a Julio Marchi pelo espaço cedido na MSX All |
Padrões e Cores do MSX 1
O modo de tela utilizado nos editores gráficos do MSX 1 é a screen 2. 0 31 ┌┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┬┐ ├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤ ├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤ ├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤ ├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤ ├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤ ├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤ ├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤ ├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤ ├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤ ├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤ ├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤ ├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤ ├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤ ├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤ ├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤ ├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤ ├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤ ├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤ ├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤ ├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤ ├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤ ├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤ ├┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┤ └┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┘ 23
+-----------------------------+ | 000 001 002 003 ... 030 031 | | 032 033 034 035 ... 062 063 | | ... | | 736 737 738 739 ... 766 767 | +-----------------------------+
Obs: valores em decimal. ┌─┬─┬─┬─┬─┬─┬─┬─┐ │ │ │ │ │ │ │ │ │ Linha 0 ├─┼─┼─┼─┼─┼─┼─┼─┤ │ │ │ │ │ │ │ │ │ Linha 1 ├─┼─┼─┼─┼─┼─┼─┼─┤ │ │ │ │ │ │ │ │ │ Linha 2 ├─┼─┼─┼─┼─┼─┼─┼─┤ │ │ │ │ │ │ │ │ │ Linha 3 ├─┼─┼─┼─┼─┼─┼─┼─┤ │ │ │ │ │ │ │ │ │ Linha 4 ├─┼─┼─┼─┼─┼─┼─┼─┤ │ │ │ │ │ │ │ │ │ Linha 5 ├─┼─┼─┼─┼─┼─┼─┼─┤ │ │ │ │ │ │ │ │ │ Linha 6 ├─┼─┼─┼─┼─┼─┼─┼─┤ │ │ │ │ │ │ │ │ │ Linha 7 └─┴─┴─┴─┴─┴─┴─┴─┘
Tela Numeração dos
Blocos
0 5
┌┬┬┬┬┐ 00 01 02 03 04
├┼┼┼┼┤ 05 06 07 08 09
├┼┼┼┼┤ 10 11 12 13 14
├┼┼┼┼┤ 15 16 17 18 19
└┴┴┴┴┘ 4
variáveis:
p, x, y : inteiro;
altura, largura, D, linha : inteiro;
salvar : booleano;
inicio
p ← 7;
salvar ← falso;
para y ← 0 até altura passo 8 faça
inicio
para x ← 0 até largura passo 8 faça
inicio
para linha ← 0 até 7 faça
inicio
se (salvar = verdadeiro) então
inicio
D ← val(p);
altera_linha(D);
senão
D ← le_linha();
val(p) ← D;
fim_se
p ← p + 1;
fim_para
fim_para
fim_para
fim_programa
Onde as variáveis "altura" e "largura" são valores múltiplos de 8. Tabela de caracteres: bit 0 = cor de fundo bit 1 = cor de frente Tabela de cores: 4 bits mais significativos = cor de frente 4 bits menos significativos = cor de fundo
10 EP = 8*BL ' Tabela de caracteres 20 EC = 8192 + 8*BL ' Tabela de cores
10 SCREEN 2 20 BL=4 30 EP = 8*BL ' Tabela de caracteres 40 EC = 8192 + 8*BL ' Tabela de cores 50 L=2 60 VPOKE EP+L,&B10101010 ' Padrão: 10101010 70 VPOKE EC+L,&B01111101 ' Frente:7, Fundo:13
|