TAVERNIER 6809
Modérateurs : Papy.G, fneck, Carl
- irios
- Messages : 3398
- Inscription : 04 nov. 2007 19:47
- Localisation : Rochefort du Gard (30)
- Contact :
Re: TAVERNIER 6809
Je pense Michel que ce lien te sera utile : http://map.grauw.nl/resources/video/yam ... 58_ocr.pdf
Bon bricolage.
Bon bricolage.
http://irioslabs.over-blog.com/
La connaissance ne vaut que si elle est partagée par tout le monde.
I2C
La connaissance ne vaut que si elle est partagée par tout le monde.
I2C
- Papy.G
- Modérateur
- Messages : 3054
- Inscription : 10 juin 2014 13:40
- Localisation : Haute-Garonne/Gers
Re: TAVERNIER 6809
Carrément le 9958 maintenant!
Michel, si tu veux simplifier, tu peux même partir sur des boitiers DIP de plus grosse capacité et en 8 bits, ça aura toujours l'air d'être d'époque, pour simplifier encore plus le câblage, tu peux t'orienter vers des SRAM, si le processeur graphique le supporte.
Peut-être même que les schémas trouvés n'utilisent pas le maximum d'espace d'adressage de mémoire Vidéo, viser le maximum ne devrait pas représenter un surcoût insurmontable à notre époque.
Michel, si tu veux simplifier, tu peux même partir sur des boitiers DIP de plus grosse capacité et en 8 bits, ça aura toujours l'air d'être d'époque, pour simplifier encore plus le câblage, tu peux t'orienter vers des SRAM, si le processeur graphique le supporte.
Peut-être même que les schémas trouvés n'utilisent pas le maximum d'espace d'adressage de mémoire Vidéo, viser le maximum ne devrait pas représenter un surcoût insurmontable à notre époque.
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.
Demandez-en plus, ou faites-le vous-même.
- michel guyot
- Messages : 616
- Inscription : 20 mars 2016 16:01
- Localisation : Pyrénées orientales
Re: TAVERNIER 6809
Bonjour 6502man,
Il me faut un peu de temps analyser la datasheet du V99xx et savoir comment générer les lignes d'interface…
Une question après une première lecture, concernant le décodage d'adresse, si je comprend bien, cette extension n'occupe en fait que une ou deux adresses pour communiquer avec le VDP ?
Par contre sa programmation m'a l'air un peu complexe, ton aide me sera certainement utile en temps voulu
A+
Michel
Il me faut un peu de temps analyser la datasheet du V99xx et savoir comment générer les lignes d'interface…
Une question après une première lecture, concernant le décodage d'adresse, si je comprend bien, cette extension n'occupe en fait que une ou deux adresses pour communiquer avec le VDP ?
Par contre sa programmation m'a l'air un peu complexe, ton aide me sera certainement utile en temps voulu
A+
Michel
Re: TAVERNIER 6809
Le 9918 utilise 2 ports par contre le 9938 ou 9958 utilisent 4 ports en tout cas sur MSX2 et +
Exemple pour les MSX :
Pour la quantité de Vram tu peux configurer comme tu veux dans la limite de 192Ko évidemment moins il y à de Vram moins tu pourras exploiter les mode graphiques haute résolution
Tu peux regarder sur ce databook TMS9938 :
http://bitsavers.informatik.uni-stuttga ... _Aug85.pdf
Exemple pour les MSX :
Code : Tout sélectionner
#98 VRAM data read/write port
#99 (write) == VDP register write port
#99 (read) == Status register read port
#9A Palette access port (only v9938/v9958)
#9B Indirect register access port (only v9938/v9958)
Tu peux regarder sur ce databook TMS9938 :
http://bitsavers.informatik.uni-stuttga ... _Aug85.pdf
Re: TAVERNIER 6809
J'ai oublié aussi de préciser que l'on peut faire de l'incrustation vidéo avec les TMS9938 ou TMS9958
- michel guyot
- Messages : 616
- Inscription : 20 mars 2016 16:01
- Localisation : Pyrénées orientales
Re: TAVERNIER 6809
Bonjour 6502man
Bon, je crois avoir trouvé comment adapter les signaux au bus 6809. Je dis bien je crois ! Les essais me le diront…!
Pour l'instant je réunis les différents composants nécessaires. Faire tenir le tout sur une carte d'essais à bandes me donne du fil à retordre. sans parler du V9938 qui est en boitier DIL shrink…!
Une requête en vu des 1ers test sur le hard quand j'y serai….Disposerais-tu à titre d'exemple de quelques lignes de code Z80 qui consiste à écrire ou lire un octet dans la RAM ?
Il n'y a pas d'urgence, mais cela m'aidera en évitant de cumuler les pannes matérielles avec des erreurs de soft
Cordialement
Michel
Bon, je crois avoir trouvé comment adapter les signaux au bus 6809. Je dis bien je crois ! Les essais me le diront…!
Pour l'instant je réunis les différents composants nécessaires. Faire tenir le tout sur une carte d'essais à bandes me donne du fil à retordre. sans parler du V9938 qui est en boitier DIL shrink…!
Une requête en vu des 1ers test sur le hard quand j'y serai….Disposerais-tu à titre d'exemple de quelques lignes de code Z80 qui consiste à écrire ou lire un octet dans la RAM ?
Il n'y a pas d'urgence, mais cela m'aidera en évitant de cumuler les pannes matérielles avec des erreurs de soft
Cordialement
Michel
Re: TAVERNIER 6809
pourquoi ne pas avoir contacter Christian T.? (http://www.tavernier-c.com/contactez-moi.htm)
- Totor le Butor
- Messages : 2237
- Inscription : 07 sept. 2011 16:14
- Localisation : Paris - Mezels
Re: TAVERNIER 6809
... car il ne répond pas aux questions concernant son ordinateur .
Born to bricole
[Rch] Vieux composants électroniques et circuits intégrés toute époque et vieilles cartes .
[Rch] Vieux composants électroniques et circuits intégrés toute époque et vieilles cartes .
Re: TAVERNIER 6809
Ce n'est pas la même démarche de chercher par soi même à créer une carte d'extension pour une machine que de demander au créateur de la machine la solution
Pour un exemple de code d'écriture en VRAM je ressort mes sources pour ce VDP, d'ailleurs j'en avais fait un jeu :
https://www.6502man.com/RetroCoding/New ... NYKF87.php
Les routines de services que j'avais mis en place pour ce jeu :
C'est bien entendu destiné pour un MSX2 ou +, mais ca te donne une idée de départ.
les Out et IN sur 6809 seront à remplacer par des STA, STB, STU ....
Par contre lors de mes tests j'avais mis en évidence une gestion logique différente de la gestion physique de la RAM en mode SCREEN 8, il faut que je retrouve précisément, mais de mémoire les données ne sont pas écrites séquentiellement en RAM mais plutôt par pair et impaire en mémoire haute ou basse, je vérifie car si tu veux analyser les données écrite en RAM ça risque de te donner des surprises
Sinon un collègue m'a passé un schéma pour remplacer les DRAMs par des SRAMs j'arrive pas à joindre le pdf, mais j'ai trouvé la source :
SRAM
Au cas où ça peut te servir
Pour un exemple de code d'écriture en VRAM je ressort mes sources pour ce VDP, d'ailleurs j'en avais fait un jeu :
https://www.6502man.com/RetroCoding/New ... NYKF87.php
Les routines de services que j'avais mis en place pour ce jeu :
Code : Tout sélectionner
; VDP I/O Ports MSX2
;----------------------
VDPCTRL .EQU $99 ; PORT #1
VDPDATA .EQU $98 ; PORT #0
VDPPALETTE .EQU $9A ; PORT #2
VDPRegInd .EQU $9B ; PORT #3 ; registres indirectes
Code : Tout sélectionner
;-------------------------------------------
; Fixe le mode du VDP en mode SCREEN8
; bitmap 256x212 en 256 couleurs
;-------------------------------------------
ModeGfx
ld hl,DataGfx
ld b,20
ld c,VDPCTRL
otir
RET
; R0 R1 R2 R3 R4 R5 R6 R7 R8 R9
DataGfx .db $06,$80,$60,$81,$1f,$82,$80,$83,$01,$84,$ef,$85,$0F,$86,$01,$87,$08,$88,$82,$89
Code : Tout sélectionner
;-------------------------------------------
; initialisation de la palette (256 couleurs) screen 8
; IN : B= numéro de palette (datas)
;-------------------------------------------
InitPalette
LD A,B
CP $01
JR Z,Fillpalette1
CP $02
JR Z,Fillpalette2
CP $03
JR Z,Fillpalette3
LD HL,PaletteRGB4
JR Fillpalettez
Fillpalette3
LD HL,PaletteRGB3
JR Fillpalettez
Fillpalette2
LD HL,PaletteRGB2
JR Fillpalettez
Fillpalette1
LD HL,PaletteRGB
Fillpalettez
LD A,00
OUT (VDPCTRL),a
LD A,16 +$80 ; 00=> reg16 (palette)
OUT (VDPCTRL),A ; numéro palette n°A autoincrementé après 2 ecriture sur port 2 (RGB)
LD B,32
FillPalet
LD A,(HL)
INC HL
OUT (VDPPALETTE),A
DJNZ FillPalet
RET
Code : Tout sélectionner
;-------------------------------------------
; >>>> TITLE <<<<
;
; affiche la page d'intro
;-------------------------------------------
; mapper konami 8Ko
LD A,$12
LD (Konami8),A
LD A,$13
LD (KonamiA),A
Title2VRAM
LD BC,$0000 ; 1eme ligne
CALL SetVDPAddress ; Adress VRAM = $00000
LD B,$02 ;2 bloc à transferer
ReloopTitle2Vram
LD HL,$3FFF
ld DE,$8000
Title2VRAMloop
LD A,(DE)
out (VDPDATA),a
inc DE
dec L
jr nz,Title2VRAMloop
dec H
jr nz,Title2VRAMloop
; mapper konami 8Ko
LD A,$14
LD (Konami8),A
LD A,$15
LD (KonamiA),A
DJNZ ReloopTitle2Vram
Code : Tout sélectionner
;-------------------------------------------
; Fixe l'adresse d'ecriture du VDP MSX2
; VRAM 00000h-1FFFFh
; { Reg #45 = 0 MSX MXD MXS DIY DIX EQ MAJ } not necessary
; Reg #14 = 0 0 0 0 0 A16 A15 A14
; PORT #1 = A7 A6 A5 A4 A3 A2 A1 A0
; PORT #1 = 0 R/W A13 A12 A11 A10 A9 A8
; after go to read or write by PORT #0
;-------------------------------------------
; IN:
; C = adresse A16:4 A15:2 A14:1
; B = lignes A8:1 ....
;-------------------------------------------
SetVDPAddress
LD A,C
OUT (VDPCTRL),a ; A==>R14
LD A,14+$80
OUT (VDPCTRL),a ; R14
;---
LD A,$00
OUT (VDPCTRL),a ; P1
;---
LD A,$40
ADD A,B
OUT (VDPCTRL),a ; P1
RET
Code : Tout sélectionner
;-------------------------------------------
; Efface intégralement la VRAM du VDP MSX2 $1FFFF (128K)
;-------------------------------------------
ClearVRAM
LD BC,$0000
call @SetVDPAddress
LD D,$02
LD A,$11
BigLoopClrVram
LD BC,$Ffff
ClearVRAMLoop
out (VDPDATA),a
dec c
jr nz,ClearVRAMLoop
dec b
jr nz,ClearVRAMLoop
DEC D
JR NZ,BigLoopClrVram
RET
Code : Tout sélectionner
;-------------------------------------------
; Attend que le VDP est atteint le bas de l'écran
;
;-------------------------------------------
WaitIntVDP
LD A,$00 ; => status 02
OUT (VDPCTRL),a ; data==>R15
LD A,15+$80
OUT (VDPCTRL),a ; R15
IN A,(VDPCTRL)
RL A
JR NC,WaitIntVDP
RET
Code : Tout sélectionner
;-------------------------------------------
; Attend que le VDP est fini la commande
;
;-------------------------------------------
WaitEndCmdVDP
LD A,$02 ; => status 02
OUT (VDPCTRL),a ; data==>R15
LD A,15+$80
OUT (VDPCTRL),a ; R15
IN A,(VDPCTRL)
RR A
JR C,WaitEndCmdVDP
RET
C'est bien entendu destiné pour un MSX2 ou +, mais ca te donne une idée de départ.
les Out et IN sur 6809 seront à remplacer par des STA, STB, STU ....
Par contre lors de mes tests j'avais mis en évidence une gestion logique différente de la gestion physique de la RAM en mode SCREEN 8, il faut que je retrouve précisément, mais de mémoire les données ne sont pas écrites séquentiellement en RAM mais plutôt par pair et impaire en mémoire haute ou basse, je vérifie car si tu veux analyser les données écrite en RAM ça risque de te donner des surprises
Sinon un collègue m'a passé un schéma pour remplacer les DRAMs par des SRAMs j'arrive pas à joindre le pdf, mais j'ai trouvé la source :
SRAM
Au cas où ça peut te servir
- michel guyot
- Messages : 616
- Inscription : 20 mars 2016 16:01
- Localisation : Pyrénées orientales
Re: TAVERNIER 6809
Bonjour 6502man
Effectivement à partir d'une idée de départ, tout le plaisir se trouve dans la recherche et la création de la solution , puis dans sa réalisation…
C'est d'ailleurs tout l'intérêt de ces vieilles machines dont la technologie reste accessible aux bricoleurs que nous sommes...
Merci pour toutes ces informations qui me serviront certainement, mais pas tout de suite…
Pour l'instant, il me faut installer et cabler une vingtaine de composants sur un plaque d'essais à bandes
Le V9938 au format DIL 64 pins shrink me complique un peu la vie !
J'ai vu effectivement quelques documents proposants de remplacer les DRAMs par des SRAMs…
Pour l'instant je suis parti sur l'utilisation des 41464...je verrai si des difficultés particulières apparaissent
A plus
Effectivement à partir d'une idée de départ, tout le plaisir se trouve dans la recherche et la création de la solution , puis dans sa réalisation…
C'est d'ailleurs tout l'intérêt de ces vieilles machines dont la technologie reste accessible aux bricoleurs que nous sommes...
Merci pour toutes ces informations qui me serviront certainement, mais pas tout de suite…
Pour l'instant, il me faut installer et cabler une vingtaine de composants sur un plaque d'essais à bandes
Le V9938 au format DIL 64 pins shrink me complique un peu la vie !
J'ai vu effectivement quelques documents proposants de remplacer les DRAMs par des SRAMs…
Pour l'instant je suis parti sur l'utilisation des 41464...je verrai si des difficultés particulières apparaissent
A plus
Re: TAVERNIER 6809
Pourquoi ?Le V9938 au format DIL 64 pins shrink me complique un peu la vie
- michel guyot
- Messages : 616
- Inscription : 20 mars 2016 16:01
- Localisation : Pyrénées orientales
Re: TAVERNIER 6809
Bonjour 6502man
Je prévois d'implanter cette extension directement sur le bus de mon TAVERNIER.
Pour cela je cable mes composants sur une carte d'essai bakelite à bandes au pas de 2.54 mm
Le support DIL du V9938 est au pas de 1.78, je suis donc contraint d'utiliser l'astuce qui consiste à le monter en biais par rapport aux pistes cuivre…
A+
Michel
Je prévois d'implanter cette extension directement sur le bus de mon TAVERNIER.
Pour cela je cable mes composants sur une carte d'essai bakelite à bandes au pas de 2.54 mm
Le support DIL du V9938 est au pas de 1.78, je suis donc contraint d'utiliser l'astuce qui consiste à le monter en biais par rapport aux pistes cuivre…
A+
Michel
Re: TAVERNIER 6809
A oui c'est pas le même pas que le DIP
- michel guyot
- Messages : 616
- Inscription : 20 mars 2016 16:01
- Localisation : Pyrénées orientales
Re: TAVERNIER 6809
Bonjour 6502man
J'en profite pour présenter mes vœux à tous les passionnés de ces vieux micros…
Concernant mon projet de carte extension couleur, j'ai donc opté pour un schéma, les essais qui me diront si je me suis planté quelque part ! L'approvisionnement des composants a été relativement simple. Le V9938 au format DIP shrink m'a donné du fil à retordre. J'ai fini par faire réaliser un petit circuit imprimé pour pouvoir le cabler proprement sur ma plaque à bande.
J'arrive au bout de la réalisation de cette carte d'essai et de l'implantation dans mon Tavernier.
Il me reste encore pas mal de vérifications à faire avant de mettre le tout sous tension.
En m'appuyant sur les bribes de code Z80 que tu m'as transmis , je vais devoir bricoler quelques routines de test pour activer la bête !
A bientôt
Michel
J'en profite pour présenter mes vœux à tous les passionnés de ces vieux micros…
Concernant mon projet de carte extension couleur, j'ai donc opté pour un schéma, les essais qui me diront si je me suis planté quelque part ! L'approvisionnement des composants a été relativement simple. Le V9938 au format DIP shrink m'a donné du fil à retordre. J'ai fini par faire réaliser un petit circuit imprimé pour pouvoir le cabler proprement sur ma plaque à bande.
J'arrive au bout de la réalisation de cette carte d'essai et de l'implantation dans mon Tavernier.
Il me reste encore pas mal de vérifications à faire avant de mettre le tout sous tension.
En m'appuyant sur les bribes de code Z80 que tu m'as transmis , je vais devoir bricoler quelques routines de test pour activer la bête !
A bientôt
Michel
Re: TAVERNIER 6809
Meilleurs voeux à toi aussi
Pour le code c'est surtout que ce sont les routines qui gèrent l'affichage car le reste ne te serait d'aucune utilité
Le premier test qui pourrait être fait et qui est simple, c'est de configurer le mode graphique et ensuite de changer la couleur de bordure cycliquement
Ca te permet de vérifier que le VDP fonctionne !
Après tu peux utiliser le mode 256 couleurs et remplir la VRAM avec un modif ou plus simple utiliser le mode 2, si tu veux je peux te faire un petit programme de test ?
Pour le code c'est surtout que ce sont les routines qui gèrent l'affichage car le reste ne te serait d'aucune utilité
Le premier test qui pourrait être fait et qui est simple, c'est de configurer le mode graphique et ensuite de changer la couleur de bordure cycliquement
Ca te permet de vérifier que le VDP fonctionne !
Après tu peux utiliser le mode 256 couleurs et remplir la VRAM avec un modif ou plus simple utiliser le mode 2, si tu veux je peux te faire un petit programme de test ?