un peu de bitmap pour VG5000µ

Cette catégorie traite de développements récents pour nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Papy.G, fneck, Carl

Avatar de l’utilisateur
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

un peu de bitmap pour VG5000µ

Message par rendomizer »

je cherche un algorithme pour afficher un point sur l'écran sachant que pour une matrice de 8x8 on a ça alors que je souhaiterais travailler sur une matrice de 8x10 pour le Vg5000....

Code : Tout sélectionner

10 base=8192
20 hb=int(x/8):vb=int(y/8)
30 ro=vb x 160+hb x 8: a=y and 7: b=x and 7
40 by=base+ro+a
50 poke by,peek(by)or(2^(7-b))
merci
Dernière modification par rendomizer le 09 oct. 2022 14:40, modifié 1 fois.
Je ne suis qu'un utilisateur pas un pro
Daniel
Messages : 17286
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: un peu de math pour les pros du BASIC VG5000µ

Message par Daniel »

Le VG5000 n'a pas de mode graphique. Pour afficher un pixel à l'écran, il faut définir un caractère contenant ce pixel et afficher le caractère.
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

Re: un peu de math pour les pros du BASIC VG5000µ

Message par rendomizer »

Je sais Daniel mais je veux faire une redefinition de caractères en balayant l'écran en changeant l'adresse des redefinitions de caractères et simuler une bitmap (clignotant). Si votre émulateur tournait 25 fois plus vite ça serait chouette !
Je ne suis qu'un utilisateur pas un pro
Avatar de l’utilisateur
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

Re: un peu de math pour les pros du BASIC VG5000µ

Message par rendomizer »

Existe-t-il un microprocesseur z80 plus rapides compatibles avec l'ancient et serait-ce possible que tout le reste suit ce super microprocesseur ?
Je ne suis qu'un utilisateur pas un pro
Avatar de l’utilisateur
Mokona
Messages : 1036
Inscription : 17 déc. 2016 22:01
Localisation : Nord Est des Yvelines
Contact :

Re: un peu de math pour les pros du BASIC VG5000µ

Message par Mokona »

Sur mon site, il y a plusieurs articles sur le sujet d'un "set point" en utilisant les caractères semi-graphiques :

- une version assembleur utilisée en assembleur : https://www.triceraprog.com/vg5000m-set ... point.html
- une version en C, probablement plus simple à lire : https://www.triceraprog.com/vg5000m-setpoint-en-c.html
- une manière d'appeler ça depuis le BASIC : https://www.triceraprog.com/vg5000m-set ... basic.html

Et quelques autres articles autour du sujet pour approfondir.
VG5000-Square-SetPoint-ASM.png
VG5000-Square-SetPoint-ASM.png (39.1 Kio) Consulté 2382 fois
Edit: je réalise qu'initialement, je l'avais fait en BASIC aussi, c'est là (et forcément, c'est pas bien rapide) : https://www.triceraprog.com/vg5000m-set ... ation.html
Dernière modification par Mokona le 25 sept. 2022 18:24, modifié 1 fois.
Avatar de l’utilisateur
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

Re: un peu de math pour les pros du BASIC VG5000µ

Message par rendomizer »

c'est super ça mokona ! j'ai de la lecture en perspective !
Je ne suis qu'un utilisateur pas un pro
Avatar de l’utilisateur
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

Re: un peu de math pour les pros du BASIC VG5000µ

Message par rendomizer »

Je me demande pourquoi quand je descends il y a un moment ou ça s'arrete et puis ça repart , que ce passe t'il ?
no cmp.zip
(30.42 Kio) Téléchargé 43 fois

Code : Tout sélectionner

;org 28672
push hl
ld hl,_ef9345
call $00ad


_org:



ld a,31
ld (_setet),a
ld a,31
ld (_caractere),a
ld a,0
ld (_cursorx),a
ld a,41
ld (_cursory),a
ld hl,21000
_buildsetet1:
 
          ;--------------build seteT--------------------
          ld a,(_setet); numero de caractere a definir
          inc a
          ld (_setet),a

          ld  a,(_setet)
          ;cp 0 ???????????????????????????????????????
          jp z,_suite1


          call $001B ; construction des incremente HL de 10
          jp _buildsetet1







_suite1:


_fillx1:

ld a,$d8
ld (_mode),a


 ld a,(_caractere)
 inc a
 ld (_caractere),a
ld a,135
ld (_color),a
  ld a,(_cursorx)
 inc a
 ld (_cursorx),a
 ld hl,_ef9345suite
 call $00ad
 ld a,(_cursorx)
 cp 16
 jp nz,_fillx1



ld a,0
ld (_cursorx),a
ld a,42
ld (_cursory),a






_fillx2:

ld a,$d8
ld (_mode),a


 ld a,(_caractere)
 inc a
 ld (_caractere),a
ld a,135
ld (_color),a
  ld a,(_cursorx)
 inc a
 ld (_cursorx),a
 ld hl,_ef9345suite
 call $00ad
 ld a,(_cursorx)
 cp 16
 jp nz,_fillx2


_suite2:

ld a,0
ld (_cursorx),a
ld a,43
ld (_cursory),a

_fillx3:

ld a,$d8
ld (_mode),a


 ld a,(_caractere)
 inc a
 ld (_caractere),a
ld a,135
ld (_color),a
  ld a,(_cursorx)
 inc a
 ld (_cursorx),a
 ld hl,_ef9345suite
 call $00ad
 ld a,(_cursorx)
 cp 16
 jp nz,_fillx3



;ld a,31
;ld (_caractere),a
ld a,0
ld (_cursorx),a
ld a,44
ld (_cursory),a






_fillx4:

ld a,$d8
ld (_mode),a


 ld a,(_caractere)
 inc a
 ld (_caractere),a
ld a,135
ld (_color),a
  ld a,(_cursorx)
 inc a
 ld (_cursorx),a
 ld hl,_ef9345suite
 call $00ad
 ld a,(_cursorx)
 cp 16
 jp nz,_fillx4


;pop hl
;ret



ld a,0
ld (_cursorx),a
ld a,45
ld (_cursory),a






_fillx5:

ld a,$d8
ld (_mode),a


 ld a,(_caractere)
 inc a
 ld (_caractere),a
ld a,135
ld (_color),a
  ld a,(_cursorx)
 inc a
 ld (_cursorx),a
 ld hl,_ef9345suite
 call $00ad
 ld a,(_cursorx)
 cp 16
 jp nz,_fillx5




;pop hl
;ret
;ld a,31
;ld (_caractere),a



 ;ld a,128
 ;ld (_caractere),a
ld a,0
ld (_cursorx),a
ld a,46
ld (_cursory),a






_fillx6:

ld a,$d8
ld (_mode),a


 ld a,(_caractere)
 inc a
 ld (_caractere),a
ld a,135
ld (_color),a
  ld a,(_cursorx)
 inc a
 ld (_cursorx),a
 ld hl,_ef9345suite
 call $00ad
 ld a,(_cursorx)
 cp 16
 jp nz,_fillx6
 
;pop hl
;ret


ld a,31
ld (_caractere),a
ld a,0
ld (_cursorx),a
ld a,47
ld (_cursory),a
 
_fillx7:
ld a,$c8
ld (_mode),a


 ld a,(_caractere)
 inc a
 ld (_caractere),a
ld a,135
ld (_color),a
  ld a,(_cursorx)
 inc a
 ld (_cursorx),a
 ld hl,_ef9345suite
 call $00ad
 ld a,(_cursorx)
 cp 16
 jp nz,_fillx7



ld a,0
ld (_cursorx),a
ld a,48
ld (_cursory),a






_fillx8:

ld a,$c8
ld (_mode),a


 ld a,(_caractere)
 inc a
 ld (_caractere),a
ld a,135
ld (_color),a
  ld a,(_cursorx)
 inc a
 ld (_cursorx),a
 ld hl,_ef9345suite
 call $00ad
 ld a,(_cursorx)
 cp 16
 jp nz,_fillx8


;_suite2:

ld a,0
ld (_cursorx),a
ld a,49
ld (_cursory),a

_fillx9:

ld a,$c8
ld (_mode),a


 ld a,(_caractere)
 inc a
 ld (_caractere),a
ld a,135
ld (_color),a
  ld a,(_cursorx)
 inc a
 ld (_cursorx),a
 ld hl,_ef9345suite
 call $00ad
 ld a,(_cursorx)
 cp 16
 jp nz,_fillx9



;ld a,31
;ld (_caractere),a
ld a,0
ld (_cursorx),a
ld a,50
ld (_cursory),a






_fillx10:

ld a,$c8
ld (_mode),a


 ld a,(_caractere)
 inc a
 ld (_caractere),a
ld a,135
ld (_color),a
  ld a,(_cursorx)
 inc a
 ld (_cursorx),a
 ld hl,_ef9345suite
 call $00ad
 ld a,(_cursorx)
 cp 16
 jp nz,_fillx10


;pop hl
;ret



ld a,0
ld (_cursorx),a
ld a,51
ld (_cursory),a






_fillx11:

ld a,$c8
ld (_mode),a


 ld a,(_caractere)
 inc a
 ld (_caractere),a
ld a,135
ld (_color),a
  ld a,(_cursorx)
 inc a
 ld (_cursorx),a
 ld hl,_ef9345suite
 call $00ad
 ld a,(_cursorx)
 cp 16
 jp nz,_fillx11




;pop hl
;ret
;ld a,31
;ld (_caractere),a



 ;ld a,128
 ;ld (_caractere),a
ld a,0
ld (_cursorx),a
ld a,52
ld (_cursory),a






_fillx12:

ld a,$c8
ld (_mode),a


 ld a,(_caractere)
 inc a
 ld (_caractere),a
ld a,135
ld (_color),a
  ld a,(_cursorx)
 inc a
 ld (_cursorx),a
 ld hl,_ef9345suite
 call $00ad
 ld a,(_cursorx)
 cp 16
 jp nz,_fillx12
pop hl
ret

















-----------------------------------------------------------




_init:
        db 24,$21,$00,$28,$81,$21,$6E,$28,$82,$21,$f7,$28,$83,$21,$13,$28,$84,$21,$08,$28,$87,$22,$38,$28,$00

_ef9345:
        db 20,$21,$00,$28,$81,$21,$06,$28,$82,$21,$67
        db $28,$83,$21,$13,$28,$84,$21,$28,$28,$87
_ef9345suite:
        db 12,$21
_caractere:
        db 31,$22
_mode:            ; mode setet,seteg ou texte d8,c1,00
        db $00,$23
_color:
        db 135,$26
_cursory:
        db 40,$27;ajouter 35 pour les coordonnés y pour ce mode graphique
_cursorx:
        db 0,$28,$00
_setet:
        db 32
_y:
        db 39
_gate:
        db 128

_counter:
        db 0
_countframes:
        db 1

Je ne suis qu'un utilisateur pas un pro
Avatar de l’utilisateur
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

Re: un peu de math pour les pros du BASIC VG5000µ

Message par rendomizer »

Eureka !
no bug bitmap 128x120 vg5000.zip
(15.89 Kio) Téléchargé 73 fois



[edit] J'ai corrigé le lien youtube (Carl).
Je ne suis qu'un utilisateur pas un pro
Daniel
Messages : 17286
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: un peu de math pour les pros du BASIC VG5000µ

Message par Daniel »

Problème pour voir la vidéo :

erreur.png
erreur.png (15.56 Kio) Consulté 1940 fois

[Edit 09:30]
Merci à Carl pour la correction du lien 8)
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

Re: un peu de math pour les pros du BASIC VG5000µ

Message par rendomizer »

merci Carl. j'avais pas contrôlé le lien dans l'enthousiasme !
bichrome128x120 bitmap vg5000.zip
(31.9 Kio) Téléchargé 51 fois
Je ne suis qu'un utilisateur pas un pro
Avatar de l’utilisateur
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

Re: un peu de bitmap pour VG5000µ

Message par rendomizer »

Bonjour tout le monde. J'ai un gros problème a résoudre. Quand je pose y = 60 au debut des variables ça fout le bordel dans mon algorithme ... Si quequ'un pouvait m'aider ça serait super :shock:
j'aimerais faire une belle sinusoidale
bichrome128x120 bitmap vg5000.zip
(31.9 Kio) Téléchargé 53 fois
Je ne suis qu'un utilisateur pas un pro
Avatar de l’utilisateur
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

Re: un peu de bitmap pour VG5000µ

Message par rendomizer »

Eureka ! j'ai trouver le bon algorithme :o :idea:
algorithme vg5000 150x120.png
algorithme vg5000 150x120.png (17.23 Kio) Consulté 1714 fois
bichromatique 150 x120 bitmap.zip
(16.87 Kio) Téléchargé 56 fois
Dernière modification par rendomizer le 12 oct. 2022 08:44, modifié 2 fois.
Je ne suis qu'un utilisateur pas un pro
Avatar de l’utilisateur
Leraptor06
Messages : 658
Inscription : 15 févr. 2022 10:34
Localisation : Mandelieu

Re: un peu de bitmap pour VG5000µ

Message par Leraptor06 »

Bonjour,
Bravo a toi, si tu peux partager ce serait peut être instructif pour certains.
Merci

Édit pardon tu as été plus rapide que moi, merci bien
Jp
Avatar de l’utilisateur
rendomizer
Messages : 413
Inscription : 17 juin 2016 21:00
Contact :

Re: un peu de bitmap pour VG5000µ

Message par rendomizer »

content de voir que je ne suis pas seul a avoir chercher JP !
Je ne suis qu'un utilisateur pas un pro
__sam__
Messages : 7909
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: un peu de bitmap pour VG5000µ

Message par __sam__ »

Ah ok, de ce que je comprends, l'adresse de base (TASE) change quand l'ordonnée (y) est plus ou moins grande que 60.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Répondre