TAVERNIER 6809
Modérateurs : Papy.G, fneck, Carl
- michel guyot
- Messages : 654
- Inscription : 20 mars 2016 16:01
- Localisation : Pyrénées orientales
Re: TAVERNIER 6809
Bonjour jb_jb_fr
J'ai réussi a écrire les deux routines Receiver (Transfert PC vers TAVERNIER) et Sender (Transfert TAVERNIER vers PC)
Pour l'instant, le code est un peu brut de fonderie.
Je vais supprimer les bouts de codes inutiles et peut-être améliorer l'ergonomie.
Je le mettrais en ligne une fois cela fait.
Bien sur si quelqu'un s'est livré au même exercice, cela m'intéresse de pouvoir comparer....
Je n'ai pas recherché la performance, j'essaie de coller au protocole XMODEM de base (simple Check-Sum) et j'utilise sur mon PC l' HyperTerminal en 1200 bauds
J'ai fait quelques recherches sur le web, je n'ai trouvé qu'un exemple de code XMODEM/CRC écrit pour un 65C02.
Pourtant, il doit bien exister d'autre exemple en code 6809
Une question me trotte dans la tête: combien de personnes dispose aujourd'hui d'un TAVERNIER ?
Michel
J'ai réussi a écrire les deux routines Receiver (Transfert PC vers TAVERNIER) et Sender (Transfert TAVERNIER vers PC)
Pour l'instant, le code est un peu brut de fonderie.
Je vais supprimer les bouts de codes inutiles et peut-être améliorer l'ergonomie.
Je le mettrais en ligne une fois cela fait.
Bien sur si quelqu'un s'est livré au même exercice, cela m'intéresse de pouvoir comparer....
Je n'ai pas recherché la performance, j'essaie de coller au protocole XMODEM de base (simple Check-Sum) et j'utilise sur mon PC l' HyperTerminal en 1200 bauds
J'ai fait quelques recherches sur le web, je n'ai trouvé qu'un exemple de code XMODEM/CRC écrit pour un 65C02.
Pourtant, il doit bien exister d'autre exemple en code 6809
Une question me trotte dans la tête: combien de personnes dispose aujourd'hui d'un TAVERNIER ?
Michel
Re: TAVERNIER 6809
Bonjour Michel
Voila un petit aperçu de mon code 6809 pour recevoir en XModem:
En esperant que cela puisse t'aider
Jacques
Voila un petit aperçu de mon code 6809 pour recevoir en XModem:
En esperant que cela puisse t'aider
Jacques
Code : Tout sélectionner
Xmdm.Fsn rmb 1
Xmdm.Cnt rmb 1
Xmdm.Crc rmb 1
Xmdm.Flag rmb 1
ldb #$01
stb >Xmdm.Fsn ; Initialize the XModem FSN to 1
ldx #CartridgeBase ; Initialize the Receive Data pointer on start of Memory
Wait_on_char:
ldy #$0001
Wait_1: lda <(MC6551+StatReg) ; Wait Character from Sender
anda #Stat.RxF
bne CharPresent ; There is a character => treat it
leay -1,y ; No character : Decrease the Time Out counter
bne Wait_1 ; Counter != 0 =>Wait a new character
CRC_KO: lda #C$NACK ; Counter = 0 => Send a NACK response
CRC_OK: sta <(MC6551+DataReg)
bra Wait_1
CharPresent:
lda <(MC6551+DataReg) ; Read Data
cmpa #C$EOT ; Is it EOT (End Of Transmission)
beq XModemEnd ; Yes => The transfert is finished
cmpa #C$SOH ; Is it a SOH Char (Start Of Header)
bne Wait_on_char ; No-> go in NACK Loop
ReadFsn:
lda <(MC6551+StatReg) ; Wait the FSN Character (Frame Sequence Number)
anda #Stat.RxF
beq ReadFsn
lda <(MC6551+DataReg) ; Read Data
tst >Xmdm.Flag ; Read the FSN Flag
beq Fsn_OK ; If 0, it is the first transmition frame, the FSN is not verified
cmpa >Xmdm.Fsn ; Is it the Correct FSN (Frame Sequence Number)
beq Fsn_Ok ; Yes => OK, continue the treatment
deca ; No => Compare with FSN-1 to see if it is a rettransmission
cmpa >Xmdm.Fsn ; Is it Previous FSN (Frame Sequence Number)
bne Wait_on_char ; No-> go in NACK Loop
leax -128,x ; Yes-> Rewind the DataPointer to receive the same block
Fsn_Ok:
inca ; Increase the FSN
sta >Xmdm.Fsn ; Store it in memory
ldb #128 ; XModem Payload Size (128 bytes)
stb >Xmdm.Cnt
stb >Xmdm.Flag ; Set the FSN Flag to verify the FSN value
ReadNFsn:
lda <(MC6551+StatReg) ; Wait the ~(FSN) and ignore it
anda #Stat.RxF
beq ReadNFsn
lda <(MC6551+DataReg)
clrb ; Clear the Payload CRC
ReadPayload:
lda <(MC6551+StatReg) ; Wait Payload data
anda #Stat.RxF
beq ReadPayload
lda <(MC6551+DataReg) ; Read Payload data
sta ,x ; Store data in memory
addb ,x+ ; Calc CRC and increase data counter
dec >Xmdm.Cnt ; decrease Xmodem counter
bne ReadPayload ; Not finished
stb >Xmdm.Crc ; Save Payload CRC
ReadCrc:
lda <(MC6551+StatReg) ; Wait Payload CRC
anda #Stat.RxF
beq ReadCrc
ldb <(MC6551+DataReg) ; Read Payload CRC
lda #C$ACK ; Initialize the response to ACK
ldy #$0000 ; Initialize the Wait counter
cmpb >Xmdm.Crc ; Compare received CRC to Calculated CRC
beq CRC_OK ; CRC equal ==> Send ACK response and wait the next frame
leax -128,x ; CRC different, rewind tha data pointer
dec >Xmdm.Fsn ; Decrease FSN Number
bra CRC_KO ; Send NACK response, and wait the new frame
XModemEnd:
lda <(MC6551+StatReg) ; Wait Character from Sender
anda #Stat.TxE
beq XModemEnd
lda #C$ACK ; End of Transmission: Send ACK to the Emitter
sta <(MC6551+DataReg)
- michel guyot
- Messages : 654
- Inscription : 20 mars 2016 16:01
- Localisation : Pyrénées orientales
Re: TAVERNIER 6809
Bonjour,
Comme promis voici à quoi ressemblent les deux routines qui me permettent de transférer un fichiers de mon PC vers mon TAVERNIER et vice versa.
Pour infos
La liaison RS232 fonctionne en 1200 bauds
Après lancement d'une des routine, j'utilise suivant le cas le menu "Transfert/Envoyer un fichier" ou Transfert/Recevoir un fichier" de l' HyperTerminal mode XMODEM
La routine XMRCV25A stocke le fichier reçu en page 2 ce qui me permet de recevoir en un seul fichier de taille suffisante pour afficher sur ma carte graphique VM9938, une image.bmp 256x212 256couleurs 8bits. La routine XMSEN20A elle utilise (pour l'instant) la page 1 pour stocker le fichier à transmettre au PC Michel
Comme promis voici à quoi ressemblent les deux routines qui me permettent de transférer un fichiers de mon PC vers mon TAVERNIER et vice versa.
Pour infos
La liaison RS232 fonctionne en 1200 bauds
Après lancement d'une des routine, j'utilise suivant le cas le menu "Transfert/Envoyer un fichier" ou Transfert/Recevoir un fichier" de l' HyperTerminal mode XMODEM
La routine XMRCV25A stocke le fichier reçu en page 2 ce qui me permet de recevoir en un seul fichier de taille suffisante pour afficher sur ma carte graphique VM9938, une image.bmp 256x212 256couleurs 8bits. La routine XMSEN20A elle utilise (pour l'instant) la page 1 pour stocker le fichier à transmettre au PC Michel
- michel guyot
- Messages : 654
- Inscription : 20 mars 2016 16:01
- Localisation : Pyrénées orientales
Re: TAVERNIER 6809
Bonjour à tous
Ci-dessous, un exemple de transfert d'une image .bmp du PC vers ma carte graphique VM9938 sur TAVERNIER
La première mouture de logiciel transférait l'image avec quelques erreurs (cf image du Canigou diffusée précédemment)
Ma dernière mouture plus conforme au protocole XMODEM avec CS évite les erreurs de transmission
Michel
Image récupérée sur la carte graphique du TAVERNIER:
Image d'origine:
Ci-dessous, un exemple de transfert d'une image .bmp du PC vers ma carte graphique VM9938 sur TAVERNIER
La première mouture de logiciel transférait l'image avec quelques erreurs (cf image du Canigou diffusée précédemment)
Ma dernière mouture plus conforme au protocole XMODEM avec CS évite les erreurs de transmission
Michel
Image récupérée sur la carte graphique du TAVERNIER:
Image d'origine:
Re: TAVERNIER 6809
Excellent
Il faut vraiment que je trouve la place pour ressortir le Tavernier ...
Il faut vraiment que je trouve la place pour ressortir le Tavernier ...
- michel guyot
- Messages : 654
- Inscription : 20 mars 2016 16:01
- Localisation : Pyrénées orientales
Re: TAVERNIER 6809
Bonjour à tous
Ci-dessous le listing de ma dernière mouture
Ce code me permet de transférer un fichier du PC vers mon Tavernier et vice-versa
Sauf erreur de ma part il respecte le protocole XMODEM-CRC
TAVERNIER piloté par l'Hyperterminal via la liaison RS232 de la carte CPU09
Envoi de fichier PC vers TAVERNIER
Lancement routine XMRCV et envoi du fichier par le menu "Transfert/Envoyer un fichier" sur Hyperterminal
Envoi de fichier TAVERNIER vers PC
Lancement routine XMSEND et reception de fichier par le menu "Transfert/Recevoir un fichier" sur Hyperterminal
Dans chaque cas le stockage du fichier sur TAVERNIER est effectué en page 2
Cordialement
Michel
Ci-dessous le listing de ma dernière mouture
Ce code me permet de transférer un fichier du PC vers mon Tavernier et vice-versa
Sauf erreur de ma part il respecte le protocole XMODEM-CRC
TAVERNIER piloté par l'Hyperterminal via la liaison RS232 de la carte CPU09
Envoi de fichier PC vers TAVERNIER
Lancement routine XMRCV et envoi du fichier par le menu "Transfert/Envoyer un fichier" sur Hyperterminal
Envoi de fichier TAVERNIER vers PC
Lancement routine XMSEND et reception de fichier par le menu "Transfert/Recevoir un fichier" sur Hyperterminal
Dans chaque cas le stockage du fichier sur TAVERNIER est effectué en page 2
Cordialement
Michel
- michel guyot
- Messages : 654
- Inscription : 20 mars 2016 16:01
- Localisation : Pyrénées orientales
Re: TAVERNIER 6809
Bonjour à tous,
Ci-dessous le listing des deux routines qui fonctionnent ensembles et qui me permette de :
- transférer une image .bmp de mon PC vers le TAVERNIER
- de la traiter pour l'afficher sur la carte graphique de mon TAVERNIER
Pour exemple
Image .bmp d'origine image obtenue sur TAVERNIER
Ci-dessous le listing des deux routines qui fonctionnent ensembles et qui me permette de :
- transférer une image .bmp de mon PC vers le TAVERNIER
- de la traiter pour l'afficher sur la carte graphique de mon TAVERNIER
Pour exemple
Image .bmp d'origine image obtenue sur TAVERNIER
- michel guyot
- Messages : 654
- Inscription : 20 mars 2016 16:01
- Localisation : Pyrénées orientales
Re: TAVERNIER 6809
Bonjour 6502man
Bonne Année à tous
Une nouvelle image transférée au TAVERNIER pour l'occasion...
Bonne Année à tous
Une nouvelle image transférée au TAVERNIER pour l'occasion...
Re: TAVERNIER 6809
Cette image donne un moins bon résultat certainement du au ton trop sombre.
- michel guyot
- Messages : 654
- Inscription : 20 mars 2016 16:01
- Localisation : Pyrénées orientales
Re: TAVERNIER 6809
Bonjour 6502man
La composante couleur bleue pour le VM9938 est codée sur 2 bits ce qui offre seulement 4 niveaux....Pour certaines images avec des aplats le rendu est donc moins bon....
Comme je vois que les foules se passionnent pour les jeux du Comodore C64, une question me traverse l'esprit :
Serait-il envisageable de faire tourner un de ces jeux sur mon TAVERNIER équipé de la carte graphique couleur VM9938 ?
Le C64 tourne avec un processeur 6510 proche du 6502, une taille de RAM de 64Ko...
Est-ce une idée farfelue ?
Michel
La composante couleur bleue pour le VM9938 est codée sur 2 bits ce qui offre seulement 4 niveaux....Pour certaines images avec des aplats le rendu est donc moins bon....
Comme je vois que les foules se passionnent pour les jeux du Comodore C64, une question me traverse l'esprit :
Serait-il envisageable de faire tourner un de ces jeux sur mon TAVERNIER équipé de la carte graphique couleur VM9938 ?
Le C64 tourne avec un processeur 6510 proche du 6502, une taille de RAM de 64Ko...
Est-ce une idée farfelue ?
Michel
- michel guyot
- Messages : 654
- Inscription : 20 mars 2016 16:01
- Localisation : Pyrénées orientales
Re: TAVERNIER 6809
Bonjour à tous
Une autre image...
Celle obtenue
Celle d'origine
Une autre image...
Celle obtenue
Celle d'origine
Re: TAVERNIER 6809
Farfelue ? Peut-être un peu quand même car le C64 tourne avec un processeur proche du 6502 et vous avez un 6809...
Alors pourquoi pas regarder du côté des Dragon, TOMO et autres Coco...
Alors pourquoi pas regarder du côté des Dragon, TOMO et autres Coco...
- michel guyot
- Messages : 654
- Inscription : 20 mars 2016 16:01
- Localisation : Pyrénées orientales
Re: TAVERNIER 6809
Bonjour 6502man
je suis à la recherche d'un ou plusieurs exemples de jeux qu'il me serait possible en les adaptant, de les faire tourner sur mon TAVERNIER...
J'ai trouvé quelques infos sur le site concernant le micro ALICE basé sur le 6809 il y a quelques années, et pour lequel il devait exister des exemples
assez simples pour tenter l'exercice.
Aurais-tu gardé en mémoire des pistes qui pourraient m'aider à trouver de petits exemples....
Cordialement
Michel Guyot
je suis à la recherche d'un ou plusieurs exemples de jeux qu'il me serait possible en les adaptant, de les faire tourner sur mon TAVERNIER...
J'ai trouvé quelques infos sur le site concernant le micro ALICE basé sur le 6809 il y a quelques années, et pour lequel il devait exister des exemples
assez simples pour tenter l'exercice.
Aurais-tu gardé en mémoire des pistes qui pourraient m'aider à trouver de petits exemples....
Cordialement
Michel Guyot
Re: TAVERNIER 6809
Bonsoir, Michel,
Sur Alice il n'y à qu'un seul jeu qui en vaille la peine c'est Crocky, sinon les autres jeux Loriciels.
Après il y à une énorme différence entre le Tavernier 6809 et l'Alice => son CPU 6803 et son VDP EF-9345 (minitel) .
Mais tu peux toujours tenter l'exercice, j'avais publié des projets abandonné pour Alice dont un jeu (avec les sources) sur le forum il me semble, mais ca date de quelques années, au pires je devrais pouvoir les retrouver dans mes archives ...
Sur Alice il n'y à qu'un seul jeu qui en vaille la peine c'est Crocky, sinon les autres jeux Loriciels.
Après il y à une énorme différence entre le Tavernier 6809 et l'Alice => son CPU 6803 et son VDP EF-9345 (minitel) .
Mais tu peux toujours tenter l'exercice, j'avais publié des projets abandonné pour Alice dont un jeu (avec les sources) sur le forum il me semble, mais ca date de quelques années, au pires je devrais pouvoir les retrouver dans mes archives ...