From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search

S-DOS was a high-capacity disc operating system for 3.5in drives, released by STS Software. Two versions were released.


The original version of S-DOS was released in 1992, intended as a companion to the 3.5in drives then being sold by STS. The program was available both on disc and on ROM. It was coded by Hangman with additional code by ChaRleyTroniC.

The format chosen was a 396k, 128-file format identical to ROMDOS D80. (This was also the one used by SD Microsystem's 400K/S.)

Commands were:

  • |SFORMAT - format a disc in S-DOS format (Hangman)
  • |SVERIFY - verify a disc (Hangman)
  • |AMSDOS - select standard AMSDOS formats for drive B
  • |COPYAB,filename / |COPYBA,filename - copy files between drives (CRTC)
  • |BRUN,filename - run program from drive B, with jumpblock patched so DOS ROMs aren't reset (Hangman)
  • |SHELP - list commands (CRTC)
  • |SHEADER - header reader (Hangman)
  • |SPLOAD - load protected BASIC file (Hangman)
  • |SLOAD - load file into memory (Hangman)
  • |CAT,0/1 - catalogue other drive (CRTC)

Source code was released as part of the ChaRleyTroniC Source Code Collection disc.


S-DOS 2 was released in 1993 on ROM only. Though it was coded by ChaRleyTroniC, it was publically attributed to Rob Scott and Simon Matthews (Hangman and Ratz), so that there was no perceived conflict of interest with CRTC's Amstrad Action column, which frequently pronounced on the merits of different DOSses.

Its main advance was that it now provided automatic format detection: there was no need to manually select the format by using a command. Instead, as with standard AMSDOS, the new formats were automatically detected. The following formats were supported:

  • S-DOS format (ROMDOS D80)
  • Ultraform (41-track, 10 sectors)
  • MS800 format 5 (due to choice of sector numbers, not automatically detected)

You could use these formats in either drive A: or B:, unlike ROMDOS, and the system was compatible with CP/M.

A utility program was included in the ROM for copying, formatting, verifying, erasing and renaming, also including a sector editor.

Commands were:

  • |RUN - same as |BRUN in S-DOS 1
  • |UTILS - enter utilities mode
  • |MS800, |MS800A, |SDOS, |SDOSA - select/deselect MS800 format 5
  • |CPM22 - enter CP/M 2.2 with automatic format detection
  • |SETCPM - patch CP/M Plus .EMS file for S-DOS formats
  • |TYPE - display text file on-screen

How it worked

S-DOS 2's technical premise was based on a trick used in the PD program 'DC' (Drive C) by Juergen Weber to alter standard AMSDOS behaviour.

Several AMSDOS routines made a call to the CPC firmware via the standard jumpblock. S-DOS 2 would modify those jumpblock entries. Then, whenever they were called, S-DOS would examine the stack to see where it had come from. If the call came from the appropriate part of the AMSDOS ROM, S-DOS would modify the return address so that it used the new S-DOS code, not the AMSDOS code.

This enabled automatic format detection to be implemented reasonable easily. Unlike ParaDOS and ROMDOS, S-DOS did not contain any original AMSDOS code.

End of life

ParaDOS eventually supplanted S-DOS 2, which was in turn released into the public domain. ParaDOS's utilities (accessed by |DRIVE) used many of the same conventions as S-DOS's |UTILS, such as 'L' to log a disc and the system of tagging files.


S-Dos Manual (pdf)