Hello and welcome to a nice little release from Demonlord!

I've managed to rip booting Music Construction Set from disk to a DOS EXE...
(Music Construction Set is (c) Will Harvey/Electronic Arts 1983,84)

Remember this true classic?

Anyway... There are 2 different EXEs included in this rip, MCSDISK.EXE and
MCS.EXE. I'll describe the differences here below...

MCSDISK.EXE is only patched to quit when pressing Ctrl-X. This feature
used to crash my 286, but I've finally managed to fix that. If pressing a
key when the title screen appears crashes the computer, I've included a
work-around for that. Run the program with any parameter, and it won't hook
INT 16, which crashes some computers. This will disable the quit feature,
but make it more compatible.

This EXE uses real A: or B: (and floppydrives C:/D: if you have them ;) )
to look for files, and since it's a pretty old program, it only supports
disks formatted to 360k. Any other disk format will result in errors when
reading/writing. The program has a built-in format command that should be
able to format disks to 360k, but I haven't been able to make it work
properly. Whenever I try, it formats all tracks, but it can't write
anything to them, so it ends up with Disk Error... (and since it only supports
floppy drives, FORMAT C: will try to format the FLOPPY drive C:, not the
HARDDRIVE C:! Very big difference here!)

MCSDISK.EXE can be run from HD, but it looks for music files on floppies (A:
as default), and can only read/write to floppies. I think it's impossible to
make it read/write to HD.

It does have a little feature, though. The original version only handled 63
files, and they never wrote anything to the last 64th directory entry. If
this entry is filled anyway (from DOS, or something), it would return a Disk
error, and the disk wouldn't work at all. I've fixed the disk error thing,
but the 64th file will be listed (if 64 files do exist) if you DIR/CAT, but
you can't load it.


The other EXE, MCS.EXE, is the real deal! I've created a full INT 13 handler
that will handle all the program's calls to INT 13 (disk interrupt). I've
managed to fix so you can have the files on your HD, and the program will
load them from there. This took quite a bit of work, but it sure was worth
it... :) (Don't run this from disk! It won't work! It has to run from HD to
work properly!)

To make it easier to use (and easier to fix), some features have been
disabled in this EXE.

* It can't handle files larger than 8192 bytes, but that should hardly be a
  problem, since the files are so much smaller than that! I read somewhere
  that it has a 700 note maximum, but I don't know how large such a file
  will be. The 8k maximum size can easily be increased if necessary, but I
  don't think it will be.

* It doesn't handle drive letters before filenames, like LOAD A:SONG, LOAD
  B:SONG, CAT A: and stuff (cat/dir works, but it still shows the current dir
  on HD). LOAD/SAVE with driveletters included will result in a File not found
  error. I've disabled this on purpose, so if it finds a ":" in the command
  string, I make it return an error on purpose.

* It only looks for *.MCS and *.MCD (in that order) when using CAT/DIR. This
  is to easier find the interesting files, and not list all files in the
  current dir. Since Music Construction Set only handles 63 files (4 sectors
  of directory entries, and the last one has to be empty), it's nice to have 
  only compatible files listed, and not the other crap you may have in this 
  dir. You CAN save files with other extensions, but they won't turn up when 
  you CAT/DIR from MCS, and you can't load them, so it's advisable to use 
  default extensions... If you have more than 63 files in the current
  directory, sorry, they won't be listed, and you can't load them.

* The demo mode has been disabled. This is because it doesn't leave a
  filename around for me to look for, like the other commands do. The demo
  mode simply finds the first .MCD file, plays it, and continues with the
  next. This was a bit of a problem, so I disabled it entirely, and the
  program will enter edit mode directly after the titlescreen scrolls away.

* The commands FORMAT, ERASE and DEMO have been disabled in the commandline
  interface. The DEMO is because of the above mentioned problems, the other
  commands are for safety reasons. FORMAT only handles diskdrives A:-D:, so
  there was no risk to format a HD, but still... ERASE modifies the disk on
  the lowest possible level, expecting it to be a 360k, so it wouldn't have
  worked too well on any other format, especially HD.

* This program HAS to be run from HD to work properly! It checks the drive
  number when intercepting INT 13 calls, only letting through reads to drives
  80h+ (80h is harddisk C:). Since I use INT 21 (DOS interrupt) to handle
  files on HD, INT 21 will also call INT 13 to make its own reads and writes,
  but the drive will be 80h+, since it IS run from HD. If you run this from
  disk, the INT 21 reads and writes will also be intercepted since they're
  not 80h+ (above 7fh). Haven't tried what happens, and I won't, but don't
  blame me if you're stupid enough to try... And hopefully you're smart
  enough to read the docs to a program before running it!

In both programs, entering any parameter will disable the Quit (CTRL-X)
feature to make them compatible with computers that have problems with this.
My 286 used to crash without this, but my 8088 works fine with Quit enabled.

Neither of the programs will scroll the notebar when playing. I have no idea
why this is. My 8088 has Paradise EGA that's lockable in true 100% compatible
CGA, but it still doesn't scroll. The original booting version doesn't
scroll on the Pentium... It does however scroll in Tand-em, the Tandy 1000
emulator, though. (Try it out, the Tandy sound is really great for its time!)
(found at www.oldskool.org/pc/tand-em).

When the program starts, it shows "Measuring computer speed...". This
procedure works very well, since it's able to slow my P225 down to original
speed. But, the faster the computer, the longer it'll take to find the
correct slowdown factor. This calculation takes 20 seconds on my P225, and
it just flashes by on the 286/12...

I haven't tested printing anything, since I don't have a printer...

A few things about Music Construction Set:

* .MCS is the default extension. If no extension is specified when saving,
  .MCS is added to the filename automatically. This is the case in MCSDISK.EXE
  by default, and in MCS.EXE by my code.

* MCS will load the first file found with acceptable extension (.MCS, .MCD).
  If you have two files named SONG.MCS and SONG.MCD, LOAD SONG will load the
  FIRST one to appear in the catalog! If SONG.MCD is located before SONG.MCS
  in the catalog, LOAD SONG will load SONG.MCD. SONG.MCS can still be loaded,
  with the command LOAD SONG.MCS.

Hope you'll enjoy this old, but very good program. Run MCSDISK under Tand-em
with songs on the same disk for a very nice experience! MCS.EXE will probably
not work under Tand-em, since it HAS to read from HD!

I have tried this under several OS's (MSDOS 3.3, 5.0 and 6.2, PC-DOS 7,
Windoze 98 & NT). It runs under all, but I can't get any sound under Windoze.
MCS performs pretty badly with 386 memory manager loaded (EMM386, QEMM...),
so for best sound, run without one. A clean boot is probably preferred, but
not at all required.

Enjoy!

(any questions can be sent to demonlord@swipnet.se)
