Escolar Documentos
Profissional Documentos
Cultura Documentos
COLOR COMPUTER
r:
c
r>
I '---
C
C
c
c c
r: ~
c c c c c c c c c
MANUAL DE REFERENCIA
r ....__
rados os direitos desta publica~lo slo reservados~ portanto este manual nlo pade ser reproduzido parcialmente au integralmente, sejam quais forem as meios empregados~ eletr6nicos~ mecAnicos OU quaisquer outros, sem pr~via autoriza~~o pDr escrito da CCE - Inform~tica. CCE - IndOstria e Com~rcio de Ccmponentes EletrOnicos SJA - OI'JISf\ODE INFOF:MATICA Av. Otaviano Alves de Lima, 2724 CEP 02501 - Sgo Paulo-SP - Brasil
SUMARIO
INTRODUCAO CAPtTULO 1
...................................................
....................
••••••••••••••
r:
CAPtTULO
2
"............ ••
II • • • • • • • • • • • • • • • • • • • • • • • • • • • •
TECLAOP ••••••••
3
CAPtTULO
EXIBICAO .0 ViDEO
NA TV au MONITOR
III •••••••••••••••
........ ,
., • • • • • • • .. • • • • • • • • • • • • • •
'.'
.
• .. ...
8
8
\lOG ••.••••••••••
FORMATACAO
RAM
DE V t DED
11
13
c c
r:
'-r>
CAPtTULO
4
I • • I • • • • .. • • • • • • • • • • • • • • .. • • • • • • • • ••
MON I TOR
15
15 16
c
r:
-1-
CAPtTULO
•
24
CONHECIMENTO
CC),D I GOS
01
II
41
COD180 TABELA
CAPiTULO
43
PORTAS DE E/S
I"
48
AP~NDICE
-2-
r:
c c
L
INTRODUC~O
Este ~ 0 manual t.cnico derefer~ncia do seu MC-l000 COLOR COMPUTER. Nele~ voc@ encontrar' informa~5es que sergo de grande valia como instrumento de programa~lo e orienta~go. Por tratar-se de manual tecnico, e conveniente que antes de l@-lo, voc~ conhe~a e estude 0 Manual de Instru~lo BASIC, que tambem acompanha 0 seu microcomputador. Desejamos-Ihe urnbom come~o no mundo da computa~lo!
c c c
c c
L
r:
v.,
C
C C
-3-
CDMPUTADOR
Quando vec! compra 0 seu cemputador, voc~ descobre que comprou urnccnjunto principal. Examine os seguintes acess6rios: wma fonte dealimental;go; fita cassete; cabo 75 Ohm com balun para TV; cabo para cassete; manuais.
Ao verificar 0 conjunto principal, voc~ encontrar~ urn gabinete contendo a placa principal, a c i rcuit o do teclado, a circuito de video, 0 circuito de fita cassete, 0 circuito para joysfick (0 micro propriamente dito). Nos cap1tulos a seguir, nOs Ihe apresentaremos toda a estrutura do conjunto principal e sews acess6rios indiyidual~enteo
-4-
c c
r
'-
CAP1TULO
('
TECLADO
50
c
r:
No seu camputador, hA um teclada do tipo d~ maquina de escrever. Ele gera a maioria dos c6digas ASCII, inclusive as de control~ (usanda (CTRL) e <@>, .•. <Z». Voc@ pade entrar no. DEBUGGER e chamar a endereco C006H pare verifi car tados 0.5 c6digas das teclas pressionadas no registrador A. Alguns c6digos podem usa.I'" tecla (SHIFT} pres5ionada com outra tecla ao mesmo a tempo. A saida do teclado 5e faz diretamente atraves do. registr-ador A com 0 c6digo e 0 status da tecla. Quanto ~ leitura do teclado, consulte a capitulo 5 deste livro, cam refer@ncia a KEY e KEY?, tabela de Jump. Mostramos a seguir, a tabela de gera~~o de c6digo5 ASCII.
"---'
C
L
c c
-5-
---------------------~----------------------------------------1 ______
. .
NORMAL --______
-_-_1
. .
1 ______
SHIFT
---
______
1 ______ . 1 ________
CTRL
---
______
1 ____
1 . 1
~caracter!c6digo!caracter!c6digo!caracter!~6dig6Icaracter!c6digo!
1 ____
______
1 ________
1 ______
1 ______ .
1 ____ .
espat;o
20
2C 2D
2E I
(I
espat;o <:
1
2 .,.
-»
2F 30 31
32 33
? espa.;:o
>
20 3C 3D
3E
p
1 m
n
0
3F 20 21
'"),..,
·01
"
.......
4 J '" 6 7 8 9
@
34
~..J
.......
** $
.1. &
(
"..,. ",:"._,
c
d
36 37 38 39,
-r r; ~H
24 25 26 27 28 29
2A
e
f
h i
j
~, "
A.
8 C D E F
G H I J
1<
L
3B 40 41 42 43 44 45 46 47 48 49 4A 4B
4C
* +
a
b
c d e'
f
9
h
i
j k
"
M
N
0
Q
4D 4E 4F 50
51
1 m n'
a p q
r
F:
S
52
",.,.
28 .60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71
72
50 70 6D 6E 6F 60 61 62 63 64 65 66 67 68 69 6A 6B 00
01
RUBOUT
r-;
P espa.;:o
Q R S T
U
50 20 7F 5E 5F 50
51
V
W
X
Y X Y espa<;o
52 53 54 55 56 .57 58 59 5A 5B 20
21 22
'23
02 03
04
"
**
05 06 07 08 09
CIA
I.
g(
(
24 25 26 27 28
29 2A
OB
oe
* + = ~
s:
SO
..J.J
s
t
LI
T U
')
54
"'I:' ..JJ
1:'"'7
73 74
~C'
OD OE OF 10
11
.1.,,)
<
28 2D 2E 2F 30 31
2C
"
(I
..,.
15 16
12
2 .,. ._,
4
.,.,.., ._"":':'
"":!'~ ......_,
56
JI
v
IN
"'. fa
-"'T
j..J
NAK
SYN
14 17 18
19
5 7
9
34
71:'
._i_~
~J
X
\(
Z
.~'.
---------------------------------------------------~~----------6-
F:UBOUT 1
58 59 5A 5E 5F
x
y
z RU80UT
78 79 7A 7E 7F
36
.39
37 38 ..,.". 2E
1A lE
iF I
··';'H
2F
c c
NOTA: 1- os c6digos s~o mostrados e~ hexadecimal; 2- as c6digos de controle ngo aparecem na tela. P.ode-se exibir alguns caracteres apenas quando houver um cartgo de 80 colunas; 3- como no video de todos os c6digas as caracteres de 61H aparece como c6digos ASCII com diferentes. 32 colunas ignora-se 0 69 bit, ASC II ad rnade 40H aparecem como subtra~~o de 40H. Par exemplo: 21H~ isto ~, "~". Ao tentar os car-tic de 80 colunas, alguns slo
L L
r: '-
'r
r:
-7-
c
(I
CAF"1.TULO
EXIeICAO NA TV OU
3
MONITOR
o ViDEO
Tipo de video Modalidade de exibi~30 Capacidade de texto Tipo de earacteres Conjunto de caracteres Modalidade do caraeter Capacidade grafica Numero de cores 512 caracteres (32 x 16) matriz de pontos 5 x 7 64 caracteres ASCII maiuseulos normal, invertido Baixa Resoluc30 128 x 64 bloeos Alta Resoluc80 - 256 x 192 pontos Baixa Resoluc30 - 4 cores Alta Resoluc30 -2 cores (preto e br ence: RAM exclusiva softswitch de video back-on com
VDG
As informac5es de video 580 geradas pelo VDG (Video Display Generator) MC6847P da Motorola Semiconductor Products Inc. Existem tr~s tipos de informacees basicas que pedem ser exibidas na tela quando se usa 0 BASIC residente, e outros oito formates graficos basicos que podem ser estabelecidos pelo usuario. A tabela a seguir estabelecides no VDG. mostra todes os formates que podem ser
-8-
r:
-------------,-----,
Cor
1 -
TABELA
!Tela (COlposta de 256 lin pontos!! ! "OdD !----- -----------!--------------!Barraaento !Cor Carac.! Fundo !Borda I !!odD ! Belentos de Exibi~~o !
! 01H !verde
c
c
!preto
~------
! preto ! verde
__ __
c
C
----------
! txibido
! I
! 0311 !laranja
Ipreto
'DO-3 0 1 1 I 1
! pretD ! laranja
~preta .~macteres !
G
C G
C C
4 pontos !D3!D2!" pont,os! -------!64 I 32 !Dl!DO! IrI III !preta !eil!l!!lltos . . . .I . ~ . I 1 !"odo -------- . . !TBdosos 4 eletentos de! (cor}{lu.in3ncia} !Seligr4fico ! !de !4 !exibi~~o !figura dD grupD do ca-l !rader 5~O da lesu! !cor. A intensidade da! !cor t 0 {preto! DU 1! ! lear totall.
_I
! 41H
1 0 o branco 0 1 cyan
1
ugenta
c
L
\.___
I I laranja
1______ --
c
c:
!DO-S07 Db
0
I
4 pontos !DS!D2! !D3!D2! 4 pontos! !WDO! !M x 32 !elelentDs !de !elibi~lo -------II I 'TOdDS 6 ell!l!!lltos del .I--._-_. . . . ... . _ I !lIodo os . . I III . !figura do grupo do ca-! (cor}(lu.in.hicia} !SeaigrAfico ! !rader s~o da lesta! !b lear. A intensi dade da~ ~ear H (preto) DU 11 ! {CDr totall.
.
r preto
61H
C C
! b3H
1---.
I 0 0 verde 0 1 a.anlo 1 0 azul 1 I vl!rlelha ------------!preta 0x preto 1 0 0 branco 1 0 1 cyan 1 1 0 aagenta 1 I laranja
-----------------------------------------------1
!D7 DII IDS D4 D3 D2 D1 DO)! !0 0 Yl!rde ! BIH ! 0 1 !verde ! a.arelo !1 0 azul !64 x It4 2 pont as Il!le.entD5 ver.elha !1 1 !------------------------! de ~!E3IENI! EO!J pontas I0 0 ttrancD !exibi,~o , I' 10 cyan !branco! I S3H I1 0 ligenta
I I
II
!1 I
laranja
-9-
'D7 1»6 D5 D4 D3 D2 Dl OO)! pretll Lverde ! 128 x 64 ! 85H ! 0 !1 verde !~l!lentIl5 !de !0 preto !I!xihi~~o !hranco! ! B7H ! 1 bran~o L_· _
-------------2 pontes !lIl1do , , L L I I I L I !Grifi co !!7!6!S!4!3!2!I!OL 3 ..'----!.............. 'pontll5! Lilli n4n~ia !128 I 64 ! !
II
,---------------
-_
!verdl! !128 x 64 2 pontll5 !lIodo !---!eletel1tos !!E3!E2!El!EO! 3 pontDs! '.'.'.'.'.',' _!_! !Grafica 'branca!de elibi~lo! !Cor E3 E2 E1 EO! 128 I 64
1 -------,----------------------------__ I
! 9DH ! Igual ao 6!
L
1
I
91H ! Igual ao S!
!verde !128 x 96 2 POlltos !lIodll !---!eluento5 !!E3!E2!El!EO! 3 pDntll5! !_!_!_!.!_!_!_!_!!GrafiCi !branco!de exibi'lo!· .. •........ • !Cor E3 E2 El EO !128 x 96 !verde !128 x 192 ! 2 pontlls !lIodo !--!eielentos !!7!1r!5!4!3!2!I!O! Ip.! !_I_!_!_I_!_!_!_!!SrMica Ibrancll!de I!xibi~lo!""""'''I''"'' ! LUlin4ncia !t28 x 192 !verde ! 128 x 192 ! 2 pontos !lIodo !---!l!lelento5 !!E3!E2!El!EO! 1 ponto ! !.' .I_I_.!.! .' .' .' !SrAfica !branco!dl! I!libi~~o!·II'II""'" !Cor E3 E2 El EO !12B x 192
--------------------------------------------------
95H ! Igual
aD
Ir~
! 99H ! Igual aa S!
L _
__ 1
9DH
Igual
aD
6!
! _I
_ 1_ I _ 1_ 1_ 1_ 1_
LUlin~ncia
Nota: a bit menos significativo do valor do modo e a chave do banco da RAM de video do 6847; assim. a modalidade OOH e 0 conjunto da modalidade 01H e banco na RAM de video.
-10-
TELA EM USUARIO
BASIC
c c c
tela:
na
c
C r.
'--
- TEXTO Quando voc~ liga 0 seu computador~ ele entra automaticamente em modo texto. Nesse modo~ vac~ pode exibir 16 linhas de nGmeros~ simbolos especiais e letras maiGsculas com 32 desses earaeteras em cada linha. Todos 05 caraeteres s~o mostrados com 5 pontos de largura por 7 pontos de altura~ com espal;o de urnponto de altura e dais pantos de la~gura aeima de cada linha;
- GRAFICOS
c c
c c
(_
r:
DE BAIXA RESOLU~~O Sa voe~ usar a instrul;~o GR do BASIC, a interpretadar BASIC coloeara a tela na modalidade BSH, que implementa 0 video de Baixa Resalul;go. Assim, voc~ pode consultar a tabela acima e usar uma instru,~o POKE para calocar as dados do grafieo na RAM de video e gerar o~ graficos. Voe~ pode tambem entrar com 0 DEBUGGER para codifiear um programa em linguagem de maquina, a fim de ter urnpoderoso desenho de graficos. Neste formato, voe~ dispBe de 3 cores, alem da cor do fundo;
De maneira semelhante A modalidade grafiea de Baixa Resolu,go, voc~ tem um mapa de video de 256 x 192 pontos. No entanto, nessa modalidade, 0 video s6 funciona em branco e preto.
- GRAFICOS
DE ALTA RESOlUCAO
r:
\..._...
RAM
DE
ViDEO
r:
'r
Na RAM de videa existente na placa prinCipal, voc~ tem instalado tr~s 6116~ que permitem rodar seu programa livremente. o video ~ independente da RAM do $istema, 0 que significa que voc~ tern 16K eu ate 64K de mem6ria principal al~m da RAM de video.
( (_
C
C r:
'-
c
c
-11-
ALGUNS
!
1 ·
ENDERECD
-----------------------------------------------
OFH
1 .
Chave de 32/80 colunas: quando 0 conteGdo deste buffer for zero~ a tela m05trar~ 32 colunas, caso contl'"ario~ computador estara.na modali0 dade de 80 colunas. Quando este buffer contiver 0 valor zero no bit 1~ entgo 0 cartlo de 80 colunas estara in5talado.. NOTA: ngo mude os dados deste buffer.
12DH
ENDERECD !ENDERECD 1
·
1 ·
DA PORTA!
! 32
col. ! 80 col.
-----------------------------------------------
DESCRICt!iD
Porta de sele~;o de formato do VDG MC6847P: use esta porta para escolher a resolu~!o do 6847. ~ --Porta de sele~;o de I"'egistrodo VDG MC6845: 0 6845 tem 16 regi5tr05, cada um tem seu pr6prio significado; voc~ tem que usar esta porta para selecionar 0 registro em que voc~ desej8 colocar urn dado. Ap6s selecionar um dos 16 registros do 6845, use este protocolo para estabeleeel'"0 dado apropriado no regi5tro.
1 .
OOH
I
1 1
1 1
·
I
I.
10H
1 ·
-----------------------------------------------
.
!
llH
1 1
-12-
c c c c
·
1
DESCRICAO
~-------_~
~_I
c c
12H · SOH
1
Bit 0=1 : Banco da VRAM 6845 ligado, mem6ria prin! cipal se superpOe ao cartlo de 80 colunas; banco ! ! da VRAM desligado, enderel;o da VRAM: 2000H-27FFH 1 Bit 0=0 : Banco da VRAM 6847 ligado. Caso contr~rio, banco da VRAM 6847 desligado superposto com banco da mem6ria principal. Endere~o da VRAM: 8000H-97FFH VRAM para representar a
.
.
t
As tabelas acima mostram como controlar a exibi~go do video tanto com 32 como com 80 colunas. A VRAM do 6845 ou 6847 pode ser acessada diretamente quando voc~ habilita-la.
c
c
Na modalidade de texto, cada earacter e represent ado pOl" um c6digo ASCII, no entanto, ° 6847 tem urn arranjo diferente do e6digo ASCII E MAPEAMENTO DOS CARACTERES. 0 6847 ignora as bits 6 e 7 do c6digo ASCII ao exibir 0 caraeter; obit 7 e usado para ° caraeter invertido, e quando estiver ligado (valor 1), 0 caracter aparecera inver-tido, isto e~ a cor e ° fundo do cardcter ficam invertidos.
Exemp l o ; 41H
0 "A" normal ~ CIH para 0 "A" invertido. Como 0 bit 6 e ignorado, tanto 41H como 01H I"epresentam o "A",
c
a
GERADOR
DE
SONS
CASSETE
Na placa principal, voc~ pode vel" um LSI marcado AY-3-8910, produzido pela General Instrument. Atraves desse chip, impiementamos duas fun~aes: - E/S de um bit para fita cassete; - gera~go de sam.
c
c SJ
-13-
Forneceremos maiores detalhes posteriormente, da tabela de Jump do MONITOR e sua listagem fonte.
na
descri~~o
No monitor, n6s ofereceremos uma rotina de servi~o de interrup~go, voc~ pode usa-la juntamente com uma tabela de tons, para produzir uma melodia.
-14-
l C
CAPtTULO
c·
L
MONITOR
Quando falarmos em MONITOR apenas, ngo estaremos falando de um dispositivo de hardware, 0 CRT. 0 MONITOR e um controlador de software, programado para inieializar toda composi~~o de hardware e algLtnS acess6r ias. Se voe! j~ estiver familiarizado com a CPU do Z-80A e sua linguagen de m~quina, este capitulo sera bastante interessante e util. Voe! pode ver duas ROM's 2764 encaixadas na placa principal; seus endere~os de inicio s!o COOOH e EOOOH. At estgo a MONITOR e a interpretador do BASIC residente.
c c c
L
COMO
ENTRAR
NO
MONITOR
Na verdade, quando voc! ligar seu computador,sera gerado urn pulso para da!'" Reset na CPU e na estrutur-a de hardware, a colocando 0 PC lCantador de Programa) em COOOH, que e 0 inicio do MONITOR. Ap6s a inicializa~go do hardware, 0 controle passa para o interpretador BASIC. A· finalidade de entrar em BASIC e para maior conveni!ncia do usuario, ja que 0 uso do BASIC e mais facil e mais difundido que 0 cOdigo de maquina.
c c
C
L
No manual de programaGgo BASIC, voc! leu que existe urn comando chamado DEBUG; quando voc! digita esse comando seguido de <RETURN>, 0 controle passara para DEBUGGER. Aparecera na tela urn caracter especial ">~, que e 0 stmbolo de prontid!o do DEBUGGER. Nesse programa, voc~ pode ex i b i r , mover, sub st i t.u r , preenchel"" i e verificar progr-amas em c6diga de maquina. Com maior facilidade, voc~ pode sair do DEBUGGER, Llsando apenas 0 Quit, entrando novamente no BASIC. Uma coisa que vac@ vai notar- e que a pr-ograma em BASIC que voc~ digitoL! antes de entrar no DEBUGGER ainda esta la, a ngo ser que voc@ tenha mudado o conte~do do buffer do MONITOR e do inter-pretador BASIC.
'-
c c
L
o MONITOR Ihe ofer-ece tr~s tipos de informa~5es: comando, dado e endEre~o. Comandos diferentes tern farmata de dados e endereGos diferentes. Todos as dados e ender-e,os slo dados em notal;lo hex adec i mal . (0 ••• F para r epreeent ar de 0 a 15 em numer cs decimais) .
-15-
Cada byte de dados se compOe de dais digitos hexadecimais para representar urn nOmero decimal de 0 a 255. Dais bytes de dados (dizemos byte alto e byte baixo) representam urn endereGo. Sell valor varia de 0 a 65535~ isto e~ urn total de 64K bytes. Existern B cornandos principais no MONITOR, que podem serusados para elaborar e depurar a seu programa em codigo de maqLlina. Nos as apresentaremos um par um ,
•
MDSTRANDO 0 CONTEODO DA MEMORIA
A primeira ~oisa que voc~ deve fazer com os comandos do MONITOR • listsr todos os segredos do MONITOR. Nos mencionamos anted ormente que a MONITOR e 0 interpretador do BASIC est~o laealizados no COOOH-FFFFH. Voea pode mostrar as e6digos FaGa como segue: >OCOOO <RETURN> de maquina nestes endereGos.
o sinal maiar ")" e a earaeter de prontid,gfodo OEBUGGER~ sempre que voel ver a cursor piscando ap6s 0 caracter de prontid~o~ pode digitar os comandos do MONITOR 0 cursorpiscando e este car acter esU\o dizenda a vocl que 0 moni tor esta esperando pela sua digitaGgo.
OBse,.-va,go:semp,.-e pressione <RETURN> linha inteira digitada. Ap6s t ec ler <RETURN>~ a tela hexadecimais como estes: para completar uma dados
most,.-arauma cadeia de
COOO xx xx xx XX XX XX XX XX C008 XX XX XX XX XX XX XX XX
cooa e COOS ~ a endere,o do primeiro dado daquela linha. De aco,.-do com isto~ as oito dades que seguem COOO s~o 0 conteGdo do ende,.-e,oCOOOH-C007H e a segunda linha mostra 0 conte6do do ende,.-e,o COOBH-COOFH.
5e voc~ lista,.- dados de COOOH~ pode,.-~ as ver a procedimento do MONITOR e do inter-pretador de BASIC, caso esteja familiarizado com os c6digos de mAquina.
-16-
C r:
c c
c c
c
r .........
Quando voc~ estiver usando 0 subcomando D e a tela estiver mostrando as conteudos da memoria, voc~ pode usar CTRL 5 (pressione as teclas (CTRL) e <5) simultaneamente) para parar a amostragem. Pressione qualquer tec1a para continuar au CTRL-C para par-ara amostragem.
SUBSTITUINDO MEMORIA
OS
CONTEODOS
DA
c c
L
Vac~ sabe que todos 05 dados na RAM (Random Acess Memory) sgo alterAveis. Neste caso~ exceta dados cr1ticos quais s~o usadcs pelo MONITOR e interpretador, voc~ pode mudar 0 dado a fim de obter alguma modifica~go au implementa~go. 5e voc~ quiser trocar 0 dado da VRAM, lembre-se que a VRAM de 6847/6845 deve estar habilitada. Para habilitar a VRAM, mencionamos anteriormente. revise a
0
Display
RAMswitch
que
c c
exame e 5ubstitui~~o do
Nas se~5es aeima, 0 5ubcomando D ensinou a voe~ como mostrar urnbloeo de da.dos.Agora discutiremos as dados ( unicos) mostrando e alterando. Voe~ deve usar 0 subeomando 5 para examinar e/ou substituir dados byte a byte para armazenar seu programa em cod i qo de maquina na memoria, e depois usar outr-e comanda para depurar (DEBUG) este bloeo do programa.
c c
C
'-
onde
~ 0
3000 ~ 0 endere~o a ser examinado e/ou trocado. XX (byte) conteudo da memoria 3000H. primeira ~
Agora voe~ tem duas op~8es para .seleeionar: a teelar <RETURN) imediatamente, entIa a tela mostrarA: 3000 XX 3001 XX
r:
-17-
A segunda segue:
digitar
urndado
novo e
<RETURN>
como
Agora, se voc@ examinar 3000H 3000H sera a novo dado yy~ e n~a XX.
novamente, a
cante6do
de
Ate agora, nos pademas cancluir que a primeira apc;:~o e teclar <RETURN> somente. Ngo h4 necessidade de trocar qualquer dado. A segunda OPI;~O e digitar um novo dado e <RETURN> para atualizar dados antigos. Ent80 yoe@ pode usar a subeomanda S para examinar au atualizar 0 conteudo da mem6ria. Pressione uma teela que ngo seja para finalizar 0 comando S. hexadecimal au <RETURN>
PREENCHENDO
UMA
AREA
DE
MEMORIA
Em muitas s1tuac;:5es, n6s desejamos preeneher com 05 mesmos dados urnbloco de mem6ri~; a bloeo pode variar de 1 a 64K bytes. Se n6s usarmos 0 eomando S para preenc:her 64K de memoria, sera um trabalho muito cansativo. Felizmente, a MONITOR apresenta a comanda F que e muito eficiente. Ele pode preencher 64K de dados em urn segundo. 0 formato do comando F e: FXXXX YYYY dd onde XXXX e a enderec;:o inicial do bloeo, YYYY e0 final do bloeo e dd e a dado a ser arquivado. Exe~plo:
>F 3000 305F 55 <RETURN>
enderec;:o
..J..}
c"c" &::''''
.................................
..............................
I'
...
II
3050 55 55 55 55 55 55 55 55 3(}58 55 55 55 55 55 55 55 55
-18-
Lembre-se de nunca arquivar dados nos buffers do MONITOR e interpretador de BASIC. Caso contrArio, 0 computador entrara em pane, pois 0 comando n~o estA correto.
DE
UM
BLDCD
c
c
I._
Aqui nOs dizemos "movendo", na verdade nOs vamos copiar urn blaeo de dados em urnanova localiza~go e as dados copiados slo ainda existentes. Ao desenvolver e depurar codigos de mAquina, o subcomando M ~ usado frequentemente. Exemplo: )MCOOO COOF 1000 <RETURN> para
0
AD terminar 0 comando de movimento acima descrito, voc~ pode verificar os dados para checar a opera,lo movimento. Como voc~ pode ver, os dois blocos de dados s~o os mesmos.
VERIFICANDD
OS
REGISTRADDRES
Ap6s apresentar 4 comandos referentes a memOria, nOs mostraremos dois comandos referentes a registradores, respectivamente subcomandos ReX. De maneira anAloga ao subcomando S, n6s usamos os subeomandos ReX para axaminer'e alterar 0 cont.eudo de todos os registradores da CPU do I-BOA. Conforme 0 conteudo desses registradores, voc~ pode verificar a exatidlo da execu~lo do programa; obviamente, voc~ precisa conhecer inicialmente 0 significado dos registradores. Ex i stem doi 5 grupos de registradores na CPU do Z-BOA, a saber: A,B,C,D,E,F,H"I,L,M,X,Y,P,S e A',B',C',D',E',F',H',I',L',M', cnde F ~ 0 registrador de flag; I ~ a registrador de interrup,ga, M ~ a combina,So de H e L; X ~ a registrador de indice IX; Y ~ 0 registradar de indiee IV; P ~ 0 contador do programa; Sea ponteira da pilha ("Stack Pointer"). Coma voc~ percebeu, X, Y, PeS nga ternas correspondentes registradores1inha (i st.o~, X'~ Y', et.c .l.
(
r>
\
-19'"
Suponha que voc~ queira ve,. 0 conte6do de todos os registradores, ent~o digite X seguido de <RETURN) como no comando S e, todos as registradores ~o primeiro grupo aparecerlo na tela. Se voc~ digitar: >R <RETURN> entlo serlo listados todos as registradores-linha (A', B', etc.). Voc~ t amhsm pode al t erer 0 conteudo de todos os registradores atraves do subcomando X,R, conforme segue: >X
>!X
Quando voc~ digitar X ap6s 0 simbolo de prontidlo sem 0 <RETURN> depois, mas com a especifica~lo de um registradar, entia a tela mastrar~ apenas 0 conte6do desse registradar, um h1fen, e ficar~ esperando que voc~ 0 atualize. Agora voc~ terntr~s op~~es: digitar <RETURN}, <SPACE> ou noyos dados. Se voc~ digita,. <RETURN>, isso termina a subcomando X; se pressionar a tecla de espa,6, a registrador atua! fica inalterado, aparecendo a pr6ximo registrador e esperando a atualiza~la. Na terceira op,lo, vac~ digita as dados novas, que entrarlo no lugar dos dados antigas do registrador, aparecendo 0 registrador seguinte. Usa-se a comando R para examinar ou alterar a grupo de registradares-linha. 0 procedimento de opera~~o e a mesmo que para a subcomando X na maiaria dos casos. Em primeiro lugar, usamos principalmente as regi~tradares do primeiro grupo, ficando o grupa de registradores-linha como auxiliar ~ara guardar os registradores do primeiro grupo temporariamente no grupo-llnha}. At~ agora, conseguimos acessar todos os dados do conjunto principal (isto~, na mem6ria enos registradoresl. A 61tima coisa que yoc~ precisa saber ~ como depurar seu programa atraves desses 6 subcomandos.
DEPURANDO MAQUINA
SEUS
C~DIGOS
DE
ferramenta de depura~go
o G significa GO (isto~, "vii"atraves do programa). Ap6s digitar uma sequ~ncia de c6digos de m~quina na RAM disponivel, voc~ ternque verific~r se os c6digos de milquina estgo executando corretamente; ent~o, voc~ deveria GO ("ir" atraves do) c6digo de m~quina passo a passo e verificar Q conte6do dos registradores au do buffer usado. Se houver algum erro no programa, corrija-o e
-'20-
c
r:
\_
execute-o ate que esteja correto. No entanto, como depurar 0 programa passo a passo? Ngo se preocupe, 0 subcomando embutido G pode fazer isso. Coloque 0 seguinte programa em 3000H:
r<.
r:
C C
'-
>
C
C
(__
3008
c
"-
3009 300A 300B 300C 300D 300E 300F 3010 3011 3012 3013 3014 3015 3016
)
XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX
CD 09 CO CA 00 30 CD 06
CO
Chame estado de entrada do console Nenhuma tecla digitada, volta p/3000H Pegue c6digo da tecla num registrador
FE 51
CA
a tecla "(;)"?
15 4F CD OC CO C'" -» 00 30 F7
30
ViJ. ara entrada de stop p Move c6digo da tecla p/registrador C Chame saida do console para ex i b i r C6digo da teela na tela Volte para 3000H RST 6, pare Q programa e volte para 0 monitor Digite qualquer tecla ngo-hexadecimal
c
r>
c c
-_
\.._
Antes de comet;ar 0 nosso trabalho, vamos subcomando G. Este pode selecionar quatro formatos:
estudar
1- fixa 0 registrador PC na localizat;lo 3000H (se 0 seu programa nlo estiver em 3000H, entgo coloque-o nesse enderet;o) e GO sem STOP; }XS xx-3000 (RETURN> >6 <RETURN> 2- n~o fixa
0
}G3000 <RETURr~>
3- selecionar
de
1 ou 2, mas sem fixar um ponto de BREAK lendereco parada). a metodo para fixar 0 ponto de BREAK e pressionar ~ tecla de espat;o uma vez tapas digitar G au 83000, quando ent~o aparecera na tela: -21-
II
>G ou >G3000
hffen esperando
que
vac~
Voc~ digita 3003 para dizer ao DEBUGGER que voc~ quer parar no endere~o 3003H, entgo a sele~go ~ 4- fixe a ponto secund'rio de BREAK au apenas pressione <RETURN). Caso opte pelo Oltimo, aparecerA na tela:
A tela mostr-a agora urn u#" e 0 ender-ei;o par-ada 3003H. de Voc~ pode usar a subcomando X para verificar- 0 registr-adar- e A PC. 0 PC cantera 3003. 0 r-egistrador A cantem 00 quando nga se aper-tounenhuma tecla au cantem OFFH para indicar-que algumas teclas foram pressianadas. 5e nenhuma teela fai pr-essionada, de aeardo com a progr-ama que cadificamos, ele deve fazer urn RETURN para 3000H, de for-rna que vat~ possa fixar- a ponto de BREAK em 3000H par-aver-se 0 PC realmente ~ transfer-ida para 3000H; se ngo for, entgo deve haver-algum pr-oblema na sub-r-atina de estado da console (na verdade, isso ~ impossivel, a menos que Q MONITOR no seu conjunto principal esteja defeituoso). 5e voc~ digitar 0 segundo ponto de BREAK, pr-essione a tecla de espa~o e navamente digite 0 endere~o em que voc~ quer parar- na situa~go secund~ria. Par exemplo, ap6s chamar- C009H, podem ocor-r-erduas situa~5es: nenhuma tecla pressionada au algumas teclas pressionadas; entgo a progr-ama pode ir- (GO) para 3000H novamente au par-a3006H. Agora voc~ pode parar em 3000H ou 3006H~ tendo oear-rido uma situa~go. 5e voc~ fixar- 0 ponto de BREAK em 3006H e algumas teclas forem pressianadas~ a tela aparecera da seguinte forma: #3006
:>
Agora verifique a registrador A. Ele cDnt~m a c6digo ASCII da tecla que voc~ pr-essionou? Ngo deve haver d~vidas quanta a isso. 5e vac~ digitar a tecla "A"~ a r-egistrador A contE:""a 4tH.
-22-
c c
(
o enderet;o 3009H e 300AH e para vedficar se a tecla pr-essionada e "Q". Se +cr, enUto saia ("QUIT") par-a a MONITOR, caso contrario~ mude a c6digo da tecla para a registrador C e chame a sub-rotina de saida do console para exibir 0 c6digo da tecla na tela. 0 enderet;o 3012H vai para 0 3000H para repetir a
ci c l o,
No meio do procedimento de depura~~o, e importante saber onde fi x ar 0 ponto de BREAK. Na linguagem Assembly do Z-BOA, toda instru~~o tem formato e cornprimento diferente. 1550 quer dizer que algumas instrut;Bes ternurnoperando, enquanto outras tem dais. Algumas instru~Oes ternapenas urnbyte de comprimento e out.r as tern dais ou tr~s bytes. Quando voc~ fixa 0 ponto de BREAK, esse ponto deve estar no ender-et;o OP CODE, ngo no endereeo dos operandos. do Par exernplo, 0 (CD) em 3000H e (CA) em 3003H s~o os OP CODES~ mas 09H, COH, OOH e 30H sgo todos operandos. Voc~ deve selecionar 0 ponto de BREAK em (CD) e/ou (CA} r-esidentes nos enderet;os 3000H e/ou 3003H, caso contrario, 0 programa n~o parara no ponto de BREAK ilegal. Tendo conhecimento da CPU do Z-BOA e dos subcomandos do DEBUGGER, voc~ pode come~ar a implementa~~o e a depur acac do seu programa exatamente agora. Isso sera bast ante interessante e desafiador.
SAINDO
DO
MONITOR
c c
r
Como em outras pacotes, nOs usamos a camando QUIT para sair do MONITOR. Como voc~ tern 0 simbolo de prontid~o do MONITOR~ digite Q e <RETURN>, e 0 controle voltar~ para 0 interpretador BASIC, sendo que 0 programa original em BASIC ainda continua lA~ inalterado. Exemplo: >Q <RETURN> OK LIST <RETURN> A tela listari DEBUGGER.
0
C C
programa que
de entrar
no
-23-
5 DO MONITOR
De agora em diante, vamos discutir alguns conhecimentos t~cnicos. Quando estiver estudando 0 que vern adiante, consulte a listagem fonte do MONITOR, pois ela Ihe ser~ de grande valia.
BUFFERS
ESPECIAIS
DO
MONITOR
ngo permitem altera~go. Quanto aos buffers que ngo admitem alteral;go, podemos e>{aminar seus val ores , mas nunea muda-Los ,
C40?80 : OOOFH
col unas ,
Eis aqui 0 buffer da chave de exibi~go do video para 32/80 Quando a corrt eudo do ender ecc OOOFH for 0, ent~o a sai da do console sera em 32 colunas; 5e a valor for 1, 0 cartgo de 80 colunas est a instal ado. Logicamente, vac~ pode mudar 0 valor de 0 para 1 mas, depois voc~ ter~ que chamar a sub-rotina ISCN (C021H), caso cQntr~rio, a tela apresentar.#tinformac:i3es incompreensfveis.
CLR
OOF6H
Eaixa Resoluc:lo ~ armazenado aqui, com
-24-
r:
STAR : OOFBH
Este buffer- terndois bytes; quando voc~ chamar a sub-rotina de entrada/saida p6r ~ita, coloque 0 ender-e;o de in1cio do bleeo de dados salvo/carregado nesse buffer. a byte baixo em OOFBH e 0 byte alto em OOFCH.
ENDT : OOFDH
r:
fim
TAPaUT (C012H).
Ao salvar os dados em fita cassete, coloque 0 endere;o de do bloeo de dados neste buffer antes de chamar a sub-rotina
c
t:
PLAY : 0104H
NLlrnero da jogada atual no procedimento de disputa de jogo.
PLAVMX : 010SH
NOmero m~ximo da jogada no jogo atual.
C'
(
HEAD : 0106H
Este e urn buffer frequentemente usado. Na sec;::~o sobre teclado, entrada/said ... e fita, temos que ver i+i cer esse buffer. d a buffer HEAD terndois valor-es: OFFH au ngo. Quando voc@ estiver em BASIC au MONITOR, 0 valor desse buffer e OFFH; se estiver jogando, 0 valor e diferente mas voc@ ngo pode e:<amina-lo. Quando voc@ chamar uma sub-rotina d~ E/S de fita como TAPIN/TAPOUT, certi fi que-se de que 0 valor e OFFH.
RANDOM : Ol07H
Buffer gerador de nOmera randOmieo; cada vez que se chama a sub-rotina SKEY?, esse buffer de dais bytes muda uma vez.
DLNG : 0113H
A sub-rotina de saida do console tern muitos buffers; esta aqui e usado para ar-mazenar 0 compr-imento da tela. 0 buffer conter~ 32/80 quando voc~ estiver usando 32/80 colunas.
-25-
KEYO : 011811 Buffer tempor~rio do c6digo da tecla. Quando 0 computador varte 0 teclado e algumas teclas forem pres5ionadas~ 0 c6digo ASCII set' armazenado temporariamente neste buffer. Assim~ voc~ pode obter 0 c6digo da tecla diretamente daqui; em especial~ quando HEAD nlo for OFFH~ pode haver 4 teclas pressionadas simultaneamente (verifique 0 registrador A ap6s chamar KEY? (C009H) para ver i f i car quantas teclas fo.rampressionadas). Nesse ca50~ VQC~ ter~ que cbter as c6digo. de tecla em KEYO .•.KEY+3.
JOB
0120H
Ponto de entrada de sub-ratina definida pelo usuArio. Este buffer de tr~s bytes normalmente cont~m urncOdigo d, retorno (OC9H). Em muitos jagos, nOs a usamos para fazer a entrada na sub-rotina do contador de tempo. Logicamente, voc~ pode u5~-10 para fazer autras coisas. Cada vez que 0 teclado ~ varrido (sub-ratina SKEY?), esse ponto de entrada ser~ chamado uma vez.
CDSW : 012
Chave de fun~6es de saida do console. Seu mapa de bits ~:
Iff I f I f
! ------->
~-----> LEAD-IN
CartElade 80 colunes exi stente Coordenadas Y do enderei;odireto do cursor. endere~a direto do cursor
!-----------------)
1 )
NOs
JOBM: 0130H
Este ~ um outro ponto de entrada de sub-rotina programada, mas diferente de JOB; esta entrada ~ usada pelo MONITOR para fazer 0 cursor piscar. Voc@ pade checar este buffer de 3 bits para ver se ~ uma instru~~c para pular. 0 0nico dado que voc~ pede usar para recolocar 0 cOdigo (C3) ~ RETURN (C9), e 0 cursor n~o piscar~ mais. Tenha JOBM+2. cuidado para n~o trocar os conte6dos da JOBM+l e
-26-
c c
(
c
r
(
r
C
C
(112
(I
«:
c
r
'--
~B!O!M!
1 !E!x!e'm!p!l!o! 2 !
!!!
C ,
.
'---
Suponha
que
voc~
Uma coisa mais, a mostragem da VRAM de 32 colunas come~a de 8000H e de 80 colunas ~ 2000H. N6s colunas. expli caremcs
0
e>:emplo no modo
de mastragem
de 32
-27-
A VRAM e 0 mapeamento da tela sgo seqL!enCla.1s. dizer que 0 UB" • exibido no endere,o BOOOH, 0 "0" 8001H e 0 "M" ~ exibido em 8000H+32*1=B032H, onde largura da tela armazenada em DLNG, 1 ~ a linha exibido em 8000H+32*1+1, porque "x" est~ na coluna podemos deduzir a seguinte expressgo:
(endere~a do cursar)=(enderec:o de ioieio da VRAM)+ (largur-a>*(nklmer-o da Li nha l+vnumer o da col una) Agora tudo est. claro. 0 a SNPTR guarda de cada linha, nOmero da eoluna.
de e
0
LCNT
inicio
0
DSNAM : 0163H
Buffer- para guardar da janela atual da tela. a enderec:o de inleiQ na VRAM 6847/6845
DENAM : 0165H
Buffer- paraguardar da janela atual da tela. a tela.
0 endere~o de termino na VRAM 6847/6845 Voc~ pode mudar esse buffer para dividir
OBUF : 017FH
Se voe~ nome-de-arquivo buffer, sendo
<RETURN» •
chamar- TAPIN «lCOOFH), essa sub-rotina ler-a 0 da fita cassete e armazenara 0 mesma neste 0 comprimento maximo do mesma 14 bytes (inclL.lindo 0
5uponha que voc~ queira ler urn arquivo da fita cassete onde for-am guardados muitos arquivos. Vac~ tern que comparar 0 nome-de-arquivo que voc~ quer ler com este buffer. 5e eles forem iguais, entaa chame 0 GETl em seguida. chamar Uma pr cx i rna sec:~o fara essas sub-r-otinas. uma apresentac:a.o detal hada de como
FILNAM : 0180H
Aa contr ar i o de OBUF, us a+se este buffe:r de 14 bytes para armazenar 0 nome-de-arquivo cUja bloca de dados voc~ quer- guardar na fita cassete. 0 ncme-de-ar-quivo deve terminar com <RETURN) au ter 14 bytes de comprimento.
-28-
TABELA
DE
JUMP
DO
MONITOR
r:
Edstem 33 p.ontos de entrada no tope da ROM; cada instruc;go de Jump leva para uma sub-retina facilitando a chamada. Juntamente com os buffers do MONITOR, voc~ pode diretamente essas sub-rotinas para executar alguma coisa. chamar
ST
COOOH
Quando voc~ ligar nevamente 0 seu cemputader ou der um RESET na CPU do Z-80A, 0 PC fica com 0 enderel;o OOOOH. Apes e lquna ciclos, a estrutura de hardware mudara 0 PC para COOOH; essa i nst rucgo de jump existe para resetar a CPU. Em outras palavras~ essa e a entrada para partida a frio.
BAENTO : C003H Pento de entrada do interpretador BASIC. Apes 0 MONITOR completar a inicializal;go, 0 controle passa para a BASIC atraves dessa entrada. KEY C006H
0
r:
ler
conhecida. Toda vez que voc~ quiser e necessario chamar essa entrada. C6digo
r:
Entrada: nenhuma Saida 0 c6digo ASCII no registrador A se HEAD e OFFH. ASCII em KEYO •.•KEY+3, se HEAD ngo for OFFH. Registrador alterado: A KEY? : C009H
c
c
As vezes voc@ tern que verificar se foi pressionada alguma tecla; se ngo foi~ fac;a as outras cOisas, caso contrario, obtenha o c6digo da tecla. Dessa forma, voc~ ngo perdera tempo lendo a teel a. Entrada: nenhuma Saida A=O se ~go foi pressionada nenhuma tecla. A=OFFH se foi pressionada algllma tecla. Registrador alterado: A
r:
-29-
CO
COOCH
T&o importante quanta KEY e KEY? Esta sub-rotina de saida do console desempenha uma fun~go de sa1da para a tela. Entrada: 0 registrador C eont~m 0 cOdigo ASCII a ser exibido. Saida : Exibi~go do caracter na tela. Registrador alterado: nenhum
TAPIN:
Entrada: nenhuma Baida nome-de-arquivo em OBUF (017FH) Registradores alterados: todos
-30-
GET1:
Entrada: endere~o de inieio onde se deve colocar 0 arquivo lido. Salda arquivo lido colocado na localiza~go come~a a partir do endereco de inieio atribuido. Registradores alterados: todos
TAPOUT : C012H
Gravar um arquivo em fita cassete e mais facil do que carregar urn arquivo, pois n~o precisamos nos preocupar com 0 valor do HEAD.
c
c
Quanto as caracteristicas de controle do pulso, TAPDUT a mesma coisa que TAPIN e GETl.
Um fator muito importante e a conex~o MIC e 2/3 da eseala do volume. 5e voc~ usar a tomada AUX ou um volume inadequado, a qualidade de gravacao do arquivo sera inaceit~vel. Entrada: endere~o de inieio em STAR endere~o de termino em ENDT Nome-de-arquivo em FILNAM Saida Nenhuma Registradores alterados: todos MSG C018H
As vezes voc~ quer edbir uma sequ~ncia de car-acteres na tela; a chamada de CD e um metoda ja mencionado parem inefieienteo Oferecern s aqui urn outro metodo de exibir uma sequ~ncia de o uma vez a partir da posi~&o atual do cursor. Tente 0 seguinte pr-ocedimento e veja se ele aparece na tela: 1- ponha uma sequ~ncia na mem6ria. Use 0 subcomando 5 para digitar- uma sequ~ncia que termine com OOH no endere~o 3000H da seguinte forma:
3000H
< ------0
2- Aponte
3- Digite a programa de chamada em 3020H. acima, 0 cont eudo da mem6ria sera: 3000H 45 78 65 6D 70 6C 6F 00 3020H 21 00 30 CD 18 CO F7
TLOAD : C01BH
e 0 mesmo que digitar Chamar esta sub-rotina em DEBUGGER <RETURN)" em BASIC. Voc~ pode carregar urn jogo da fita dessa maneira.
"TLOAD )GCOIBH
GETL : C01EH
CO ex i be urncar ect.er na tela, MSG exibe uma sequ~ncia de caracteres na tela; KEY l~ urnc6dige ASCII e GETL l~ uma sequ~ncia de c6digos de tecla a partir do teclado. Quando exibir uma sequ~ncia na tela, vec~ eoloca os c6digos ASCII exibidos em urn buffer de sequ~ncia (como 3000H) e 0 par HL aponta para eSSE buffer. Em GETL~ basta yoc~ digitar as teclas e terminar a operacao com <RETURN>; os c6digos de tecla ser.§lo colocados num buffer que comec;:a 200H. Ent~o, tente i5so: em
1- 3000H CD IE CO F7 2- >G3000 3- Digite umasequ~ncia 4- )D200 25F (RETURN) Quando voc~ digitar uma tecla, a mesma ser~ exibida na tela. <RETURN> ngo funcionarA e 0 c6digo ODH <RETURN) na mem6ria sera substituido por OOH. e termine-a com <RETURN>
ISCN : C021H
Esta sub-rotina e para inicializa;lo da tela e inclui a inicializac:~o do hardware de 32/80 colunas, e inicializac:lo dos buffers. Se YOc~ mudar a valor de C40?80~ chame essa sub-ratina simultaneamente, caso contrArio, a tela ficarA confusa.
(INTRUP : C024H)
Esta e limarot ina.comp 1exa de servicc de i nterrupc::!oimp1ementada para gerar tons para tr~s canais. As instru~aes TEMPO e SOM, e a M(JSICA dos jogos, todos eles Ltsam essa sub-rotina. Na placa principal~ 0 pulso de interrupc:~o ~ geradoa cada 4 mil i asequndcs logo. apos a i nter-rupcao set'" ativada pela t nst.r u~go EI da CPU do Z-80A. Se YOc~ tiver desativado a interrup~go, ngo se Quvira SDm algum. -32-
SKEY? : C027H
Esta I'"qtina parecida com a sub-I'"otina e KEY?, mas ela varre o teclado em dois casos: 1- se HEAD
2- se HEAD for diferente de OFFH, ent~o: Entrada: nenhuma a registro A cantem a numero de teclas pressionadas; Saida l<EYO •••KEY+3 contem ate quatro cddigos ASCII de teclas pressionadas. r: Parque nds temos de fixar dois pontos de entrada diferentes para KEY? e SKEY? ? A resposta e que, quando voe~ estiver jagando, pade haver dais jagadares, e cada jagado!'" pode apertar 0 boU~.o de dispara e lIsar 0 joysti ck para se leel onar para c i rna, para baixo, para a esquerda e para a direita, sendo assim necessario ler quatro teclas ao mesmo tempo para dois jogadores. Na verdade, quando voc~ usa 0 joystick, isso e apenas uma maneira conveniente de digitar no teclado; em outras palavras, por quest~o de conyeni~ncia, nds separamas algumas teelas para 0 j oysti ck ,
e:
OPERAf;AO
--------
JOYSTICK ESQUERDO
----------------cddigo ASCII
I
Q
---------------c6diga ASCII
H
P
0
X Ig
1 y
Sub-rotina demultiplica~~ci para nOmera positiv~. Entrada: A e C cont~m a multiplicando e 0 mult ip lieador. Saida A, C e HL estao em hexadec i mal ,
-33-
---------------------------
DIV
C02DH
Divis~o.
Entrada: HL contem 0 dividendo. C cantem 0 divisor. Sa1da 1- Quaciente em L~ resta em H ICY=1) 2- ERROR~ (H) > (C)~ (CY=O)
flag do Carry.
A maioria dos jogos s~o escritos na modalidade 88H do 6847. As sub-rotinas introduzidas em seguida slo todas impl~mentadas na modalidade 8SH.
Par que na modal i dade BSH e nlo 89H? Como 0 bit menes significative e a chave de "habilital;lo" da VRAM, n6s +i xamoa a sele!;go de medalidade do 6847 e "habilitamos" ao mesma tempo na VRAM do 6847. Entrada: B cont~m 0 c6digo a ser colocado na VRAM. Saida VRAM 8000H ...97FFH preenchida com oconteado trad~r B. do regis-
XCLRl
C033H
em
Entrada: (HU = ender eco de in1cio da VRAM a 5er preenchida. Saida : VRAM de (HL) a 97FFH preenchida com (B). Registradores alterados: A, B, H, L
D4X5 : C036H
Na modalidade 8SH, cada byte mapeia quatro blocos na tela; essa sub-rotina serve para mostrar urnpadrlo de cinco bytes de comprimento, como 0 padrlo "1":
-34-
c
c
r:
'-
C
Figura
c c c c c c
'--
---------~---------------------------------------
= = = = =
--------------,-----------------------------------
r>
c c c
c
H em hexadecimal.
c
c
c
Suponha que vamos mostrar 0 padr~o do "1" no canto esquer-do superior da tela, e que a .cor vermelha na modalidade 88H e I1H; entllo, os c6digos do PADRAO silo OCH, 3CH, OCH, OCH, OFFH. Agora tente 0 seguinte:
1-
coloque os c6digos do
PADRAO
em 3000H;
2- fixe a modalidade
BSH;
OOH;
c
c
4- chame 04X5.
o
3000H 2000
2001
e:
c.
c c
3C
OC
OC
FF fi.xe a modalidade 8SH SOH ~ 0 enderec;o da porta de selec;!lo da modalidade do 6847 (B) = OOH chame XCLEAR
c c c
c
2002
2003 2004 2005 2006
03
80
c c c c c
06 00 CD
30
CO
21
00 80
HL aponta para
11
c c
00 30 CD
36
CO C3 12 20
Agora digite:
>62000 <RETURN>
da tel a com
De 2012H a 2014H, e necessaria fazer um jump para a pr6prio enderec:o. 5e vcce fixar 0 ponto de BREAK em 2021H, a sub-rotina de saida do console fixara a medalidade em texto e 95sa tentativa serA em vao.
TOP
C039H
Esta e uma poderosa sub-rotina na elaborac:~a de jogos. Ela fixa a modalidade em BSH, "habilita" a VRAM, limpa a tela e exibe PLAY NO# no canto superior esquerdo da tela. Consulte a buffer PLAY apresentado anterior-mente. Entrada: C contem a c6digo de cor para PLAY NO#. Saida : Processamento da tela Registradores alterados: todas
PLAYNO : C03CH
Semelhante a TOP, mas n~o fixa a modalidade e "habilita" na VRAM. Entrada: 0 registrador A cantem PLAY NO#. Satda Aparece PLAY NO# no canto da tela. Registradores alterados: todas
DISPY2 : C03FH
Exibe urnnOmera de dais digitos na tela. Entrada: registrador C com 0 c6digo de cor. registrador A com a nOmero exibido. par DE aponta para a posic~o da tela. Satda as digitos aparecem na tela. Registradores mudados: todes
-36-
c c c c
c
SHOWNO : C042H Exibe um dtgito na tela. B Entrada: registradol"" com 0 valor do numero, ., (B) = 10 ---.,. seta esquerda = 11 ---> seta direita = 12 ---> sinal correto = 13 ---> sinal errado = 14 ---> espal;o em branco par DE aponta para a posil;ao da tela. Registro C com 0 c6digo da cor. (C) = OOH, amarelo em verde = 55H~ azul em amarelo = AAH, vermelho em azul NEXTGM : C045H A tecla ·"'H emo t c6digo ASCII 08H em BASIC e signifiea 0 retroeesso. Nos jogos (HEAD diferente de OFFH) , n6s 0 usamos como mudanl;a do PLAY NO#. Essa sub-rotina sera executada automaticamente nos para mudar 0 n~mero da jogada para a ntvel seguinte. DELAYS : C04BH Sub-rotina de espera. 0 tempo de espera nessa sub-rotina dependedo conteudo do par de registros BC, sendo a unidade de cada cicIo 1 milissegundo. Se voc~ quiser uma espera incondicional de 10 ms, entgo carregue 0 par de registros BC com 10 e chame a sub-retina DELAYB. Entrada: par Be fixa a espera em milissegundos. Satda : nenhuma Registraderes alter-ados: A, B, C SCORE : C04BH E>:ibe todos os escores reservados nos buffers de RECORD. L.SCORE : C04EH Reserva SCOREA e SCORES nos buffers de RECORD. jogos
c c c c
c
"-
C
C
c c c c
c
c c
c c c c c
c
c c c c c c c c c o
-37-
SHAPON : C051H
Em D4X5 diseutimos a exibi~30 do PADRAO 4X5; 0 SHAPON mais flex1vel e nad tern limita~go de fronteira.
Entrada: par HL aponta para a posi~30 da tela. par DE aponta para a tabela de formas (termina com OFFH) Sa!da exibe SHAPE. Registrador alter-ado: A A estrutura da tabela de formas e uma VRAM desloeada .referente ao ultimo bloeo seguida de um codigo de cor e assim por diante. A tabela termina com OFH; em outras palavras, ngo e permitido 0 deslocamento da localiza~ao de OFFH.
SHAPOF : C054H
Apaga uma forma que foi exibida antes. Entrada: par HL aponta para a posi~ao da tela. par DE aponta para a tabela de apagar formas. Saida apaga-se a forma. Registrador mudado: A
•
sera
DISPV
C057H
0 mesmo que DISPY2, mas se A=
..... , ._...
(H)=O,
exibido. Exemplo:
LPDVR : C05AH Na sub-rotina CO, dizemos para fazer sair urncaraeter do registrador C para a tela; aqui ehamaremos LPDVR para fazer sair um caraeter do registrador C na impressora. Logieamente, antes de chamar a sub-rotina, voc~ deve dei>:a.r a impressora pronta, caso contrario, essa sub-rotina esperara ate que a impressora esteja ~ronta. Nos mudamos 0 conteudo do byte de E/S de 41H para outro valor e usamos 0 subeomando D para exibir os dados na impressor.a, isto e, quando 0 byte de E/S n~o for 41H, nos chamamos LPDVR em vez de CO.
-38-
LPSTS : C05DH
c c
c
L~ a estado de p~ontidgo (READY) da imp~essora. N6s dissemos acima que LPDVR esperarA a sinal de prontid~o para envia~ a caracte~ pa~a a impresso~a; 8ssim sendo~ ~ perigoso chama~ LPDVR diretamente. Chamamos LPSTS p~imeiro~ at~ aparecer 0 estado de prontid~o, e ent~o chamamos LPDVR, para que n30 ocorra urntravamento na espera. Entrada: nenhuma Saida : C=l, impressora n30 estA pronta. Registrador alterado: A
c
(_ '--
BEEP : C060H
Ge~a um som de aviso no alto-falante, e aqui temos tamb~m urn bip que diz que a estuda da tabela de jump da MONITOR esta campI eta.
C
L
c c
c
r:
'--
'--
c
'--
c
r--
r:
C
L
c
L
r-
c c '-c c c
-39-
6 SDBRE CO
Nos ap~esentamos muitas vezes a sub-~otina CO e seu buffe~, mas isso ainda nlo ~ suficiente. Neste cap1tulo~ nos vamos discuti-la em maiores detalhes. No seu computador, a sub-rotina CO ~ condensada no padrlo ADM-3A. Primei~amente, vamos apresentar~lhe as info~ma~5es. Consulte a TABElA DE CODIGOS ASCII na proxima pigina.
-40-
!GRAFICO OU CONTROLE
W
-----------------------------ASCII (HEXADECIMAL}
C' '
..Jb
X Y Z
[
57 58
59
SA 513
5D
5C
5E
"
{-
5F
60 61 62 63
a
b
c
d
e
f
64
65 66
9
h i
j
67
6B
69
6A
6B
k 1
m n
0
6e 6D 6E 6F
q r
s t
Ll
v
w
x
Y
I
1 ]-
(ALT MODE)
DEL (RU90UT)
70 71 72 73 74 75 76 77 78 79 7A 79 7C 7D 7E 7F
I.
--42 .....
CODIGO PARA CO
ESPECIAL
DE
CDNTRDLE
c
r:
'-
c c
r:
FUNC~O
CCDIGO
BEL
BS
Alarme Sonora Retrocesso (cursor p/esquerda) Alimenta~go de linha (Line Feed) Cursor para baixo Cursor para ci rna Retorno de carro Cursor para direita
'--
\_
r>
C
C C
LF LF
VT CR
FF ESC~= RS SUB
c
c
c
r:
'-
r:
\.._
r> \.._.
C
C
C
C
I
r:
'-
\....-
-43-
BEL
Ao receber este comando, 0 computador toea urnalarme sonora durante aproximadamente 0.3 segundos.
BS
Ao receber 0 comando de cursor para esquer-da (au retrocesso), 0 cursor se move uma coluna para a esquerda na mesma linha sem alterar a tela. 5e 0 cursor estiver ns coluna mais A esquer-da, ele se move para a coluna mais l direita uma coluna scirna, a menos que esteja na posi~go HOME (isto ~, canto superior esquer-do).
LF
Ao receber a comando de alimentaG~o de linha (Line Feed), 0 cursor se move uma linha para baixo na mesma coluna; se ele estiver na linhB inferior, a tela raia para eima.
VT
Ao receber 0 comando de cursor para cirna~ 0 cursor se move uma linha para cima na rnesrna coluna sem alterar a tela. Se a cursor estiver ns linha superior~ ele ngo se move.
CR
Ao receber a comando de retorno do carro, para a coluns mais A esquerda ns linha atual.
cursor se
move
FF
Ao receber 0 comando de cursor para direita, a cursor se move uma coluna para a direita na mesma linha sem alterar a tela. 5e a cursor estiver ns coluna mais ~ direita, ele se move para a coluna mais ~ esquerda ns prOxima linha, a menos que esteja ns coluna mais ~ direita da linha inferior.
-44-
x.,
•
RS
c
c
c
c c
i...__
Ao receber 0 comando de cursor pafa in1cio (HOME), 0 cursor se mOVE para a posi~Jo do canto esquerdo superior. A tela fica inalterada.
SUB
AD
c
C
ESC,=X,V
Este • um conjunto mais especial de c6digos de controle. ElE Ef! uma sequenc i a de quatro caracteres: Lead-in ">", coordenada X, coordenada Y. Na sele~~o de 32 colunas, X varia de 0 a 31, e na de 80 colunas, de 0 a 79. As linhas sgo designadas par V, que varia de 0 a 15 na tela de 32 colunas, e de 0 a 23 na t~la de 80 colunas. Os quatro caracteres na sequ~ncia del/emser recebidos sem outros caracteres intermedi~rios, como NUL e DEL. A tabela seguinte lista todos os endere;os poss1veis e as teclas que os
qer arn,
c c
Todas as fun,aes discutidas acima mostram como manipular a tela com versatilidade.
c
r:
'-
c c
l
-45-
TABELA
CURSOR
ADM-3A
DE ENDERECD
LINHA
(1
DIRETO
CARACTER
DO
LINHA
15 16 17 18 19 20 21
'")'")
ASCII
0 1 2
..:,
.."
CARACTER CTRL CTRL CTRL CTRL CTRL CTRL CTRL CTRL CTRL CTRL CTRL CTRL CTRL CTRL CTRL CTRL CTRL CTRL CTRL CTRL CTRL CTRL CTRL CTRL CTRL CTRL CTRL CTRL CTRL CTRL CTRL CTRL
n
-------@
COL UNA
-----32
33 34 35 36 37 38 39 40 41 42
43
ASCII
47 48 49 50 51
....)_
-------I
COLUNA
15 16 17 18 19 20 21 22
------
A
B
C
D
""
....)
E
F G
7 8 9 10 1.1 12 13 14 15 16 17
18
H
I
2 "3 4 5 6 7 8
9
....
'")
""?
J
K
L M
N
10 11 12
13
44
45
0
P
Q
R
S
14 15 16 17
18
46
47
48 49 50
51
19 20 21 22 23 24
..:......J
'1C;-
U V W X Y
19 20 21 22 23
52
1:'....)~,
26 27 28 29 30 31
.,J";;'
"":'"''7
Z
[
\
]
""'
.."..,
espai;o
0
1
54 55 56 57 58 59 60 61 62 63 0
..:;.
..:,.,;,
34
"";PC'"
";'...J
#
$
36
2 3 4
,.,
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 "80
81
3 4 5
6 7
8 9
~. -._~
?"<
..,.,.
.L.~_)
24
25
26 27 28 29 30 31 0 1 2 3
4
..,,'")
-< =
?
@
>
..:J.:..
.».»
~7'"
B
D
C
E
F G H I J L
34
7C" -, )d
~:
M
N
'" 6 7 8 9 10
,J
36 37
38
11 12
0
P
Q
13 14 15 16
17
39 40 41 42 43 44 45 46 47
48
3
4
..J
37 38 39 40 41 42 43 44 45 46
!.
~(
'"
.._j
c:-
82 83
84
6 7
8 9
10
6
7 8 9
T
U V W X y
85
86
18 19 20 21 ..,,..,
.t.:...::..
49 50 51 52
c:-.,.. .u-;»
)
it
10
11
11 12 13 14
12 13 14 -46-
87 88 89 90 91
9"-' s:
_,...,...,.
54
1::"1::"
.J:. ,_,;~
....).._j
24
'""I"" ":"...J
Z
[
\
26
56 57 58
""'::;) .._j,
60
61
93
c c c c c c c c c c c c c
C
o
ASCII
94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
113
CARACTER
....
-----,---
LINHA
COLUNA
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
---_--
a
b
c:
d
0 1 2 ..,.
.»
e
f
h i
j
4 5 6 7
8
C. C
k 1 m n
0
o
C
CC
q r
5
9 10 11 12 13 14 15 16 17
18 19
t u
v
w
x
20 21 22
23
23
Y z
{
c c
c c c c c c
l.__
I
}
DEL
NOTA:
os c:6digos ASCII
na tabela
c c
c c c
-47-
CAP1.TULO
PORT AS DE E/S
Existem algumas portas de E/S embutidas, sendo as outras nos perif~ricos. N~o vamos discuti-las aqui dessa forma; vamos apresentA-las atrav~s de suas fun,Oes.
REG : 20H
Porta de sele<;:~ode· registradores do 8910. Ha 16 registradores no 8910; antes de fazer a entrada/saida em/de qualquer registrador, voc@ deve primeiramente selecionar esse registrador. Por exemplo, voc@ quer fazer uma saida do dado (OOH) para 0 registrador 11 do 8910 para limpar 0 sam. Voc@ deve executar dois passos: 1- 3E OB
03
20
registrador 11
0
registrador
2- AF
03 60
RD: 40H
"Latch" de entrada do 8910.
WR: 60H
"Latch" de saida do 8910. Tudo referente a sam, E/S de fita, varredura de teclado, ternque utilizar as tr@s E/5 acima.
SPORT: 04H
Porta de entrada do estado da impressora. Na tabela de jump, apresentamos LPSTS para verificar 0 estado de prontidlo; voc@ tambem pode fazer a entrada a partir dessa pOrta para verificar 0 bit O. Be este for 1, a impressara e5t~ Dcupada.
-48-
o
c c
c
DPORT: OSH
Porta de saida dos dados da impressora. Quando a impressora estiver pronta., fat;:a saida do c6digo ASCII para essa porta, e a a impressora pegara esse dado automaticamente.
c c c
c
STRPB: 04H
E/S
c c
L
C
C
Porta de sa1da de "strob" da impressora. A porta 04H e uma de duas vias; quando usada como entrada, ela ecoa 0 estado da impressora; se for usada como saida, ela faz 0 "strobil da impressora chamar a prontid~o novamente. sair urn dado para a impressora,
RPORT: 10H
dados do 6845
c c c c c c
r
'--
COLao: 12H
Porta do banco da VRAM do cartao de 80 colunas. A sa!da de um dado com bit 0=1 fara a habilitat;:30 VRAM 6845 (2000H-27FFH).
COL32: SOH
Porta do banco da VRAM 6847. A satda de urndado com hit 0=0 habilitara a VRAM 6847 (8000H-97FFH). Se voc~ quiser fazer urn POKE certifique-se de habilitar a VRAM. dos dados na
VRAM~
c
/:
interface
c
c c
-49-
OOH
Quando yoc~ instals a interface da unidade de di sen, a cartlo da interface Ihe oferecerJ esss porta. Sua funclo com relsl;lo aos dados que passaram pelo "latch"· e: bit O=O~ ativa a ROM do drive de inicializaclo bit O=l~ desativa a ROM do drive de inicializal;lo bit l=O~ desativa a MONITOR e 0 interpretador BASIC (residente) bit 1=1, ativa 0 MONITOR e 0 interpretador.
ODH
Porta de comando do controlador de disquete
02H
(FDC).
Porta de acionamento
di sco.
Basicarnente~ apresentamos todas as funl;5es internas do MONITOR, oU seja~ os 16K bytes de ROM. Estamos certos que sgo elementos necessaries e suficientes para urn conhecimento mais profunda sabre a .MC-lOOO COLOR COMPUTER, bem come uma ferr-amenta Otil para a desenvolvimento de pregramas complexos.
c c c
0
C C
AP£;NDICE LISTAGEM A FONTE DO MONITOR
C C C
C
C
Loe OBJ
LINE 1;
SOURCE
STHTE~ENT
C C
l_
'-
r:
3j 4 PUBLIC DELm, TLOAD, VOICE 5 PUBLIC TAIlOUT,TAPIH,KEK,CI21,CI22, TTS 6 PUBLIC TT, 08UF, tim, FILHA~, STAR, mT, INPUT 7 PUBUC NIALUE, CHAN~, TONEA, TEIIPA 8 PUELIC BVALUE,CHAND,ro.'EB, TEIfB 9 PUBlIC LVALUE,C/WIC, TONEe, mpc 10 PUBlIC IVAL, BEEP, LPDIJR, mY?, INTRUP, KEY 11 PUBLIC CLR40, CLR, DlN6, C0511,~py,DIV 12 PUBLIC SA-IiKO, BANK! ,BAHK2, ~DDBUF 13 EXTRN SAsaK, BA81TG,SElL, fileD"
OOD2 14
C
C
C
"-
rns
Eru
OD211
14
32
17 SNDS.
EgU
.,
v
om
I0311
j0 jI
r:
'-
'-
"-
RHLDE
£00
"-'-
103H
BOH 8000H
r>
0020
OQ~ 0060 OOFS
Eoo
EllU
C C C C
C
r:
om oon
OOF9
om
2BWR E~U 29 "ODBUF EQU 30 CLR EOO 31 UPD8" EGlJ 32 UPUSCl! EQU 3'3 STAR tOIl
27 RD
20H 40H
bOH
PSK-12
OOFD OOFF
0103 0104
34 ENDT
EQU
PU"-8
PGtH
C C
C
C
"---'
35 BORDER EQU 30 KUSlC EQU 37 PLAY EOO 38 PLAY!!I EQU 39 HEAD EmJ 40 RANDO" Eau ~I RCP.DPT EQU
•
-51-
\__.,
Lee nBJ
llNE
5Il1JRCE
STAmm
P6~t8 PSIItlb
om
0115 0116
OIOB
om
P&II+IB PSI!+1 ~
PS~24
..HEn
EQU
om
om om
Q12Q
47 JOB
scam
EIlU
om
0126
om
co~
55
50
om
012f
0130
om
om
60 JOBI!
61 62 bl 64 65
EIlU
om om om om om om om om
0135
69 INTA
70 71 72 73 74 75
lit
0142 0143
oao
EIID EllU
Eoo EQU
PSIIt4l PS"+H P&1It4S PSII+4B PSI!+SO TABLE TABlE+2 TABLEt4 TABLEtS TABLE+6 TAB!.E+-7 TABLEtS TABlEt9
TABLEtll
TABLE+13 TABLEt14 TABLE+IS TABLEtlb TABLE+!1 TABLE+13 TABlE.t20 TABLEt22 TABLE+23 TABlE+24 TABLE+2S TABlH26 TABlE+27 TABLE+28 TABLE+29 TABLE+31 TADLE+32
EOO
EQU
om om om
OI4F 0150
INTi
om om
014D
0152 0154
82 83 84 85
0155
om
me
om
as
TABlE+34
P5"+BS P6"tBa
-52-
'-
c
"---'
r--
'--
LINE
SOURCE STATEIIENT
C 0 C
C C
C
l
am
92 SNPTR EQU
~3 LCNT 94 CHECK 9S DSNAK 9OD8IAII 91 HISCOR 9B TEKP 99 RISHTJ 100 CHANA 101 TONEA 102 CHANB EQIJ
mtB8 P5l!t~O
PSK+91 P~Kt96 P6"+99 PS!It!OO PEK+I02 P6II+IOS
OlsE
01~3
EQU
EQU EQlJ EQIJ Eau EGU EGII EQU Eau
0165
il167 01&9 Gibe 016D 0172 0178
PG"tl06
PSKtlll P&Kt112
om om om
103
104 105 106 107 lOB lQ9 110 111 112
TOm
C
C C
C C
\._
om
01BD
0200
0200 COOO COOO C363CO C003 C3D6CE eOOb mBO C009 C3HC3 COOC C397C9 COOF C362C1 C012 e3B7U C015 ClsaCI C018 C3DECO COIB C354Cl COlE C3C9DA C021 C3Cm C024 C3SFC5 C027 C17FC3 C02A C3bEC4 C02D C383C4 C03G C36lCB C033 C364CB em C3bDCB C039 mDCB em C38ACB COlF C3BnCB (042 C3ADCB CO~S C3D5CB C04B C04B C395CD C04E C~6ECE COSl mACC (054 C3D7CC em C38FCB
'-
PS"+117 PSK+llB
PSK+l23 PSKt124 PSK+l38 PSK-3+100H
SPP
OCOOOH ST DAmO KEY KEY? CD i·partida a frio' i intcio CCE BASIC ientr adacDRsDl! ; status cOllso1e ;satda cOllsole ientrada ca5seh isat da cass!t! ;carrega dados do (assete iapmenta uta string nil tela ;carrega jogo do cassste ientra ula linha do hclado ;apaga a tela bxto
m
114
115 116
JIf
JIIP JIIP JIIP JIIP JIIP JIIP JIIP JIIP J"P
lAPIN
TAPOUT
"-
SEll
ItS6 TlOAD
C C
122 123
124 125 126
am
ISC~<
JKP
IIITRUP
SKEY" IIPY
C C
C
127
128
DI'J
129
130
C
L
'-'
131
om
TOP
lCLEAR IClRI
iprocura status do teelado para jDgO iA : nIllern da tecla pressionada ;Iultiplica~~o idivis30 ;Iilpa tela gr.Hi ca idisplay padr30 4xS ilDStra topiCD do jogo ; IlIstr a ntll!ro do jllljO jl!xib! 2 digitos iexibe I digito ; IUda nUlero do j Dgn
j exibe
112
133 134 135 136
J~P
JIIP JIIP JIIP JIIP JIIP JIIP JKP
C
r:
''-
NEnS"
137 138
139
140
141
SHAPOF
DISPY
C r
r:
'-
;E!xiue pont os na direita e I!squerda pantos da direi h ;Iostr~ contorno iapaga (onterno ;I!xibe 2 d1gitos e checa
-53-
"---
LOC aRJ
LINE
142
143 144
SOURCE
STArEI1ENT
LPDVR
14~
146
am
LP5TS
ipmedidD de Q ienvia UI caracter para a ilpressora ;testa status da ilpr~55cra igefa UI sinal sonora
147i
148 ST: COb3 3EC3 CObS 323800
149
150 151 152
f~'" lJJ
STA
Kn ur
cm 223900
CObE H CObF ~6 COlO 310002
toba 2t5FC5
SHLD DB
154
155 15&
em con
C073 3EOI
D380 32F500
LXI !WI
SP,SPP
A,l IIODE 110DBUF rVAL FSHCNT C40?SO
A
em CDeoco
COlD COlE COB! CDB4 F8 322FOI 320FOO 3C
157
158
OUT
STA
m
160
-CALL
EI STA STA
Ibl
coas 32~aOI
COBB CD30CI COSB CDmo COBE 3EC9
162
163 164 IbS
166
IltR
uu
"VI
STA
IIODEk
RE67
CALL
A.,OC9H
JOB
Bm
t090 322001
167
168
STA
CALL
STA
169
170
JOSH
STROBK A,OFH
mo:
171
172
K~I
173
174
OUT
OUT
RPORT!
DPORJ!
IK
C.PI MVI
DPORT!
OFH A10
COAB IE02
CO~~ 322001 COAD 3£1:3 COAf 323001 COB2 21E9CO CO.B5 223101
llVI
STA
JNZ
Hoao
A,2
181
tB2
"VI
STA
183
184 . 185
SHLD
~VI
I"'I"!'~
in
A,5AH
CHECK BAS8K
N
~I"
JMP
coco AF
COC! 323901
190
XRA STA
•
-54-
AVr,LUE
c c c
C
LOC OBJ CO£4 3242~1 caC7 324801
LINE 191
192 193
STAmm
aVALUE CVALUE
C C C
r> '-..I._
COCA C9
RET 194; 195 j HHHHHHtHHtHHHIIHttttffHHfffHHHllfHHH 196 jf 197 jf !Ilvia UI carader pdl'i i ilpressora 198 if
199 j HffttHtHUfHttHttHttHHfHffffffnHUHIfHtHH 200 j 201 SPORT EgU 004H 202 DPORT EQU OOSH 203 STROB EQU 004H
f t f
x.,
(_
C
\...__
0004
0005
0004
C
C
COCB FS
COCC CDDACO COCF OACCCO COD2 79 CODl D305
C
C
"\...__
LPSTS LPDVRO
A,e
A
211
212
CODS AF
CO.D6 D304 CODS FI CO&9 C9
OUT IRA
GUT . POP RET
j
213
214 215
C
"-
216
C
\_.
217 i fftlltHftHHHtfUHttHHHHffffHUfUtI 21B jf 219 it testa status da ilprmora 220 ;1 51! C=O, ilprl!5SDra OK 221 it 222 iffffffHfffttttttlHUlttllHffffffttfntffU
f t
t
I
C C
C
'-'
\._.. '-..-
SPORT
em
C
\._
CODE 7E 87 COEO ca
m:
!IOV
ORA
RZ KIlY
A,"
A
m
23b
234
tAU
1HZ
C.A CD
H !ISS
237 i
238 FLASH:
J"P
LDA
C
C
em
3D
239 240
FLASlIB
OCR
"
-55-
C
r:
\._
LOC UBJ
LINE 241
S1IURCE
STAmm
FlASHB UPDB FSHCNT
COED323"301
CuFO co (OFt CD55CB
STA
ft,IIZ CALL LM IHR
em
STA RET
PUSH
F5HCNT
H
250
2St
PUSH
PUSH
cm
eloa 23
om
252 UI 253 ~'JI 254 Dl 255 BEEPO: 2Sb . 11DY 257 OUT 258 mx 2M 261 262 263 264
265
REG
H
159
~QV
OUT
, Ai"
WR
H
C
LXI
E1
HEEPO
B,030H DELAYB
CIlL!.
CALL
[117 CDl7e!
CllA FB [lIB fI C1
266
267
RESlO
PSN B
iinicializa
sse (8910)
em
!:11D E1
e11E C9 C1lF 04
273
C120 20 Ct2l ~7
C122 79
DB
CmOA cm IF
em on em OD em em cm cm
274 i RE670: 3E07 3E7F D360
276
m
Z79
~YI
C129mo C~
in
278 280 RES7: 282
m
OUT
RET CALL STA
OUT
m
~n7
REB7~
';OJ
E~ABLE
-Sb-
0 C
c c c
C C
C
'-'
lnc OBJ
LINE
284
SDURCE STAmm
em
C9
288
mjl
jt
testa status 0 au 1
290 ifHHHtHHUHUHtHHHUHHHtHIH
C C C
em ma em me em
291j
07 CH1 DA3EC!
Cl44 DB40
mo
PLISH
~VI OUT
IN
~VI
A,QFH
RES
0 0,0
RLC
RD
CIB
RD
JC
IN
RlC
JNC
I~R
IN
tn
0
RD CI2
we
DB~O
em
noy
RlC JC POP
em
\.._.,
C15201
C9 C154 31u0!l2
307 JOB
309 ROAD:
A,D
D
em em em em
Clb7
RET LXI
310
m
ST.A
SP,SP?
A,l
HEAD
C
r:
em
C C
'-'
e!b3 3EOI
311
H,PSM-3
STAR Ar 1
C
r-.
'--
32f5uO
318
OUT STA
STA
"ODE
~ODBUF
m TI3:
321
CALL
JIll I LXI
~ODEJ:: TIl
D~NAMLTH
H,OBUf
C
C
'--'
em
wa
em
CDb£C2 77 FEOD
m
324 325
C~lL
cpr
"OV
Tl2 ~,A
ODH
C r '--'
C
C
em em
326 328
330
m SETADR: lM
RZ
SETADR
m
HEAD
H D
INR
~ T'" !~
331
C C
332 GET!:
, .. -r
JJJ
CALL
lflW
l,A
-J{-
~~
LOC OBJ
UNE
334 3~r j,J
SWRCE
STATEI1ENT
me mEC2
CIBF 67 mo CDbEC2 em SF
CAll
KGY CALL
TI2 H,li
336
337
cm em
~ov
CAlL
!lOy
m
E~~
CDbEC2 57 7D
338
m
340
m
D,A
A,L E E,A
Cl98 EB
em
lCHS
me 7e em 9A
2AFBQO CIA2 19 22FDOO CtAb EB em 2AFBOO WA CDbEC2
t19A 93 C19B SF
341 342
. 344
!mY
SUB
;cclprimte
de bleell de dadllS
343 346
MY
IroV
A,H
D
em
em
345 347
34B
57
SBB KOV
lHLD
DAD SHLD {tHS
D,A
STAR D ENDT STAR
em
349 350
351
UlLD
cm
em
352 6TUPP.": CALl 353 KOV 354 INX J55 CALi JNZ 356
TI2 ~J.A
H
TTS
STUPRK HEAD Ii
em
lEOI
CleO C8
em 2!Oon
£1£4 310002
J58 359 360 361 J62 363 tI21: 364 CI22: 365 NEn62.: 366
367
LnA
INR
/!\II
OUT
A,l
KODE KODBUF
5TA
P.Z
Ul
H,200H
em
lila 369
J70
~VI
STA IRA STA STA STA
LXI
sp,spp A,OC9H
JOEK
A
mo 320601 em 321BOI
C!Db E9
371
~HECK
HEHD KEYO
373
375
em
m INTrA: m m
PCHl
CID9 07
07 £!DB 07 f:!.DE 80 ClEO Cg
m9 em em
~ov
RLC RLC
RLC
A,"
377
me mo
77
in 390 38!
3a2
RLC
ANI
ORA
~ov
070H B
~,a:
383
RET
-58-
c c
C
C
LOC OBJ
LINE
50UllCE
STAmm
A,BOM
CHAttA+! CHANE+I
C
C
C
C
em
3EOF
C
C
r:
C C C
m
M'~I
~TA ,)1"
CIFB B6
m
395
396
392 393
STA STA
XAA LXI
ORA
H,A'JALUE
JZ
~VI
C
\._.
399 399
400
BBB B,4DH
mIA
H,CHANA IIAA
"
CALL LU
C20A 3bOF
401
402 BBB:
SHLD
KVI LXI
IRA ORA
JZ
~rOFH
H, BVALUE A
C
x.,
r>
"-
0
x.,
em
"'Jll
CALL
eee "
CDD7C1
B,49H
IImA
C C
(
LXI
SHLD
41u 411
412
H,CHANR
NBB
m
414
415 41b
eee:
"VI
",ODH
u:
IRA
ORA
H,evALUE
A
C C
........
em
em
0649 em CDD7CI
C22E 217901 em 224901 em 36QD
m
m m
JZ
~VI LXI
"
DID
41a
B,49H
INTIA Hi CHR~C
C.~LL SHLD
C '-
420
IIVI
CALL
em em
mil CD5FC5
0640
422 DZO:
Nce ",OOM
!NTRUP
C ,......,_
x.,
C9 C23A 210000
4?~ ~~
RET
425 CIA:
426
428
em
1'1'u"t
C23F CD37Cl BA
?'IA:o'tf\'}
m CIB:
429
m
C~
1II
CALL
H,O
B,40H CIOO D
C
C
L~~J ~NJI!LL
em
BB
47" ~v
C 0
m
j.,.'"
'JJ
c~p
JIlC
JC
C.. ,N
C'·, 111
~J.L.
J.,."
PUSH ~V!
D,O
-59-
C C C
LOC OBJ
C24D 5F 19 C24F Dl
UNE
434
SOUllCE
ft~y DAD
STAmm
E,A
D D
em
436
m
m
C250 05
POP
DCR JNZ DAD DAD
C251 mFC2
43B
440
C254 29
e255 29
en
H H
cm
4C
C257 C9 em 114425
C2SB CD3AC2
m m TIl:
444
445
4-41
nov
RET . LXI
C,H
D,2544H
CALL
CIA
B
PUSH
UI
H6
D,4S81H
CIA
(266 CI C26} 81
C268 A7
m
452
453
HB 449 450
CALL
"Oy
POP
ADD
H,e
B
C
A
em
ANA
RAR
STA
BORDER B D
C2bE (5
C26~ D5
454
455
RET
em
456
4sa
T!2:
3AFFOO
m m CIS:
BORDER
D,A
cm
me Fm
D274C2
I
em
(283 C2ab C287 C288
25H
mo
CIS
HH
0608
CD37C1 B~ 79 IF
C289 4F
C28'A 05 C2B!l C1a~C2 C2gE CD37Cl .
m
477
474
nov
m m
~~Q t:
RAA
nCR
JNZ
A,e CiA
B
~ov
CAll
MflV
C29L SA
C292 73
em
480 481
c~p
mo
n l/
CI6
C2'f4
al
IF
492·
RAt! ADD
A,B C
-60-
c
'-
c
\,_.
"-
LINE
SOURCE
STAmENT
A
484
~B5
ORA
JPE
C C C
L
C299 79
486
~B7 eClb: 488
4B9 490
cm
C29A Dl
"o'J
CI9A
A,C
Cl C2~C C9 F1
cm
em:
POP
491
C29E F1
C C
'--
m m m
POP
INR
PS~
LDA
CNZ
m
A
PSW
lde~preza a pilha
HEAD
cm
e2M C4CEC7
495 ~96
C
~
m m
499
SOl
LXI
CALL LDA
15CH
H, ElIR"SS
"56
IlEAD A
C290 3C
C2B1 C8
~oo
cm
C362Cl
S02
INR RZ J~P
TAPIH
ODH,OAK 'REBOBINE A FIlA E' ,ODH, GAH
C
\.__
C
C
x;
ms OD C2B6 OH C2B7524S424F
C2BB 42494m C2Bf 20412046 em 49544120 C2C7 45
e2CS OD C2C9 OA (2eA 52454150
505
DB
506
DB
C C
'-"
',ODH,OAH
em
C2£5
20
C2E3 OD
C C C
'-----
C2H OA
:)0
507 510
DB
it if
511
513
0
('
'_'-
512 it
i JHHHHfHHHtHHHHHHtHHHtH
C
C C
em em
1 iD
Sl5 iTS:
516
C2Ei HB ClEa co
~ov
C~?
~'~I~ \,!,U
N~L
em maOl
D602
517 SlB
LDA SUI
XODEK
-61-
r: x.,
c
"--'
'---
lOC OBJ
C322 3AObO!
LINE
570
SOURCE
STAmm HE~D
A
C C 0
C
cm me em
571
572
LDA
INR JHZ
CDFCCO
3AICOI
m KEn: sn
m
573 KEY!:
r~., -u c
CALL
LDA CAlL
KEn
am
;l~ valeT da tela
lIS
KEYOf!
STROBK
RET
CALL
C C
\._
579 580
581 ;
JIW
jf
KEY'
KEY
582
jlftttftifftfffJttiffifffffffflftffffflflfif f
sa3
C
C
r>
f f
586 ; IHHHHffHHUtfUHHHHHHfHHfHH
em
C33A AF
322EOI
em B7 cmmm
cm
'--
C33E cn47C3
cm C9
F!
589 PUSH 590 STRGBl: 591 IRA 592 STA 593 CAlL 594 ORA 595 JNZ 596 POP
597 599 RET
j
PSW
y.mw
KEY'
A
STROBl
PSN
599
600
j UHHHHHtHfHfUUfHHffffHHHHHt jf jf
;f t
C C
f f
603 it
jf
nan A=O
t
C c:
6u5 i HHHifHHHHftHHHHIHHHHUHHH
em U5 em ts em
cm 31\2EOI me 87
C27CC3 ~350 CD7FC3 C353 B7 C354 CA77CJ
--. ~
PUSH .PUSH
n
B
LDA
ORA JNZ
KEYSW
A
em
3A1DOI
C35A 5F
613 KEY?O: 614 CALL b15 ORA '7 616 ~. b17 LDA
KEY?3
SKEY' ~
KEY?! KEYO
618
C
\...._.,
C358 010700
b'Q I,
in
"0Il
E,A
B,7
-b3-
C 0
Loe
osa
STAmm
DELAya SKEY? A KEY'l
ORA
JZ
•
isalva valor da tech
em em
3AIBOI
BS
b24
b25 627
lDA CKP
JHZ STA
mo
em
322EOI
1:1 C37D Dl
C37E C9
me
62B 629 630 KEPt: 631 632 KEY?3: 633 634 KErn:
"VI
J"P ~VI
STA
KEm
A,O
I:EYSM B
m
636
POP
m
b3B ;
POP
RET
jfifffffffftttftttfllfffffffffflffflftf jf j'
I
"ierifica teclado
em mool
t39a C3BB C38E C38F em 2A0701 I1E7B2 19 220701 OIOOFE F3 mE
em
m SKEY?:
64b
644 ;
PUSH
PUSH
PUSH CALL CALL
647 648
H D B
JOB
JOB"
·RANDO" D,OB2f7H
b49 650
LHLD
LXI
DAD SHLD LXI DI
652
em
653 654
655
b5b
n:
j B=uFEH, C=OOH
em C39B
cm 78 cmmo
mo
657
bS8
"VI
MOV OUT
OUT
CD65C4 IbOO OF 5F
bS9 660
bid 662 K3: 663
A,B
1m
INPUT
CALL KVI
RRC
MDV
D,O
E,A K4
D
;initio
de linha
C3M D4CFC3
C3A7 1-4 C3AS 7A C3A9 FE06 cm 7B C3AC DAA2C3
664
6b5
CNC
IMR
~OV
666
6b7 bbB 669
CPI
~,D b
~OV
JC
A,E
h~ J
-~4-
c
(
c
C C
LOC UEJ
LINE
670
SOURCE
~OY
C3AF 7S C3BO 07
C
v
67! b72
673 b74 K2:
~OV
JC
RLC
C3B7 CA5FC4
t3BA 3A0601 C3BD 3C em 3EFF C3CO CA6IC4
"DV
ORA JZ
LDA
A,e
676
C
C
'--
677 678
bBO
us
!fEAD A A,OFFH
INR
"VI
JZ
LDA CALL
C3C3 3~!BOI
wCb C3C9 C3C~ C3CB CDD5CB 79 OF 07 mc C361C4 C3CF CD65C4
6S1 aa2
683 684
"0'1
RRC ALC
HEnS"
A,C
XEYJ KEYO
jet jet
BASIC joqos
686 bS9
baS
687 K4:
KEYl
INPUT K9 A,D ihsta CTRL
em
07
bsa
090
.,-..
r--
'--'
wD3 D2SbC4 C3De 7A em FE04 C3D9 D2DEC3 C3DC Cb06 wDE (602
CPI
JNC
692
693 KO: 694 KS:
ADI
ADl
ADD
K5
6 2 A
jtesta
coluna !D)
mo em
87
695 K1O:
696
b97
'-'
ADD
ADD
699
wE7 EC40
'--'
~OV CAll.
• L,A
11
em
700
ANI
JNI
INPUT 40H
C2F8Cl
C
'-
701 702
703 704
;testa SHIFT
C
1.
C3FI D2F6C3
C3F4 3E20
705
706 707 Kl2:
m
"VI
KOV
KI2
A,20H L
C
0
em
ADD
108
709 Kl1: 710 711 Kb:
C3FA C5
C3FB 78
!IV! PUSH
L,A H,O
R
C
C
\.....
OF 47 n05C4 24
KDV
RRC KOV JNC lHR
712
713
A,S
B,A
X7 H
115 716
JMP
POP ~G'~
ADD
717 K7:
~6 A,H
L
C~06 7£
C407 85
71B
...5:
•
I"" OBJ
LUl.
LlXE
720
""1 t~.
~GUP.CE PUSH
SiAmENT
P5~
me
C409 !M601
m
723 724
LDA
lilR JI
~EAD
A
Lt.
K70
jel
BASIC
em em em
em
e411 211BOl em 85 em bF
F! 77
OC
~?r I.. J
~OY
LI! ADD ~O\I
A,C
H,mo ;mo
fora da tela
726 727
128 729 730
L,A
POP
~ov
PSW
iI,A C A,e
cmn em FE04
DB
m
733 734
INR ~O'i
CPI
RC
4
PSW
em em
Fl WE C3B5C3
C421 Fl
POP
idesprm
a pilha
m K7Q:
F"f ,.ji
735
JXP
POP
K2
PSW
C42A C22FC4
C4ZBmc
Dl em 2600 6F C420EbFC
em
738 739
m
H3
~ov
cpr
ANI
POP ~VI
aFCH 2CH
K13 H,IOH 3CH
H,O L,A
em 2610 e42F me
JNI
"VI
JHI
CPI
em
em 84
[438 FE5B
m
750
751
~ov
ADD
m
A,l
H 5EH
H,-10H
CPI
e43A 060D
em
~VI
JZ ePI
B,ODH
K20
CA4DC4
cm
C43F
mc
752
753
754
755 756
5tH
B,20H 1.20 5DH
...1 K'" B,7FH
~VI
JZ CPl JNZ
mB mEC4
m
759 K20:
em
~VI
em
~OV
STA ~'n
A!B r.EYO
A,OFFH K.EY3 jt~rla jCTRL prmionada
762
7b3¥.9:
em em em
C4SiFE04
DAEOC3 C3DCC3 3EOO
764
7b5 766 7b7 K15; 7b8
H,D
1.10
JMP
KO
A,O
j
~VI
-60·
lor OBJ
em DO
S(}uP.CE STAmm
RNC
C~8b £5 em OMS
a
B,B
H
em
em em
a?~
a2b 827
A,H
JC
SUB JC
IHX
c om
H
DIV4
cm
828 DIV2:
829
830
~ov
DCR
JHZ
H,A
B
cm 05 ms t28m em cm
[498 37 1:1
C9
DIV! 9
935
836 837 DIV4:
STC
POP RET
SUB JKP DB
em 91 me emC4 mo
OD
838
839
DIn
5DH,ODH, 9CH,oeH,oE7H,OBH,3CH, O&H
840 ; 841Fm:
C4Al 9C
em Ot C4A3 E1 cm
C4M OB
98 02
OA 73 09 ED 342
etAS 3C C~Hb OB
em
C4AB OA
DB
mE 08
mo em em em em
C4AF bB 08 F2 07
843
DB
6BH,08H,OF2H,07H,aOH.07H,
14H,07H
80 07
844 : 845 TAPOUT: DI 346 ~VI an OUT
C484 07 em 14
em F3 em 3EO!
C4BA D!SO
A! 1
~ODE
-68-
("
r: C
"
'-
lOC OBJ
LIME
848
SOURCE
STA
STAmENT
cm cm
__
32F500
C4BF CDFEC4
218DOI C4C5 160£
4E
849 850
8~1 852 T03:
em ma
"DD&UF
TO!. H,FIlMA"
CDIECS
CAD6C4
en
D,NAKlTH C,"
.IJ
em 3EOD (4CD BE
em
em 15 em C1tm
CUI 23
m
JZ IHX
CALL
T02
e~p
~!ODH SETHEX H
D
857 858
859 860 i
"
DCR
JNZ
T03
'-
•
f
HHfHfHHHIIUH
cm
"--
21FBOO
- H. STAR
e,M
T02
H D Ton EMDT STAR
D,4
~
r-
em em em
..-cm
L
C4El C2Dil~4
2AFDOO
an
875 876 877 T04:
a71 872
CALL rNX
OCR
EB
2AFBOO
m
a7a
JNZ
lHLD
XCHS LHLD
C' r.._
-;
,--
mc
4E
CDIECS
MV
CALL
e,K
TTS
H
em
879
BBO
CALL
INX
T02
aat
C r
L
C4FA 32F500
C4m C9 WE 3EOE
C~OO 0320 C502 3EFF C504 D360 CS06 011000 C509 37
em
882
~VI
OUT
STA RET "Vl OUT
JMl
TO~
~,I
0380
883 884
~GDE
~ODRUF A,OEH RES H,DFFH
WR
Bas
aBb T01: ga7
C
r)
'----
C
C
....--...
r:
MVI
OUT LX! SiC DC?
B,16 COl
B
;on.A
C50A CD39C5
C50D 05 C50E C209C5 C511 :)0
an
994
cm
JNl
LoU'/!
C512 C20KS
DCR
Jar ORA
em
Bi
C~4~ , ~
-69-
C C
\,_
LIME 898 899 900 901 902 T02: 903 904 90S 906 C02: 907
90a
SOURCE
STATEKENT COl
B
CALL
nCR JKl
STC
cm
. C04
RET CALL
PUSH
em me em
[523 0608
OJ
m
911
912
909
CALL
DCR
COl
B
JNI
ORA CPO eMC
C02
A
mo E43m
em
£C39C5
~533 3F C537 C1
C538 C9
COl
COl
CPE
POP RET
•
•
t
jfHHHHHnHHHHHHUffHfHHHHHHiH
923 ; HtHHtHHHHHHHHHHtHfHHIHHHHH
~n
?SW
REG
C53E 3E7F C5~O D36G~ e542 CD4E5 em 3EFF C~47 D3bu C549 CD4EC5 C54l: F! C54D C9 L5~F. 3£57
m
930 931
nUT
M'JJ
A,7FH
~R
em
nUT
DELi\Y
il,OFFH
m m
ilR
933
935
CAlL PDP
DELAY
PSI!
no DRAY:
RET
em
07
~VI 138 JC C03 939 RLC 940 C03: OCR il 941 JNZ C03 942 HET 943 i 944 jHHfH+HtHfHHHHHHtHHHHHHtHtH
945 ;1
946 ; f 947 if C!ltmUlE DE! MPRESSAO
-70-
· LDC OBJ
LINE
SOURCE leH6
SHLll
STATEKM
C5BHB
C585 225501 C5BS 79 C589 325m
me
7C
ONA"P A,e
DEFIN
A,I! A"PLIT II, AVALUE E,B
58 C5C4 1600
C5eb Ig
em
1003
1004 1005 100b 1007 100B 1009
UI
!roV "VI DAD
D,O
D
CSC7 7E
C5eB A7
~ov
AHA
A,~
A IF!!
C5CV FEIF
C5eB OAD2CS CSCE OF C5CF DADDCS
10[0
1011
CPI
JC JC
RlIC
1012
em 2A5s,n
C5D5 45
[506 215001
C5D9 7E CSuA BO C5DB 77 CSDC C9
1015 1016
1017 1018 1019 1020 11)21 AI:
"O'~
"O'~
~ov
RET RRC
JC
PUSH Del KOY ORA
UI
A,"
",A
cm
1022 61: OF
1023 1024 1025 1026 1027 1028 1029 SOMBAS H H DfK H
CSDE OA69C6
CSEI E5
C5E2 28
C5E3 56
[5E4 2B
em
SE
MOV
INX
Dn
INl
lil30
1031 1032 1033 \O3~
0 D
E,"
IN!
INX
1:.J<t9 13 C5EA 1B
C5EB 72
m
DCI
D D H
C5EC 2B
C5ED 73 C5EE CDF7C5 C5F1 El C5F2 7E C~F3 Fb02 C5F5 77 ~Fb C9 C5F7 E5
1035 !03b
1037
MOY XO'J
",0
H
[038
1039 1040 1041 1042 1043
CALL
~,E
H filii
INIABC
POP
"DV
uR! RET PUSH
~v
~ ..
",A
1044 iNliiBC:
1045
H
-U.-
'"
lOC W218
OBJ
LINE
1096
SOURCE
mmENT
D
em
em IA
DCI
KVI
A,b
RES
D
OUT
LDAI
OUT
[HI
VII
D
LDA CUT
LDAI
OUT
AlIPLlT RES
D VII D
CbSl D360
C653 13 em 72
CbSS 28
em em
73
IA
Cb5S 110700
CbSB 19 me 77
em mODI
C664 07
CbbS 07 Gllbb A6
II,D
H
~ov
LlI
II,E
D
lDAI
D~D
LIl lDA
0,7
D
"O~
li,A H,ENABLE
RLC
RlC RLe
ANA
DEFIN
Cbb] 77 ebbS C9
CII69 EB CbbA 2A5501 ebbn 4D CbbE ED eMF 23 cm 46 em 23 e672 CB cm 7E em C294C6 em E5 em 23 em 23 em 34
1120
1121
KDY
RET
K,A
"
1122 50NGAS: 1123 XCHS 1124 LHLD 1125 KOV 1!26 XCHS [Nt 1127 !l2B KDY 1129 JNI 1130 DB 1131
ONMP C,l H
B,~
H OCBH,7EH
!l32
llJJ
JNl
PUSH
HIU
H H H
".,.,.
we IA em BE
CbIB nt
1m
1136
1134
IHI
INX
IHR POP
L.DAX
~
0 D
1137 1133
1139 1140
eMP
RKZ
1141 1142
1"~ l1J
!IV! Del
",0
OCR
JNZ
,~MP
u"
il.UI
uCX
~
-~ "
"
..
em co
C.6.34 AF C6D5320200 ma C9
1194 1195
1196
RNZ
IRR BrA
SNDSII
1197
1198 ; 1199 BAS:
RET mI
ANI JJI? Lm
ANi D
tm
me
III
CbDF tA
em
OHH OVER?
D
OCOH
C6E2
mo
£6CO
1206
1207
CPI
XCHS
40H
NET SuH H
em EB
CbES C~03C7 FE80
ma
CoEA E5 em CAF3C6
[bEE DS C6EF CD03C7
JZ CPI
PUSH JZ PUSH
UfTO n
NET D
cm
Dl em 2A5501
C6F.6 7C
em
em D320
IA £1
C~FD 2B
em
CbFA D360
1213 CALL 1214 POP 1215 NETO: lHLD ~ov 1216 1217 GUT lDAl 1218 1219 OUT 1220 POP
ONAXP A,H
RES D
WR
em
1121
~~J
DCl
2B COFF 2E
mo maG
C703 2B C7(;4 28 C71~5 2B ClOb CDABCi em 28 [70A 2H ClUB 7E GOC FE03 mE CA4BC7
ncx
DCX
H H H
on
JMP
Del
ND
H H
ocr
1229
1230 1231 1232 1°~" LJ.) 123i N7:
~ J"!"e !~JJ
FR£QU
H H 3 CDMI?
~ov
CPI
~,M
Jl
, n.
LUM
em em em
~I ,~J
Al!PLlT
1236
l237
1238
..... V,
GUT Del
REG
H H
em 56 em 23
t..{,tli
I ~1Q
~OV
DCX XO'J
DeI
n.M
H E~~ 0FH
1240
ILH
P1H
,".,,"
em ... :H
._;::
~r-
C1C E6DF
1242 ,~.a.,
L~~J
LMX
ANl
·76-
c
lOC OBJ LINE 1244 1245 1246 ; 1247 Fl: 1248 1250 1251 1252 1253 1254 1255 1250 1257
1258
STAmm ~R
em em em
D360
C9
C721119FC4 7E
r>
ens EbuF cm 07
C72S 83
1m
D,FREQ
~OY
OFH
E
A,"
em
C729 4F
3EOO
nov
NVI
me 8A em 47
A,O
D
C,A
~ov
NDV RRC RRC RRC RRe ANI
AD!:
mE 7E OF eno OF em OF em OF em EIIOF ms S7
cm
B,A A,"
em
r-
em SF e73S 03 C739 OA cm 47 em
48
OA
mc em
em mCC7
cm em cm cm
Fl
79 IF 4F
1259 1260 1261 1262 1243 1264 1265 1266 1267 1268 1269 1270 FlA: 1271 1272 :273 1274 1275 1276 1277
127B
OFH
D,A
LDAI
IWV INI LDM
"BV
8 E,A
B
"OV
MOY
8 B,A
C,E
D
DCR
RI
!«lV
A,B
PSW
RAR
PUSH
POP
ANI "DV
OF»
B,~
PSW
1279
12BO
RAR
"ov
A,t
C,A FIA ~PLlT
RES
em em
28
lI{)V 1281 1282 J~ 1283 i 1284 COA"P: 1285 LDA 1286 OUT 1287 "VI 1288 aUT 1289 "VI 129(1 OUT 1291 ocr 1292 DCI
~,IFH liR
A,ODH
RES
H H
-77-
Loe DBJ
LINE
SOURCE
STAmm
Jl
cm cm cm cm
me mo
mil
2B 5E 23
I"Q7s a 129~
ms
56 lA
em OF em OF
C75F OF
~v
K D,II D
E,"
1299
1300 1301 1302 1303 1304
OF
RRC
RRC
EbOF
ANI
em
OUT OUT
INX
OFH ~R
ms
"VI
A,OBK
RES
D D
WR
em 1J
em C9
me em
IA
130b 1J07
LDAI
1308
1309
OUT
!!VI
em
A,OCH
RES
em lA em D3bO
C778 1D
1310 1311
1J!2
OUT
!HX
D
D
UlAI
1m 1314
1315 i 1316 TOHRES:
OUT
RET
~R
cm
1317
1318 1319
"OV
A,L
OUT
em
"OV
IlUT
A,e
RES
C781 78
C782 D360 C784 C9
"nv OUT
!lOY
~R ~,II RES
OUT
RET
A,B WR
1326 i
1327 AIIP: C7B5 78 C786 FE02 e7Ba CO
me
em em
mE DB40
em
cm D3bO em C9
1329 CPI 1330 RNZ Inl AIIPDCR: 1332 LDA 1333 OUT 1334 IN IJ".J5 ORA 1336 JZ 1331 OCR 1339 AIIPP: 1339 OUT 1340 RET
1341 f 1342 ND:
ms
110\1
A,B
2
AIIPLIT
RES RD
A
A"PP
A
WR
-79-
LDC OBJ
LINE
1343 1344
em D5
.........
em
em
13
em me
IA
72 2B
134s
1346
1347 1348 1349 1350 1351
em 73
OCI
em 110700 C7At 19 em 77
LXI
"OY
D,7
D
II, A
DAD
C C ~
(
cm em
C7Al A7
1352
1353 1354 1355 HMD:
"oy
AHA JMZ
C2A9C7
3602
ftYl
A HMD 11,2 D
C7A9 DI
C1M C9
1356
1357
~'i
j
POP
1359
1359 FREQU:
me ED
mo em
em
C7AB E5
PUSH
XCHS CALL
H F1 H NO H
IeHS
POP
1366
1367
2A5201
eD78e7
me
El
m8
1369
CALL
RESIST
rONRES H
C7BD C9
1370
RET
\_
1376 ; HHfUfHHHHHHHHHHlttHII
1377 if 1378 I' 1379 jl
t
et 32 colunas
f I
'-
0000 0020
0020
0010
1380 ; HHlfHHHfHHHHffiHHHHiH 1381 ; 1382 PORT £911 0 1393 D20 EIW 20M
1384 1385 138& 1387 LLHG4 DEEP4 SNAlI4 ENAII4 E9U EQU
32
16 aOOOH
3000 8200
EQIJ EGU
S~4+DEEP4ilLNG4
f f f
-19.~
'-
LOC nBl
LINE
SOURCE
STATE~ENT
2000 2780
1393 ; HffHtHttUtHtHHfHtfHHHHf 1394 ; 1395 DEPPg EGU 24 1m RPORTl EOO 10H m7 CPORTl EGU 11M me CDlSO EGIl 12H jSit 0 = 1 -} ao cnlenas (6845) 1m com Em! OBOH iBit 0 : 0 -) 32 cDIUJ1as (b847) 1400 LUlSS EOO 80 2000H 1401 SNA"8 Evtl 1402 mAK8 Eoo SHAftS+DEEP8IllNSB
1m; 1404 i HffHtttHttfHHfHfHtfftUHffHffHfftfHHHfHff 1405 il 1406 it dados de inicial iza,~o para ao colUJ1as
f f
I
em
em em em em em em
48
C7C4 08 t7CS AO
19 C7C718 IA 6D 5C 50
1412
»B
25,24,2,26,109,92,80,109
t7Ca Q2
C?CD 6D
mE 3AOHO
t7D! B7 em CA3JCB
C40?OO
A
me
G7DF
D310 C1DE 7E
em
am
em
23
C2DAC7
1418IRE68: 1419 1420 1421 IRES30: H22 1423 1m 1425 1426 1427
!4ZB
LXI
!WI
DCR
"OV
OUT ~OV
INX
OUT
JNl
-90-
LOC GBJ
LI!lE
SOURCE STATE~ENT
CYES CDECC7
em maca
em
C9
HOl'iEaO
ClRao
me
1433 HonEao:
1m 1m 1436
215000
III
H,LLN6B
ClEF 221301
SHU
LXI
DUG
H,EHAKB DENA"
1437
caDI 22F900
ca04 21<)020
em 2nm
SHLD
LXI
H,ums
SHlD
UI
H,SNA~8
DSNAlI SNPTP.
em mFCB
C817 C9
IRA
STA
lNHD
A
cm em
cm
RET
LeNT UPDB8
2A6501
cm 115000
1452
1453 1454 1m
lHLD
LXI
DAD
em
19 calF EB 2Ab301 C323 CD90Ca Ca2b 3620 em 23 C829 CO~BDC C82e C22bCB
DENA"
jtoh! 2S !innas
IC!l6
I'iVI
INX
",20M
H
CAll
JNZ
em
C82F ConC8
C9
em 3EOI em m500
CB33 D380
'-
All ~nDBUF
em
1469 ISCNM4:
CDbDCS 1470
GUT
CriLL
CALL
"ODE
CLR40
em CD41ca
C840 C9 CE41 212000 ~8H 221301 G347 2!0080
1471 1472
[474
iJ"'rC" i1'/11
Jm~E40
RET
UI SHU)
1''1
.... .l i
1473 HO"W:
H, LLN64
1476
DUG
iUNAM4 iJSNH~
S84A 226301
1m
[473 HO~E41:
SHLD
-81-
LOC nBJ
Ca4D 225801 casu 225901 C853 AF C854 325DOI C857 210082 ca~oJi 211DC8 C3bO 22F7.aO em 212DCB C866 22F90u
WE
1479
STATE~ENT
SNPTR lNHD
A
1480
1481 1482 1483 1494
5TA
LXI
SHLD
LeNT H, £NAIl.
cab9 mnCB
LXl SHllI
LlI SHLD CALL
H,UPDB4
UPDB"
H,UPDBC4
DENA~
UPDBC"
UPDB4
e86C 1:9
RET LXI
LXI
CALl H,SNA"4 D, SNAM+17FFH BANKl CLRBO}l
1m
1494 1495
[BIb C326GB
J~P
can F5
ca7A AF em D312 em 3AF500
caBO HOI
C887 3AF500
CaSA EbFE csse D380 C88E F!
1501 LDA 15fi2 ORI 1503 OUT 1504 POP 1505 RET IS()6 BANK!: 1507 PUSH 1508 lDA 1509 ANI 1510 OUT
mo
PUSH :UIA
PSW H
OUT
COLBO
MODBUf
com
PSW PSW
"ODBUF OFEH ibanco
pii.f a
32 col unas
C38F C9
CB9Q Ca9! C893 C895 F5 3EOI D312 F!
1511 1512
POP RET
COl32 PSM
ibinCQ para SII celuoas
C89b 1:9
em
E5 C5 F5 21A9CB E5
C8?8 DS
1513 BAJ.IY.2: 1514 PUSH 1515 m 151b GUT pap 1517 1518 RET 1519 i 1520 co: 1'521 PUSH lc~':'J '7 1524
il:',,-e IJ,i.J
PSW
A,1 COlBO PSW
H
D
1522
PUSH
PUSH
PUSH
LXI
PUSH
PSW
H,COO
H C4O?BO
If
C89F 3AOFOO
CBA2 B7
iendere~o
de retorno
LDA
ORA
-82-
liNE
SOIffiCE
STATEKENT
BANK! BANK2 II,COSW
\._
CBM
moca
JZ JKP
LXI "OY RLC JC CPI
JZ
A,"
~v
DIRECT
A,e IBH
SPECAl 20H ClITR 3DH
caB? FE20
C C
emma
. cael 7E
1540 1541
1542
1543
1m
JNZ
A,"
A,e
DTCH
1545
1546
caCb 79
cac? FEOl
JNC
CPI
~ov
DTCH
07H
1547 CHTR:
1548
(SC9 (MBCA
CSCC FEOB CBCE CA3FCA CSDI FEoe C8D3 CA62CA em FEOA C900 CABeCA caDS FEOD caOD cmCA caEO FEIE C8E2 CAD4C9 CSES FEOB caE? miCA C8EA FElA CSEC CAEDC9 caEF FE3D CBn CA58C9 C8F4 FE7F CBF6 CADFCA CBF9 F5 caFA 2A5BOI
mo
1m
1549
JZ
CPI
BElL
aSH
1551
'-
1552 1554
1555
JZ
CPI
as
JZ
CPI
OCH FS
1556
JZ
CPI JZ CPI
OAH LF
ODK CR
1m
JZ
IEH
HO"E OBH LB IAH
CLEAR 3DH DIRECT 7FH
CPI
JI CPI
JZ
CPI
1564
11:'1: JOoS 1566
JZ
1567
1568 orCH:
CPI JZ
RUBOl
PSW
CaRl
caFE 77
LHLD
PUSH MO~
POP
LDA
SNPTR
caFF FI
C900 3AlJOi C903 47 C904 C90? 3C
~av
",A
B,A
A,e
PSV moNS
1m OTCHI:
moo!
1575 1576
~ov
LDA
INN
1577
1578
LCNT
A
-83-
LOC frBJ
LINE
SOURCE CftP
STAmm 8
OTtHO A WIT H
ms
BB
C9M C20DC9
C90C AF
JHZ
IRA
STA
C90D 325DOI
C910 23 F5 C912 ED 2A6501
1583
15B~
1585 SCDI: 1586 1587
15B8
em
PSW
DOOM A,H
D
em em EB
C917 7t SA
em
C919 C221C9
cm 7D
~ov
CIW
JNZ
~OY
SC03
(910 BB
em mEC9
ClIP
A,L
E 5C04
cmn
em
em
Eb02
FI e937 CI em Dl
1595 159b 5C03: 1597 1598 1599 SC02: 1600 1601 SCD20: 1602 1603 1604 1605 5COO: Ih06 1607 1608 1609 1610 SCDE: 1611 1612
JNC
PIlP
cz
?5W
nlHD
SHLD
CALL IRA
STA
SNPTR
UP DB
A FSHCNT
LXI "OY
ANI
H,COSM
"OV
POP POP
PDP 'POP
",~
PSW
B
A,~
OOQ0~010B
em
1m
1m 161S 1616
1617
0
H BANKO
C93A
cnnca
EI
cm C9
sco~:
CALl RET
em mEtA
cm [5 em 2A1301
C94e EB
C93E F!
161B
1619 lb20 INHD: lb21 1622
m
PUSH LHLD
POP
PSW
HOLL K DLN6
em 2A5901
C94A 19
XCH6
LHLD DAlJ SHLD
LNHD
LNliD H
em 225901 em El C94f C9
1627 1628
POP
RET
-84-
LOC DBJ
LINE
1674
SDtllICE
ftOY ORA
STATE"ENT A,l
H HOME C40?BO
A
cm cm cm cm
7D
84
1m
1677 1678
1679
1675
jcoluni 0
JZ
l.DA
ORA
e982 0610
C9B~ CAS9C9
B,OEEP4
cn? 0618
JZ
DI20
B,DWB
7D 88 D22FC9 7C
1684 IbB5
16B6 16B7
"OV
A,l B
"lW
CPI
SCOO A,K
20H
i fora da tela jl
}=
20H?
16S9 1689
JNC
ADI
DrS
20H
H,A
!C C999 3Al301
C?YC 4F C99D 0600 C99F CDSBCB cm 2Ab301 C9AS C9A6 (9A9 C9AA
cm em
ED
1690 "OY lb~1 ADDRESS: 1692 XC'rtG 1693 ItiR 1694 LDA
1695
1696
"VI
"OV
E DLNG C,A
8,0
UPDBC
CAll LHLD
OCR
DSHA"
E
PROl B
1»
CAADC9 09 C3A5C9
1701 .
1702 1703 1704 PRill: 1705
JZ
DAD JIIP
PROY
lNHD
C,D .. B
em em
225901 C9BO 4A
SHlD
DAD SHlD
cm
cm
09 225901
mc mFC9
"OY
Slil'TR
UfDS
CALL
IIlW STA JftP
lOO SCOO
70H
A,D
em
CPI
JHC
SUI
MQV
scno
20H
H,A
llLH6 H
C9C7 3~1301
em CAlm
C9Dl C397C9
lDA C!lP J1 JC
JK\'
scao sceo
ADDRESS
-96-
c
r:
C
LOC aBJ
C C
em cnSBeD
em 2U301
UPD8C
DSNA" C40180
A
c.
C'
"r:
cm
C9DA 3AOFOO em 97
C2E7C9
mB
1729 HO"4: 17!0
1726 1727
lDA
ORA
JNI
CAlL JIIP CALL
1m
1732 HOM: ,
1m
1734 1735 CLEAR:
HOKES 1
HOlIER
C C
L
J~
LDA ORA
mo
3AOFOO
B7
173b 1737
1738
cmao
~
CLERS8 CLR40 SCDO COSW
G 0
C () C
r:
1739 mRS4:
1740
JNZ
CAll JKP LDA
em
C9FA cm C9FF CA02 tAOS
1741 HO~ER:
1742
1743 CLERsas:
1744
'-
174S 174"
1747 1748
ANI
2
HOlIER CLRBO HOKER
JZ
CAlL
"r: '-
J"P
CALL J~ PUSH LHLD PUSH LD
BEEP
B
C
(\
seno
em
DSIIA" H
EDSSI3
DE, WLNSI
CAl~ 01 CAl7 19
1~"~ /oJl . ,
175S 1759 DAD
'---
C~la Dl
CAl9 3AOFOO CAlC B7
pop
n-
jhl = fonte
; Of : desti no
em C
C C
Cri21!
mm
C40?BG
A
ROLLI B, DEEPBll.lNSa
BANK2 ROll4
;iDve 16 ou 24 linhas
J"P
LXI
em
010002
C C
em cn86CS ::A2FEDBO
1m
B, DEEP4ilLN64
BANK1
!
1768
CHLL lDIR
1769 ROLLi:
1770 1771 i
(de):(hll, de=detl
-87-
LOC OBJ
LINE
1772
SOURCE
STAmm
ibl=hl+l, be vms
LNHD
1774 1775
1m ROlL2:
UII.D
1777 177a
1779 17Bl 85: 1782 1783 1794 1785
. l7Bb
1m
XCHG lHLD
pop Jl1P
MVI D~D
LClH
H,O
D B
CA3C e325C9
l7BO
SC02
DSHA"
em
CA4b CA49 CA4C eMF
2A6301
lHLD
ICHS
CA42 EB
CA43 lASSO!
CDoseD CCFceo eA2FC9 CDSBeD
UiLD CALL
CZ JZ
SNPTR
RHLDE
BEEP
5COO UPDDC SNPTR H
1787 1788
1m
CALL
17n
1790 1791
LHLD
Del SHl1l CALL CALL
SI4PTR
UPDBC
CA62 2ASSOI
CAbS ED5BbJ
RUBOTI
J"P
lHLD LD
seoo
CAba 01
CA69 2B
CAbA CDOBDC
Del CALL JI
H RHLDE
me
C~oD CCFCCO
cm eDSBes
em C300e9 em CD5BCB
CA2FC9
CZ
CALL J"P
CALL
LHl1l
WC 2A5901
cm 2258ul CA82 CD5ses
LItHO
CMS !iF
CA8b 325DOI em C32FC9 CASe CD5BCB CA3F 2A5BOI
SHU
CALL
XRA
SNPTR
urDB
LeNT
em
ElJ4813
SIA
scoo
cm
LHlD
UPDBC
SNPTR BC! iDlH6)
lD
CA95 01
em em
09 EDS865
LD
DAD
DE,lDENAKl -88-
c
\._
Loe OBJ
CMA 01
LINE
SOURCE
STAmm
C
C C C C C C
em
CiwC CA9D CARO CAAI CAA2
1821
1822 1823
1824
1825
A,H 0
lfO
A,l E
1826
1827 lFO:
ROll
H LHHD B LHHD H SC02
C C
C
r:
\_..
CAAS E5 CAM 2A5901 CAA9 09 CAAA.225901 CAAD E1 CAAE (325C9 C~Bl 2A6301 CAB4 EDSBl3 CA~9 01 CAB8 19 EB CABA 2A5BOI em CDOBDr
DAD
SHLD
POP
JlW lHLD LD
C C
C C
C
x., r>
I._..
1BJb
IBn; 1838
1839 1.840 1841 1842 1843 1844 1345 i
DSHA"
DE, (DLII6)
em
DAD
lCH6
mu Dcmo
em
tc
JC lD
LHLD
SIIPTR
RHLDE 5COO DE, (DLMS)
C C C C
CAC3 DA2FC9 CACb EDS813 CAC9 01 eACA 2A5901 CACD AF CACE ED CACF 52
Bm
1846
1847 1848 1849 1850 1851 1852 1853 1854 1855 RUBor:
lHLD
UiHD
IRA
DB SHLD
" OEDH,052H
j HL:HL -DE
C C
mo 2259ul
CAD3 CD5BCB CHDb AF em 2A5BOl
CALL
IRA
LHLD DB
umn
UPOBC
jHL:H-DE
C C C C
LACA DE
A SNPTR OEDH,052K
JIIP
LD
SC02
DE, (DENA")
em em
ED5B63 01
13S6 1857 t
1858 1859 18bO lab!
C C
\._
cm
CALL
LHLD JZ
CAEC cnllCB
CAEF 2HSBOl CAF2 3620
CALL
1362
1863
LHLD
~Yl
SNPTR
"~D20 -89-
r: ...._
v.,
~-
LOC OBJ
LIHE
1864 18b5 18bO 1867
SOURCE
STAmm
H
em
2B
C~F5 3620
CAF7 CD55CB C~FA 225BOI CAFD C32FC9 CBOO 2A5901 C803 ED4813 CB06 01 CB07 AF
Del
~VI
CAll
SHLD
sroo
LHLD
LD
1873
1874
1875
CBOS Ell
CB09 42 CBOA 2lS901 CBOD 3AI301 CBI0 C9
IRA DB
OEDH,042H
jHl=HL-BC
LNHD
DLNS
cm ceOueB
em
Ian
IS81
87
18eo
CB19 325DOI
CB1C 1:9
nCR RET
ez
LDA DRA
LeNT
A
RUBOTO A LeNT
CBID CDSbCS
E5 C821 2A~BOI cm 7E CB25 EEBO
em em cm em
1886
1887 18S8 1889 1890 1891 1892
CALL PUSH
BANK! H
LHLD
MOV
SHPTR
A,~
80H
IRI
MDV
77
II,A
H
em
E1 CB29 CD79CB
C9
POP
!B~3 1894
1895 UPDBC4:
CAU
RET PUSH
BAKKO PSW
FSHCNT UPDC40 UPDB4
FS
1896
18~7
J898
CB2E 3A2FOl
CB31 EbJl em C2HCB
LDA
ANI
la99
JHZ
em CDIDeB
eB39 AF CB3A 322FOl em Fl
• ~ FSHCNT
PSN
mE C9
1904 1M
1906 UPDBC8: 1907 UPDES:
em
i90a 1909
1910 1911
SNPTR
H,14 HPORTI
-90-
c
\._,
c
LaC DBJ CB477C CB48 Db20 CB4A D31l 3EOF ~CB4E D310 7D CB51 D3l! CB53 E1 CB54 C9
r:
SIltJRLE KDY
STATE"EHT
C C C C C C
(
SUI
OUT
A,II 2011
DPORTt
me mo
nVI
OUT
nov
1919
1920
OUT pap
C C C C
r
em E5 CB56 2AF700
CBS9 E3 CBSA C9
CBSB £5 me 2AF900
CBSF E3 CBbO C9
1m
LHLlI
H upnSN
1924
XTHL
RET H
1925
Ina
r: ~
LHLD XTHL
UPDBC"
RET
j
C
r:
r:
t
I
1935
193b 1937 1938 1939 1940 1942 1943 1944 1945
jf
"\._...
; HUfUffiHfffiHfHffUtUfHHIHIIUUHHHHf
j
C 0 L
JH
EQU
JL
JR
EQU
EQU Eoo
SmH
0OO4H 0400H 0404H 4000H
1941 JB JCHTR
EGU
C
C
C
me
PUBLIC ICLEAR, XCLR1, Dm, !DP, PlAYNO PUBLIC DlSPY2~SHO~NO,Nm&",NS PUBLIC JST rCK, SHAPOH,SHAPDF i
I
C C
C l C C
r:
\_
1947 j HHHfllUIHHtlHfHltltHHHlffHHfHf 194B ; I 1949 if preenche 2K RAN de video mo jf B = valor de pmnchilfntll 1951 ; I 1952 ; IUtUIHtUfHIUHIUHUIHHHHHHHH
• •
cmmm
1959 1960
1961
me
If,B
H A,H
HI6HtSNM4J+B
XCLRl
~91~
L
l_
LOC OBJ
LINE
SOURCE
STAmm
cm
0605
1962 ; HHHHfHfUHHHHtttttHtttHntltUH I 1963 jf I 1964 jf Illstra pjjdr~c de 4x5 f 1965 if Hl = ~o5i~~o na tela I 1966 if DE = ~adr~o do lodo gr.ifico 1967 il 1968 i HumfuHHHffHffffffHttHfUHiutH 1969 ; 1970 Dm: 1971 B,S ;5 Unbas "VI 1972 D4l5A: 1m lDAI D 1974 "OV ",A D' 1975 IItI 1976 PUSH D 1977 UI D,32 cnlunas 1978 DAD D ipmila linha
1m
1980
pap
OCR JHZ
D B
RET
DmA
1984 ; ttHHHttHHHttHIHtHJUHHftHHttUn
f
em 3E8a
CB7F D380 CBB! 010000
1987 j t 1988 jt l~a9 jlllllf++t++ffitifffflffllfflfffftllffffffifif 1990 ; 1991 TOP: 1992 A,S8H jhabilita "VI OUT, ~DE 1~93 19~4 LU B,O 1995 XCLEAR CALL 1996 LDA PLAY 1997 ; 1998 j tffHttftttfHHHHIUftHfHttHfHtHHfH 1999 jf 2000 if exibe niliero do jogo lei Al 2001 if cor "I C
2002 if
I
f i f
j IHffHHHfHfHHfHHHfffflHUfHffHHf
D,SNAMt32t2
em
2600
H,O
-n-
• •
C
r:
'-\.....
C
r> r:
C C C C
C C C
'-
lOC OBJ
LIKE 2012
2013
SOURCE
C993 DA9ACB
CB96 O~ CB97 091CB
2014 DISPY: 2015 !IVI 2016 PLA'nII: 2017 stJl 2018 JC 2m INR 2020 JI!P
2021 PLAYH2:
em em
COOA 7B
mc F5
C
'--'
r>
CB9E 84
C
'-...,.
AD!
10
~ov
ORA
PUSH
PSW A,B
H PLAm B,14 D
JNZ
KVI
ibrancD
C C
r>
tBAS 91
POP
PUSH CALL
INI INI
SHGWNO
o
C
'-...,.
2033
mc
CBABFI 47
'--'
2034 POP 2035 "OV 2036 i 2037 i HHtffffHHHHIHHffHHIHIHfHfHHIHIHIHHfHHHfH 2038 il 2039 ;1 mtra numero na tela, tamho 2xl, latriz 5x5 2040 it entrada: B=nul., 0-9=0-9, IO=fl!!(ha para l!squerda
D PSW B,A
2041 ; I
2042
jt
C C
C'
C
20~3 ;t 2044 if 2045 if 20411 j I 2Q49 SHOWNO: 2050 KVI 2051 INR 2052 SHH: 2053 ADI 2054 nCR 2055 JKl 2056 PUSH 2051 "OV 2058 LXI 2059 DAD 2060 POP 2061 "VI
l1=flecha para direita, 12=mca 13=sobre aana, 14=branco, DE=posi,30 C=cor, OOH = alarelo el yerde 55H = azul el alar!!! D AAH= verlelho el azul
.f'
I
I
C
C
\.__.
'-
CSAD3EF6
CeAF 04 CaeG C60A CHE2 05 CBB3 C2BOCB CHBo CS CBB7 4F
A,-lO
10 B
C
'-...,.
SHN B
r:
'C
cess me em
CBB8 21FFCC
09
C,A H,NU"BER
B B
CI
0605
8,5 -93-
lOC OBJ
SOURCE
STATEKENT
cart)
CHSF 7E
81 CBCI 12 CBCl 23
"OV
~DD
A,"
STAI
IMX INX
CBC3 l3
cee~7£
CBCS 81
CBCb 12
"DV
ADD
A,"
C
D II
CBCl 23
CBCB ED CBCQ C5 CBCA 011FOO CBeD 09 (BeE 1:1 caDF ED eBDO 05 CBDI mFCa CBD4 C9
2071
2072 2073
STAI INX
ICIl&
2074
2075
PUSH LXI
DAD
8
B,32-1 B B
2076
2077
PDP IeliS
2078 2079
2080
DCR
JNZ
B
SHN!
RET
da tela
08H
2081 i
20B2 j pracura OIimo 2083 ; 2084 MEnS EQU 2085 NEnGft: 20Bb CPI 20B7 JZ 20SB PUSH 2089 m 2090 STA 2091 LDA 2092 PUSH 2093 LXI c~p 20Q4 2095 J1 2096 LXI
0008
cmma
CBD7 CAOOCe eDDA F5
MElTS
NEXTGO
eDOB 3EOI
CBDD 320601 CBEG 3A0401 em ES
PSW
A,l
HEAD PLAY II H,LPLAY
cm
215701
em BE CBES CAFDtD CBEB 212Ml CREE 3. CBEF C2FDCB CBf2 36FD CBF4 325701
"
"
NEITS3
H,nIKE
NEXTS3
2097
209B 2099
INR JNZ
"VI
~,-3
LPLAV
CBF7 210801
CBFA 220901
CDrn El CBfE F1
CBFF C9 CCOO 3A0601 em 3C CC04 ea eeos OIHOl
2100 STA LII 2101 SHU 2102 21()3 NEITSl: 2104 POP
2105
H,RECORD
RCRDPT H PSW
POP
LDA
INR HZ
HEAD A
LXI
B,500
-ql-
c
C
C
c 0 c
LOC OBJ UNE
SOURCE CALL
Lll LOA AKA
STAmm
DELAYR
H,PLAY HEAD
A
r>.
eCOBcnom
l:COB 210401
C C C C C C C
r>
[COE 3A060!
ECl! A7
em cm em em
em [2IFeC em 34
JNl
INR
~EITGI
~ PLAm !tEXTS I
lDA
C"P JUC "VI iIOV ADD ~DD MDV !lVI LXI DAD
2119
2120
3601
7E
K,1
A,II A
"
mo
em
97
Sb
'--'
C C C C C C
"r:
"
X3
J"P
j
nmS2
r: '-'
2132 ; HHHHHHHHHHHHHHHHfHHHfHHHHfHfHHHlf 2133 if 2134 ; f entrada dD jDystick 2135 it A .: valor de entrada 2136 ; I A = valDr de saida 2137 j f bi to.: 0 esquerda, bi t 1 = I direi ta mB if bit 2 = I eSQuerda, bit 3 : 1 dirsita 2139 j f bit 4 = 1 cisa, bit 5 = I baito 2140 ; f SI! A=O, n~() ha ilo~iiEnto
f f
f f
"-
C
C C
em
CC2C C5
0600
me
em
em Fm
CC36 CB em FESt
CC2F E5 0600 em ES
m
CPI
2147
PUSH
B,O H
2148
2!49
LXI PUSH
H,JFl
H
C C C C
C
em
CB CC3A FE51
'E'
'G'
m
RI CPI
RZ CPI RZ
P.I
enc
'W'
'R'
CB
C C
ca cmm4 em C8 em £1 em 21AFCC
CC3F
CmFE52
21S1 2158
2159
CPI
Pol
'r
H H,JFR
2160 2161
POP
LXI
:d~spreza pilha
-95-
LOC nBJ
LINE 2lI!2 2163 21b4 2165 2166 2167 21bS 2169 2170 2171
SOURCE
PUSH
STATEMENT H 'I'
em
E5 eC48 Fm em C8 CC4BFE4F
CPI
HZ
em ca cmmn
CPI
RZ
'0'
'p'
CPI
RZ CPI
RZ
' ['
'J'
2m
2173 2174 2175
CPI RZ
em moce
[CSE 0604
C[59 FH!
POP PDP
CPI
»
H 'PI'
idesprm pillla
2177 m8 Jl:
2179 2180 2181 21B2 J2: 2183
2m
JNZ "VI
CPI
3HZ
Jl
B,4
'F'
em
eChO FE4b
C267CC
J2
eCbS 0608
~VI
CPI
B,S
'5'
J3
em em
FE53
C26ECC
2184
2185
eebC 0610
JNl MVI
CPI JHl
2186 J3:
B,IOH
'C' J4
C[bE FE43
COO C275CC em GblO
em een em eca!
219(/ J4:
2191 2192
"VI
CPI JlII ~V!
CPI JNZ MVI
B,IOH
'D' J5 8,20H 'K' K6
2193
2!94 J5: 2195 2196 2197 2198 Jb: 2199 2200
0605
E,5
~ II
CPI
JZ
JRR
27H
2201
1202 2204 2205 22u6
CPl
JI
ceaF CAme
CC92FE4C
2m
JRR
'N'
CPI JI
em cmec em Obll
m
K'Vl
CPI
JRR 'L'
J7 B! llH
"/ I
2207
2208 J7: 220Q
em
CPI
,INZ ~YI
2210
2211
JS
B,21H
-'16-
C
C
r>
r-'-
C
L lOCOBJ LINE 2212 J8: SOURCE
STAmm
C
('
0
'-r:
r>
em C2A7CC
CCA~ 0621
78 Cl
C9
CCAOmD
2213
CPI
JNZ
C
C
em
em
v..
em
J9
'"'
XVI
~j}V
B,21H
H,B
B
POP RET
POP
C r~ C C C
C
em
rCAA El
3E02
!!
eCAD C1
CCAE C9
(CAF EI
~VI PDP
RET POP
A,2
B
eeDO 3E03
cm
2227
2228
CI
"VI RET
H~J
.
H B
POP
C C C
r>
2229
cm
em
C9
C
r--
'--
2230 JRR: 2231 A,3 "VI 2232 POP B 2233 RET 2234 j 2235 j HHHHHftUHHIHfUHHHffHH 223b j t 2237 ; f exibl! score
2238
jf
2239 ; HHHHHHHHHfHHfHHHHfHf
•
f
C
0 C 0
em
C9
2244 ; f
jf
C'
em
C9
C C
\.._. \.._.
2251 j f 2252 ; I
2253
jf
C C C
scnta • teia entr ada: HL = pnsi ,~o do dssenhe DE= ponteiro na tela sat da: tela prcnta, regs. OK
C C C
r:
'-
em
2260
2261
CCBB 05
PUS~ PUSH
H D
-97-