Difference between revisions of "VDOS"

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search
(Details)
(Details)
Line 49: Line 49:
  
 
* VDOS 1.0 supports 3 drives but only two are accessibly by VDOS at one time. The DOS stores details for 2 XDPB at one time. Using |S you can change the logical drive mappings. Logical drive A is normally unit 0 and logically drive B is normally unit 1. With |S you can map unit 2 to logical drive A or to logical drive B.
 
* VDOS 1.0 supports 3 drives but only two are accessibly by VDOS at one time. The DOS stores details for 2 XDPB at one time. Using |S you can change the logical drive mappings. Logical drive A is normally unit 0 and logically drive B is normally unit 1. With |S you can map unit 2 to logical drive A or to logical drive B.
 +
 +
|S,0 - 3rd drive is ignored:
 +
 +
|S,0:|SELECT,"A" - access unit 0
 +
|S,0:|SELECT,"B" - access unit 1
 +
 +
|S,1 or |S,2 - choose if 'A' or 'B' is 3rd drive. i.e. Decide if |A is 1st drive or 3rd drive or |B is 2nd drive or 3rd drive.
 +
 +
|S,1:|SELECT,"A" - drive A is unit 2.
 +
|S,2:|SELECT,"B" - drive B is unit 2.
  
 
== Manual ==
 
== Manual ==

Revision as of 07:30, 27 January 2018

The disc operating system VDOS was developed by the German company Vortex.

It was provided for use with the Vortex Disc Drives from Vortex (F1-D, F1-S, F1-X, M1-D, M1-S or M1-X).

VDOS was supplied on an EPROM, and was released in 3 versions:

  • VDOS 1.0
  • VDOS 2.0
  • VDOS 2.11

Further there were German and English versions of this ROMs.

The VDOS ROM also contained a machine language monitor.

VDOS is the first DOS to support the Vortex format which become a standard format later on.

Details

  • Vortex is a German company, so they added RSX commands in German and English language. VDOS had both |TAPE and |CAS (which resemble equivalent German word Kassette). (Dobbertin's X-DDOS had the same for compatibility).
  • |USER/|DRIVE did not exist in V1.0 instead |SELECT is used (which resemble equivalent German word Selektieren). (Dobbertin's X-DDOS also had |SELECT for compatibility).

|SELECT is used to both select user and/or drive. e.g. |SELECT,"3" for user 3, |SELECT,"B" for drive B, |SELECT "4B" for user 4 on drive B. VDOS doesn't have USER or DRIVE commands.

  • VDOS supplied both German ROMs (with messages in their native language) and English ROMs where the messages are translated. The RSX commands are identical.
  • When using the firmware function CAS CATALOG you give it the address of a buffer to fill with the list of files in the current user and drive (in SOFT968 this is a 2KB buffer but only because AMSDOS is limited to 64 directory entries and each directory is 32 bytes - 64x32 = 2048). For VDOS you should use a 4KB buffer to support 128 directory entries. In addition the format of the data stored in the buffer differs compared to AMSDOS.

AMSDOS uses:

<ff> <8 bytes filename> <3 bytes extension> <2 bytes size in K> with a byte of 00 to indicate the end of the list.

VDOS uses:

<user> <8 bytes filename> <3 bytes extension> <2 bytes size in K> with a byte of FF to indicate the end of the list.

This is important if you use CAS CATALOG and parse the data to fetch the list of files.

  • AMSDOS allows you to specify both the user and drive in a filename.

e.g. "3B:TEST.BIN" is valid and will try to find TEST.BIN in user 3 of drive B.

VDOS doesn't allow this. VDOS only allows the drive to be specified.

e.g. "B:TEST.BIN".

Therefore it's recommended to use SELECT to specify the user. A program should also not rely on the memory location of DOS specific data and poke it directly. Therefore it should use KL FIND COMMAND to detect |SELECT and use that if found, otherwise find and use |DRIVE and |USER. This allows maximum compatibility.

  • VDOS will autoboot a file called "HELLO.BAS" if it exists on the disc. AMSDOS doesn't have this. This is VDOS's 'Turnkey' system.
  • VDOS 1.0 supports 3 drives but only two are accessibly by VDOS at one time. The DOS stores details for 2 XDPB at one time. Using |S you can change the logical drive mappings. Logical drive A is normally unit 0 and logically drive B is normally unit 1. With |S you can map unit 2 to logical drive A or to logical drive B.
|S,0 - 3rd drive is ignored:
|S,0:|SELECT,"A" - access unit 0
|S,0:|SELECT,"B" - access unit 1
|S,1 or |S,2 - choose if 'A' or 'B' is 3rd drive. i.e. Decide if |A is 1st drive or 3rd drive or |B is 2nd drive or 3rd drive.
|S,1:|SELECT,"A" - drive A is unit 2.
|S,2:|SELECT,"B" - drive B is unit 2.

Manual


Media

Download

Manual (German)