The ATOM Discpack
1.1 Introduction |
The ATOM Disc Pack is a free-standing unit providing upto 92K bytes of storage on standard 5.25 inch mini floppy discs in 40-track single-sided format. It contains the following:
- An Olivetti OPE FD 501 disc drive unit
- The Disc Operating System (DOS) in ROM
- An Acorn floppy disc controller card
- 3K bytes of RAM
- 5V and 12V regulated power supplies
The unit plugs directly into the mains supply and is connected to the ATOM via a 64-way socket and an attached lead with plug. The socket accepts a ribbon cable which plugs into the bus extension socket on the ATOM, giving access to the extra memory inside the Disc Pack, and allowing communication with the controller card for transfer of programs and data to and from the disc. The plug on the attached lead connects to the DC IN socket on the ATOM, providing 5V regulated power at up to 3A, and replacing the normal ATOM mains power supply.
1.2 ATOM Modifications
Before the Disc Pack can be used, some simple additions must be made inside the ATOM. Buffer IC's are required for the address and data buses, with a decoder to select the external data bus when an address outside the ATOM is used. The ATOM's 5V supply regulators are no longer used and are bypassed with links. ON NO ACCOUNT should the normal 8V unregulated mains supply be used with the ATOM once these links have been fitted. A label is provided warning that the unit needs a regulated 5V supply, and this should be stuck where it is clearly visible, near the DC IN socket. The modifications require the bus buffer pack and connector, a fine-tipped soldering iron, solder, a screwdriver and some tinned copper wire. Alternatively, they can be handled by an Acorn dealer. The steps are as follows:
- With the ATOM face down, remove the two visible screws and take off the bottom section of the case.
Locate the positions of IC's 2,3,4 & 5. These are clearly marked in silk-screened white near theleft-hand end of the board, viewed from the keyboard side. Fit the IC's in the sockets provided as follows, taking care to put the end of the IC with the indent in the top next to the half-moon shape marked on the board:
If the bus buffer IC's have already been fitted - to drive an extension RAM board for example
- IC2 81LS95
- IC3 81LS95
- IC4 DP8304 (equivalent to INS8208
- IC5 74LS30
only IC5and the connector are required.
1.3 Connections to the ATOM
Locate the position of PL6. This is near the IC's just fitted and also clearly marked. Be clear which of the positions of PL5 and PL6 is to be used -PL6 is the one nearest the board edge. Remove the four self-tapping screws holding the board to the top section of the case, and lift out the board. Fit PL6 on the component side of the board (marked side 2) and carefully solder the pins on the other side (marked side 1). Check the area around the plug to make sure there are no solder splashes that could cause short circuits, and check the solder joints on the plug one by one.
Locate the positions of LK6 and LK7. These are adjacent to the regulators fitted to the heatsink near the middle of the board's back edge. Make the links from two short lengths of wire, and fit them in the marked positions on the component side. Solder the joints on the - other side, check the area for solder splashes, and then check each joint.
- 5 Fit the board to the top section of the case, and replace the four self-tapping screws. Fit the bottom
case section and replace its two screws.
The Disc pack should be connected to the ATOM with the ribbon cable supplied. One end fits into the socket on the front of the Disc Pack, and the other plugs into the socket marked ACORN BUS EXTENSION (PL6) on the back of the ATOM. The cable fits either way around, but the connectors themselves are polarised and will only fit one way. The plug on the end of the attached lead is fitted into the ATOM's DC IN socket. When the Disc Pack is connected to the mains and turned on with the switch at the back, the ATOM should produce its normal start-up message and prompt on the display.
Of the 3K bytes of RAM on the controller card, the DOS uses 2K from #2000 to #27FF, leaving 1K from #3C00 to #3FFF available to the user. The DOS ROM is situated from #E000 to #EFFF.
1.5 Introduction to Floppy Disks
The floppy disks used by the Atom Disk Pack are 5.25" in diameter and should be single-sided, single-density and soft sectored. They are plastic disks coated with metal oxide in the same way as magnetic tapes. Before new disks can be used on the Atom Disk Pack they must be prepared by "formatting" them. This process divides the disk up into sectors of 256 bytes each. ( see Section 3 ' Utility Programs' to fid out about formatting the disks. )
1.6 Use and Care of Discs
It is important that discs are handled and stored properly. Disc damage can impair or prevent data transfer and can result in loss of recorded information and even damage to the drive. The following . points should be noted:
- Do not touch the Mylar disc surface, especially with fingers or hard objects, and do not attempt to remove the disc itself from the sleeve.
- Insert the disc carefully into the drive until the backstop is reached. Do not attempt to shut the drive door until the disc is fully inserted. The disc should be inserted with the label at the top right, the labelled side being the last one to enter the drive.
- Open the drive door and adjust the position of the disc if it rotates noisily.
- Avoid damage to the centre hole which locates the disc onto the drive hub
- Return the disc to its paper storage jacket with the head slot ""', inside when not in use .
- Keep discs away from magnetic fields, including power supply transformers and cathode ray tubes.
- Do not bend or fold discs.
- Store and use discs at room temperature and away from direct sunlight.
- Write on the disc label before sticking it on the disc. Use a felt pen, NOT a biro, to write on labels that are already on discs.
The notch on the side of the disc sleeve can be covered with a self-adhesive tab to prevent the drive writing to the disc.
2 The Disc Operating System
The Disc Operating System (DOS) handles the creation, deletion and cataloguing of disc files on a single 5.25" disc drive. It is a 4K 1 program resident in ROM, using 2K bytes of RAM for catalogue and file buffers. The DOS replaces all functions of the ATOM Cassette Operating System and provides additional features that take advantage of the speed and random access capabilities of disc storage.
2. 2 Direct DOS Commands
Direct commands are those entered by the user, and are concerned with the transfer of program and data files as a whole. Each is preceded by '*', which enters the DOS command line interpreter, and it can be abbreviated by entering enough characters to distinguish the command from others, followed by '.' . Filenames of up to seven characters are allowed. Where a name or other string parameter contains no spaces or" quotes, it may be entered directly. Otherwise it must be contained by " quotes, with every " in the name typed as “”.
|*DOS *D. ||Enters the Disc Operating Sytem. The COS is re-entered on BREAK.
|*CAT *. ||Displays the catalogue. The first line shows the title of the disc and the current qualifier. The filenames are displayed arranged by qualifier, with '#' indicating that the file is locked.
The catalogue is read off disc unless the disc is in the 'ready' condition (still spinning), in which case it is transferred from the catalogue buffer (at #2000).
|*DIR *D.||Reads the catalogue from disc to the "buffer but does not display it. This command is often used to wait for completion of a previous operation, since the prompt may re-appear while a transfer continues under interrupt.
|*TITLE *T. || Sets the title of the disc to the first 13 characters of title.
|*SETx ||Sets the qualifier for all subsequent operations on files to x. Operations that use existing files will only search among those created under the qualifier currently set. The default qualifier is space. When returning to the default qualifier, be sure to enter the space after the SET command.
|*USEx ||Temporarily sets the qualifier to x. The system returns to the previous qualifier after the next successful operation. Two successive USE commands are equivalent to a SET.
|*LOCK <name> ||Locks the named file. Locked files cannot be deleted or updated.
|*UNLOCK <name> *0. || Unlocks the named file.
|*INFO <name> *I. |
|Displays information about the named file. The format is:
|*MON *M. ||Turns on messages. Subsequent file operations print out the file's information in the format of *INFO.
|*NOMON *N.||Turns off messages.|
|*SAVE <name> aaaa bbbb cccc *S. ||Creates a file. The contents of memory from aaaa to bbbb-1 are saved as the named file. If a file with the same name already exists under the current qualifier, it is deleted. The adress cccc is an optional execution address and it defaults to aaaa if not supplied. |
|*LOAD <name> aaaa *L . ||Loads the named file. The file is loaded into memory starting at aaaa, or at the file's start address if this is missing.|
|*DELETE <name> *DE. ||Deletes the named file. |
|*GO aaaa , ||Executes the machine-code subroutine at aaaa. '"|
|*RUN <name> <string>||Load and run the named file, using the start and execution address. <string> is transferred to memory starting at #0140 with a terminating CR, where it can be accessed by the user's program. |
|* EXEC * E . ||Executes the named text file as if it had been entered at the keyboard . |
2.3 Using the DOS from BASIC
The DOS redirects BASIC vectors so that commands, statements and functions that handle the transfer of programs and data to and from cassette via the COS perform their equivalent functions with disc. Unnamed files are not allowed, PTR and EXT are added to allow random access within files, and the keyboard and display can be used as input and output files respectively. Up to five files can be open simultaneously. Features su.ch as qualifiers, messages. operate as for direct DOS commands. File handling from BASIC is discussed fully in "Atomic Theory and Practice", so only a brief summary of the facilities is given here.
|Command ||Description |
|LOAD -<name>- L. || Loads the named file into the current text space as a BASIC program. LOAD can only be used in direct mode.
|SAVE -<name>- SA. ||Saves the BASIC program in the current text space as the named file.
|FIN -<name>- (function) F. ||Opens the named file for input and returns its handle, or zero if the attempt is unsuccessful. File handle zero gives input from the keyboard.
|FOUT -<name>- (function) FO. ||Opens the named file for output and returns its handle, or zero if the attempt is unsuccessful. File handle zero gives output to the display.
|PUT A,W ||Outputs the four bytes of W to the file whose handle is A..
|GET A (function) G. ||Inputs four bytes from the file whose handle is A, and returns an integer.
|BPUT A,B B. ||Outputs the least-significant byte of B to the file whose handle is A.
|BGET A ( function) B. ||Inputs a byte from the file whose handle is A, and returns the value.
|SPUT A,S SP. ||Outputs the string S to the file whose handle is A.
|SGET A,S S. ||Inputs a string to S from the file whose handle is A.
|FPUT A,%F (FP ROM) ||Outputs the 5 bytes of the floating-point variable %F to the file whose handle is A.
|fget a (function, fp ron) ||Inputs 5 bytes from the file whose handle is A, and returns a floating-point value.
|PTR A ||Returns the value of, or assigns a value to, the pointer to the next byte for input or output in the file whose handle is A. PTR can be thought of as a special variable -in an expression it returns the current value of the pointer as an integer, and on the left-hand side of an assignment statement it updates the pointer with the result of evaluation of the right-hand side.
|EXT A ( function ) ||Returns the extent (current length) of the file whose handle is A.
|SHUT A SH. ||Closes the file whose handle is A. SHUT O closes all files.
2.4 DOS Responses and Error Messages
After a DOS command has completed successfully, the BASIC prompt returns. If for some reason the command is not understood or cannot be carried out, a message indicating the problem is printed first. The various responses and their meanings are as follows:
If the fault is with the disc or drive rather than the command, one of 7 the following error messages is given:
|Command? ||The command is not recognised. |
|Syntax? ||The parameters are illegal or incorrectly presented.
|Name? ||The filename is longer than eight characters.
|File? ||The file is not found.
|Disc prot ||The disc is write-protected. ...
|File prot ||The file has been locked.
|Disc full ||There is insufficient room on the disc to create the new file.
|Full ||There are already 31 files in the catalogue.
3 The Utility Programs
|Disk error 08 |
|During a disc read operation a clock bit was missing.
|Disk error 0A |
|During a disc transfer the processor did not respond fast enough.
Probably due to a faulty disc controller card. 1
|Disk error 0C |
ID filed CRC error
|The cyclic redundancy check derived from the data read back differed from that stored on the disc.
|Disk error 0E |
Data CRC error.
|The cyclic redundancy check from the data read back differed from that stored on the disc during a disc read.
|Disk error 10 Drive not ready. ||During a transfer the disc stopped rotating.
Often due to a badly inserted disc.
|Disk error 14|
Track 0 not found
|The controller failed to find track 0.
Often due to an unformatted disc.
|Disk error 18 |
Sector not found
|The controller failed to find the required sector.
Often due to a corrupted or unformatted disc.
A disc with four utility programs is supplied with the ATOM Disc Pack. A utility program is used by typing 1*', followed by its name, followed by RETURN.
Initialises a disc to the Acorn 40-track soft-sectored format. All new discs must be formatted before they can be used. On running, the program displays a prompt message and waits for YES to be entered (without RETURN). Before replying the utilities disc should be replaced by the disc to be formatted. The program initialises the entire disc, clearing the catalogue, and then verifies each sector.
Relocates the files on a disc to make wasted space left between them by deletion and re-saving available for use by new files. The program waits for the user's disc to be put in the drive, and begins when a key is pressed. It displays information on all files before and after relocation, and the number of free sectors when completed. .
Gives information on all files on the disc in the format fo *INFO. The program waits for a key to be pressed.
Lists sectors on the disc which contain errors. The program waits for a key to be pressed.
Appendix B Circuit Descriptions
The Controller Card
The Acorn disc controller card uses an Intel 8271 integrated circuit to minimise both hardware and software overheads involved in using mini-floppy disc drives. The controller has a 64 way connector for the standard Acorn bus and a 34 way ribbon cable plugs onto the board to connect the drive. The 8271 is addressed in the memory map at page A in block 0 by IC22. The high power required by the mini-floppy interface is provided by 7406 and 7438 drivers. A 2MHz clock is required by the 8271 for master timing, and this is generated by division of a 4MHz clock produced by a crystal oscillator IC4. The data and clock signals are mixed during recording and thus data read back from the disc has to be processed to recover the information. The 8271 does this itself using the digitally timed retriggerable monostable IC7 and IC8, which generates a data window signal. IC5 and IC6 are two digital monostables used to indicate drive ready status based on the index pulse repetition rate. Transfer between the floppy disc controller and processor is synchronised with the NMI (non-maskable interrupt). The controller automatically unloads the head after 10 revolutions have occurred without further access requests from the processor.
The Disc Drive
The drive unit is an Olivetti OPE type FD 501. It is a 40 track single sided unit and using single density recording provides a formatted storage capacity of 92.16 Kbytes. It has a printed circuit board attached to it containing the read/write electronics and the control signal processing circuitry, and industry standard interface connectors for power and logic signals.
Precise head positioning is assured by using a stepper motor driving a spiral cam directly. The head carriage is guided by a steel peg which rests in a track on the spiral cam. A D.C. servo controlled motor is used to rotate the disc spindle at 300 rpm.
The Power Supply
The disc drive requires regulated supplies of 5v and 12v and these are supplied by the disc pack internal power unit. Spare capacity is available on the 5v supply, the current available being 3A, so a fully expanded Atom may be powered.
Appendix B - the Diagram
Disc Pack Parts listPrinted Circuit Board
|PCB|| Acorn 202,005|
|IC13|| 8271 ( INTEL )|
|IC15||2532 ATOM DOS ROMN|
|IC16 t/m IC21|| 2114|
|R6 ||470 Ohm|
|C1|| 10nF Ceramic disc|
|C2 t/m C13 ||47nF Ceramic disc|
|C14|| 47 µ f 10v Elco|
|C15 t/m C23|| 47nF Ceramic disc|
|34 way, Molex terminals|
|PL1 ||3 way, Molex terminals|
|64 way Euro-connector socket, straight pins|
|64 way Euro-connector plug, bent pins|
|XTAL|| 4 MHz|
|1||IC socket 40 pin|
|1||IC socket 24 pin |
|6||IC socket 18 pin|
|4||IC socket 16 pin|
|10||IC socket 14 pin|
|1||Disc Drive Olivetti 5,25 inch 40 track single sided|
Appendix C -- Memory map
|C1,2,3 ||4700 µF 25V Electrolytic capacitor|
|REG 1|| 78H05K ( TO3 )|
|REG 2|| 7812 ( TO126 )|