I'm no expert, but that looks like a Thomson MO5 running* BASIC on my very own 6809 CPU :meow_party_bounce:
(Yes it beeps annoyingly every time you press a key. Really.)
*no light pen, no tape, no floppy, just BASIC, but still. I think it's neat.
#hotkeyemu #thomson #mo5 #mc6809
@grum999 Here's what's left (mostly in the $10-$1F block)
(plus I have to check the 'illegal' opcodes next, and do a bit of cleanup to remove some duplication)
@grum999 Yes, mostly 6809 opcodes. I'm almost done now.
Unfortunately I didn't find a "cpu test" rom for the 6809 like I found for the Z80 and 6502, so I'm going blind - there might be subtle bugs I'll find much later.
I should do unit tests but they take a lot of time and you don't know if the tests are good anyway unless you run the same on a real 6809
I've done minimal code for the MO5 just to have a screen and keyboard.
I'm doing the video "for real" next.
Funny thing is I haven't implemented NOP opcode yet (which does nothing), because I go with what the MO5 rom uses and implement as needed.
And the MO5 has not used NOP yet. Maybe it never does.
Yes I know it would take less time to implement the NOP opcode than to write this toot.
Deal with it. :meow_fluffy_deal_with_it:
@grum999 Specifically it was the COMPAR subroutine that failed because of a bug in the COMA opcode (complement accumulator).
But I had to understand how it's working to pinpoint where it failed (that's why I explained how the screen is parsed in my first post)
OK, this is freakin' HUGE.
I've implemented enough of the 6809 CPU so that the Thomson MO5 ROM is able to do some initialization and write a prompt to the screen memory.
(I'm just dumping the content of the pixel RAM when the emulator dies (on an unimplemented opcode))
So you don't get too excited: the CPU is not done, and the MO5 is not really emulated, just some bits hacked together.
Still... :fast_meow_party:
You what they say: a journey of a thousand miles begins with a single step.
So, well, my CPU can load an immediate value in the B register. It's something! ¯\_(ツ)_/¯
(I now the disassembly on the right gives the impression that it's "done" but that part is separate from the actual emulation. Because reasons.
Meaning the monitor can do a partial disassembly of machine code but that doesn't mean that the emulated CPU "knows" the instructions. Right now it only knows "C6")
Oh my :meow_sweats2:
Motorola, you naughty girl!
Hey that's reset done, I guess.
Now I just need to do... *checks notes* everything.
But not today :meow_sleep:
PS: Argh frickin' Motorola with your frickin' big-endian CPUs, get with the times, will ya?
Après quelques petites corrections je peux adresser la RAM de la carte vidéo depuis la carte CPU 6809.
Le bus est coupé 50% du temps pour laisser la place aux accès RAM vidéo, c'est complètement transparent pour le CPU.
Comme cela fonctionne j'ai commencé à ajouter la suite du montage : en bas à gauche le générateur de synchros et au centre à droite de la RAM les compteurs d'adresse vidéo.
Je ne suis plus très loin de pouvoir faire un premier test !
#retrocomputing #mc6809
J'ai commencé à monter la carte vidéo, pour l'instant juste de quoi connecter le CPU sur la RAM (une SRAM de 128Ko, seuls 16Ko vont servir dans un premier temps). Les circuits vides correspondent à la partie génération du signal vidéo (ce qui était sur la plaque d'essai + de quoi s'interfacer sur le bus du 6809.
Je testerai tout ça demain !
#retrocomputing #mc6809
Et ça fonctionne ! 🎉 J'ai adapté le moniteur Assist09 pour correspondre aux modifications que j'ai faites sur la carte, et j'ai également fait une nouvelle version du code de la GAL pour correspondre au nouveau plan d'adressage.
J'ai ajouté un sélecteur pour faire tourner le CPU à 1 ou 2Mhz : le 6809 que j'ai ici (prévu pour 1Mhz) fonctionne sans problème au double de la fréquence !
#retrocomputing #mc6809
J'ai ajouté un module sur ma carte 6809 pour avoir une horloge pour le CPU (oscillateur de 16Mhz + diviseurs) et une autre pour l'ACIA (9600/19200 bauds avec un quartz de 4.915Mhz). Dans le montage original il n'y avait qu'un seul oscillateur (3.686Mhz) mais ce n'est pas adapté pour faire de la vidéo.
Il va s'insérer à la place de la nvram qui n'est pas nécessaire (+quelques fils sous la carte !)
Si ça fonctionne bien je pense que je ferai une V2 du PCB avec cette modif
#retrocomputing #mc6809
Bon, même un petit système avec un 6809 ne tiendra pas sur ce qui me reste de breadboard ! Mais ce n'est pas grave, je vais pouvoir réutiliser mon système monocarte (système Flex09 , décrit ici https://www.64kforanybody.com/2021/08/lflex21-part1.html ) en utilisant juste une partie, pour le reste je vais transférer le montage du breadboard vers une plaque à trous qui sera au dessus.
Pour les plus curieux, sur la photo de droite le système complet (avec une extension vidéo en cours depuis quelque temps !)
#retrocomputing #mc6809
J'ai reçu ma carte SDDRIVE pour le TO7-70 : elle permet de simuler un lecteur de disquettes avec des images contenues sur une carte micro sd. La description est ici http://dcmoto.free.fr/bricolage/sddrive/index.html
Je l'ai testé rapidement tout à l'heure, ça marche très bien !
#retrocomputing #thomson #to7 #mc6809
#retrocomputing #Thomson #to7 #mc6809
J'ai remplacé la DRAM qui ne fonctionnait pas sur mon TO7-70 (confirmé à l'oscilloscope). J'en ai profité pour mettre un support, ce qui a pour avantage pour plus tard de bien voir où était le problème (et si besoin ça évite de re-dessouder le circuit !)
Et ça fonctionne ! Là où j'avais avant un fond noir j'ai retrouvé le fond bleu ciel sur l'écran de démarrage ! 🎉
#retrocomputing #thomson #to7 #mc6809
#retrocomputing #Thomson #to7 #mc6809
J'ai reçu le deuxième lecteur de disquettes pour le Tavernier 6809, c'est un Tandon TM100-2a (40 pistes, double face). Avec les jumpers positionnés correctement il fonctionne parfaitement, il n'y a plus qu'à mettre les 2 lecteurs+l'alim un coffret !
#retrocomputing #floppydiscs #mc6809
#retrocomputing #floppydiscs #mc6809