[6809] Microbox II, le kit anglais "pro"

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
wawa.voun
Messages : 526
Inscription : 20 avr. 2020 18:09
Localisation : Lautenbach-Zell yoooo

Re: [6809] Microbox II, le kit anglais "pro"

Message par wawa.voun »

Bonjour,

Bravo Michel ! Super travail...

Pourrais tu partager ton code machine également ?

Bonne journée, cordialement.
Philippe
No matter where you go, there you are !
Avatar de l’utilisateur
michel guyot
Messages : 610
Inscription : 20 mars 2016 16:01
Localisation : Pyrénées orientales

Re: [6809] Microbox II, le kit anglais "pro"

Message par michel guyot »

Bonjour Phillipe
Je diffuserai le code quand il sera épuré des lignes inutiles.

Il subsiste un problème quant à l'activation du mode graphique

Ci-dessous la description de la manipulation que je ne comprends pas:

**************************************************************
2022-05-11 - Activation mode graphique

Configuration
Terminal via RS232 (SK3)
SWITCH 1 et 2 sur ON
SWITCH 3 et 4 sur OFF
Moniteur sur la sortie vidéo

Code en mémoire

1°) Tracé d'une ligne de (100,100) à (200,200)
Hex dump of memory from 1000

0 1 2 3 4 5 6 7 8 9 A B C D E F
1000 BD F8 24 12 8E 00 64 10 8E 00 64 BD F7 6B 12 8E
1010 00 C8 10 8E 00 C8 BD F9 3B 12 3F 00 00 00 00 00

2°) Routine CLEARGR en $9018 pour effacer l'écran
Hex dump of memory from 9000

0 1 2 3 4 5 6 7 8 9 A B C D E F
9000 BD F7 59 3F BD F7 6B 3F BD F7 C2 3F BD F8 0C 3F
9010 BD F8 18 3F BD F8 24 3F BD F8 8C 3F BD F8 E3 3F
9020 BD F9 2F 3F BD FA B4 3F BD FA D2 3F BD F9 BB 3F
9030 BD F9 E8 3F BD F8 6D 3F 00 00 00 00 00 00 00 00

3°) Constat
Effacement de l'écran avec RP 9018

Si je lance le tracé de la ligne par RP 1000
Rien ne s'affiche

Pour que la ligne s'affiche je dois faire :
SO 0
SO 1
RP 1000
*************************
Avatar de l’utilisateur
wawa.voun
Messages : 526
Inscription : 20 avr. 2020 18:09
Localisation : Lautenbach-Zell yoooo

Re: [6809] Microbox II, le kit anglais "pro"

Message par wawa.voun »

Bonjour Michel,

je n'arrive pas à reproduire ta manip, je pense parce que mon clavier ne passe pas par le port série mais par le port //.

Si je reproduit ta manip il y a un moment ou je n'arrive plus à saisir de commande...

Bonne journée.
Philippe
No matter where you go, there you are !
Avatar de l’utilisateur
michel guyot
Messages : 610
Inscription : 20 mars 2016 16:01
Localisation : Pyrénées orientales

Re: [6809] Microbox II, le kit anglais "pro"

Message par michel guyot »

Bonjour Philippe,

Je vais essayer d'utiliser l'entrée parallèle pour le clavier....
Une question tout de même, avec ta configuration, ce code qui correspond au tracé d'une ligne fonctionne-t-il sans faire appel à autre chose ?

Tracé d'une ligne de (100,100) à (200,200)
Hex dump of memory from 1000

0 1 2 3 4 5 6 7 8 9 A B C D E F
1000 BD F8 24 12 8E 00 64 10 8E 00 64 BD F7 6B 12 8E
1010 00 C8 10 8E 00 C8 BD F9 3B 12 3F 00 00 00 00 00

A plus
Michel
Avatar de l’utilisateur
wawa.voun
Messages : 526
Inscription : 20 avr. 2020 18:09
Localisation : Lautenbach-Zell yoooo

Re: [6809] Microbox II, le kit anglais "pro"

Message par wawa.voun »

Non Michel, ça ne marche pas...

L'écran clignote un bon coup et on revient au prompt du moniteur...
Et manifestement le gdc est perturbé parce qu'il y a des trucs bizarres qui subsistent à l'affichage (des rectangles blancs comme le curseur mais fixes et répartis à gauche et à droite sur la page...)

Tu as testé les exemples de David donnés plus haut ? Chez moi le "bouncing ball" fonctionne correctement après assemblage.

Cordialement.
Philippe
No matter where you go, there you are !
Avatar de l’utilisateur
michel guyot
Messages : 610
Inscription : 20 mars 2016 16:01
Localisation : Pyrénées orientales

Re: [6809] Microbox II, le kit anglais "pro"

Message par michel guyot »

Bonjour Philippe,

Oui, le "Bouncing-Ball" fonctionne correctement...

Pour l'assemblage que j'effectue avec l'émulateur TAVERNIER , je n'utilise pas les indirections JSR [GRAPH] mais la forme directe JSR GRAPH en utilisant les adresses de ces routines..

Une question me vient à l'esprit, ce programme est assemblé avec une adresse de transfert et se lance comme une commande

==> faut-il être systématiquement sous FLEX pour utiliser ces routines ?

Michel
Avatar de l’utilisateur
mjwurtz
Messages : 90
Inscription : 30 nov. 2014 17:27

Re: [6809] Microbox II, le kit anglais "pro"

Message par mjwurtz »

Bonjour Michel et Philippe,

Un truc me chipote dans les exemples de Michel : Pourquoi utilises-tu les adresses directes des routines ?
Elles ne sont pas valables si on utilise une version différente du moniteur. Il me semble qu'il vaudrait mieux utiliser
la table des fonction en F000 pour la portabilité : Par exemple pour appeler SETCRG, mettre JSR [$F05E] au lieu de JSR $F76B.

Ma version du binaire du moniteur contient une entrée "SYNC" à la fin de la table, qui décale ensuite tout le code. C'est peut être aussi le cas de Philippe s'il n'utilise pas le même binaire que toi, ce qui expliquerait son problème de fonctionnement...

Sinon, je suis rentré, et je vais pouvoir programmer ces foutues EPROMs...

A+,
Mick

PS: Ah, tu viens de répondre à ma question pendant que j'écrivais...
Avatar de l’utilisateur
michel guyot
Messages : 610
Inscription : 20 mars 2016 16:01
Localisation : Pyrénées orientales

Re: [6809] Microbox II, le kit anglais "pro"

Message par michel guyot »

Bonjour Mick

Je travaille avec la carte proto que Philippe m'a cédée
Le moniteur porte la version v4-5 et le listing d'assemblage dont je dispose présente un décalage de deux octets dans les adresses par rapport au code qui se trouve en EPROM. Ce n'est pas bien grave , j'en tiens compte...cela me complique un peu la vie !

Mes habitudes de travail avec le TAVERNIER font que je réalise les assemblages avec l'émulateur TAVERNIER de Frédéric
N'étant pas informaticien, je n'utilise pas les options d'assemblage avec librairies..etc...
J'ai donc très vite été surpris par cette utilisation des routines par des JSR indirect JSR [xxxx] ... je n'ai rien contre

Les bizarreries que je rencontrent sont probablement liées à ce que tu me racontes..!!!
Peux-tu m'en dire un peux plus sur ce point, ainsi sur ce qui se passe avec les les commandent SO...
Merci
Michel
Avatar de l’utilisateur
mjwurtz
Messages : 90
Inscription : 30 nov. 2014 17:27

Re: [6809] Microbox II, le kit anglais "pro"

Message par mjwurtz »

Bonsoir Michel,

Les commandes SI et SO modifient la valeur des emplacements mémoire IPORT et OPORT respectivement.
Ceux-ci sont utilisés par INCH et OUTCH (entrée et sortie de caractères).
Prenons OUTCH : OPORT peut prendre 3 valeurs : 0, 1, ou 2.
0 = sortie sur le contrôleur graphique interne (GDC)
1 = sortie sur la liaison série (terminal)
2 = sortie sur la liaison parallèle (imprimante)

C'est là que l'indirection a tout son intérêt : le code de OUTCH est :
LDX #OUTTAB
LDB OPORT
ASLB
JSR [B,X]
OUTCH utilise une table contenant les adresses des 3 fonctions à utiliser (OUTTAB).
ASLB est utilisé pour multiplier B par 2, car chaque adresse est sur 2 octets.
si on a lancé la commande SO 1, on a donc OPORT qui vaut 1, B qui vaut donc 2 après ASLB
JSR [B,X] dit alors "sauter à la fonction dont l'adresse se trouve à l'emplacement mémoire X+B" (c'est à dire à l'emplacement OUTTAB+2),
et c'est donc la fonction OUTTER qui est utilisée pour la sortie du caractère.
Le même mécanisme est utilisé pour INCH et les commandes d'entrée sortie sur disquette (0 ou 1), RAMDISK ou ROMDISK...
L'intérêt est de pouvoir utiliser un terminal série pour l'entrée des données et soit le terminal série, soit l'écran graphique en sortie.
Normalement, on doit aussi pouvoir utiliser uniquement le terminal série pour dialoguer avec le système et la carte graphique en pur mode graphique (le double écran des années 80 :D )
A+
Mick
Avatar de l’utilisateur
mjwurtz
Messages : 90
Inscription : 30 nov. 2014 17:27

Re: [6809] Microbox II, le kit anglais "pro"

Message par mjwurtz »

Rebonjour à tous,
J'ai écrit une bêtise : mettre 2 dans OPORT pointe sur le second port série pour OUTCH...
(en fait le port imprimante parallèle n'a pas de driver dans le moniteur, seule l'entrée clavier est gérée)
Donc (à condition que la vitesse du second port série soit la même que celle du premier), si on tape les commandes SO 2, puis SI 2, on doit brancher son terminal sur le second port pour continuer (on perd la sortie sur le premier port après la commande SO 2 !)

Voilà, c'est tout pour aujourd'hui.
Mick
Avatar de l’utilisateur
michel guyot
Messages : 610
Inscription : 20 mars 2016 16:01
Localisation : Pyrénées orientales

Re: [6809] Microbox II, le kit anglais "pro"

Message par michel guyot »

Bonsoir Mick,

Merci pour ces infos
Mais, je me suis mal expliqué.
Tout à fait d'accord avec l'utilité mode indirect dans les commandes SO et SI

Je parlais des JSR [xxx] pour faire appel aux différentes routines comme JSR [GRAPH], JSR[SETCRG]...etc (Cf table en $F000 à $F08C).

Le point particulier sur lequel je reste perplexe est mis en évidence par la manip suivante (je me répète un peu, je suis têtu !)
Le fait de faire appel à CLEARGR pour effacer l'écran semble bloquer l'affichage même s'il est fait appel à GRAPH
L'affichage ne revient qu'après après avoir entré SO 0 puis SO 1

**************************************************************
2022-05-11 - Activation mode graphique

Configuration
Terminal via RS232 (SK3)
SWITCH 1 et 2 sur ON
SWITCH 3 et 4 sur OFF
Moniteur sur la sortie vidéo

Code en mémoire

1°) Tracé d'une ligne de (100,100) à (200,200)
ORG $1000
JSR GRAPH
LDX #100
LDY #100
JSR SETCRG
LDX #200
LDY #200
JSR LINE
SWI
END

Hex dump of memory from 1000

0 1 2 3 4 5 6 7 8 9 A B C D E F
1000 BD F8 24 12 8E 00 64 10 8E 00 64 BD F7 6B 12 8E
1010 00 C8 10 8E 00 C8 BD F9 3B 12 3F 00 00 00 00 00

2°) Routine CLEARGR en $9018 pour effacer l'écran

ORG $9018
JSR CLEARGR
SWI

Hex dump of memory from 9000

9010 BD F8 18 3F BD F8 24 3F BD F8 8C 3F BD F8 E3 3F
9020 BD F9 2F 3F BD FA B4 3F BD FA D2 3F BD F9 BB 3F

3°) Constat
Effacement de l'écran avec RP 9018 ==> OK

Si je lance le tracé de la ligne par RP 1000
Rien ne s'affiche ==> alors qu'il est fait appel à GRAPH

Pour que la ligne s'affiche je dois faire :
SO 0
SO 1
RP 1000

*************************
Avatar de l’utilisateur
mjwurtz
Messages : 90
Inscription : 30 nov. 2014 17:27

Re: [6809] Microbox II, le kit anglais "pro"

Message par mjwurtz »

Bonjour Michel,
Désolé, j'avais mal compris (fatigué au retour ...).
SO 0 et SO 1 ne touchent pas à l'écran.
C'est au moment de l'envoi du prompt après ces commandes que ça doit se passer, donc au niveau des fonctions appelées par OUTCH.

Je suppose qu'après SO 0, tu as le prompt sur le terminal série, avec echo de ce que tu tapes, et qu'après SO 1, la sortie texte apparaît sur l'écran graphique ?

Si on regarde ce que fait GDCOUT, il y a un appel à SETPEN qui a l'air de tripoter les paramètres graphiques... mais je n'ai pas regardé à fond.
En tout cas, la gestion du 7220 n'est pas simple !

Bon courage pour la suite,
Michel.
Avatar de l’utilisateur
michel guyot
Messages : 610
Inscription : 20 mars 2016 16:01
Localisation : Pyrénées orientales

Re: [6809] Microbox II, le kit anglais "pro"

Message par michel guyot »

Bonjour Mick

Pour analyser les choses, autant partir de quelque chose qui fonctionne.
Philippe nous a transmis un exemple de code GRAPH2 (Bonding-Ball)
A partir de ce fichier, j'en ai créer deux autres qui s'arretent au bout de quelques itérations.

GRAPH3A.CMD
Mise en place d'un compteur (COUNT) pour limiter le nombre d'itérations
Arret du programme par le test en $609C
Le programme se lance sous FLEX par +++2.GRAPH3A.CMD
le retour au FLEX est fait par le JMP $CD03 en $60A3

GRAPH3B.BIN
Mise en place d'un compteur (COUNT) pour limiter le nombre d'itérations
Arret du programme par le test en $609C
Le programme se lance par la cde moniteur RP 5FFD
Le retour au moniteur est fait par le SWI en $60A3

Constat
L'affichage est immédiat, et ne nécessite pas de bricolage (SO 0, puis SO 1)
Bien que le code soit identique, l'image obtenue ne présente pas la même taille en hauteur

Manifestement, le fait de fonctionner sous FLEX ne donne pas le même résultat, l'initialisation du NEC doit être différente.

Ci-dessous les fichiers utilisés et images obtenues
P218 - MB2 - GRAPH3A - Listing.TXT
(5.38 Kio) Téléchargé 50 fois
P218 - MB2 - GRAPH3B - Listing - Reconstruit.TXT
(5.03 Kio) Téléchargé 48 fois

GRAPH3A-CMD.JPG
GRAPH3A-CMD.JPG (263.08 Kio) Consulté 4139 fois
GRAPH3B-BIN.JPG
GRAPH3B-BIN.JPG (256.1 Kio) Consulté 4139 fois
Avatar de l’utilisateur
wawa.voun
Messages : 526
Inscription : 20 avr. 2020 18:09
Localisation : Lautenbach-Zell yoooo

Re: [6809] Microbox II, le kit anglais "pro"

Message par wawa.voun »

Bonsoir Tous,

Je teste les programmes de Michel dans la semaine, probablement mardi.

Bonne soirée.
Philippe
No matter where you go, there you are !
Avatar de l’utilisateur
michel guyot
Messages : 610
Inscription : 20 mars 2016 16:01
Localisation : Pyrénées orientales

Re: [6809] Microbox II, le kit anglais "pro"

Message par michel guyot »

Bonjour Philippe, bonjour Mick

Après analyse, je pense qu'il faut au minimum ce genre d'instructions pour initialiser correctement le mode graphique

J'ai oublié de préciser un point important.
Avec ce code la qualité du tracé est plus correcte.
L'aspect pointillé (CF image postées vers le 20-04-2022) a disparu.
Je pense que c'est du au traitement apporté par SETPEN


Michel
Listing.TXT
(1.32 Kio) Téléchargé 55 fois
2022-05-16 - Image obtenue.JPG
2022-05-16 - Image obtenue.JPG (195.02 Kio) Consulté 4007 fois
2022-05-17.JPG
2022-05-17.JPG (246.61 Kio) Consulté 3982 fois
Répondre