Est-ce que quelqu'un a la séquence de boot du CPC désassemblée ? Au moins jusqu'à l'initialisation du CRTC incluse (ce qui doit arriver assez vite) ?
Je suis toujours en train de debugger mon 6128 CRTC1 defecteux. Pas de HSYNC, VSYNC en sortie du CRTC, alors que les clocks et alim sont bonnes. Ça veut dire pour moi 2 choses: - Soit le CRTC est mort - Soit le CRTC a été mal programmé
Du coup, je délaisse un peu l'oscilloscope pour l'analyseur logique et je regarde les signaux de lecture/écriture des registres du CRTC: E, RS, CS, RW, et bus de données. J'aimerais comprendre si ce que j'observe sur les fils correspond bien à ce que le boot est sensé faire.
Inscription : 20 Août 2013, 18:03 Message(s) : 258
gotcha a écrit :
Hello,
Est-ce que quelqu'un a la séquence de boot du CPC désassemblée ? Au moins jusqu'à l'initialisation du CRTC incluse (ce qui doit arriver assez vite) ?
Je suis toujours en train de debugger mon 6128 CRTC1 defecteux. Pas de HSYNC, VSYNC en sortie du CRTC, alors que les clocks et alim sont bonnes. Ça veut dire pour moi 2 choses: - Soit le CRTC est mort - Soit le CRTC a été mal programmé
Du coup, je délaisse un peu l'oscilloscope pour l'analyseur logique et je regarde les signaux de lecture/écriture des registres du CRTC: E, RS, CS, RW, et bus de données. J'aimerais comprendre si ce que j'observe sur les fils correspond bien à ce que le boot est sensé faire.
Merci !
Une version ici : http://cpctech.cpc-live.com/docs/os.asm De facon generale, le CRTC est programmé des le démarrage, bien avant d'utiliser la RAM. Si tu n'as pas un signal en sortie du CPC (le minimum est un border noir avec un fond d’écran gris) les coupables sont soit : - le Z80 - la ROM systeme - le CRTC - le gate array (+ oscillateur )
Si tu veux vérifier la séquence de boot, regardes donc addr / data / rdn / wrn / mreqn / iorqn du Z80
J'ai pu trouver le code d'initialisation du CRTC par le Z80. J'ai aussi réussi à trouver cette séquence au niveau des entrées du CRTC avec l'analyseur logique. Comme l'analyseur n'a que 8 canaux, je n'ai regardé pour l'instant que les 4 bits de poids faible sur l'entrée data du CRTC et ça me semble cohérent avec le code du Z80.
Je vais maintenant regarder plus en détail et aussi regarder les bits de poids fort, mais le CRTC semble bien recevoir les commandes d'initialisation. J'ai donc de plus en plus l'impression que c'est le CRTC qui pose problème. S'il est bien programmé, mais qu'il ne sort pas les signaux de synchro, c'est lui qui doit être le fautif.
Code :
;; initialise display ;; starting with register 15, then down to 0 05b4 010fbc ld bc,$bc0f 05b7 ed49 out (c),c ; select CRTC register 05b9 2b dec hl 05ba 7e ld a,(hl) ; get data from table 05bb 04 inc b 05bc ed79 out (c),a ; write data to selected CRTC register 05be 05 dec b 05bf 0d dec c 05c0 f2b705 jp p,$05b7
;; continue with setup... 05c3 1820 jr $05e5 ; (+$20)
;; CRTC data for 50Hz display 05c5 defb &3f, &28, &2e, &8e, &26, &00, &19, &1e, &00, &07, &00,&00,&30,&00,&c0,&00
Pièce jointe :
DSC05817_DxO.jpg
Pièce jointe :
6128_CRT_prog_full.png
Pièce jointe :
6128_CRT_prog_end.png
Vous n’êtes pas autorisé(e) à consulter les fichiers insérés à ce message.
Dernière édition par gotcha le 22 Oct 2017, 13:06, édité 1 fois.
Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 25 invité(s)
Vous ne pouvez pas publier de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas insérer de pièces jointes dans ce forum