Introduction
Nous avons vu en détail dans un dossier précédant
le système d'exploitation de la société S.S.I.,
à savoir le Rdos 3.3 de Roland Gustafsson.
Nous avons donc à disposition un dos sympa pour faire des jeux.
Le soucis, c'est que les outils de développements eux,
n'existent que sur les OS classiques. Il faut donc à un moment
où un autre se préoccuper du transfert des objets
générés par exemple avec l'assembleur Merlin sous
DOS 3.3 vers notre disquette de jeu Rdos.
Il y a plusieurs possibilités dans ce cas de figure.
Soit on a du temps et on programme l'équivalent d'un Copy II+
compatible Dos 3.3 / Rdos 3.3, soit on n'en a pas et on se
débrouille comme
on peut.
En ce qui me concerne, quand j'ai développé le jeu
Muryaden, j'étais à fond dans la
conception du soft aussi
n'avais-je pas la possibilité
à ce moment là de m'investir dans un programme
(conséquent)
d'échange entre ces systèmes.
J'ai trouvé qu'il était plus simple d'avoir un outil
permettant d'avoir en même temps les 2 dos en ligne pour charger
et sauvegarder mes
programmes modifiés. A dire vrai, j'ai commencé
bestialement par faire des chargements de mes programmes en ram dans un
espace protégé (non altéré par un reboot)
suivi de PR#6 après avoir mis un Rdos 3.3 en ligne dans mon
drive.
Etant ainsi sous Rdos, je n'avais plus qu'à faire mes
sauvegardes.
Mais ce n'était pas élégant (et long s'il y avait
beaucoup de modifications). Aussi par la suite j'ai peaufiné une
solution plus viable. C'est ainsi qu'est né DoubleDOS.
Il était avec tout un tas de programmes liés à mon
projet Muryaden et ce n'est qu'en 1992 que j'ai
décidé
d'en faire une disquette
"propre" à part entière dans le cadre d'un autre projet,
celui d'un
émulateur Rdos fonctionnant sous ProDOS en remplacement du
BASIC.SYSTEM (j'ai nommé mon
RDOS.SYSTEM).
Ce qui suit est la documentation de mon outil de conversion manuel.
Documentation Hellfire Club
DOUBLEDOS est l'assemblage des 2 DOS suivants:
RDOS 3.3 SSI (Roland
GUSTAFSSON - (C) 1981/1986)
DAVID-DOS II.2 (David WESTON
- (C) 1984)
Le résultat vous permet de faire des transferts de programmes
BASIC et BINaires d'une disquette RDOS 3.3 (perso ou du commerce mais
déplombée évidemment!) vers une disquette DOS 3.x
(x>=3) et vice versa.
Je n'ai pas combiné les 2 Dos pour un autre usage; mon but
premier étant de passer MES
progs RDOS vers DOS 3.x pour après les transférer sous
PRODOS et
utiliser mon
RDOS.SYSTEM.
IL N'Y A PAS DE TRANSFERT AUTOMATIQUE.
LES OPERATIONS DOIVENT ETRE REALISEES A LA MAIN OU PAR PROGRAMME.
Si vous voulez un programme de transfert automatique, utilisez
plutôt
la production américaine RDOS
UTILITY
TRANSFER de Andy McFadden qui effectue
directement des conversions sous
ProDOS (voir le magazine Computist
numéro 52).
La disquette en annexe est bootable et contient tout ce qu'il faut.
Le DAVID-DOS II se charge et lance le programme HELLO.
WARNING: pour une raison que j'ignore, il arrive que le programme HELLO
ne soit pas totalement exécuté au boot.
Je m'explique!
Normalement, lorsque le DAVID-DOS trouve un PRINT CHR$(4)"HIDOS", il
charge le Dos en carte
langage et poursuit l'exécution du programme BASIC en sucrant
toutes les
lignes précédant la ligne du HIDOS (cette dernière
comprise). Mais il arrive des
fois (rare!) que le programme s'arrête après ce HIDOS.
Dans ce cas
là, vous
devez faire un LOAD HELLO, enlever la ligne du HIDOS et faire un RUN
pour charger le RDOS.
Lorsque le programme HELLO se déroule correctement, il vous
propose de choisir entre un RDOS normal (catalog en piste $01) et un
RDOS
compatible avec Muryaden I & II (catalog
piste $22). Avec ce
dernier vous pouvez
réellement aller voir tous les programmes de mes jeux de role...
Pour faire les échanges DOS - RDOS, je vous conseille de mette
le disk RDOS en drive 1 et le disk DOS 3.3 en drive 2. Après un
CATALOG,D2 le
RDOS "travaillera" sur le lecteur 1 et le DAVID-DOS sur le 2.
Vous etes alors libre d'effectuer des &LOAD "nom" (ou autres
commandes) et SAVE nom à gogo... (ou autres commandes)
Notes
Il y a des avantages et des inconvénients à avoir un
catalog en piste $01 ou $22.
Avec le catalog en piste $01, le début du stockage de vos objets
commencent à partir de la piste $02.
Si vous ne vouliez pas mettre de système d'exploitation sur une
face et bien la piste $00 est perdue.
Avec un catalog en piste
$22, vous ne perdez plus la
piste $00 si vous ne souhaitez pas qu'elle soit bootable.
En bloquant le bloc 0, vous pouvez commencer le stockage dès le
bloc rdos 1.
Mais c'est un peu plus lent car les programmes débutant en piste
$00, il y a plus de "chance" pour que la majorité des programmes
se trouvent sur les 1ères pistes or à chaque recherche
d'un nom dans le catalog, la tête de lecture doit partir à
l'opposée (enfin, ça dépend
des projets et du nombre d'objets + la place prise).
Quelques informations sur les systèmes d'exploitation de la
série des Muryadens:
Muryaden I : rdos avec catalog en piste
$22.
Muryaden II : présence de 2 Rdos
différents sur la face
1. Le 1er pour la présentation (Rdos 3.3) puis lancement du
2nd qui est celui du jeu (catalog en piste $22). L'idée
était d'une part faire croire à un Rdos classique (en ne
montrant que les objets de la présentation) et d'autre part
faire en sorte que lorsque le Rdos cherche un objet précis, il
ne passe pas du temps en passant sur les objets de la
présentation qui ne sont utilisés qu'une seule fois au
boot.
Attention, faites un &CAT à partir de DoubleDOS et pas d'un
simple Rdos 3.3 car il n'y a pas de secteur contenant le module externe
&CAT sur les disks Muryaden.
Ces Rdos Muryaden commencent en $B400 au lieu
de $B300 (longueur =
$C00).
Pour Muryaden II, le Rdos du jeu correspond
à
l'objet GO dans le
catalog en piste $01.
Il est chargé en $4400 (17408) puis est mové en $B400 via
une routine implantée en $300 par le programme HELLO.
Les Rdos des 2 jeux ne sont pas identiques. On en reparlera
prochainement.
1) INCOMPATIBILITE RDOS 2.1
DOUBLEDOS ne permet pas de manipuler les softs
originaux écrits sous RDOS 2.1. Il y a un problème de
compatibilité du fait des différences 13/16 secteurs.
Ensuite certains cracks de softs initialement sous Rdos 2.1 et qui
devraient en théorie passer (suite à la conversion
en RWTS 3.3) coincent du fait de la méthode utilisée par
le pirate (skewing différent, ...) Dans certains cas, on obtient
un catalog partiel avec un &CAT et dans d'autres, il y a rejet
total avec un I/O error (à noter que ceci n'est pas du à
l'absence de la commande externe &CAT sur un secteur de la piste 0
car cette commande a été incluse directement dans
DoubleDOS pour éviter ce cas de figure).
2) ORGANISATION MEMOIRE AVEC
DOUBLEDOS
David-DOS II.2
Carte lang. : DAVID DOS (compatible DOS 3.3).
$BE00-$BFFF : Adresses et autres faisant le lien BASIC/DAVID DOS.
RDOS 3.3
$AE00-$AEFF : module &CAT classique pré-chargé.
$AF00-$AFFF : NBUF1 du RDOS 3.3 (pour utilisation de la RWTS).
$B000-$B0FF : NBUF2 + les valeurs/compteurs/adresses utilisées
par le RDOS qui se trouvaient avant à partir de $BF56.
$B100-$B1FF : Buffer contenant un module chargé (et autre usage
comme avec &DEF).
$B200-$B2FF : Buffer contenant le secteur chargé par la RWTS).
$B300-$BDFF : RDOS 3.3 Roland GUSTAFSSON.
3) COMMANDE RDOS GOTO
INTERDITE (WARNING: DON'T USE &GOTO CMD!!)
En effet, toutes les adresses de la page BF00 ont été
transférées en B000 avec NBUF2. Donc un &GOTO bien
que chargé correctement en $B200
puis copié en $B100 plantera lamentablement. (Ne devrais-je pas
dire
méchamment?)
4) HIMEM
Vous devez faire un HIMEM: 44544 (=$AE00) avant d'utiliser DOUBLEDOS
(si vous n'etes pas passé par le programme HELLO qui s'en
charge).
5) INCOMPATIBILITE
DAVID-DOS/80 COLONNES
Le DAVID-DOS n'aime pas les CATALOG en 80 colonnes. Le résultat
est caca!
DAVID n'a pas utilisé le retour chariot après l'affichage
d'un nom. Il doit combler avec des espaces pour faire 40
caractères. (D'où
des décalages en mode 80 colonnes)
6) CREER UNE DISQUETTE
DOUBLEDOS
Il faut savoir que le DAVID-DOS utilise les octets $07-$26, $28-$2F de
la VTOC (piste $11 secteur $00) pour stocker du code. En temps normal
le
DOS 3.3 n'utilise pas cette place.
Si l'octet $07 ne contient pas $A0 (1er mnémonic du code=LDY) le
DAVID-DOS refuse d'effectuer le HIDOS.
ATTENTION DONC SI VOUS VOULEZ VOUS CREER UNE DISQUETTE DOUBLEDOS AVEC
COPY II+ EN FORMATTANT ET EN NE RECOPIANT QUE LE DOS ET LES PROGRAMMES,
CA NE MARCHERA PAS SI LA VTOC N'A PAS LE BON CODE.
|
David Dos II & RDOS 3.3 ou RDOS Muryaden
|
Download DoubleDOS (with source codes) (gzipped)
|
Disk : DoubleDOS.dsk
"-" files are DELETED files | "*" files are LOCKED files
----------------------------------------------------------------------
A A$0000 (000000) L$01F3 (000499) 004 HELLO
B A$AE00 (044544) L$1000 (004096) 018 RDOS
B A$AE00 (044544) L$1000 (004096) 018 RDOSP$22
T A$0000 (000000) L$0400 (001024) 004 T.MAKE.DOUBLEDOS
T A$0000 (000000) L$0B00 (002816) 011
T.INCLUDE.DOUBLEDOS
T A$0000 (000000) L$0D00 (003328) 013 T.MODULE.CAT
T A$0000 (000000) L$0D00 (003328) 013 T.NBUF.VAR
T A$0000 (000000) L$7A00 (031232) 122 T.INTERFACE
T A$0000 (000000) L$0F00 (003840) 015 T.RWTS
T A$0000 (000000) L$1C00 (007168) 028 T.RWTS.SUBS
This catalog contains 10 files. 0 were DELETED.
----------------------------------------------------------------------
10 REM DOS <-> RDOS CONVERTER
20 REM (C)1992 BY DECKARD
30 REM
40 PRINT CHR$ (4)"HIDOS"
45 POKE 103,1: POKE 104,8: REM BASIC EN $801
50 HOME : PRINT "1 - RDOS AVEC CAT PISTE $1": PRINT "2 - RDOS
AVEC CAT PISTE
$22": PRINT "3 - FIN"
55 PRINT : INPUT "CHOIX:";CH: IF CH = 3 THEN END
60 IF CH = 1 THEN PRINT CHR$ (4)"BLOADRDOS,A$AE00":
GOTO 70
65 PRINT CHR$ (4)"BLOADRDOSP$22,A$AE00"
70 POKE 1014,0: POKE 1015,179: REM & SAUTE EN $B300
80 HIMEM: 44544: REM $AE00
90 PRINT "DECKARD présente...": PRINT : PRINT "DOUBLEDOS
(RDOS
3.3/DAVID-DOS)": PRINT : PRINT "(C)1992 HELLFIRE CLUB"
100 PRINT : PRINT : PRINT "HIMEM doubleDOS: $AE00"
110 PRINT : PRINT "Ready.": PRINT
200 NEW
----------------------------------------------------------------------
Pour créer les objets RDOS et RDOSP$22, il faut charger le
source T.MAKE.DOUBLEDOS sous Merlin-8 DOS (commande Read) puis
l'assembler avec la
commande ASM sous l'éditeur. Il vous demandera de taper les
lettres R ou M suivi de ENTER. R, c'est pour avoir un Rdos avec catalog
en piste $01 et M, c'est la version Muryaden
avec catalog en piste $22.
L'objet correspondant est alors automatiquement sauvegardé sur
la disquette.