TRS-80 Model I information

Getting the Model 1 to boot

The boot process of the Model 1 isn't that complicated, but there are several stages. Each completed stage tells you something about what is working and what not.

For proper diagnosics it is very useful to have visual access to the disk drive and can see the head movement.

Stage 1: Model 1 without Expansion Interface connected.

Switching the M1 on results in a MEMORY SIZE? of MEM SIZE? message on the screen. Pressing ENTER gives the BASIC prompt. If you enter ?MEM, you get about 16 kByte of RAM. With an internal 64kByte mode this is about 48 kByte.

Stage 2: Model 1 with Expansion Interface connected and powered on.

Switching the M1 on results in a hanged system. Pressing BREAK and then RESET gives the memory size question twice. On ENTER, you get BASIC again, now with 32kByte or 48kByte RAM depending on what is in the E.I. With the internal 64kByte RAM, the E.I. has to be modified, to not expose its RAM. From BASIC, a '?PEEK(14316)' can tell you the FDC is found if the result is '1', or at least odd.

Stage 3: Model 1 with Expansion Interface and a floppy drive 0 (no boot floppy) connected and powered on.

Switching the M1 on results in a hanged system, but the Drive 0 motor runs and its light lits for about two seconds. Other drives just have their motors running.

Here the CPU selected Drive 1, which automatically starts the drive motors. Now you now the drive select latch is accessible by the M1. From BASIC 'POKE 14304, 1' should select Drive 1.

Stage 4: Model 1 with Expansion Interface connected and powered on. A floppy (any) is in drive 0.

Drive 1 is selected and its motor runs. The Track stepper motor moves to Track 0 (try to make sure the drive isn't at track 0 before you start it up. Some drives require a disk, any disk, to be mounted for head movement. Here the FDC in the E.I. tries to select Track 0, by stepping out until the TR0 signal gets low. Now you know the FDC in the E.I. (FDC1771) is accessed and working.

Stage 5: Model 1 with Expansion Interface connected and powered on. A boot floppy is in drive 0.

At track 0, the boot sector is read and the O.S. is loaded. This includes stepping to other tracks. Eventually a banner and a prompt are shown on screen. If not the track width and/or density is incorrect, or the disk corrupt.

At code level, this is an excerpt of the Model 1 boot sequence:

read 37ECh
check bit 1:   (if 1, E.I. and FDC1771 present and ready)
write 37E1h, 1 (select drive 0 via Drive Select latch)
write 37ECh, 3 (select track 0; FDC command)
check 37ECh, 0 (if true, ready; FDC register)
write 37EEh, 0 (select sector 0; FDC command)
write 37ECh, 8Ch (read command; FDC command)
loop:
  check 37ECh, 1 (if 1, data ready)
  read 37EFh, write to 4200h++
  if not 256 bytes read, jp loop
jp 4200h         (executes the boot sector code)