
Loriciels to disk 1.0a   (c) Tom et Jerry du GPA 
**********************
(c) 11/2003
Maj du 13/03/2006 !
Maj du texte le 07/06/2020 !
 

Quoi de neuf sur la version 1.0a ?
----------------------------------
J'ai du tester LTD sur un CPC 464, et suit tombe sur une erreur, liee a la
facon dont le fichier LORI2.DAT etait teste. Ce probleme est maintenant
corrige, et le programme fonctionne correctement avec tous les CPC.



Cet archive contient deux utilitaires permettant de transferer de
cassette sur disquette un certain nombre de programmes originaux vendus
par la societe d'edition Loriciels. Ces logiciels utilisent des
"loaders" ou routines de chargement qui ne permettent pas un transfert
classique avec Discology ou Transformateur 3000, par exemple.

LTD permet de copier les programmes Loriciels utilisant un loader maison
generique qui sert aussi de protection.

Important : 
Loriciels To Disk ne pretend pas etre exhaustif ! Il existe certains 
programmes qui ne peuvent pas etre transferes avec cet outil, car ils 
utilisent d'autres routines de chargements (Lorigraph, par exemple). 
Comme je n'ai pas tous les programmes Loriciels en originaux, je ne peux pas 
vous faire une liste complete des programmes a probleme (les dons sont 
acceptes :-) ). 
La section 4 contient les programmes non copiables avec LDT que j'ai pu 
verifier.


1) Quels programmes Loriciels to Disk peut-il transferer ?
----------------------------------------------------------
LTD permet de traiter deux types de chargeurs K7. Ces loaders se
reperent facilement grace a une page de presentation du programme en
mode 1 affichant le nom du logiciel charge en dessous du dessin d'un
petit chaton jouant avec une balle.

Au cours de sa carriere d'editeur, Loriciels a change de protection.
On distingue deux chargeurs, le type 1 et le type 2.


Loader type 1
-------------
* Le premier fichier est un fichier BASIC protege
* Le deuxieme fichier est un tres court fichier BINAIRE
* Le troisieme fichier (non chargeable directement) contient le loader
  avec le chaton.

Le loader de type 1, a ma connaissance, ne permet de charger qu'un seul
fichier, puis de l'executer. Il a ete utilise avec les programmes les
plus anciens publies par Loriciels (1er semestre 1985, en gros). Bref, vous 
ne devriez pas trop le rencontrer.


Loader type 2
-------------
* Le premier fichier est un fichier BINAIRE implante en &7530, de taille
  &638, et dont le nom est "** LORICIELS **".

Ce chargeur est plus evolue en ce sens qu'il permet de charger a la
suite plusieurs fichiers. Il a ete utilise soit pour mettre en memoire 
l'integralite d'un programme, soit pour charger son premier fichier.
Dans ce dernier cas, un autre loader prend la suite des operations. En
general, il s'agit d'un simple appel a la routine &BCA1.
En fonction des programmes proteges, il existe un nombre important de 
variantes, voyez a ce sujet la section 3.

Pour plus d'informations sur ces deux chargeurs, consultez le fichier
ANALYSE.TXT. Pour aller plus loin, vous avez meme droit a des dumps memoire 
un peu commentes, LOADER1.TXT, LOADER2.TXT et LOADER2B.TXT.

A ma grande surprise, j'ai decouvert en decembre 2003 qu'un logiciel de
transfert pour cette protection existait deja. Il s'agit d'un outil commercial
vendu dans la compilation Nemesis Express ! Il remplit lui aussi son oeuvre
mais ne vous explique pas comment fonctionne la protection Loriciels...


2) Utiliser LORI1.BAS
---------------------

Tout est tres simple et est vraiment a la portee du premier venu, quand
tout se passe bien !

* Copier le fichier LORI1.BAS sur une disquette formatee.
* Placez la cassette originale a transferer dans le lecteur de K7.
* Positionnez la bande de la cassette juste apres le premier fichier
  qu'elle contient. Si vous ne savez pas comment faire, tapez
  les commandes suivantes en mode direct.

 |TAPE
 CAT

  Une fois le premier fichier affiche, appuyer sur la touche ESC.
  Voila, vous etes au bon endroit !

* Faire un reset du CPC
* Lancer le programme LORI1.BAS

Le CPC vous demande le nom du programme a sauver sur disquette.
Vous pouvez mettre n'importe quel nom, sous reserve qu'il soit valide
(pas plus de 8 caracteres). Faites quand meme en sorte qu'il ait un 
rapport avec le programme transfere.

Tout le reste est automatique. Le programme va d'abord charger en
memoire le loader du jeu puis le sauvegarder. Il modifie ensuite son
contenu et l'execute. Vous devez voir la page de presentation du 
programme avec le chaton, tandis que la cassette se deroule.

Une fois le programme charge en memoire, il est sauve sur la disquette,
puis le CPC se reinitialise.

Si tout s'est bien passe, vous devez avoir deux nouveaux fichiers sur 
votre disquette, ayant les extensions .1 et .2

<fichier>.1 correspond an loader du programme
<fichier>.2 correspond au programme lui-meme.

Pour utiliser ensuite ce logiciel, deux solutions :

Executer avec la commande RUN le fichier <fichier>.2.

Charger en memoire le programme LOADER1.BAS, modifier le nom du
programme en ligne 10, puis le sauvegarder. Vous aurez ainsi la joie de
posseder une version complete de votre programme, avec la page de
presentation Loriciels !

Ce programme a ete teste avec succes sur les jeux suivants :

RALLY II (version 464/664/6128) et 3D-Fight.


3) Utiliser LORI2.
------------------

Sans etre particulierement compliquee, l'utilisation de ce module de
transfert requiert un peu d'attention.

Le debut de la procedure d'utilisation est similaire a LORI1.

* Copier les fichiers LORI2.BAS et LORI2.BIN sur une disquette formatee.
* Placez la bande originale dans votre lecteur de K7 et rembobinez la
  completement.
* Lancez le programme LORI2.BAS.

* Si LORI2 est lance pour la premiere fois, il va vous demander le nom
  du programme a transferer. Il va ensuite charger en memoire le loader
  du jeu, puis le sauvegarder sur la disquette, sous le nom <fichier>.1.
  
  Il va egalement sauvegarder un fichier LORI2.DAT, contenant le nom
  que vous avez tape precedemment. Ce fichier sert aussi a indiquer a
  LORI2 qu'il doit charger <fichier>.1, analyser son contenu et tenter 
  de transferer un fichier de cassette sur disquette a partir des
  informatons collectees.

  Le programme reinitialise ensuite le CPC.

* Relancez LORI2. Le programme lit le fichier <fichier>.1, l'analyse puis
  affiche le nombre de fichiers a transferer.
  A ce stade, vous devez saisir le numero du fichier a copier (entre 1
  et x).
  Si aucun fichier n'a encore ete transfere, il faudra taper 1.

* LORI2 charge en memoire le fichier K7, puis le sauvegarde sur le
  disque. Si l'adresse d'implantation du fichier est &16F, il
  l'enregistrera sous la forme d'un fichier BASIC.
  Ensuite, le programme reinitialise le CPC. 
  En faisant un catalogue de votre disquette, vous devez trouver un
  nouveau fichier.

* Il faut relancer LORI2 autant de fois qu'il y a de fichiers K7
  a copier sur disquette.

Si le fichier transfere est le dernier, il aura une adresse d'execution
correspondant a celle du programme.

Si pour une raison quelconque, vous voulez reprendre le transfert depuis le
debut, il faut effacer sur la disquette le fichier LORI2.DAT et de lancer
LORI2.BAS.


Une fois la phase de transfert terminee, il ne nous reste plus qu'a
concocter un chargeur permettant de mettre en memoire les fichiers et
executer le programme transfere. La encore, on vous a mache le travail.

* Charger le programme LOADER2.BAS
* Modifier le nom du fichier en ligne 10.
* Sauvez le fichier sous le nom de votre programme transfere.
* C'est fini.

En theorie, si vous etes arrives jusque la, vous devriez avoir un beau
programme en train de fonctionner sur votre CPC. Si cela ne marche pas,
trois explications :

* Vous avez loupe une etape : verifiez le nombre de fichiers transferes
  et leurs caracteristiques par rapport a ce que LORI2 vous indique.

* Un des fichiers transferes est loge dans une zone memoire necessaire
  au fonctionnement de la routine de sauvegarde. (La zone &A800-&BFFF).

* Le programme est incomplet, l'adresse d'execution du dernier fichier
  lance un autre chargeur cassette. Vous devrez dans ce cas en faire
  l'etude et faire votre propre routine de transfert, bon courage !

Ce programme a ete teste avec succes sur les jeux suivants :


3D-Sub
------
Transfert standard. L'execution du programme necessite la personnalisation du
fichier LOADER2.BAS.


Billy la Banlieue
-----------------
Transfert (presque) standard. La cassette contient deux fichiers avant le 
loader Loriciels. Un Basic et un binaire, tres facile a transferer. Il faut
lancer LORI2.BAS apres ces fichiers. Le fichier <fichier>.2 peut etre lance 
directement.


Cao
---
Transfert standard. Le programme protege est suivi de fichiers binaires
normaux qu'il faudra transferer avec n'importe quel outil de copie de fichiers
K7 vers disquette. Pour pouvoir etre utilise sur disquette, le programme 
devra etre precede d'un petit loader du style :

        10 OPENOUT"D":MEMORY &4B6F
        20 LOAD"CAO.2":CALL &4B70


Invitation
----------
Transfert non standard. Comme pour Billy la banlieue, le loader Loriciels se
trouve apres un chargeur Basic et une page ecran. On peut transferer avec
LTD le programme principal, mais ce dernier charge un autre fichier. 
Probleme, le fichier principal d'INVITATION est code, donc pas directement
patchable. Dans ma mansuetude legendaire, je vous donne la marche a suivre :

Transferer le dernier fichier avec le programme suivant :

10 OPENOUT"d":MEMORY &3FFF
20 FOR i=&BE80 TO &BE8A:READ A$:POKE i,VAL("&"+a$):NEXT
30 DATA 21,00,C0,11,00,40,3E,5D,C3,A1,BC
40 CALL &BE80
50 SAVE "INVITAT.SC2",b,&C000,&4000

Ensuite, pour pouvoir lancer le jeu, tapez le listing suivant :

10 MODE 0:OPENOUT"d":MEMORY &12EB
20 LOAD "INVITAT.2"
30 LOAD "INVITAT.SC2"
40 POKE &BCA1,&C9:POKE &BC0E,&C9
50 CALL &7A00

Bon, evidemment, pour avoir un programme reproduisant le chargement de
l'original, il vous faudra mixer le loader BASIC original et celui-la.

A noter que le programme se plante sur CPC plus.


Maracaibo
---------
Transfert standard. Le fichier principal est directement executable.


Marius Tresor Foot
------------------
Transfert standard. Une fois les deux fichiers sur disquette, il ne vous 
reste qu'a parametrer le fichier LOADER2.BAS. A la limite, vous pouvez 
meme executer en mode direct le fichier <fichier>.2.

Mgt
---
Transfert non standard. Le loader Loriciels ne demarre pas au bon endroit.
Pour le recuperer, il faut modifier les lignes suivantes dans LORI2.BAS.

        240 OPENOUT"D":MEMORY &750E
        300 |DISC:SAVE file$+".1",b,&750F,&65F

Le programme s'utilise comme d'habitude. On sauvegarde un loader loge en &A000
de longueur &D2. Il faut ensuite bricoler ce loader pour arriver a ses fins.
Le chargeur doit etre detourne en &A067 et sauver la zone memoire &0040-&A0D2
avec en adresse d'execution &A067. Remplacez ensuite en &A067 les valeurs par
&F3,&00,&00 et hop, un bel executable.
Pour la page ecran, debrouillez-vous (c'est facile... ).


Pro-Tennis (version anglaise de Tennis 3d)
----------
Transfert non standard. Le loader Loriciels charge une fichier binaire 
contenant lui-meme un autre chargeur, non protege. Le plus simple consiste a
detourner ce chargeur en &805A vers une routine de sauvegarde. A vous de
bricoler un peu, apres tout !


Reversi Champion
----------------
Transfert standard. Le fichier <fichier>.2 est un programme BASIC. On ne peut 
donc pas utiliser comme modele LOADER2.BAS. 
Tapez le listing ci-dessous et sauvez-le sous le nom de <fichier>.BAS.

10 MODE 1:OPENOUT"d":MEMORY &752F
20 LOAD "reversi.1"
30 POKE &75B3,&0:CALL &7552
40 LOAD "reversi.3":LOAD "reversi.4"
50 CALL &BB4E:CLEAR:MEMORY &7FFF:RUN"reversi.2"


Sapiens
-------
Transfert standard. Le fichier principal est executable directement, mais vous
auriez tort de vous priver de la page de copyright Loriciels. Personnalisez
donc le fichier LOADER2.BAS.


Space shuttle simulateur
------------------------
Transfert standard. Le fichier principal est executable, mai joue de la musique
sans rien afficher au debut. Autant garder la page de copyright. 



4) Les recommandations du chef
******************************

Avant de vous lancer tete baissee dans un transfert, verifiez que votre
cassette originale fonctionne correctement.

N'oubliez pas que la plupart des programmes sont enregistres sur les
deux faces de la cassette !

Si votre programme ne se charge pas correctement :

* Loader de type 1 : c'est foutu !

* Loader de type 2 : s'il y a plusieurs fichiers, essayez de les
  transferer a partir de chacune des faces. Avec un peu de chance, les
  fichiers endommages ne sont pas les memes.

Dans tous les cas, LTD ne sauvegarde jamais sur disquette un fichier
endommage, car le loader Loriciels fait un reset en cas de probleme de
chargement. L'ecran est alors affuble de soubressauts desagreables !
