Zezito in The Glittering Caves - MO5 Forth (Bandini) and 6809 Assembly

Cette catégorie traite de développements récents destinés à 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

Ythunder
Messages : 941
Inscription : 21 août 2019 10:12

Re: Programmation Forth Mo5 (Bandini)

Message par Ythunder »

Wahou !!!!!!!!!!!
C'est superbe !
__sam__
Messages : 7989
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Programmation Forth Mo5 (Bandini)

Message par __sam__ »

C'est super coloré. 8) En face la version N&B bien que plus fluide fait pâle figure.
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
Fool-DupleX
Messages : 2367
Inscription : 06 avr. 2009 12:07

Re: Programmation Forth Mo5 (Bandini)

Message par Fool-DupleX »

lol, pâle est vraiment le mot, vu que c'est tout blanc :lol:

Je préfère aussi de loin la version colorée. Enfin une preuve de ce qu'on peut faire sur MO5. Ca aurait eu 5 étoiles en graphisme et en animation dans Tilt !
Pièces jointes
tilt.jpg
tilt.jpg (14.53 Kio) Consulté 1005 fois
Iapetus
Messages : 155
Inscription : 22 nov. 2012 15:36

Re: Programmation Forth Mo5 (Bandini)

Message par Iapetus »

Bonjour et merci a tous, aujourd'hui je vais programmer le mouvement du protagoniste.
MO5 - MO6 - TO8D - C64C - Timex TC2048 - Acorn Electron - Amiga 500
Fool-DupleX
Messages : 2367
Inscription : 06 avr. 2009 12:07

Re: Programmation Forth Mo5 (Bandini)

Message par Fool-DupleX »

Si tu fais en assembleur, je t'invite à terme à dégager les appels aux routines moniteur pour le clavier et la manette de jeu et les remplacer par ta propre gestion du hardware dans la boucle de jeu. Par exemple, on peut gagner énoooormément de cycles en ne testant que les touches du clavier réellement utilisées plutôt que toute la matrice (pour ceux qui se posent la question, contrairement aux TO8/8D/9/9+, toutes les autres machines Thomson scannent la matrice clavier dans une boucle en pur soft, pas de contrôleur type ACIA). En plus, les appels SWI sur MO coutent très cher pour rien.
Iapetus
Messages : 155
Inscription : 22 nov. 2012 15:36

Re: Programmation Forth Mo5 (Bandini)

Message par Iapetus »

Merci @Fool-DupleX, je n'utilize pas le moniteur, J'ai programé une routine fait quelques annés et je utilize la direction $A7C1 PIA pour lire le clavier. Je n'ai pas jamais eu le temps d'étudier les routines de la ROM :|
MO5 - MO6 - TO8D - C64C - Timex TC2048 - Acorn Electron - Amiga 500
Iapetus
Messages : 155
Inscription : 22 nov. 2012 15:36

Re: Programmation Forth Mo5 (Bandini)

Message par Iapetus »

@Fool-DupleX
Je n’ai jamais utilisé les interruptions, je pense que j'ai lu quelque part que la routine de gestion de interruptions du moniteur consomme 20% des cycles cpu?! pouvez-vous confirmer ? Merci
MO5 - MO6 - TO8D - C64C - Timex TC2048 - Acorn Electron - Amiga 500
Fool-DupleX
Messages : 2367
Inscription : 06 avr. 2009 12:07

Re: Programmation Forth Mo5 (Bandini)

Message par Fool-DupleX »

Ah tiens, tu n'as jamais utilisé les fonctionnalités fournies par le moniteur ? Intéressant. Et très bien surtout, car elles sont lentes.

SWI n'est pas utilisé comme une interruption sur MO5, elle sert à appeler les fonctions du moniteur. Mais chaque appelle à SWI consomme : empilement des registres, branchement sur une routine qui détermine quelle fonction est appelée, etc. C'est toujours plus rapide de faire la même chose soi-même directement dans son propre code (mais ça rend le programme potentiellement incompatible avec les autres MO).

A ne pas confondre ceci dit avec l'IRQ, qui consomme aussi, mais parce cette interruption tourne en permanence 50 fois par seconde et fait tout un tas de trucs comme le clignotement curseur. D'ailleurs, dans ton programme en Forth, enlève le curseur qui clignote, tu vas gagner un bon 5%. Bloque l'interruption IRQ en entier et tu gagneras encore un peu.

20% je pense que c'est plutôt sur TO8/8D/9+, parce que la routine IRQ est grosse. Mais je parle sous le contrôle de Sam.
Iapetus
Messages : 155
Inscription : 22 nov. 2012 15:36

Re: Programmation Forth Mo5 (Bandini)

Message par Iapetus »

Ah je comprends, merci! Très intéressant, ah oui les 20% s'appliquent aux TO8 etc., je pensai qu'eté le même sur les MO.
mais ça rend le programme potentiellement incompatible avec les autres MO
Ma routine de lecture de clavier fonctionne elle sur MO5 et MO6 donc?:

Code : Tout sélectionner

LeTecladoPIA
			clr teclado
			ldb teclado

LTP_teclaEsquerda
			lda #$5a
			sta $a7c1
			lda $a7c1
			bmi LTP_teclaDireita
			orb #$02
			bra LTP_teclaCima

LTP_teclaDireita
			lda #$4a
			sta $a7c1
			lda $a7c1
			bmi LTP_teclaCima
			orb #$01
			
			.
			.
			.
			stb teclado
			rts
			
			
MO5 - MO6 - TO8D - C64C - Timex TC2048 - Acorn Electron - Amiga 500
Fool-DupleX
Messages : 2367
Inscription : 06 avr. 2009 12:07

Re: Programmation Forth Mo5 (Bandini)

Message par Fool-DupleX »

Je dirais que oui, mais le MO6 (et MO5NR) a plus de touches et les codes que tu envoies au port B ne sont sans doute pas les mêmes, pour une même touche entre MO5 et MO6.

La remarque vaut aussi pour la manette de jeu. Sur MO5, c'est une extension ad hoc, sur MO6, c'est intégré dans la machine et multiplexé avec la prise imprimante.

Mais peu importe. L'essentiel est de terminer le boulot sur MO5. Le portage sur MO6 n'est pas bien compliqué.
Iapetus
Messages : 155
Inscription : 22 nov. 2012 15:36

Re: Programmation Forth Mo5 (Bandini)

Message par Iapetus »

Merci beaucoup, je n'avais aucune idée de ces différences entre MO5 et MO6!
Dernière modification par Iapetus le 17 nov. 2023 15:07, modifié 1 fois.
MO5 - MO6 - TO8D - C64C - Timex TC2048 - Acorn Electron - Amiga 500
Iapetus
Messages : 155
Inscription : 22 nov. 2012 15:36

Re: Programmation Forth Mo5 (Bandini)

Message par Iapetus »

Bien, le mouvement du protagoniste, complété :D


Next, collision avec autres sprites. La barre rouge au border = cycles cpu du sprite engine. La vert = logique.

Pour les curieux j'ai maintenant ~23Kb de memoire libres.
MO5 - MO6 - TO8D - C64C - Timex TC2048 - Acorn Electron - Amiga 500
Fool-DupleX
Messages : 2367
Inscription : 06 avr. 2009 12:07

Re: Programmation Forth Mo5 (Bandini)

Message par Fool-DupleX »

Tu as encore plein de temps CPU ... ça va peut-être possible de rajouter des bruitages :)
Iapetus
Messages : 155
Inscription : 22 nov. 2012 15:36

Re: Programmation Forth Mo5 (Bandini)

Message par Iapetus »

Oui, mais il y a un petit problème... je n'ai aucune idée comme programmé bruitage ou musique au Thomson :o :lol:

Autre chose, dans la version c64 l'acide/lava c'est animé, peut-être je le poudrai animé dans la version Mo5 aussi si j'ai de temps cpu suffisant... hmm
Dernière modification par Iapetus le 17 nov. 2023 15:42, modifié 1 fois.
MO5 - MO6 - TO8D - C64C - Timex TC2048 - Acorn Electron - Amiga 500
Fool-DupleX
Messages : 2367
Inscription : 06 avr. 2009 12:07

Re: Programmation Forth Mo5 (Bandini)

Message par Fool-DupleX »

Ca ce n'est pas très grave de ne pas savoir pour les bruitages, c'est relativement facile. Mais il faut un minimum de cycles CPU restant, parce que comme tout le reste, c'est fait en pur soft.

Est-ce que la manette de jeu sera obligatoire ?
Dernière modification par Fool-DupleX le 17 nov. 2023 16:56, modifié 1 fois.
Répondre