Rétro-ingénierie d'un mod Zx81

C'est la catégorie reine de l'ordinophile, 8 bits et pas un de plus!
Single board ou bus S-100 acceptés.

Modérateurs : Papy.G, fneck, Carl

Avatar de l’utilisateur
jeffounet
Messages : 1563
Inscription : 25 janv. 2020 06:59
Localisation : Les Angles (30)

Re: Rétro-ingénierie d'un mod Zx81

Message par jeffounet »

Bonjour Patrice,

Il n'y a pas que cela sinon elles seraient sur toutes les lignes d'adresse!!
Je crois que cela à voir avec le fonctionnement de l'ULA mais mes souvenirs sont assez flou et je ne retrouve pas l'endroit où j'ai trouvé l'info.
Je vais creuser un peu!

Bonne soirée

Jean-François
Il n'y a que 11 sortes de gens, ceux qui comprennent ceux qui ne comprennent pas et ceux qui me font répéter!
Jean-François
Avatar de l’utilisateur
jeffounet
Messages : 1563
Inscription : 25 janv. 2020 06:59
Localisation : Les Angles (30)

Re: Rétro-ingénierie d'un mod Zx81

Message par jeffounet »

Un début de réponse:
Une petite recherche sur Google en tapant"zx81 resistans r18 à r26" permière réponse obtenu!

Extrait de cette page: http://www.silicium.org/forum/viewtopic.php?t=25916

...
Pour comprendre le problème, il faut savoir que l'affichage des charactères est effectué par le composant Sinclair que l'on nomme ULA.
En regardant le schéma du ZX81, On peut voir que le bus d'adressage de A0 à A8 (qui sort du Z80 et qui va vers le connecteur du ZX), ne va pas directement vers la ROM.
Une resistance (R18-R26) s'intercale entre le Z80 et la ROM.
Du Z80 à la résistance nous avons A0,A1...A8 et de la résistance à la ROM A0',A1'...A8'.

Ces résistances sont là pour "affaiblir" le signal d'adressage vers la ROM pour rendre les informations du ULA prioritaires.
Donc, l'adressage du Z80 est ignoré lorsque le ULA donne des informations du pointage vidéo de la ROM.

Mais, comme la ligne d'adresse du connecteur est lié au bus du Z80, nous perdons des informations lors de l'envoie d'une adresse sur la ROM via le ULA.
Une ROM avec un adressage en A0 (connecteur/Z80)... et non en A0' (ULA), ne vas jamais recevoir de signaux d'adressage en provenance du ULA.
Donc, l'affichage ne pointera pas au bon endroit (table des caractères) dans la ROM pour générer les caractères.
...

Voilà la réponse

Bonne soirée

Jean-François
Il n'y a que 11 sortes de gens, ceux qui comprennent ceux qui ne comprennent pas et ceux qui me font répéter!
Jean-François
Avatar de l’utilisateur
Patrice
Messages : 1517
Inscription : 14 janv. 2008 10:42
Localisation : https://www.ville-saintes.fr/
Contact :

Re: Rétro-ingénierie d'un mod Zx81

Message par Patrice »

Bonsoir Jean-François,
Non cette protection ne concerne que les lignes I/O (ULA et Z80). Un court-circuit sur les lignes d'adressage n'aurait pas la même incidence.
Avatar de l’utilisateur
bubulemaster
Messages : 1082
Inscription : 01 juil. 2014 13:48
Localisation : Nantes

Re: Rétro-ingénierie d'un mod Zx81

Message par bubulemaster »

jeffounet a écrit : 16 nov. 2022 17:57 ...
Merci Jeff, j'ai effectivement mal cherché sur internet :oops:

Cela explique bien pourquoi il n'y a que la ligne A0 à A8 avec une résistance.
C'est sacrément tiré par les cheveux comme fonctionnement :lol: à croire que les ingénieurs se sont lancés à l'époque un défit pour faire un truc complètement fou :D

Peut-être que la protection en cas de court-circuit est un effet secondaire :?
Le 80286 et suivant sont des processeurs beaucoup trop évolués qui n'auraient jamais dû être inventés :-).
Vinted | Le bon coin | Ebay
Fred_72
Messages : 1131
Inscription : 22 mai 2019 13:10
Localisation : Sarthe

Re: Rétro-ingénierie d'un mod Zx81

Message par Fred_72 »

C'est encore plus tordu car il y a le même système sur le bus de données.
C'est pour forcer le Z80 à faire des NOP pendant la génération du signal vidéo. La ROM fournit les pixels formant les caractères tandis que le Z80 assure le comptage via les NOP.

Il n'y a aucune recherche de protection de CC car les CI logiques sont limités en courant de sortie.
Avatar de l’utilisateur
bubulemaster
Messages : 1082
Inscription : 01 juil. 2014 13:48
Localisation : Nantes

Re: Rétro-ingénierie d'un mod Zx81

Message par bubulemaster »

Wouah, c'est bien compliqué :lol:

Si je comprend bien. Quand l'affichage se fait, c'est le ULA qui va lire dans la ROM pour avoir la table de caractères.

Le ULA est connecté en direct à la ROM et qu'après, il y a les résistances sur les fils d'adresse qui provoquent une chute de tension certainement suffisant pour que les puces de RAM ne le prennent pas en compte.

RP1 permet de faire du NOP pendant l'affichage des caractères.

Bon, pour les résistances R7 à R14 par contre, le positionnement des résistances m'étonnent, je m'attendais à la même architecture que les adresses.
Le 80286 et suivant sont des processeurs beaucoup trop évolués qui n'auraient jamais dû être inventés :-).
Vinted | Le bon coin | Ebay
Fred_72
Messages : 1131
Inscription : 22 mai 2019 13:10
Localisation : Sarthe

Re: Rétro-ingénierie d'un mod Zx81

Message par Fred_72 »

Tu trouveras le schéma bloc et une petite explication du fonctionnement ici :
http://searle.x10host.com/zx80/zx80.html

Le ZX81 n'est qu'une évolution du ZX80 auquel il ajoute un générateur d'interruption pour assurer un affichage plus stable. Donc on peux raisonner à partir du schéma du ZX80 qui est réalisé avec des CI logiques simples. Le ZX81 intègre toute cette logique dans l'ULA ce qui rend son fonctionnement plus mystérieux.
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Rétro-ingénierie d'un mod Zx81

Message par __sam__ »

Fred_72 a écrit : 17 nov. 2022 18:20 Le ZX81 n'est qu'une évolution du ZX80 auquel il ajoute un générateur d'interruption pour assurer un affichage plus stable.
Cf le film sur Sinclair où l'on voit les ingénieurs essayer d'éviter (péniblement) que lorsqu'on appuie sur une touche, la vidéo saute parce que le CPU ne peut générer l'écran et gérer une touche appuyée en même temps sans déborder la durée du vbl.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Avatar de l’utilisateur
bubulemaster
Messages : 1082
Inscription : 01 juil. 2014 13:48
Localisation : Nantes

Re: Rétro-ingénierie d'un mod Zx81

Message par bubulemaster »

J'ai fini mon investigation.

Il me reste une dernière question sur les modifications apportées à la carte mère.

La résistance R2 a été supprimée pour que les IC4b et et IC4a ne reçoivent pas le signal et donc ne soit jamais activé.

Par contre, la suppression des résistances R18 à R16 et la connexion de faite entre R23 et la pin 17 du IC4b est un mystère.

J'ai trouvé une explication intéressante du fonctionnement de l'ULA et des résistances ici aussi https://retrocomputing.stackexchange.co ... n-the-zx81
Pièces jointes
hack_sur_carte_mere.png
hack_sur_carte_mere.png (761.56 Kio) Consulté 1777 fois
Le 80286 et suivant sont des processeurs beaucoup trop évolués qui n'auraient jamais dû être inventés :-).
Vinted | Le bon coin | Ebay
Avatar de l’utilisateur
bubulemaster
Messages : 1082
Inscription : 01 juil. 2014 13:48
Localisation : Nantes

Re: Rétro-ingénierie d'un mod Zx81

Message par bubulemaster »

Et voilà, j'ai ajouté au premier message le schéma logique pour la mémoire. Reste plus qu'à comprendre à quelle adresse elle répond.

Sur ce site ZX80/ZX81 Memory Mirrors and Expansions, je vois que les 1K de mémoire répondent de 4000-43FF, l'extension 16K répond à 4000-7FFF.

Donc je me dis que c'est ce que ça fait.
Le 80286 et suivant sont des processeurs beaucoup trop évolués qui n'auraient jamais dû être inventés :-).
Vinted | Le bon coin | Ebay
Répondre