MultiSwitch

Dernière mise à jour: 21/11/2008.

On me demande régulièrement des disques images de logiciels après être passé sur mon site.
J'essaie dans la mesure du possible de les fournir malgré les kilomètres qui me séparent du lieu de stockage de ma collection.
D'habitude, je me contente d'envoyer ça par mail mais dans le cas du jeu de rôle Connall, c'est différent:

Tout d'abord parce que je ne connaissais pas ce jeu: il était sur une des disquettes de la collection de l'ancien pirate The White Man que je n'avais jamais booté depuis sa récupération.
Ensuite il s'agit d'un logiciel du domaine public écrit par un particulier, aussi je n'ai aucun scrupule à le mettre sur ce site pour ceux qui voudraient le découvrir (ou le redécouvrir). Quelques infos:

Il a été réalisé en 1987 par Philippe Houdry.
Ce soft appartient à la catégorie des jeux de role de type "Donjon & Dragon" dans le monde de Tolkien.
Visuellement, il y a un affichage en mode HGR (avec des shapes assez simplistes) et en mode texte 80 colonnes en utilisant des caractères accentués français.
Le jeu tient sur 2 faces d'une disquette 5,25 pouces.
Le système d'exploitation utilisé est un PRODOS 1.1.1 (18/09/84) et le BASIC.SYSTEM 1.1.
Le volume s'appelle /F sur les 2 faces.
Les programmes sont en BASIC.

Un aspect attachant et rigolo est l'usage d'un langage parlé ressemblant à une sorte de vieux français.

Si ce soft ne m'avait pas été demandé explicitement (Olivier Jacques), je pense que je ne l'aurais même pas mis sous forme de .dsk.
Car en utilisant FASTDSK, il y avait plusieurs secteurs H.S. Et en temps normal, je n'aime pas passer trop de temps sur une disquette abimée (à moins que j'ai un dossier en cours sur ce sujet).
Là j'ai du analyser la nature des dégats et ouf... c'était récupérable.

Scénario

C'était à l'époque des Anciens Dieux. Les Elfes, les Trolls et les Dragons hantaient quotidiennement les landes et les forets. Les Magiciens et les Fées luttaient les uns contre les autres pour règner sur les hommes.
L'Archemage Iliz étendait alors sa toute puissance sur l'ile de Connall avec cruauté.
Il l'avait plongé dans les ténèbres pour punir son roi, Couhoulinn-le-Beau-Cornu.
Celui-ci avait alors réunit ses champions. Nombre d'entre-eux avaient tentés de pourfendre Iliz.
Mais aucun n'était jamais revenu d'au-delà du Col.

Votre heure venait de sonner...


INFORMATIONS GENERALES

Ce programme 'CONNALL' est livré au domaine public par son auteur.
En conséquence, il est souhaité une exploitation non commerciale de ce jeu de role.
Néanmoins, vous pourrez utiliser et modifier les programmes de cette disquette à votre gré.

PHILIPPE HOUDRY.

Pour jouer...

Téléchargez les deux disques images ci-dessous.

Floppy
ProDOS 8
Download Connall side 1
Floppy
ProDOS 8
Download Connall side 2


Vous devrez utiliser plusieurs codes :

<B> Bavarder
<C> Caractéristiques
<D> Descendre
<E> Entrer
<F> Franchir
<J> Jeter
<L> Lire
<M> Monter
<O> Ouvrir
<P> Prendre
<Q> Quitter
<R> Remonter
<S> Sort (lancer un)
<T> Toucher
<U> Utiliser
<V> Voir
<Flèches> pour se déplacer


INFORMATION IMPORTANTE SUR LA SAUVEGARDE D'UN PERSONNAGE

La touche <Q> permet de quitter le jeu uniquement à partir de l'ile de Connall.
A ce stade, 3 possibilités vous sont offertes :

1°) Quitter vraiment (faire TEXT pour obtenir la page texte)
2°) Reprendre le jeu (faire -/F/JEU sans changer de face)
3°) Sauvegarder votre personnage avant de continuer ou de vous arreter (changez de face, faites -/F/SAUVE et suivez les instructions).


Ne croyez pas que la pratique de la sauvegarde d'un bon personnage soit de la triche.
Dans tous les jeux de role qui se pratiquent en de nombreuses heures (et celui-ci devrait vous occuper plusieurs soirées), c'est la seule manière de mener votre quete à sa conclusion.

Connall
Connall
Connall
Connall
Connall
Connall


L'image du dragon a été repompée sur le master disk de la série des jeux d'aventure EAMON (master distribué à l'époque en France par Reseau Planétaire):

Eamon
Eamon
Eamon

Correction du 21/11/2008: il semblerait que ce dragon ait été pompé (et modifié) par les auteurs d'Eamon sur un soft plus ancien intitulé: Higher Graphics I & II!! (A suivre peut -être!!)

Higher Graphics II
Higher Graphics II
Higher Graphics II

Bon, ben ça se termine à présent! Synergistic Software avait sorti avant (en 1980) un soft intitulé Odyssey : The Compleat Adventure développé par Robert C. Clardy.
Et ce jeu doit être le point de départ:

Odyssey
Odyssey
Odyssey
Odyssey
Odyssey
Odyssey

A noter par ailleurs que j'avais aussi de mon côté utilisé ce dragon dans une pré-version du mon jeu Muryaden 1!!!

Contenu des .dsk

File: Connall_Rebuild_Deckard_f1.dsk
Disk: ProDOS /F (140KB)
 Name                             Type Auxtyp Modified         Format   Length
------------------------------------------------------------------------------
 PRODOS                           SYS  $2000  17-Aug-84 00:00  ProDOS    14848
*BASIC.SYSTEM                     SYS  $2000  11-Dec-85 00:00  ProDOS    10240
 START                            BAS  $0801  24-May-87 14:00  ProDOS     1118
*MENU                             BAS  $0801  20-May-87 14:00  ProDOS     2646
*CREATION                         BAS  $0801  20-May-87 14:00  ProDOS     2611
*REP                              BAS  $0801  20-May-87 14:00  ProDOS      387
*PAGE.PRES                        BIN  $2000  20-May-87 14:00  ProDOS     8192
*SAUVE                            BAS  $0801  23-Apr-87 19:00  ProDOS     1797
 X.X                              TXT  $0000  24-May-87 14:00  ProDOS       38
*FORGALL                          TXT  $0000  24-May-87 14:00  ProDOS       92
*GENERALITES.REM                  BAS  $0801  24-May-87 14:00  ProDOS     4771
 DECOMP                           BIN  $4000  [No Date]        ProDOS      583
 VIF.PIC                          BIN  $6000  [No Date]        ProDOS     3441
 STARTUP                          BAS  $0801  [No Date]        ProDOS      157
------------------------------------------------------------------------------


==============================================================================

File: Connall_Rebuild_Deckard_f2.dsk
Disk: ProDOS /F (140KB)
 Name                             Type Auxtyp Modified         Format   Length
------------------------------------------------------------------------------
*JEU                              BAS  $0801  25-May-87 14:00  ProDOS     6138
*COMBAT                           BAS  $0801  30-May-87 18:00  ProDOS     6077
*ENTRER                           BAS  $0801  20-May-87 14:00  ProDOS     6074
*COFFRE                           BAS  $0801  20-May-87 14:00  ProDOS     3272
*UTILISER                         BAS  $0801  30-May-87 18:00  ProDOS     3038
*DLO                              BAS  $0801  29-May-87 14:00  ProDOS     2506
*PJ                               BAS  $0801  20-May-87 14:00  ProDOS     1649
*SID                              BAS  $0801  31-May-87 14:00  ProDOS     1579
*FR                               BAS  $0801  20-May-87 14:00  ProDOS      998
*R                                BAS  $0801  20-May-87 14:00  ProDOS      822
*INTERM                           BAS  $0801  20-May-87 14:00  ProDOS       48
*TEST                             BAS  $0801  20-May-87 14:00  ProDOS       14
*CADRE                            BIN  $2000  20-May-87 14:00  ProDOS     8192
*COMB                             BIN  $4000  20-May-87 14:00  ProDOS     2026
*PROF                             BIN  $4000  20-May-87 14:00  ProDOS     1200
*ILE                              BIN  $4000  20-May-87 14:00  ProDOS      684
 CAR                              TXT  $0000  20-May-87 14:00  ProDOS      147
 NIVC                             TXT  $0000  20-May-87 14:00  ProDOS     4582
*NIVN                             TXT  $0000  20-May-87 14:00  ProDOS     4594
*NIVW                             TXT  $0000  20-May-87 14:00  ProDOS     4624
*NIVS                             TXT  $0000  20-May-87 14:00  ProDOS     4664
*NIVE                             TXT  $0000  20-May-87 14:00  ProDOS     4577
*NIV1                             TXT  $0000  20-May-87 14:00  ProDOS     4820
*NIV2                             TXT  $0000  20-May-87 14:00  ProDOS     4717
*NIV3                             TXT  $0000  20-May-87 14:00  ProDOS     4680
*NIV4                             TXT  $0000  20-May-87 14:00  ProDOS     4761
*NIV5                             TXT  $0000  20-May-87 14:00  ProDOS     4727
*NIV6                             TXT  $0000  20-May-87 14:00  ProDOS     4725
*NIV7                             TXT  $0000  20-May-87 14:00  ProDOS     4774
*NIV8                             TXT  $0000  29-May-87 14:00  ProDOS     4728
*AUG                              TXT  $0000  20-May-87 14:00  ProDOS      540
*TRA                              TXT  $0000  20-May-87 14:00  ProDOS      917
*VICTOIRE                         BAS  $0801  31-May-87 14:00  ProDOS     1498
------------------------------------------------------------------------------

On voit clairement que la boite qui vendait ce soft (tout au moins en théorie le cout de la disquette et de la copie elle-même- ceci dit j'ignore quel prix en était demandé!!!) a rajouté son logo après.
Et ceux qui ont fait cela n'avaient pas de carte horloge dans leur machine... (les NO DATE sur la face 1). 

Informations techniques sur le jeu


*** ORGANISATION PROGRAMME/MEMOIRE ***

La question ne s'est posée que pour JEU et tous les programmes qui y sont chainés (à cause de l'image HGR à l'écran).
Dès la 1° ligne du programme, le LOMEM est fixée à 18000 ou 19000 (donc au-dessus HGR2 / 16384).
Ceci car des shapes (ILE, PROFondeurs ou COMBat) sont stockées à partir de 16384.
Les variables sont donc "plus hautes" que HGR+Shapes (pas de risque d'effacement mutuel).
Du coup, il y a plus de place pour le programme.
Il peut ainsi s'étendre sans risque de $800 au début HGR/8192 (soit 13 secteurs ProDOS ou 6144 bytes).

 
*** ORGANISATION DE JEU ***

Le LOMEM est d'abord fixé à 18000.
On charge ensuite les shapes en 16384 et CADRE en 8192 (HGR).
On lit ensuite les variables du personnage (CAR) et celles du niveau courant (soit NIVC, soit NIVW.E.S.N.1à8).
Tous les tableaux avaient été préalablement dimensionnés et les variables initialisées (pour y accéder plus vite, on les place avant B$(21,10) dans le tableau des variables).
On dessine le personnage en X,Y.
On "découpe" B$(J,K) en ABCDHPVT.
Puis c'est l'attente de l'enfoncement d'une touche autorisée et les conséquences de cette action...


*** LE DEPLACEMENT DU PERSONNAGE ***

Une flèche étant enfoncée, on incrémente X et Y comme il se doit (avec valeurs X1 et Y1 de sauvegarde).
On convertit en J et K (Cf JEU) puis on découpe B$(J,K) en ABCDHPVT. On teste B (0 ou 1).
Si B=0, case interdite (pas de déplacement permis).
Si B=1, on teste A.
  Si A<>25, valeur par défaut, il y a attaque (sauf si A=24 et tirage dé non favorable).
  Si A=25, pas d'attaque donc on déplace le personnage.
      On teste alors H (propriété particulière), P (piège) et T (message).


*** LES VARIABLES ***
 
Celles des labyrinthes ont été évaluées sur plan.
Il s'agit d'un tableau B$(21,10).
Chacune de ces variables est composée de 8 variables condensées.

B$( = A B C D H P V T.

Il existe bien sur un sous-programme de découpe.

A contient le code d'attaque (type de monstre).
B permet le déplacement (=1) ou l'interdit (=0) et indique parfois des cases spéciales (=2 ou =3).
C contient la forme des cavernes (couloir, branche, carrefour,...).
D contient les objets des profondeurs ou le paysage de l'ile (escaliers, pierres, foret, batiment,...).
H contient les particularités des cases (gain points magie, soins,...).
P contient les pièges.
V contient les textes de "Bavardages".
T contient les messages descriptifs de Connall et des labyrinthes.

CO$=Situe le cadran d'ile (NEWS)
EM=empoisonnement
V=vision
TY=type d'endroit (1-ile, 2-cité, 3-foletière, 4-chateau, 5-Shee, 6-tertre, 7-temple)
TP=temps écoulé
 
Le personnage est défini dans 2 tableaux : P$(14) et P(14).
On y trouve :
P$( -> 0-Nom, 1/8-Objets portés, 9-Armure, 10-Arme, 11-O.U., 12-Divers, 13-Compteur vies (3 max), 14-Etat
P( -> 0-PF, 1-PFM, 2-PM, 3-PC, 4-OR, 5-IP, 6-Dés arme, 7-Faces dés, 8-Exp, 9-Est., 10-Clac., 11/14- Divers.

Les monstres sont définis dans le tableau E(8) : -> 0-PF, 1-PC, 2-IP, 3-Dés arme, 4-Faces dés, 5-Exp., 6/7-Divers, 8-Type (0/22).
A= -> 0-Aléatoire (6/18)
      1-Miawe Carnine
      2-Povre Hère
      3-Rat
      4-Elfe Dépravé
      5-Leu Salvage
      6-Squelette
      7-Brigand
      8-Brohon
      9- Orcq
      10-Chevalier Félon
      11-Troll
      12-Serpent
      13-Egle Jaiant
      14-Guivre
      15-Empuse
      16-Ogre
      17-Hydre
      18-Farfadet
      19-Draco
      20-Déée
      21-Spectre
      22-Iliz
      24-Aléatoire (selon dé: attaque ou non).
PF=(INT(TP/20000)+1)*TY*A*(N+1)*AL 1-10 <1 à 25000>
PC=(INT(TP/20000)+1)*TY*(N+A+AL 1-20) <3 à 500>
IP=INT(TP/10000)+N+1+AL 0-A <1-30>
Dés=INT(TP/10000)+N+TY+INT(A/2)+AL 1-6 <1 à 30>
Faces=INT(TP/10000)+TY+N+INT(A/1.5)+AL 0-20 <1 à 60>
Exp=INT((A*(N+TY)*AL 1-6) / (INT(TP/20000)+1) )
 

Les lieux:
 
La Cité Cruachan Ai.
Une foletière.
Un tertre.
Le Fiacha Shee.
Un Chateau.
Le Temple d'Iliz.
Les Monts de Connall.
La Mer Circulaire.
La Sombre Foret de Connall.

En chemin...:

Un escalier qui monte.
Un escalier qui descend.
Un coffre.
Une esterminale.
Un télagon.
Une safre.
Une esmeralde.
Un jacint.
Une inscription murale.
Un bassin.
Une échope.
Un chateau.
La chapelle des songes.
Un aventurier.
Les portes de Cruachan Ai.
Les dalles de Cruachan Ai.
La Coene Draco
Taillefer.
L'Adamantine.
Une Fée.
Le Roi Fiacha.
ILIZ !


#LICIATOS
#ANNCOBUETH
#BIONTU
#VERONADAS
#MAPONOS
#NESINCORS
#NESOMUN
#TAN TIXINTOR
#UO UTANIT



Jeteur de sort
Que tu sois proche !
Qu'ils frappent !
Ensorcelées
Nom d'un dieu guérisseur
Ne soit pas fermé !
Qu'il ne soit pas crainte !
Qu'il soit marqué par le feu !
Entièrement dessous
Plus dure que le diamant
Griffe
Eau
Cimetière
Exclamation de joie
Empoisonné
Coutelas-sabre
Hache d'arme
Pierre à venin
Ours
Exclamation de dépit
Cuirasse
Clé
Peau
Cotte d'arme
Pique
Breuvage magique
Féée
Epée à deux mains
Encre
Vampire
Pierre précieuse
Envoutée
Faux d'arme
Lieu hanté par les farfadets
Plus fort
Lance-massue
Gourdin
Mage
Guérir
Mouette
Jamais
Pierre précieuse
Saphir


*** ARMES, ARMURES ET OBJETS ***

Il y a plusieurs armes classiques et 2 magiques (qui tapent très fort !).
Elles peuvent etre améliorées en cours de quete.

Il existe plusieurs armures dont 2 magiques. Leur indice de protection peut etre augmenté au cours de la quete.

Il existe de très nombreux objets aux pouvoirs très divers.

Adamantine
Aigue Médir
Ambre Jaune
Arc
Archant Erb
Arteil Draco
Badelaire
Baton d'if
Besague
Bezar
Bon Elissir
Braies
Broigne
Cegue
Chalt Aigue
Champegnel
Claciele
Coene Draco
Cofret
Corme Verte
Coterel
Cuiriée
Dart
DéaltéChance
Enque Faée
Espafut
Fauchon
Godendart
Haubert
Jame de Vie
Lignas
Loques
Oeil-Tan
Rubi Force
Rune-Mague
Sanc Draco
Taillefer
Torcheis
Torque Faé


*** CODES DE A / C / D ***

Pour A, voir VARIABLES/Monstres.

C <0 à 14>
D <15 à 38>
H <0 à 6>
P <0 à 6>
V <0 à 7>
T <0 à 7>


*** IMPRESSION ***

Pour imprimer un programme basic (par exemple sur Imagewriter), ajouter les lignes suivantes au début du programme concerné.
 
1 PRINT CHR$(4)"PR#1":LIST
2 PRINT CHR$(4)"PR#0":END

Assurez-vous quand meme que votre imprimante est sous tension...

*** PAR PHILIPPE HOUDRY, "CONNALL", 1987 ***

Quelques infos sur la remise en état des .dsk

FASTDSK donne la liste des couples piste/secteur en erreur.
A partir de là, il faut aller voir à quoi cela correspond sur la disquette (fichiers ou structures ou secteurs inutilisés).

Quelques rappels utiles pour passer de la notion de block ProDOS en track/secteur DOS (logique) utilisé par les outils d'éditeur de secteurs comme COPY II+ 5.x:

1) Block ProDOS => track et les secteurs de debut et fin

Pour faire simple:

track = block/8 (ne pas tenir compte des decimales)
offset = block - (track*8) => donne un résultat dans la fourchette [0..7]
sector debut = valeur offset table low

    offset table low : 0 1 2 3 4 5 6 7
              valeur : 0 D 3 9 7 5 3 1

sector fin   = valeur offset table high

   offset table high : 0 1 2 3 4 5 6 7
              valeur : E C A 8 6 4 2 F

Exemple: pour avoir les 2 T/S du block 21
           track = 21/8 = 2
           offset = 21 - 2*8 = 5
           secteur debut = $05
           secteur fin   = $04
           Donc T$02 S$05 et T$02 S$04

2) T/S => numero Block et flag 0=Debut (lower half) 1=Fin (upper half)

block = (track*8) + offset a partir du sector

            Sector : 0 1 2 3 4 5 6 7 8 9 A B C D E F
     Sector Offset : 0 7 6 6 5 5 4 4 3 3 2 2 1 1 0 7

flag = valeur 0/1 a partir du sector

            Sector : 0 1 2 3 4 5 6 7 8 9 A B C D E F
              Flag : 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1


Depuis l'Apple II, il faut créer plusieurs images des mêmes faces en erreur pour faire des comparaisons ultérieures avec FAST.COMPARE afin de reconstruire le puzzle en fonction de ce qui semble le plus valable.

La panoplie nécessaire (non exhaustive) de l'archéologue des disquettes pour un soft sous ProDOS est la suivante:

COPY II+ sous ProDOS (avec le mapping toujours en T/S, ce que ne fait plus les dernières versions). J'ai utilisé la version 6.6 présente sur le FBOOT 2.0 de Chip Select.
COPY II+ sous DOS. J'ai utilisé la version 5.5 du pack de copieurs d'ACS (Apocalyptic Cracking Squadron side 1).
Le livre Beneath Apple ProDOS (infos volume bit map, structures ProDOS, key block list, ...) ou un scan de cet ouvrage (cela existe sur le web - c'est avec ça que je bosse souvent).
FAST.COMPARE de Sam.
BLOCK.WARDEN (et éventuellement MR.FIXIT) du pack ProSEL de Glen Bredon pour examiner la structure des disquettes sous ProDOS.
CiderPress pour voir si les programmes BASIC sont propres. Idem pour les images et les fichiers TXT.

Une disquette 5,25" compte 280 blocks:

ProDOS
Block   T/S logique (Copy II+)  Content
------- ----------------------- ----------------------------
 0      T$00 S$00 & T$00 S$0E   Loader
 1      T$00 S$0D & T$00 S$0C   Loader
 2      T$00 S$0B & T$00 S$0A   Catalog (key block)
 3      T$00 S$09 & T$00 S$08   Catalog
 4      T$00 S$07 & T$00 S$06   Catalog
 5      T$00 S$05 & T$00 S$04   Catalog
 6      T$00 S$03 & T$00 S$02   Volume Bit Map
 7      T$00 S$01 & T$00 S$0F   File...
 
 8      T$01 S$00 & T$01 S$0E   File...
...
279


Les réparations (sommaires) effectuées:

Face 1:
 
Resolution des bad blocks en remettant une version propre
de PRODOS et BASIC.SYSTEM depuis un disque clean.
 
Face 2:
 
Comparaison 2A/2B
T$00 S$02 => force que des zeros (2nde partie block: VBM not used)
T$00 S$05 => force que des zeros sauf byte $00=$04 (catalog deja fini avant: en block 4)

ENTRER: block $21 (33) a $2D (45)

T$04 S$0A => high block $22 (34) = high key block ptr fichier ENTREE => que des zeros
T$04 S$0F => high block $27 (39) : fichier ENTREE : octets $F2/$F3 valeurs $37/$32 ou $B7/$B2
                                   => valeurs ok -> $37/$32 pour GOTO 1725
                                  
Comparaison 2A/2C
T$07 S$0F => high block $3F (63) : Fichier DLO. Bad block sur 2C (fichier BAS verole)


Mapping des objets ProDOS avec Copy II+ (visu en T/S et pas en block):

Copy II+ ProDOS
Copy II+ ProDOS


Localisation du key block pointer et examen de la liste des blocks (low) avec BLOCK.WARDEN:

Block Warden
Block Warden