CROSS CHASE compilé avec CMOC pour les Thomsons?

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

Linzino
Messages : 69
Inscription : 26 août 2017 02:40

Re: CROSS CHASE compilé avec CMOC pour les Thomsons?

Message par Linzino »

Merci!

Comment je peux deplacer le curseur?

Fabrizio
__sam__
Messages : 7986
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: CROSS CHASE compilé avec CMOC pour les Thomsons?

Message par __sam__ »

Pour déplacer le curseur il faut utiliser la séquence d'échappement: $1F,$40+y,$40+x avec y entre 0 et 24 et x entre 1 et 40 (je ne suis pas trop certain des bornes.)
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
Linzino
Messages : 69
Inscription : 26 août 2017 02:40

Re: CROSS CHASE compilé avec CMOC pour les Thomsons?

Message par Linzino »

J'ai reussi à effacer le curseur

asm {
ldb #$14
swi
.byte 2
}

mais pas avec une fonction avec un parametre pour le caractère.

Je ne comprends pas pourquoi on mets un octet avec la valeur 2 après svi et
je ne comprends pas "ldb 2,s" ou "ldb 3,s" (conseillé par Full-Duplex).

J'imagine que cela sert à mettre le parametre de la fonction C sur B mais cela depend du compilateur C.
Je dois verifier si le passage des parametrès dans l'Assembleur "in line" est fait par la pile.

Fabrizio
Daniel
Messages : 17423
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: CROSS CHASE compilé avec CMOC pour les Thomsons?

Message par Daniel »

En assembleur 6809, l'appel d'une subroutine est réalisé par un BSR ou un JSR.
Pour l'appel des fonctions standard, les ordinateurs MO utilisent l'instruction SWI comme un JSR avec adressage indirect : SWI = JSR [$FFFA].
Le SWI est codé sur 1 octet, le JSR [$FFFA] est codé sur 4 octets, il y a donc un gain de 3 octets pour chaque appel.
De plus le SWI empile tous les registres (sauf S), ce qui peut être un avantage par rapport au JSR qui n'empile que le registre PC.


Dans les deux cas il y a plusieurs techniques pour passer des paramètres :

- Soit en faisant suivre l'appel à la subroutine d'un ou plusieurs octets de paramètres.
C'est le cas (sur ordinateur MO) du SWI suivi d'un octet donnant le numéro de la fonction dans les bits 0-6 et le type de retour dans le bit 7.

- Soit en plaçant les paramètres dans la pile système.
C'est le cas de l'exemple donné par Fool-DupleX.

On pourrait aussi mettre les paramètres à des adresses fixes en RAM, mais ce serait plus coûteux en nombre d'octets de programme et en cycles machine pour l'exécution, c'est pourquoi les programmeurs ont utilisé les deux techniques précédentes.
Daniel
L'obstacle augmente mon ardeur.
Répondre