"roger" <
wil...@gmail.com> wrote
>> Its NOT a copy protection.....
>> It only signals MSDOS: hands off CP/M-86 !!!!
Correct, it has nothing to do with copy protection. I implemented it this
way to prevent both MS-DOS and CP/M-86-without-the-144FEAT-driver from
messing up with the CP/M-86 directory and files.
IIRC, I copied this "trick" from John Elliott.
Quoting from the documentation for 144FEAT about the layout of a 144FEAT
diskette:
In the DOS FAT's, all clusters are marked as "bad clusters. This prevents
DOS
from writing to the diskette's data area (not to the DOS directory - but
that wouldn't harm the CP/M-86 data).
The DOS directory is empty, except for a volume label "CPM-86-DISK" with
date and time stamps that indicate when the diskette was prepared.
In the directory as seen by standard CP/M-86, is a single file called
"CP/M-86.144" c.q. "CP/M-86.720" c.q. "CP/M-86.12M" that uses all available
(i.e. 160 KB) diskette space. This prevents standard CP/M-86 from writing
to the diskette, which it is seeing as a 160 KB, 40 tracks, single sided
diskette.
CP/M-86 1.1 when enhanced with the 1.44 MB feature, has its 8 KB directory
on track 2 and (for 720 KB and 1.2 MB) on the first sectors of track 3.
It ignores tracks 0 and 1 on the diskette. This prevents the 1.44 MB feature
from writing to the track 0 and 1 information that is used to "cheat" DOS
and
standard CP/M-86 1.1.
>> and there are 2 things that are not compatible:
>> the boot sector didn't contain the marks for a valid boot sector!: (AA
>> and 55)
>> and exact here has CP/M-86 the byte for the disk type....
Even on the 160 KB and 320 KB diskette formats supported natively by "CP/M86
for the IBM PC and XT", the original CP/M diskette formatting program
doesn't put hex AA and 55 in the last two bytes of the boot sector. CP/M-86
uses the last byte of the boot sector to indicate the diskette type. Quoting
again from my documentation for 144FEAT:
The very last byte on the very first sector of a diskette, defines the type
of diskette.
In standard CP/M-86, only two values are recognized:
1 = double-sided 40 tracks diskette, 8 sectors per track (320 KB)
any other value = single-sided 40 tracks diskette, 8 sectors per track
(160 KB)
Version 2 of the "1.44 MB feature" defines three additional specific,
decimal values:
144 = double-sided 80 tracks diskette, 18 sectors per track (1.44 MB)
72 = double-sided 80 tracks diskette, 9 sectors per track (720 KB)
12 = double-sided 80 tracks diskette, 15 sectors per track (1.2 MB)
Finally. version 2 of the 1.44 MB feature supports this media byte:
17 = double-sided 80 tracks diskette, 9 sectors per track (720 KB)
as used by "Personal CP/M Plus 2.0". Note that the ordering of
data on the diskette for this format differs from the ordering
on 720 Kb diskettes with media byte value 72.
Have fun,
Freek.