[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Translation of Cracking Lesson 19, was Re: Toy Shop for Apple II available and a long story



Vladimir Ivanov wrote:
> On Thu, 12 Jan 2012, Antoine Vignau wrote:
> 
>> A long time ago, in France...
>> It was a dark and stormy night ((c) Schulz),
>> It was about 18-sec protections,
>> It was in 1988...
>>
>> @ http://boutillon.free.fr/Underground/Cours/Cours_GDF/Gdf19/Gdf19.html
> 
> 
> Oh, and I should check Trinity some day ..
> 
>> ps. I hope you read French ;-)
> 
> Unfortunately, no.
> 
> Salut, Deckard!
>

I did translate some of this document, but work is slow since (took me about
2 hours to do just this part). Machine translations are unsatisfactory due
to slang (including one rather vulgar word!) and computer jargon used in the
document.

However, if there is indeed interest in a complete English translation, I
could see about completing it. Here is what I have so far:


Cracking Lesson 19

[ Traduction Anglais par DF ]

Update for 19 August 2011.

At the beginning of their writings, the Godfather lessons changed numbering.
Apart from the author himself, it is somewhat probable for someone having
the last version of each of these lessons. After a recent message from LoGo
(& Christo), I find myself again with 2 lessons numbered "20" with differing
content.

I therefore decided to rename the one that I had (lesson 20: 18 sectors) to
be lesson 19 in order to align it with the latest list of lessons in my
possesion. Lesson 20 will therefore be about the protection of Datasoft
1988, a lesson which will be online on 20 August 2011. In addition to the
text references here, I had to change the contents of the .dsk where a "19"
appeared in stead of "20", including the screens. Otherwise, the old lesson
20 will not boot. I changed the boot 1 to allow it. Note that even though
the menu suggests so, there is no file "INFORMATIONS COURS" on this disk.
Probably to save disk space. The option will not work if you choose it from
the menu.

[ some screenshots of the program ]


Disk : Gdf19.dsk
"-" files are DELETED files | "*" files are LOCKED files
----------------------------------------------------------------------
B A$1F00 (007936) L$12FF (004863) 022 COPIEUR N6
B A$3000 (012288) L$0537 (001335) 007 EPYX_FURY
B A$0901 (002305) L$19E7 (006631) 027 EPYX_FURY.S
B A$3000 (012288) L$06F3 (001779) 008 GOGSMITH                      
*A A$0000 (000000) L$0208 (000520) 004 GOGSMITH.PRG
B A$0901 (002305) L$2BD3 (011219) 045 GOGSMITH.S
A A$0000 (000000) L$0CCD (003277) 014 LECTEUR.PRG
B A$0300 (000768) L$0051 (000081) 002 LECTURE PISTE AIRHEART
*A A$0000 (000000) L$00C5 (000197) 002 LECTURE WING.BAS.PRG
B A$40E8 (016616) L$0018 (000024) 002 MODULE_IOB
B A$4000 (016384) L$0400 (001024) 006 PAGE_TXT
B A$4E00 (019968) L$04B0 (001200) 006 RWTS AIRHEART
B A$4000 (016384) L$0800 (002048) 010 RWTS16
B A$4000 (016384) L$04F0 (001264) 006 RWTS18                        
A A$0000 (000000) L$029E (000670) 004 HELLO
T A$0000 (000000) L$8900 (035072) 137 T.COURS 19 REVISION 1.00      
B A$0901 (002305) L$3730 (014128) 057 GOGSMITH 1.20.S
B A$3000 (012288) L$0762 (001890) 009 GOGSMITH 1.20
A A$0000 (000000) L$020D (000525) 004 GOGSMITH 1.20.PRG             
T A$0000 (000000) L$0800 (002048) 008 T.LES PROGRAMMES DE CE DISK
T A$0000 (000000) L$0400 (001024) 004 T.INTRODUCTION
A A$0000 (000000) L$001D (000029) 000 COPYN6.PRG                    
B A$0901 (002305) L$059D (001437) 007 CHRCH_NIB.S
B A$1000 (004096) L$0053 (000083) 002 CHRCH_NIB
B A$1000 (004096) L$0051 (000081) 002 CHRCH_NIB2
A A$0000 (000000) L$01DB (000475) 003 CHRCH_NIB.PRG
B A$0901 (002305) L$03DD (000989) 005 CHRCH_NIB2.S

This catalog contains 27 files. 0 were DELETED.
----------------------------------------------------------------------


Introduction

Lesson 19 : Br0derbund Protections / 18 sectors per track

18 sectors per track? But you say it doesn't matter, my dear sir!
Everyone knows that there are always 16 sectors per track, and not more!
Why not 43 teeth per mouth or 15 years for the presidential term?
My goodness! Perhaps it is possible, no?

With information about the Apple, one can do everything .. modify everything
..
hack everything.. The only thing is to know how!
Well then, let's see how!

======================= Amicably, G.

Lesson 19, revision 1.00.

========================================================================
Lesson 19 : Br0derbund Protections / 18 sectors per track	Godfather
========================================================================

Revision 1.00					Update : 07 May 1988

This lesson wouldn't have been as brilliant without the invaluable help of
people like Mister DD, The Gog's, Numéro 6, and surely, the author of all
this mess: Roland Gustafsson!, from the Br0derbund companty. Thank you!

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

1. Introduction
2. The magnetic data marks on the disk
3. Data storage on the diskette (nibbles)
4. The rwts18 routine, reading, writing, formatting,  recalibrating, etc...
5. Copy Program
6. Supplementary Problems: track numbers on the bad tracks, verify
7. Adapt the copier to the new, diverse Br0derbund programs
8. History and diagnostics of all the latest Br0derbund programs
9. 18 sectors per track. Who says better?

========================================================================
1. INTRODUCTION TO 18 SECTORS PER TRACK and the problem it gives us
========================================================================

On today's menu, the current protection of the finest Apple software, you
will recognize them if I talk about Karateka, Captain Goodnight, Wings of
Fury, to name just a few.. Br0derbund. In starting this lesson, you will
perhaps be asked who is the dedicated guy: Roland Gustafsson. He's the dick
Gustaffson, also a lead editor of the American magazine, NIBBLE. He is the
"official" protector for Br0derbund. And therefore, the author of the
protection that we are studying here: 18 sectors per track.

>>>>>>>>>>>>>>>>>>>>
Deckard's notes from 07 May 2007: first of all, in the entire GDF text, the
name mentioned is Steven Gustavson instead of Roland Gustafsson. I have
corrected it. One must know that Steven has a connection with Roland! It's
about one of the easter eggs utilized in the program PRINTSHOP COMPANION. If
you boot side 1 of the program and type STEVEN following with a press of
ESC, the screen will display in reverse!! Useless, but funny. Furthermore,
Roland never wrote for Nibble magazine. Actually, I found many articles
written by him in A+ magazine. He was interested in programming sound on the
Apple IIGS.
<<<<<<<<<<<<<<<<<<<<

Picture a disk containing 18 sectors per track with a total of $23 tracks,
normally numbered from $00 to $22.. That means as many tracks as on a disk
formatted for DOS 3.3, but each containing 2 more data sectors, making two
more $FF bytes. ($1FF bytes more per track!).
The cracking of a protection "format", as you well know, always happens with
a format conversion step. The original disk has a non-standard format, we
want to convert the first one to a standard format, meaning 16 sectors per
track!.. Only here, a big problem is presented! Look, to try to explain it
to you, here are the "capacities" of these two formats:

16 sectors per track with 35 tracks having $FF bytes per sector.....143360
bytes
18 sectors per track with 35 tracks having $FF bytes per sector.....161280
octets

Do you understand the problem? Not yet? Well then, I shall continue...

16 sectors per track with 35 tracks : 560 data sectors per side!
18 sectors per track with 35 tracks : 630 data sectors per side!

That means, considering that you find the 18 sector reading routine in any
original Br0derbund program, and you are also able to prepare the format
conversion, the question remains:

You have 70 sectors "too many" which are not indispensable.. Where are you
going to put them, because they must go somewhere on a "deptrotected" disk -
that's the goal of this game - a disk with 16 sectors per track.. And
remembering that these 16 sectors per track are - in theory - already
occupied with the program's data. Am I clear enough?

Pierrette has a jug of milk that can hold only a liter, and she must bring
back to the village - under pain of galactic cataclysm - 1.5 liters of milk.
Do you have a solution to this problem?

I am going to try, with this lesson and potentially a future lesson number
19.2, to explain to you and to clarify the two solutions which appear to us,
after - believe the best - intense thoughts of the entire planet!

===============================================================================
2. The magnetic data marks on the disk
===============================================================================

First thing sirs, you are going to open your mind.. be open to anything that
could be said here.. to any novelty.. Expand your field of possibilities,
concentrate, breathe in., breathe out.. and understand!

For the following explanation, and I say that for the perfectionsts, I will
say ahead of time, I must alter the facts for a better comprehension. For
example, I am going to imply that the disk read head moves around the
tracks, but really it is the diskette that turns under the disk read head.
You may accept that the effect is identical depending on the point of
reference, and you may also equally grant that I have the right to allow a
few "lies" which will follow, for your benefit.. Well, if you discover some
anamolies - because you already know too much - you don't have to accuse me
here, I excuse myself here in advance. Off we go..

I ask you to imagine the track of a disk. A track we will compare, to
simplify things, to a bicycle track, such as the track at Bercy. A circular
track, on which one dispatches a little man (the runner) having a certain
speed. This bicyclist who will complete a loop of the track in a certain
time is compared with the read head of your drive which will make the loop
of a data track in a certain time. The problem presented to use is that of
formatting. If the reading of a track can be done sector by sector in any
time (one can read a track a few sectors at a time, and if one's drive is
too quick or the reading routine is too slow, one must come back a second
time, see a third time to get the rest).

The formatting is a "cut" of a track in sectors according to a given format.
For the formatting, the problem is different. One cuts the disk, and the
third sector, for example, no matter which format, 19, 18, 16, 13 sectors or
otherwise, must be placed immediately after the second (physical sectors),
and immediately after the first.. Everything must be cut after sector 0,
which marks the "start of the cut", and just up to the last sector, in a
single pass! In a single loop of the disk surface.

One will assume that our bicyclist leaves from the starting line (which is
also quite close to the finish line - the end of the track), with a set of
18 flags, because there are 18 sectors per track. He is going to leave a
flag every 22.22 meters around a track of 400 meters in circumference. For
example. It takes a certain time to cease a flag and its pole, and again a
certain time to place it to mark the start of one of the cuts of the track,
of one of the divisions which he must make there. From one of the sectors of
the track it will go. The problem, I restate, is that he must place all of
the flags in a single loop.. and if, on these 18 flags, he only ends up
placing 17, for example, the formatting of this track must start again. The
desired number must be placed from the start, according to the format.

You understand well further that the bicyclist moves slowly around the
track, so he will have time to place these flags, and therefore be able to
plant a large number of them. In 1979, DOS 3.2 contained only 13 sectors per
track for speed. The drive proposed by Apple at the start wasn't reliable
enough, also the formatting was done more slowly, and our bicyclist could
not have the time to put barely just 13 flags. Understand that "flag" means
field address, the separation point between two sectors on the track, and
understand that between two flags, data are written (the tread of a tire
rests on the track.. if you wish (!?)). We are going to see much later the
head of these flags and the mark of the tire tread on each 18 sector track,
when I talk about the 18 sector format.

Now, we went only to 16, and BR0DERBUND, with some slow drives, has
formatted a disk with 18 sectors. If our drives are of a good speed not too
fast (you can test their speed with a program called Copy II+ 5.x, or EDD
v4.2), you can then copy the Br0derbund programs without too many problems.
Although sometimes there are a few boot modifications (generally on track
$0) to get a working copy. Whatever the speed of your disk drive head, 18
sector programs boot just as well no matter which drive, but don't copy at
all from the nibble copier. (in theory, the copier must work everywhere,
functioning at a "normal" maximum speed.)

Apple hasn't yet made - and won't make - DOS 3.4 with 18 sectors per track
for this reason: all the drives, they can read 18 sectors, but they can't
all format 18 sectors.

===============================================================================
3. Data storage on an 18 sector diskette
===============================================================================

In general, several tracks (track $00, or even tracks $00 and $01) are in
the DOS 3.3 format, 16 sectors per track. All of this is normal, and these
are the tracks which contain the famous rwts18. But leave me rather to tell
you about the 18 sector format in quesetion.

In fact, we talk of 18 sectors per track because each track has the
equivalent data of 18 DOS 3.3 sectors of $FF bytes, making $17FF bytes, but
on the disk, the data are regrouped into macro sectors. It doesn't add up,
therefore, 18 sectors of $FF bytes, mais 6 sectors of (3 * $FF) bytes, these
amount to the same incredible count of $17FF bytes per track, versus $15FF
per track which we are offered in in the 3.3 format.

The first macro-sector corresponds to sectors 00,06,12.
The second  macro-sector corresponds to sectors 01,07,13.
The third  macro-sector corresponds to sectors 02,08,14.
The fourth  macro-sector corresponds to sectors 03,09,15.
The fifth  macro-sector corresponds to sectors 04,10,16.
The sixth macro-sector corresponds to sectors 05,11,17...making 18
secteors!!

Each macro-sector is constituted in the following manner: (to make a
comparison with the 3.3 format, refer to lesson 6)

_____________________________________________________________________________
!                                                                           
!
!                                                   ( 18 SECTOR FORMAT )    
!
!                                                                           
!
! - A field address :  Prologue D5 9D                                       
!
!                                                                           
!
!                      Track    NN    ! CONVERT WITH THE HELP OF A          
!
!                      Sector   NN    ! CONVERSION TABLE                    
!
!                      Checksum NN                                          
!
!                      Epilogue AA                                          
!
!                                                                           
!
! - Two self-sync nibbles       FF FF                                       
!
!                                                                           
!
! - A data field :     Prologue A4    ! variable, according to program,
WATCH!!
!          (I will refer to the prologue as "the header which can vary"!)   
!
!                                                                           
!
!                      Data     $400 NIBBLES (4 Nibbles --> 3 Bytes)        
!
!                      Checksum NN                                          
!
!                      Epilogue D4                                          
!
!_____________________________________________________________________________!

The nibbles are converted into bytes on the fly while being read, with the
help of a conversion table. This is contrary to DOS 3.3, where the
conversion (post-nibblization) happens in a buffer after the nibbles are
read.

On the other hand, some Br0derbund software, such as was the case for
Airheart, the track $1C doesn't exist. The track was identical to track $1B
and was numbered as track $1B in the field address. But it's a "plus" which
isn't really important in regard to the "18 sectors" protection, and it
hasn't been employed in any of the recent Br0derbund programs. Therefore, no
panic! We will talk about it in the 'Cracking' lesson, but here is a bit
below..

[ Traduction Anglais par DF ]

-- 
]DF$
Mac GUI Vault - A source for retro Apple II and
Macintosh computing.
http://macgui.com/vault/