Page 1 sur 4
[ GOUPIL 3 ] debut émulation ROM
Publié : 29 mars 2018 23:26
par 6502man
J'ai commencé à émuler le moniteur du GOUPIL 3 (carte 6809)
J'ai mis en place le système de "pagination" de la RAM (translateur), l’émulation de l'ACIA clavier, le décodage de la VRAM, le décodage alambiqué de la ROM.
Le moniteur tourne mais je n'ai pas encore d'affichage.
Leduigou m'aide à comprendre le fonctionnement de ce G3, mais il y a encore du boulot ...
Je suis parti des sources de Dctavernier, Merci Daniel
C'est du C utilisant les API Windows standard.
Re: [ GOUPIL 3 ] émulation 6809 moniteur
Publié : 29 mars 2018 23:52
par yo_fr
Super !
tu développes sur quel langage ?
Re: [ GOUPIL 3 ] émulation 6809 moniteur
Publié : 30 mars 2018 11:41
par 6502man
En C, je viens de compléter le premier message du post
Re: [ GOUPIL 3 ] émulation 6809 moniteur
Publié : 30 mars 2018 11:52
par 6502man
La partie affichage s'initialise correctement maintenant, les registres du MC6845 sont bien renseigné et la ram vidéo rempli d'espace et d'attributs
Maintenant il me reste à étudier la partie qui correspond au boot :
Code : Tout sélectionner
;*
; * POINT D'ENTREE A FROID
;*
;* INITIALISATION VARIABLES M.A.P. ET EDITION MESSAGE
42A1 0F1A CLR /$1A 6
42A3 1CAF ANDCC #$AF 3
42A5 BD4C0C JSR $4C0C 8
42A8 CCF001 LDD #$F001 3
42AB BD4D6E JSR $4D6E 8
42AE F61000 LDB $1000 5
42B1 C1A5 CMPB #$A5 2
42B3 260B BNE $42C0 3
42B5 C6F1 LDB #$F1 2
42B7 FDECEA STD $ECEA 6
42BA 8EA001 LDX #$A001 3
42BD 7E434A JMP $434A 4
42C0 CCF401 LDD #$F401 3
42C3 BD4D6E JSR $4D6E 8
42C6 F61000 LDB $1000 5
42C9 C1A5 CMPB #$A5 2
42CB 2610 BNE $42DD 3 ==> saut vers affichage message boot
42CD C6F5 LDB #$F5 2
42CF FDECE0 STD $ECE0 6
42D2 C30202 ADDD #$0202 4
42D5 FDECE2 STD $ECE2 6
42D8 8E0001 LDX #$0001 3
42DB 206D BRA $434A 3
42DD 8E4C18 LDX #$4C18 3 ==> adresse du message de boot
42E0 3F40 SWI #$40 19 ==> swi avec fonction code $40
Le but c'est d'arriver à ce que le programme arrive en $42DD pour afficher le message du boot, car pour l'instant il n'y arrive jamais, il arrive bien en $42A1 ....
Je vais investiguer pour voir exactement ce qui ce passe dans cette partie ...
Re: [ GOUPIL 3 ] émulation 6809 moniteur
Publié : 31 mars 2018 16:10
par 6502man
Bon il y a un truc qui coince car une fois arrivé en $42A5 il ne revient jamais en $42A8 et le processeur ce perd dans des instructions incohérentes puisque pointant la ou il n'y a aucun programme à exécuter
Il y a peut être un cas que je n'ai pas prévu ou la pagination ne ce fait pas correctement mais je ne voit pas pour l'instant ou
Ce que j'ai compris des docs :
Code : Tout sélectionner
E-0000 à E-FFFF = RAM 64Ko
F-4000 à F-7FFF = ROM 2
F-A000 à F-DFFF = ROM 1 ==> copie en F-F800-F-FFFF (2ko haut de l'eeprom)
F-F000 à F-F7FF = zone des entrées sorties
F-FFF0 à F-FFFF = translateur d'adresse RAM
x-FF00 à x-FFEF = zone permanente de la ROM
Si quelqu'un vois ou j'ai mal interprété la doc, votre aide seras la bienvenue
Edit:
j'ai identifié l'endroit ou sa "déraille" :
Le saut en $5011 arrive sur de la RAM et plante
Code : Tout sélectionner
;500F 8602 LDA #$02
;5011 AD9FEC80 JSR [$EC80]
;5015 2011 BRA $5028
mémoire en $EC40-$EC8F
;EC40 5e ee 4f 8d 5e ee 00 00 00 00 51 a1 51 a6 52 57 ................
;EC50 52 5d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
;EC60 51 b3 51 b3 52 0f 52 62 52 67 00 00 00 00 00 00 ................
;EC70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
;EC80 65 a4 65 a4 65 9a 00 00 52 22 52 6c 52 71 00 00 ................
le translateur: FE 00 00 00 F4 F5 FA Fb 00 00 00 00 F8 F9 EF FF
Et je pense que le problème est que le translateur pointe vers le mauvais endroit $65A4 soit une fois translaté => FA5A4 donc il y a bien un truc que je n'ai pas compris ou mal émulé
Re: [ GOUPIL 3 ] émulation 6809 moniteur
Publié : 01 avr. 2018 09:33
par 6502man
Ca y est j'ai l'affichage du boot du G3
J'ai volontairement émulé le fond d'écran de la zone utile "bleuté"
Maintenant je vais m'attaqué à la gestion du clavier qui n'est pas encore totalement opérationnelle ...
A suivre.
- DCPG3.jpg (39.37 Kio) Consulté 7336 fois
Re: [ GOUPIL 3 ] émulation 6809 moniteur
Publié : 01 avr. 2018 10:24
par leduigou
Bravo, beau travail !
Félicitations
Re: [ GOUPIL 3 ] émulation 6809 moniteur
Publié : 01 avr. 2018 11:27
par 6502man
L’émulation clavier fonctionne, on peut utiliser le moniteur du G3
Il me reste à régler le défilement de l'affichage ...
- DCPG3_2.jpg (84.63 Kio) Consulté 7322 fois
Re: [ GOUPIL 3 ] émulation 6809 moniteur
Publié : 01 avr. 2018 11:58
par Totor le Butor
Wouahhhhhhhhhh !!!
Ca me laisse rêveur, trop fort
.
Re: [ GOUPIL 3 ] émulation 6809 moniteur
Publié : 01 avr. 2018 12:03
par 6502man
Merci
Re: [ GOUPIL 3 ] émulation 6809 moniteur
Publié : 02 avr. 2018 10:33
par 6502man
Le défilement de l'affichage fonctionne ainsi que le mode page
Il me reste à régler les dimensions de la fenêtre d'affichage en 25 lignes de 80 colonnes ...
- CDPG3.jpg (161.6 Kio) Consulté 7289 fois
Re: [ GOUPIL 3 ] émulation 6809 moniteur
Publié : 02 avr. 2018 20:47
par 6502man
L’émulateur fonctionne je suis entrain de peaufiner les fonctionnalités générales et je vous proposerais une version beta, si vous êtes sages
Re: [ GOUPIL 3 ] émulation mode 6809
Publié : 02 avr. 2018 23:36
par leduigou
Très beau travail, maintenant une disquette à booter
Re: [ GOUPIL 3 ] debut émulation ROM
Publié : 03 avr. 2018 17:01
par 6502man
L'émulation des disquettes c'est encore un nouveau domaine pour moi, mais pour ça il faut que j'ai des dumps (RAW) des disquettes et surtout que je connaisse leurs structures
Je ne garantie pas d'y arriver mais je peux essayer ...
Il existe quoi comme OS sur Goupil 3 hormis le Flex 3 ???
Re: [ GOUPIL 3 ] debut émulation ROM
Publié : 03 avr. 2018 21:55
par leduigou
Pour le 6809, je ne connaît que le FLEX.
Les disquettes sont standard et l’emulation du Tavernier sera réutilisable.
Une difficulté sera de mettre l’émulation du passage du trou d’index. Le G3 vérifie la rotation de la disquette comme cela.
J’ai aussi des images des disquettes du même format que pour le Tavernier. Je ne les ai pas testées mais leurs modifications est simple en cas de problème
Tu es en bonne voie ...