What is the use of a SCSI interface?
A SCSI interface makes it possible to connect SCSI devices to your MSX. SCSI devices can be hard disks, CD ROM drives, ZIP drives, MO drives or even other computers.
What is SCSI?
(mostly by Hans Otten)
SCSI stands for Small Computer Systems Interface and is pronounced "Scuzzy". It's a standardised way of connecting hardware peripherals to a computer using standardised hardware and control commands. The standard can be divided into SCSI-1 (standard SCSI, nowadays called narrow SCSI, because it has an 8 bit parallel data bus) and higher SCSI versions.
The devices on the SCSI bus talk to the computer through one of the devices connected to the SCSI bus. That device is called the controller and has an interface to one of the data buses of the computer. Besides disk drives, today's SCSI standard supports several other devices. Examples are removable media devices (CD-ROM, CD-R, Zip drives), video frame grabbers, scanners and tape streamers (DAT, DLT).
Each SCSI device can have multiple logical sub-units (LUNs) which can be quite handy when using CD changers (both readers and burners) or tape arrays, but most units have only one logical unit like hard drives and single disk CD-ROMs. All devices have the ability to release the bus after being requested to do time consuming operations not requiring the availability of the bus and leaves it free for other devices to use for transferring data or receiving commands.
The most common type of connector for SCSI-1 is the Centronics 50, also called Telco 50 or Amphenol 50 (for external use). Internally, SCSI-1 is always run on Dual-Row Socket (F) connectors on a 50 conductor ribbon cable, and this is what all MSX SCSI interfaces use.
ANSI defines the SCSI standards which describe the characteristics and capabilities of the interface. There are currently two main standards, SCSI-1 (ANSI document X3-131-1986) and SCSI-2 (ANSI document X3.131-199X). SCSI-3 is a family of standards and the reason is that it got too difficult and time-consuming to define one standard, instead SCSI-3 comprises different layers and command sets which allowed SCSI substandards to evolve and complete separately.
SCSI-1 is the original SCSI standard from 1986 and defines cabling, command sets and transfer modes. It uses an 8-bit wide bus where data transfers are done with a 5 MHz clock maximum, resulting in 5 MB/s peak transfer rate. At most 8 devices can be connected to the bus as a direct consequence of the bus width as each device is addressed using one of the 8 data lines. Most devices used on this bus are hard drives as the command set doesn't explicitly support other media.
For MSX mostly SCSI-1 is used, but the later SCSI-2 standard contains some facilities that can be useful also on the narrow (8 bit) SCSI in the MSX.
For more information, see:
What SCSI interfaces exist for MSX?
(thanks to Hans Oranje, Hans Otten and Gert de Boom)
As soon as MSX DOS 2 was released, it became interesting to connect hard disks to MSX, since the possibility of using sub directories enabled the users to make use of larger disks. (MSX-DOS 1 does not support sub directories, which means only a total of 115 files can be put on a partition!) In the Netherlands, the first SCSI interface available was the one produced by HSH, a German company. They also provided the SCSI harddisks (up to 40MB, if I recall correctly) in a nice external case. It came with the ASCII MSX-DOS2 cartridge (which seems to have been pirated by them, afterwards...). The price was huge: about 2000 euros for this 40MB set.
Basically, there are three types of SCSI interfaces on MSX:
An overview, with some specs (I hope it's complete):
What hardware do I need to use a SCSI interface on MSX?
For almost all SCSI interfaces you need to have MSX-DOS 2. This means you need at least an MSX2, see also the MSX-DOS 2 section.
Exceptions: the later versions of the BERT interface has MSX-DOS 2 built in and the 1.0 version of the HSH SCSI interface also works with MSX-DOS 1.
Furthermore, you just need a SCSI device (e.g. a harddisk) with a power supply for it and a 50 pin SCSI cable to connect the device to the interface.
Of course you also need a free cartridge slot to put the SCSI interface cartridge in.
What are partitions and why do I need them?
A partition is a part of your hard disk (or ZIP disk) that is accessible for the OS (MSX-DOS 2, e.g.) as a separate disk drive. This part is just a collection of disk sectors.
Because MSX-DOS 2 uses the FAT12 file system, each sector is only 512 bytes long and the sector counter is a 16 bit integer. This means a maximum of 65536 sectors can be used, which is 32MB of disk space.
Thus, if you want to use a hard disk that is bigger than 32MB, you need to split it up into partitions, to use this space effectively.
This problem was recognised a long time ago, on PC systems. To solve it, the following solution was invented.
The first sector of the hard disk is special. It is the beginning of the partition table. Such a partition sector contains information about the partition that follows it. This information includes the size of the partition, the sector with which the partition starts (offset relative to the partition sector), where the next partition starts and with some MSX partition tables: the rights of the partition. The offset can be used for optionally putting more partitions in one partition sector.
The problem on MSX is that there is a maximum of 8 drive letters available, drives A: to H:. Also, two drive letters are reserved for the disk drives; without a RAM disk, this will be drive G: and H:. This means drive letters A: to F: are available to map hard disk partitions on. Interfaces that support more than 6 partitions come with programs that can do this mapping. For Novaxis interfaces, this program is called MAP.COM, by some people renamed to MAP32.COM, because there is already a MAP.COM program that disables the MSX-DOS 2 memory mapper routines, so that old MSX DOS 1 software that directly accesses the memory mapper can be run under DOS 2. The 32 comes from the fact that the latest version of this program can map all 32 partitions that are possible with the latest Novaxis BIOS to any drive letter that is available.
What about terminators?
(mostly from the Novaxis manual)
The SCSI cable is actually a SCSI bus connecting all devices on the cable. For a correct working both ends of the SCSI cable should be terminated. This is done with the so-called terminators. All SCSI devices have terminators on it. These are just a resistor array.
Mostly they are removable. The Novaxis interface, which is usually not used in a network environment, does not have removable terminators. Only the devices on the beginning and on the end of the cable should have these terminators. From all the other devices, if available, the terminators should be removed. Write down the original position before you remove them. Mark which terminator was mounted where and how. This will prevent you from troubles when relocating the terminators.
In practice, modern hard disks and other SCSI devices have either automatic termination or have a DIP switch to turn the termination ON and OFF. If you connect only one SCSI device to the SCSI interface, theoretically the termination should be enabled on your hard disk. However, sometimes, for unknown reasons, the system only works without termination (which would give echos on the cable!). If you have problems, try changing the terminator settings of your SCSI devices.
Novaxis: all my partitions seem write protected. What to do?
I don't know the cause of this, but usually it helps by changing the Host ID setting of the interface (which sets the SCSI ID of your interface). Try to play around with this setting and see if it helps.
Novaxis: my MSX hangs when booting with the SCSI interface. What to do?
If it worked before, you probably have a problem: the first partition of the hard disk has been corrupted. This can happen when you run a program from hard disk that isn't designed to run from hard disk. Such a program may write data (e.g. save games) directly to sectors of the hard disk, instead of to the floppy disk. Note that the first partition of a hard disk is always called drive A:, to be able to boot from it.
The problem now is that you can't boot with hard disk anymore. The best solution is to connect another hard drive to the SCSI interface (by chaining) and set the Target ID in the set up menu to the ID of that other hard drive. After this, you can make a bootable partition on that other hard disk and boot from it. If this is done, you can copy the data of the other partitions from the first hard disk.
However, most likely you will never be able to access the corrupted partition again. Unless you know exactly what you're doing and want to spend a lot of time examining the raw data of that partition, you can consider all data of that partition lost.
So, be very careful with older programs that write data to disk!
Note that a similar thing happens when MSXDOS2.SYS is present, but COMMAND2.COM is absent or corrupt. In this case however, you can replace the COMMAND2.COM file by using the trick as described above: boot from the second harddisk, map the first partition of the first harddisk to a drive letter (if necessary) and copy COMMAND2.COM to that partition.
Novaxis: my BIOS settings are gone after turning off my MSX. Why?
The Novaxis BIOS stores the BIOS settings in the SRAM of the clock chip. However, if the battery of your clock chip in your MSX is dead, the settings will be lost after turning off the MSX, since the SRAM doesn't get the necessary power from your battery. The battery is dead in many MSX computers, since their time of life is not infinite and MSX computers are getting old. Replacing the battery should help. Most types are still available in many electronics shops.
Novaxis: at boot, the system hangs displaying please wait ---'. What now?
I don't know the cause. Sometimes this happens when the Target ID (SCSI ID to boot from) isn't selected properly. Reboot the MSX with the GRAPH key pressed, to skip the SCSI BIOS. Now you can set the right Target ID from Basic as follows: _SETTARGETID(n), in which n is the right SCSI ID of the device you want to boot from.
What basic commands are available in the Novaxis ROM?
(mostly from the Novaxis manual)
You can get a list of the build in programs by typing CALL INFO in basic. A list like the one below will appear on screen.
CALL statements available : CALL INFO Show this text CALL SLOW Z80 mode CALL MEDIUM R800 ROM mode CALL FAST R800 RAM mode CALL MAP Fix DOS2 error CALL MAP2 ditto - version 2 CALL HOSTID(variable) Get SCSI HOST ID CALL TARGETID(variable) Get SCSI TARGET ID CALL SETHOSTID(var.) Set SCSI HOST ID CALL SETTARGETID(var.) Set SCSI TARGET ID CALL INQUIRY(var, str, str, str) Get INQUIRY of specified TargetSome remarks:
What do the errors mean I get from my Novaxis ROM?
(from the Novaxis manual)