Beautiful Boot

Dernière mise à jour: 23/01/2009.

Les Fast Boots incompatibles DOS 3.3

Cette page fait suite au dossier sur la notion de Fast Boot et de Fast Load.

Dans ce dernier, j'avais souligné que l'objectif recherché était avant tout la rapidité du chargement (traitement optimisé par piste) au détriment de la standardisation car il n'y a pas de catalogue classique et les fichiers ne sont pas stockés selon les préconisations d'Apple (que ce soit selon le schéma du DOS 3.3. ou celui du ProDOS).
En tapant la commande CATALOG après avoir chargé un DOS 3.3 depuis une autre disquette, au mieux rien n'apparait, au pire ce sont des caractères non affichables qui couvrent l'écran.
Ce qui veut dire qu'il y a une forte probabilité qu'il faille boot tracer et désassembler chaque disquette pour savoir comment sont répartis les fichiers si on veut les récupérer. Un jeu de cache cache bien apprécié par la communauté underground française de l'Apple II.

Outre les packs de copieurs que j'avais mentionnés, ce type de loader était également employé pour créer des compilations de jeux; des logiciels ludiques qui en temps normal occupaient souvent une face entière car sous le système d'exploitation propriétaire de l'éditeur. Les jeux (de type single load) étaient extraits et rassemblés sur ces productions qui laissaient le moins de secteurs vides possibles. Certains jeux étaient modifiés pour permettre de changer des paramètres comme le nombre de vies, la vitesse, etc... (on appelait ça des jeux fixés).

Quelques exemples de ces productions appréciées des "gamers" voulant faire des économies de disquettes:

French compilation with FBOOT
French compilation with FBOOT
French compilation with FBOOT
French compilation with FBOOT
French compilation with FBOOT
French compilation with FBOOT
French compilation with FBOOT
French compilation with FBOOT
French compilation with FBOOT
French compilation with FBOOT
French compilation with FBOOT
French compilation with FBOOT
French compilation with FBOOT
French compilation with FBOOT


Les lanceurs DOS 3.3 de type HELLO

Mais l'absence d'accès à un CATALOG peut être un frein pour un bon nombre de personnes.
Imaginons par exemple qu'un joueur souhaite se faire sa propre compilation avec les jeux qu'il affectionne le plus.
Il a besoin de Mister Robot sur la compilation Arcadia 1, Aquatron sur Mad Compactor 3 et Boulder Dash II sur le Fixed Games numéro 9.
Et bien, à moindre de connaitre l'assembleur, d'avoir accès au FBOOT maker utilisé pour connaitre les paramètres du fast load et/ou le mini catalog spécifique s'il y en a un, il peut toujours courrir!!!

C'est pour cela qu'il y a eu d'autres alternatives pour faire ses propres compilations, alternatives qui elles gardent la structure normale du DOS 3.3.

Le cas le plus répandu: la disquette contient un DOS 3.3 ainsi qu'un petit programme de type HELLO qui se lance au démarrage (après le prompt "]"), affiche un menu et exécute le programme souhaité. Il existe des tonnes de ce type de programmes.
Ici quelques exemples pris au hasard:

HELLO program
HELLO program
HELLO program
HELLO program
HELLO program
HELLO program
HELLO program

Ce genre de petits programmes HELLO était à la portée d'un programmeur peu expérimenté.
La plupart du temps, il suffit de faire un simple CTRL-C pour l'arrêter au démarrage du DOS 3.3.


Les lanceurs sans DOS 3.3 mais compatibles

Mais il existe une seconde catégorie de lanceurs: ceux qui bien que gérant des programmes stockés au format DOS 3.3 n'utilisent pas du tout ce DOS.
Ils intègrent alors leurs propres routines capables de lire un secteur, de déplacer la tête de lecture sur la bonne piste, d'analyser le catalogue DOS 3.3, de récupérer les TSL d'un programme et de le charger entièrement.

L'intérêt premier de ce type de lanceurs, c'est qu'ils n'occupent qu'une partie de la place normale du DOS 3.3 et libèrent donc des secteurs devenant disponibles pour stocker d'autres programmes. Ils sont aussi moins gourmands en mémoire, ce qui leur donne un HIMEM plus important que sous DOS 3.3. et peuvent ainsi charger des programmes plus gros que ce qu'il est possible de faire avec le DOS d'Apple. Ils sont aussi plus rapides que le DOS 3.3 (il faut vraiment le vouloir pour faire plus lent!!) sans toutefois atteindre la rapidité des FBOOT car ils doivent respecter la structure du DOS 3.3 et ses contraintes (TSL, les secteurs du programme qui peuvent être éparpillés partout sur la face de la disquette, ..)

Comme pour les compilations en FBOOT, l'utilisateur boote sa disquette, le menu s'affiche, il choisit son jeu et ce dernier est chargé et exécuté.
Mais si l'utilisateur boote un DOS 3.3, met sa disquette de jeux dans son drive, il peut faire un CATALOG et voir apparaitre les binaires de ces programmes.

Une des solutions les plus connues nous vient de l'underground américain: le BEAUTIFUL BOOT signé par Mini Appler du groupe MPG qui signifie Midwest Pirate's Guild. Je reviendrais en détail sur ce boot dans le chapitre suivant. Juste quelques mots sur le MPG: ce groupe de pirates du début des années 80 était composé de 4 membres fondateurs puis s'est étoffé par la suite. On dénombrait les deux principaux déplombeurs: Apple Bandit / John (~AB~) et The Burglar / Dan (~TB~) ainsi que leurs coéquipiers Mini Appler / Matthew Dornquast (~ MA~), Sinbad Sailor (~SS~),  Hot Rod - qui cracka aussi au sein du groupe The Racketeers qu'il créa ensuite (~ HR~) , Apple Avenger (~ AA~) et Zaphod Beeblebrox (~ ZB~).

MPG
MPG


Je vous rappelle que le DVD de Jason Scott intitulé "BBS The Documentary" contient une interview de deux des anciens membres du MPGSinbad Sailor et notre homme de Minneapolis... Mini Appler.

Dans les cracks du groupe (souvent en association avec le Club 1200), on retrouve à chaque fois la référence de leur BBS: The SafeHouse (612) 724-7066 avec Apple Bandit comme sysop.
A noter également que Mini Appler a eu aussi le sien: Pixel's Palace (612) 724-7158.

MPG


Le Beautiful Boot

Toujours de Jason Scott, je vous propose dans un premier temps de lire son article sur le Beautiful Boot. Cliquez -> ICI <-

Le principe du Beautiful Boot, bien que fort simple, donne un résultat pourtant spectaculaire: en moins de temps qu'il ne faut pour le dire, le boot 1 charge la piste $00 qui contient l'intégralité du programme. Ce dernier passe en mode graphique HGR, recherche dans les 2 premiers secteurs du catalogue DOS 3.3 les 14 premiers programmes de type BIN, leur affecte une lettre et affiche le résultat à l'écran en plus d'informations complémentaires sur la disquette.
Puis se lance une animation donnant l'impression d'être dans l'espace avec un scrolling vertical de haut en bas faisant défiler des étoiles avec des petits bruitages en fond sonore.

J'ai retrouvé ce boot sur plusieurs disquettes de ma logithèque. En voici 2 exemples dont un a vu ses messages traduits en français par le pirate The Jokersoft de la bande du Brain Trust:

Beautiful Boot example
Beautiful Boot example

Les touches utilisables:
- Les lettres en face des noms des binaires.
- ESCape pour retourner à la main Basic.
- Espace pour spécifier un autre couple (slot, drive). Sans avoir à rebooter, il est possible de changer de disquette et de proposer son contenu en rafraichissant l'écran. En remettant 6 et 1, les programmes contenus dans le 1er drive 5,25" sont affichés à la place des précédants.


Afin de faciliter sa diffustion, Mini Appler et Apple Bandit avaient écrit un programme d'installation. En le lançant, on remplace le contenu de la piste $00 de sa disquette par le Beautiful Boot (+ modif de la VTOC) et hop voilà une disquette qui boote avec un sympathique loader de programmes.
A noter qu'il existe deux versions du programmes d'install: en majuscule et en minuscule (rappelons que les plus anciens modèles d'Apple II ne géraient que les caractères en majuscule!)

Le 1er écran des deux versions:

Beautiful Boot maker
Beautiful Boot maker


Je me suis intéressé au Beautiful Boot pour une raison bien particulière.
J'ai acheté il y a deux ans une carte d'extension pour Apple II appelée PseudoDisk ][ et conçue par Alex Freed.
Cette carte a une double fonction: celle habituelle d'avoir un disk dur sous ProDOS (pareil que la carte CFFA sauf que le support n'est pas une carte Compact Flash mais une carte SD low cost utilisée principalement dans les appareils photo numériques) et surtout la capacité de stocker des images .NIB et de lancer au démarrage de la machine celle que l'on désire en émulant ainsi la présence d'un lecteur de type Disk II.
Quand on allume l'écran, un boot est lancé depuis la carte SD et affiche sur l'écran texte 40 colonnes un menu avec la liste des .NIB trouvés.
Je trouve ce programme bien triste et mon souhait est de l'égayer un peu en y ajoutant la routine graphique du Beautiful Boot.

J'ai donc totalement desassemblé le boot 1 et le boot 2 du sélecteur de Mini Appler.
Puis j'ai isolé la routine HGR qui affiche du texte sur l'écran et celle qui donne l'impression d'être dans l'espace (la routine Starfield).
Ces routines sont fin prêtes pour une autre utilisation :-)

The Starfield Routine
The Starfield Routine

Dans le binaire de la routine Starfield, il faut appuyer sur une touche à chaque fois pour faire dérouler le process de l'affichage des étoiles.
J'ai mis ces pauses pour comprendre son fonctionnement.
Pour voir l'affichage en temps réel, il faut soit modifier le source en virant les LDA $C000 / BPL associé puis l'assembler, soit faire la manipulation suivante:

BLOAD THE_STARFIELD_ROUTINE
POKE 4416,234
POKE 4417,234
POKE 4418,234
POKE 4419,234
POKE 4420,234
POKE 4430,234
POKE 4431,234
CALL 4096


En analysant cette routine, je me suis rendu compte que Mini Appler avait été plus que paranoïaque: il a sur-protégé son pseudo avec plusieurs vérifications pour que le programme ne fonctionne plus si on l'enlève ou l'altère:

Ce qu'il y a de comique la dedans, c'est qu'en fait Mini Appler a surtout fait un assemblage de routines récupérées à divers endroits, aussi protéger ainsi son pseudo est franchement ridicule. Comme son objectif était que tout le monde utilise son programme, il voulait à tout prix que sa signature reste afin d'assurer sa "renommée" et pour que la "gloire" ne revienne pas au 1er namekiller venu. Et ça a bien marché car je n'ai pas vu de version "piratée".

Cet assemblage n'est pas une invention de ma part: je le prouve.
Tout d'abord dans l'article de Jason Scott, Mini Appler a confessé la 1ère récupération: "He’d gotten the starfield routine from a Broderbund game of the same time (he’d lifted the assembly routines, then changed them from side-scrolling to vertical scrolling)". Il faut dire qu'avec le nombre de jeux se sirtuant dans l'espace, il était plus simple de se servir de l'existant! Quelques noms de jeux parmi une foule d'autres: Alien Typhoon, Warp Destroyer, Aquatron, Star Blazer, ... et même le jeu d'hélicoptère Rescue Raiders.

Ensuite quand j'écris un article sur un sujet précis ou sur une personne, je fais des recherches sur le net.
Et qu'est-ce que j'ai trouvé? Une production de son groupe Midwest Pirates' Guild intitulée " MPG KracPak 1984 " (voir les screenshots en annexe).
Il est mentionné: "This disk is composed of just some of the utilities used by the Midwest Pirate's Guild [MPG]..."
En regardant de plus près ces outils, j'ai constaté qu'il y avait une routine fort intéressante appelée MINI-RWTS et signée par The Stack du groupe américain Corrupt Computing datant de 1982 (voir la doc en annexe). Et vous savez quoi: elle correspond exactement au loader du Beautiful Boot...

Corrupt Computing

Et le copyright de Corrupt Computing, il est où lui??????? ;-)
Quant à la routine d'affichage HGR des caractères, c'est hyper commun dans les jeux commerciaux et très simple à identifier (donc à chiper).
De l'assemblage je vous dis!

Voilà ce que j'avais à dire sur le Beautiful Boot. Le plus simple pour avoir des infos complémentaires (stockage en page 3 des références des TSL des bin, utilisation du buffer clavier comme buffer pour charger un secteur de TSL, le cas particulier du 1er secteur de datas qui contient l'adresse d'implantation du bin, ...) c'est encore de regarder les sources dans le chapitre correspondant.


Corrupt Computing

A présent un petit supplément sur Corrupt Computing...

Ce groupe de Plymouth dans le Michigan était composé initialement de 2 membres: The Stack (lead programmer) et The Inspector.
Le groupe s'en ensuite complété de The Technicolor Pirate.

Comme beaucoup de groupes de l'époque, il avait leur BBS personnel: "The  Corrupt Communications Bulletin Board" joignable depuis le (313)-453-9183 et disponible 24h/24. Ils disposaient également d'un autre moyen de communication: "THE TWILIGHT PHONE", a non-Net Works system accessible au (313)-775-1649.

Outre le déplombage de programmes commerciaux, le groupe a produit un certain nombre de programmes dont plusieurs de très haut niveau. On leur doit:
Une liste de projets dont j'ignore si la réalisation a été menée à terme:
Il ne faut pas grand chose pour m'amuser. Dans deux de leurs docs, j'ai trouvé ces textes:

-----------------------------------------------------------------

A word to the wise.

Corrupt Computing has  maintained a reputation  for writing  good
programs  and distributing them to the  user at no or very little
cost. But if  people begin  to abuse  this service  by trying  to
sell  our  programs, or  requesting a  access  fee  (without our
knowledge) for the  privilege of downloading  our programs,  this
service will be discontinued.  You have been warned!

Thank you very much for your cooperation.

-----------------------------------------------------------------

Under NO circumstances will selling or otherwise distributing
Corrupt Computing's programs on a bulletin-board be permitted
without prior permission from either THE STACK or THE INSPECTOR.

-----------------------------------------------------------------

J'adore les crackers qui n'en ont rien à faire des copyrights des programmes commerciaux des autres et qui profèrent des menaces envers ceux abusant de leurs propres productions...


Si je parle de ce groupe dans cette page, c'est qu'en étudiant les outils proposés par le " MPG KracPak 1984 ", j'ai aussi regardé de près une autre réalisation de The Stack, le Fastloader Create.

Je serais bien étonné que vous n'ayez jamais vu ce programme fonctionner.
N'avez vous jamais vu un soft qui au lancement rempli l'écran de caractères changeant (au fur et à mesure du chargement), avec les 2 lignes du haut livrant des infos sur le programme (société éditrice, groupe ayant cracké le soft) et en bas à droite la signature "FASTLOADER"?

Un exemple statique ici:

Hard Hat Mack

Et l'exemple que j'ai utilisé pour faire le source: (il faut que vous ayez un viewer de SWF/FLV installé)



On va voir tout de suite que ce programme Crystal Castles est très bizarre. Si on regarde le catalog sous DOS 3.3, on s'aperçoit que le jeu occupe 121 secteurs et on peut voir avec COPY II+ qu'effectivement il prend la place correspondante avec l'option de mapping (la lettre "C" le représente sur l'écran de droite):

Fastloader Crystal Castles
Fastloader Crystal Castles

Mais toujours avec COPY II+, on s'aperçoit que la longueur officielle du binaire est tout simplement incompatible: $03FB.
121 secteurs et une longueur de $03FB... il est clair qu'il y a eu une belle bidouille!

Fastloader Crystal Castles

Pourtant ça marche car quand on fait sous DOS 3.3 un BRUN CRYSTAL CASTLES: le jeu se charge.
Et c'est ce que je vais expliquer à présent.

Fastloader Crystal Castles

Tout d'abord quand vous faites BRUN CRYSTAL CASTLES sous DOS 3.3, le DOS ne charge pas 121 secteurs mais uniquement le début du binaire (l'équivalent en secteurs de la longueur de $03FB). C'est pour cela qu'on a une impression de rapidité entre le moment où on a tapé le BRUN et l'affichage écran.
En fait le début du binaire est constitué du Fastloader de The Stack. C'est lui qui ensuite prend la main pour charger tous les secteurs qui constituent le jeu proprement dit (à partir de la liste des Tracks/sectors des TSL en sautant les 1er couples correspondant au Fastloader qui a déja été chargé par le DOS).
Et le Fastloader commence par se reloger en page écran texte 40 colonnes. Ce qui explique que l'écran est couvert de caractères incompréhensibles (à part les lignes réservées pour le blabla).
Il n'utilise pas du tout le DOS 3.3 pour charger la suite mais... la routine Mini-RWTS que nous avons vu tout à l'heure pour le Beautiful Boot.
Cette indépendance vis à vis du DOS et le fait d'être relogé en pages 4 à 7 permet à Fastloader de charger un gros binaire sans la contrainte d'un HIMEM merdique.

Mais ce n'est pas le seul avantage de ce loader.

Imaginez que vous ayez un original de type single load particulièrement tordu à déplomber (genre protection spiradisk + méchancetés de protection mémoire).
Le plus simple pour ne pas avoir à tout désassembler est de réussir à trouver le point d'entrée du programme une fois qu'il s'est chargé en mémoire.
Pour cela, il y avait plein de cartes d'interruption NMI sur le marché à l'époque.
Bref, vous avez fait ce boulot (en pressant sur un bouton et avec un peu de jugeotte) et au final, vous avez une adresse pour faire un JMP et le contenu de la mémoire que vous jugez indispensable pour le bon fonctionnement du jeu.
Vous avez rassemblé toutes ces pages mémoires (avec les outils livrés avec votre carte NMI - comme c'est le cas avec ma Wildcard Plus) et avez fait un binaire unique.

C'est maintenant que Fastloader Create rentre en jeu.
Si les pages mémoires nécessaires au jeu ne sont pas contiguës, alors en théorie vous être obligé de faire un relocator pour les remettre à la bonne place.
Par exemple si le jeu que vous avez interrompu utilise 3 parties distinctes: la page zéro, l'écran HGR de $2000 à $3FF8 puis le programme principal de $6000 à $BAFF.
Il faut bien que vous remettiez ces 3 parties à leur adresse finale respective avant de faire le JMP $6000 qui va lancer le jeu.
Et bien Fastloader va faire ce "relocator" automatiquement pour vous!!!
En effet, il ne charge pas bêtement tous les secteurs du jeu à partir d'une adresse fixe.
Il travaille par couple d'informations: page mémoire de début et le nombre de pages à partir de cette adresse.
On peut utiliser jusqu'à 30 couples pour charger où on le souhaite les secteurs mentionnés dans les TSL.
On s'affranchit ainsi de la séquentialité apparente des secteurs par rapport à la mémoire.
A noter par ailleurs que Fastloader propose aussi un traitement au cas par cas de relocator pour les pages 0, 1, 2, 5, 6 et 7 (bien entendu après le chargement pour ne pas écraser la Mini-RWTS en cours de route).

C'est franchement bien fait je trouve.
Chapeau bas pour l'idée et surtout de l'avoir partagé avec la communauté underground.
Pour plus d'infos, voir le source dans le chapite suivant et la doc de Fastloader Create en annexe.


Les sources

Tout est disponible au format Merlin 8. J'ai mis mon image disk de travail et des fichiers TXT correspondant aux sources assemblés.


Floppy
DOS 3.3
Download Beautiful Boot Ultimate Disk
Asm
Merlin 8 v2.48 DOS
View: Beautiful Boot 1 assembled source code
Asm
Merlin 8 v2.48 DOS
View: Beautiful Boot 2 assembled source code (including Mini-RWTS)
Asm
Merlin 8 v2.48 DOS
View: The Starfield Routine assembled source code
Asm
Merlin 8 v2.48 DOS
View: Fastloader by Corrupt Computing for Crystal Castles (including Mini-RWTS)

File: Beautiful_Boot_Source.dsk
Disk: DOS 3.3 Volume 254 (140KB)
 Name                             Type Auxtyp Modified         Format   Length
------------------------------------------------------------------------------
 DISK*                            BAS  $0801  [No Date]        DOS         142

=> Boot 1 and Boot 2 source code of The Beautiful Boot (and bin files)

 T.BOOT1                          TXT  $0000  [No Date]        DOS        1518
 BOOT1                            BIN  $0800  [No Date]        DOS         256
 T.BOOT2                          TXT  $0000  [No Date]        DOS       32643
 BOOT2                            BIN  $B100  [No Date]        DOS        3840

=> The starfield routine (source code and bin file)

 T.THE_STARFIELD_ROUTINE          TXT  $0000  [No Date]        DOS       13216
 THE_STARFIELD_ROUTINE            BIN  $1000  [No Date]        DOS        2087

=> Beautiful Boot maker

 BEAUTIFUL BOOT LOWERCASE         BIN  $3000  [No Date]        DOS        5521
 BEAUTIFUL BOOT UPPERCASE         BIN  $3000  [No Date]        DOS        5521
 BEAUTIFUL BOOT DOCS              TXT  $0000  [No Date]        DOS        3586

=> Mini RWTS by The Stack

*MINI RWTS                        BIN  $07FD  [No Date]        DOS         957
*MINI RWTS DOCS                   TXT  $0000  [No Date]        DOS        2057
 DOS READ $BA00                   BIN  $BA00  [No Date]        DOS         663

=> Fastloader by The Stack applied to the Crystal Castles game

 T.FASTLOADER_CRYSTAL_CASTLES     TXT  $0000  [No Date]        DOS       13958
 FASTLOADER_CRYSTAL_CASTLES       BIN  $07FD  [No Date]        DOS        1019
------------------------------------------------------------------------------



Summary : Appendix


Link Content Author
Voir 01) Beautiful Boot doc. Mini Appler & Apple Bandit.
Voir 02) MPG KracPak 1984 screenshots. Midwest Pirates Guild.
Voir 03) Mini RWTS doc. The Stack (Corrupt Computing).
Voir 04) Fastloader Create doc. The Stack (Corrupt Computing).
Voir 05) The Safehouse BBS. Midwest Pirates Guild.


hr MPG

01) Beautiful Boot doc.



(formatted for 80-columns)
 
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:                                                                             :
:                               Beautiful Boot                                :
:                       by MiniAppler and Apple Bandit                        :
:     Copyright [C] 1984 Midwest Pirates Guild (MPG,) all rights forgotten    :
:                                                                             :
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 
 
For years, many pirates have created the DOSless disk--that is, a disk that has
no DOS on it, so that more space was left on the disk for programs.  The only
problem with this was, if you wanted to run one of the programs, you had to
boot up another disk that had DOS on it, then stick in the DOSless disk, and
then Run/Brun the program you wanted.  Well, forget it.  MiniAppler and Apple
Bandit have come up with a program that will eliminate those problems forever.
The program, Beautiful Boot, sits on track 0, and has its own built-in RWTS
and fastloader program.  When the disk with Beautiful Boot on it is booted up,
the hi-res graphics screen will clear, and a menu with the binary files on the
disk will show up.  The background will have stars floating by, in color.  To
run (Brun) one of the programs, just hit the letter indicated in the menu.  Al-
so, the following control keys will work in the program:
 
          /Return/     ------->     Read another directory from the same drive
          /Spacebar/   ------->     Read another directory from different drive
          /Escape/     ------->     Get out and return to Basic
 
Now, to install the program, just enter the command, "BRUN BEAUTIFUL BOOT".
When it's finished loading, the screen will clear, and a page of instructions
will show up.  Note that if you do not have a lowercase chip, then all that you
will see is garbage on the screen (hence the purpose of this writeup.)  Hit
a key to get to the next screen, and then the question will be asked, "Do you
wish to make a beautiful boot?"  Hit "Y" (for yes,) and then you will get a
little space (2 lines) to make a short message that will be displayed upon a
disk boot.  Type in your message, and hit the /Return/ key when you are fin-
ished with your message.  Then, a message will come up telling you to insert
the target disk in drive 1 and hit any key.  (Note:  make sure that the disk
that you insert is initialized--the Vtoc will be modified so as to free up the
unused DOS sectors on the disk--this was also done so as to make a little ea-
sier the updating of old DOSless disks to a Beautiful Boot disk.)  The disk
will be updated with Beautiful Boot, and then a last question will appear, ask-
ing if you want to make another disk with Beautiful Boot.  If you want to make
another (which you surely will, although maybe not at this moment,) hit "Y"
(for yes.)  This will bring you back to the first instruction page.
 
If you hit "N" (for no,) then you will be returned to Basic.  To run Beautiful
Boot, just boot up the newly updated disk.  Then, enjoy!  It all fits onto one
track.  Now, isn't that beautiful work?  Now you will want to update all of
your DOSless disks.  But, that's it for us.  You now know how to make up DOS-
less disks with Beautiful Boot on it.
 
-MiniAppler and Apple Bandit
 
: Copyright [C] 1984 Midwest Pirates Guild (MPG,) all rights forgotten :
: Call the best in the Midwest->  The Safehouse /612/ 724-7066 16 megabytes :


Logo MPG
The Burglar

Retour sommaire

hr Apple Bandit

02) MPG KracPak 1984 screenshots.


MPG KracPak
MPG KracPak
MPG KracPak
MPG KracPak
MPG KracPak
MPG KracPak

 10  REM MPG - CRACKING 1984
 20  REM DISTRIBUTED 1984 BY
 30  REM SAFEHOUSE ENTERPRISES
 40  REM
 50  REM THE SAFEHOUSE BBS:
 60  REM [612] 724-7066 (MODEM)
 70  REM
 80  REM BEST IN THE MIDWEST!
 90  REM

Montage: une compilation de signatures extraites de pages de cracks:

Compilation signatures MPG

Retour sommaire

hr MPG

03) Mini RWTS doc.


          HOW TO USE THE MINI-RWTS:

1).  DOWN LOAD THE TEXT FILE FROM THE BOARD THEN EXEC THE TEXT
     FILE TO CREATE THE PROGRAM.

2).  BRUN THE FILE CALLED "RELOC DOS READ" AND ENTER THE PAGE
     WHERE YOU WANT THE PROGRAM RELOCATED TO.

3).  BLOAD THE FILE CALLED "DOS READ $XX00". (WHERE XX IS THE
     PAGE THAT YOU RELOCATED IT TO.)


TO USE MINI-RWTS, YOU WILL HAVE TO SET SOME ZERO PAGE LOCATIONS:

   $F1 -- CONTAINS THE SLOT AND DRIVE NUMBER TO READ FROM. THE
          FORM IS FIRST DIGIT IS SLOT AND SECOND DIGIT IS DRIVE
          (A ZERO IN DRIVE WILL USE LAST USED DRIVE.) I.E. $61
          WOULD USE SLOT 6 DRIVE 1.

   $FB,$FC -- CONTAINS THE LOW AND HIGH ORDER (RESPECTIVELY) OF THE
              ADDRESS THAT YOU WANT TO LOAD THE DATA INTO. (IT WILL
              START HERE AND READ UP).

   $FD -- CONTAINS THE NUMBER OF SECTOR'S TO READ IN (NOTE: THE
          SECTORS ARE READ IN IN DECENDING ORDER I.E. FROM TRACK
          $19 SECTOR $F TO TRACK $19 SECTOR $E...ECT.)

   $FE -- CONTAINS THE START TRACK.

   $FF -- CONTAINS THE START SECTOR.

ONCE YOU HAVE SET THESE LOCATIONS, YOU CAN BEGIN TO USE MINI-RWTS.

THE MAIN ENTRY POINT FOR MINI-RWTS IS $XX00. (WHERE XX IS THE
PAGE THAT YOU RELOCATED IT TO.) THERE IS A AUXILIARY ENTRY POINT AT $XX18.
(WHERE XX IS THE PAGE THAT YOU RELOCATED IT TO.)  THIS ENTRY WILL ASSUME SLOT 6
AND THE LAST USED DRIVE. (SAME AS $F1:60  $XX00G EXCEPT THAT $F1 DOES NOT GET
MESSED UP.)

THATS ALL YOU NEED TO KNOW TO USE THE MINI-RWTS!!!!!!! THE ROUTINE IS ONLY $300
BYTES LONG AND ONLY USES ZERO PAGE LOCATIONS $F2-$FF. (ALSO $F1 IF YOU USE THE
$XX00 ENTRY POINT.)

USES FOR MINI-RWTS:

MINI-RWTS WAS DESIGNED FOR USE IN COPY-A'S.  IT COULD ALSO BE USED FOR VERY
LARGE FILES TO MAKE THEM QUICK LOAD TYPE FILES, WATCH FOR OUR NEW PROGRAM THAT
WILL DO JUST THAT!

IF YOU HAVE ANY QUESTIONS LEAVE MAIL FOR THE INSPECTOR

THE AUTHOR, THE INSPECTOR OR THE SYSOP TAKE NO RESPONSIBILITY FOR ANY DAMAGE
DONE TO DISKS OR PROGRAMS THROUGH USE OF THIS PROGRAM.

MINI-RWTS COPYRIGHT 1982 CORRUPT COMPUTING


Montage: page d'un crack que j'ai transformé en page de présentation pour Mini-RWTS:

Mini RWTS

Retour sommaire

hr MPG

04) Fastloader Create doc.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%                                                     %%%%%%
%%%%%               ***  Fastload Create  ***               %%%%%
%%%%                                                         %%%%
%%%                                                           %%%
%%                         Written by:                         %%
%                                                               %
%                                                               %
%%                          The Stack                          %%
%%%                                                           %%%
%%%%                     Copyright 1982                      %%%%
%%%%%                   Corrupt Computing                   %%%%%
%%%%%%                                                     %%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


                       *** Background ***


   Fastload Create  is,  as  the name  implies,  a  program  that
creates  Fastload files.  What is a  Fastload file? It  is like a
Quickload file (the kind used for many cracked games that take up
too much room to fit in with DOS) except that a Fastload file can
be bigger than a Quickload file since a Fastload file has its own
shrunk  RWTS built  in while a  Quickload file  uses normal RWTS.
this shrunken  RWTS is  less than  $300 hex  bytes long  and  the
routine  that uses it  is slightly less than  $100 hex bytes long
meaning that your program  can take up all  of memory minus  $400
bytes for the Fastloader, $100 for Page Zero, $100 for the Stack,
and $100 for the current Track/Sector list being used. That means
that  your program  can be up  to $B900 bytes  versus about $A200
bytes with  Quickloader. Not  only that,  but you  don't need  to
write  any move  routines at  the start  of your  cracked program
because the Fastloader does all of them for you. Since Fastloader
does  not use  normal RWTS, your  program can  be loaded directly
into  locations  $B800-BFFF  where   normal  RWTS  normally   is.
(Fastload's  Mini-RWTS resides at $500-$7FF where the text screen
is.) This means  that the  only moves that  need to  be made  are
moves  to addresses  $0000-$02FF and  $0400-$07FF. Note  that the
program may be directly loaded into  Page 3 as well as all  pages
above  and including  8. You may  ask, how does  the move routine
move something into the  page it is in.  Well, the move  routines
are in Page 4 and the RWTS is in Pages 5-7. What happens when the
Fastloader is run, is,  the program is loaded  into Pages 3,  and
$08-$BF.  After loading is complete, the move routines take over.
First, anything that goes  into Pages 0,  1, 2, 5,  6, or 7  gets
moved  there. Note that nothing gets moved to Page 3. If there is
something that goes in Page 3 it is loaded in there. After  those
moves  are complete, Page 4 gets moved to the page that was moved
to Page 6,  which is no  longer needed. If  nothing was moved  to
Page  6, Page  4 gets moved  there. Then whatever  page goes into
Page 4 gets moved to Page 4.  When done with all of these  moves,
the Fastloader then jumps to the beginning of your program.


                  *** Using Fastload Create ***


   Now that you know all about the Fastloader, this section  will
tell  you  how to  use the  program  that creates  these Fastload
files. It is really very simple.  Just type:

]BRUN Fastload Create

and wait for it to load in. The screen will clear and there  will
be a message at the bottom of the screen telling you that you may
type up to two lines of ID text for your program. This text  will
be  displayed while The Fastloader is  loading you program on the
top two lines of the screen. For example, you could say:

XYZ Program  Copyright 1982 by XYZ Corp
       Cracked 1982 by Your Name

   Then whenever someone says:

]BRUN XYZ Program

   The  Fastloader will load in, and at  the top of the screen it
will display your message.  At the bottom of  the screen it  will
display  the word "FASTLOADER" so  that everybody running it will
know that it's a great program.  In the middle of the screen  and
on part of the bottom line you will be able to see the data as it
is read in. This is  due to the fact that  the RWTS is stored  in
the text page of memory. Of course, there will also be a bunch of
garbage on the screen  that is really the  RWTS, the driver,  the
mover, and the  tables.

   Now,  back to the  program... As you  have probably noticed if
you are running the create program  it says that you may use  the
RETURN  key to skip to  the next line and  the <ESC> key when you
are done. Try it!  If you type  the RETURN key  while on the  top
line  you'll skip to the beginning of  the bottom line and if you
type the RETURN key while on  the bottom line you'll skip to  the
beginning  of the top line. Another  key not mentioned is Ctrl-Q.
This can be used any time  throughout the program whenever it  is
expecting  input to stop  the program. Upon  receipt of a Ctrl-Q,
the program will ask whether or  not you really want to quit.  If
you  did, type a "Y" and if you  didn't, type an "N". If you type
"Y", the program will tell you that it is done with your file and
will  ask if you'd  like to create another  Fastload file. If you
would, just type  "Y", otherwise, type  "N". Now back  to the  ID
text... Remember, just type the <ESC> key when done.

   The  next thing the program will ask for is the name, starting
page, and number of pages of each  of the files you wish to  link
together into one Fastload file. You see, the create program will
take your files and build a  table that will be located near  the
start  of  the  Fastloader  prefix.  This  table  will  tell  the
Fastloader driver where  to load  each sector.  Example: Say  you
have  four files named  File #1, File  #2, File #3,  and File #4.
Let's also say that File #1 is Pages 0-7, File #2 is Pages  8-$1D
File #3 is a picture that goes from Pages $20-$3F, and File #4 is
pages $47-$BF. Since the files have  lengths of 8, $16, $20,  and
$79, respectively, the total length is $B7 pages which means that
it is within the limits of Fastloader. (Any length of $B9 or less
is within the limits.)

   Now,  if you are in the create program, the top of your screen
should look something like this:

File: _                             ,D1
Start Page:     # of Pages:     Ok?

   You  may now type in  the filename of the  first file to link.
The first file  in our  example is File  #1, so,  you would  type
"File  #1" (Without the quotes). After you type the filename, hit
the RETURN  key. The  underscore  cursor will  jump down  to  the
"Start  Page" line and you then type in the starting page of that
file. In our example,  the start page of  File #1 is zero.  Since
you  are supposed to type  it as a 2-digit  Hex number, you would
type "00".  If  you  make  a mistake,  you  must  type  in  dummy
information until it gets to the "Ok?" line, where you would type
"N" for No, allowing  you to start that  file over. When you  are
done  typing the starting page number,  the cursor will skip over
to the "# of Pages" line. Here you type the number of pages  your
file  is. Again, it must be a 2-digit Hex number. In our example,
File #1 has a length of 8. This, of course, means that you  would
type  "08".  The  cursor will  now  jump  to the  "Ok?"  line. If
everything is ok, type "Y" and the top of the screen will  clear,
the  headings will be put  up again, and it  will wait for you to
type in the next filename. On the  other hand, if you say "N"  to
the  "Ok?" prompt, the speaker will beep and it will wait for you
to retype everything for that file.

   You would now type in the filename for the second file. In our
example,  it would be File  #2 with a starting  page of $08 and a
length of $16. You would continue typing in the filenames in this
manner until you are done. When there are no more files, just hit
the <ESC> key. Another feature is that not all of the files  have
to  be on the same diskette if you have more than one disk drive.
If a certain file is  not on the disk in  the drive shown by  the
",Dx"  (where x is  the drive number)  at the top  of the screen,
just type Ctrl-D and that file and all of the files that you type
in  after that  one will  be read  off the  other drive. However,
there is one  thing that  you must  remember. The  disk that  the
Fastload  file is to  be created on  MUST be in  drive 1 and must
STAY in drive 1 during the whole time the program is creating the
Fastload  file. This  is due  to the  fact that  every once  in a
while, the program decides to  write its buffer out the  Fastload
file,  which, of course, is in  drive 1. Placing a different disk
in this drive will get it nicely clobbered if the program decides
to empty its buffer while your other disk is in there. Therefore,
certain safety precautions  are taken in  the program to  prevent
this form happening. For example, if your file which you said was
on drive  1 is  not found  there, your  only two  choices are  to
insert  the correct disk containing the  file into drive 2, or to
retype all of  the filenames  with their drive  numbers and  page
information.  This  is,  of  course,  because  of  the  fact that
inserting the  correct disk  into  drive 1  would mean  that  the
Fastload  disk would  be out  of drive  1 meaning  that your disk
would be clobbered.

   Anyway, back to better things...  When you are done typing  in
the  file information, and you have  typed the <ESC> key, the top
of the screen will again clear and  it will ask you for the  name
of  the Fastload file. You  may name it any  legal file name that
DOS will except. This, of  course, means that the filename  can't
be  over  30 characters  long  and must  start  with a  letter or
something similar (such as @,],[,^,_ or \). When done typing  the
Fastload filename, just hit the RETURN key. The top of the screen
will clear again and it will now ask for the starting address  of
your program. This is the address that it will jump to when it is
done with  the loading  and  moving. This  address is  stored  at
locations  $8D8 (low) and  $8D9 (high) of  the Fastloader prefix.
Therefore, if you wanted to  stop the Fastloader from jumping  to
the start of the program after it was done loading and moving the
program, you would say:

]BLOAD My Fastload File

]CALL -151

*8D8:69 FF
(Or wherever you want it to go to)

*7FDG
(Start of Fastload prefix)

   The screen will fill with all of the garbage and the file will
be loaded, moved, and your routine will be jumped to.

   The  starting address  of your program  MUST be  a 4-digit Hex
number. If it is something like $800, for example, you would  say
"0800". The cursor will then jump to the "Ok?" line and you would
say either "Y" or "N".

   After typing the starting  address, you have completed  typing
in  all of the information that  the create program needs to know
about your Fastload file.  At the bottom of  the screen, it  will
instruct  you  to insert  the disk  that you  wish to  create the
Fastload file on into  drive 1 and to  then press the <ESC>  key.
When this is done, the create program will begin creation of your
file. When done, it will tell you  so and will ask if you'd  like
to  create another Fastload file. Answer with a "Y" or an "N" and
it will either start the program over or exit into Basic.


Appendix A: Error Messages


   This appendix  tells  some  of  the  error  messages  you  may
encounter  while  attempting to  create a  Fastload file  and the
causes of them.


1. So many  files that the  Fastloader can't keep  track of them
   all.

This means that  your files  amount to  more than  30 load  pairs
(almost  like  files). This  is the  maximum that  the Fastloader
prefix can handle. To solve  this problem, use fewer files.  This
can  be accomplished by linking more  than one file together into
one file.


2. Fastload file is greater than 246 sectors total (over 244 data
   sectors).

This error is caused by linking  files together that amount to  a
total  of over 244 data sectors.  You should not get this message
with version 1.0 of  Fastload Create unless  you have files  that
overlap each other.

3.  Fastload  file  cannot  fit  on a  disk  that  is  this full.

This  error is caused when the disk is too full (obviously). Just
get out a disk that isn't quite so full and use it instead.

4.     The      diskette     directory      is     too      full.

You will  get  this  error  if you  have  more  files  than  were
allocated  for. On a normal disk, you have room for 105 files and
it will take a while for you to get this error message.


5.  No  room left  for the  Fastloader with  all of  these files.

You  will get this message when the  total length of your data is
greater than $B9 pages. Remember that that is the maximum  length
that the Fastloader is able to handle at this point.


Appendix B: Locations used in the
             Fastloader prefix

   This appendix  describes in  detail the  locations within  the
Fastload  prefix that are used by the create program and that may
be changed by the user. This appendix, however, does not describe
how to save these changes back out the disk. This Fastload prefix
is placed at  the beginning  of every  Fastload file  and may  be
loaded with the command:

]BLOAD My Fastload File

NOTE:  All addresses are in Hexadecimal.

7FD:     A jump to the routine that moves the Fastloader prefix
         down into the text page of memory.

800-827: First line of ID text

828-863: Load pairs. There is room for 30 load pairs in this area
         which are each 2 bytes long. The first byte is the page
         to start loading and the second byte is the number of
         pages (sectors) to load into consecutive page numbers. A
         zero as the first byte terminates loading.

865-87F: This is the RWTS driver routine. It loads the data into
         the appropriate locations on the disk according to the
         LPT (Load Pairs Table) at locations $828-$863.

880-8A7: Second line of ID text

8A8-8D6: This is the mover routine. When the Driver is done
         loading in the data from the disk, this routine moves it
         all into its appropriate places in memory.

8C7:     This is location MP6D1 (see $8E0).

8CD:     This is location MP6D2 (see $8E0).

8D0:     This is location MVPG4 and holds the number of the page
         that will be moved into page 4 after loading.

8D7-8D9: This is a JuMP to the start of the program. Location
         $8D7 will always be a $4C (JMP op-code) and locations
         $8D8 and $8D9 will contain the low and high bytes,
         respectively, of the location to JuMP to.

8DA:     This is location MVPG0 and holds the number of the page
         that will be moved into the zero page after loading.

8DB:     This is location MVPG1 and holds the number of the page
         that will be moved into page 1 after loading.

8DC:     This is location MVPG2 and holds the page number to be
         moved to page 2.

8DD:     This is location MVPG3 and should always contain a 3.

8DE:     This location MUST contain a 4.

8DF:     This is location MVPG5 and holds the page number to be
         moved to page 5.

8E0:     This is location MVPG6 and holds the page number to be
         moved to page 6. Locations $8C7 and 8CD must be the same
         as this location and are duplicates.

8E1:     This is location MVPG7 and holds the page number to be
         moved to page 7.


Appendix C: Future Versions

   Some  options  that  may be  added  to the  Fastloader  or the
Fastload Create  program  are  loading  into  language  card  and
displaying  a hi-res title page during load. If these feature get
enough requests we will implement them in future versions of this
program.  If you would like to make a request or if you can think
of any other new features to be added to any part of this program
or  if  you  have  any questions  about  Fastloader  please leave
mail for The Inspector on The Twilight Phone.

                              <end>


Retour sommaire

hr MPG

05) The Safehouse.


            [THE SAFEHOUSE]
 [ABSOLUTELY NO ADMITTANCE WITHOUT ID!]


OTHERS HAVE ENTERED BEFORE YOU, AND
THEY TELL GREAT TALES OF THEIR
EXPERIENCES... MEETING PEOPLE FROM
AROUND THE COUNTRY, TRADING SOFTWARE,
GAINING KNOWLEDGE, AND GENERALLY HAVING
A GOOD TIME! BUT ARE *YOU* WORTHY OF
ENTRANCE TO THE SAFEHOUSE?

CALL TODAY, AND EXPERIENCE:

 THE SAFEHOUSE - [612] 724-7066 (MODEM)
     ** THE BEST IN THE MIDWEST! **


Call
Safehouse
Call
The Burglar

Retour sommaire