Image Map Image Map
Results 1 to 3 of 3

Thread: Altos 5-5AD - Parking Hard Drive Heads - MP/M

  1. #1
    Join Date
    Jun 2003
    Northwest (UK)

    Default Altos 5-5AD - Parking Hard Drive Heads - MP/M

    Hi Folks!

    I've just finished repairing an Altos 5-5AD system. It currently has MP/M installed on the ST-506 hard drive which seems to work fine. However, I can't seem to find any utility to park the drive heads like you would find on a PC running DOS. Is there such a utility for CP/M or MP/M? The Altos documentation doesn't seem to mention anything regarding shutdown or transportation procedures.

    I've never used a CP/M system with a hard drive before so apologies if this is something simple


  2. #2


    There are a couple I have seen in the Kaypro space, but they are specific to a given drive. I suspect that it would not be difficult to Basic or Turbo Pascal a small program that does a seek to the last Cylinder/Track/Sector. During my recent restorations, installs have asked me do I want a "dedicated landing zone", however this comes at a cost of like 5% of the disk capacity. There may be something out there, perhaps even written in ASM. Not sure if your Altos has a "Landing Zone" per say. Just sharing some thoughts.

  3. #3


    It's pretty easy to write an assembly program to park the head, but you first need to find out some things:

    • First off, find the manufacturer's data sheet for the drive. This will tell you what its capabilities are. Does it have a "park" function? I had a quick look at the ST506 document on Wikipedia and it doesn't look like it does, but YMMV.
    • Next, you need to see how it's connected to the machine - which I/O ports are mapped to the drive controller's registers. These will be specific to your machine (and the main reason a Kaypro parking utility is unlikely to work). If you are lucky there will be some documentation, otherwise you'll probably have to look at the BIOS SETTRK or WRITE functions, which will have OUT instructions that address the drive. SETTRK often just saves the track number ready for a READ or WRITE call, rather than moving the head so be sure to check out the READ / WRITE functions if there are no OUTs in SETTRK.
    • Finally, you need to write a small ASM program to park the head (according to what the data sheet says). It'll be something like this:-

      - wait until drive is ready (normally by polling an input port for a specific value or bit set)
      - send park command (or move head to a specified track if that is what the drive's data sheet advises)
      - if there are no specific instructions, I'd seek the head to the highest track in order to keep it away from the boot track (track zero, normally)
      - return to CP/M (without using JMP 0 - use RET so it doesn't try to reload the CCP)

    Sorry I can't be more specific - you'll need to gather info on your drive, controller and I/O mapping first, but after that it's all reasonably straightforward.



Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts