Prev: 7D35 Up: Map Next: 7D8D
7D3B: Desenha a porta
Used by the routine at main.
Input
Output
desenha_porta 7D3B LD A,$10 INK = Azul
7D3D RST $10
7D3E LD A,$01
7D40 RST $10
7D41 LD A,$11 PAPER = Amarelo
7D43 RST $10
7D44 LD A,$06
7D46 RST $10
7D47 LD A,($C34B) Carrega o valor de var_posicao_da_porta e mete-o em posicao_coluna
7D4A LD ($7D35),A
7D4D LD L,$A1 Caracter a imprimir - Porta
7D4F LD C,$07 Contador C = 7
desenha_porta_0 7D51 LD A,($7D35) Valor de posicao_coluna em A
7D54 CALL imprime_coluna_porta
7D57 LD A,($7D35) Incrementa valor de posicao_coluna
7D5A INC A
7D5B LD ($7D35),A
7D5E DEC C Decrementa Contador C
7D5F JR NZ,desenha_porta_0 Se não for zero salta
7D61 LD A,($C34B) Decrementa var_posicao_da_porta
7D64 DEC A
7D65 LD ($C34B),A
7D68 LD A,($7D35) Valor de posicao_coluna em A
7D6B CP $20 Se for $20 (32) salta para colisao_porta
7D6D JP Z,colisao_porta
7D70 CP $FF Se for $FF (255) - vai dar a volta - salta para desenha_porta_1
7D72 JR Z,desenha_porta_1
7D74 LD L,$80 Caracter a imprimr - Normalmente em branco
7D76 LD A,$11 Paper = Vermelho
7D78 RST $10
7D79 LD A,$02
7D7B RST $10
7D7C LD A,($7D35) Limpa a ultima coluna da porta, para dar o efeito de movimento
7D7F CALL imprime_coluna_porta
7D82 JP colisao_porta
desenha_porta_1 7D85 LD A,$1F Define var_posicao_da_porta a $1F, o maximo 'a direita
7D87 LD ($C34B),A
7D8A JP colisao_porta
Prev: 7D35 Up: Map Next: 7D8D