Você está na página 1de 119

ecce]

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

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

ESTRUTURA DO SEU COMPUTADOR r

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

••••••••••••••

r:

CAPtTULO

2
"............ ••
II • • • • • • • • • • • • • • • • • • • • • • • • • • • •

TECLAOP ••••••••
3

CAPtTULO

EXIBICAO .0 ViDEO

NA TV au MONITOR
III •••••••••••••••

........ ,
., • • • • • • • .. • • • • • • • • • • • • • •

'.'

.
• .. ...

8
8

\lOG ••.••••••••••

FORMATACAO
RAM

DA TELA EM BASIC E DEFINIDA PELD USUARID ...•••••. 11


'*
II II • • • ••

DE V t DED

11

o GERADOR DE SONS E a CASSETE .•••.••••.•.••...••.••••.•••...•

13

c c
r:
'-r>

CAPtTULO

4
I • • I • • • • .. • • • • • • • • • • • • • • .. • • • • • • • • ••

MON I TOR

15

COMO ENTRAR NO MONITOR ......•..........•...•....••.••........ MOSTRANDO 0 CONTEODD DA MEMORIA •......•.......•............•

15 16

SUBSTITUINDO PREENCHENDO MOVENDO

OS CONTEODOS DA MEMORIA .................•.....• 17 UMA AREA DE MEMORIA .................•....•.....• 18 19 19

0 CONTEODD DE UM BLoeD DE MEMORIA

VERIFICANDO OS REGISTRADORES ....••........••...•.....•...•... DEPURANDO

SEUS CODIGOS DE MAQUINA •..........•.•.••....•....• 20 23

SAINDO DO MONITOR ........................•.............•.....

c
r:

-1-

CAPtTULO

5 PR~VIO DO MONITOR •••••••••••••••••••••••••••••• 24


24

CONHECIMENTO

BUFFERS ESPECIAIS DO MONITOR

TABELA DE JUMP DO MONITOR .................•.......•..••...... 29


CAPtTULO MAI S 0 40
,.

I NFORMACOES SOBRE CO •••••••••••••••••••••••••••••••••••


ASC 1 I
.II if • ,. • ,. ,. ,.

CC),D I GOS

01

II

41

COD180 TABELA
CAPiTULO

ESPECIAL DE CQNTROlE PARA CO

43

DE ENDERECO DIRETO DO CURSOR ADM3-A .•........•.•.•... 46


7
••
I I,
III! •••••• ' I ,. I •••••• ,

PORTAS DE E/S

I"

48

AP~NDICE

A: LISTAGEM FONTE DO MONITOR .........•............. 51

-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-

CAPiTULO ESTRUTURA DO SEU

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

N6mero de teclas: Codifica,go: Namero de c6digos: Saida: Rollover: Teclas especiais:

ASCII mai6scula 119 7 bits 1 ou 4 bits <CTRL)~ (SHIFT) e (RESET)

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 ____

SHIFT e 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

NUL SOH STX ETX EOT ENQ AC~: BEL BS HT IF VT FF CR


51

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'

DLE DCl DC2 DC3


DC4

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

ETB CAN EM SUB


RS /

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

,------------,-------de Dados! "ado de !


________

c
c

!preto
~------

! preto ! verde
__ __

c
C

!preta ! ! 16 Hnhas ! ! D7 " 5 4 3 2 1 0 !Nodo I !d! 32 !Sx7 pantos, :: I taracter~

----------

! txibido

! I

! 0311 !laranja

Ipreto
'DO-3 0 1 1 I 1

! pretD ! laranja

~preta .~macteres !

!_!_! _! _!_! _! _! _! !AlfanuHr"ico! Ic6d.ASCIII !


--------1

G
C G

C C

06 05 04 x x x preto 0 0 o mde 0 0 1 aaarelo 0 1 o azul 0 1 1 melno

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

l"odD qrafico! E3 E2 El EO !colorido 164 x 64


1 I 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

lverdl! ! 128 x 96 2 pllntDs !--!elelentos !!7!6!5!4!3!2! 1 !O! 2 p. IbranCD!de exibi~lo! .. _

!lIodo I_I_I_L_'}_L _. _! !Sr~fica lUlin4ntia !128 I 96 ________________

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!

!verde !256 x 192 ! 1 pontDs 1-----1~1~lentD5 !!7!bL514!3!2!1!O! 1 p. IbrancoLdl! exibi~~II!"II"""II"II"

! _I

_ 1_ I _ 1_ 1_ 1_ 1_

LUlin~ncia

!lIodo L ! 6r H ica !256 x 192

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-

FORMATAC:~O DA DEFINIDA PELO

TELA EM USUARIO

BASIC

c c c

tela:

Ed stem trt'!S armatas de i nfarmal;Bes que padem aparecer f

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 ·

BUFFERS ESPECIAlS DO VtDEO DESCRIC~O


.
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 ·

DAS PORTAS DE VIDEO

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

CHAVE !ENDERE(;:O! !DA PORTA! ~

DO BANCO DA RAM DE ViDEO

·
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
.

!Nota: de agora em diante, usaremos ! RAM de video.

.
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


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

Nesta se~30, nos falaremos sabre conteudo da memoria.

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.

53000 <RETURN> Ap05 pressionar <RETURN>, aparecerA a seguinte mensagem 3000XX

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:

opcgo ~ vQe@ 300(lXX yy 3001 XX

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

Use 0 subcomando D para listar a conteudo de 3000H 305FH, e a tela mostrara:

55 55 55 55 55 55 ...J..J 3008 55 55 55 55 55 55 55 ..J..J 3030 55 55 55 55 55 55 55 55 3000


&::'C'

..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.

MDVENDD 0 CDNTEODD DE MEMORIA

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

o comando acima signifiea mover os dados de COOOH a COOFH endere~o 1000H•••I00FH.

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

A 61tima (e mais importante) subcomando G.

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

'-

>

S3000 <CR) 3000


3001

C
C
(__

3002 3003 3004 3005 3006 3007

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

PC mas GO sem STOP;

}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

cursor ficarA piscanda ap6s digite a ponto de parada. ?G3000 -3003

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:

>G3000 -3003 <RETURN)


#3003

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

vocA digitou antes

de entrar

no

-23-

CAPiTULO CONHECIMENTO PR~VIO

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

a fluKo do programa. Alguns buffers permitem mudan~a5, mas outros

No MONITOR h~ muitos buffers eriticos usados para manipular

ngo permitem altera~go. Quanto aos buffers que ngo admitem alteral;go, podemos e>{aminar seus val ores , mas nunea muda-Los ,

BYTE E/S: 0003H (endere~o)


No MONITOR, se voc@ usaF 0 subcomando 0 para exibir alguns dados, esses s·ergo mostrados na tela, no entanto, como lista-Ios na impressora? Use a subccmando S para examinar 0 ender eco 3; seu valor ~ 41H. Agora mude 0 seu cont eudo para qualquer Dutro dado e use a subcamando 0 novamente. Os dados aparecem todos no papel.

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

o c6digo de cor de valores legais de 0 a 3.

-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

estudaremos este buffer detalhadamente mais tarde.

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
(

LNHD : 0159, SNPTR : 105BH, LeNT: 015DH


Acima~ n6s mencionamos DLNG(0113H). Agora n6s diremos alga mais sabre os buffers de saida do console: LNHD, SNPTR e LeNT. N6s sabemos que 0 comprimento da tela ~ 32/80 bits de largura, e 16/24 linhas. Porque a sub-rotina de sa!da do console sabe ende mostrar os caracteres? lsto ~ devido a estes tr~s buffers manterem a conduta da posi~go do cursor. Veja a figura
ab ai xo ,

r
C
C

(112
(I

«:

c
r
'--

~B!O!M!

1 !E!x!e'm!p!l!o! 2 !

!!!

C ,
.

'---

"Ex emp lo" ~ mostrado linha 1 coluna 2.

Suponha

que

voc~

esteja olhando a tela, nOs dizemas da 1 i nha 1 coluna 0, "e" ~ mostrado na

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:

Isso quer exibido em 32 ~a 1, "x"· ~ 1; assim,

(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.

LNHD guarda oenderec=o


a posic:~o do cursor

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

Esta sub-rotina ja e c6digo de uma tecla,

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

lAPIN : COOFHr SET1 : C015H


Com rela~go ~ fita cassete, usamos uma E/S de um unico bit para guardar e carregar dados. Usa-se 0 canal de E/S 8910, quando se trabalha com fita; a interrup~&o d desligada para eyitar interfer~ncia. NOs usamos frequ~ncias de faixa para reconhecer 011 e tar uma verifica~&o de paridade impar para garantir a exatid&o na recep~go dos dados. Se yoel usar 0 gravador incorretamente au a fita for destruida, hayer~ um erro de verifica~go de paridade. Na apresenta~go do HEAD, nOs mencionamos que a HEAD pode conter OFFH au outro valor; ao discutir GETI, devernos mencionar 0 buffer HEAD. Quando yoC~ quiser ler urnarquiyo de fita cassete, chams a sub-rotina TAPIN primeiramente; se for lido algum nome-de-arquivo ilegal, a sub-rotina verificara. 0 valor do HEAD. Se HEAD=OFFH~ volte para a TAPIN para compara~go do nome-de-arquivo. Se a nome-de-arquivo lido ngo for 0 desejado, voc~ tera que chamar novamente a TAPIN e assim por diante, caso contr~rio~ chame TAPIN consecutivamente para ler 0 arquivo da fita. Se HEAD ngo for igual a OFFH~ 0 controle nao retornar' de TAPIN; 0 GETI ser~ executado e 0 arquivo ser4 colocado na memOria a partir do endere~o 100H. ApOs ler 0 arquivo, 0 controle passa para a endere~o 200H. Essa opera~go de HEAD diferente de OFFH ~ o que acontece quando voc~ digita TLOAD em BASIC para carregar ums fita de jogo. Coloque 0 volume carregar urnarquivo. do gravador a 2/3 do m4ximo quando for

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

"Exemp l o " , OOH

2- Aponte

par de registradores HL para 30(lOH Depois dos passos

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

4- >63020 <RETURN> -31-

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

OFFH, SKEY? far.i a mesma coisa que ~~EY?

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 ,

cddigo de teelas para

joystick esquerdo e direito JOYSTICK DIREITO

e:

OPERAf;AO

--------

JOYSTICK ESQUERDO

p/cima p/baixo p/direita p/esquerda dispara


MPY C02AH

----------------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-

L-___________________ --- -----~-----------------------------------

---------------------------

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)

NOTA: CY XCLEAR : C030H

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

(HL), e nlo em 80aOH.

mesmo que XCLEAR, mas a

VRAM a ser preenchida come~a

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
'--

---------~---------------------------------------

00001100B 00111100B 000011008 0000 1100B 11111111B

= = = = =

OCH 3CH OCH OCH


FFH

--------------,-----------------------------------

r>

c c c
c

NOTA: B aqui esta embinario,

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;

3- chame XCLEAR com (8)

OOH;

c
c

4- chame 04X5.

o
3000H 2000
2001

conteudo real da mem6ria OC 3E


88

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

2007 2008 2009 200A 200B 200C 2000


200E

06 00 CD
30

CO
21

00 80

HL aponta para

canto esquerdo superior

11

c c

200F 2010 2011 2012 2013 2014

00 30 CD
36

DE aponta para Tabela' de Padrllo chame 04X5 LOOP -35-

CO C3 12 20

Agora digite:

>62000 <RETURN>

o "1" apar ecer a no cor vermelha.

canto esquer-do super i or

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:

primeiro "0" ngo

= 0 , a tela exibira .,,), nao 03 A = 4, H = 1, a tela exibira 04.


1-1
"7

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-

CAP1TULO MAIS INFDRMACOES

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

Endere~o direto do cursor Cursor no inicio da tela Limpar tela

NOTA: os c6digos sgo representados com c6digos ASCII.

c
c

c
r:
'-

r:
\.._

r> \.._.

C
C

C
C
I

r:
'-

\....-

-43-

Agora apresentaremos todas as fun~aes~ urna a uma.

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

receber este comando,

computador limpa toda a tela.

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

114 115 116 117


118

q r
5

9 10 11 12 13 14 15 16 17
18 19

t u

v
w
x

119 120 121 122


123

20 21 22
23

23

Y z
{

c c

c c c c c c
l.__

124 125 126 127

I
}

DEL

NOTA:

os c:6digos ASCII

na tabela

ac:ima .esu.o em dec:imal.

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

selecione saida para

registrador 11
0

registrador

2- AF
03 60

limpe 0 registrador A saida para 0 "latch"

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,

Toda ve;;: que voc~ faz ocorre um "strobil da mesma.

RPORT: 10H

20H do 8910. DPORT: l1H

"Latch" de sele(;30 dos registradores do 6845, semelhante ao

"Latch" de E/S de registrador.

dados do 6845

apes haver selecionado

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
/:

A seguir mostraremos algumas pertas referentes. da unidade de disco.

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.

liga/desliga dos motores da unidade de dara urna descri~~o mais

Urn outro manual sabre CP/M detalhada sabre a unidade de disco.

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

2 ; "C - HiOO "ONITDR

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
"-

000£ 0020 M02


0003 GOOF

15 NAillTIl [gU 16 EPt E~U 18 IOBnE E9U 19 C40?80 EOO


20 21 22 2.3 24 25 26 ElTRN PSII PGN IIODE RAM REG

rns

Eru

OD211

14
32

17 SNDS.

EgU

.,
v

om
I0311

j0 jI

r:
'-

'-

"-

0103 0103 0080


8000

RHLDE
£00

-} para 32 cahmas f 6847) --} para BO col unas (6H451

"-'-

EgU EgJJ [gU

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

PSI'I-14 P6"-t3 _ PSII-10


PGll-b

PSK-12

OOFD OOFF
0103 0104

34 ENDT

EQU

PU"-8
PGtH

C C

C
C

"---'

illOS 0106 0107


01011

35 BORDER EQU 30 KUSlC EQU 37 PLAY EOO 38 PLAY!!I EQU 39 HEAD EmJ 40 RANDO" Eau ~I RCP.DPT EQU

PSK Pb~+l PSN+2 PGII+3 PG~+4 PSII+6


-51-

\__.,

Lee nBJ

llNE

5Il1JRCE

STAmm
P6~t8 PSIItlb

om
0115 0116

OIOB

om

42 RECDRD EQU 43 DLMS EOO 44 YCDRD EQU 45 ICDRD EIDJ

P&II+IB PSI!+1 ~
PS~24

..HEn

EQU

om

om om

Q12Q

EOO 48 SCOREA EQU


49

47 JOB

scam

EIlU

om

0126

om

50 SHAPEO EW 51 KTlIIE EQU 52 PNTR fGU 53 Eoo 54

PSII+29 PS"+32 PSl'I+33 PS"+!4


PSII+35 P6"+37 PSI!+42

co~

jbit de chaveilento da cORsole


ibit 0- - lead in
j bi t 1 - uso&B4S

55
50

om
012f

57 58 KEYSM EGU 59 FSHCNT EQU

0130

om

om

60 JOBI!
61 62 bl 64 65

EIlU

om om om om om om om om

0135

FLASHB EGIl TABlE Eoo NSA EOO NM E9IJ AVALUE EQU

66 YDICEA EOO 67 INTRPA Eoo


6S TEI!PA EQU

69 INTA
70 71 72 73 74 75
lit

0142 0143

oao

0145 0146 0147

NS9 NBB DVALUE vmCEB INTRPB TEl!PB

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

;bit 6 - coordenada y ibit 7 - cursor direto ;cbaveaJentD de tecta pr $51 onada

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

n NSC 78 NC~ EOU 79 CIJALUE EQU


TElIPC EQU INTI: EOO EHABlE Eoo A"PLIT EOU

INTi

EQU Eoo EGU

om om

014D

80 vnrcec Eoo 81 INTRP!: EQU

0152 0154

82 83 84 85

86 RESIST Eoo 87 DEFIH EQU


DNAMP 99 IJLAY 90 KDDO: 91 LHHD

0155

om

me

om

as

EQU EOO EOO


EOU

TABlE+34
P5"+BS P6"tBa

-52-

'-

c
"---'
r--

'--

LOC aBl 0158

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

'-

CHANC TONEC DBllF FILHA" spp START

EQU EQU EOO


EQU EQU Eoo
[lit!

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

DRS JIIP JIIP

JIf
JIIP JIIP JIIP JIIP JIIP JIIP JIIP JIIP J"P

lAPIN
TAPOUT

"-

111 119 119 120


121

SEll
ItS6 TlOAD

C C

122 123
124 125 126

am

ISC~<

JKP

IIITRUP
SKEY" IIPY

C C
C

J~P JIIP JIIP JIIP JIIP JIIP JIIP JIIP JIIP

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

PlAYHO D1SPY2 SI!~~NO DElm SCORE lSCDRE SHAPON

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

is! HEX, dev@ ser


JIIP Jif
JIW

COSA C3CBCO COSU C3DACO CObO CJFCCQ

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

A,OC3H 38H H,INTRUP 39H OEDH,.56H

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

C093 323001 C096 cmC3


C099 3EOF CO~B D310 C09D D311 CO~F DBtl COAL FEOF COA3 3EOO COA5 C2AACO

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

175 176 117


178 179 N09u: 180

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

COBS 3E5A COB~ 325EO!


COED C395CE

SHLD
~VI
I"'I"!'~

in

COSM A,O~3H JOBH


H,FLASH JO~+1

186 187 188 JiiAl:


!89

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

SOURCE STA STA

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

204 i 205 lPDYR:


20b PUSH 207 LPDVRO: 208 CAll. 209 JC !lOy 210
PSW

C
C
"\...__

LPSTS LPDVRO

A,e
A

:nJo esU prDnta

211
212

CODS AF
CO.D6 D304 CODS FI CO&9 C9

OUT IRA
GUT . POP RET
j

DPIJRT STROB PSII

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
'-'
\._.. '-..-

CODA D804 CODC OF CODD C9

.223 i 224 lPSTS: 22S IN RRC 22b 227 RET


223

SPORT

em

C
\._

con 4F con cnma


COE5 23

CODE 7E 87 COEO ca

229 230 231


232 233

m:
!IOV

ORA
RZ KIlY

A,"
A

COEa C3DE!:O CO[9 3A3301

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

3A2FOI COF! 3C COFB J22FOI

243 244 245


24b

[UfB C9 COfC E5 COFD C5 eOFt F5

247 248 BEEP:


249

STA RET
PUSH

F5HCNT
H

250
2St

PUSH
PUSH

COFF 211Ftl Cl02 OEC4 [104 F3 CI05 7£ C106

cm

[109 7E [lOA elM


23

eloa 23

om

252 UI 253 ~'JI 254 Dl 255 BEEPO: 2Sb . 11DY 257 OUT 258 mx 2M 261 262 263 264
265

psw H,BPDATO C,4


A,M

REG
H

159

~QV

ClOD OD ClOE C205el CI!! 013000


eta £DOEe3

INI OCR JNI

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

268 269 270 271


272 BPDATO:

PDP POP POP


RET

273

C120 20 Ct2l ~7
C122 79

DB

O~H!20H,07H! 7EH,OAH, IfH,ODH, ODH

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

A,07H RES A,7FH


WR

m
~n7

CI.30 CD27Cl em 325001

REB7~

';OJ

E~ABLE
-Sb-

0 C

c c c
C C
C

'-'

lnc OBJ

LINE
284

SDURCE STAmm

em

C9

RET 285 ; 286 j IHHHfHHUHHHUHHHHHfUHUH


287
jt

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

D5 IhOO 3EOF D320 DB40

292 ClO~: 293

PLISH

CW 07 C147 n244C1 C14~ 14 mD 07 CI4E DA4ACl


7A

294 295 296 CIa: 297 298 299 eIll: WO


301 302 CI2:

~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

303 304 305


30b

noy

RlC JC POP

em
\.._.,

C15201
C9 C154 31u0!l2

307 JOB
309 ROAD:

A,D
D

em em em em
Clb7

RET LXI

3EOI 320601 210001

310

m
ST.A

SP,SP?

A,l
HEAD

C
r:

em

C.15F 22FBuO F3 D380

C C
'-'

e!b3 3EOI

LXI 313 SHU m TAPIN: 01 ns "VI


31b

311

H,PSM-3
STAR Ar 1

C
r-.

'--

elM 325901 C16D CD5BC2 cm 160E cm 217FOl

32f5uO

318

OUT STA
STA

"ODE

~ODBUF

m TI3:
321

CALL
JIll I LXI

~ODEJ:: TIl

320 322 TIb:

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

em CAB3Cl WE 23 em 15 ClSO C275CI C1B3 3A06Gl


3C C8

326 328
330

m SETADR: lM
RZ

JZ INI DCR Jl+Z

SETADR

m
HEAD

H D

INR

~ T'" !~

331

C C

£188 CD~m el8E of

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

77 WE 23 CIAF CDE6C2 C1B2 mACI


3AObO! C1BS 3C

em

352 6TUPP.": CALl 353 KOV 354 INX J55 CALi JNZ 356

TI2 ~J.A
H

TTS
STUPRK HEAD Ii

em

lEOI

elBB D380 CIBD 32F500

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

CtC7 3EC9 Cl~9


Af CleD 325E01

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

elE! lisa CIE3 32bE~1 em 327401 CIE9 327M!

3B4 VOICE: 385 "VI


3ab 387 STA STA

em

3EOF

C
C
r:

C C C

em elFl CIF4 CIF7 me me tiFF C201 C204 C207

32100! 327bOl 327COI AF 213901 CMCC2 064D CDD7CI 216DOI 223701

383 389 390

m
M'~I
~TA ,)1"

CIFB B6

m
395
396

392 393

STA STA

CHANe+l A,uFH CHMA+3 CHANB+! CI!ANC+3


A

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>

C20e 114201 GOF AF C210 B6 C211 CA21C2 (2140049

"-

0
x.,

em

403 404 405 406 407


403 409

"'Jll
CALL

eee "

CDD7C1

B,49H
IImA

C C
(

e219 217301 C21C 224001 C21F 3MD C221 214801 em AF


B6 e226 CA3bC2

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

C247 D2JAC2 C24R D5 C2!B 1600

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

C2SE CS C25f IIB145 C262 CD3AC2


C265 79

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

C269 IF C26A 32FFOO


(9

ANA
RAR
STA

BORDER B D

C2bE (5
C26~ D5

454
455

RET

(273 57 e274 CD37(1


C277 FE25 (279 DA74C2
I

em

456
4sa

T!2:

3AFFOO

m m CIS:

PUSH PUSH LDA


MOV

BORDER
D,A

cm

me Fm

D274C2

I
em
(283 C2ab C287 C288

JNC CIS 464 i 465 iHHiHHHHHHfffHHHtHHf


466 ;1 467 if l~ UI byte 4bB ;f 469 iHHHHfHHHHHfHHHHHH 470 j 471 XVI B,a CALL CIOO 472 CIb: C~P D m
f f f

460 461 462 463

CALL CPI JC CPI

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
\,_.

"-

LOC OBJ C295 97 C296 EH9DC2

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 RET POP POP

POP

491

C29E F1

C C
'--

C29F Fl C2AO JA0601 C2A3 3C

m m m

POP
INR

PS~

LDA
CNZ

m
A

PSW

lde~preza a pilha

HEAD

cm

e2M C4CEC7

495 ~96

C
~

21B5C2 C2M CDnECO em 3AObOI

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

503 ERRK5S: DB504

505

DB

506

DB

'REAPERTE 0 BOTAO PLAY

C C
'-"

C2eE 45525445 C2D2 2MF2042


C2D6 4F54414F C2DA 20504CH C2DE 59202020

',ODH,OAH

em
C2£5

20

C2E3 OD

C C C
'-----

C2H OA
:)0

507 510

DB
it if

508 ; 509 ; HHHtUHHHHfHUHHHHHHHHt

511
513

testa se Ii. de carga

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

C325 ~c C32b C22CC3

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

C32F CD39C3 C332 C9 CD47C3 C336 C31BC3

RET
CALL

C C
\._

579 580
581 ;

JIW
jf

KEY'
KEY

582

jlftttftifftfffJttiffifffffffflftffffflflfif f

sa3

C
C
r>

584 jf 5B5 if 587 i 588 STROBK: C339 F5

status de strobe do ted ado

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

iaquarda tecla ser pressionada

599
600

j UHHHHHtHfHfUUfHHffffHHHHHt jf jf
;f t

C C

601 602 604

veri fica status do teclada tecla prmionada A;Offh


Sf

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

--. ~

606 j b07 KEY?: Goa 609 610 611 6'~ LL

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

LINE 620 621 022


'?~ O~.)

SOURCE CALL CALL

STAmm
DELAya SKEY? A KEY'l

mE CDom C361 CD7FC3 C3b~ B7 em CA77C3

ORA
JZ


isalva valor da tech

em em

3AIBOI
BS

b24

C36C cme3 C36F 321COI


em 3EFF C374 C379C3 e377 3EOO

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

E KEY? 1 KEYO+1 A,OFFH

KEm
A,O

I:EYSM B

m
636

POP

m
b3B ;

POP
RET

639 640 641

jfifffffffftttftttfllfffffffffflffflftf jf j'
I

"ierifica teclado

f b42 ;f 643 j IHffttftHHHfHHtfHHHHHHHH

em mool
t39a C3BB C38E C38F em 2A0701 I1E7B2 19 220701 OIOOFE F3 mE

E5 C380 DS C81 CS C382 moo!

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:

0 RMiDO" S,omOH ~,OEH


RES

j B=uFEH, C=OOH

em C39B

cm 78 cmmo

mo

657
bS8

"VI
MOV OUT

OUT

C39D C3AO C3A2 C3A3

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

;teda pressienada jincreJenta cal una

666
6b7 bbB 669

CPI

~,D b

~OV
JC

A,E
h~ J

-~4-

c
(

c
C C
LOC UEJ

LINE
670

SOURCE
~OY

STAmENT A,B B!A


K1
A

C3AF 7S C3BO 07

C
v

CS8! 47 C3B2 DA95C3 em 79


C3B6 97

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

CAll. RLC JNC ftOY

CPI
JNC

692
693 KO: 694 KS:

ADI
ADl
ADD

K5
6 2 A

jtesta

coluna !D)

mo em

87

695 K1O:
696
b97

'-'

wEt 87 97 C3E3 6F C3E4 CDb5C4

ADD
ADD

699

wE7 EC40
'--'

~OV CAll.

• L,A
11

em

700

ANI
JNI

INPUT 40H

C2F8Cl

C
'-

C3Ee 7A C3ED FE04 C3EF 3EFO

701 702
703 704

;testa SHIFT

C
1.

C3FI D2F6C3

MOV CPI "VI

C3F4 3E20

705
706 707 Kl2:

m
"VI
KOV

Kl1 ~,D 4 A,-IOH

KI2
A,20H L

C
0

em

C3F& 85 C3F7 bF 2600

ADD

108
709 Kl1: 710 711 Kb:

C3FA C5
C3FB 78

!IV! PUSH

L,A H,O
R

C
C
\.....

C3FC C3FD em C401

OF 47 n05C4 24

KDV
RRC KOV JNC lHR

712
713

A,S
B,A
X7 H

C402 C3FBC3 C4n5 C1

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

C40a F5 3C C40D CA21C4 em 79

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

741 742 744 745 K13: HI! 747 748 K14:-

aFCH 2CH
K13 H,IOH 3CH

H,O L,A

jdesprm a pilha pm eNC K4 jajusta val ares para 2C·3C

em 2610 e42F me

JNI
"VI
JHI

CPI

em

em C236[4 (434 2bFO

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

i)620 em CA4DC4 em FE5D

754
755 756

5tH
B,20H 1.20 5DH
...1 K'" B,7FH

~VI
JZ CPl JNZ

mB mEC4

m
759 K20:

em

Ob7F em 78 321M C4S1 3EFF cm C361C4 C456 7A

758 760 K21:


7bl

~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

J"P ~OV CPl ,,.


~t.

H,D
1.10

JMP

KO
A,O
j

~VI

tech n~o prmi enada

-60·

lor OBJ
em DO

LIHE 319 820 a21 822 Dm: 823 824


~J

S(}uP.CE STAmm
RNC

C~8b £5 em OMS

PUSH ~Yl DAD


KGV

a
B,B
H

em
em em

em 29 C48A 7CDA9BC4 C48E 91


DA94C4 23 b7

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

831 DIV3: 832 833


B34

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

9BH,OAH, 02H,OAH, 73H,09H, OEaH, uSH

C4AA C4AB nAG C4AD

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

CALL LXI "VI


"OV

"DD&UF
TO!. H,FIlMA"

CDIECS
CAD6C4

en

D,NAKlTH C,"

.IJ

em 3EOD (4CD BE

em

em 15 em C1tm

CUI 23

854 &55 8t' "0

m
JZ IHX

CALL

T02

e~p

~!ODH SETHEX H
D

857 858
859 860 i

"

DCR
JNZ

T03

'-

861 j HfHtHUfUHHHHHHtHtHHHHHHHfHHHHH 862 if 863 jf ARMlENA ENDEREtQ DE INIClO E m 864 jl


8bS
j HtUHtfHHHfHHHHHfHHtfi


f

HHfHfHHHIIUH

cm
"--

21FBOO

C4D9 1604 em 4E me CDlEtS


C4DF 23 em 15

866 i 867 &ETHEl: III 8b8 "VI 869 T033: KQV


870

- 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

CDEotl em 23 em C2EBC4 C4F6 3EOI

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:

8S8 aS9 890 891 CO~A:

MVI
OUT LX! SiC DC?

B,16 COl
B
;on.A

C50A CD39C5
C50D 05 C50E C209C5 C511 :)0

an
994

893 395 3% 89! C04:

cm
JNl

LoU'/!

C512 C20KS

DCR
Jar ORA

em

Bi

C~4~ , ~
-69-

C C
\,_

LOC aBJ C516 CDJ9C5 em 05 C51A C215C5 C9 C51E J7

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

C51F [D39C5 C522 C5

em me em

[523 0608

79 C526 OF C527 4F CD39CS

OJ

m
911
912

909

CALL
DCR

COl
B

C52C C225C5 C52F B7

JNI
ORA CPO eMC

C02
A

mo E43m
em
£C39C5

~533 3F C537 C1
C538 C9

913 9H 9!5 916 917 9!9j


919

COl
COl

CPE
POP RET



t

jfHHHHHnHHHHHHUffHfHHHHHHiH

envia ~ensaget de I bit 922 924; ~539 F5


C53£ D32J
jf

923 ; HtHHtHHHHHHHHHHtHfHHIHHHHH

PUSH q," ,.1


OUT 928

~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

C554 3D C~55 C254C5 C55B C9

~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

g~g 1000 1001 1002

me

7C

"flV STA "Oy


STA

ONA"P A,e

DEFIN
A,I! A"PLIT II, AVALUE E,B

CSBD l25101 C5CO 213901

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

SONGO Al OHA"P B,l !l,ENABlE


B

1012

em 2A5s,n
C5D5 45

1013 SON60: 1014 LHlD

[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

C5Eb 13 C5E7 13 Cse8 13

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

3£06 C6~5 D320 Cb48 D360 C64A 13 em 3A5101 em D320 Cb50 lA

em

em IA

1097 1098 1099 1100 1101 1102 1103 1104


1105

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

1106 1107 1103 1109 1110 1111 1112 1113


1114 1115

IHI KDY Del

II,D
H

~ov
LlI

II,E
D

lDAI

D~D
LIl lDA

0,7
D

"O~

li,A H,ENABLE

CbbO 3A5401 ebb3 07

1110 1117 1118


1!19

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

Co7E CO em 3600 C6BI 2B


Cb82 35 [683 C285C7 f:68IJ iB

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

CbOA CODe CJCACb

me

III

CbDF tA

em

1200 1201 1202 1203 ; 1204~m:


1205

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

1208 1209 12!0 1211


1212

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

1222 pT 1m 1225 NET: 1226 1227


1228

ncx

DCX

H H H

on

JMP
Del

ND
H H

ocr

1229
1230 1231 1232 1°~" LJ.) 123i N7:
~ J"!"e !~JJ

CALL Del DCI

FR£QU
H H 3 CDMI?

~ov
CPI

~,M

Jl
, n.
LUM

em em em
~I ,~J

3A5101 D320 23 i"1~!~o


.. 41

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

SOURCE OlIT RET LXI Mil


RLC
ADD

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

15 CB CP.£ 78 C73F IF C740 F5 em EMF cm 47

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 3A5101 CnEmo mo 3EIF

em em

0360 C754 3EGD em D320 ma 2B

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

Del "O'~ INI LDAX


RRC RRC

56 lA

em OF em OF

C75F OF

1296 1297 1298

~v

K D,II D

E,"

1299
1300 1301 1302 1303 1304

OF

RRC
RRC

EbOF

ANI

C70S D360 3E09 e7b9D320 m~ 13

em

OUT OUT
INX

OFH ~R

ms

"VI

A,OBK

RES
D D
WR

em 1J
em C9

D360 C7bF 3EOC D320

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

D320 C77S 79 me D360 C77E 7C 0320

cm

1317
1318 1319

"OV

A,L

OUT

em

1320 1321 1322


1323 1324 1325

"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

e78? 3A5101 D320 B7 CA95C7 3D

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

SOURCE PUSH !NX LDAX IIOV

STATEKEHT D D D II,D H II,E

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

C7AD CD21C7 EB C781 El em CD9SC7 em E5

1360 1361 1362


1363 1364 1365

PUSH
XCHS CALL

H F1 H NO H

IeHS
POP

1366
1367

2A5201
eD78e7

me

El

m8
1369

PUSli LIILD CALL POP

CALL

RESIST
rONRES H

C7BD C9

1370

RET

\_

1371 ; U72 1 1373 PUBlIC CO, I SCN,SNPTR,LNHD 1m PUBLIC UPDB,UPDBC,lCNT,SHMl4 1375 1

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

1388 j 1399 ; HHHUHffliHUHiifUHiHHfH 1m;. 1391 ;' H 80 colunas 1392 if

EQIJ EGU

S~4+DEEP4ilLNG4
f f f

-19.~

'-

LOC nBl

LINE

SOURCE

STATE~ENT

0019 0010 0,011 0012 0080


0050

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

CIBE 00 C7BF 00 C7CO 00 00 em OB

1407 if 1409 ifHlHfffffHlfftfHHHffHfffffHHHffHfHHHHHf H~9,i 1410 DREGl.: 1411 DB 0,0,0,0, u, 75,11,160

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

1413 i 1m [SCN: 1m LM IUb ORA


1417 JZ

C40?OO
A

IRES4 HI DREG 1 B,16


B

em 2!BEC7 mB 0610 t7DA es C7DS 78

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

A,B RPORT1 A,~


D~ORT! H lREilaO

OUT
JNl

-90-

LOC GBJ

LI!lE

SOURCE STATE~ENT

CYES CDECC7

em maca

em

C9

1429 ISCHM8: 1430 CALL 1m CALl 1432 RET

HOl'iEaO
ClRao

me

1433 HonEao:
1m 1m 1436

215000

III

H,LLN6B

ClEF 221301

SHU
LXI

C7F2 21B027 em 216501 C7Fa2l!m em 22F700

DUG
H,EHAKB DENA"

1437

caDI 22F900
ca04 21<)020

em 2nm

cm 226301 caOA CBOll C310 call 225BOI 225901 AF 325DOI

1438 1m IHO 1441 1442 1443 1m HOl'iEal:


1445

SHLD
LXI

H,ums

SHlD
UI

SHLD LXI SHLD


S~.LD SHLD

lIPDBI'i H,UPDBC8 UPDBc.l!

H,SNA~8
DSNAlI SNPTP.

em mFCB
C817 C9

1446 1447 1448


1449

IRA
STA

lNHD
A

cm em

1450 1451 mao:

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

DJLUSB D DSNAI1 BANK2

DENA"

jtoh! 2S !innas

IC!l6

1456 lHLD 1457 CALL 1458 CLR80K:

1459 1460 1401


1462

I'iVI
INX

",20M
H

CAll
JNZ

em

C82F ConC8
C9

em 3EOI em m500
CB33 D380
'-

1m CAll 1464 RET Hb5 IRE64: 1466 "VI


1467 1468 STA

RHlDE CLR80" BANXO

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

SDUaCE SHLD SHU


XRri

STATE~ENT
SNPTR lNHD
A

1480
1481 1482 1483 1494

5TA
LXI
SHLD

LeNT H, £NAIl.

cab9 mnCB

l~a5 148b 1487


1488 1489 1490 1491 ClR«l: 1492

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

caba 210080 C870 l1FF?7 CB73 CDBbCa

1m
1494 1495

; 6K de RAlI de or! deo l6am

[BIb C326GB

J~P

can F5
ca7A AF em D312 em 3AF500

1496 i 1497 MilKO:


1498 1499

caBO HOI

csa2 D390 C884 FI CS85 1:9 C8ab F5

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

C399 C39A C89B CB9E

PUSH
LXI
PUSH

PSW
H,COO
H C4O?BO
If

C89F 3AOFOO

CBA2 B7

1526 1527 1523

iendere~o

de retorno

LDA
ORA

-82-

LaC OBJ CBA3 (ABbCS

liNE

SOIffiCE

STATEKENT
BANK! BANK2 II,COSW

\._

CBM

moca

CSA9 212001 tSAC 7E


CBAD 07 CBAE DASSC9

1529 1530 1531 coo: 1532 1533 1m


1535 1536 1537 1538 1539

JZ JKP
LXI "OY RLC JC CPI
JZ

A,"

caSI 79 C8B2 FElB CBB4 CA50C9

~v

DIRECT

A,e IBH
SPECAl 20H ClITR 3DH

caB? FE20

C C

emma
. cael 7E

CBW DAms CBBE C2HCB

1540 1541
1542

CPI JC CPI ~DY


RRC

1543
1m

JNZ

CBC2 OF CBel D2F9ca

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

IS58 1559 15bO 1561 1562 1563

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

15b9 1570 1m 1572


1573

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

1579 1580 ISSI


1562 OTCHO:

JHZ
IRA
STA

C90D 325DOI
C910 23 F5 C912 ED 2A6501

1583

15B~
1585 SCDI: 1586 1587
15B8

[HI PUSH ICHS LHI.D lCllG

em

PSW
DOOM A,H
D

em em EB
C917 7t SA

em

C919 C221C9
cm 7D

1589 1590 1591 1m 1593


1594

~ov
CIW

JNZ
~OY

SC03

(910 BB

em mEC9

ClIP

A,L
E 5C04

(921 F1 C922 (C42C9


C925 225801

ens ca5SCB em AF cnt 322fOI


C92F 212DOI
cm 7E

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

jconfigura pm jaO celenas

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

1623 Ib24 1625


1626

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

CAD4C9 3AOFOO C981 87

1m
1677 1678
1679

1675

jcoluni 0

JZ
l.DA
ORA

e982 0610
C9B~ CAS9C9

B,OEEP4

cn? 0618

1680 !b81 1692 DT20:


1683

JZ

DI20
B,DWB

"YI ClIP JNC

C989 C9SA C9SB C98E

7D 88 D22FC9 7C

1684 IbB5
16B6 16B7

"OV

A,l B

C98F FE20 C991 D2BFC9 em C620 C9% 67

"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

1697 1698 1699 PROY:


1700

"VI

"OV

E DLNG C,A

8,0
UPDBC

CAll LHLD
OCR

DSHA"
E
PROl B


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

CD55CB C9BB 7A (9B9 325DOI

cm

cm

09 225901

mc mFC9

1706 1707 1708 1709 1710 1711 1712


1713DT3:

"OY

Slil'TR
UfDS

CALL
IIlW STA JftP

lOO SCOO
70H

A,D

em

fE70 C9Cl D22FC9 C9C4 Db20 COCb 67

1714 I7!S 1716 1717


1718

CPI

; I > 7011, enUo ignoT ado

JHC
SUI
MQV

scno
20H

H,A
llLH6 H

C9C7 3~1301

em CAlm
C9Dl C397C9

C9CA Be C9CB CA2FC9

1719 1720 1721 1722


1723 HOKE:

lDA C!lP J1 JC
JK\'

scao sceo

;1} area de video ienUo ignora

ADDRESS

-96-

c
r:

C
LOC aBJ

LIIIE 1724 1725

SOURCE STAmm CAll


LHLD

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

HO"S HOKE41 HOKER

(9El CD4DCS em C3F7C9 C9E7 cnOAca C9EA C3F7C9 em

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

C9Fl C2FAC9 em CDbDes C32FC9 3H2DOI E602 CAF7C9 CDlSCS C3F7C9

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

;90 col unas?

JZ
CAlL

"r: '-

CAOe CDFCCO CMO e32FC9 CAOE CS [AuF 2Ab301 CA12 E5

1749 BElL: 1750 1751


1m ROLL: 1753 1754 1755 1756

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

CA29CA CA20 018007 CA23 CD90Ca

C C

Cri21!

mm

1760 tnl 1702 17b3 1764


1765 1766 ROLLI:

LM ORA JZ LXI CAll

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

CA31 CA34 CA35 CA38 CA3A CA3B

2A5901 ED 2A5DOI 2600 19 Cl

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

em 2ASSOI CASS 2B CA5b 225801

1787 1788

1m

CALL

C.459 COSRCB CAse CDllCS CA5F C32FC9

17n

1790 1791

LHLD
Del SHl1l CALL CALL

SI4PTR
UPDBC

CA62 2ASSOI
CAbS ED5BbJ

1i93 1794 1795 FS: 1796 1m 1799 ; 1799


1800

RUBOTI

J"P
lHLD LD

seoo

StlPTR DE, [DENAlI)

CAba 01
CA69 2B

CAbA CDOBDC

Del CALL JI

H RHLDE

me

C~oD CCFCCO

cm eDSBes
em C300e9 em CD5BCB

CA2FC9

1801 1802 1803 1804 18G5 CR: 1806


1807

CZ

CALL J"P
CALL
LHl1l

BEEP seoa UPDBC DICHI


UPDBC

WC 2A5901
cm 2258ul CA82 CD5ses

LItHO

CMS !iF
CA8b 325DOI em C32FC9 CASe CD5BCB CA3F 2A5BOI

1808 1809 1810


1811

SHU

CALL
XRA

SNPTR
urDB
LeNT

em

ElJ4813

1812 1813 LF: 1814 1815 1816 1817; IB18 1819

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

1820 i 7t BA C2A5tA 7D BB D20ErA

1821
1822 1823

1824
1825

~ay C"P JNZ


"OV C~ JIIC PUSH lHLD

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

1828 1829 1830 1831


1832 1833 1834 LB: 1835

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

C~DB 52 CADe C325C9

JIIP
LD

SC02
DE, (DENA")

em em

ED5B63 01

13S6 1857 t
1858 1859 18bO lab!

C C
\._

2ASBOI CAE6 CDORDC CAE~ CA2FC9

cm

CALL

LHLD JZ

CAEC cnllCB
CAEF 2HSBOl CAF2 3620

CALL

5NPTR RHlDE SCDO RUBOT!

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

~,D20 UPDB SliPTR

18bS JIW 18b9 RUBOTO:


1970 IS71 1912 i

sroo

LHLD
LD

LNHD BC, !DLNS)

1873
1874
1875

CBOS Ell
CB09 42 CBOA 2lS901 CBOD 3AI301 CBI0 C9

IRA DB

OEDH,042H

jHl=HL-BC

SHLD 1876 LDA 1877 RET ! RUBOT!: a7B

LNHD
DLNS

CB11 3A5DOI CBIS 3D

cm ceOueB

em

Ian
IS81

87

18eo

CB19 325DOI
CB1C 1:9

ISBl 1883 1884


1885 UPDB4:

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

1900 CALL 1901 UPDC40: 1902 XRA 1903 STA

• ~ FSHCNT
PSN

mE C9

1904 1M
1906 UPDBC8: 1907 UPDES:

POP RET PUSH


LHlD ~YI
JUT

E5 CB40 2A5BO! CB43 3EOE


[B45 D310

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:

LINE 1912 1m 1914 1915 1916 1917


1918

SIltJRLE KDY

STATE"EHT

C C C C C C
(

SUI
OUT

A,II 2011
DPORTt

me mo

nVI
OUT

nov

A,IS RPORT1 A,l


DPORTl II

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

RET Inl UPDB: 1922 PUSH

1m

LHLlI

H upnSN

1924

XTHL
RET H

1925

Ina

192b UPDBC: 1927 PUSH

r: ~

1929 1930 1931

LHLD XTHL

UPDBC"

RET
j

C
r:
r:

1932 j HIHUtHHHHHHHfUfUHHUHflHUtUHHH 1933 if 1934 if endere'fl5 uteis para IOdo grMicD

t
I

1935
193b 1937 1938 1939 1940 1942 1943 1944 1945

jf

"\._...

; HUfUffiHfffiHfHffUtUfHHIHIIUUHHHHf
j

C 0 L

5405 0004 0400 0404 WOO

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

• •

1953 ICLEAA: CBb! 210080


CBb4 70 CB65 23 me 7C C.Bb7 FEBB CB6C C9 1954 1955 ICLR1: 195b 1957 UI lffiV H,SNA"4

cmmm

1959 1960
1961

me

If,B
H A,H

"OV cpr JNI


RET

HI6HtSNM4J+B
XCLRl

~91~

L
l_

LOC OBJ

LINE

SOURCE

STAmm

cm

0605

CBbF lA em 77 em 13 CBn D5 em 112000 em 19 em Dl eB78 05 cm C26FCB em C9

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

1981 1982 1983 ; 1985 il


198b
it

RET

DmA

1984 ; ttHHHttHHHttHIHtHJUHHftHHttUn
f

em 3E8a
CB7F D380 CBB! 010000

CB84 CDmB CBBl JA0401

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

habilita tela de lodD grafico exibe nu.era do jogo

lodo e banco RAMvideo

I
f i f

2003 2004 CBR~ 114080 2007

j IHffHHHfHfHHfHHHfffflHUfHffHHf

2005 PLAYHO: 2004 LXI


j

D,SNAMt32t2

2008 j ex ibe 2 d1 gi tDS de A e. DE, C=cor

em

2600

2009 j 2010 DISPY2: 2011 ~YI

H,O

i'O' chave para apresenta~~o

-n-

• •

C
r:

'-\.....

C
r> r:

C C C C

C C C

'-

lOC OBJ

LIKE 2012
2013

SOURCE

STAmm iH = 0, branco iH = 1, ? B,G 10 PLAYN2


B PWNI

CBBF O~OO CB91 DbOA

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
'-...,.

CB9F C2A4CB tBA2 ObOE

2022 2023 2024 2025 202l! 2027


2028 PLAYN3:

AD!

10

~ov
ORA

PUSH

PSW A,B
H PLAm B,14 D

JNZ
KVI

ibrancD

C C
r>

tBAS 91

CBA4 DS eMS CDADca


CBA9 l3
CBM 13

2029 2030 2031


2032

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

2047 ; HllffffHHHHttftfHHtftflfHtHtHtlHHtHHffftUftHHf 2048 j

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

UHE 2062 SHNI: 2061 2064


2065

SOURCE

STATEKENT

cart)

CHSF 7E

81 CBCI 12 CBCl 23

"OV
~DD

A,"

STAI
IMX INX

CBC3 l3

cee~7£

206b 2007 20b8


2D69 2070

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

210b RET 2107 HEITSO:


210a

POP

2109 2110 2111

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

3A0501 BE CCIA D21FCC

em cm em em

em [2IFeC em 34

2112 2113 2114 2115 2116 2117


2113

JNl
INR

~EITGI
~ PLAm !tEXTS I

lDA
C"P JUC "VI iIOV ADD ~DD MDV !lVI LXI DAD

2119
2120

3601
7E

2121 2122 NEHS1:


2123

K,1
A,II A

"

mo
em

97
Sb

'--'

C C C C C C
"r:

CC22 5F CC23 1600 CC2S 21FM CC28 19 CC29 C3C4[1

2124 2125 2126 2127 2129 2129 2130 2131

E,A D,O H,START-3


D

"

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

2141 jl 2142 ifHHHHHHHHHHfHiHHffffHHHHfilHffHHHuun 2143 j 2144 JSTICK: 2145 PUSH B

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

2150 2151 2152 2153


2154 2155 2156

'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

CC"50 CE CC51 FE5B C[53 C8 [C54 mn em CB [[57 El [C58 E!

' ['
'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

2187 2188 2189

em een em eca!

219(/ J4:
2191 2192

"VI
CPI JlII ~V!
CPI JNZ MVI

B,IOH
'D' J5 8,20H 'K' K6

FE44 C27CCC 0620

2193
2!94 J5: 2195 2196 2197 2198 Jb: 2199 2200

ce7e FE4R em C2FBC3

0605

E,5
~ II

CC93 FE3A CCSS CRB4CC ce38 FE27 em CI1Mi:C CCB9 FE4E

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

CC99 FE3B C2AOCC CC9E :)621

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

2214 2215 2216 J9: 2217 2218 2219 2220 JFL:


2221 2222

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

2223 2224 2225 JFR:


2226

~VI PDP
RET POP

A,2
B

eeDO 3E03

cm

2227
2228

CI

"VI RET

H~J

.
H B

POP

C C C
r>

eta3 C9 3E03 CeBb Cl

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

2240 ; 2241 RET 2242 ; HHHfHHfHHfHttHHHHHffHHHHHf


2243 2245
jf

2244 ; f
jf

exibe score esquerdo


f

C'

em

C9

2246 iHfUHHHHIHUHfHfUHUfHHHHfHH 2247 j 2248 RET


2249 j 2250 ; HHHHfHHHHHHHHHfHHffHfnUHHHHH

C C
\.._. \.._.

2251 j f 2252 ; I
2253
jf

C C C

22~4 if 225'5 ;1 22:6 ;f 2257 j HfHHfHHfHHHfHHfHfffffHfffHUHfHfHH

scnta • teia entr ada: HL = pnsi ,~o do dssenhe DE= ponteiro na tela sat da: tela prcnta, regs. OK

C C C
r:
'-

em

2258 i 2259 SHAPON: ES

2260
2261

CCBB 05

PUS~ PUSH

H D

-97-

Você também pode gostar