Emulation du PC-1600

Ici, on fait dans le petit, le LCD qui déchire sa race, on y cause même calculatrices quand on est en manque !

Modérateur : Politburo

Répondre
xtof78
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 136
Inscription : 29 avr. 2009 21:02
Localisation : Yvelines
Contact :

Re: Emulation du PC-1600

Message par xtof78 » 12 avr. 2010 12:15

charognard a écrit :j'ai commencé l'extraction

avec le programme maison suivant

Code : Tout sélectionner

OPEN "COM1:" FOR OUTPUT AS #1
FOR A=0TO &3FFF
B=PEEK# (0,A)
IF AMOD32=0THEN PRINT #1,"":PRINT #1,RIGHT$ ("000"+HEX$ A,4);":";
PRINT #1,RIGHT$ ("0"+HEX$ B,2);
NEXT
j'ai extrait cette zone
http://fr.normand.free.fr/sili/rom/romI-0.txt

je compte aussi faire les zones
dis moi si ça te convient ????
#0 &4000~&7FFF ROM II
#3 &4000~&7FFF ROM III
#6 &8000~&BFFF ROM IV
Charo, la bank3 comporte 2 zones de 16ko switchees par le port 3d du z80 (signal cs24).
As tu la possibilité de dumper la manquante? stp.

En échange, je te ferai une version HD2 ;-)
Cordialement, Christophe

Site PC1500: http://www.forever1500.fr

remy
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2086
Inscription : 13 mars 2006 16:39
Localisation : Issy
Contact :

Re: Emulation du PC-1600

Message par remy » 12 avr. 2010 12:39

Bonjour à tous,

Un petit état d'avancement de l'emulation.
Je galère un peu car il manque un paquet d'information dans les docs techniques. Elle sont moins détaillées que pour le 1500.
Mais j'ai enfin réussi à afficher un message au boot.
Image

Le boulot est trés trés loin d'etre fini, mais c'est un encouragement dont j'avais besoin :-)

Rémy
PockEmul, Emulateur de pocket Sharp, Canon, Casio, HP, TI, NEC, Panasonic, Sanco, Seiko, General, National, ....
sur Windows, Linux, OS X et Android
Available now on the Google Play Store and the Apple Store

Avatar de l’utilisateur
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4411
Inscription : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Re: Emulation du PC-1600

Message par charognard » 12 avr. 2010 14:00

xtof78 a écrit :
charognard a écrit :j'ai commencé l'extraction

avec le programme maison suivant

Code : Tout sélectionner

OPEN "COM1:" FOR OUTPUT AS #1
FOR A=0TO &3FFF
B=PEEK# (0,A)
IF AMOD32=0THEN PRINT #1,"":PRINT #1,RIGHT$ ("000"+HEX$ A,4);":";
PRINT #1,RIGHT$ ("0"+HEX$ B,2);
NEXT
j'ai extrait cette zone
http://fr.normand.free.fr/sili/rom/romI-0.txt

je compte aussi faire les zones
dis moi si ça te convient ????
#0 &4000~&7FFF ROM II
#3 &4000~&7FFF ROM III
#6 &8000~&BFFF ROM IV
Charo, la bank3 comporte 2 zones de 16ko switchees par le port 3d du z80 (signal cs24).
As tu la possibilité de dumper la manquante? stp.

En échange, je te ferai une version HD2 ;-)
de quoi tu parles ?
tu travail sur un émulo pc 1600 ?
quelle adresse ta zone ?

Avatar de l’utilisateur
Paul Tergeist
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2417
Inscription : 15 oct. 2007 15:50
Localisation : 3ème planète après le soleil

Re: Emulation du PC-1600

Message par Paul Tergeist » 12 avr. 2010 16:33

on est tous avec toi remy
Il y a 10 catégories de personnes dans le monde. Celle qui connait le binaire et l'autre.

remy
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2086
Inscription : 13 mars 2006 16:39
Localisation : Issy
Contact :

Re: Emulation du PC-1600

Message par remy » 12 avr. 2010 16:48

xtof78 a écrit : Charo, la bank3 comporte 2 zones de 16ko switchees par le port 3d du z80 (signal cs24).
As tu la possibilité de dumper la manquante? stp.
Je ne me suis pas encore penché sur ce probleme car ce port sert à switcher sur la ROM JAPAN.
Cette puce n'est présente que sur les 1600 Japonais et pas sur les versions export.
Quand je serai plus avancé, je regarderai ca.
PockEmul, Emulateur de pocket Sharp, Canon, Casio, HP, TI, NEC, Panasonic, Sanco, Seiko, General, National, ....
sur Windows, Linux, OS X et Android
Available now on the Google Play Store and the Apple Store

xtof78
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 136
Inscription : 29 avr. 2009 21:02
Localisation : Yvelines
Contact :

Re: Emulation du PC-1600

Message par xtof78 » 12 avr. 2010 17:48

Charo, et oui, grâce à tes docs et tes dumps, je me suis lancé dans l'aventure...

D'après l'analyse des logs du boot Z80A et LH5803 ainsi que la doc Allemande (dont j'ai traduis les parties importantes), le bit 2 du port 3D permet de switcher dans la Bank3 entre 2x16Ko.

La 2nde partie contient un bout de l'interpréteur Basic. Du coup, cela va être costaud à dumper sans un petit peu d'assembleur - puisque le prog Basic risque d'utiliser cette partie...

Les émulateurs crasheront dès que le Basic sera invoqué, mais pourront booter...
Cordialement, Christophe

Site PC1500: http://www.forever1500.fr

Avatar de l’utilisateur
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4411
Inscription : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Re: Emulation du PC-1600

Message par charognard » 12 avr. 2010 18:53

il va falloir effectivement un bout d'assembleur car en basic le OUT &3D,INP&3D OR 4 ne fait pas grand chose.
et il me semble avoir besoin de cette zone mémoire pour un eventelle émulateur.

au passage j'ai toutes les DOC du CANON X-07 aussi :wink:
pour le bout d'assembleur
quelqu'un s'y colle ?


j'ai 44ko sur mon PC1600 le bank de 16ko peut donc être copier totalement en MEV avant extraction traditionnelle


je me pencherai dessus des que possible mais je suis un peu pris actuellement ça sera donc pas tout de suite

remy
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2086
Inscription : 13 mars 2006 16:39
Localisation : Issy
Contact :

Re: Emulation du PC-1600

Message par remy » 15 avr. 2010 15:53

peut etre en utilsant l'utillitaire DEBUGGER proposé ici : http://www.sharp-pc-1600.de/ENG_Down_Maschine.html.
PockEmul, Emulateur de pocket Sharp, Canon, Casio, HP, TI, NEC, Panasonic, Sanco, Seiko, General, National, ....
sur Windows, Linux, OS X et Android
Available now on the Google Play Store and the Apple Store

Avatar de l’utilisateur
jvernet
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7838
Inscription : 24 mai 2002 09:57
Localisation : France 69
Contact :

Re: Emulation du PC-1600

Message par jvernet » 15 avr. 2010 16:10

charognard a écrit : au passage j'ai toutes les DOC du CANON X-07 aussi :wink:
pour le bout d'assembleur
quelqu'un s'y colle ?
L'émulateur X07 existe déja.
"l'ordinateur et l'homme sont les deux opposés les plus intégraux qui existent. L'homme est lent, peu rigoureux et très intuitif. L'ordinateur est super rapide, très rigoureux et complètement con."

Avatar de l’utilisateur
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4411
Inscription : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Re: Emulation du PC-1600

Message par charognard » 16 avr. 2010 22:45

Pour cette partie de ROM manquante je pense avoir trouvé quelque chose
d'abord je fais un INP&3D ça me retourne 120
ensuite je fais un INP&31 et là c'est XX que ça me retourne

sachant que l'instruction CALL du 1600 permet le passage d'une variable par la syntaxe CALL Adr,VAR
VAR --> DE et DE-->VAR si Carry=1

alors j'ai pensé le programme suivant

Code : Tout sélectionner

	LD A,66H
	OUT (031H),A	;Je pointe sur port 3 (basic AND 6)
	LD A,78H
	OUT (03DH),A	;Je pointe sur le PORT 3bis (comme en BASIC)
	LD A,(DE)	;Je prends la valeur de l'adresse parametrée
	LD D,0
	LD E,A
	LD A,060H
	OUT (031H),A	;Je pointe comme en Basic
	SCF		;La retenue pour le retour de valeur
	RET
ça me sort bien quelques chose avec ce programme
10 POKE &D000,&3E,&66,&D3,&31,&3E,&78,&D3,&3D,&1A,&16,&00,&5F,&3E,&60,&D3,&31
20 POKE &D010,&D3,&3D,&37,&C9
30 OPEN "COM1:" FOR OUTPUT AS #1
40 FOR W=&4000TO &7FFF
50 A=W
60 CALL &D000,A
70 IF WMOD32=0THEN PRINT #1,"":PRINT #1,RIGHT$ ("000"+HEX$ W,4);":";
80 PRINT #1,RIGHT$ ("0"+HEX$ A,2);
90 NEXT W
C'est stable maintenant et ça semble fonctionner correctement
Dernière édition par charognard le 17 avr. 2010 11:50, édité 3 fois.

xtof78
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 136
Inscription : 29 avr. 2009 21:02
Localisation : Yvelines
Contact :

Re: Emulation du PC-1600

Message par xtof78 » 16 avr. 2010 23:21

D'après la doc allemande, il faut mettre 0 dans le Port 3D pour accéder à la banque 3b.
Dans la ROM, seules des valeurs 2 ou 4 y sont écrites donc je ne suis pas sûr.

Pour l'accès à la banque 3, j'aurais plutôt fait qque chose comme

IN A,(031H)
LD C,A
AND 0F1H ==> Isoler les bits b1-b3
OR 06H ==> Bank 3 pour 4000-7FFF
OUT (031H), A

<..Lecture..>

LD A,C
OUT (031H), A ==> Restauration avant de continuer pour + de stabilité

pour ne pas toucher aux autres banks.

Quant au prg ASM, j'ai pour ma part, l'habitude d'écrire l'adresse et la valeur de retour par POKE dans des zones variables du BASIC.

On se retrouve avec un

PUSH (0xxxh)
POP HL
LD A,(HL)
LD (0yyyh),A

Tu mets l'adresse par POKE xxx, 11, 22 puis tu relis en BASIC par PEEK yyyy
Cordialement, Christophe

Site PC1500: http://www.forever1500.fr

Avatar de l’utilisateur
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4411
Inscription : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Re: Emulation du PC-1600

Message par charognard » 16 avr. 2010 23:49

j'ai extrait ça avec mon code
ça convient ?
ROM3b???

Avatar de l’utilisateur
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4411
Inscription : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Re: Emulation du PC-1600

Message par charognard » 17 avr. 2010 08:54

pour l'instruction CALL
c'est de manière intentionnelle que j'ai voulu l'utiliser
en effet avoir la possibilité de passer des paramètres à travers un CALL est interressant, on peut faire ses propres fonctions.
à noter d'ailleur qu'en basic, seul le SHARP 1600 incorpore une telle fonction (il y a il est vrai une bidouille sur le sharp 1500)
le problème c'est que la doc fournie avec l'appareil ne précise pas la Carry pour le retour et je me suis donc cassé les dents pendant un certain temps.
on peut aussi utiliser une variable alpha-numérique comme pont.

de plus en basic ça m'évite un POKE et un PEEK pour le passage des paramètres
1 seule instruction au lieu de trois !!!
Dernière édition par charognard le 22 avr. 2010 07:35, édité 2 fois.

xtof78
Fonctionne à 300 bauds
Fonctionne à 300 bauds
Messages : 136
Inscription : 29 avr. 2009 21:02
Localisation : Yvelines
Contact :

Re: Emulation du PC-1600

Message par xtof78 » 17 avr. 2010 09:37

Hello,

d'après le désassemblage, certaines zones ont l'air OK (zones avec les liens IOCS en début de ROM) mais de nombreuses adresses de port sont fausses.

Il y a pas mal d'OUT sur des ports aléatoirement répartis et tous les HALT n'ont pas de switch vers le LH5803 (usage principal du HALT sur le PC1600).

Je pense qu'il faut encore tuner la procédure...

A ton service pour la vérification :wink:
Cordialement, Christophe

Site PC1500: http://www.forever1500.fr

Avatar de l’utilisateur
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4411
Inscription : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Re: Emulation du PC-1600

Message par charognard » 17 avr. 2010 10:29

j'ai modifié mon programme ça extrait en 1 seule fois sans erreur
mais je ne suis pas rentrer dans le détail mais à premiere vu c'est les mêmes code
j'ai modifié plus haut mon programme utilisé et la ROM
c'est mieux ou pas ?

Répondre

Revenir vers « Tous les Pockets »