vers Virus Info


[accueil]  [chercher]


2025-09-23 13:46

Documentation technique du Squale


Documentation SQMON V2R0

Le Moniteur SQMON V2R0 apporte un certain nombre d'améliorations par rapport au moniteur SQUALEMON. Ces améliorations sont principalement dues au développement d'un système de pagination permettant d'implanter un moniteur 8K octets en lieu et place du moniteur originel de 4K. A noter que dans cette version moniteur les variables système ne sont plus directement accessibles en dehors des vecteurs d'interruptions et de la date système.

Nous avons :
$EFE0 - $EFE1 Drapeau date système.
$EFE2 - $EFF3 Date système, chaîne de la forme JJ/MM/AA terminée par le caractère $04 (EOT)
$EFF4 - $EFF5 Vecteur SWI 3
$EFF6 - $EFF7 Vecteur SWI 2
$EFF8 - $EFF9 Vecteur FIRQ
$EFFA - $EFFB Vecteur IRQ
$EFFC - $EFFD Vecteur SWI
$EFFE - $EFFF Vecteur NMI

Les points d'entrée directe du moniteur ont été conservés.
$F100 Entrée à chaud
$F103 Initialisation des E/S
$F106 Entrée caractère sans echo
$F109 Entrée caractère avec echo
$F10C Test clavier
$F10F Sortie caractère vers écran
$F113 Lecture d'un secteur disque

Des améliorations ont été apportées aux routines de lecture du clavier et d'affichage.

1. Mise en place d'une police caractères acentués:
clavier code Hexa signification
Ctrl Shift 2 $80 é
Ctrl Shift 3 $81 n tilde
Ctrl Shift 4 $82 point inter à l'envers
Ctrl Shift 5 $83 paragraphe
Ctrl Shift 6 $84 è
Ctrl Shift 7 $85 ù
Ctrl Shift 8 $86 ç
Ctrl Shift 9 $87 à
Ctrl Shift O $88 °
Ctrl Shift : $89 point exclamation à l'envers

caractères composés:
Ctrl Shift 1 puis "a" $8A a tréma
Ctrl Shift 1 puis "e" $8B e tréma
Ctrl Shift 1 puis "i" $8C i tréma
Ctrl Shift 1 puis "o" $8D o tréma
Ctrl Shift 1 puis "u" $8E u tréma
Ctrl Shift - puis "a" $8F a accent circonflexe
Ctrl Shift - puis "e" $90 e accent circonflexe
Ctrl Shift - puis "i" $91 i accent circonflexe
Ctrl Shift - puis "o" $92 o accent circonflexe
Ctrl Shift - puis "u" $93 u accent circonflexe
Caractères affichables

2. Possibilité de définir la fenêtre texte dans l'écran:

3. Accroissement de la vitesse de scrolling.

4. Police de caractères accessibles par :
Ctrl 1 Code ASCII $5C ç
Ctrl 2 $5E ^
Ctrl 3 $7E
Ctrl 4 $7B é
Ctrl 5 $7D è
Ctrl 6 $40
Ctrl 7 $7C
Ctrl 8 $5B [
Ctrl 9 $5D ]

Les fonctions moniteur SWI suivantes sont opérationnelles :

1. Fonctions de base :
$00 Entrée caractère dans accu A
$01 Affichage du caractère contenu dans A
$02 Impression du caractère contenu dans A
$03 Test clavier : BNE si caractère présent
$04 Test imprimante prête : BNE si prête
$05 - $08 non implantés
$09 Appel moniteur
$0A - $0F non implantés

2. Fonctions disques:
Les fonctions disques du moniteur assurent au plus la gestion de 4 unités disques numérotées de 0 à 3.
Le type physique du lecteur de disque associé n'a que peu d'importance ; il fait référence à une unité logique par l'intermédiaire de son numéro (0..3).
La communication entre une unité logique (numérotée de 0 à 3) et son unité physique (lecteur 5" SD/DD/SF/DD, disque virtuel, Rom pack) se fait par l'intérmédiaire de son BCUL (bloc de contrôle d'unité logique).

Description d'un BCUL:

Type 1 : Floppy
Octet/bit 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0
1 X DTO DP X DC X N° lecteur
2 STEP Nb secteurs par face SD
3 Nb secteurs par face DD
4 Piste courante lecteur

DT0 Densité piste O : 1=DD 0=SD
DP Pas piste à piste : 1=1 0=2 (compatibilité 40/80 pistes)
DC Densité courante : 1=DD 0=SD
STEP stepping rate : 0..3

Type 2 : non utilisé

Type 3 : Rom pack
Octet/bit 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 1
1 0 0 0 0 0 0 0
2 0 0 0 0 0 0 0
3 0 0 0 0 0 0 0
4 Piste courante lecteur

Unités physiques définies par défaut :
Type 1 Floppy 5" lecteur 1
Type 2 Floppy 5" lecteur 0
Type 3 - 8 non utilisé
Type 9 Rom pack

$10 Configuration
Associé à l'unité logique A l'unité physique B.
Si B est supérieur à 8, les 4 premiers octets de BCUL seront remplacés par les registres X et Y.

$11 Interrogation/Inversion de densité
En entrée A contient le numéro de l'unité logique interrogée.
Si B 0 et que le type de pilote est 1, le bit de densité courante est inversé.
Si B 0 l'interrogation renvoit dans X et Y le contenu des 4 premiers octets du BCUL de l'unité.
Au retour A contient le type de pilote, et B le numéro de l'unité physique associée.

$12 Sélection
Assure la sélection de l'unité logique A
Au retour C=0 sélection réussie, C=1 erreur.

$13 Retour en piste 0
Assure la sélection et le retour en piste O de l'unité logique A.

$14 Lecture
Lit sur l'unité logique courante le secteur B de la piste A, en rangeant les données à partir de l'adresse pointée par X.
Au retour Z=1 lecture réussie, Z=0 erreur

$15 Ecriture
Ecrit sur l'unité logique courante le secteur B de la piste A, les données étant prises à partir de l'adresse mémoire
pointée par X.
Au retour Z=1 écriture réussie, Z=0 erreur

$16 Vérification
Vérifie la qualité physique des informations du dernier secteur accédé.
Au retour Z=1 écriture réussie, Z=0 erreur

$17 Formatage
Uniquement valable avec les unités de type 1 (floppys)
Formate la piste A, avec les données pointées par X.
Au retour Z=1 écriture réussie, Z=0 erreur

$18 Positionnement
Positionne l'unité logique sur la piste A secteur B

$19 - $1E non utilisés

$1F Lecture secteur courant

3. Fonction graphiques :

$20 - $21 sélection mode graphique 256*256
$22 Sélection mode texte

$23 Effacement écran dans couleur courante

$24 Sélection couleur courante
le code contenu dans A devient la couleur courante

$25 Sélection du mode de trace
le code contenu dans A sélectionne le tracé
0 trait continu
1 pointillé fin
2 pointillé gras
3 mixte (trait point)

$26 - $28 non implantés

$29 Définit la fenêtre graphique
X 0,1 : abcisse origine
X 2,3 : ordonnée origine
X 4,5 : abcisse fin
X 6,7 : ordonnée fin

$2A Trace un point
X 0,1 : abcisse du point
X 2,3 : ordonnée du point
le point devient le point courant

$2B Trace d'un segment
X 0,1 : abcisse d'origine
X 2,3 : ordonnée d'origine
X 4,5 : abcisse de destination
X 6,7 : ordonnée de destination
le point destination devient le point courant

$2C Trace d'un segment à partir du point courant
X 0,1 : abcisse destination
X 2,3 : ordonnée destination
le point destination devient le point courant

$2D Déplacement du point courant
X 0,1 : abcisse
X 2,3 : ordonnée

$2E Lecture position point courant retournée en :
X 0,1 : abcisse
X 2,3 : ordonnée

$2F Lecture couleur du point
X 0,1 : abcisse
X 2,3 : ordonnée

$30 Non implanté

$31 Remplissage de la zone coloriée dans la couleur courante colorie dans la couleur courante la zone de couleur uniforme désignée par le point et limitée par la couleur précisée. Le point courant en sortie est indéterminé.
X 0,1 : abcisse du point initial
X 2,3 : ordonnée du point initial

$32 Remplissage d'un contour
colorie dans la couleur courante la zone désignée par le point et limitée par la couleur précisée. Le point courant en
sortie est indéterminé.
X 0,1 : abcisse du point initial
X 2,3 : ordonnée du point initial
X 4 : couleur

$33 Trace d'un arc de cercle
trace un arc de cercle à partir d'un point autour d'un centre.
X 0,1 : abcisse du centre
X 2,3 : ordonnée du centre
X 4,5 : angle signé en 1/10 de degré
X 6,7 : abcisse du point de départ
X 8,9 : ordonnée du point de départ

$34 Trace d'un arc de cercle à partir du point courant.
X 0,1 : abcisse du centre
X 2,3 : ordonnée du centre
X 4 : angle

$35 Trace d'un texte
X 0,1 : abcisse de départ
X 2,3 : ordonnée de départ
X 4 : largeur des caractères
X 5 : hauteur des caractères
X 6 : direction des caractères
(Non utiisable pour caractères accentués)
0 = horizontale
1 = horizontale penché
2 = verticale
3 = verticale penché

$36 Trace d'un motif
X 0,1 : abcisse de l'origine
X 2,3 : ordonnée d'origine
X 4,5 : abcisse de la chaîne
X 6,7 : longueur de la chaîne
La chaîne correspond à une succession de directions et de longueurs
direction
A droite
B droite-haut
C haut
D gauche haut
E bas
F bas droite
G gauche
H bas gauche
longueur chiffre de 0 . . 3 le premier indique le delta X, le second le delta Y.

$37 non implanté

$38 Lecture position manette et carte ADC
lecture de la position du canal contenu dans A O . . 19
la valeur est retournée dans A O . . 255

canal 0 manette 1
canal 1 bouton 1
canal 2 manette 2
canal 3 bouton 2

bouton repos -- 0
presse -- 128

manette
repos -- 15
avant -- 7
arrière -- 11
droite -- 14
gauche -- 13
AV DR -- 6
AV GA -- 5
AR DR -- 10
AR GA -- 9

$39 Exécution d'un morceau de musique
X 0,1 : adresse de la chaîne
X 2,3 : longueur de la chaîne

Note
0 pause
A do
B do dièze
C ré
D mi bémol
E mi
F fa
G fa dièze
H sol
I sol dièze
J la
K si bémol
L si

Octave
O suivi d'un chiffre de 1 à 8
LA 440Hz = Octave 4

Durée
N suivi d'un chiffre de 0 à 9
0 double croche
1 double croche pointée
2 croche
3 croche pointée
4 noire
5 noire pointée
6 blanche
7 blanche pointée
8 ronde
9 ronde pointée

Pause
S suivi d'un chiffre de 0 à 2
0 normal
1 staccato
2 legato

Tempo T suivi d'un chiffre de 1 à 9

Amplitude V suivi d'un chiffre de 0 à 9 ou de :; = ?

$3A Lecture date et heure
retourne dans X l'adresse d'une chaine de caractères terminée par $04 (EOT)
JJ/MM/AA HH:MM:SS si carte horloge présente
JJ/MM/AA si carte horloge absente

$3B Lecture initialisation K7
B 0 Initialisation en écriture
B 1 Initialisation lecture
B 2 Ecriture du contenu de A
B 3 Lecture d'un caractère, retourné dans A

erreur: C=1

$3C - $3F non implantés

4. Fonctions annexes :

$40 Edition d'un message
Affichage du message pointé par X et terminé par le code $04.

$41 Saut de ligne

$42 Affichage du contenu de A en hexadécimal sur 2 caractères.

$43 Insertion d'un caractère dans le flot d'entrée.
(Le caractère contenu dans A est inséré dans le flot des caractères lus sur le terminal.

$44 Réception caractère à partir du port série.
le code est retourné dans A

$45 Emission caractère vers la liaison série.
Emet le code contenu dans A

$46 Test caractère reçu sur le port série.
La condition BNE est retournée si caractère présent sur port série.

$47 Modification paramètres port série
Le paramètre à modifier est contenu dans A
les 4 bits de gauche représentent le code de commande.
les 4 bits de droite le code de la commande.
Commandes :
0 - 1 non implantées
2 programmation mode
3 non implanté
4 contrôle modem

programmation mode :
0 7 bits, parité paire, 2 stops
1 7 bits, parité impaire, 2 stops
2 7 bits, parité paire, 1 stop
3 7 bits, parité impaire, 1 stop
4 8 bits, 2 stops
5 8 bits, 1 stop
6 8 bits, parité paire, 1 stop
7 8 bits, parité impaire, 1 stop

contrôle modem :
0 Modem déconnecté
1 Modem déconnecté
2 Modem connecté. V23 main chanel
3 Modem connecté. V23 back chanel

$48 Test port série à émettre.
La condition BNE est retournée si la liaison est prête à émettre0.

Contrôle de l'écran

^A ligne colonne positionne le curseur
ligne compris entre 1 et 25
colonne compris entre 1 et 40

^B demande position curseur
la position curseur est retournée par la fonction entrée caractère
1er caractère = ligne +$40
2eme caractère = colonne +$40

^D couleur
sélectionne la couleur du caractère

^E couleur
sélectionne la couleur du fond
couleur compris entre 0 et 15

^F définition fenêtre texte
ligne colonne - origine en haut à gauche
ligne colonne - fin en bas à droite
ligne compris entre 1 et 25 modulo 64
colonne compris entre 1 et 40 modulo 64

^G cloche
^H curseur à gauche
^I curseur à droite
^J curseur en bas
^K curseur en haut
^L effacement, écran retour curseur en haut à gauche
^M retour en début de ligne
^N effacement fin de ligne
^O effacement fin d'écran
^P effacement de la ligne
^T validation du curseur
^U suppression du curseur
^V mode rouleau
^W mode page
^X effacement fin de ligne
^Y non utilisé

Commandes du moniteur
C charge un programme K7
D Lancement du disque
E Lecture et execution d'un pgm K7
G XXXX Lancement du programme dont l'adresse de départ est XXXX
M XXXX Edite en plein écran la page mémoire de 128 octets débutant à l'adresse XXXX
S XXXX YYYY ZZZZ ecrit programme sur K7
XXXX adresse de début
YYYY adresse de fin
ZZZZ adresse d'execution

Format K7
adresse de début 2 octets
adresse de fin 2 octets
adresse de transfert 2 octets
données
0 si 0 un autre enregistrement suit

Cartographie mémoire
$0000 - $E5FF RAM utilisateur
$E600 - $EFFF RAM système
$F000 - $F0FF Entrées sorties
$F100 - $FFFF ROM moniteur système

Cartographie des E/S
$F000 implantation du EF9365 (contrôleur vidéo)
0 registre état/commande
1 Ctrl1 (contrôle écriture et IT)
2 Ctrl2 (orientation et type vecteurs)
3 Csize (taille des caractères)
4 réservé
5 Delta X
6 réservé
7 Delta Y
8 X poids fort
9 X poids faible
10 Y poids fort
11 Y poids faible
12 XLP
13 YLP
14 réservé
15 réservé

$F010
Registre de contrôle système en écriture uniquement
D7 sélection ROM (0 ROM de base) (1 ROM graphique)
D6 = 0 Shift lock clavier
D5 = 1 Connexion modem
D4 = 1 Back chanel EF7510
0 Main chanel EF7510

D3 D2 D1 D0 couleur
I R V B
0 0 0 0 blanc
0 0 0 1 jaune
0 0 1 0 magenta
0 0 1 1 rouge
0 1 0 0 cyan
0 1 0 1 vert
0 1 1 0 bleu
0 1 1 1 noir 1
1 0 0 0 gris
1 0 0 1 jaune sombre
1 0 1 0 magenta sombre
1 0 1 1 rouge sombre
1 1 0 0 cyan sombre
1 1 0 1 vert sombre
1 1 1 0 bleu sombre
1 1 1 1 noir

$F020
Registre lecture écran 1
D7 D6 D5 D4 couleur du point le plus à gauche

$F030
Registre lecture écran 2
D3 D2 D1 D0 couleur du point le plus à droite

$F044 PIA clavier A

$F046 PIA clavier B

$F048 PIA rompack
$F04A PIA imprimante

$F050 ACIA modem et K7

$F060 Générateur de son AY8910
0 Adresse du registre AY8910
1 données
Registres du AY8910
0 diviseur de ton canal T1 poids faible
1 diviseur de ton canal T1 poids fort
2 diviseur de ton canal T2 poids faible
3 diviseur de ton canal T2 poids fort
4 diviseur de ton canal T3 poids faible
5 diviseur de ton canal T3 poids fort
6 diviseur de bruit
7 sélection des sources 0 0 S3 S2 S1 T3 T2 T1
(sélection au niveau bas)
8 Volume canal 1
9 Volume canal 2
10 Volume canal 3
(B4 = 0 volume défini par BO B3 )
(B4 = 1 volume défini par enveloppe )
11 durée dent de scie pour enveloppe p faibles
12 durée dent de scie pour enveloppe p forts
13 forme d'enveloppe codée sur B3 . BO
14 Port d'E/S A
15 Port d'E/S B

$F080 Carte contrôleur de floppy disques
$F080 Contrôle/état WD1770
$F081 Piste courante WD1770
$F082 Sect courant WD1770
$F083 données WD1770
$F08A Pia sélection

$F090 Carte conversion digital analogique

Connectique

Sortie péritélévision Prise Cannon DB15 femelle
1 Bleu PERITEL
2 Vert PERITEL
3 Synchro négative TTL
4 Vert TTL
5 Intensité TTL
6 +12V/100mA
7 Commut PERITEL
8 Son PERITEL
9 Synchro PERITEL
10 Rouge PERITEL
11 Bleu TTL
12 Rouge TTL
13 +5V/100mA
14 Masse
15 Masse

Entrée crayon optique Prise DIN 5 broches femelle
1 +5V/50mA
2 Masse
3 Inter crayon
4 non utilisé
5 crayon optique

Entrée manette de jeux Prise Cannon DB9 mâle
1 Avant actif au niveau 0
2 Arrière
3 Gauche
4 Droite
5 non utilisé
6 Poussoir
7 +5V/50mA
8 Masse

Sortie Modem Prise Cannon DB9 femelle
1 Connexion ligne tél (sortie TTL)
2 Indicateur de sortie (entrée TTL)
3 +5V/100mA
4 E/S analogique (à connecter au transfo de ligne)
5 Masse analogique
6 non utilisé
7 non utilisé
8 Masse
9 non utilisé

Sortie K7 Prise DIN 5 broches femelle
1 Sortie niveau bas 50mV câc
2 Masse
3 Entrée
4 Sortie niveau haut 1V câc

Sortie imprimante Prise cannonc DB15 mâle
1 non utilisé
2 masse
3 masse
4 D8
5 Acknowledge logique négative
6 Strobe logique négative
7 non utilisé
8 non utilisé
9 D7
10 D6
11 D5
12 D4
13 D3
14 D2
15 D1

Sortie extension SS30 Prise Cannon DB25 mâle
1 +5V
2 NMI logique négative
3 A6
4 A4
5 A2
6 AO
7 R/W
8 CSS30 logique négative
9 D1
10 D3
11 D5
12 D7
13 Masse
14 +5V
15 IRQ logique négative
16 A5
17 A3
18 A1
19 Enable
20 Reset logique négative
21 D0
22 D2
23 D4
24 D6
25 Masse

(texte original signé de Didier Cugy dans la publication Lettre Micro n°1.)

Le Squale est un ordinateur conçu et commercialisé par la société française Apollo 7. Nous essayons de reconstituer son histoire et de lui permettre de revivre que ce soit physiquement ou par émulation, ainsi qu'avec de nouveaux logiciels.



Vous aimez cette page ? Partagez-en le lien !

Facebook

Twitter

LinkedIn

Reddit


[homepage]  [RSS]  [archives]
[contact & legal & cookies]  © ACBM