1 | <HTML>
|
---|
2 | <HEAD>
|
---|
3 | <TITLE>La page du hardware TO8</TITLE>
|
---|
4 | </HEAD>
|
---|
5 | <BODY>
|
---|
6 | <H2>
|
---|
7 | Informations sur l'architecture interne du TO8
|
---|
8 | </H2>
|
---|
9 | <P>
|
---|
10 | Ces informations proviennent de diverses sources, en premier lieu la revue
|
---|
11 | spécialisée Thomson TEO<I>phile</I> (disparue vers la fin des
|
---|
12 | années 80). Ensuite le désassemblage de la ROM du TO8.<BR>
|
---|
13 | Les dernières informations m'ont été apportées
|
---|
14 | par Alexandre Pukal<BR>
|
---|
15 | (E7E6 - BORDER - DISK)
|
---|
16 | <H2>
|
---|
17 | I - Organisation de la mémoire
|
---|
18 | </H2>
|
---|
19 | <P>
|
---|
20 | <H3>
|
---|
21 | I.1 Carte mémoire (espace d'adressage du 6809)
|
---|
22 | </H3>
|
---|
23 | <P>
|
---|
24 | <TABLE BORDER CELLPADDING="2">
|
---|
25 | <TR>
|
---|
26 | <TD>Debut</TD>
|
---|
27 | <TD>Fin</TD>
|
---|
28 | <TD>Taille</TD>
|
---|
29 | <TD>Description</TD>
|
---|
30 | </TR>
|
---|
31 | <TR>
|
---|
32 | <TD>0000</TD>
|
---|
33 | <TD>3FFF</TD>
|
---|
34 | <TD>16ko</TD>
|
---|
35 | <TD>ROM1</TD>
|
---|
36 | </TR>
|
---|
37 | <TR>
|
---|
38 | <TD>4000</TD>
|
---|
39 | <TD>5FFF</TD>
|
---|
40 | <TD>8ko</TD>
|
---|
41 | <TD>VRAM (video RAM)</TD>
|
---|
42 | </TR>
|
---|
43 | <TR>
|
---|
44 | <TD>6000</TD>
|
---|
45 | <TD>9FFF</TD>
|
---|
46 | <TD>16ko</TD>
|
---|
47 | <TD>RAM1 (Fixe)</TD>
|
---|
48 | </TR>
|
---|
49 | <TR>
|
---|
50 | <TD>A000</TD>
|
---|
51 | <TD>DFFF</TD>
|
---|
52 | <TD>16ko</TD>
|
---|
53 | <TD>RAM2 (fenêtre de RAM paginée)</TD>
|
---|
54 | </TR>
|
---|
55 | <TR>
|
---|
56 | <TD>E000</TD>
|
---|
57 | <TD>FFFF</TD>
|
---|
58 | <TD>8ko</TD>
|
---|
59 | <TD>ROM2 (Moniteur)</TD>
|
---|
60 | </TR>
|
---|
61 | <TR>
|
---|
62 | <TD>E000</TD>
|
---|
63 | <TD>E7FF</TD>
|
---|
64 | <TD>-</TD>
|
---|
65 | <TD>accès aux périphériques</TD>
|
---|
66 | </TR>
|
---|
67 | </TABLE>
|
---|
68 | <P>
|
---|
69 | <H3>
|
---|
70 | I.2 Organisation des banques :
|
---|
71 | </H3>
|
---|
72 | <P>
|
---|
73 | <P>
|
---|
74 | ROM1 est composé de 4 banques de 16ko
|
---|
75 | <UL>
|
---|
76 | <LI>
|
---|
77 | Banque 0 : Basic 512 Part I
|
---|
78 | <LI>
|
---|
79 | Banque 1 : Basic 512 Part II
|
---|
80 | <LI>
|
---|
81 | Banque 2 : Basic 1.0
|
---|
82 | <LI>
|
---|
83 | Banque 3 : Exploitation de fichiers
|
---|
84 | </UL>
|
---|
85 | On peut également mapper à cette addresse, une des 16 ou 32 pages de RAM.
|
---|
86 | <P>
|
---|
87 | VRAM est composé de 2 banques de 8ko (appelée forme et couleur
|
---|
88 | pour des raisons historiques)
|
---|
89 | <P>
|
---|
90 | RAM1 n'a pas de banques
|
---|
91 | <P>
|
---|
92 | RAM2 est composé de 16 (TO8 de 256ko) à 32 banques (TO8 de
|
---|
93 | 512ko) de 16ko, les pages 0 et 1 étant la VRAM et RAM1.
|
---|
94 | <P>
|
---|
95 | ROM2 est composé de 2 banques de 8ko partiellement accessibles (la
|
---|
96 | fenêtre d'accès aux périphériques)
|
---|
97 | <P>
|
---|
98 | <H3>
|
---|
99 | I.3 Commutation des banques de RAM2:
|
---|
100 | </H3>
|
---|
101 | <P>
|
---|
102 | <P>
|
---|
103 | Il existe 2 modes de commutation (pour conserver la compatibilité
|
---|
104 | TO7/70 et TO9).Le bit 4 du registre $E7E7 détermine le mode (1 mode
|
---|
105 | registre /0 mode PIA)
|
---|
106 | <P>
|
---|
107 | <P>
|
---|
108 | <B>Mode registre (mode normal)</B>
|
---|
109 | <P>
|
---|
110 | Elle se fait par écriture dans le registre (8bits) $E7E5. La premiere
|
---|
111 | page porte le numéro 2.
|
---|
112 | <P>
|
---|
113 | <B>Mode PIA (mode compatible TO7/70 et TO9)</B>
|
---|
114 | <P>
|
---|
115 | Seules 6 banques sont accessibles dans ce mode. Les bits 3 à 7 du
|
---|
116 | registre de direction du port B (DDRB) effectuent cette commutation.
|
---|
117 | <P>
|
---|
118 | exemple : (Le numero de la banque est dans le registre A)
|
---|
119 | <PRE>RCOM EQU $E7CB registre commande<BR>RDIR EQU $E7C9 registre
|
---|
120 | direction<BR>TABANK FCB $0f,$17,$e7,$67,$a7,$27
|
---|
121 | COMMUT PSHS D,X<BR> LDB RCOM<BR> ANDB #$FB<BR> STB RCOM<BR> LDX #TABANK<BR> LDA A,X<BR> STA RDIR<BR> ORB #$04<BR> STB RCOM<BR> PULS D,X<BR> RTS
|
---|
122 | </PRE>
|
---|
123 | <P>
|
---|
124 | <P>
|
---|
125 | Rem : Les numéros des banques ne se correspondant pas dans les 2 modes.
|
---|
126 | <P>
|
---|
127 | <H3>
|
---|
128 | I.4 Commutation des banques de ROM2:
|
---|
129 | </H3>
|
---|
130 | <P>
|
---|
131 | <P>
|
---|
132 | Cette commutation passe par le 6846 système. Le bit 4 du PRC situé
|
---|
133 | en E7C3 selectionne la banque de ROM moniteur (2pages).
|
---|
134 | <P>
|
---|
135 | <H3>
|
---|
136 | I.5 Commutation des banques de ROM1:
|
---|
137 | </H3>
|
---|
138 | <P>
|
---|
139 | <P>
|
---|
140 | Le mécanisme principal consiste à tenter d'écrire dans
|
---|
141 | la ROM. Une écriture à l'adresse 0000 commute la banque 0,
|
---|
142 | une écriture à l'adresse 0001 commute la banque 1, etc...
|
---|
143 | <P>
|
---|
144 | De plus, le bit 2 du PRC situé en E7C3 effectue la selection entre
|
---|
145 | la cartouche et la ROM interne
|
---|
146 | <P>
|
---|
147 | Enfin le registre E7E6 du Gate Mode Page permet de venir mapper une banque
|
---|
148 | de RAM dans cet emplacement
|
---|
149 | <H3>
|
---|
150 | I.6 Selection des pages de VRAM
|
---|
151 | </H3>
|
---|
152 | <P>
|
---|
153 | <P>
|
---|
154 | La sélection se fait par le bit 0 du PIA système situé
|
---|
155 | en E7C3
|
---|
156 | <UL>
|
---|
157 | <LI>
|
---|
158 | 1 -> forme
|
---|
159 | <LI>
|
---|
160 | 0 -> couleur
|
---|
161 | </UL>
|
---|
162 | <P>
|
---|
163 | Le mode d'affichage se selectionne par une écriture dans le Gate Array
|
---|
164 | à l'adresse E7DC
|
---|
165 | <UL>
|
---|
166 | <LI>
|
---|
167 | 5A - Mode compatible (40 colonnes)
|
---|
168 | <LI>
|
---|
169 | 5B - Mode 80 colonnes
|
---|
170 | <LI>
|
---|
171 | 59 - Mode Bitmap 4
|
---|
172 | <LI>
|
---|
173 | 5941 - Mode Bitmap 4 spécial
|
---|
174 | <LI>
|
---|
175 | 48 - Mode Page1 / 49 - Mode Page 2
|
---|
176 | <LI>
|
---|
177 | 4A - 4B - Mode Overlay
|
---|
178 | <LI>
|
---|
179 | 5E - Mode Bitmap 16
|
---|
180 | <LI>
|
---|
181 | 88-89-8A-8B - Mode Triple Overlay
|
---|
182 | </UL>
|
---|
183 | <P>
|
---|
184 | <HR>
|
---|
185 | <H2>
|
---|
186 | II Les Ports du TO8
|
---|
187 | </H2>
|
---|
188 | <P>
|
---|
189 | <H3>
|
---|
190 | II.1 6846 système
|
---|
191 | </H3>
|
---|
192 | <P>
|
---|
193 | E7C1 - CRC<BR>
|
---|
194 | E7C3 - PRC
|
---|
195 | <P>
|
---|
196 | CRC:
|
---|
197 | <UL>
|
---|
198 | <LI>
|
---|
199 | bit2 : Sortie Son 1bit
|
---|
200 | <LI>
|
---|
201 | CP1 : request clavier
|
---|
202 | <LI>
|
---|
203 | CP2 : Mute son pour souris
|
---|
204 | </UL>
|
---|
205 | <P>
|
---|
206 | PRC:
|
---|
207 | <UL>
|
---|
208 | <LI>
|
---|
209 | bit0(E/S) : Selection page VRAM (Forme/Fond)
|
---|
210 | <LI>
|
---|
211 | bit2(Sortie) : Sélection Cartouche/Basic
|
---|
212 | <LI>
|
---|
213 | bit3(Entrée) : Reflet LED clavier
|
---|
214 | <LI>
|
---|
215 | bit4(Sortie) : Sélection banque ROM moniteur
|
---|
216 | <LI>
|
---|
217 | bit5(Entrée) : Ack liaison clavier
|
---|
218 | <LI>
|
---|
219 | bit6(Entrée) : Busy imprimante
|
---|
220 | </UL>
|
---|
221 | <P>
|
---|
222 | <H3>
|
---|
223 | II.2 PIA système 6821
|
---|
224 | </H3>
|
---|
225 | <P>
|
---|
226 | <P>
|
---|
227 | E7C8 - PORTA ou DDRA<BR>
|
---|
228 | E7C9 - PORTB ou DDRB<BR>
|
---|
229 | E7CA - CRA<BR>
|
---|
230 | E7CB - CRB
|
---|
231 | <P>
|
---|
232 | PORTA:
|
---|
233 | <UL>
|
---|
234 | <LI>
|
---|
235 | bit0 : Keytest
|
---|
236 | <LI>
|
---|
237 | bit1-7 : D1 à D7 de l'imprimante
|
---|
238 | </UL>
|
---|
239 | <P>
|
---|
240 | PORT B:
|
---|
241 | <UL>
|
---|
242 | <LI>
|
---|
243 | bit0 : D0 de l'imprimante
|
---|
244 | <LI>
|
---|
245 | bit1 : strobe de l'imprimante
|
---|
246 | <LI>
|
---|
247 | bit2 : commande d'incrustation
|
---|
248 | </UL>
|
---|
249 | <P>
|
---|
250 | DDRB:
|
---|
251 | <UL>
|
---|
252 | <LI>
|
---|
253 | bit3-7 : Sélection banque RAM (mode compatible TO7/70 et TO9)
|
---|
254 | </UL>
|
---|
255 | <P>
|
---|
256 | CRB:
|
---|
257 | <UL>
|
---|
258 | <LI>
|
---|
259 | CB1 : signal code barre
|
---|
260 | </UL>
|
---|
261 | <P>
|
---|
262 | <H3>
|
---|
263 | II.3 PIA interface manette
|
---|
264 | </H3>
|
---|
265 | <P>
|
---|
266 | <P>
|
---|
267 | E7CC - PORTA ou DDRA<BR>
|
---|
268 | E7CD - PORTB ou DDRB<BR>
|
---|
269 | E7CE - CRA<BR>
|
---|
270 | E7CF - CRB
|
---|
271 | <P>
|
---|
272 | PORTA:
|
---|
273 | <UL>
|
---|
274 | <LI>
|
---|
275 | bit0-3 : Direction Joy0 D,G,B,H (1 au repos)
|
---|
276 | <LI>
|
---|
277 | bit4-7 : Direction Joy1
|
---|
278 | </UL>
|
---|
279 | <P>
|
---|
280 | PORTB:
|
---|
281 | <UL>
|
---|
282 | <LI>
|
---|
283 | bit0-5 : Convertisseur numérique -> analogique (son)
|
---|
284 | <LI>
|
---|
285 | bit6 : Fire Joy0 (1au repos)
|
---|
286 | <LI>
|
---|
287 | bit7 : Fire Joy1
|
---|
288 | </UL>
|
---|
289 | <P>
|
---|
290 | CRA:
|
---|
291 | <UL>
|
---|
292 | <LI>
|
---|
293 | CRA1 est relié au Fire Joy0
|
---|
294 | <LI>
|
---|
295 | CRA2 est relié au Fire Joy1
|
---|
296 | </UL>
|
---|
297 | <P>
|
---|
298 | <H3>
|
---|
299 | II.4 Les circuits "Gate Array"
|
---|
300 | </H3>
|
---|
301 | <P>
|
---|
302 | <P>
|
---|
303 | E7E5 - GE7E5<BR>
|
---|
304 | E7E6 - GE7E6 <BR>
|
---|
305 | E7E7 - GE7E7
|
---|
306 | <P>
|
---|
307 | GE7E5:
|
---|
308 | <UL>
|
---|
309 | <LI>
|
---|
310 | bit0-4: sélection banque ram
|
---|
311 | </UL>
|
---|
312 | <P>
|
---|
313 | GE7E6:
|
---|
314 | <UL>
|
---|
315 | <LI>
|
---|
316 | bit 4,3,2,1,0 : numéro de page RAM utilisée dans l'espace cartouche
|
---|
317 | ( de 0 a 31 )
|
---|
318 | <LI>
|
---|
319 | bit 5 : bit de sélection de l'espace cartouche<BR>
|
---|
320 | 0 l'espace cartouche n'est pas recouvert par de la RAM<BR>
|
---|
321 | 1 l'espace cartouche est recouvert par de la RAM dont le numéro est
|
---|
322 | donné par les bits 4 à 0
|
---|
323 | <LI>
|
---|
324 | bit 6 : bit de protection en écriture dans la page RAM
|
---|
325 | sélectionnée lorsque l'espace cartouche est recouvert pas cette
|
---|
326 | même page de RAM. ( bit 5 = 1 ). C'est ce qui permet de passer les
|
---|
327 | cartouches MEMO7 en disquettes et de les lancer avec l'option 4 du menu du
|
---|
328 | TO8.<BR>
|
---|
329 | 0 écriture impossible<BR>
|
---|
330 | 1 écriture autorisée
|
---|
331 | <LI>
|
---|
332 | bit 7 toujours à 0
|
---|
333 | </UL>
|
---|
334 | <P>
|
---|
335 | GE7E7:
|
---|
336 | <UL>
|
---|
337 | <LI>
|
---|
338 | bit4 : Selection mode commutation RAM (0 Mode PIA/1 Mode registre)
|
---|
339 | <LI>
|
---|
340 | bit5 : Selection 50/60Hz
|
---|
341 | <LI>
|
---|
342 | bit7 : Synchro Trame
|
---|
343 | </UL>
|
---|
344 | <P>
|
---|
345 | <P>
|
---|
346 | E7DA - P_WRITE<BR>
|
---|
347 | E7DB - P_INDEX<BR>
|
---|
348 | E7DC - G_MODE<BR>
|
---|
349 | E7DD - BORDER
|
---|
350 | <P>
|
---|
351 | P_INDEX : registre d'index de modification de palette (0-31)
|
---|
352 | <P>
|
---|
353 | P_WRITE : registre d'écriture dans la palette
|
---|
354 | <P>
|
---|
355 | G_MODE : Mode graphique
|
---|
356 | <P>
|
---|
357 | BORDER :
|
---|
358 | <UL>
|
---|
359 | <LI>
|
---|
360 | bit0 à 3: couleur à utiliser pour le pourtour de l'écran
|
---|
361 | <LI>
|
---|
362 | bit7 et bit6 : Page de Ram utilisée pour l' affichage<BR>
|
---|
363 | 00 - systeme normal type TO7<BR>
|
---|
364 | 01 - RAM1 <BR>
|
---|
365 | 10 - Bank 1<BR>
|
---|
366 | 11 - Bank 2
|
---|
367 | </UL>
|
---|
368 | <P>
|
---|
369 | </BODY></HTML>
|
---|