Você está na página 1de 125

Prezado usuariol'

Este Manual Tfcnico do TK-2000 COLOR representa urn significat ivo avan~o tecnoldgico para quem est~ aprendendo a eonhecer 0 equipamento.

o objetivo deste manual ~ permitir que pessoas que se

interessam em aproveitar mais eficientemente seu TK-2000

COLOR, tenham suficiente informa~~o para faz~-10. Sem

d~vida, as informa~~es nele eontidas ser~o de grande

utilidade para aqueles que n~o se satisfazem sd com 0 poderoso BASIC do TK-2000I' mas desejam se aprofundar ainda mais no uso dos recursos que oferece a pro9rama~~o em linguagem de maquina.

S€r~o explicadas as caracterrst ieas de comunica~~o entr~ 0 computador e 0 usu~rio; uso do sistema de monitordisassembler assim como 0 mini-assembler; 0 mapeamento da memdria com informa~~es s6bre posi~3es dteisl' assim como outras informa~~Es importantes.

Este ~ urn campo muito f~rtil para a apl ica~~Q da criatividade e inventividadel' e a MICRODIGITALI' ao tamar a iniciativa de acompanhar 0 TK-2000 COLOR com 0 Manual T~cn i c o , acredita estar s t t u an do s eu s usuarios na vang":trda da i nformilt i ca.

Opto de Suporte ao Usu.rio

MICRODIGITAL LiDA.

~ proibida a reprodu~~o total ou parcial deste manual' sem previa autoriza~~o par escrito da MICRODIGITAL ELETRONICA LTDA.

1

r) c,

INOICE:

CAPITULO I - a SISTEMA MONITOR

1.1 - Entrando no Monitor 5 1.2 - Examinando a MemOria 5

1.3 - AlterandQ 0 conteOdo da memOria 7 1.4 - Transferindo urn bloco de memoria 8 1.5 - Comparando dois blocDs de memoria 9

1.6 - CarregandQ bleeDS de mem6ria em casette 10

CAPITULO II CRIANDO E EXECUTANDO PROGRAMAS EM

LINGUAGEM DE MAQUINA

11.1 - Disassembler 13 11.2 - Outros comandos 14

11.3 - Examinando registradores 15

CAPITULO III - 0 MINl-ASSEMBLER

111.4 - Mini-Assembler 17

111.5 - Programas com D Mini-Assembler 17

CAPITULO IV - 0 TECLADO

IV.! Introdui~c 21

IV.2 A Rotina de leitura do teclado IV.3 RESET 25

CAPITULO V - ORGANIZAC~O DA MEMORIA

V.I - Descr,i~~o das·.p{~ginas de rnernor.i a 27

·V.2 - MemOria RAM 27 V.3 - MemOria ROM 28 V.4 - liD 29

V.5 - Video 29

V.6 - TK-2000 II Vers~es 64K e 128K de RAM 30

CAPITULO VI - 80M

VI.I - Introdui_o VI.2 - Canal de Som

32

VI.3 Programando Tonalidades Musicais 33

...

.,:_,

CAPITULO VII - VIDEO

VII.! - Modo Texto

VII.!.1 - Funcionamento do Cursor 35

VII.l.2 - Controlando a posi;~o do cursor atravAs do

comando PRINT 36

VII.l.3 - Os registradores de posi~~o de cursor 37 VII.l.4 - Formatos alternatives de TEXTO 39 VII.l.5 - Regulando a primeira caluna de TEXTO 39

VII.l.6 - Regulando 0 nOmera de earacteres par linha 40 VII.!.7 - Regulando a posi;~o da linha de topa 41 VII.l.B - Regulando a Oltima linha da tela 42 VII.l.9 - Prcigramando a janela de TEXTO 42

VII.2 - Modo de opera;~o em baixa resolu;~o 43

VII.3 Modo grafiea de Alta Resolu~~o 45 VII.3.1 - Introdu~~o 45

VII.3.2 - MemOria oeupada pela Alta Resolu~~o 45 VII.3.3 - Forma~~o de figuras em Alta Resalu~~o 48 VII.3.4 - Utilizando cores em graficos de Alta Res. 54 VII.3.5 - Conelus~o 63

CAPITULO VIII - 0 HA~DWARE

VIII.l - Diagrama de bloeos 67 VIII.2 - 0 Microprocessador 69

VIII.3 - Conector de Salds - Expans~o 70

VIII.4 - Interface de cassette - Comando MOTOR 74 VIII.5 - Conector de Joystyek 74

VIII.6 - Interface de Impressora 75

VIII.7 - Fonte de Alimenta~~o 77

APeNDICE A - Instru~bes do Mieroprocessador 6502 79 AP~NDICE B - Diferen~as entre 0 TK-2000 e 0 Apple II 93 AP~NDICE C - Endere~amento das linhas de video 97 AP~NDICE 0 - Subrotinas ateis no TK-2000 107

AP~NDICE E - Bibliografia 113

APeNDICE F - Mapa da memOria 115

APENDICE G - TK-2000 64K 117

APENDICE H - TK-2000 128K 120

4

Caprtul0 I - SISTEMA MONITOR

Dentro da ROM do TK-2000 existe urn poderoso programa chamado Monitor-Disassembler (MO). Ele atua como supervisor do sistema de opera~~o. Usando-o voc@ pede descebrir os segredos das 65536 posi~5es de mem6ria.

Com ele voc~ pode verificar umr au v~rios endere~osr pode mudar a centeddo de qualquer endere;o da RAMF POdE escrever diretamente programas em 1 inguagem de m~quinap pedE °armazenar e carregar bloeos de dados em fita cassette e POdE comparar e transferir bloeDs de dados.

1.1 Entrando no Monitor

o programa MD come~a no endere~o $FF61 (decimal 65377 ou -159). Para entrar no MDF deve ser usada inicialmente uma in~tru;~o CALL -159 au simplesmente LM. 0 MD responder~ corn uma arroba (@) do lado esquerdo da tela com 0 cursor a direita dele. 0 MD aceita linhas de entrada de dados com ati 255 caracteres e alguns comandcs que sic aceitos assim qUE voc~ pressionar a tec1a RETURN ~

Para retornar ao BASIC pressione CONTROL-C e RETURN ou simplesmente RESET "

o MD opera diretamente com n~meros hexadecimaisF usando 4 drgitos para expressar End€r€~os (os 0 mais significativos, se houverem, nio precisam ser digitados) € 2 digitos para expressar conte~dos. 0 programa MO possui 5 registradores, dais dos quais sio especiais: urn d~ 0 ender€~os da dltima PDsi~~o de memdria utilizada por voc~ e 0 outro di 0 endere~o da prdximaoposi~~o cujo conteddo pode SEr mudado. Eles s&o chamados de: "dltima posi;~o abertaV (UPA) e "prdwima posi~~o alterivel" (PPA). A utilidade destes dois registradores seri demonstrada adiante.

1.2 oExaminando a Memoria

Quando memdria, 0 espa~Q e exemplo:

voef digitar sci 0 endEre~o de uma posi;io MD responde com 0 endere;o di9itado, urn tra~o, o valor da posi~~o de memciria endere;ada,

da urn par

@F800 @F800- 4C @-

(RETURN)

Cada vez que 0 MO mostra 0 valor contido numa posi~io, lembra desta como UPA. Neste case tamb~m • considerada cemo PPA.

Se voc~ digitar urn ponto (.) s€guido de urn eodere;o, 0

MO mostrari os valores contidos nas posi~5es desde a UPA at~ o endere~o digitado <desde que este illtimo seja maior que 0 corespondente a UPA). Observe as exemplos abaixo=

~FA00

<RETURN)

FA00- 08 @.FA0F

<RETURN>

FA01- 62 5A 48 26 6~ 94 88
~
FA08- 54 44 C8 54 68 44 E8 94
@F800 <RETURN)
F800- 4C
@.F812 <RETURN>
F801- CA EF 4A 08 20 F5 FOB
F808- 20 73 Fe A~ 09 28 90 02
J
F8i0- 69 0F 85
@.F82A <RETURN>
F8i3- 09 60 86 EA EA
F818- EA 20 00 F8 C4 2C 80 11
F820- C8 20 C8 EF 90 F6 69 01
F828- 48 20 00
@ Pode-se observar que a listagem procura iniciar as 1 inhas a part ir do endere~o cujo drgito menos significat iva ~ 0 ou 8, e apresenta at~ 8 posi;5es contrnuas. A primeira linha imprime as suficientes. informa,5es para poder ~ome;ar a segunda linha no formato padrio.

Outra forma' de usar Q ponto i imprimindo 0 endere~o inicial, ponto e endere~o final da ~rea de mem6ria a ser

examinadah
@F200.F22F <RETURN>
F200- 00 Ie ~~ 2A 3A iA 0~ 3C
L~ ~
F208- 00 08 14 ~~ ~~ 3E ~~ ~~
LL LL LL L~
F210- 00 iE ~~ 22 IE ~~ ~~ IF
LL LL LL
F218- 00 Ie ~~ 0~ 0~ 02 ~~ Ie
~~ L L LL
F220-.00 IE ry~ ~~ ~~ ~~ ~~ IE
LL LL LL LL LL
F228- 00 3E 02 02 iE 0~ 02 3E
L
@F900.F9i0 <RETURN) F900- Fa 69 BF 20 ED FD CA D0
F908- EC 20 48 F9 A4 2F A2 06
F9i0- E0
a) Outro m~todo de examinar a memciria ~ indicando 0 endere~o inicial e logo pressionando RETURN tantas vez€s quanta achar necessirio.

6

@F805

(RETURN)

F805- 20

@ (RETURN)

F5 FB

~ <RETURN)

F808- 20 73 Fe AS 09 28 90 02

~F832 (RETURN>

F832- A0

(RETURN>

2F D0 02 A0 27

@ (RETURN)

F838- 84 20 A0 27 A9 00 85 30

@

1.3 Alterando 0 conteddo da Hemdria

Agora veremos como usar a PPA. Escreva a Segllinte sequtncia:

@420

(RETURN)

0420- 00 @:12

(RETURN)

Pronto. 0 conteddo da PPA foi alterado com 0 valor que voct digitou. Confira examindo a posi,io novamentE~

@420

(RETURN>

0420- 12 Q)

Voc~ pode alterar 0 conte~do de vJrias posi,Ses consecutivas separando os novos valores com urn espa~o.

@400:12 23 34 45 56 67 78 89

(RETURN>

@400

(RETURN)

0400- 12 @

(RETURN)

23 34 45 56 67 78 89 @420:0 1 2 3

(RETURN~

@:4 5 6 7

(RETURN>

@420.427

<RETURN)

0420- 00 01 02 03 04 05 06 07 @

7

I.4 Transfer indo um bloeo de mem6ria

Voct pode considerar um blecD de memdria (definido per dais endere,os separados par um ponto) como uma entidade aut6noma e movimentar ou transferir de um lugar para Dutro usando 0 comando M (MOVE, de movimentar). Deve s€r indicado ° endere~o inieial e final do bloeo de memdria E ainda 0 endere~o inieial do destino (posi~io de memdria ~ partir da qual seri deslocadoo bloeo de memdria). 0 comando entio ter~ a seguinte forma~

Cdt:~st i n o J

<

Cinteio}

{final}

M

sendo que as palavras entre as chaVES devem ser substiturdas por endere,os hexadecimais. Por EXEmplo~

0)460 .. 4bF

<RETUHN}

0460- 00 00 00 00 00 00 00 00 0468- 00 00 00 00 00 00 00 00 @400=00 11 22 33 44 55 66 7j 88 99 EE FF (RETURN)

AA BB CC DD

@400 .. 40F

<RETURN>

0400~" 00 U_ '")'") :3 :1 4"1 J::. C:" 66 77
I:--I:~ ... _J~.I
040B--~ 88 99 AA BB CC DO EE FF
(i)460( 400 .. 40FN <RETURN)
@460.46F <RETURN)
0460~~ 00 11 '") .-) sa 44 1:;-'::- 66 77
c_ c .. ... J ,_J
0460--" 8t) 99 AA BB CC DD EE FF
0)470.477 <RETURN)
0470-- 00 00 00 00 00 00 00 00
@470(400.407M <RETURN>
(i}470.477 <RETURN) 0470- 00 11 22 33 44 ci)

66 77

Se 0 endere~o de desti~o fica dentro do bloeo _ algumas coisas Estranhas acontecem= 0 bleeo entre 0 endere~o inicial e 0 destino ~ tratado como sub-bloeos e os valores nele eontidos sAo duplicados. Veja~

8

0)420 u 437 (RETURN)
0420-- 00 00 00 00 00 00 00 00
04~~8- 00 00 00 00 00 00 00 00
0430-· 00 00 00 00 00 00 00 00
0)420: 00 1.1 22 33 44 ss 66 77 B8 99 At'! BB CC DD
EE FF <RETURN) (RETURN)

@4~~0 a 437

<RETURN>

04~?'0-- 00 11 .... ) '"} 33 44 t:: • .:;- 00 1.1
1:_1: .• ","'.J
0428-- "i"'j :3a 44 ~5~:} 00 11 "1:_'j 3:3
~ ... t:_ I:_t:_
0430-" 44 I::'!::' 00 j. i. .... , r) 33 44 r~'E:'
'NJ ..... J c .. c .. ",1.J
<i) 1.5 - ComparandD dois bloeDs de memoria

Pode-se verificar dais blocos de memdria~ ern especial d~pois de comando M. Caso exista uma descrEP~ncia ser~ indicado 0 enderE~o onde ela aconteceu e os dais valores discrepantes. 0 comando VERIFY I do t ipo=

{destino} { {irdcio}. {final} V

p or e~·:emp 10::

~400:00 i1 22 33 44 55 66 77

(RETURN)

(j)4 i 0 < 400 .. 407M

< RETUR N >

(j) 410 ( 400 .. 407 V

<RETURN)

@406: Af~

<RETURN>

(j)410( 400 .. 407V

<RETURN)

0406--AA (66) 0)

9

1.6 Bloco. de-Hemdria em Fita Cassette

Hi no MD 2 tipos de instru~6es que permitem armazenar e earregar bloeos de memdria atrav€s de fita cassette. Estes eomandos permitem transferir de 1 ate 65536 bytes.

Para armazenar ha duas versoes do comando WRITE (W>=

1 •

(inicio)

(final)

W "'nome"

(inreio)

(final)

WA

A vers~o 1, em formato exclusivo, permite armazenar urn bleeo de memdria, assoeiando a ele urn nome colocado entre aspas. A vers~o 2 permite armazenar um bloeo de memdria no mesmo formato usado pelo computador APPLE - II. Isto permite que bloeos de dados possam ser transferidos entre 0 TK-2000 e 0 computador APPLEe simi lares.

A opera,io com 0 gravador ~ similar .quela utilizada com os eomandos SAVE e LOAD em linguagem BASlt.

Vejamos urn exemplo :

@400:0 1 2 3 4 5 6 7 8 9 ABC D E F (RETURN>

@400.40F

(RETURN)

0400- 00 01 02 03 0408- 08 09 0A 0B @400.40FW "'TESTE'"

OK

04 05 06 07

0C 00 0E 0F (RETURN>

(i)

Para carregar tamb~m hi duas vers5es do eomando READ

(R) ::

1.. {inrcio}



{final}

z , Cinrcio}

(final)

RA

A vers50 1, permite lEr urn bloeo gravado no formato exclusivo do TK - 2000 efetuando a procura de acordo ao nome. A verslo 2 permite a leitura de urn bloeo gravado no formata do computador APPLE.

Agora tentemos carregar 0 bloeo gravado anteriormente:

@400=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0<RETURN}

(j)400.40F
0400- 00' 00 00 00 00 00 00 00
0408'- 00 00 00 00 00 00 00 00
@400.40FR "TESTE .....
TESTE 01 01 WAIT 01( <RETURN)

<RETURN>

10

@400.40F (RETURN)
0400- 00 0i 0~ 03 04 0~ 06 0~
~ ~ ,
0408- 08 09 0A 0B 0C 00 0E 0F
@ Case 0 prograrna tenha side carregade cerretamente aparecer~ 0 srmbolo @T case centr'rio aparecer~ nERRlln

Observe que voct pode carregar urn bloeo numa posi~io diferente da qual ele ~oi armazenadan

11

1.2

CAP1TULO II

CRIANDO E EXECUTANDO PROGRAHAS EM LINGUAGEH DE H~QUINA

Apds ter introduzido um programa em 1 inguagem de mdquina para que ele seja executado di~ite 0 endEre~o inieial de execu~io seguido da letra G e RETURN.

A letra G ~ um comando do Modo Monitor que transfere 0 controle do TK-2000 para 0 programa no endEre~o que foi especificadou

o programa em LMp linguagem de miquina, J considerado uma subrotina e para retornar aD MD, voct deve colocar no final de seu programa a instru~io de retorno (RTS) do 6502. ObSErve que 0 programa monitor do TK-2000 possui virias subrotinas que voc~ pode ut ilizar, basta cham~-las atrav~s da instru;io JRS do 65020

Como exemplo digite 0 seguinte programa e execute-o:

@400:A9 C1 20 ED FD 18 69 1 C9 DB 00 F6 60 FF

FF FF <RETURN>

@400.40F

(RETURN>

0400- A9 Cl 20 ED FD 18 69 0i 0408- C9 DB D0 F6 60 FF FF FF

hl400G (RETURN>

ABCDEFGHIJKLMNOPGRSTUVWXYZ

@

Veja 0 conjunto de instru~aes do 6502 no Apindice A

11.1 - Disasse.bler

Para poder "ler" os mneum6nicos Assembly representando urn bloco de cddigo biniriov 0 MD do TK-2000 cont~m um disassembler. 0 disassembler ~ urn programa que examina um bleeD de c6digos bindrios e gera os mneum6nicos associados.

Para obter D programa da se~io anterior "disassembladou ~eve ser indicado 0 endere~o inicial sEguido da letra L. Por eXEmplo7 vejamos os comandos envolvidos no programa digitado na se~io anterior~

@400L <RETURN>
0400- A9 C1 LOA #$C1
0402- A0 ED FO JSR $FDED
0405- 18 CLC
0406- 69 01 ADC "$01
0408- C9 DB CMP ij$DB
040A- 00 F"[> BNE ~0402
040C- 60 RTB 13

0400- FF ???
040[- FF ???
040F- FF ???
0410- 00 BRK
0411- 11 ~~ ORA ($22).Y
~~
0413- 33 ???
0414- 44 ???
0415- ~~ C1C) EOR $66,X
JJ
0417- 77 ???
0418- 00 BRK
0419- 00 BRK
041A- 00 BRK
0418- 00 BRK
@ II~2 - Outros Co_andos

Pode-se usaF a sarda de v{deo no modo normal (N) ou no modo inverse (I).Veja cemo sio usados os comandos=

@F800.F80F (RETURN)
F800- 4C CA EF 4A 08 20 F~ F8
0
F808- 20 73 Fe A~ 09 28 90 0~
0 ~
@I <RETURN>
@F800.F80F (RETURN>
F800- 4C CA EF 4A 08 20 F~ FB
0
F808- 20 73 Fe AS 09 28 90 0~
~
@N <RETURN>
@F800.F80F (RETURN>
,
F800- 4C CA EF 4A 08 20 F~ FB
J
F808- 20 73 Fe A~ 09 28 90 0~
J ~
@ Tamb~m pode-SE aPFoveilar 0 prciprio MD para efetuBr as opera~5es aritm~ticas de soma e subtra~io de dois ndmeros hexadecimais:

@i0+i2

(RETURN>

@3A-B =2F @EE+3 =Fi

<RETURN>

(RETURN>

No caso do resultado ser ne9at ivo. 0 MO m6strarJ 0 rEsultado Em complEmento 2 como se vt abaixo:

14

«)5-8 =FD

<RETURN)

No caso do resultado SEr maior que FF, 0 resultado apresentar' apenas os dois algarismos menos significativDs.

@FD+5 ;::::0;_:,~

(RETURN)

Voet pode digital" tantos eomandos do Monitor quantos guiser numa dniea linha, eontanto que os separe com espa~o e o ndrnero total de earaeteres (ineluindo os espa~os) seja menor que 254. 0 dnieo eomando que deve ser considerado com cuidado ~ 0 comando de altera~io (:). Depois dele deve ser inserida uma letra que permita 0 MD difereneiar 0 fim deste comando. 0 comando N normalmente pode ser usado como separador. Efetue 0 exemplo abaixo:

(I):i00.3l7 300. ::107

300:00 it 22 33 44 55 66 77 308(Bi.C8M 300L (RETURN)

N

11.3 - Examinando Registradores

o MD reserva 5 posi~6es de memdria para os 5 registros internos do 6502. Estes registros sio representados pelas seguintes letras=

A = Aeumulador
X -- Registrador d e Indice X
y - Registrador de Indice Y
p = Registrador de Status do Pr'ocessadtJr (Status
Register)
c -- Apontador' dE~ Pi Lh a (Stack Po i n t er' )
~") Os registros aeima podem ser consultados a qualquer momento pel0 MD atrav~s do comando EXAMINE, obtido POl" urn comando CONTROL-E. 8iga 0 exempl0 abaixo=

Inieialmente desligue e ligue 0 co~putador de mado a "zerar" todas as vari~veis do sistema. A seguir digite 0 comando LM permit indo a passagem para Q Modo Monitor e execute a rot ina ~FF4A~

-)LM @FF4AG

A seguir entre com 0 comando E € em seguinda pressione a tecla do tipo jndicado abaixo=

(RETURN) <RETURN>

EXAMINE, ou seja, CONTROLRETURN. 0 resultado ser~

A=FF X=00 Y=00 P=B0 S=F4

Os valor€~ ~ 'direita do sinal de igualdade correspo~dem aos dltimos valores dos registradores. A rot ina $FF4A (SAVE) atualiza as endere~os de memdria que sio usadas para demonstrar as eonteddos dos registradores7 portanto se~pre que

se queira examinar os conteddos dos registradores, antes €xecutar a rot ina iFF4A_

deve-se

088: Os valores apresentados no v(deo no exemplo poder~o variar con~orme a situa,io.

Observe que a posi~~o apresentada pelo apont~dor de pilha USH, deve-se samar $0100 pois 0 endere~o esti na primeira pigina de memdria. Por exemp1o=

A=00 X=EA Y=BF P=C0 S=F0

o endere~o real da pilha ~ $0100 + $00F0 = $01F0

16

CAPtTULO III - 0 MINI-ASSEMBLER

111.1 - 0 Kini-Assembler

Nesta se~io vocf aprenderi como preparar, digitar, testar, depurar e executar uma ampla gama de programas ern linguagem de m'quina.

Urn programa fonte. em 1 inguagem Assembly. i escrito usando cddigos mnem6nicos. etiquetas (labels) e coment'rios. Este acaba se tornando entia em urn formato ~e pro9rama~io adequado a compreensio humana"

Urna vez que 0 programador est~ satisfeito com a versio em linguagem Assembly,' ele deve empregar algum mecanismo pa~a tradu~ir 0 programa fonte para programa objeto. Urn m.todo consiste em buscar nurna tabela (Aptdice A) os c6dig05 em hexadecimal correspondentes a cada instru~io do programa fonte.

Urna outra alternat iva ~ um programa especial chamado ASSEMBLER' que efetua esta tarefa de procura em tabela. 0 TK- 2000 possui 0 chamado MINI-ASSEMBLER (MA) que. embora OiD possua todas a~ poderosas caracterrsticas dos tradicionais Assemblers, e] imina 0 tedioso trabalho e diminui considerave1mente as chances de erro humane na tradu~io para a 1inguagem de m'quina. AD efetuar a tradu,io ele j~ deposita nos endereGos indicados os resultados (C6digos objeto) da tradu~ao.

Para entrar no mini-assembler:

1. Vindo do Modo Monitor/Disassembl~r:

digite Ci92G (RETURN>

2. Vindo do BASIC~ digite ASS

<RETURN>

o sinal de pronto no mini-ass~mbler (MA) I 0 ponto de exc1ama~~o (!)u

Para sair do mini-assembler:

1. Retornando ao Modo Manito/Disassembler:

digite: $FF6iG (RETURN)

2. Retornando ao BASIC: digite: $C2D3G

(RETURN>

ou RESET

111.2 - Progra.as com 0 Mini-AsseMbler

Suponharnos que voet tenha 0 seguinte programa:

17

LOY #~FF ; INICIALIZA Y
LOX H$FF M INICIALIZA X
,
LOA #$00 ; INICIALIZA A
R'T~~ RETORNA A ROTINA PRINCIPAL. Sd falta 0 endereco inicial do programa. Digamos que ~ $0320. Responda ao srmbolo de exclama,io digitando 0 endere~o inicial, dois pontes e a primeira instru,io :

10320=LDY «FF

Ao apertar RETURN a instru,io ~ assemblada e ser~ subsl iturda per ~

0320- A0 FF !-

LOY #$FF

para a instru,5o seguinte, voc~ n50 maie precisa indicar 0 endere;o pois 0 MA irJ atual iz~-10 automaticamellte. A prcixima instru,io ser~ digitada sempre deixando um espa,o:

! LOX #FF

Vocf deve deixar urn espa;o depeis do srmbolo de exclarna,io. Caso contririo apareceri 0 indicador de erro (A), E vocf deverJ re~screver a instru;io.

Continuando assim voc~ chegar~ ao final do programa e poderJ executi-l0 assim como tamb~m armazeni-l0 €m fita.

Caso voct queira executar urn comando do monitor desde 0 MAr digite inicialmente 0 srmbol0 $.

ExempIa: execute 0 nosso progr~ma=

!$320G

Observe que no seu programa deveri sempre existir no final um comando RIB.

Qualquer programa em linguagem de m~quina que YOC@ criar pode s€r chamado no BASIC atrav~s da instru~io ~ALL seguida do endere~o em neta~lo decimal; quando chamado no MOr d~ve-se utilizar Q endere~o em nota;lo hexadecimal SEguide do comando G.

Finalment~r digite a t(tulo de exemplo este pequeno programa~

320:

LOY #$0F M i~ BEEPS·
~ ~
JSR $FF3A • ACIONE 0 80M
,
DEY • OECREMENTE 0 CONTADOR
~
BNE $0322 · SE NAO CHEGOU AO FIMr CONTINUE
~ 1, el

RTS

; RETORNE A ROTINA PRINCIPAL.

Assim sendor vac@ dever~ ter 0 se9uinte programa em linguagem de m'~uina assemblado~

0320- A0 F00 LDY #$0F
0322- 20 3A FOF JSR $FF3A
0325- 88 DEY
0326- 00 FA SNE $0322
0328- 60 RTS Este programa poderi ser executado digitandor como jJ foi mencionadoy $03208 desde 0 miniassemler. Se for a partir do MD, com 320G au se desde 0 BASICr com CALL 800.

Ao redigir seu programa, marque todas as etiquetas necessariasr com nomes que dentro do possrvel t,nham re]a~lo com a tarefa Executada pelo trecho a que ele se referencia.

Na hora de.usar a mini-assembler fa,a uma tabela com os names dos labels e na hera dE digitar a instru,~o que 0 label em questio referenciar escreva na tabela as etiquetas E seus endere,os cOrrespondentes7 dessa maneirar onde for encontrado uma etiqueta na primeira edi,io do program., deve-se co]ocar 0 endere~o correspondente • et iqueta.

19

CAP!TULO IV - 0 TECLADO

IV.1 Int:rodu~ao

o teclado i 0 meio mais comum de entrada de dades do computador. Ele tern per finalidade infermar para a CPU a entrada da informa~~o no mesmo instante em que esta i digitada no teclado ..

R 07

E

G

CTRL-~ (C~5E)

~---*------~~---+----~----+---~r--1

CTRL-l (C~5F)

I S T

R C

A ~

o ~

o ~ R

K B o U T

06

05

04

03

02

01

Fig. IV.i

LIN HAS TIP 0 E N T R A O'A

o I a n o s

"

03

07

05

02

01

06

04

REG 1ST R A 0 aRK BIN (c ~ 1 ~ )

L I N H A S

T I P o

S A I o A

o tetlado do TK-2000 ~ constitufdo de uma matriz de linhas cruzadas onde cada teela s~ encontra num das cruzamentos. Estas linhas cJassificam-se em dais tipos: sardas (horizontais) e entradas (veiticais). Veja Figura IV.i.

Se uma t~cla nio Estiver pressionadar as dUBS 1 inhas que se cruzam nela estio separadas. e ao pressioni-la efetua-se urn contato frsico entre estas duas 1 inhas.

A matrjz associa as diferentes teclas do teclado aos bits correspondentes dos registros KBIN e KBOUT.

Basicamenter ao ler KBINr sem nenhuma tecla pressionada, os bits associados ~s J inhas de entrada indicario o. No caso de uma tecla ser pressionada 0 bit co~respondente ~ linha de entrada adotar' 0 valor 16gico existente na autra linha de sarda.

Escrevendo no registro KBOUT a informa~io adequada, podemos identificar atrav~s de urn m~todo simples, qual tec1a tern sido pr€ssionada.

Suponhamos que gostarfarnos de identificar se a tecla L foi pressionada para sair de uma rotina.

Uma forma de. resolver 0 problema ~ acionar a linha de sarda de KBOUT com D6=1 e aguardar que a 1 inha de entrada corrEspondente a tecla indicada par D4 de KBIN. seja i.

Entre 0 seguinte programa em 1 inguagem de m~quina:
0300- A9 4O LOA H40 . em KBOUT 06=1-
,
0302- 80 00 C0 STA ~C000
0305- A9 10 LOA ·H10 . aguarda que D4 de
F
0307- 2D 1O C0 AND ~C010 KBIN seja igual
030A- F0 F9 BEG $0305 u a i
,
030C- 60 RTS Passe ao modo monitor·e Execute 0 programa com:

@300G

<RETURN>

o cursor desaparecer' e s6 retbrnarJ ao vrdeo ao pressionar a tecla L. Experimente.

Do mesmo modo, se qui~ermos identificar a pressio Usimult~neaN das teclas L E 3, podemos incrementar algumas linhas ao nosso programa:

030C- A9 08 -LDA "08
030E- 80 OO C0 SlA $C000
0311- A9 O8 LOA "08
O313- 20 10 C0 AND $C010
0~
~-~ 0316- F0 E8 0318- 60

BEQ $0300 RTS

Execute 0 programa no endere~o $300 e €xperimente 0 teclado.

A linha de sarda CTRl ~ acionada em forma diferente de KBOUT. Para que esta 1 inha te~ha n{vel 0 deve ser acessado 0 registro CTRL0 ($C05E)r e para obter nrvel Idgico 1 cleve ser acessado 0 registro CTRL1 ($C05F).

De acordo com 0 que acabamos de rnostrar note que teda a opera~ie de leitura do teclado e ident ifica~io foj comandada diretamente pela cpu. Iste provoca not~veis vantagens para D sjstEma~ pois permite ident ificar niD s6 0 pressionamentD de tetlas individuais como.tamblm identifica qualquer combina~io de teclas. DevidD a esta grande versat ilidade~ poder~ ser aumentado consideravelmente 0 ndmero de fun~5es geradas diretamente pelo teclado com a mesma mesma quantidade de teelas.

IV.2 - A Rotina de leitura

o BASIC do TK-2000 possui rotinas cuja fun~io i verificar 0 teclado. Na memdria ROM do TK-2000 existe urna subrot ina no endere,o $F043 q~e se destina a receber inforrna~5es do teclado e ident ifici-las com os seus respect ivos cddigos (conforrne a tabela 4.1.1)

A seguir ~ apresentada a tabela com os cddigos identificados pela ret ina de leitura do TK-2000 em sua versio

normal.
TECLA SOZINHA CONTROL SHIFT CONTROL-SHIFT
----- ------- ------- ----- -------------
Espa~o A0 A0 A0 34
0 * B0 e0 AA 35
1 B1 B1 Ai 01
2 " B2 82 A2 02
3 " 83 83 A3 03
4 $ 84 84 A4 04
5 7- B5 85 A~ 05
~
6 & 86 86 A6 06
7 87 B7 A7 07
8 ( B8 B8 A8 36
9 ) 89 89 A9 37
n BA 8A 88 38
.
, < AC AC BC 39
) (FIRE) AE AE BE 3A
? / BF BF AF 38
A Ci 81 2C 14
8 C2 82 22 12
C C3 83 2A 1A
23 D C4 84 28 ra
E C~5 85 ~?6 0f~
F C6 86 ~?9 19
G C7 87 ;~~0 i0
H C8 88 ~~ j_ U.
I C<J 89 AD 0F
.J CA BA IF 1C
K A CB 88 DE 4:1.
L @ CC Be C0 4~!.
M CD BD :3~! iD
N CE BE ~~3 13
0 -- CF SF so 4~:$
P of· 00 90 AB 44
Q D1 <,1 ~?4 0B
I~ O~) rl ~~ ~~7 0B
1:_
S [)~3 9~3 ~~D j_ ~'5
T 04 94 1.E 0C
U Dc:" vs :30 0E
,J ,J
V 06 96 ~!.B tEl
W D7 97 o'1r_" 09
c; ..... ,
X 08 9B 2F l7
Y [)<, <f<' :3 :1. 0D
Z OA 9A ;~E 1.6
RETURN 80 8D 80 40
< -- 88 88 88 :1C
-- ) vs <f5 95 3D
'" Ft Fi Fl ~}E
t F0 F0 F0 3F
SHIFT FF FF FF FF
CONTROL FF FF FF FF
Tabela 4.L.:1.
() €-~:·(E~mp 1 0 aha i xo ira esc 1 ar E'C e r sua u t t l t d ad e s Entre 0 seguinte programaem 1 inguagem de maquina:

0:300 .. - ~~0 43 F0
0~}03-- ;?0 ED rn
0:106- 4C 00 0:3 JSR ~FB02

~JGR $FDED

..JMP 9;0:300

A primeira linha chama a rot ina de reconhecimento de tecla no endere~o $F802. A segunda chama a rot ina de fmpres- 5~a na lela (vide Ap~ndice sabre rotinas ~tei5)1 e a tercejra retorna ~ primeira 1 inha.

Para radar 0 program~ acima atrav~5 do Modo Monitor basta d l s i t ar «

0)300G

01.1 pel0 Modo BASIC:

)CALl. 76El

Pressione qualquer tecla e observe 0 v(deo.

Note que:

a) 0 programa sd parari apds pressionar as teclas RESET~ ji que um CONTROL-C sEri interpretado como urn caracter independente.

b) Esta rot ina i de apenas 9 bytes e atinge apenas rotinas de a~io quase que imediata. Ista a torna excessivamente r~pida se comparada ao padr;o normal do comportamento do BASIC. Assim~ por mais ripido que VDC@ seja a sua vf?locidade ao pressionar qualquer teclaF a rot ina ir~ radar virias vezes fazendo com que esta tecla se comporte como se foss€ aut o+r ep e t it iva. ..

A rot ina $FB02 utiliza a rot ina $F043 que i quem efetivamente efetua a leitura do teclado.

IV.3 Reset

Ao ligar 0 TK-2000F ~ efetuado automaticamente RESET na ~U~ e elf? passa a executar uma rot ina que verifica Sf? j~ recebeu anteriormente RESET ou ~ esta a primeira vez.

Neste dltimo casa, acontece 0 chamado Hinrcio frioH ( col d s tar t ) ~ no q IJ a 1 ~ 1 imp a d a ate 1 a de v r d eo, imp ... i min d o TK2000 na parte superior. Algumas vari~veis do sistema sic inicializadas, entre elas duas posi~5es de mem6ria qUE indicaram se i 0 primeiro RESET. Tamb~m ~ verificada a exist~ncia de interface de disco, ou cartucho~ case eontririo passa 0 controle para a BASICw

Be ele ji tinha reeebido RESET ateriormente~ 0 cicIo de RESET ~ chamado de "'inreia em quente'" (warm start). Neste easo ele simplesmente retorna aa BASIC.

Existem~ como j. foi mencionadoF 2 'PDsi~5es que

permitem • CPU identificar se J' aconteceu um RESET anterior. A idlia por tr's deste processo • que t praticamente impossfvel duas posi~5es ma~terem uma rela~iD ou algoritmo constante entre siR 0 inrcio em frio t considerado quando eles nio mant~m esta rela~ioM

As pO$i~5es $3F2 E $3F3 contim 0 vetor de retorno do RESET em "'in rc io enl quente"' .. Normalmente a ender~e~o ~ $C2D3 .. o byte $3F3 cont~mportanto MC2 .. A rela~io aplicada ~ efetuar a fun~io EXCLUSIVE OR do conteddo de $3F3 com 0 valor MA5~ e guardar 0 resultado no byte seguinte, ou seja~ $3F4.

Vejamos como ~ feito 0 cilculo:

25

H~x

Bin~rio

$3F3 Constante

»C2 ~A5

1100 0010 1010 0101

$3F4

0110 0iil

Portanto verificamos que deveremos encontrar 0 valor «67 no endere~o $3F4.

Entre no modo monitor e verifique. Pressione agora RESET. Voct deve ter retornado ao BASIC sem altera,io da tela. Entre novamente no modo monitor e altere $3F4~

(RETURN>

Agora pressione RESET € observe 0 vrdeo.

Uma apl ica,io interessante do que j~ foi visto podemos mudar 0 vetor de reset desde que alteremos 0 de $3F4 apropriadamente.

? qUE valor

· CAPiTULO V - ORGANIZACAo DA MEM6RIA

V.1 Descri,ao das piginas de memdria

o microprocessador 6502 pode acessar diretamente com urn total de 65536 posi~5es de mem6ria distintas. Pode ser feita uma analogia de-sta memdria com um livro de- 256 Up'ginaSNT com 256 posi~5es de memdria cada p~gina. PDr exemplo np~gina <.630N seria constiturda por 256 posi~5es de me-mdria a part ir da posi~io $3000 at~ a PDsi~io <.630FF. 0 endere,o de qualquer posi~~o de mern6ria reque-r 2 byte-sF € isto permite relacionar o byte mais significativo como sendo 0 n~mero da pigina e 0 men os significativo como sendo a localiza~iD dentro da pc{ginau

As 256 piginas de- memdria do TK-2000 compreendem funcionalmente trfs categorias: RAMr ROM e 'rea de I/O (entrada e- sa(da). 0 mapa bisico de memdria do TK-2000 esti na figura abaixo (Vide tamb~m Ap@ndice F).

MAPA DE MEMORIA DO SISTEMA

PtiG. NUM:

Decimal

0 $00
1- $01
2 $0~?'
..
" RAM (j_92 paginas)
1.90 $BE
191 $BF
1.92 $C0 I/O ( 1 Pagina)
193 $Cl
ROM (63 Paginas)
~~54 $FE
255 $FF Tabela 6.1

V.2 - Hemdria RAM

A irea utilizada pela memdria RAM ~ compreendida entre a pigina 0 e a pigina 191 (ou $BF em hexa).

o usa da RAM ~ diferenciado pela fun~io que foi atriburda a cada area:

P~gina Zero: Oevido ~ arquitetura do 6502, esta pig ina tern caraeter(sticas especiais e i usada para armazenar as variiveis do sistema.

P~gina Urn : 0 6502 reserva esta p~gina como seu "stack" (pilha de dados). Mesmo que 0 TK-2000 geralmente utilize menos da metade desta p~gina para esta fun~ioF ~ muito difrcil determinar 0 limite de utiliza~io ern qualquer instanteR Assirn sendo, nio ~ recomend'vel armazenar dados nesta ~rea.

P~gina Dais: A sub-rot ina GETLN, utilizada como entrada da linha digitada pelo sistemaF usa a p~gina 2 como buffer de en t r s o a ..

Pigina Tr@s: Esta ~rea est~ reservada parcialmente para as p.erif~r-icos e ve t or e s de en d er e c o do sistema .. NE~sta p~gina~ voe@ pode utilizar os endere~os desde $300 atrl $3EF para seus pr-dprios pr-ogramas em linguagem de m~quina. Tamb~m nos tr-@s bytes de $3F5 at~ ~3F7 voc~ pode inserir uma instr-u~io de JMP para outro endere~o que

contenha urn programa em linguagem de m~quina e que ser-~ executado em BASIC pela instr-u~io "&" (Tecla SHIFT-6). Idem para os tr-@s bytes de $3F8 at~ $3FAF sendo que estes ser-io executados pela instru~io "TK2000" (Tecla CONTROL-7)"

P~ginas Guatr-o a Sete: Esta ~rea ~ r-eservada para 0 programa

MONITORr algumas var-iiveis do sistema e para os

per" i fer- i cos ..

Piginas $8 a $lF: Oisponrvel para a usuirio .. Os programas em BASIC comE~am normalmente na pJgina 8.. Tamb~m pade serusado par-a pr-ogramas em linguagem de m~quina.

P~ginas $20 a $3F: Ar-ea r-eser-vada para a primeira p~gina de vrdeo para textor baixa e alta resolu~io ..

P~ginas $40 a $9F: Disponrvel para 0 usuJrio.

P'ginas $A0 a $BF: Area r-eser-vada para a segunda pJgina de vrdeo para textor baixa € alta r-esolu~io.

V.3 MenuSr i a ROM

A 'rea de ROM efetivamente disponrvel para 0 6502 ocupa as piginas $Ci at~ $FF.

A ROM cont~m uma sequ@ncia de cddigos a serem interpr-etados pel0 6502 que permitem a oper-a~~o do TK-2000 como eomputador-. 0 BASICr 0 monitor-d·issassembler- e 0 mini-assembIer- estao arrnazenados na ROM ..

Algumas r-otinas especrficas e de utilidade para 0 usuir-io est~o relacionadas no AP~NOICE 0 deste manual ..

V .. 4 I/O

Entradas e saidas (I/O) s~o registros especiais que permitem ~ CPU 6502 controlar tanto perif~ricos externos quanta as "chaves" inter-nas que contr-olam 0 comportamento do TK-2000 COLOR. A tabela abaixo apresenta estes endere~os:

FUN~~O REGISTRO ENDEREI;O COMENTARIO
Saida de dados I<BOUT $C00l!1
Entrada de dados KBIN $C!010
Saida de gravador CASOUT $CQ120
Som SND $Cf!13Q!
Video color-ido VCL $C05QJ
Video branco/preto VBP $C051
MOTOR A MTAOFF $C052 Desligado
MTAON $C053 Ligado
Pagina de video VDl $C054 Primeir-a
VD2 $C055 Segunda
MOTOR B MTBOFF $C056 Desligado
MTBON $C057 Ligado
Strobe de impress. STR0 $C058 Nivel Bai x o
STRl $C059 Ni vel Alto
Selecionador de RO $C05A ROM
RAM/ROM RA $C05B RAM
Tecla CONTROL CTRL0 $C05E Be i x o
CTRL1 $C05F Alto V.5 - Video

Como fai vista nQ item V.l~ 0 TK-2000 reserva duas Areas de memOria para as duas pAginas de video disponiveis.

SerA vista no capitulo VII que cada urna destas Areas de mem~ria serA utilizada nas tr@s categorias de video: texto, baixa e alta resolu~~o.

29

V.6 - TK-2000 II VersOes 64K e 128K de RAM

5e voc~ possui 0 TK-2000 II 64K, consulte 0 AP~NDICE G, incluido no final deste manual.

5e 0 seu TK-2000 II se apresenta em vers~o de 128K, veja 0 APENDICE H, tamb~m inclusD na parte final deste livro.

30

PAGINA FOI DEIXADA EM BRANCO PROPOSITADAMENTE

-1 ~.

Caprtulo VI - SOM

VI.1 - rntrodu~ao

No Manual de Opera;io do TK-2000~ Capftul0 XV. ~ apresentado 0 comando SOUND gera uma nota musical com tom e dura,io program~veI; tamb~m ~ apresentado alguns efeitos especiais geractos diretamente em I ingUag€ffi de mJquina.

Este caprtulo irA complementar os conceitos jJ eXPDstos apresentando 0 modo de opera~io do canal de som em forma direta atrav~s de programas em ] inguagem de mJqllina.

VI.2 - Canal de Som

Antes de iniciar qualquer programa,~o ou exemplo7 ~ importante que a "cora~io" de tados os efeitos sanoros seja apresentado. Esta principal ferramenta ~ ° registro SND local izada no endere,o $C030 da pJgina de 110"

Atrav~s da programa~io JJ existente no TK-2000. qualquer acesso aD endere,o $C030 (ou 49200 decimal) gerar~ uma altera~io de nrvel 16gico (0 para 1 ou vice-versa) no canal de som da TV provocanda urn cl ick no alto-falante.

Este acesso aD endere,a iC030 padE SEr atrav~s de um comando em 1 inguagem de mJquina (que vista adiante) au atrav~s do BASIC usando um simples doy par Exemp]o~

dado serJ coman-

)PRINT PEEK(49200)

Para sentir melhor 0 efeito do comando acima digite a seguinte programa~

)10 P = PEEK(49200) )20 RUN

apcis radar 0 programa acima ser~ possrvel sent ir 0 resultado de uma s~rie de cl ick Ys no alto-falante de seu TV.

No exempl0 acima. natamos que a frequdncia do som gerada Era relatlv~mente haixa (cerca de 70 Hz). Ista ocorreu devida a fato de a endere,a IC030 ter sida acessado atrav~5 de urn programa BASIC quey- camo sabemas ~ mais lento que prograrnas escritos em linguagern de mJquina.

A maior versatil idade se obtem acessando diretamente em 1 inguagem de miquina 0 registro SND. 0 controle de tonalidade seria entia produzido par intErvalos regulares programados de modo a reproduzir sons que possam se aproximar de notas musicals.

VII.3 - Programando Tonalidades musicais

Abaixo ~ apresentada uma ~ot ina em linguagern de miquina muito utilizada na forrna~io de tons.

030;,~"" AD 30 C0 LOA $C0:i0
0~305··' BB DEY
0306 .. " D0 0~5 BNE $030D
0~)0B··· CE 01 0:3 DEC ~~0:30 :1.
0308·" F0 09 EIEQ $0316
0:30(),,· CA DEX
030E· .. D0 F5 BNE q;030~:;
0:H0 .... AE 00 0:3 LOX ~&0:300
0313· .. 4C 0") 0:-1 -.IMP q;0~~0;~
e ..
0:316 .... 60 RTB
Pr: ogr' ama I " No exemplo acirna, 0 ende~e;o 10300 deve contE~ urn ndmero (entre 0 atl 255. claro!) que controla 0 tom da nota produzida, enquanto que 0 endere;o $0301 contim urn byte qUE indicar~ a dura~io da nota emit ida.

Para poder senlir. inicialmenteT uma pequena

demonstra;io da rot ina ap~esentada, bastarJ 'digitar~

au no modo BASIC simplesmente=

>CALL. 770

o princtpio de trabalho desta ~otina con.iste simplesmente em urn entrela;amento de loops. Inicialmente no primeiro elo de tempo decrementa-se 0 ~egistrado~ Y (cujo valor inicial nin ~ determinado pela rot ina) e quando Y ~ 'zero, ira df.~Cr'c;-nH;~ntar' 0' n dme r o fjl.Hu'dc.HJo no en de r e c o ~&0:30j_ at~ chegar ao zero finalizando assim a rot ina. Assim~ percebemos que 0 valor cantido em $0301 controla a dura~io da nota, e que a rot ina irJ passar pel0 instru,~o DEY aproximadamente 256 * (1-1) vezes, onde T representa 0 conteddo da posi~;o ~030i. A exce~io para isso ~ que se T - 0 0 resultado j assumido ~omD sendo 256.

o registrador X ~ carregado com 0 conteddo da posi~io ~0300 (que nds charnarernos de P) e ~ decrementado a cada passo completo do loop. Quando X tD~na-se zero, 0 ender ec o $C030 e. ac e s s ad c (~J(~~rando ou t r o cl i ck no ,:\lto"" falante) e 0 registro X ~ "~efrescado" com Py ou seja. 0 registro que fieou igual a zero iri ser novamente carregado com 0 va]or de P. Consequentemente I evidente que P controla o espa~o de tempo entre cada chamada a $C030, consequentemente controlando 0 tom da nota. Diminuindo 0 valor de P ~umenta-se 0 tom da nota gerada com a importante exce~io que

P=0 produz a nota mais gravE possrv~l produzida par esta rot ina ..

Esta subrotina pode ser acessada atrav~s de coman~ dos em linguagem de m~quina usanda as seguintes 1 inhas (nos exemp10s T=0 e S = 0)

LOA »<.600
aTA ~&0300
LOA Wi00
BrA ~&0:30 j,
,.JSR 1fJ0 ~~0 ~:! ..

..

ou alternat ivamente atrav~s do modo BASIC:

T :::: 0 P = 0

POKE 76B,P POKE 769.,T CALL 770

A 5 i mp 1 e s t rt u 10 d e e:·:pto;;-r i ~1'lC: i a , apos i nt roduz i r: o prograrna em linguagem de m~quina no Endere~o c:orretot digite as seguintes 1 inhas ern BASIC:

> j_ 0 T :::: j_ 20 >~~0 P :::: 96

}30 POKE 76El.,T )40 POKE 769,P }50 SOUND P.,T }60 CALl.. 770

o pregrarna acima gerar~ duas netas de mesrna dura~;o e de mesrno torn. A.sirn c:onc:lue-se que, no case da subrot ina apresentada., que os valores apresentados nas tabelas XV.! e XV.2 no Manual de Instru~io sic tamb~m vJl idos para forma,io de part ituras musicais do rnesmo modo qU€ 0 c:omando SOUND. Somente qUE., neste CaSOr um maior ndmero de linhas de programa ser' requisitado para eXEcutar a mesma tarefa que 0 comando SOUND.

Caprtul0 VII - Vrdeo

VII.! Hodo Texto

As mais importantes partes de seu sistema TK-2000 enc~ntFam-se no teclado e na safda de vrdeor pois s~o 0 primeiro elo de liga~~o entre 0 usu~rio e 0 interior do sistema.

Este cap(tulo iri discutir os formatos de entrada e sarda de informa~5es atrav~s do teelado e do v(deoM

For.ata Standard de Texto= A tela de vrdeo do TK-2000 esti arranjada de modo a exibir um miximo de 40 caraeteres em cada uma das 24 linhas de texto. Isto permite que 960 earaeteres possam ser exibidos simultaneamente na tela.

1 ~ 2 2 2


















7
8
9

1
2
3 2 3 4 5 6 7 8 9 10 11 U U 14 15 16 1

Figura 7.1. Localiza~oes dos caracteres na tela

35

A figura 7.1 mostra a tela de v(deo dividida em 960 possrveis local iza~5es de caracteres. A ntimera~io que acompanha indica apenas 0 endere~amentoD dado a cada 1 inha ou coluna.

As colunas sio numeradas de 0 a 39 formando 40 colunas e as linhas sio numeradas de 0 a 23 perfazendo 24. Assim7 a primeira posi~5o no canto superior esquerdo da tela i descrita como coluna 07 linha 0. 0 caracter localizado no canto inferior direito da tela ser' IDea] izado como linha 23, coluna 39. 0 caracter localizado prdximo ao centro da tela s€rJ )ocalizado como cotuna 197 linha 11.

Virtualmente todas as opera,Ses envolvendo 0 v{deo usam este formato de numera,io, coluna e I inha, de um modo au de Dutro. As opera,Ses normais de impressio no vfdeo ocarrem da esquerda para a direita. E possrvel, no entanto, alterar a ordem normal de impressio de eventos e imprimir uma sequ@ncia de caracteres seguindo uma Dutra dire,io que VQC@ rnesrno tenh? df?finido"

VII.l.l Funciona.ento do Cursor

Na rna i or p ar t e das c)pE.'r·a~()es, 0 cur sor sempn:·~ i nd i c a onde 0 prdximo caracter serJ impressa na tela. 0 cursor ~ representado por urn ret~ngulo cheio no BASIC, no modo monitor e no mini-assembler. 0 sistema interno de manipula,io do cursor usa dais endere,os especrficos de memdria que cont~m as coordenadas coluna E 1 inha do cursor.

Supondo que esteja no modo BASley digitando arbitrariamente uma sequ~ncia de letras e ndmeros. voct ver~ 0 srmbolo do cursor Bvan,ando ao longo da 1 inha. sempre indicando exatamente onde 0 prdximo caracter seri apresentado. Se voc@ preencher a linha e continuar digitando rnais caracteres, 0 cursor automat icamente passar~ para a pr6xima I inha voltando para a primeira coluna e assim sucessivamente.

o mesmo t ipo de comportamento ocorre quando i impressa urn texto na tela. A dnica difEr€n~a l que 0 si~bol0 do cursor nio aparece na tela. Isto acelera Q trabalho do computador evitando a perda de tempo em apresentar 0 cursor quando urn comando de impressib ~ executado. Em outras palavras. 0 cursor 56 indicar~ a pr6xima posi,io do caracter a ser projetado quando D computador est iver·~a9Ilardando a l s uma en t r ada de inf'o·rma.;ao PE~lo teclado ..

[xemp] ificando. ao executar 0 comando PRINT uHELLOn, 0 comPlltador imprime 0 caraeter H em uma dada loealiza.;io coluna e linha, avan,a urn endere,o de coluna, imprime 0 Er avan~a mais urn endere~o de coluna. depois 0 L e assim por diante.

VII.l.2 Controlando a posi~io do cursor atrav~s do Comando PRINT

o comando PRINT faz com que 0 computador "imprima" urn string alfanum~rico ou valores num~ricos na tela do vrdeo. E. a menDs qu~ 0 computador esteja programado para executar de Dutro

modor a informa~iD ~ NimpressaN urn caracter per vezr de esquerda para direitar com 0 NinvisrvelN cursor Nindicando 0 caruinholl.

Todos as op~5es dE centrale do cursor atray~s de PRINT est~o descritas no Manual de Op€ra~io do TK-2000 pig ina 41; enquanto que as cemandos TABr HTAB e VTAB estio descritos na p~gina 90 do mesmo manual.

VII.1.3

Os registradores de posi~ao do cursor

Existe na memdria do TK-2000 duas posi~5es de memdria que indicam exatamente onde 0 cursor esti localizado num dado momento e sob qualquer modo de opera~io. Os valores num&ricos contidos nestas localiz~~aes seguern 0 mesmD formata de endere~amento coluna e linha descrito neste caprtulo.

'Estes dois endere~os de mern6ria serio denaminados par

CH e CV:

CH endere~o $24 da RAM - este

especifica a coluna em que 5e cursor' (0-~"j9)"

r-E:':!:J i 5 t r a d Of' localiza 0

CV endere~o 125 da RAM - este registradar especifica a linha em que 5e localiza 0

c urs or' (0-;;:~~:~).

e atrav~s de cornandos PEEK e POKE ~ possrvel ter 0 contrale total sabre 0 PQsicionamento do cursor como ser~ vista adiante.

o endere,o de memdria 36 ($24) sempre conttm 0 enclere,o do cursor horizontal na tela; assim incluindo urn comando BASIC como:

PRINT PEEK(36)

a seu programa indicar~ 0 valor de CH para voc~. Mas se voc~ tentar este comando no modo imediata, 0 sistema sempre responder~ responrJendo 0.. Ls t o o c orr er a .p orqu e urn c oman d o no modo i me d i a t o sempre ~ execut~do soruente depois da tecla RETURN ser pressionada. A tecla RETURN sernpre proyocari uma rnunclan,a do cursor para a linha seguinte (linefeed) levando 0 cursor para a coluna entlere~o 0. Consequentemente urn comando PRINT no modo imediato ~ virtualme n t e i n Ilt i 1 ..

Aplicando 0 comanda PRINT PEEK(36) dentro de urn programar serJ: possrvel visual izar 0 desempenho do registrador de endere~o de coluna. Tente esta pequena demonstra~ia:

)10 FOR I = i TO 4 )20 PRINT J'J'*u;

>30 NEXT I

)40 PRINT PEEK(36)

37

rodando 0 programa acima apareceri na tela a seguinte resposta:

****4

o eomando FOR-NEXT imprimiu asteriscos nas colunas 0y iy 2 e 3. A seguir 0 sistema avan~ou 0 cursor para a pr6xima colunay e entao 0 comando da linha 40 imprimiu a atual posi~ao do cursor que~ no casoy era 4.

A seguir i apresentado urn outro programa que utilizar~ novarnente 0 comando PRINT PEEK(36):

)10 INPUT "ENTRE COM 0 ENDERECO DA COlUNA (0-

39)"'rCOL

)20 FOR N = 0 TO COL : PRINT "X"; : NEXT N )30 pel = PEEK(36)

)40 PRINT: PRINT PCl

)50 GOTO 10

Inicialmente 0 programa questiona qual 0 endere~o de coluna que se deseja visualizar na linha seguinte de texto. A seguir 0 programa irnprimiri urna sirie de "XYs" at~ 0 endere~o requerido na linha 10. 0 prdximo passe seri armazenar a posi~~o Final do cursor na vari~vel pel que seri ent~o impressa na linha

seglJinte.

TenteF por exempla, 20 e veja 0 que oeorrera.

omitir 0 ponto-e-vfrgula na linha

Usaodo a me sma linha de racioc(nio, seri simples assegurar por si mesmo que CV (endere~o 37 da RAM) sempre indica o endere,o da I inha no qual 0 cursor se lacaliza. Para isso, basta requerer, a qualquer instante, 0 valor de CV atravis do comando::

PRINT PEEK(37)

Fazendo isto, a tela mastrara urn ndmero entre 0 a 23y dependendo do valor atua1 do cursor.

Abaixa i apresentado um programa mostrando a utiliza~io do registro CV::

)10 INPUT "ENTRE COM UM ENDERECO DE lINHA (0-23)"';
lIN
)20 HOME -
)30 FOR N = 0 TO LIN. :: PRINT "XU : NEXT N
)40 PLN = PEEK(37)
>50 PRINT P,lN
)60 GOTO 10 Inicialmente a programa ira requisitar urn valor de linha. A seguir limpara a tela e imprimira 0 c ar ac t er "XU no Olesmo nilmer o de linhas r~qlJisitado pela linha 10. A linha 40 entia armazenar~ a valor do endere~o da linha seguinte que ser~ exibida atrav~s da

linha 50. '

38

VII.1.4 Formatos alternativos de texto

o TK-2000 COLOR oferece algumas alternativas para 0

For ma t o de t ext o , alem do d e s c r l t c no item an t e r i or , A~.;

alternativas incluem os earaeteres inverses E e tamanho da tela para 0 texto. E certamente possrvel rodar algumas dteis p sofisticadas rotinas de texto sem utilizar estas alternat ivasr mas elas sem d~vida ofereeem grande capacidade de sofisticar e ~alorizar qualquer programa.

Quante a forma dos caracteres, se em inverse eu nie, todas inferma,5es sabre este assunto jJ foram abordadas no Manual de OPEra,io no item VII.4.7.

o texto normal de TK-2000, ~ fermado POl" 24 I inhas tEndo 40 caracteres cada. Isto representa um m~ximo de 960 caracteres a serem apresentados simullaneamenle confol"me most!"a a fjgura 7.i. Ae tenta!" a impressie de mais de 960 caracteres no mesmo instanter ecorreri 0 Hscroll ingH ,ou seja1 a tela inteira SE mover~ para eima fazendo com que a primeira 1 inha desapare,a surgindo urn novo texto na I inha 23 (considerando a linha de cima como lin h <:~ 0) ..

Sempre que se 1 iga!" 0 sistema~ ou se apI iear 0 eomando RESET, automat icamente 0 computaclor ir~ para seu modo normal de texto (24 1 inhas x 40 colunasr em modo normal). Ut il izando-se uma s~rie de comandos ser~ peserve} comandar todas as dimens6es da tela de v(deo, formando uma esp~cie de "janelaH dentro do prciprio monitol" d e TV. Est€~~; c oman do s ~~~\O apl i c ad o s u t i I i z an o o+s e d e comandos POKE's com valores apropriados ~ famFl ie de 4 entiere,05 espp.ciai~~ d<:-\ RAM"

VII.l.5 Regulando a primeira coluna de texto

Recordando a figura 7.1 vemos que e1a apresentou cada linha organizada em 40 diferentes local iza,aes de colunas que sio numeradas de 0 a 39. A coluna endere~ada POl" 0 representa a localiza,io do caraeter coluna da extrema esquerda da tela, e ° endeFe,o 39 representa a 10ea'l iza;io da caracter local izado na ext r ema d i re i t a ..

Atrav~5 do conte~do da PDsi,io 32 (~20) da memdri~ RAM do TK-2000 ~ poss{vel determinar 0 endere,o da coluna para 0

p r i m €": i roc: a r" 1:\ c t 1::': I'" <':\ ~) €-: r" i III PI'" e ~::, 5 C) E: III C: a d :c\ 1 i n h a ..

Normalmentey 0 valor eont ido na posi,io 32 ~ zero. Ista signifiea que cada '1 inha ae texto come,ar' da coluna zero do vrdeo, na extrema esquErda da tela. Assimr. aD digitar~

>PRINT PEEI«3~~)

o result: ado s€r ~::

e

Enlrando a seguinte instru,io~

o srmbolo de pronto (») passari a ocupar uma posi~io prcixima ao meio da linha. Pressionando-s€ v~rias vezes a teela RETURN poderi se confirmar que cada linha de texto est~ come~ando na eoluna de e n del" e , 0 1~:;"

retornari 0 inrcio da linha aD valor original

Atravrls do comando POKE rl PDssrvel aplicar .·posi~io 32 oulros valores inleiros que estejam entre 0 F 39. Porim lrabalhando com urn valor diferente de 0 nio se deve transbordar a linha de textor pois isle pode causar erros alem de colecar dades em localiza~aes imprdprias.

A se;io seguinte iri deserever como terminar com os problemas inerentes a transbordamenles de 1 inha quando a posi~io 32 for diferente de zero~

VII.i.6 Regulando 0 ndmero de caracteres p~r linha

o endere,o 33 ($21) da memdria RAM do TK-2000 iri determinar at~ que coluna as caracteres podem mer impressos em cada 1 i nh a ,

(~I.J.(:\I·l d 0 0 TI( -··2000 e s t ,,{ €-"m s eu mo d C) n or rna 1 7 s e j a q uan d 0

rec~m ligada ou quando as teclas RESET sio pressionadas, 0 valor cantido na posi,io 33 ser~ 40, indicando a PDssibilidade de impressio at~ a coluna 40.

A rim de perceher a uti1 idade desta posi~io de memdria, siga a sequ@ncia abaixo=

1. Pressione as teclas RESET. normal da janela.

Ista iri garant ir a tamanho

")

, ....

Dig it€-,':

PRINT PEEK(32)y PEEK(33)

Desde que 0 sistema est' agora com as dimens5es normais da janelar os valores 1 idos pela instru~io acima serio 0 e 40, respectivamente. Ista significa que 0 texto come~a na .c o l un a en d er e c o 0 e ql.1E'r em c a d a 1 inha av an c a ate a coll.lna 40u

:~. Entre c om s

40

POKE :33,10

Esta oP€ra~~o ira v I'd eo CORlO 1.0. c\rbitraric)s ate r e su l t ado.

definir a coluna direita da janela de Digite um string 10ngo de caracteres ultrapassar 0 limite de dez e note a

4. Digite::

PRINT PEEK(32), PEEK(33)

o resultado da instru~~o acima ser~ 0 para 0 inrcio da linha e 10 para 0 comprimente m'xima desta.

Isto deveri retornar 0 sistema para 0 modo normal de 40 caracteres par linha. Confirme isso digilando urn string longo e repetindo novamente 0 item 4.

6. Agora fa~a a seguinte experi@ncia:

>NEW

>10 POKE 32,10 : POKE 33,30

)20 PRINT: PRINT PEEK(32),PEEK(33) >RUN

:1. 0 30

OBS~ 0 valor da posi~io 33 nunca deve ser menor que 0 da p()si~ao ~:l~~ ..

A sEguir serio tratados os endere~os de c~ntrale do ender ec o s de 1 inhas ..

VII.1.7 ReglJlando a posi~ao da I inha de topo

o endere~o da linha de topo da janela de texto esti registrada na posi~io 34 (~22) da Rlemdria RAM do TK-2000. NormalmentE C) sistema contem n e s t a posi~ao 0 valor 0, indicando que a primeira 1 inha de t e xt o d e ve aparecer no tapa da tela.

Para s€ peder compreender a significado da posi~~o 34 bast a d i 9 i tar ::

)POKE 34,10 )HOME

ver l f i c an d o qlJe agora a novo topa de tela paSSOIJ- a ser a 1 inha dez d ate 1 a ..

Repare que 0 comando HOME foi necessiriop pais sem ele

41

nio seria passrvel localizar 0 novo topo cia tela.

Ao se trabalhar com baixa ou alta r€sDlu~~o, uma das mudan;as que 'ccarrem na passagem do modo texto para 0 sistema de r€solu~~o d que 0 valor de PEEK(34) passa automaticamente a 20 qualquer que seja (.1 valor (inclusive 0) armazenado anteriormente.

No caso do centrale de tapa de tela, allm do comando

-Rf-SET, o c oman do TEXT t amb~m PIlei€': d e s a t i var: qua 1 'Iller a 1 t er'a~a()

i nlpost a a el e ft-\zf:~nclo c om (PH:": a pos i ~ao 34 ret: or n e ao va lor 0 u

Os valores perrnitidos para se modificar 0 topo de tela deverio €star na faixa entre 0 e 22.

VII.i.8 Regulando a dltima linha da tela

A posi,io de memdria 35 ($23) da RAM do TK-2000 cont~m o n~mero da dlt ima linha do texto. Portanto no modo normalr c valor cantido nessa posi~io ~ 24.

A faixa ~til deste comando i de 1 a 24. Nate que 0 valor

t . d t . .... n, ....

con I 0 nes:a posl;ao nao obedece exatamente a mesma nota;ao de

endere,amento que come~a a contagem desde 0. Assim senda bastar~ acr€scentar 1 ao €ndere~o convencionado £ BPI ic~-lo • posi,io 35 da memdria atrav~s do comando POKE"

VII.1.9 Programando a janela de texto

A tabela 7.1 apresenta um sum'rio de todos os endere~os da RAM que controlam a janela dD modo texto do TK-2000.

SIGNIFICADO DA INSTRUC;~O

EN[)Er~ECO NA r~AM

FAIXA DE VALORES

VALOR NORMAL

Endere~o da col un c\ -d 0 P r i III E'~ i r o caract: e r d e cadet '1 i nh a ,

o

En d €~r e~ 0 da C 0-' :13 1-,,40 40
luna d o III t i mo
c: ar a c t er d e cada
1 i nh a ..
En d er f.~f; C) da 1 i -- :~4 e-za 0
nha de t C)P o , Endere,o da dltima linha d a .i an e l a de v rdf.-~o ..

1-24

24

4")

1;..

VII.2 Modo de opera~ao em baixa resolu~ao

Uma das mais interessantes caracterrsticas do sistema TK-2000 ~ 0 vers'til e colorido modo gr'~ico de baixa resolu;io. Este modo, quando usado apropriadamente, poder' proporcionar interessantes e praticos graficos coloridosu

A ;;{rea Qc."'JPada p e Lo modo de b a i xa resollJr;ao na memdria RAM ~ a mesma ocupada pelo modo texto.

o modo normal de baixa resollJ~~o gr~fica mistura de graficos e texto simultaneamente. A area ocupa as quatro dltimas linhas (linhas 20 at~ 23), graficos que ocupam 0 restante da tela.

permite a de t e x t o e a de

o I I 1 4 S 6 I & , 10 II 12 1) II 15 16 17 1& 19 20 21 22 23 14 2, 26 17 1& 29 10 31 11 31 34 31 36 37 38 n

0
I
2
J
C
I
6
1
I
~
10
II
11
13
14
II
... ~- .. . .. .- --

la
I~
10
11
11
13
14
15
26
n
18
1':1
]0
31
32
n
34
35
36
11 .
38
39
40
41
41
43
u
45
4i
41
00-· ........... - ~ -- ... ~ - ~ ~ - - .. .,. '" ~ ~ ..... r,p - - '" ~ - ..... ~ _ ... d't Fig" 7.2

43

·

A ~rea grifica est~ dividida em 40 linhas de 40 locali-

za~5es gr~ficas. Assim a tela proporcionarJ 1600 posi,Ses (OU local iza~5es) na tela onde se imprimiri pequenos retingulos coloridos. As 40 colunas de cada linha estio endere~adas Exatamente da mesma forma que as localiz~~aes de caracteres de texto- 0 at{ 39. Da mesma forma, as 40 linhas dE baixa resolu~io podem ser entituladas de 0 at& 39. <Vide fig. 7.2)

Seri simples apreciar 0 fato que hi 40 linhas de posi~5es grificas ocupando 0 espa~o que i normalrnente ocupado POF 20 linhas de texto. Em outras palavras. h~ duas vezes mais linhas gr~ficas par 'rea de VrdEO que com tExtO.

Observe que as linhas 40 a 47 COFFEspondem. na

FEBlidade. ~s 4 linhas de texto.

As instru;aes relativas ao modo gr~fico de baixa resolu~~o constam do Manual de OpeFa,~o (Capftulo X).

r impoFtante PErcebeF que 0 mapa apFesentado acima sErJ muito ~til para urascunharN 0 desenho antes de iniciar qualquer programa~io. Assim fieari muito mais rieil obter. atravis dos comandos PLOT. HLIN ou VLIN. resultados bonitos em pouco tempo.

44

VII.3 Opera~oes no modo de alta resolu~ao

VII.3.1 Introdu~ao

ress?t-ntes 2000.

o modo de alta resolu~io ~ uma base f~rtil para inteexperi@ncias e trabalhos sofist icados com a seu TK-

Este modo permite ter controle de cede ponto·da tela; sendo que esta ~ dimensionada com 280 pontos horizontais por 192 pontos vert icais. A aparfncia da imagem do v(deo { grandemente afetada pelo griu de resolu~io da figura. AD verificar a forma,ie de baixa resolu,io foi nclado que a constru,io de uma figura era 'eita atravls de elementos gr~ficos com dimensio metade de um caracter normal. Em alta resolu,io. 0 controle de pontos individuais permite criar figuras com nit idez multo superior.

Nas se,5es seguintes serio apresentados uma sirie de mitodas de usa da alta resolu~io. Serio abordados principalmente. o marearnento da memdria7 e 0 controle dos pontes gr4ficos individualmente e em conjunto. na forma~io de figuras.

VII.3.2 Mem6ria ocupada pela alta-resolu.ao

A 'rea ocupada pela alta resolu;io ~ a mesma que a ocupada pe10 modo texto e pela baixa resolu;io. A difEr€n~ar conv~m notaF~ reside na mane ira com que os pontos da tela sic controlados. A primeira p~9inar p~gina ir est. local izada deste 8192 at~ 16383 ($2000-$3FFF)F e a segunda p~gin~F p~gina 2. reside desde a posi~io 40960 atl 49151 ($A000-$BFFF). A maiaria dos exemp10s aqui apresentados utilizario a p~gina iF mas as t~cnicas E programas discut idos t·rabalhario identicamente na p~gina 2 simplesmente adicionando 32768 ($8000) aos €nd€rE~os.

o primeiro exemplo apresenta urn programa designado para apresentar todos os pontos de alta r€solu~io sequencialmente. Partindo da posi~io 8192 liga 0 primeiro bit do primeiro byter ~aga-o € 1 iga 0 sEgundo; ao terminar a primeiro byte came,ari com 0 segundo (8193) e assimpor diante at~ completar toda a tela.

Ao aplicar um comando POKE, 0 byte inteiro ser~ iPlicado na posi~ao de mem6ria. Assim,. t er emo s qu e aplicar B comandos POKE com 8 valores diferentes de ~odo a pader aplicar um valor i a cada bit indi·vidualmente .. A seglJinte seqll~nc.ia em programa BASIC gerar~ as oito valores requeridos.

FOR J = i TO 8 X = 2 A (8 - J)

NEXT

Quando J ~ igual a 1. X ~ 2A7 = 128, J igual a 2 dd X igual a 2A6, e assim p~r diante como indica a figura 6.2

4~5

,.I 2 .... (B-J) BINARIO HEXADECIMAL
1 2"7 1000 0000 $80
'") 2 .... 6 0100 0000 $40
c:
3 2 .... 5 0010 0000 $20
4 2 .... 4 0001 0000 $10
5 2 .... 3 0000 1000 $08
6 2"2 0000 01.00 $04
7 2"1 0000 0010 $0;~
B 2"0 0000 0001 $01
Tabel a 7 '") - Pot~ncia de dois
.. c.. Como foi dito7 cada valor teri somente ym bit em 17 e note tamb~m que7 0 rndice "J" foi de 1 para 8 enquanto que as bits foram acendendo da esquerdapara a direita. 0 programa a seguir usa este algoritmo sucessivamente apIlcando um comando POKE para cada situa~~o na memdria de alta resolu~io.

)10 HGR : REM ACERTA 0 MODO AL-RES

)20 X = PEEK(49234): REM UTILIZA TODA PAGINA )30 FOR I = 8192 TO 16383

)40 FOR J = 1 TO a

)50 X = 2 " (8-J)

)60 POKE I~X : REM ENTRA COM 0 PONTO

)70 FOR A = 1 TO 2: REM REALIZA UM ATRASO >80 NEXT A

> 90 NEXT ~J

>100 NEXT I

>110 CALL 65338 : REM PROVOCA UM BEEP )120 END

Ao observar 0 rEsultado causado pelo programa7 v€rifica-SE qYE em cada byte a sequ@ncia de acendimento foi da direita para a Esquerda e que7 na verdade, apenas 7 bits acendiam e nio 8 em cada bytf..' ..

Este fato deve-se a que na tela ~ projetada a imagem do conteddo da meMdria .. Se 0 bit mais a direita est~ em i entia 0 pont~ mais a esquerda "acende".. A razio de que apenas 7 pontos apare~am para cada posi~io de memdria ~ que 0 bit mais significativo de cada byte de alta rEsolu~io ~ usado para controlar as corES .. Veja a tabela 7 .. 3:

10000000 NAO NAO Nf",O NAO NAO NAO NAO
-01000000 NAO NAO NAO NAO NAO NAO SIM
00100000 t NAO NAO NAO NAO NAO SIM NAO
00010000 NAO NAO NAO NAO SIM NAO NAO
00001.000 NAO NAO NAO 81M NAO NAO NAO
00000100 NAO NAO SIM NAO NAO NAO NAO
00000010 NAO 81M NAO NAO NAO NAO NAO
00000001 81M NAO NAO NAO NAO NAO NAO
Tabela 7 .. 3
A !l>egl..lir € aprese-ntado o mapa da memdria da alta
rE'solu~ao;, 46

I ! i I • ! I I
u I .,. o
• • .; .;;. - ..
.. .,. .. - ...
... i i I II ... .,.
N N ... C
• ! .., ... it; iii ;;::
r-- - r0- c- ,....- - - - ~. i 9 • 7.3
f- - l- I-- I-- - - -
f- - I-- I-- I-- - - -
f- - l- I-- r-- - - I--
~ I-- - r- l"- I-- - - r
5 r- - l- I-- I-- - I-- ~
A - - l- f- I-- >-- - I--
- - l- I-- ~ - - r-
2 - I....-
161- - ...._ .__ ....... -

I..Z$ Ii: /
N$ 8£
~Z$ 1..£
"U 9£
CZ $ ~£
Zl:$ ,,£
ll: $ ££
~$ Z£
.-IL$ L£
:il$ K
01$ ~
::11$ 81.
8L$ .lZ
VI$ 9Z
6l$ SOl!
81$ 9Z
ll$ £l!
91$ Zl!
111$ Ll!
9L$ ~
"$ 61
C:I$ 81
11$ LL
lit $ 9l
d$ "
U$ '"
a •• £1
::1'$ Zt
81$ II
't$ "1
.$ 6
1'$ 8
lt$ I..
91. 9
§it$ ~
•• $ ..
'GIS [
z.~ l!
ItS L
""$ , II ~ Ie ... ('II • ! N II • CI ... N • CD N • CD CD ... N i CD
N N • .., CD '" C .,. ... .... • .... ~ N It) f CD
C!I ..., ... It) ,.. GI) C!I N .., ... ~ .... GI) • N N It) CD Ii
iii GO CD CD GI) GI) CD C!I ... .,. .,. .,. ., .,. GI Ii .,. GO II) II) GI) ID GI ii
"I J II 3 • II • ... ID .,. ID .,. ., ID • $ • $ II • • •
II ID • CD N"" e • c N C N e II') 0 If) Q It) 0
~ • CD N N If') .., • II ('II N N ..., .., • II If) 0 N N .., '"
N Ai N N N N N N N N N N N N N N N N.. N N N N
"<h ~ 0- ..". w» ..". "<h -e» ..". <I) ..". -a» <I) 0(1). - <I) 0(1). .(/). <n- ..". <I) v» .. ..".
47 Pele eXemp)07 ~ rossrvel observar qUE Endere;os consecutivos na memciria nio representam diretamente posi;5es consecutivas na tela de v(deo. A rela;io entre 0 endere;e na memdria e a posi;io seri esclarecida adiante7 e estJ relacionada no Apfndice

Para ativar um ponto ~ necessJrie encontrar inicialmente 0 endere;e da posi;io7 a 1 inha dE pontes que cont~m a PDsi;io deseJada E finalmente 0 ponto que 5e quer at ivar.

VII.3.3 Forma~~o de figuras em alta resolu~~o

Atrav~s dos dois Exemp10s seguintes serJ pessrve1 entender a forma~io de figuras em alta rEsolu~~o. Os m&tedes aqui descritos ut il izario como forma de acesso ~ tela de AR atrav&s de comandos POKE. Existem7 ainda7 eutras formas de acesso ao modo de AR que estio descritos no Caprtulo X do Manual de Opera;~o do TK~~000 "

EXEMPLO ::

Supondo que desejemo5 escrEver na tela 0 vig~simo pente da esquerda para a direita7 na d~cima 1 inha de pontos.

COLUNA

1 234 557

8 9 10 11 12 13 14 15 16 17 18 19 20 21

CX1 I···

BYTE

2

3



¢ ¢ 1 ¢ ¢ ¢ ¢ ¢

+

$ 2 ¢ '" 3 2

F i !iJl.ln':l. J. 4

A dlcima 1 inha de pontes do vrdeo estJ na segunda 1 inha d e: p 0 n t 0 s d a S E' gun d ali n had Po n c: a i x a s t/ ( cad a 1 i n had e c c' i i·~ <.-\ 5 cont~m 8 linhas de pontos)y e desde que cada caixa pode apresentar 7 (e nlo 8) pontos per 1 inha. 0 vig~simo ponto Esti na terc£IFR celuna, como me~tra a figl.1ra 7.4. Uma vez local izado 0 ponto. J necess~rio adicionar tr@s ndmeFoi para obter seu endere~D: 0 endere~D da I inha. coluna. e a posi~io do byte no interior da c a i xa ,

Endere;o da 1 inha:

Endere;o da coll.1na= Endere,o da Posi;io

,.) c ..

1j~:.~080 ':b z $ 400

l024

<t~346

Calculado 0 endere;oy

agora seri necess~rio saber que

4H

valor inserir nesta posi~iou

Observando bytes da mem6ria de 20 ~ 0 sexto ponto a forma~io do ponto na

fissimT a aplicar 0 seguinte programa:

a figura 7.4t notamos os tr~s prirneiros vfdeo cada urn contendo 7 bits. 0 bit ndmero partir da esquerda do byte. Lembrando que a tela ~ inversa a posi~io do bit no byte. solu,io final para 0 ~xempl0 aClma seri

> 10 HGR

)~~0 POKE 9a46 .. :3;_:.~

1

l

Formar a figura abaixo.

Monstrinho

A id~ia inicial seri sempre desenhar a figura em- papel quadriculado (quando em baixa resolu~io) au em papel milimetrado (quando'em alta resolu~io). Este proeedimento permite esbo~ar a figura facil itanto 0 manuseio das informa~5es. A figura apresentada aeimar no eaSOr J. veio dividida em quadrados que .. na tela da eomputador .. serio considerados como pontos.

o primeiro passe ~ calcular e valor de cada byte compando a monstrinho. A tabela 7.4 apresenta a padr~o dos pontos .. a forma~io do padrio dos bits e as valores he~adecimais e decimais.

49

Padrao de Padrao de Valor Valor
pontos BIT He xa d e c i ma I Decimal
---x--- 0000 1000 $08 0B
--XXXXX- . 0011. l1l0 'fi3D 62
XXXXXXX 0111 1111 ,$7F 127
x---x--x 0100 1001 $49 73
-XX-XX- 0011 0110 $36 5'*
-··x----x-· 0010 00t0 $22 34
-x-----x-- 0010 0010 $'")~' 34
e:c:
.. -- x-x--- 000t 0100 $t4 20
Ta~· ..
7M4 o valor zero acrescentado a esquerda de cada byte (no padrao de bit) est' para suprir 0 aitavo bit. 0 c~lcula dos valores nao fai difrcil, agora s6 faltar~ calcular as endere~os.

Note que a figura possui a largura m'xima de 7 bits. Isto permitiu, como vimos, que a figura passa ser representada por apenas 7 colunas de bits. Cas6 a figura Dcupasse mais do que 7 bits de lar9ura total, haveria maior quantidade de bytes a serem inseridos, como v€remos s€9uir.

O's. end erec o s de I inha e coluna d€-~pendem, n e s t e e:·~emplo, de qual caixa seri usada para plotar a monstrinho, mas a endere~o para a posi~io na caixa est~ fixado pela posi~io de linha na ~igura. 0 endere~o de posi~io da 1inha 1 i 0 ($0)7 para a linha 2 ~ 1024 ($400), para a Iinha 3 i 2048 ($800), assim por diante como mostra 0 mapa de alta resolu~io (figura 7.2). 0 programa a seguir mostra as vantagens desta situa~io e plata um monstrinho em qualqu~r posi~io da tela.

}to REM INICIALIZACAO )20 DIM RA(20)

)30 FOR I = 1 TO 20 : READ RA(I) : NEXT I

)40 DATA 8192, 8320, 8448, 8576, 8704, 8832, 8960, 9088, 8232, 8360

)50 DATA 8488, 3616, 8744, 8872, 9000, 9128, 8272,

8400, 8528, 8656

>60 REM ENTRADA DA LINHA E DA COL UNA )70 HGR : HOME : VTAB (24)

>80 INPUT "NUME~O DE LINHA? (1-20) ";L )90 IF L(1 OR L)20 THEN 80

)100 INPUT "NUMERO D~ COlUNA? (1-40) ";C )110 IF C(1 OR C)40 THEN 100

)120 BA = RA(L) + C - 1

)130 POKE BA , 8

)140 POKE 9A + 1024, 62 )150 POKE BA + 2048, 127 )160 POKE BA + 3072, 73 )170 POKE BA + 4096, 54 )180 POKE BA + 5120, 34 )190 POKE BA + 6144, 34 }200 POKE BA + 7168, 20

)210 INPUT "VOCE QUER REPETIR ? (9 OU N)";S$'

50

>220 IF S~ (> "N" THEN 80 > ~~30 TEXT = HOME

As 1 inhas 20 a 60 dimensionam e inicializam uma irea contendo os endere~os das 20 1lnhas. A 1 inha 70 acerta 0 modo gr~fico de alta resolu~io com 0 cursor no fim da janela de texto. As linhas 80 ati i10 aceitam os valeres de entradas de linha e coluna verificando a validade dos mesmos. A 1 inha 120 calcula os endere,os de base atrav~s da soma dos endere;os de 1 inha da caixa RA(R) com 0 endere~o de coluna (que ~ igual ao ndmero de coluna lenos 1). Te nd o s oma d o o s en d ere c o s rJ<~~ "1 i n h a .... ~~ d e col una d a calxa, falta somente somar 0 endere(;:o da posi;io na caixa para cada byte do mon s t rLn h o , No final 0 en d erec o (-.~ c al c ul a d o e C) prdprio valor ~ inserido na mem6ria nas I inhas 130 at~ 190. As linhas 200 e 210 dio chance de repet ir 0 desenho e a 1 inha 220 apaga a tela de alta resolu~io. A velocidade do programa poderi ier aums .. en t: ad ,,\ SE-~ os val ore s , n as 1 in 111:\ 5 i.]0 a t: ~~ i. 90 j c( ,"'-"CW E"~1Il

Inseridos no programa diretamente atrav~s dos comandos POKErs (sem t e r qu~:: p("::rder' t emp o c al c ul a n d o qualql.l(~lt. c o i s a ) ,

Exemp 1 C) mont ar

Atravis de urn programa simples a seguinte figura=

de

BASIC.

vamo s

r:) B C
Linha 0 xx XXXXXXX XXXX
Linha 1- X
Linha '") XXX XXXXXX X
e:
Linha a X XXXXX XXXX XX
Linha 4 XXX XXX XXXX XX
linha s XX XXXX XX
Linha f.) X XXXX XX
Linha 7 XXXXXX X
Linha 8 X
Linha 9 X X
Li nha 10 XXXXXXX XX
Fig 7.7 i

'",

1:-

A prim~ira tarefa ~ de digitalizar 0 he1 icciptero. Note que hi dezoito pontos de largura por onze de altura~ sendo assim, c" me1hCH" seF"i:( dividir 0 h e l i c dp t ero em s.e i a c a l xa s par'a a proj~-:;"·;10 na tela. A figura acima ji esti dividida em eeis quadrantes. As f i 91.11'" as ab a i xo mo s t F(:\1'Il a dig ita 1 i za!;ao dE~ c ad a qu a dran t ~~ separadamE.'nt f;,' ..

Paclr'ao Padrao Va 1 or Va 1 or:
de pontos de bits He xad e c i ma 1 Decimal
---~---xx 0110 0000 ~&b0 '16
-~- ........ --- 0000 0000 $00 0
Xxx·-~~--- 0000 01:1.:1. $07 7.
X--XXXXX 0i1t 1101 $7D rzs
XXX--XXX 0111 0111 ~~77 :1. iii
_ .. - -. _., _. X X 01. re 0000 $60 9b
~- -- -- ,.- .-. -- X 01.00 0000 $40 64
.................... -~--- 0000 0000 $00 0
Tabela 7.5-- G!l.H:\ d r' ant e Al
Padr'ao Pc\drao Valcw ValDr'
de p on t o s d f:~ bit s H ~~ }.~ a d t:~ c: i m a 1 De c; i ma 1
XXXXXXX 01:1.1 111i $7F 1~?7
••• _· ... M .". X ,. ...... 0001 0000 $10 16
--XXXXXX 0111 1.110 CJ;7E t ~! f.)
xxxx· .. ··-- 0000 j. 1 j. 1 $0F 15
XXXX---- .. 0000 11j.i $0F i I::'
'Io~J
XXXX .... _-_·· 0000 11 j.1 ~,0F j. 5
xxxx --_ .. _. 0000 1111 <.60F s s
_·XXXXXX e j. i 1. i:U.0 <.b7E i ~!b
Tab el a 7 .. 6···· (il.lac:ir·ant: E' B j. Pad ". aD Padrao Va 1 or' V a 1 ()I"
d 1;.' pont: (;)5 d f~' bit s He xa d e c i ma 1 De c i mC":\ 1
XXXX"-'-'-- 0000 1111 $0F il::·
,.J
-~~ -~ - ........... _ " .. -- 0000 0000 $00 0
X·_ -_.- -_ .. _ .. 0000 0001 $01 :1.
X X "- -" -" M •• - •• 0000 0011 $03 a
"-XX .. ··_-_· 0000 0110 $06 6
"" X X -- "" -" ... 0000 0110 $06 6
xx-- .. ·----- 0000 0011 $0a ~:~
X--_·· .... ---- 0000 000j. $01 i
Tabe]a 7.7-- Guadr'ant E.' C:!.
Padrao Padro ao Va lor' Valcw
de p on t o s de bit s He xad e c i ma 1 Dec: i ma 1
-----..-- 0000 0000 $00 0
_~. __ ._._n ..... _ 0000 0000 $00 0
-------_ .. 0000 0000 $00 0 Tabela 7.8- Quadrante A2

Padrao Padrio Valor Valor
de pontos de bits Hexadecimal Decimal
----x-- 0001 0000 $10 16
----X-- 0001 0000 $10 16
XXXXXXX 0111 1111 $7F 127
Tabela 7.9- Quadrante B~
~
Padrio Padrao Valor Valor
de pontos de bits Hexadecimal Decimal
------- 0000 0000 $00 0
-X----- 0000 0010 $02 ~
~
xx----- 0000 0011 $03 3 Tabela 7.10- Quadrante C2

A figura seri projetada no canto superior esquerdo da tela. Para facilitar 0 encontro dos endere~os de cada linha da tElaT abaixo ~ apresentado uma parte da tabela localizada no Aptndice C no qual cada linha j~ vern relacionada com sua respect iva falxa de memdria=

LINHA NUMERO

FAIXA DE ENDERECOS

5

8192-8231 9216-9255 10240-10279 11264-11303 12288-12327 13312-13351 14336-14375 15360-15399

Primeira linha de caixas

o i

3 4

6 7

Segunda linha de caixas

8 9 j.0 11 j.2 13 j.J\

15

8320-8359 9344-9383 10368-10407 11392-11431 12416-12455 13440-13479 14464-14503 15488-15527

Tabela 7.11

A se9uir~ apresentamos 9 programa.

)10 REM PROGRAMA HELICOPTERO }20 HGR

}25 REM . )30 REM QUADRANTE Ai

)40 POKE 8192796: POKE 921670 : POKE 10240,7 :

POKE 11264,125 : POKE 12288~119 : POKE 13312,96 : POKE 14336,64 : POKE 15360F0

}45 REM

)50 REM QUAQRANTE A2

)60 POKE 8320,0 : POKE 9344,0 : POKE 10368,0 )65 REM

)70 REM QUADRANTE 61

}80 POKE 8193.127: POKE 9217,16 : POKE 10241.126 : POKE 11265.15 : POKE 12289.15 = POKE 13313,15 : POKE 14337,15 : POKE 15361.126

}85 REM

)90 REM GUAORANTE 82

)100 POKE 8321y16 : POKE 9345,16 : POKE 10369.127 >110 REM

>120 REM GUADRANTE Cl

>130 POKE 8194.15 : POKE 9218.0 : POKE 10242.1 :

POKE 11266,8: POKE 12290,6 : POKE 13314.6 = POKE 14338,3 : POKE 15362.1

>140 REM

)150 REM QUADRANTE C2

>160 POKE 8322.0 : POKE 9346.2 : POKE 10370.3 >180 END

VII.3.4 Utilizando Cores em Grificos de Alta Resolu~io

Boas cores slo geralmente uma necessidade para a apresenta,io de desenhos ou 9r~ficos em alta resolu,io de qual idade. As cores permitem distinguir elementos diferentes em uma mesma figur8 ou gr'fico dando assim maim vida ~ tela. p tornando 0 resultado de sarda muito mais atraente aDs olhos do observador. 0 TK-2000 pcssui em seu hardware a possibil idade de produzir 6 cores na sarda, inclu'indo 0 preto e 0 branco; sendo que, atrav~s de uma t~cnica chamada dltheEin9. este n~mero pode ser aumentado

.

cDnsider8velmente.

Para obler cores numa tela de alta resolu,io l muito simples~ quase tio simples vista que sempre que um ponto & plotado, ele sempre aparEce numa cor. 0 seQredo i desenvolvEr a cor certa no lugar certo.

Neste ponto os conceitos de usc do mapa de memdria de alta resolu;lo j~ devem eslar bern conhecidos. Inclusive 0 modo de transportar 0 padrio de pontos para 0 padrio de bits podendo ainda traduzr-los para valores hexadecimais e decimais sucessivamente. Finalmente 0 que resta para esta se~io J relacionar cores para estes pontos"

No item anterior. foi mencionado que 0 bit mais §ignificativo do byte niD era apresentada na tela aludindo inclusive ao fate dEste bit ter fun,io de controle de cor. Este bit l chamado de bit de cor do ~yte e ele i que dete~mina em qual grupc de cores seri apresentade os 7 bits restantes. Se 0 bit de cor t zero. os sete bits serio apresentados em cores do grupo 1~ PRETO!? AZUL, CYAN. eu BRANCOi. Se 0 bit de cor for umy 0 bytE

ir' estar apresentado no grupo 2 de corES: PRET02, VERMELHO, VERDET ou BRANC02 (Existem duas ep~aes de preto e dUBS de branco, sendo que nio existe diferen;a nenhuma entre elas). Essas cores variario dependendo do TV au monitor usado. mas geralmente ~

54

possrvel ajustar a cor da tela de modo a projetar a cor desejada. Este assunto de bit de cor s€r~ novamente tocado adiante7 entretanto digite 0 programa abaixo e veja 0 resultado:

>10 HGR

)20 HCOLOR=3

}30 HPLOT 1.0 TO 17100

)40 GET R$ : REM PRODUZ UMA PAUSA }50 HCOLOR=4

)60 FOR I = 0 TO 100 )70 HPLOT 0.1

)80 NEXT I

De acordo com 0 Manual de Opera~io7 HCOLOR=3 i BRANC01; consequentemente. as linhas 10 at~ 30 devem plotar uma reta branca vertical a partir da coluna 1. Ao rodar 0 prograrna7 uma linha vertical azul sur9iri na tela. Isto ocorre porque esti sendo plotado somente um ponto em cada linha. e qualquer ponto isolado sempre resulta em uma cor. A linha 40 p~ra 0 programa at~ que qualquer tecla seja pressionada; a linha 50 define a cor como PRET02. pois se trata da cor preta procedente do grupo 2. As linhas 60. 70 e 80 imprimem uma linha vertical de pontos pretos na coluna 0. Vista que a caluna 0 ji era ocupada por pontos pretos. seria de se esperar que nada fosse alterado. mas 0 que ocorre ~ que a linha azul acaba sendo substiturda por uma linha vermelha apds qua1quer tecla ter sido digitada. A razio para a mudan~a de cor est~ ligado ao bit de cor. Os pontos na coluna 0 e coluna 1 sio cantrolados pelo mesmo byte de rnemdria da alta resolu~~o. e plotando BRANCOl ativou (passou para 1) 0 bit i de cad a byte deixando 0 resta do byte nulo. incluindo 0 bit de cor. Plotando na coluna 0 0 PRET02 desativou os bits da coluna 0. qUE j~ estavam em 0 de qualquer maneira. mas tamb~m ativou 0 bit de cor de cada byte desde que PRET02 esti no grupo 2 de cores. Quando 0 bit de cor de cada byte ~assou para 1, prOVOCQU urna mudan~a do byte inteiro para uma cor do grupo 2 de cores; assim. o azul na coluna 1, que era uma cor do grupo i, passou para a correspondente do grupo 2 de COFES, vermelha. 5e a coluna 0 tivesse side impressa em PRETOi aD invis de PRET02, 0 bit de cor de cada byte teria permanecido em zero e nenhuma altera~io de cor teria ocorridou

Digite erode 0 programa abaixo que iri ilustrar rnals uma caracterrstica das cores de alta resolu~io.

)10 HGR
)20 HCOLOR = 2
)30 FOR I = 1 TO 100
)40 HPLOT I.1
)50 NEXT I
}60 REM
}70 REM APAGANDO A LINHA
)80 HCOLOR = 0
}90 FOR I = 2 TO 100 STEP 2
}100 HPLOT 1,1
)110 NEXT I
55 Um exame da Iistagem acima iri conduzir l idiia do programa plotar 100 pontos horizontais de cor verde7 e entio a metade des pontos seriam apagados. Ne entantor ao radar 0 programa7 nota-se que a Iinha foi construfda e depois apagada compietamente. Como poderia isto ter ocorrido quando foi plotando 100 pontos e apagados somente 50? Para observar melhor este processo poderia-se incluir a Iinha:

)35 FOR J = 1 TO 500 : NEXT J : PRINT CHRi (7)

que ind~car~ os pontos como se eles estivem sendo impressos. Assim7 se verificari que apenas 50 pontos foram impressos primeiro lugar. 0 verde est~ somente disponrvel em colunas pares (072747 ••• )7 e quando 0 programa tenta plotar urn ponto verde ern uma coluna rmpar nio ter~ efeito nenhum. 0 mesmo ocorre com a cor cyan. No .caso das cores azul e vermelho7 sci ser~o dispon{veis em colunas rmparesu

Para resumir 0 que foi visto no parigrafo acirna7 se urn ponto ~ impressa numa co]una par7 este dever~ ser eu verde ou cyan7 se urn ponto est' em uma coluna rmpar7 dever' ser au azul ou vermelha. 0 bit de cor seleciona qual das cores disponrveis cada ponto ir~ projetar. Be 0 bit de cor fOF 0 (grupo 1)y n05 pontos pares poderio ser projetados apenas 0 cyan e no caso das colunas impares somente apareceri 0 azul; se 0 bit de cor for 1 (grupo 2) nas colunas pares aparecer~ a cor verde7 e nas colunas (mpares apareceF~ a cor vermelha. Nio esquecendo que sempre a primeira coluna a esquerda de c~da linha i contada como 07 depois i ... at~ 279.

o preto i sempre plotado quando urn bit passa para 0 enquanto que 0 branco ocorre sempre que deis bits adjacentes forem i. Fa~a a seguinte experi~ncia utilizando 0 comando POKE:

)HGR

}POKE 819271 }POKE 819272 )POKE 8i92r3

No topo do lado esquerdo da tela apareceri no primeiro casor urn ponto de cor cyanr no segundo7 um ponto azul e finalmente urn ponto branco. A tabela abaixo Mostra como os valores nos comandos POKE7s foram interpretados na tela~

VALOR

PADRAO DE BITS

COLUNA(S)

COR GERADA

i

0000 0001 0000 0010 0000 0011

col 0 col 1

col 0 e col i

cyan azul branco

3

Quando os pontos at jvados (passam para 1) individualmenter eles tendem a revelar suas respectivas coresp . Mas quando dois pontos vizinhos est50 em 1 (formando a cor branca)7 qua1quer Dutro bit vizinho que passar para i iri projetar a cor branca.

56

Plotando qualquer ponto sabre 01.1 sob outro n~o produzira efeite algum sabre a cor.

Figura 7.8

Finalmenter observe a resolu~~o deste ~ltimo exemplo:

ABC D

x X X X X X X

X X X

X X X X

X X X X

X X X X X X X X X X

X X X X X X X X X X X X

X X X X X X X X X X X X X X X X X X X X X

X X X X X X X X X X X X X X X X

X X X X X X X X X X X X X X X X X X

X X X X

X X X X

XX XX XX XX

x XX X XX XX

x X X X X X X X X X X X X X

X X X X X X X X X X X X X X X X X X X X X X X X X X X

X X X X X

X X X X

X X X X

X X X

X X X

X X X X X X X X X X X X X X X X X

X X X X X X

XX XX XX XX

XX XX XX XX XX XX XX XX XX XX XX XX xx XX XX

X X X X

:i

X X

X X X X X X X X X X X X X

X

4

A figura acima possuiri uma asa azul E verde e a outra e cyan sendo que 0 corpo e as antenas serio brancas.

apenas no centro do corpo e nas antenas ~ encontrado adjacentes iguais a urn.

o primeiro passe para a constru~~o da figura acima seri de dividir adequadamente a figura num ndmero de pontos qUE permita urn correto posicionamento das cores. Sendo que a seguir deveri ser executado 0 levantamerito dos bits correspondentes.

ver me l h a Not E' que do i s bit s

Bet or A1 Padrao de pontes

-x--X-----

--X-X-----

-X-X--X-

--X-X-X--

-X-X-X-

--X-X-X--

-X-X--X--

-X-X-X-

Padrao de bit s

0000 1010 0000 1010 0010 1010 0010 1010 0010 1010 0010 1010 0010 1010 0010 1010

Valor

He xad e c i ma 1

57

Va lorDe c i rna 1

$0A $0A $2A $2A $2A $2A $2A $2A

10 10 4~~ 42 4;_~

42 4~'! 42

Set or' Bt
Padrao Padrao Valor Va lor'
d e pontos de bits He xa d e c i ma I Decimal
---XX---- 1000 1100 ':Ii8C 140
····-XX----- 1000 l1.00 $c8C 140
··-----XX·- 1011 0000 $80 176
····------XX-·· 10U. 0000 $B0 176
X ---- .... - .. --.- 1000 0001 $81 i2(_;>
X ---.- .. ------ 1.000 0001 $81 129
X-X-----X 1100 0101 $C5 197
x-- X - ... --- X 1:1.00 0101 $C5 197 Set or' C1.
Pc\drao Padrao Valor Valor
de pontos d E-~ bit s Hex ad E.'C i ma 1 [)r::~c: i rna I
----XX-··-·· 0001 1000 $18 ~24
- .. - .. -- X X - .. -- 0001- 1.000 $l8 24
"- X X .. - .. - -- -- 0000 0110 $06 6
_ .. X X _ .. - .. -- - .. 0000 011.0 $06 '~i
.-- -- .-. - .. -- X 0100 0000 $40 64
····-----·-··--x 0100 0000 $40 64
x---··-x·-·x 0101 0001 $51 fH
X --- .. -- X···· X 01.01 0001. 'L5 :1. 8:1. S(d or' Dt
Padr~\o Padrao Valor Va lor'
d €.~ pontos de bits HeNadecimal D€:.'c: i ma 1
"_--"-X--X"- 1010 1000 ':liAS :l6B
.... _ .... - X···· X-- 1010 1000 'LA8 t68
-- X -- X-X-- 1010 1010 $AA 170
_ .. X _ .. X -. X - .. 10t0 1.010 ,];AA 170
--X--X--X- 1010 1010 $AA 170
-"X--X--X-" 1.010 1.0i.0 1jAA 170
"-X"-X"-X"- i {~.~.(:I 1010 $AA 170
····X-··X--X-· 1010 1010 $I'"'!tA 170 ~;€ t or' A;;.~ Pc\dr' ~\O

de pontos

-··x--x--x-····x-x--X-----X-X-

_ .. _-- .. X -- X--

-------X--

-··----x-

Padrao Valor Valor
de bits He xa d e c i ma 1 Decimal
0010 10Ul $2A 4;;.~
0010 1010 $2A 42
0010 1000 $28 40
0010 1000 $28 40
0010 0000 $20 3")
1: ..
0010 0000 $20 32
0000 0000 $00 0
0000 0000 $00 0
58 S<-2i:OII" B ~:.~
Pi:\clr'~;o P a dr ~\Cl Va 1 or' J..,la lor'
d ~:.: ponto!:; d e b I t <;. He xa d €-:c: imal [)€.: c: i mal
.. }
X····X····X····X i10t 0U?:L %D~5 ~~i3
X····;x:····X····X 1:1.01 01.01. %D~5 ~2i 3
X····X .... X .... X 1101 01.01 %J)!~; ? :1~)
X .... X .. ··)(· .. ·X j. j_ 0 j 01.01 ~i [) s ~2 j_ J
x .... X· .. · X .. ·· x ti0:i. 0101 %D~5 ;;~:1 3
X .... X .. ··::< .... X U.0t 01.01. 1;05 . ~!.:1. 3
X· .. ·X .... X- .. X 110J 0101 ~& [) s ~~ 1.:3
X .... X .... X- .. X i.HH 0t0l %D~S ~?l J ~:) (.:.: t o I" [:~.~
Pad 1" ~XO Pi::\dl"~~D t.)a"l cw I . .) i':\ lor'
de pontos ell':': b 1 t s HE' ;.( a d E C 1 m<.-\ 1 Df~C: i mi':~l
x .. ·· X .... X· .. · x 0101 (1 :1 (1 :1. ~~ !:,!:) t:} !::.i
>< .... >< .... X .. ··X 0101. ~1t'3:t q;r.'",'" as
.:.:.1.:)
X .... X .. -X .. ··X 010:1 01.01 %:'.:j::'='; D!:.:i
>< .... X .... X···X eie i ~? J ij:l. ~I; ~:; ~:5 B~:.:j
)( ... , )( .. ,- X ,,-- X 0j.01 0101 %:::;~.:j B::.:;
X .... X· .. ·X .. ··:x: o j. 01. 0J01 g'r.:""' H~5
)...J ''')
X .... X·· .. X .... X 0:i01 0101 sss O~.:.;
x-- X _ .. X .... X (H0f 01. \1 t sss ss
Set Dr' P'::'
... l.~.
Pi:\dr·~\D P a d 1" ~l.o Va 101" Va 1 QI"
d e ponto!:; de b i t: ... He x a d ~;C: i mal [) ~:.; c: i 1"1\<.-\ 1
. ,
.. ··x·· .. x .... x···· :1.010 j_0j.0 %(.:lA 170
.... X····X····X···· 1. o H') 10H~ ':t;fiA 1/'0
····X· .. ·X ........ · .. · H')00 1010 ~HlA :t3B
·· .. X-··X .. ··· .. ··· .. 10~~0 i IiH0 q;Ofi 1.30
····x·········· .. ····· .. · :1000 00:i0 ~B;'~ 13;.:.~
····X· .. ······· ........ ·· 1000 00t0 qiO;~2 t 3~?
•• ~ •••••••••••• ,,_ .... on. 0000 0000 ~00 0
.. " .................... ~ ... i;?000 000() q;00 0
~3et: 01" i:~ ::~
Pacll'·~\o Pc\dr'~\o Val o I" t.J<.-\ "1 or'
dE pont O~:; dE~ b i t c' He x a d ec: i mal [) I::~ c: i mal
.. }
· .. · .... ···· ...... ··x···· 0010- 0000 %~!'0 J;.:.~
·· .. _ ...... · .. ···-x .... 001.0 0000 9;~~0 ~J~.~
.. ···· .. ····X· .. ·X··- 00:1.0 1000 %;'{B 40-
.. ······ .. ··X·· .. X···· 00t@ 1.000 q;~:~ B 40
...... _ .... X .... X .. - 0010 :1000 ~&~~B 40
·· .......... X .... X .... 0010 j.000 q;~~B 40-
.. ··· .. · .. -X .. -X .... 001.0 :1.000 9j~~8 40
.... _·· .... X- .. X .... 0010 t000 q;~!.B 40 Sf;·~t or' BJ
P a dr ~\() Padr'l~o Va 1 01" Va 1 or
de pont: C)!:> d e b i t s He xa d e c i ma 1 DEC imal
X .... X .... X .... X 1101 0101 ~&D~5 ;:~13
X· .. X .... X .... X l10t 0t0t sos ~~ 13
X .... X .. ··X .... X iHH 0101 ~&D5 ~H3
x .. ·X .... X .... X 1:1.0:1 01.01 1;D~; ;~ 1. :i
X .... X .... X .... X 1101 0101 ~& [)~j ~:~ :1 ~:~
X .... X .... X .... X U.0t 01.01. sos ~.~ 1 ~l
X .... X ............ X 1100 0:l01 $C!:) 197
:x: .... X ........ - ... X 1100 0t0t 1iC~j 197
~3 (\.: t o r (' .. , ...
_ . .,,:.. ..
P ad I" ~{() Pi':\dl··~\() ~)a 101" Ve\ 101"
de p on t o s d e bi t ~) H E~>~ad 1::.:' c imal Dec: i Irti':\ 1
X .... X .... X .... X 0HH (;101 $ ~.)!;5 B!::i
X- .. ·X .... X .... X 0t0t 0101 ~I' , ... r." O~5
l':')~1
X .... X .... X .... X 0101 0101 %~5!5 B~:_:_;
x .... x .... X .... X 0t0:1. 0101- 1·r.","· ss
l':') ;:,
x .... x .... x .... x 0101 0101 ~6 s ~5 B!:.:j
X·· .. X .... X- .. ·X 'H0t 0101 9i~:;:; as
x ............ x .... x ~H01 0001 $51 fit
x ............ X"-·X @t0t 000j_ 1i ~.'j 1. 01
SEt: 01" Da
Pad y' ~~.o P a dr ~\o Vi':' 1 CIY' Va 1 C)J"
de pont:os d e b its H 1;;:: ){ C:\ dec: i ma 1 Dec i ma 1
.... x ............ · .. · .... 1000 0010 in;;? 1~30
.... x .................... 1000 0010 1;B~? j_J0
.... X .... X ............ 1000 :1.010 ~&BA 13B
· .. ·x .... x ............ 1000 1. 01. 0 $Bf~i 18B
.... X .... X ........ · .. · :1.000 1010 $B('~ 130
· .. ·X .... X ...... _ .... 1.000 j.0:i.0 1;f.h~ 130
.... x .... X ............ :i000 j,010 ~&B(.i :i3B
.. ··X .. ·X ............ l000 101.0 1;BI~ ras s(~~ t 01" rV~
P i:\d ". ~i() P a d I" iXo t.)a 1 01" Valor
de pont:os de b i ts He :·~a d t:~ c: i ma '1 [)E'C imal
.... - .. ···· .... ·· .. X· .. · 00:1.0 0000 ~L~~0 ::J ;.:~
.................... X .... 001.0 0000 ~;;;~0 ~3~~
.. _ .... _ .............. ~.n 0000 0000 ~b00 0
.... _ ... -- _. _ .. -- .... 0000 0000 ~;00 0
.............. on ..... 4'0' •••• 0000 0000 $00 0
........ _ ...... _u .• _ .... 0000 0000 %00 0
-- ........................ 0000 0000 ~r,00 0
............... H .U, ......... 0000 0000 $00 0 60

Setor B4
Paddio P C\ d I" h'\ o l)a"1or' Valc)f"
d e pontos d e bit s He xa d e c imal DE: c: i m!:\ '1
X ._ "" " .. w •• " ••• - i000 000i $Bi l:.~(?
X _w ___ .. w .. _w" .. 1.000 0001- %fH i. ~!9
....... - .. _ ...... ~ .......... 0000 €10€10 $00 0
•••• _ .. _ ....... _ ...... _40 0000 €1000 9;00 ~)
....... + ••••• ~ ........ n_ .... , 0000 0000 %00 0
..................... - .... 0000 €1€100 9;00 €I
.. - .. - -- ........ _ ,._ .. - €100€1 €100€1 $00 0
•• + ..... "" ................ €10€10 €1000 q;00 €I Bf::t or: e4 Pad I" g\O

elf? pont D~:;

P a d r: h'\(J dE'; bits

Va'1ol" HE::<i':\d~:·:·c: i mal

IJi:! '1 01" DE:C i 111,:\ 1

" w )(

· .. · X

(1 j_ 0€1 €10€10 01.00 €1000 00€10 0000 €1000 0~)00 0000 0000 €1000 €1000 0000 00€10 €10€10 0~1€1€1

%40 -:1;40 $00 q;00 9;00 q;00 $~10 Q,0(,

i. J (,;. 1. 3v)

o

€I o €I o Q)

Bet: or 04 Pe\dr·g\o

de pont O!:,

P "i eli" ~X o de bits

Va 1 01"

He x a d EC I rna '1

l)a'101" [)f..:c: I Ina 1

_ .. X .

.... X · .. ·· .. ·

1000 €1010 t000 001.\; €1€100 €1000 €10€10 0'~00 €1000 0000 €1€100 €1000 €1000 €1000 0000 €1000

~B~:2 qiB~.~ $00 g;00 ~b00 q;0(~ $00 9;00

i::i0 Ul0 o o o 13 o e

Abaixo i apresentado um programa BASIC que rept"oduzir~ o desenho da borbolEta~

>t REM PROGRAMA BORBOLETA >10 HGR : HOME

)20 REM

>:30 REM SETOR fH

)40 DATA 10.10.42.42,42.42.42.42 »se REM SETOR Bi

)60 DATA t40,t40.176.t76.t297129.197,197 )70 REM SET OR C1.

)80 DATA 24,24r6,6,64,64,81y81 >90 REM SETOR D1.

>100 DATA 168.168.170,170,170,170,170,170 >110 REM SETOR A2

>120 DATA 42,42,40.40,32,32.070 )130 REM SETOR 82

>140 DATA 213,213,213,2137213,213,2i3r213 >150 REM SETOR C2

>160 DATA 85.85,85,85,85,85,85,85 >170 REM SETOR D2

>i80 DATA 170,170,138,138.132.132,0.0 )190 REM SETOR A3

)200 DATA 32.32.40.40,40,40,40.40 )210 REM SETOR 83

)220 DATA 213,213,213.213,213,213,197,197 )230 .REM SETOR C3

)240 DATA 85,85.85.85,85,85,81,81 )~?'50 REM SETOR D::~

)260 DATA 130,130,138,138.138.138,138.138 )270 REM SETOR A4

>280 DATA 32,32.0,0.0,0,070 )290 REM SETOR B4

>300 DATA 1297129.0,0.0.0.0.0 )310 REM SETOR C4

>320 DATA 130,130,07070,0,0.0 )330 REM SETOR D4

)340 DATA 130,130,0,0,0.0,0.0 >350 FOR J ~ 0 TO 3

)360 FOR I = 0 TO 3

>370 FOR K = 0 TO 7

>380 T = 8488 + K * 1024 + I + J * 128 )390 READ B

)400 POKE T,B

)410 NEXT K,I,J

>4~.~0 END

VII.3.5 Conclusao

Esta se~~o teri~ aparentemente, a Finalidade de contrariar tudo 0 que ji foi vista ati agora. Foi mencionado (repetitivamente) que €xistia 280 posi~5es na alta resolu,~oy mas agora tentaremos explicar quer na realidader existem apenas 40 p05i~5esr e tamb~m existem 560 p05i~5es~ e algumas vezes 140. 0 propdsito desta mudan~a ~ proporcionar outras modelos conceituaisr Mats claros e mais simples, para criar no modo de alta resolu,io. Cada modele ~ baseado num diferente ndmero de posl,oes na telar como seri explicada a seguir.

Porqu€ 40 colunas ?

A €xplica,io do modele de 40 posi,aes.~ a mais simples desde que j~ se tenha trabalhado com eler talvez inconscientementeo Para processar qualquer ponto, ~ necess~rio inevitavelmente tratar com 0 byte que cont~m cada pontar e a largura da tela d constitufda par apenas 40 bytes.

No item anteriary quando foi desenvolvida e impressa uma figura em alta resolu,io, tode 0 trabalho foi real izado em incrementos de um byte e impressa com a considera~io da €xist@ncia de apenas 40 ucaixasu na largura da tela onde ~oi desenhada a figura.

Porque 280 colunas ?

o modelo de 280 posi,5es ainda i vilido. Cada um dos 40 bytes projetam 7 pontosr produzindo 280 pontcs na tela. 0 conceito de 280 pontos i dtil quando se est~ desenhando figurasy mas quando se est~ iniciando a digitalizar os dadosr naturalmente se adotari 0 modelo de 40 calunas. Vide os exemp)os anteriores.

Porque 140 colunas ?

Quando se trabalha com cores em alta resolu~ior a maioria dos programadores considera a largura da tela como sendo de 140 colunas. Como Foi vistor para se plotar uma reta verder par exemplar era necess'rio que deix'ssemos uma coluna vazia entre dois pontosr 0 mesmo acontecia caso fosse necessaria imprimir um ponto brancoy era necess~rio que dois pontos adjacentes estivessem em 1. Assimy desde que a unidade de cada cor d de dois pontosr a tela inteira poderd ser considerada como que com 140 colunas.

AI~m dissoy quando uma determinada figura ~ plotada em diversas posi~5esr as cores mudar~o dependendo de onde elas foram impressas. Para que se possa manter as cores originaisy qualquer pon~o que estava originalmente numa coluna par dever~ ser plotada numa coluna parr a mesma id~a para as cores rmpares. Para efetuar entio qualquer movimento na figuray e1a dever~ se mO~Rr sempre ern mdltiplos de dois pontos por vez, por esta razaor h~ apenas 140 posi~oes possrveis atraves da tela.

63

Porque 560 colunas ?

Se bern que at~ agora sd SE falou numa resolu~io m~xima de 280 pontos~ €xistem norrnalmente 560 pontos dispon{veis na largura da tela de alta resolu~~o. Para provar a afirma~io acimaT digite as se9uintes instru~5es"

)HGR

A Tabela 7.11 mostr8 os enderE~os hexadecimais do prlmeiro byte de cada uma das 14 1 inhas da telaT 0 padr~o dE pontos € dE bits dE 14 valoFEs diferEntes que serio colocados nestas posi~5Esu

EnderEco Valor Padrao Padrao
HExadecimais Hexadecimal de bits de pontes
2000 01 0000 0001 X------
2400 81 1000 0001 x------
2800 02 0000 0010 -x-----
2C00 82 1000 0010 -x-----
3000 04 0000 0100 --x----
3400 84 i000 0100 --x----
3800 08 0000 1000 ---x---
3C00 88 1000 1000 ---x---
2080 10 0001 0000 ----x--
2480 90 1001 0000 ----x--
2880 20 0010 0000 -----X-
2C80 A0 1010 0000 -----x-
3080 40 0100 0000 ------x
3480 C0 1i00 0000 ------x Tabela 7.11

Insira agora os valores na memciria digitando:

@2000=0i @2400=81 @2800:02

@3480:C0

Observando 0 padrio de pontos7 Era dE se esper~r um r€sultado dE sete pares de pontosr com urn ponto de cada par Exatamente acima do Dutro.

No entantoy quando as val ores foram entrando na memdria7 0 que SE fOFmou foi uma linha diagonal; as pares de pontos n~o €stavam ernpilhados como espeFado7 ainda qUE 0 mesmo ponto tenha ficado igual a 1 em cada byte do paF. Este fen8meno baseiase no fata que 0 primeiro byte de cada par estava Burna cor do grupo 17 e 0 segundo byte estava numa COF do grupo 27 deteFminado pelo bit de cor no lado esqueFda do byte.

Urn byte da mErnciria dE vrdeo gEralrnente controla 14 pontos na tEla. e 05 duas fileiras de sete pontos estio nurn intervalo como mostra a Figura 9.4.

GRUPO 1

1

234

6

7

GRUPO 2

1

234

6

7

GRUPO 1 GRUPO 2

Tabela 7.12

Urn grupo de sete pontos pode ser projetado na tela com o bit de cor igual a i para projetar cor do grupo 1. E 0 outro~ sete s~o ~rojetados mudando-se 0 bit de cor para 0 grupo 2. Pur exemplo. m~dando a cor do grupu 2 na local iza~io ~2040, que ~ atualmente 1000 0001. para a cor equivalente do grupe 1. 0000 000i~ digitando:

Ir~ notar 0 ponto na linha 2 mover-5e I igeiramente para a esquerda ficando Exatamente abaixo do ponto da lillha i. Entio ao digitar~

~2400:8i

rEtornar~ 0 ponto ae SEU ponto original.

o fata ~ que hd realmente 560 pontos na tela de alta resolu~io embera somente metade dos pontes em qua1quer byte est~o disponrveis ao mesmo tempo. Os pontos com cores do grupo 2 est~o sempre ligeiramente a direita dos porltos com cores do grupo i € isto pode sei explorado para SE desenhar uma 1 inha mais floaF como foi feito no exemploy au para melhorar 0 contorno das figuras que se dEseja dEsenhar.

o rE5ultado de toda esta discuss~o t que hJ 560 pontes na tela de alta r€solu,io, 280 dos quais sio petencialmente projetiveis na tela. Hi 140 pares de pontos disponrveis quando 9Erando coresr e todos os dados para a 1 inha na tela deve encaixar-se em 40 bytes. A escolha do modelo seri condicionada aD t ipe dE figura que ser' gerada.

AUMEntando a caracidade de cores do TK-2000

De acordo com 0 Manual de Opera,io do TK-2000, Existem somente 6 cores disponrveis no modo de alta reso}u~50F incluindo o preto E 0 branco. ExistE. no entanto. a possibil idade dE S8 aumentar consideravelmente este ntlmero.

Acabamos de ver no item anterior qUE o!" pontos de alta

65

Fesolu,io SiD capaZES de produzir somente preto~ branco~ azul~ verdE7 vermelho e cyan; mas usando imagina~~o e criatividadeF sEr~ possrvel produzir Hart ificialmente" colora;5es extras atrav~s de um processo chamado UdithEring" (excita;io).

Rode 0 programa abaixo~

>10 TE = 200 : REM ATRASO )20 TA = 50 : REM TAMANHO )30 HGR

>40 FOR C1 = 1 TO 7 )50 FOR C2 = 1 TO 7

>60 FOR Y = 0 TO TA STEP 2 )70 HeOlOR C1

>80 HPlOT 0yY TO TA~Y )90 HeOlOR (2

>100 HPlOT 0.Y+i TO TA.Y+1 )110 NEXT Y

>120 FOR I = 1 TO TE : NEXT I )130 NEXT C2

>140 NEXT C1

)150 END

o rEsultado sEri um ret~ngul0 no canto sUPErior Esquerdo da tela que continuamente muda de cor. ~s vezes apresenta apenas sombras. ~s veZES aPFesenta uma das 6 cores b'sicas. r possrvel alteFar a velocidade das mudan~as variando a TE na linha 30 e alterar 0 tamanho do rel~ngul0 variando TA na 1 inha 40.

A id~ia principal do programa i pJotar pares de linhas horizontais em duas cores alternadas (el E (2), entia muda-SE uma ou as duas cores e inicia-se novamente. Durante os v'rios ciclos do programa acimar ~ possrvel ver as cores b~sicas (azul, verde, vermelho, cyan, branco e preto - mas tarublm algumas outras cores. As cores extras foram. entia. geradas pela mistur"a de duas cores distinlas gerando assim uma terceira.

Existe uma enorme quantidade de varia~5es que permitem produzir uma rica garna de cores.

Contudo. deve 5eF observado que. pode inadvertidamente SEr mudado urn ponto de um grupo de cores para Dutro ao se tentar imprimir cores de grupos de cores di~Erentes dentro de urn mesmo byte. PortantoF hJ certas combina~5es qUE nio dEverio produzir os efeitos esperados. Assim mesmOr nio 5E dEve esquEcer que. SE dais pontes ficarem adjacentes, 0 resultado sEr~ branco.

Urn cuidado5o planejamento PErmitir~ obter resultados artisticamente perfeitos. Experimente.

66

CAPITULO VIII - 0 HARDWARE

Este capitulo apresenta os principais dados externos e internos que devem SEr registrados para 0 usc normal de seu TK- 2QIQl!a.

VI I I.. 1

Diagrama de bleees

A CPU do seu TK-2000 COLOR COMPUTER ~ 0 6502 que possui 16 linhas de endere~os e 8 linhas de dados aCEssiveis no conector de expans~o.

A CPU opera numa frequ@ncia de 1,021 MHz, obtida de um circuito de tEmporiza~~o a partir de 14,3 MHz. Este circuito tamb~m ~ respons~vel pela gera~~o de sinais de sincronismo para 0 decodificador de endere~os, para as RAM~s dinamicas e para 0 controlador de video.

a software residente do seu TK-2000 est~ contido em 16 Kbytes de ROM, permitindo 0 contrale de opera~bes dos programas em BASIC e em linguagem de m~quina.

o circuito decodificador de endere~o ~ D responsAvel pela sele~~o does) bIDeD(s) que se comunicam com a CPU. Nele tamb~m existe um multiplexador que gera 0 endere~amento~ das RAM's din~micas; este endere~o ~ selecianado entre 0 barrarnento de endereios da CPU e 0 endere~o gerado palo controlador de video.

o teclado ~ composto por urna matriz interligada aD barramento de dades por dais buffer/interfaces.

o primeiro buffer/interface arrnazena urna informa~~o gerada pela CPU, que provoca urna respasta pale teclada lida pela CPU atrav~s do segundo buffer/interface.

A interface de impressora est A ligada aos masmos buffer/interfaCES do teclada e 0 joystick estA em paralelo cam as teclas de cursor, FIRE e letra L.

A interface de cassette estA associada a uma linha de

dadas, permitindo assim 0 reconhecimento pela CPU da

informa~~o lida.

Abaixo ~ apresentado 0 diagrams de bloeos do TK-2000 eUja finalidade ~ permitir que se obtenha urns clara vis~o do funcionamento de seu sistema.

67

LI z
, , ~
I I
~ I . "'
· I lJ
i ~
---\ (')
I ... '"
.. ~
.r-v' r

I I
• .
I :
·
~J.. J~
. :i -'"
~ z~ f40
'\ '" n n1~
BfflS i! tTl ::uo
z '"
v' 8 Ji:
~ -~ -
en ~
!~ I-
".__ ~ en
4
-\ z
---- - ~
~7 I'll ~~ ~
::0 I'll
-I jg n
.. --- .. ~
o
I ;l~ "' 8
..
... \crY
.. ... ~
S!~ I:L (')
Ii ~
- m
L.:r
0
N
..
r- "
.. / "'>. I

n Vt Vt
~ffl~ .....

~~~ i'r ~ .... - ...
8~ -
K
8 ~~
c ~I ~
... -..-
lit
i
en
J>
g' ,_? '-/
~ ,
~ ~
s g' CONECTOR pI EXPANSAo
~ ~
~
Fig. VIII .. i VIII.2 0 Microprocessador

f1()dE~lo::

Modos de Endere~amento:

Registros de IndEx~

Outro5 registros:

S t ,,\ c: k Poi n t e r' (b) Status Register (P) Program Counter (PC)

stack:

256 bytesp fixado na PJs i ns ~b01

BandeirBS do Status::

~:; (f.ii~.:Jnal) C (cc\rr·y)

l) (ov(,:,~r',f 1 ow) Z. (';;:€'~I'· 0 )

Outras bandeiras=

I (Interrupt disable) [) ([)E~C i lila 1 mo d e )

B (Bre ak )

Linha de endEre~os~

16 bits. para1elos

Linha de clados:

8 bits. paralelos E bidir E' c jon a i ~:;

Potbncia dissipada:

'-)1::'

• t: ..... 1

wat t

Frequtnc:ia de cloc:k~ no "1'1< -"~:,~000

j .• 0~~ j. MHz

VIII.3. ConectoF de Sarda - Expansio

A seguir & apresentada a pinagem no conector de safda C u j 2\ f" ina 1 i d <:\ d e s (.,: r' a e x p 'I i c a d ,~ ~~ d ian t: (0;; "

UN!) ~:.~ ci "'')1::' "'~5~)
c .... .)
N.C. ;.~? 24 N .. L ..
N.C .. ~.~H ;~J N.C.
NMI ;.~9 ~.:! ;.:.~ DM(.i
JR(~ 30 ;2 j_ f<DY
l~E!:)ET 3:i ;.:~0 EXTE
EXTt1 ~1 ~:.~ j ':';0 EXTB
. ,
.... i~?V 33 lB 1</[,0,1
"u ~::jV 34 i7 f;~ J ~.i
EXT6 ~::( !:) 16 (.~t4
~;)OUNI) 36 1. ~:j AJ3
~~M ]7 1.4 t~ 1.;2
'11 30 1.3 (~l t
JODI!;) ::l~;; j_ ;.:.~ fLi0
o ~:.~ 40 U. {)' . ."
EXTC 41 10 (::)B
D7 4") 9 t,?
c:
[)6 43 B ':~6
D~) 44 l ~;~'i
D4 41:~ 6 (:)4
.• J
D~l 41.) 1::' ':~3
... 1
D;.~ 47 4 (:l;?
OJ, 4B J r:H
D0 4<jl ,,) ,:,,0
c:
-+- 1. ;.~V se 1. I/()~3EL. r i«. VIII.~:?

Descri~io dos Sinais do Conector de Expansio

Pino=

FI..ln~~\o ::

lOBE!... (OUTPUT)

Esta linha normalmente est~ em nrvel iF 50mente passarJ para 0 quando 0 microprocessador est iVEr acessande qualguer endere,o entrE $[000 e iC0FF. Este sinal torna-se ativo durante 0 perrodo 02.

~~ .... i 7

A0 .... Aj_~=:j (OUTPUT:>

Linha buffErizada de endErE~os. Os endere~os cent ides nestas 1 inhas tornam-sE vJlides durante 0 per(odo 01 e mant~m-se v~l ides duran t e 02.

70

1.8

R/W (OUTPUT)

Sinal READ/WRITE. Torna-se vilido ao mesma tempo que 0 barramento de endere,os. Tern 0 valor 0 nurn cicIo de escrita e 1 nurn cicIo de ] e i t ur a ..

1.9

EXTE 8 (OUTPUT)

Este sinal estJ dispon{vel para selecionar qualquer disposit ivo €xterno e ~ ativo (em zero) na ~rea de memdria equivalente ~ faixa de endere~os de $8000 atJ 'IJ9FFFu

EXTE (OUTPUT)

Este sinal estJ dispon{vEI para selecionar qua]quer disposit iva externo e J ativo (em zer'o) na Area de merndria equivalente & faixa de endere~os de $E000 at~ $FFFF ..

ROY (INPUT)

Esta ~ a entrada do 6502. LEvando Esta Iinha para 0 n(vEl 0. 0 mlc r: 0 p r 0 C e 5 sad a r· d e t Era 5 U a e }; e c u _.' .;: a o y E o b a r· r' ~1. ni e n t o d (~~ d ::4:\ d o S i:'t P 1/< E' .... sentarJ 0 conte~do do Program Count e r ,

'") ., (; •• 1:..

DMA (INPUT)

Mantendo esta linha em n{vel baixo desabilita-sE 0 barramento dE enderE,05 do 6502 E paral iza-se 0 processador. Esta Iinha i normalmente mantida em nrvel i atrav~s de urn rEsistor de 1 K 1 igado a +5v.

2:3 N.C.
24 N.C ..
25 +5 V
26 GND
;!7 N.C.
28 N.C.
;':~9 NMI
(INPUT) Nao conectado

Nao c on e c t ado

Terra do sistema

Nao conectado

Nao c on e c t ado

Interrup,io n~o mascarada. Quando Este pino ~ colocado em n(vEl 0 0 TK-2000 inicia um cicIo de interrl.Jp~ao e salta para'· uma r or ina localizada no endeFe,o ~3FB.

71

30

IRG (INPUT)

Requisi~~o de interrup,io mascarada. Guando esta linha i Ievada a nrvel 0 0 TK-2000 inicia 0 cicIo de interrup,io somente se a bandeira I estiver desativada. Caso positiv07 0 processador ir' pular" para uma rot ina cujo endere~o estJ guardado nas posi~5es ~3FE e $3FF.

31

RESET (INPUT)

Quando Esta linha ~ posta em nrvel o 0 processador inicia u~ cicIo de I~ESET "

EXTM (INPUT)

Este sinal desabilita a ROM e a RAM interna quando for aplieado urn n rvel log i c o 0 (ZE~r"D) ..

·-i~~ v

Sarda de -12 V para al jmenta~io do perif~rico ..

34

Sarda de - 5 v para al imenta,io do perif~rico ..

EXT6 (OUTPUT)

Est(-:~ sinal estJ" d i p on Iv e I para selecionar dispositivos externos e Est~ ativo (em zero) na irea de rnemdria equivalente ~ faixa de endere,os de $6000 atl $7FFF.

36

SOUND

Neste pino pode-se somar ae gerador de som do TK-2000 um sinal de som que ir~ sair pelo alto falante da TV7 au ret irar 0 sinal sonoro do seu TK-2000 para ser colocado em um aplificador au equvalente. A impedAncia de sarda ~ de 5K6 e no caso de se entrar com sinal de som~ deve-se colocar um resistor de 5K6 em s4rie para uma excursio mixima de + 5V em rela~io aD terra (pino 26).

:37

~? MH;-:: (OUTPUT)

Sarda de clock de 2.042 MHz ..

38

01 OUTPUT

Fase

1 da sa rda

de

clock

microprocessador.

~39

1001S (INPUT)

Este sinal desabilita 0 funcionamento dos 1/0.. isto i:.. a area de mem6ria $C000 at~ $C0FF fica clesab iIi tada.

72

40

02 (OUTPUT)

FaSE 2 da safda de clock microprocessador.

do

4:1.

EXTC (OUTPUT)

E's t e s i n al esta d i s.p on fv e I pal"a selecionar disposit ivos externo e esta ativo (em zero) na Jrea de memdria equivalente ~ faixa de endere~os de C000 at~ iOFFF. Lembre-se que a area $(000 at~ iC0FF ~ usada para 1/0.

42--49

D0--07 INPUT/OUTPUT

Barramento de dados.

50

+i~~ V

Sarda d e +12 v ,

Este conectoF permite a interli9a~~o de variados interfaces d e f.-:),~pansao no TK"-;~~000, como POI" e:<€.'mp]o:: i n t e rF'a c e (h,: discoy interface serial RS~232F etc.

Esta porta de expansio garantey que nio exista obso- 1ec~ncia e que novidades passam SEr incorporadas aD TK--2000 COLORa

73

VIII.4 Conectores de interface de cassette

Os quatro conectores localizados na trazeira de seu TK- 2000 foram proJetados para trabalharem com todo tipo d€ gravador cassette existente em nossa Mercado.

As dUBs sardas de contrale de gravador sic controladas atrav~s do comando MOTOR € comportam-se COMO uma chav€ programada. Atrav~s de urn comanda de so~tware a sarda (A ou U) f.~ c on a i d er ad a como um c ur t o (ligando o t s ) gravador(f'~s» Oil seniXo em ab e r t o c d e s l igando o t s ) grav(.~dor(es».

o pine de sarda de dades deve, como consta no Manual de Opera;io. estar ligado • sa(da EAR de seu gravador cassette. A tensio de entrada deveri ser t Volt pico-a-pico (nominal). A imped£ncia de entrada ~ de 12 K Ohm.

o pino de sarda de dados (MIC) deve ser ligado l entrada de microfone do gravador. A tens50 de sarda ~ de 25 mv e a impedAncia de sarda ~ de 100 Ohm.

As informa~6es armazenadas Oil lidas do gravador7 sio tran sm i t i d a s e m F'orma s er f a l , ou s e.i a , bit a bit. Ao trans-mit iFT 0 computador decomp5e as bytes em bitsF € ao efetuar a leiturar comp5e os bits lidos em bytes.

o canal de sarda de informa~5€5 para 0 gravador ~ ac€ssado pelo registro CASOUT no endere~o ~C020. 0 modo de opera,io ~ similar ao do canal de sam (ver Cap. VI).

o canal de leitura de informa~5€s de gravador d e~etuad 0 a t: r' a v ~ s d 0 bit [) 7 d 0 rEg i s t r C) K BIN (e n d erE ~ o it C 0 i 0) n

VIII.5 Conector de Joystyck

() ~)arda d e joyst i c k do TK-~2000 esti 1 igada em p ar a l e l o a algumas 1 inhas do teclado representanda as teclas L7 FIREF t ~ r -) e (- .0 conector de Joystick apresenta a se9uinte p i na~_~em::

c 0 rH'~ c t o r' Mac hod 0 T K -~ 2 0 0 0 par a J o y s tic k

Pino Sinal
t 07
~:.:.~ [)4
:3 N.Cu
4 N.C.
r.:' D6
,,'
b D0
7 0:3
H 05
9 04 KROUT KBIN

KBOUT KBIN KBOUT KBOUT KBOUT

1 234 5 00000 0000 6 7 8 9

Fig. VIII.3

74

VIII.6 Interface de Impressora

A safda para tmpressora se comp5e basicamente do seguinte grupo de sinais= 1 inhas de sarda de dados acionadas diretamente relo registro KBOUT (end. $C000), I inha de safda STROBE r 1 inha de entrada BUSY. Estes sinais aparecem na

·f i ~.lU t'· i;l. lJ I 1: I . 4

Pela 1 inha BUSY, a impres50ra informa ae computador 52 estJ em condi~5es de receber dades; entretanto relo sinal de STROBE 0 computador informara ~ impressora que oS'dades que estJ lendo s~o confiJveisu

o processo de comunica~io entre 0 computador p a impressora ~ como segue: 0 computador verifica a linha BUSY p aguarda a habilita~~o para 0 envio dos dados. Neste caso 0:::· d a d o s d e vc m s er: c ol oc a d o s no v"Egistt'·o I(BOUT c· posteriormente 0 sinal de STROBE & at ivado durante alguns microsEgundosr tempo requerido pel a impressora.

A leitura cia linha BUSY i feita lendo 0 bit 06 do registro KBIN. Lembre que as bits de D0 at~ D5 sio usados para a leitura do teclado. Urn trec:ho de programa como~

SNDCHI<

BIT 9;C0j0

B t,JS ~:)NDCHR

~arJ que 0 6502 aguarde a habilita~io da 1 inha BUSY.

Se os dados jJ se encontram no acumulador para enviJlos. precisamos simplesmente de um~

un:. Q;C000 NOP

o NOP atrasa a execu~~o do prciximo comando que irJ colocar 0 sinal de STROBE, previamente em 1. em zero. 0 acesso ao registro STR0 (endere~o $C058) efetuar~ esta fun~io~ posteriormente urn acesso ao registro STRl (endere~o %C059) voltarJ 0 nrvel de sarda em i l6gico.

o seguinte trecho de pregrama irJ gerar ° pulso de STI~()BE "

L.OI~ <j;C0~:jB

NOP

NOP

NOP

NOP

NOP

NOP

NOP

NOP

L.DA $C0:;9

I~TS

Observe qUE fei geradc urn atraso de 20 per(edos de

71::.

~ ... )

c l ock , (:)

(:\l~~ljn~:;

mas a

at r'av~~s s,':\ rd<..J, de

aproximadam~ntE 20 microsE9undos.

sequ@ncia de dad6s dePEnde do tipo de impressora E S'i n <'-1. i s pod (,~ In t ~~ r' c c~ r: <:\ c t 0: r {s tic ,.:\ S u III POll C 0 cI i f f..:. I" en t e s 1 grande faeil idade na manipula,ie des sinais pErmite de simplEs programa~~o mudar 0 comportament:e da

• MARCA PRET A

07 06 05 04 03 02 01 D¢

15 13 11 9 7 5 3 1
16 14 12 10 8 6 4 2 N C

B G

U N

S 0

y

G G G G S

N N N N T

o 0 0 0 R

B

Fi~~. VIII.4

76

VIII.7 - Fonte de alirnenta~~o

o conector da fonte de alimenta,Jo do TK-2000 estJ provido de 4 tens5es diferentes~ +5. +12 r -12 e 0 Volts est50 distriburdas no conector da seguinte forma~

-12v

+12v (DRAM'S)

Fiq. ~)III.~i

:77

70

APf.:NDICE A

INSTRUCOES 00 MICROPROCESSAOOR 6502

Bec eCB BEQ BIT

Adiciona com Ca~ry memciria ao acumulador

Realiza opera~io NANDu de mem6ria com 0 acumulador Des 1 0 cap a r a a e 5 q 1.1 E~ r: d a emu m bit ( nH~' III lk ian u

a c umul ador)

Salta quando 0 Carry estJ em ZEro Salta quando 0 Carry est~ em urn Salta quando 0 resultado ~ zeFO

Testa as bits da memdria com 0 acumuladorr posicionando os bits de status

Salta quando 0 resultado ~ menor qUE zero Salta quando 0 FEsultado nio ~ ZEro

Salta quando 0 resultado nio ~ negativD Forc a urn BREt~K

Salta quando Overflow esti em ZEro Salta quando OVErflow est~ em urn ZeFa 0 flag de Carry

Zera 0 modo decimal

Zera 0 bit da mJscara de interrup~iD (habilita

i nt el'" ~""

ADC AND ASL

BMI BHE BPL BRK BVC BVS elC CLD eLI

CLV CMP CPX CPY DEC DEX DEY EOR INC INX INY JMP JSR

r"up~ao)

Zera 0 flag de OVErflow

Compara a mEm6ria com 0 acumuladoF

Compara a ffiemdr" i a com 0 Lnd e x ><

Compara a memdria com 0 Index Y

Decrementa a memOria em uma unidade DecFementa 0 Index X em uma unidadE Decrementa 0 Index Y em uma unidade HEXCLUSIVE-ORu da memdria com 0 acumuladoF Incrementa a memdria em uma unjdade Incrementa 0 Index X em uma unidade Incrementa 0 Index Y em uma unidade

Pula para novo end€re~o

Pul~ para nova 5ubrotina, ret orono

~;a"1 v an d o 0

(I E"

RTI RTS sac SEC

Carrega 0 acumulador com a memdria Carrega 0 Index X com a memdria Carrega 0 Index Y com a memdria

Des"1oca para direita em urn bit (mem6ria ou acuillulador)

Nio opera "

Realiza opera,io OR da memdria com 0 acumulador Empurra 0 valor do acumulador para 0 Stack Empurra 0 status do proc€ssador para 0 Stack Retorna 0 valor do acumulador do Stack

Retorna 0 valor do status do procEssador do Stack Rota~io de urn ~it para a esquerda (memciria 01.1 acumuladol'")

Rota,io de urn bit para a direita (memciria ou acumulador)

Retorna de uma interruP'~o Retorna de uma subrot ina

Subtrai com Carry a memdria do acumuladoF Faz a Carl'"Y igual a urn (1)

LDA LDX LDY LSR HOP ORA PHA PHP PLA PLP ROL

ROR

79

SED SET

~:;TA STX STY TI~)X rf~''r'

TX~~ T:X:S TY'(:":j

Habilita 0 modo decimal

Faz 0 bit da m~scara de interrup~io igual a urn (desabilita interrup,io)

Armazena 0 valor do acumulador na memdria Ar'mazena 0 valor do Index X na mem6ria Armazena 0 valor do Index Y na memdria Transfere 0 acumulador para 0 Index X Transfere 0 acumulador para 0 Index Y Transfere 0 Stack Pointer para 0 Index X Transfere 0 Index X para a acurnulador

T r' an 5 fer' f.:' 0 I n d (~ }: X par' a 0 S t a c k Poi n t e r Transfere 0 Index Y para a acumulador

MODELO DE PROGRAMAC~O DO 6502

[ Q)
A I ACCUMULATOR
7 9)
I Y I INDEX REGISTER Y
7 0
I X I INDEX REGISTER X
15 7 elf
I PCH I PCL I PROGRAM COUNTER
1 IIJ
01 I S I STACK POINTER 7

OCESSOR STATUS REGISTER "pI!

l N I V I B 1011 I z I c I PR
I CARRY ZERO

INTERRUPT DISABLE DECIMAL MODE BREAK COMMAND OVERFLOW NEGATIVE

00

NOTACAO UTILIZADA NESTE SUH~RIO

s +

Acumulador Registras Index Memdria

Carry

Registrador do status do processador (Status register) Stack Pointer

Adi.ao

AND 16gicD Subtra~io

OR EXCLUSIVE Idgico Transfere do Stack Transfere para 0 Stack Transfere para Transfere para

OR Idgico

Contador do prograrua (Program Counter)

Bit mais significat iva do contador do programa Bit menos significativQ do contador do programa Operandc

Modo de endere,amento imediato

A X,Y

M

C

P

-

t

~

~

-} (-

V

PC PCH peL OPER U

I

Bit afetado de acordo com a opera,io Permanece inalterado

81

Cod i s o s das instru~oes
Nome Opera~al1 Modo de Formato Codu Num
En d t'~r €:.'f; amen t 0 Assemb 1 €:.'r He xa bytes
f~DC A+M+C ---)A,C Imt:-:-diatc) ADC $tOp e r 69 ")
c;
pag. Zero ADC Op e r ss ~.~
... 1
PiIg. Zero.,X ADC OPE.'I~ • X 7r.:' ")
, ,J c.
Absc)luto AOC Opel" 6D 3
Absoluto.X ADC Op e r .. .,X 7D J
Absoluto,Y A[)C Op€,:r , Y 79 3
(Indireto7X) ADC «)per,X) 61 ~:.~
(Indir€~tCl)7Y ADC ( Op €-:I" ) , y 71- .-)
I.: ••
AND A A M ..... - > A Iml-:~diat() {~ND #OpeF' 29 ~'J
1: ..
Pi:\r~ u Zer' 0 fiND Op e r ;.~5 ,,,)
1: ..
P c\g • Zero r X AND Op €:'r' > X ss "')
I.: ••
Absoluto AND Op€:.'r' ~~D J
Absolut:o,X AND Opt;\'r r X 3D ;3
t-ib so lilt C) l' 'y AND Op er' 7 Y 39 3
(Indireto .. X) AND ( Op er .. X) 21 ~:!
(Indir'€-:tc»,Y AND (Oper) y'{ ~H r)
1:.,
{~SL (Veja figM Aculnl.11ador ASL A 0A :t.
A-"1 ) Pc\g. Zero ASL Oper 06 "'1
c:
Pc{g. ZE'I"O,X . ASL OPE:I" 7 X 16 ,"")
c ..
fibso lilt 0 ASL Op €-?I" 0E 3
Absoluto,X ASL Op e r , X :lE 3
BCe Salta qdo Re:'lativo BCC Opel" 90 r)
c,
C - 0 acs

Salta qdo C = 1.

Redat i vo

ElCS Opel"

B0

r) It ..

BEG Salta qdo Relativo BEQ OP €-:r F0 "}
c:
Z = j,
BIT A AM. M7---)N P c{g. Zer o B1T* Oper ~~4 r)
c.
Mil --)V Absoillto B1T* Oper 2C 3
BMI Salta qdo R€la~ ivo 8MI Oper :30 "i
COo
N - 1
BNE Salta qdo Redativo BNE Oper D0 ")
c..
Z = 0 B2

Nome OpeFa~ao Modo de FOFmato Cod. Num
EndeFe~amE'nta AssembleF He xa bytes
BPL Sal ta 'Ida Relativo aPL Opel" 10 2
N = 0
BRI< pc-+.;~ .. P .... Imp 1 Lc: ito SRI< 00 1
BIJC Salta qdo Relativo eve Oper 50 2
V = 0
BIJS Sal ta qdo Relativa BI)S Opel" 70 2
I,,} = i
eLC 0 --)C Imp 1 l c: ito el.C 18 1
CtO 0 --- >0 Imp 1 I c: ita CLD 08 i
CLI 0 --)1 Impl [c: ito ClI 58 i
eLV 0 --)v I IllP 1 rei to CLV 88 1
CliP A _. M Imediato CMP nOPET C9 '")
C-
rag .. Zero eMP Opel" e£:" ")
J.J c:
pc{g .. Zero,.X CMP OpeF"X 05 2
f"tbso l u t a eMP Opel" CD 3
Abso]utorX CMP Opel" ,.X DD 3
fibsoluto,.Y eMP Oper,. Y 09 3
(IndiFetO,.X) eMP (OpeF,.X) C1 «»
'"_
(Indireto),.Y CMP (OpE'F)7Y 01 2
CPX X - M Imediato CPX nOper E0 r»
'"_
Pig .. Zero CPX Oper E4 2
f-ibso 1 ut 0 CPX Oper EC 3
CPY Y - M Imediato CPY nOper C0 ")
c:
Pag .. ZeFO Cpy Op~'r C4 2
fibsoluto CPY Oper CC 3
DEC M·- t ---- > M pc{g .. Zero DEC OpeF C6 2
Pig .. Zero.,X DEC Oper,. X 06 2
Absoluto DEC Oper CE 3
AbsolutorX DEC Oper,.X DE :-J
[)EX X - i --- >X Implfcito DEX CA 1
B3 Nome Opera~ao Modo de Formato Cod. NURl
End er e c amen t 0 Assembler He xa by t E~S
DEY Y -- i _'_)Y Imp I rc:. ito DEY 88 t
EOR A V M - .. - )A Ime d i a t o EOR "Ope-~r' 49 "'j
e:
pag .. Zero EOR Oper 4c' ;;!
d
pc{g .. ZeFO,.X EOR OpeF,.X £.. .. c· ,.,
dd c;
Absoluto EOR Oper 40 3
Absoll.1t o , X . EOR OpE"r,X 50 :3
l~bsollJto,. Y EOR Op er ,. Y 59 .~~
(Inliireto,.X) EOR (Oper,..X) 4i ~~~
(Indireto),.Y EOR (Ope-r') ,. Y s 1 "
e.:
INC M + t ........ > M P a~J Q Zey' 0 INC Oper E6 ~.~
P c{g .. Zero,.X INC Oper,.X F6 ""J
c:
Absoluto INC Op e-~r EE :3
Ab s ol u t o , X INC Oper,.X FE 3
INX X i- t ----) X Imp} fc ito INX EB i
INY Y i- t ---- ) Y Implfcito INY C8 j.
~JMP (PC+t) --- )PCL Absolljt 0 JMP Op e-y' 4C ~]
(PC+~?') --.". > P CH Indireto JMP (Oper) 6C ::~
JSR PC-t'2 t Absoluto JSR Oper ;~0 :i
(PC-t·j_) -- .. >PCL
(PC+2) - ...... > P CH
LDA M ---- > A Imediato LDA "Opel" A9 2
pag .. Ze r o LDA Op f:-:-r A5 ~.~
p;:(g .. Zero .. X LOf"-l Ope-r,.X B5 .-,
" ..
Absoluto LOA Op En' f)[) :3
Absoluto,.X LOA Ope-y·,. X BD :~
Absoluto,.Y LOA Oper7Y 89 3
( In d i r e to r X ) LOA (Op eY' .. X) Ai ",
C:.
(Indireto),.Y LOA (Oper)"Y Hi '")
c:
LDX M --< X Imediato LOX #Oper A2 ;;.~
pag .. Zero LOX Op er: A6 ... )
c:
Pag" Zero,.Y LOX Oper7Y B6 2
Absoluto LOX Oper .. ~E a
Absoll.1to,.Y LOX Oper7Y BE ::l
LOY M --- > Y Imediato LDY .. Ope-y· A0 "'j
c:
P<1g" Zero LDY Oper A4 ';.J
" ..
Pclg .. Zero .. X LDY Oper .. X 84 2
Absoluto LOY Opel" AC 3
Absoll.1to .. X LOY Oper"X Be :3
04 Nome Opt:.'r·a~ao Modo de F()r'mat 0 Cod" Nl.1m
En d €-~r t:.'If; amen t C) Asst::mb 1 er HeN;:.'\ b s t e s
LSR (Vfd c\ f i a . AC:lJmlJ 1 adc)r LSR A 4A i
A"-2 ) pag. Zero L..SR Opel" 4/.) ~4~
P c{g .. Ze r o v x LSR Oper7X ~;6 '")
c;
Abso'1l.1t:o l..SR Opel" 4E :~
Absolutc)7X LSR Opel" 7 X 5£ ::$
NOP Nao op er a Lmp l rc: ito NOP EA i
ORA r:."j V M H" _ .. ) f"~ Imt::d i at 0 ORA "Op~·~r· 09 '-)
e;
Pc\g. ZE-~I" 0 ORA Op (~~r es ")
c..
P ct~~ .. Ze r: o l' X ORA Op €-~r' 7 X l::'i ")
Coo
f~bs()lut:(J ORA Opel" 0[) 3
Ab~:ic>1l.1t o T X OR (.~ OperyX 1D :3
AbsollltCl.Y ORA Opel"y Y 19 3
C{nd i r e t o v X) OR{i (Oper.X) 01 r»
e:
( In d i r' e t 0 ) 7 Y ORA (Op€~r)7Y :1.1 '")
e,
PHA [0':\ v Imp1 rcitD PH(.i 40 j_
PHP P ..... Imp 1 r c: i t o PHP 08 1-
Pl.A A t Lmp l f c i t o PLli 68 1.
PLP P t Imp1 Fc:ito PL.P ~.~H 1
HOL (V€da f·j 9. Ac 1.100U 1 'i:\d or' I~OL fi ~~,.':t 1
A· .. ·;.~ ) P (:{~;J .. Ze r: 0 ROL Op (~; ". ;.:~ f.> t·j
1: ..
P t;{'g • If:·;r·C) 7 X ROl. OPt:.'I'· • X 36 ''')
1:_
r ... b SCI III t: 0 ROt Opel" ~:~E 3
Ab ~H) 'I I.J to. X ROL. Opf..:-r f X ::~E ~)
ROR (Ved C\ fjgM AC:l..lml.ll ad or ROR A 6r~ 1-
A .. -:3 ) P~~g u Z(~; r o ROR Opel" 66 ,.)
l' ..
P c\9. Zer 0,. X ROR Op ~~I~ '¥ X 76 '1
e;
(-Ill sc>11J t: 0 ROR OPE~I" 6E a
AbsolutorX ROR OPE'!" f X 7E a
RTI P t c + Imp I Ie: ito RTI 40 i-
RTS PC t I DlP 1 r c: ito RTS 60 i
PC+1 _._ .. )PC B5

Nome OpeY'a~a() Mod o de Formato Cod. Num
En dey' €I; amen to AssE:.'mb 1 er HeN a b s t e s
- E9
BBe A·-M-··C ..... ) A Imedi<.-\to sse .. Ope-y' ,.)
1:.
Pagw ZE~r o SSC Opel" E5 ~:.~
pc{g .. Ze-ro,.X sse Op€,~r F X F5 '")
,' ..
l~b SC) 1 u to SBC Op e r ED a
Absoll.1to,.X ssc Oper.,X FD 3
A b s o III t 0 r Y sse Ope~y' ., '( F9 3
(Inc! i re t o v X) SBC ( Op e r , X) Ei ,')
1:,.
( In d i r e t 0 ) " Y sse ( Op €,~r' ) ., 'y' F1. <')
1:. SEC

i --- > C

ImplrcitD

SEC

~38

SED j, _ .. _- > D Imp1 f'c: i to SED F8 i
~)EI t ...... - > I Imp1 (cite) SEI 7B 1-
!:;TA A ,,-_ .. ) M Pch~ " lei" C) ~3Tfi Op er: 85 .'')
1:-
P'{g Ze r o , X ETA Op€,:r' 7 X vs ")
r. ... ~ 1:-
Absoluto STA Opel" ElO 3
Abscd IJt (J f X f~TA OPE:Y' ., X 9D ::l
fibsD1ut:o,.Y ~;T{~ ()p €~f' ,. Y 99 ~i
( In d i r e t o T )( ) STA (Oper' ,.X) 01 1·'J
1:"
c l nd r r e t o z c Y STA «)pt:·:r) ., Y 91- I-i
1: •• STX X - .. -) M P~g .. Zer'o STX OPf:~f' 06 ,a'J
1: ..
p c{g .. ZE:rC),.Y STX Op er .. Y 96 '')
1:.
f)b sed IJ. t 0 STX Op e r: 8E a STY Y _ .... - >M P<:~i~w lo(·:; r' 0 STY OPE'f' 84 '0)
1: ..
P '-(g ZI-::-I" o , X STY Opt::'r" X 94 r)
.r,:... • 4:.
Absoluto STY Op er: Be 3
TAX A _ .... _ > X Imp 1 rei ttl TAX AA i
TAY A _ .. _ .. > Y Imp 1 tc: it Q TAY A8 j_
TSX c' _ ... - > X Imp1 [«: ito TSX BA i
;:)
TXA X -,_. )A Imp 1 Fe ito TXA 8f"-l j,
rxs X -,_ )8 Imp 1 re ito TXS 9A 1
TYA Y _._ )A Imp 1 rei t C) TYA 98 i 8andeiras do Status Register N Z C I D V

ADC AND fiSL BCC 8CB BEG BIT BMI ONE BPI.. BRK BVC BVS CLC eLD CLI CLV eMf> CPX CP Y DEC DEX DEY EOR INC INX IN)'

JMP JSR L.Or; LDX LOY L..nR NOP ORA PHA PHP PL.A PL..P ROL ROR RTI RT~) BBC SEC BED SEl GTA ~:)TX GTY TAX TAY

/ / / __ _ . /
/ /
/ / / .. _ HI / .... M6

.. ~. .... .... 1

.... 0

.... 0 .. _ .... _.. _ ..

"'~ 0
0 _ .. .... _ ..
/ / / ....
/ / / .... .. - 'H'
/ .I / - ... 'h' -to,
/ / 'n. 0 •• -
i /
/ /
/ /
/ I
I
I I _. "" .... +~ ..
/ / / / - ..

/ / " ..

/ /

o / / .... -- _ ..

/ / ...... - .... _ ..

/ / .... _ ..........

d o 81: a ck

/ / / .

do Stc\c:k

///_ ..... /

1 ..

_. ..- "- _. 1. _.

_.. .... .._ :l

/ /

// _ ..

fJ7

Bandeiras do Status Register N Z C I D V

TSX TXA TXS TYA

/ / - - - - / / - - - -

/ /

88

COOIGOS DAS OPERACOES

00 .. - BRK ~?F -- NEio u s a d o
01 .... ORA ..... (Inc! i re t o j X) :30 ..~ . BMI
0") ... Nt~o u s ad o s 1. .. AND _. ( I n d i 1" €-~ to) , Y
1;-
0J .... Nao 115(:\(10 ~1~! _ . N~{o u s ad o
04 -- Nao I.lsado ~~:1 _. N~\() IJsC\do
es .- OR .. "-I .... Pc{g ina Z(;~r' 0 ]4 -- Nao usado
0b - .. ASL.. ..- Pc{i~ i n a Zf2'I" o as .- AND .. - pJg ina Zer C) 7 X
e 7 -- Nao u s ad o ~~6 -- ROl.. -- Pc{gina Z €'~I" 0 , X
0H -- PHP ~17 _ .. Nao u s ad o
09 _ .. ORA ... Lme d i at: 0 :3B .. .. SEC
0A .... .. "-ISL ... ACllmlJIadol" ~j9 . . AND .... (.~bs()II.lt:(),Y
08 .... N'a() u s a do :3A .... NaG I.Jsado
0C ... Nao I.Asado ~3FJ "'~ Nan u s a do
0D ~ ... OF~A .... Absoluto 3C _ .. Nao usado
0E .... AS!... .. .. Absoll.1to ::)1) ..- AND .... Absolut(;)7X
0F ... Nao u s a d o :n:: - ROt .... AbsoIutc)7X
:1.0 .... BPI... ~:IF .... N~\Cl u s ad o
11 .... ORA .... (Indir'f:;-to),Y 40 .. . RTI
1. ~~ ... N~\() Ij sad 0 4t .. .. EOR .... (Indin:d:o,:X)
:1.3 .... Nan 1.1 s ad o 4~:' - Nao u s a d o
iA .... N~\() Ilsado 43 - N~i() u s ad 0
1. ~j .... OR t"-l _ .. Pagina Zer o 7 X 44 _ . Nao IJ. s ad o
1.6 .... ASL . u. Pa9 i n a ZE'r' C),. X 4~; .. .. EOR ~ .. P,,\g ina Ze r o
1.7 ' ... Nac) u s a d o 46 .. " LGR _ .. Pa~Jina Zer'o
1.8 CL..C 47 Nt~f 1.\ sad 0
- .. _. ao
19 .. - OR,.~ •• 4. AbS()]l.1to~ Y 40 ..- P H{')
lA .... Nao usado 49 - [OR _ .. Lme d i at o
IB .... N~\D usado 4A -- LSR ... f'~c: umu 1 a dol"
1.C .... NaCl IJ s ad o 48 _ . N~{o u s a d o
H) .... ORA .... Ab SC) III to, X 4C - .. JMP -. A b s o III t: o
iE .~ .. f1BL.. .. - f.)bso]uto,x 4D .... FOR ..- AbsolutD
tF .... N~i() Ilsado 4E _ .. LSR _ .. f1b so 11.1 t o
~:,~0 .... .JSR 4F ,~ . N~\() usado
~! 1 "- AND .... C[nd i re t o s X) 50 ... BVe
,..) .1"') .... Nao u s ad o s i -, [OR .. ' ( 1 n d i F e t o , Y
t: •• C .•
~:~:~ - .. Nac) usado 1::' ") - .. Nao u s ado
...JI; ..
;;.~ 4 .... BIT .. .. Pagina Z E.'I'· 0 sa _ . Nat') 1.\ sad C)
") t::' .. ~~ AND ... Pagina ZE.'I"O ~:i4 " .. Nao u s ad o
1: •• ;,..)
~:'b -. ROL .._ Pc{gine\ Ze r o 55 -. EOR _ .. pi~l i n a Zero , X
~:.~7 Nao usado 56 • 40. L.SI~ .... Pr.\'ginc\ Z€-~r o 7 X
~:.~B - .. PI...P 57 _ .. Nac) us-ado
~~9 . - AND - Imediato 58 ~ .. eLI
~:.~ {:, .. " ROL .... Ac 1.1 mil 1 ad ClF' ~59 _ . EOR ,,- Absoluto,Y
~~B ~ ... Nao u StH'! o 5A ... Nao us-ado
ac .... BIT .. .. Absc)l1.1to 58 .. - Nao u s ado
20 .... ,AND -- Abso]uto 5(: ._ Na() 1.J.SiHJo
2E .... ROL _ .. Abf:)olI.lt0 5D -- [OR .. - Absoll.1tol'X 5E -- LSR .. - AbsDIl.1toTX OD .... STA .... Absoluto
sr "- N~\C) u s a d o BE -- STX -- ~':absolllt:o
60 -- r~TS BF _ .. N~\() u s a d o
6:l -- ADC .. - (Ind i re t o j x ) 90 .. - Bee
6) ;~ .... N~\o u s ad o 91. _ .. STI-i (Inc! i r' e t 0 ) r'r'
63 - NaCl IJ 5<':\(:I 0 9") _ .. N~\D u s a d o
c:
64 .... N~\Cl u s a d o 93 _ .. N~,o u.salio
b~) .... f~DC 0 .. Pa~l i n a Ze r 0 94 _ .. ~3 'To y' _ .. Pc{9 In 1:\ lE':I" 0 7 X
bb "" ROR _ .. P I:{~~ i n <':\ Z~;r' 0 vs _ .. ~)Tfi . ... P <':{~~ ina ZE-:I" 0 ~ :x:
67 - .. Nao Ilsaclo 9" _ .. STX " .. p:cr!;) ina Zero o , Y
... )
60 .h. PL.A 97 ..- Nl~() lJ~i<;\do
69 .... ADC .... I me d i (':\ t c) (lB . ... TYfi
f.Hi ... I~OR .... A C IJ III IJ 1 1:\ d o r' 99 _ .. STf':J . ... f~ b 5 o 1 u t C) ~ 'yo
68 .... Nao u s ad o 9A ..- rxs
be .... ...IMP .... Inc! i r et 0 <is . .. N~\o I . .l ~;<':l_d C)
61) .. - ADe ~ .•. Ab~:>oll.1t 0 9C . ... N~'\o u s a do
6E -- ROR .... Ab~:)oll.1t: 0 9D .... ~3TA ..~. (.:.t)~:;Dll.1t:oTX
6F .... N~\() u s ad o 9E . ... N~\o u s a do
70 .... BVS 9F -- N~'o IJsado
71 .... ADC .on (Inc! i re t o ) ,Y A0 •• tt LDY .. - Lme d iato
7;? - .. N~,C) u s ad o Ai . ... L. Df:~ .... (Inc! l r e t o v x )
73 .. ~. N~\o u s a d o (.~~.~ -- LDX -00' Lme d i ~:d: o
74 - .. N~\o 1..l5.,\c!O A3 ..- N~~CJ u s a d o
'+""".:" .... ADC -- Pi:.{9 i 1,)(:\ Zer' C) t X f-14 -.,. L [) -.,( . ... P c\9 i n i':\ ZEI"O
I .. )
7b - .. ROR .... P <:{~~ in (:\ Z0TO ~ X A5 ..- LDtl _ .. P i':{ s ina Zt:'~I"O
77 - .. N~\o u s ad o A6 _ .. LDX .... P"{!_:J i n a Zer-o
7B -- ~)E I A7 .... N ~'i o IJsado
79 .. - ADC _ .. Ab~:)oll.ltoyY A8 .to_ Tf:1Y
7t~ "- Nao u s a d o A9 _ .. LDtl .... Imecli at: 0
7B - .. N~\o IJ s a d 0 AA -- T,~X
7C - .. Nao IJ s a d 0 fi£i -- N~\Cl IJsado
7D - .. ADC _ .. Absoluto,X AC .... L.DY .. .. AbsollJto
7E .. - ROR .. - Ab~.;olut:()TX AD . n. LDA .... Abso'iuto
7F " .. N~\o IJ 5.,\(:10 fiE .. .. LDX . ... Ab so IIJt o
00 .... Nao u s ad o AF .. .. N~\Cl I.lsaclo
OJ, - .. STA _ .. (Ind it" Ed: C) y X ) 130 .. .. acs
B? Woo Nao 1.1 ~j<:\ d 0 F.li .... LDA -- (Inc! i r' (·:·~t D) ,.Y
B3 Woo N~\C) 1J5.,\c!O B~? _. N~\o IJ!:; <:\ cI 0
B4 .... bTY . ... P i'~~~ in !:\ lE~r' CJ ElJ .. .. N~\Cl I.1sado
B~_:; .... BTA _ .. Pc{9 i n a Zf::r' 0 El4 _ .. L.DY _ .. PJg In :0,\ Zer·o}.X
B6 "- STX .... P<:{g ina Z E:.\: r: () B s _ .. L. o f.l -- P:chJ in <":\ Z(-~I" 0 }. X
07 - .. Nac) IJS <.oI,d 0 136 _ .. LDX .. .. P .:{ s ina Ze ro y y.
O£1 "'~ DEY El7 .... N~\o IJSI:\do
t19 ~ .. Nao usado B!3 .. .. CL1.)
BA .a •• TXA B9 .. - L.JM _ .. MJ501l..ltoyY
I3B "w Nao IJsado Bf~ .... TSX
Be .. - sr r _ .. Ab so 11.1 to BB ._. N~\o u sad o 90

BC - LDY - Absoluto,X BD - LOA - Absoluto,X BE - LOX - Absoluto,Y B F··.. Nao u sad 0

C0 - Cpy - Imediato

C1 - CMP - (Indireto.X)

c~? .... Nan 1.15,':\<:10

DE - DEC - Absoll.1to.X OF •.. Nao u s a d o

£0 - CPX - lmediato

E1 - SBC - (Indireto.X) E;~ _.. Nao 11 s;:l.d 0

E::~ .... Nao u s a do

E4 - epx - P~gjna Zero E5 - sse - PJgina Zero £6 - INC - PJgina Zero

E7 Nao u s a do

EB I NX

E9 - sse - lmediato FA _.. NOP

EB _.. f·n\o u s a d 0

Ee - CPX - Absoluto ED - SSC - Absolute FE - INC - Absoluto EF .... Nan 1.1 5i:iclD

F0 _ .. BE(}"!

Fi - SBC - (lndireto).Y F ;.~ -- N ~\ 0 IJ :; ,',\ d 0

F:3 _.. N~~(J IJ s a d 0

F4 .... Nao u s ado

F5 - SSC - PJgina Zero.X F6 - INC - PJglna ZEro,X

Pi N';~(J u s a d o

FB SED

F9 - sec - Absolutn.Y FA -.. N ~~ o 11 s ;;\ d o

FS Nan u s ad o

FC N~~D u sad 0

FD - SBC - AbsolutorX FE - INC - AbsolutoyX F F _.. N ~\ 0 u t'} <":\ d C)

C:3 .. _ N~:{() 1.1 :ia d ()

(4 - CPY - PJgina Zero C5 - CMP - PJgina Zero C6 - DEC - Pc\glna Zero C7 .... N~\o u sad o

CEl ..• INY

C9 - CMP - Imedlato

CA DEX

C B N ~\ 0 1.,1. 5 ad o

CC - Cpy - Absoluto CD - CMP - AbSDluto CE - DEC - Absolute

C F N r,i 0 l..l 5 C\ d 0

D0 BNE

01 - CMP - (Indireto).Y

0;;:' N'ao u s a d o

D:3 Nan u s ad o

D4 _ .. Nan u s a d o

[-)~,'.~ - (·.~MF) pJ. z' x

r • • ... (:I.~:Jln<·:'I .. (-:~r·Or

D6 - DEC - PJgina Zero,X

D 7 N ~{() 11 !:~ <..-\ d I:)

DB CLI)

09 - CMP - Absolutl:)rY

DA N~~Cl u s a d o

DB N~:\o u s ad o

[) C .- N ~\ 0 u sad 0

OD .... CrlP .... Ab::.;o l u t C) y:X:

Figura A-i. ASL - Opera~iCl dE deslocarnento dE urn bit a esquErda

Fig~ra A-2. Rota~io de urn bit ~ esquerda (memciria 01.1 aCl.1mulador)

Fif:jl.lr·a A· .. ·:3"

Nota i= 8IT - Teste de bit

Os bits 6 e 7 sio transferidos para 0 registrador de status. Se o resultado de A AND M ~ zero entia Z=i~ sen~o Z=0.

91

92

AP£NOICE B

DIFERENCAS ENTRE 0 TK-2000 E 0 APPLE J[

Existe um certo grau de compatibilidade entre 0 TK-2000 COLOR € 0 cornputador APPLE J[ PLUS e simi lares nacionais" Neste apfndice ser~o destacadas as di~eren~as mais importantes~

a) Oiferen~a nos comandos BASIC

TK-2000
FLASH
IN~
PR"
MA S
MP S
ASS S
LM S
TK2000 S
MOTOR S
SOUND S
GRyHGR (limpa so
a janela) APPLE II

Comandos no TK-2000 com 0 mesmo COdigo do APPLE II

S S S

SOUND

ASS DSK

(limpa a) tela)

b) Carregando ~ita de APPLE ][ no TK-2000

Para carregar as fitas em APPLESOFT BASIC no TK-20007 digite 0 comando MP e a tela mostrar~ um padr~o de barras similar ~quele que aparece ao 1 igar 0 aparelho.

Nesta posi~~o pode-s~ tamb~m digitar 0 comando HOME para limpar a tela tornando agora poss(vel carregar urn programa gerado num APPLE J[ au compatrvel no TK-2000 COLOR atFav~s do camando LOADAh

Se 0 programa n~o executar corretamenteF deve-se procurar a solu~~o para 0 erro observando 0 mapa da memdriaF au confer indo no programa se n~a existem chamadas de subrotinas da ROM que possuemendere~os diferentes no TK-2000 e no APPLE II ou similar.

Case ao executar 0 programaF este seja interrempido com a mensagem de ERRO DE SINTAXEy provavelmente este ocorreu devido a um comando (FLASHy IN" au PRH) que existia no APPLE (incompatrvel ao TK-2000), e dever~ ser removido au substiturdo apropriadamente de acordo ao contexto.

93

c) Di~eren~as no usa da RAH ocupado pelo vrdeo
TK-2000 APPLE II
TEXTO pagina 1 2000-3FFFH 400-7FFH
TEXTO pagina 2 A000-BFFFH S00-BFFH
BAIXA RES pag 1 2000-3FFFH 400-7FFH
BAIXA RES pag 2 A000-BFFFH B00-BFFH
ALTA RES pig 1 2eee-3FFFH 2eee-3FFFH
ALTA RES pag 2 A000-BFFFH 4000-5FFFH d) Re~er~ncia a progra.a~io e. linguage. de .aquina

1) Uso .da pagina zero: Id~ntico uao , e xc e t o as posif;oes #6", "7", -a" e "9" que sio usadas como buffer termpor~rios no TK-2000. "21H" representa 0 cOMPrimento da janela de vrdeo no APPLE ][ e no TK-2000 a margem direita da janela.

2) 0 usc da area de texto (end $400H-7FFH): algumas partes desta area sio usadas para par!metros do sistema e dos perifericos. 0 TK-2000 na~ permite 0 display num programa em linguag_m de miquina que escreva diretamente na area de memdria em questao.

3) Leitura do teclado= No· APPLE J[ a leitura do tecl:ado ~ efetuad:a pela instru~io LOA ~C0~0H e no TK-2e00 deve ser usado uma rot ina especial para simular a fun~ao. A rot ina de reconhecimento e leitura do teclado est~ local izado a partir do endere~o SF043H da ROM do TK- 2000 ..

Conversao de progra.as e. linguage. de .iquina para 0 TK-2'"

N~o hi uma regra de ouro para converter programas EM linguagem de mdquina, mas as diferen~as resultam, na grande malaria dos cases no tratamento de teclado, vrdeo e mapeamento de mem6ria, al~m de diferen~as na ROM. Cada caso dev€ ser anal izado :individualmente, mas para simp} ificar,. aqui temos algumas dicas=

94

1 .. Teclado

Encontre a instru~io LOA $C000 e substitua-a pela instru~io JSR Keb, sendo que Keb d a seguinte retina:

LDA <.b ~~ 6
PHfi
LDfi $"j'7
c; ,
PHA
LDA $06
P Hf:1
LDA $07
P Hr.}
LDA $0H
PHpl
LDA $09
PHA
,.JSR $F043
PHA
TXfi
P Hf.)
TSX
TXr.1
FOR #$H0
TAX:
PLt'!
STA $01.00,)(
INX
PLf1
f:nA $0H,01 x
PLr.1
STA $09
PlA
STA $\;H
P l.fi
STfi ~i07
PLfi
STfi $06
PU1
~3TA $~.~7
PLf1
t>TA $26
LDA ~0i00,)(
PHA
DEX
LDA $0100,X
TAX
PLA
RTf:) Esta rot ina deve ser colocada numa irea livre da memdria RAM. Uma op~io mais simples ~ substituir LOA $C000 por JSR $F043, por~m deve se saber que 0 contedde dos endere,os 6, 7, 8, 9, 26 e 27 da pJgina zero serio alterados, entretanto, na primeira op,io eles sio preservados.

95

2. P~gina 2 de Alta Resolu;~ou

Encontre todas as instru~aES que se referem ~ pig ina 2

no APPLE J[ ($4000~~!:';FFFH) E s ub s t i t u r<;\····L:\!:; p el o e n d ere c o

correspondente no TK-2000 ($A000-BFFFH).

3. Display Hodo Texto

Encontre as instru;6es usadas para display no modD t: c; )-~ t: D n o f) P P L. E J [ ::

1 ... Dt-l #Cl.

nT (.) 9",040 i

e subst ituia-a peie seguinte programa~

LD (-'I •• 01- " EIX() X
r
GTA $~~4
LDA *t00 , EIXO '(
~3 T f~ ~b ;;! ~:;j
LDA t~C j
..JSR ~6FDF0 AP£NOICE C ENDERECAMENTO OAS LINHAS DE VlOEO

Pagina l.

LINHA LINHA DE

AL.RES. TEXTO

END. HEXADECIMAL

END .. DECIMAl.

o j_

4

o

$2000-2027 $2400-;~4~~7 $2B00--2827 $2C00-~~C27 9;3000-3027 $3400-3427 $3800··-:3827 $3C00-·3C27

81 (12--8~~~31 92 i b-'9~~~;5 10240·- i 0279 11264-'11:~0~~ i ~~288-12:3~~7 1331.2-13351. i 4336- :1437~) i 5~l60--1. 5399

6

7

8 9 10 II 12 13 14

1

~&~?'080--20A7 $2480--24A7 $2880-~~8A7 $2C80- .. 2CA7 $3080-30A7 $3480-:~4A7 $:3880-38A7 $:iC80-:~CA7

8320'-S:35? 9344-93B3 10:360-·· i 0407 l139~~-l 3.431 :1 ~?4 i 6 .... i ;;!45~) l :~440-' 13479 14464-- i 4~50~~ l5488-j.5527

1.5

16 17 18 19

$2100-2 i ~~7 $2~J00-2~;27 $~~900-2927 $2000-2027 $3100·-3i;'~7 $3500--3527 $3900--:3927 $3000-·30~!7

8448-"84B7 94 72--9~'.i j. i. i 04(1'6-'10~;:3~5 i i ~;;;~0-' j. 1. :':i59 1 2~j44-" i ;2~5B~1 13::=,68- .. i 3607 i 459;;~-- i 4631. i 56 i 6-- j. ~;b5::=j

26 ~:?7 28 ;;.~9 30 :i1

3

$2t80--~~lA7 $2580-~~5A7 $2980-29A7 $2D80-;;!DA7 ~&3180'-3iA7 $3580-'35A7 $3980-39A7 1i3D80-3DA7

B576-861~:.'.i 9600--9639 i 06~~4-- i 0663 11648,,-1. 1687 1. ~?'672-1 ~~7 i j. i. 3696- j_ 37:i5 147~?'0-14759 15744- 1 !:j783

32 ::33 34

36 :~7 38 ~39

4

'112200--2227 $2600-2627 <.&2A00--2A27 $2[00--2E27 $~~~:00"-3227 $3600"-3b27 $3A00-3A~:7 $3E00-'3E~~7

B704--B7 4::~ 9728--9767 i 0752'-107<{ i 11776--1181.5 i 2800-1~?'8:39 13824-' i 3863 14848-14887 j.587;;~·-1.59j_ 1.

40 41

$2280-22A7 $2680--26A7

883~~""8871 9856-'9B9~j

97

42 $2A80-2AA7 10880-10919
43 $2E80-2EA7 i i 904--1 1 94~j
44 Il!' $3280-32A7 12928-12967
J
45 .<JJ3680-36A7 13952-13991
46 $3A80-3AA7 14976-15015
47 $3E80-:3EA7 16000-16039
48 $2:~00-2327 8960-8999
49 $2700-2727 9984-10023
50 $2B00--2B27 11008-11047
51 $2F00--2F27 1 203~?-- i ~!07 i
£:-'1 6 $3300-<~327 1.3056-13095
,_Ie..
53 $3700-3727 14080-14119
~j4 $3800-3B27 15104-15143
55 <JJ3F00-2F27 i6i;~8"-i6167
~,'j6 $2:~B0"-23A7 9088--9127
57 $2780-,,:27A7 10t1~~'·;1015j.
~;8 $;~Ba0-~~f~ f~7 11136-11175
59 $2FB0··· ,"~FA7 12160-1~?:i99
60 7 $:L~80""33A7 i3184--13~~23
61 $37B0--37A7 14~~08- 1 4~~47
6;~ $3BB0-<iB,.17 1.5232-15271
63 $3FB0-3FA7 i 6;!56-· i 629~5
64 $202B--;!04F 8232--8271
65 $2428-244F 9256"-9~?9:::j
66 $28;~8-284F r0;!80-"10319
67 $~?CAB-2C4F 11304-1134:3
<!)8 8 $30~~8-304F 12:i28-- j. 2367
69 $3428-344F 13:352--13391
70 $:~8;!8--384F 14~l76-14415
71 ';I;3C28-3C4F 1 ~5400-1 ~i439
7;! $20A8-20CF 8360-H399
73 $24AB--24CF 9:384·-94~!'3
74 $~~8A8--;~8CF 10408-- i 0447
75 $;;~CA8-2CCF 11432-11471
76 9 $30A.8-30CF 12456--12495
77 $34A8-<34CF 1 3480·_ 1351 (1
78 $38A8-38CF 14504-1.4543
79 $3CA8-3CCF 15538-15567
B0 $2128-214F 8488-8527
81 $25~~8-254F 9512--9551
B2 $~!928--294F 10536-- 1. 057~j
83 $2D28--2D4F 11560-11599
B4 10 $3128--3 i 4F 12584-1262:i
85 g;:3528-254F 13608-- i 3647
86 $3928-394F 14632-14671.
87 $3D28--3D4F 15656- i 569~=;
.88 $21A8-21CF 8616-8655
89 $25A8-25CF 9640-9679
98 90 $~~9AB"-~~9CF i 0664'-1070:~
(~ i $~!DAB-2DCF t 1688·· t j.7~;7
9'1 11 $~3 i AB-<3 i CF 1. ~~71 ~!- i ~;7~":'jl
e:
9:~ $~i!:;A8 -<~5CF 137:16- t 3775
94 $:39A8··-:39CF 14760--14799
9E:' $3DAB .... 3DCF 1 ~;784·" t 58~~~1
... 1
96 $22~;B· .. ·;;~~!4F 8744- .. 878::$
(:.J 7 $~.~6;'~ 8 .. -~:~ 6 4F 97 68-"993~:j
98 $~?A~?'8-";2A4F i 07<f~~'- 100:3 i
99 $~~EA8""~~E4F li8t6·-1t8~;~:j
100 1 ;2 ~& 3;! ~~ 8 "-:3~; 4 F 1 ~?'840-- i ~?'fj79
1.0t 9j3{)~.~8"<~64F 1. ~1B 64 -. j. :1903
1 0;:~ ~L:3A~~8"<3A4F i 48H8'-' i 49:;'~7
1.03 <Jj:iE;?8-<~E4F 1 ~;9 t ;.~-"l ~;951
104 ~&~; ;.? A 8"-~;~; C F 887~?'''·89i :1.
1. 0~j $;~6A8''''~!6CF 9896 -- 99 :~~j
106 ~&~.~ AA8 .. _ ;.? ACF i 0(t;.?0 .... i 0959
j.07 $;.~EAEl"";~ECF 1.:i. 944- .. t 1. 983
108 1 :3 ~&::~~?A8·"· :3~!C F i ~:.~968-" i 9007
1.09 1;:~ 6 A a ._. ~~ l) C F t ~199~~"" t 4031
110 $::~AAB"·:3ACF 1 :7i0 i 6·_ i sess
tit $3EA8"<~ECF t 6040 -- 1. t!079
u.~~ ~b;,~ 3~?'8 .... ~!::14F (1'000 _wei 0 :3(1
:1. t ~l $~~7~~8"-~~7 4F j. 00;~4-"1006:1
114 $~~B ~?B-··;:?B 4F i 104B-"1 1087
t lEi $;~F~.~8-··2F 4F j, ~?'073-" i;~ 1 i j.
lib 14 $a~:l ~.~B·-' :]:34 F i :i0<fb·_· j,:31 :3~5
j. i 7 $:i7~.~B""37 4F j_41~~0--14j.~i9
1 i B ~&~:~B ~.~B·'· :3B 4 F :l.~5:l.44"-1~iiB::~
j,19 $3F~~a"":iF4F 1. 6 j. 6 B -" i 6 ~~ 0 7
i ae ~& ~.~:3 A B,,-~?:3 C F 9t~:~8·"'9167
i ~~ 1, $~~7A8""~!7CF t0t~;?--j.0j_91
i "V) $~~BAB-"~?BCF i j_ :l76-"1 i;':.~i~)
L'_C ..
t ~.~3 $~~FA8-";~FCF 1.2;,:00-' 1 ~.~;.~a9
i~.~4 1'~" ~b:3:3A8"<3~1CF 1 :3~;;~?4-- 1 3~:26a
. ,J
j ") ,: . 1; ~i 7 A B _ .. ~l7 cr l424B--14287
• 1:. .... 1
i~?6 9; 3 B A 8 _··:3 F3 C F' i~5~?7~?"'·1531 i
l;~7 1;aFA8-"~IFCF t 6;'~96-"16:i:i~j
i~?B $;':! 0 :5 0 .. - ~~ 077 B~;7~?'··-8:H 1
i ~;~9 $~~4!::;0"";;2477 9~!96-'9a:15
1:30 ~b;2B~50"-~?'877 1 0:3~?'0'-' i 0:359
1.31. $;~ C s 0 -- ~~ C '7 7 i 1:i44··-U.383
1 :3~~ 16 $:;)050,,,<3077 1 ~~:36B-' 1 ~?407
i aa $:i4~7j0-<1477 i :i:192-· i 3431
1:34, $3850--:3817 i 4416·-1445~:j
1. :i~j $3C~:j0"-3C77 j, ~j440-" i 5479
1 :36 $::?'0D0-~?'0F7 8400-84~19
t37 $;;?4[)0--;;~4F7 9424--9463
9(1

Você também pode gostar