Strip-Tease d'un ZX-81
Modérateur : Politburo
-
Patrice
- Fonctionne à 300 bauds

- Messages : 159
- Inscription : 07 janv. 2008 00:06
- Localisation : Charente maritime
- Contact :
Toujours pas trouvé
C'est bien sur le site: http://zx81.ordi5.free.fr/
Où est-elle cette page Fast-Load pour ZX81
C'est bien sur le site: http://zx81.ordi5.free.fr/
Où est-elle cette page Fast-Load pour ZX81
Salut Patrice,
Problème de barres ?
http://zx81.ordi5.free.fr
Marche ... alors que
http://zx81.ordi5.free.fr/
ne marche pô!
Sur Mon Mozilla ça passe !
Bon retour aux sources:
Fast-Load:
Voilà, l'IPS Fast-Load est sauvé...
Monitor 16k, 64k
bootstrap
test
le tout dans le zip de la page sur les Fast-Load.
Donc sur
http://zx81.ordi5.free.fr/fastload
et pas ...
http://zx81.ordi5.free.fr/fastload/
... ça dépand de la moulinette...
Dump-Rom QS-Hrg:
Pourquoi faire simple ... quand on peut faire compliqué.
... Tout bêtement avec un fichier Wav 22k/8bit, non signés!!!
Je deviens un PrO dans la récupèrations des fichiers torturés pas le magnétisme ambient.
Je te propose ce programme pour sauvegarder ta Rom...

Ce zip contient le fichier P et l'assembleur
http://zx81.ordi5.free.fr/divers/QS-dump.zip
Voilà,
Bhaa! Quelle semaine !

Problème de barres ?
http://zx81.ordi5.free.fr
Marche ... alors que
http://zx81.ordi5.free.fr/
ne marche pô!
Sur Mon Mozilla ça passe !
Bon retour aux sources:
Fast-Load:
Voilà, l'IPS Fast-Load est sauvé...
Monitor 16k, 64k
bootstrap
test
le tout dans le zip de la page sur les Fast-Load.
Donc sur
http://zx81.ordi5.free.fr/fastload
et pas ...
http://zx81.ordi5.free.fr/fastload/
... ça dépand de la moulinette...
Dump-Rom QS-Hrg:
Pourquoi faire simple ... quand on peut faire compliqué.
... Tout bêtement avec un fichier Wav 22k/8bit, non signés!!!
Je deviens un PrO dans la récupèrations des fichiers torturés pas le magnétisme ambient.
Je te propose ce programme pour sauvegarder ta Rom...

Ce zip contient le fichier P et l'assembleur
http://zx81.ordi5.free.fr/divers/QS-dump.zip
Voilà,
Bhaa! Quelle semaine !
-
Patrice
- Fonctionne à 300 bauds

- Messages : 159
- Inscription : 07 janv. 2008 00:06
- Localisation : Charente maritime
- Contact :
Salut Xavier,Xavier a écrit :Salut Patrice,
Problème de barres ?
http://zx81.ordi5.free.fr
Marche ... alors que
http://zx81.ordi5.free.fr/
ne marche pô!
Sur Mon Mozilla ça passe !
Bon retour aux sources:
Fast-Load:
Voilà, l'IPS Fast-Load est sauvé...
Monitor 16k, 64k
bootstrap
test
le tout dans le zip de la page sur les Fast-Load.
Donc sur
http://zx81.ordi5.free.fr/fastload
et pas ...
http://zx81.ordi5.free.fr/fastload/
... ça dépand de la moulinette...
............................
Avec le dernier "/" ça fonctionne également
Ce matin ça fonctionne.
------------------------------------------------------------------------------------
[EDIT]
2 petites remarques:
-1- Dans ta page Fast-Load la 2 ième photo (Le signal d'enregistrement
en Fast- Load) n'apparaît que partiellement.
-2- Constat le fichier PDF de fast Load Monitor n'est pas lisible.
(Fichier endommagé et ne peut pas être réparé)
------------------------------------------------------------------------------------
[EDIT 2]
Je viens de lancer "Fast Load Monitor" (le tien) sur ton émulateur, à priori ce n'est pas le même que celui que je possède.
Pour lancer le mien, après l'avoir chargé il faut faire RAND USR 30460 et le résultat d'affichage est:
- LOAD
- SAVE
- TITRE
- CHECK
- DUMP
------------------------------------------------------------------------------------
@+
Dernière édition par Patrice le 16 août 2008 10:11, édité 1 fois.
Voilà,
Ma page http://zx81.ordi5.free.fr/fastload a été mise à jour.
Les fichiers communiqué par Patrice avec les documentations le seront aussi!
Merci Patrice.
kweeky !
Peux-tu scanner ta carte QS-HRG ?
Les anglais ... et les autres ... semblent confondre les cartes UDG (caractères en ROM) en psedo-HRG et la vrai HRG (Memotech, wrx, G007...)!
Ma page http://zx81.ordi5.free.fr/fastload a été mise à jour.
Les fichiers communiqué par Patrice avec les documentations le seront aussi!
Merci Patrice.
kweeky !
Peux-tu scanner ta carte QS-HRG ?
Les anglais ... et les autres ... semblent confondre les cartes UDG (caractères en ROM) en psedo-HRG et la vrai HRG (Memotech, wrx, G007...)!
- kweeky
- Fonctionne à 2400 bauds

- Messages : 1640
- Inscription : 05 oct. 2007 19:46
- Localisation : Pas très loin de Bordeaux
Salut
Excuse moi pour avoir mis si longtemps Xavier, mais j'ai été pas mal occupé IRL. Je t'envoie par mail le dump de la ROM. Et j'ai mis à jour mon blog, avec les dernières informations.
Deux remarques :
* Tu peux poker n'importe quoi en 10240, l'effet est le même : retour en mode texte. Comme je l'explique dans le blog, ceci est valable pour n'importe quel POKE dans la plage 10240-12287 qui correspond à la ROM de la QS-HRG. Par contre, un PEEK dans la même plage active le mode graphique. Je ne m'explique pas encore le phénomène.
* il s'agit bien de vrai Hires, pas de UDG, ni de pseudo : tu as bien toutes les combinaisons de pixels possibles (256 sur un octet).
Voilà. Pour ce qui est du scan, ça ne donne rien de probant, à cause de la différence de hauteur de certains composants. Dès que mon APN sera chargé (i.e. normalement demain), je prendrai des photos de la carte. J'en posterai ici, et je t'en enverrai une, afin que tu l'aies en HD.
@+ et bon courage...
Excuse moi pour avoir mis si longtemps Xavier, mais j'ai été pas mal occupé IRL. Je t'envoie par mail le dump de la ROM. Et j'ai mis à jour mon blog, avec les dernières informations.
Deux remarques :
* Tu peux poker n'importe quoi en 10240, l'effet est le même : retour en mode texte. Comme je l'explique dans le blog, ceci est valable pour n'importe quel POKE dans la plage 10240-12287 qui correspond à la ROM de la QS-HRG. Par contre, un PEEK dans la même plage active le mode graphique. Je ne m'explique pas encore le phénomène.
* il s'agit bien de vrai Hires, pas de UDG, ni de pseudo : tu as bien toutes les combinaisons de pixels possibles (256 sur un octet).
Voilà. Pour ce qui est du scan, ça ne donne rien de probant, à cause de la différence de hauteur de certains composants. Dès que mon APN sera chargé (i.e. normalement demain), je prendrai des photos de la carte. J'en posterai ici, et je t'en enverrai une, afin que tu l'aies en HD.
@+ et bon courage...
C'est une commutation basée sur les bits du bus de donnée de 2800-3FFF,"* Tu peux poker n'importe quoi en 10240, l'effet est le même : retour en mode texte. Comme je l'explique dans le blog, ceci est valable pour n'importe quel POKE dans la plage 10240-12287 qui correspond à la ROM de la QS-HRG. Par contre, un PEEK dans la même plage active le mode graphique. Je ne m'explique pas encore le phénomène. "
Si le /RD est activé à cette adresse : le mode graphique est activé et si le /WD du bus et activé ... le mode text est activé (commuté).
J'ai la ROM ... c'est à moi de jouer..
Salut !
Aussitôt dit ... aussitôt fait.
La Qs HRG est émulée sur zx81.vb81.free.fr
Version 28/08/08.
(la page principale n'est pas à jour !!!!, seul le fichier VB81_XuR_EXE.zip ... l'est)
Kweeky ... la Rom desassemblée et les spécifications téchniques sont dans le répertoire "HRG-CARD-doc/QS HRG".
Merci pour tout.
"RAND USR 11036" pour la routine de test et les exemples de Kweeky sont présents.
Au fait, ta ROM française ne semble pas marchée ("ZX81_FR.rom" du répertoire "ROMS")
Nota: la page n'est pas encore à jour.
A plus.
Vous n'avez plus de raison de ne pas tapper de programmes pour cette carte!
Have Fun ...
Aussitôt dit ... aussitôt fait.
La Qs HRG est émulée sur zx81.vb81.free.fr
Version 28/08/08.
(la page principale n'est pas à jour !!!!, seul le fichier VB81_XuR_EXE.zip ... l'est)
Kweeky ... la Rom desassemblée et les spécifications téchniques sont dans le répertoire "HRG-CARD-doc/QS HRG".
Merci pour tout.
"RAND USR 11036" pour la routine de test et les exemples de Kweeky sont présents.
Au fait, ta ROM française ne semble pas marchée ("ZX81_FR.rom" du répertoire "ROMS")
Nota: la page n'est pas encore à jour.
A plus.
Vous n'avez plus de raison de ne pas tapper de programmes pour cette carte!
Have Fun ...
Salut tout le monde,
1) elle peut-être utilisée en tant que RAM conventionnelle mais interdit cette zone avec une carte 64k.
2) Elle doit être en /RamCs et non en /RomCs donc l'UDG est impossible.
(tous les caractaires seron blanc ou on aurra un carré noir!)
Là tu oublies 1kb.
Tout comme la Memotech HRG, la Rom utilise un buffer de 1024 octets.
Mais, le problème c'est que je ne sais pas la réaction du Z80 avec un :
LD HL,**** ' Valeur sans importance.
LD DE,**** ' Valeur sans importance.
LD BC,0000 ' Compteur à 0.
LDIR
En deux mots... On copie une zone vide de HL vers DE et BC=BC-1 donc BC= -1 = FFFFh
-1 n'existe pas en assembleur (16bits), seul le flag de AF est modifié.
Mais, c'est une instruction interne et il doit y avoir un report d'erreur qui active/déactive la mémoire vidéo.(???)
7FFEh (32766) pour les registres d'utilisation.
7FFFh (32767) pour les informations "DATA".
Je ne pensse pas que cette adresse pose problème (pas de conflits matériel possible).
Mais, il est possible que ton deuxième jeu de mémoire 16k, qui commence en 8000h, après ta première carte 16k... elle, pose problème. voir si le RAM top ne peut pas être déplacé un peu plus bas ou sur les 32k, car le zx81 a la facheuse habitude de placer ses piles (stack) en fin de mémoire.
Sur les autres cartes cartes "Out xxx,a".
Il suffit de changer les OUTs dans les programes.
On est obligé de passé par quelques codes assembleurs pour envoyer l'info.
C'est à priori un conflit marteriel, tu peux retirer une carte 16k et faire les essais.
Je te fait une page sur la QS-HRG avec un petit mot sur la technique de l'UDG.
On pourra y placer les photos si tu es d'accord...
Mémoire buffer 1024o de la carte vidéo:
Il y a beaucoup à dire...
Je retourne sur le XuR pour trouver l'interaction matériel de la commutation de la mémoire!
Utiliser cette zone mémoire n'a pas beaucoup d'importance ... mais tu pourras y loger ta rom française... les 1024 preniers octets qui contiennent le text.
Pour l'instant j'utilise une jambe de bois pour la commutation de la mémoire 0h à 400h.
Si j'arrive à trouver ... l'émulation serai plus proche de la réalité.
Autre:
On ce retrouve avec un D_File (792 octets) gérré par la ROM et l'interruption d'affichage des points redirigé par le registre d'interuption IR.
Et une mémoire d'écran V_File (6144) gérré par la carte.
La carte graphique ne fait pas écho de la frappe car l'affichage de cette carte n'est pas gérré par l'interruption IR, qui est utilisée par la ROM exclusivement.
Avec un PEEK, on fait commuter l'affichage mais seul l'écran Basic est changé!
Donc, la saisie basic qui utilise le D_file, doit ce faire en aveugle.
Soit on a l'écran graphique ... soit, sur le D_File Basic.
Et là on à les deux !!!
Bon, cela s'explique par la méthode de l'affichage UDG et WRX.
Nous avons vu que l'interruption IR était utilisé par la ROM.
C'est l'adresse des 512o de la table des points qui forment les caractères à l'écran.
En Basic (par défaut en ROM), IR est fixé à 1E00h au démarrage.
Pour afficher un caractére la ROM commance à 1E00h (ou I=1Eh et le poiteur R=0)et prend un train de 8 octets.
8 lignes de 8 bits succécifs.... ça forme un caractère.
L'UDG ce contante de modifier ces 512o ... pour modifier les caractères graphiques.
Ha! Oui ... 512o ... Il manque des trucs ...
Non !
64 caractères seulement... les autres sont des inverses avec un +128 (xor 80h...) où B7 est à un.
Je reviens à IR... Si on pointe l'adresse IR vers le buffer de la carte, une RAM vide...
On a une table de caractère redéfinis avec 8 ligne de 00000000 !
Tout les caractères seront vides... sauf l'inversion de chaque caractère, l'inverse d'un carré blanc ... c'est un carré noir!
C'est CQFD.
La carte réoriente le IR vers son buffer à A000h au lieu de 1E00h.
Force IR (B7 et B5 à 1) pour afficher son buffer.
Et la ROM va chercher ... bêtement sa table de caractère en A000h.
Si on appuie sur le bouton, IR (B1, B2, B3 et B4 à 1) retrouve ses petits caractères d'origine en 1Eh.
Donc, on ne touche pas au D_file et imaginons copier les 512o dans le buffer...
Théoriquement, la table de caractère serai présente... mais formerait un "dessin" de n'importe quoi... Mais le curseur (les caractères) serai visible!
En deux mots ... les caractéres sont bien là en mode graphique, le D_file ne change pas...
Mais, ils sont écrit en blanc/ou carrés en vidéo inversée.
Pour le Peek et le Poke c'est une astuce matériel qui force IR avec le /RD et /WR du bus d'extension, sur la plage de l'adresse rom de 2800h à 2FFFh.
C'est pas simple tout ça...
La RAM est adressée en A000h... sur la carte.>Encore bien des questions restent sans réponses : tout d'abord l'étrange comportement de la
>zone 10240-12287 vis à vis des PEEK et des POKE. Et à quoi servent donc les 6 Ko de RAM
>embarqués sur la carte ? Peut-on s'en servir, par exemple, pour faire des caractères
>redéfinis (UDG) ? Il reste du boulot.
1) elle peut-être utilisée en tant que RAM conventionnelle mais interdit cette zone avec une carte 64k.
2) Elle doit être en /RamCs et non en /RomCs donc l'UDG est impossible.
(tous les caractaires seron blanc ou on aurra un carré noir!)
Là tu oublies 1kb.
Tout comme la Memotech HRG, la Rom utilise un buffer de 1024 octets.
Mais, le problème c'est que je ne sais pas la réaction du Z80 avec un :
LD HL,**** ' Valeur sans importance.
LD DE,**** ' Valeur sans importance.
LD BC,0000 ' Compteur à 0.
LDIR
En deux mots... On copie une zone vide de HL vers DE et BC=BC-1 donc BC= -1 = FFFFh
-1 n'existe pas en assembleur (16bits), seul le flag de AF est modifié.
Mais, c'est une instruction interne et il doit y avoir un report d'erreur qui active/déactive la mémoire vidéo.(???)
Heu... sur EO ... qui émule la QS-Sound,les adresses sont :>Un dernier mot : dans le billet précédent, j'avais parlé de mon futur test de la carte son
>QS-SOUND, grâce aux exemples trouvés dans le bouquin... Déception, le ZX reste muet comme
>une carpe. Alors que le petit ampli BF embarqué fonctionne... Et que j'ai bien utilisé les
>adresses 32766 et 32767 qui correspondent normalement à la carte... Un petit espoir
>cependant : en examinant la carte, on voit qu'il y a eu quelques modifications: peut-être
>que la logique d'adressage a été modifié, pour une raison connue seulement de l'auteur de
>cette modification... J'essaierai de me pencher sur le problème dès que j'aurai un petit
>peu de temps...
7FFEh (32766) pour les registres d'utilisation.
7FFFh (32767) pour les informations "DATA".
Je ne pensse pas que cette adresse pose problème (pas de conflits matériel possible).
Mais, il est possible que ton deuxième jeu de mémoire 16k, qui commence en 8000h, après ta première carte 16k... elle, pose problème. voir si le RAM top ne peut pas être déplacé un peu plus bas ou sur les 32k, car le zx81 a la facheuse habitude de placer ses piles (stack) en fin de mémoire.
Sur les autres cartes cartes "Out xxx,a".
Il suffit de changer les OUTs dans les programes.
On est obligé de passé par quelques codes assembleurs pour envoyer l'info.
C'est à priori un conflit marteriel, tu peux retirer une carte 16k et faire les essais.
Je te fait une page sur la QS-HRG avec un petit mot sur la technique de l'UDG.
On pourra y placer les photos si tu es d'accord...
Mémoire buffer 1024o de la carte vidéo:
Il y a beaucoup à dire...
Je retourne sur le XuR pour trouver l'interaction matériel de la commutation de la mémoire!
Utiliser cette zone mémoire n'a pas beaucoup d'importance ... mais tu pourras y loger ta rom française... les 1024 preniers octets qui contiennent le text.
Pour l'instant j'utilise une jambe de bois pour la commutation de la mémoire 0h à 400h.
Si j'arrive à trouver ... l'émulation serai plus proche de la réalité.
Autre:
Normal, la mémoire écran a changée.> Autre bizarrerie : lorsque le mode graphique est à l'écran : les caractères que l'on peut
>taper n'apparaissent pas.
On ce retrouve avec un D_File (792 octets) gérré par la ROM et l'interruption d'affichage des points redirigé par le registre d'interuption IR.
Et une mémoire d'écran V_File (6144) gérré par la carte.
La carte graphique ne fait pas écho de la frappe car l'affichage de cette carte n'est pas gérré par l'interruption IR, qui est utilisée par la ROM exclusivement.
Avec un PEEK, on fait commuter l'affichage mais seul l'écran Basic est changé!
Donc, la saisie basic qui utilise le D_file, doit ce faire en aveugle.
Pas trop normal en effet, mais cela s'explique.> Par contre, à la position où devrait se trouver le curseur, il
>apparait un pavé : un carré de 8 pixels sur 8 en vidéo inversée.
Soit on a l'écran graphique ... soit, sur le D_File Basic.
Et là on à les deux !!!
Bon, cela s'explique par la méthode de l'affichage UDG et WRX.
Nous avons vu que l'interruption IR était utilisé par la ROM.
C'est l'adresse des 512o de la table des points qui forment les caractères à l'écran.
En Basic (par défaut en ROM), IR est fixé à 1E00h au démarrage.
Pour afficher un caractére la ROM commance à 1E00h (ou I=1Eh et le poiteur R=0)et prend un train de 8 octets.
8 lignes de 8 bits succécifs.... ça forme un caractère.
L'UDG ce contante de modifier ces 512o ... pour modifier les caractères graphiques.
Ha! Oui ... 512o ... Il manque des trucs ...
Non !
64 caractères seulement... les autres sont des inverses avec un +128 (xor 80h...) où B7 est à un.
Je reviens à IR... Si on pointe l'adresse IR vers le buffer de la carte, une RAM vide...
On a une table de caractère redéfinis avec 8 ligne de 00000000 !
Tout les caractères seront vides... sauf l'inversion de chaque caractère, l'inverse d'un carré blanc ... c'est un carré noir!
C'est CQFD.
La carte réoriente le IR vers son buffer à A000h au lieu de 1E00h.
Force IR (B7 et B5 à 1) pour afficher son buffer.
Et la ROM va chercher ... bêtement sa table de caractère en A000h.
Si on appuie sur le bouton, IR (B1, B2, B3 et B4 à 1) retrouve ses petits caractères d'origine en 1Eh.
Donc, on ne touche pas au D_file et imaginons copier les 512o dans le buffer...
Théoriquement, la table de caractère serai présente... mais formerait un "dessin" de n'importe quoi... Mais le curseur (les caractères) serai visible!
En deux mots ... les caractéres sont bien là en mode graphique, le D_file ne change pas...
Mais, ils sont écrit en blanc/ou carrés en vidéo inversée.
Pour le Peek et le Poke c'est une astuce matériel qui force IR avec le /RD et /WR du bus d'extension, sur la plage de l'adresse rom de 2800h à 2FFFh.
C'est pas simple tout ça...


