TAVERNIER 6809

C'est la catégorie reine de l'ordinophile, 8 bits et pas un de plus!
Single board ou bus S-100 acceptés.

Modérateurs : Papy.G, fneck, Carl

Avatar de l’utilisateur
irios
Messages : 3396
Inscription : 04 nov. 2007 19:47
Localisation : Rochefort du Gard (30)
Contact :

Re: TAVERNIER 6809

Message par irios »

Je pense Michel que ce lien te sera utile : http://map.grauw.nl/resources/video/yam ... 58_ocr.pdf

Bon bricolage.
http://irioslabs.over-blog.com/

La connaissance ne vaut que si elle est partagée par tout le monde.
I2C
Avatar de l’utilisateur
Papy.G
Modérateur
Messages : 3047
Inscription : 10 juin 2014 13:40
Localisation : Haute-Garonne/Gers

Re: TAVERNIER 6809

Message par Papy.G »

Carrément le 9958 maintenant! :lol:

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. :mrgreen:
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. :twisted:
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.
Avatar de l’utilisateur
michel guyot
Messages : 612
Inscription : 20 mars 2016 16:01
Localisation : Pyrénées orientales

Re: TAVERNIER 6809

Message par michel guyot »

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
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: TAVERNIER 6809

Message par 6502man »

Le 9918 utilise 2 ports par contre le 9938 ou 9958 utilisent 4 ports en tout cas sur MSX2 et +

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)
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
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: TAVERNIER 6809

Message par 6502man »

J'ai oublié aussi de préciser que l'on peut faire de l'incrustation vidéo avec les TMS9938 ou TMS9958 ;)
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
michel guyot
Messages : 612
Inscription : 20 mars 2016 16:01
Localisation : Pyrénées orientales

Re: TAVERNIER 6809

Message par michel guyot »

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
Jacobert
Messages : 572
Inscription : 18 janv. 2018 23:30
Localisation : Paris

Re: TAVERNIER 6809

Message par Jacobert »

:?: pourquoi ne pas avoir contacter Christian T.? (http://www.tavernier-c.com/contactez-moi.htm)
Avatar de l’utilisateur
Totor le Butor
Messages : 2224
Inscription : 07 sept. 2011 16:14
Localisation : Paris - Mezels

Re: TAVERNIER 6809

Message par Totor le Butor »

... 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 .
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: TAVERNIER 6809

Message par 6502man »

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 :wink:

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 :roll:

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 ;)
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
michel guyot
Messages : 612
Inscription : 20 mars 2016 16:01
Localisation : Pyrénées orientales

Re: TAVERNIER 6809

Message par michel guyot »

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
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: TAVERNIER 6809

Message par 6502man »

Le V9938 au format DIL 64 pins shrink me complique un peu la vie
Pourquoi ?
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
michel guyot
Messages : 612
Inscription : 20 mars 2016 16:01
Localisation : Pyrénées orientales

Re: TAVERNIER 6809

Message par michel guyot »

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
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: TAVERNIER 6809

Message par 6502man »

A oui c'est pas le même pas que le DIP :oops: :roll:
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
michel guyot
Messages : 612
Inscription : 20 mars 2016 16:01
Localisation : Pyrénées orientales

Re: TAVERNIER 6809

Message par michel guyot »

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
Avatar de l’utilisateur
6502man
Messages : 12286
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: TAVERNIER 6809

Message par 6502man »

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 ?
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Répondre