home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Meeting Pearls 3
/
Meeting_Pearls_III.iso
/
Pearls
/
arc
/
Disk-Archiver
/
MDC
/
MDC.History
< prev
next >
Wrap
Text File
|
1995-09-01
|
13KB
|
334 lines
Marcs Disk Cruncher History
The file you see at the moment is the short history of MDC developing.
Maybe it is going to be interesting for somebody.
First number in brakets means the length of the source and the second the
length of the executable. Everywhere where the executable size is greater
than 9000 bytes, were used ansi functions for display.
- V1.0 (9444, 9712 bytes)
· Reading and crunching to a file was supported.
· No decrunching and writing to trackdisk.device.
· Only few arguments were supported.
· Template was: From/A, To/A, Q=Quiet/S, Low/K/N, High/K/N, M=Mode/K/N,
P=Packer/K.
· Quiet/S flag wasn't supported.
· Existing functions: evaluatearguments (), for evaluating given
arguments, cleanup () for removing some structures, closing devices and
libraries,..., diskmotor () for turning the drive motor on and off,
ispacker (), for checking if the given argument can be packer or not
(length has to be 4), isdevice (), for checking if the given device is one
of DF0:, DF1:, DF2:, DF3:, getdevicenumber (), for getting the device
number.
· It detected succesful openings of a file for writing or reading.
· It could read the fileheader and check if it is O.K..
· File header is 4 longwords long. First 3 bytes content MDC, 4th byte
stores low track number, 5th high track number. Other 11 bytes were
reserved for future use.
· It detected if required packer library was missing, other errors
weren't displayed, but only detected.
· It diplayed packed track, current input size and current output size.
Both, current input and current output sizes were wrong (4 bytes per
track).
· It checked if the given value for low or high cylinder was between 0
and 79.
· Low cylinder had to be lower than or equal to High cylinder.
· If no packer was given, FAST was used as default.
· If no mode was given, 50 was used.
· It checked if From and To arguments are both devices.
· Device DFX: was locked before crunching it.
· It checked if xpkmaster.library was successfully opened.
- V1.1 (9668, 5704 bytes)
· Locking device to crunch was removed, because it couldn't crunch no-DOS
disks.
· Checking if the given device unit is available was added, but it made
checkings only for my configuration (I had only DF0: and DF1:).
- V1.2 (9695, 5580 bytes)
· Some preparations for decrunching were made.
· Some optimiziations in size were made.
· It still crunched only.
- V1.3 (9179, 9188 bytes)
· Function evaluatearguments () was implemented in main ().
· Some minor bugs were removed.
· Sometimes the arguments are O.K. sometimes not.
- V1.4 (9212, 5536 bytes)
· Low and High arguments become \N only.
· Losing arguments fixed.
· Display of compression ratio added.
· Displays were made according to the Quiet/S flag.
· Bug at displaying the current input length and the current output
length was removed.
· Highest cylinder was set to 81 (previous value was 80).
- V1.5 (10797, 5880 bytes)
· Struct DriveGeometry was add, to get the drive geometry for eventual
other devices support.
· Default mode was set to 79.
- V1.6 (10046, 11416 bytes)
· Decrunching added, but it doesn't work.
· Checking whether the disk is inserted or not was added.
· Function cleanup was changed. Now it displays input string and makes
other things the same as the previous one.
· Some parts of DriveGeometry were removed.
- V1.7 (10131, 6012 bytes)
· Function getdevicenumber was removed.
· Checking if the track could be written or not was added.
- V1.8 (10210, 6472 bytes)
· Input and output buffers for crunching and decrunching were calculated
by the formula given in xpk developer.
· XPK_GetError tag added.
· The program still doesn't decrunch.
· Sector header not found check was added.
· Intuition library was opened, but I don't know why. None of its
commands were used.
· Evaluating arguments were put into a function called evaluateargumets
again.
- V1.9 (17231, 6392 bytes)
· Decrunching was made (finally, thank goes to Magnus). Crunching and
decrunching were made with XpkPackTags and XpkUnpackTags and not with
XpkPack and XpkUnpack as before.
· It displays time used for compression/decompression now.
· DriveGeometry was removed properly.
- V1.10 (10780, 6780 bytes)
· Available units (DF0:, DF1:, DF2:, DF3:) were determined with help of
disk.resource. Before that program caused machine crashes if an unit was
used which doesn't exist.
- V1.11 (10783, 6788 bytes)
· It unpacked only to formatted disks before. Now it unpacks to
formatted and to not formatted disks.
- V1.12 (12665, 7344 bytes)
· New arguments were added: Repack/S, Split/S, Join/S, Test/S and
Info/S.
· To argument become /K (it was /A before).
· Testing (fast) was implemented (repack, split, join and info weren't),
but it's not that much good as it could (should) be.
· Only one from To/K, Test/S, Repack/S, Split/S, Join/S and Info/S can be
used at the same time.
- V1.13 (12824, 7304 bytes)
· An optimization in size.
· String "File is corrupt" was stored in a variable and the displayed.
· Another string called tisr was created too. That spared 40 bytes.
- V1.14 (12728, 7288 bytes)
· String chtanb was created and displayed. It spared only 16 bytes in size.
- V1.15 (12837, 7332 bytes)
· Disk is write protected check was added.
- V1.16 (12864, 6524 bytes)
· Compiled with other options. Spared many bytes in size.
· One sequention of if clauses was changed with switch clause.
- V1.17 (12864, 6080 bytes)
· Compiler options were changed again and program recompiled. This was the
first version oploaded to AmiNet.
- V1.18 (17089, 6472 bytes)
· Other devices support was added.
· Could not find enough sectors check added.
· isdevice () function was added. It searches in device nodes for given
device.
· Device/Unit failed to open check added.
· Checking available units with disk.resource was removed.
· Varibales defaultlow and defaulthigh were removed.
· Step/K/N argument added but not implemented.
- V1.19 (17231, 6640 bytes)
· Possibility of giving the scsi.device units as From/A or To/K arguments
was removed.
· Crunching/Decrunching/Test (further CDT) report display was improved.
- V1.20 (15381, 6684 bytes)
· Testing didn't worked in V1.18 and V1.19. Test was implemented again.
It's still the simple one.
· Trackheader changed. Now first 4 bytes are "MDC?", 3rd word is the
number of low cylinder, 4th word is the number of high cylinder, 3th long
word contains the tracksize (needful for testing data), and the 4th long
word is still reserved for future releases. It contains "SSMP". Track
header is still the same.
· Some calculations were made simplier and faster, I hope. CDT report
display was improved again.
· FreeMem () for one memory array was added. I forgot to do it before.
· Now it displays how much memory it wanted to allocate and couldn't.
- V1.21 (15205, 6516 bytes)
· 3 functions (fic (), errorand () and openingand () were added for
getting shorter program.
- V1.22 (15116, 6520 bytes)
· Function comparedevices was made, for gaining in size. One variable
was removed, because it was useless.
- V1.23 (14948, 6488 bytes)
· One else clause was removed. Now it displays all errors which were
made while passing the arguments, not only the first one found (I hate the
TurboPascal (TM) style of displaying errors (Only one at a time)).
- V1.24 (15254, 6808 bytes)
· Function cleanup () were added 2 arguments.
· Functions added in V1.21 were removed.
· Some error displays were done better. Displays look much more better
now.
· Calculations which were made with 2^x numbers were made with shifts.
- V1.25 (15625, 6992 bytes)
· One more shift was used instead of multiplying.
· Checking of unpacking to dms.device was added, because it's inpossible.
· It's possible to pack dms.device and unpack it to an other device (DF0:
for example).
· End report display was improved too.
· Some iterations were made shorter.
· An error report was changed.
- V1.26 (16641, 7228 bytes)
· Only device name with : were accepted as To/K or From/A arguments.
· Step/K/N argument was implemented. Now it's possible to pack more tracks
together instead of 1 by 1 as before.
- V1.27 (17981, 7544 bytes)
· When decrunching to a device, the device wasn't checked as fresh inserted
and you had to remove and insert the disk to tell the system that disk
contents aren't the same as before. Now it works as it should.
- V1.28 (19290, 7824 bytes)
· By unpacking Low/N and High/N arguments were ignored. Now they have
affect when unpacking too.
· Displaying of current work was moved to an other position. Now it
displays the track it is working on and not on which it was working.
· One if clause was optimized.
- V1.29 (20409, 8104 bytes)
· Priority/K/N argument was added to set program's priority. That improves
the speed of crunching/decrunching again.
· First .MDC check (not fully controlled) was added.
- V1.30 (20395, 8192 bytes)
· Checking of extension was improved. It won't crunch/decrunch any other
files than the one which ends with .MDC.
· Some optimizations in size were done.
· Some minor bugs were removed.
- V1.31 (20232, 8084 bytes)
· Some comparisions (lowercased chars, uppercased chars) were optimized
and done with and function (& 223).
- V1.32 (25587, 8840 bytes)
· Info argument was implemented. It didn't do anything before, except
guru.
- V1.33 (24021, 8892 bytes)
· All files were tested/infoed/decrunched (further TID) no matter if they
were icons, directories or any other not #?.MDC files.
· Files, which were opened to work on them, weren't closed.
· Version text which is displayed when typing Version MDC, was improved.
It didn't get only better but it spared some bytes.
- V1.34 (25861, 8888 bytes)
· In case of an error the program quited and now it only reports the
error and continues with the next file to TID.
- V1.35 (25662, 8776 bytes)
· Displaying errors was changed. Now it looks a little better.
· Some optimizations in size and speed were made.
- V1.36 (25364, 8576 bytes)
· Some little optimizations in size and speed were made.
- V1.37 (25220, 8536 bytes)
· Some optimizations in size and speed were made.
· Some minor bugs were removed. They hadn't affected the correct flow of
the program.
· Displaying the seconds at the estimated time was replaced with a better
one (36 bytes were gained)
· Q=Quiet/S argument hasn't worked properly. Now it ignores Q=Quiet/S
argument if Test/S or Info/S arguments are set.
- V1.38 (25370, 8604 bytes)
· Now the program resets the priority. It stayed the same as it was set.
· Some arguments were changed. Low/K/N became L=Low/K/N now, High/K/N
became H=High/K/N now and Priority/K/N became Pri=Priority/K/N now.
· Previous versions ate a lot of memory, because it allocated it for
every file that matched the pattern. That is fixed. Now it eats only 176
bytes of memory as it did before. I don't think that's a big problem
anyway.
· The program has not erased the line in which it displayed the error
message. That was fixed now.
- V1.39 (26940, 9184 bytes)
· WaitForKey/S argument was added, which causes that the program waits
for the user to insert/change disk before continuing. It affects only the
first archive, because the program asks the user for changing disk after
decrunching the first archive.
· Name of selected archive is displayed now.
- V1.40 (26966, 9180 bytes)
· Only one bug was removed, but I had to increase the version number,
because I put V1.39 on my account for my friends and I had to tell them
that there was something changed somehow. So, I removed the bug, which
left the disk drive busy after crunching/decrunching.
- V1.41 (28956, 10252 bytes)
· Force/S argument was added. It causes that MDC overwrites the files,
given for destination.
· Some improvements were made with WaitForKey/S argument.
- V1.42 ()
· I removed the bug, who hasn't used the L=Low/K/N and H=High/K/N
arguments when decrunching.