Difference between revisions of "VDOS"

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search
m
 
(22 intermediate revisions by 5 users not shown)
Line 1: Line 1:
The disc operating system VDOS was developped by the german company [[Vortex]].
+
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).
 
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 was supplied on an [[EPROM]], and was released in 4 versions:
  
 
* VDOS 1.0
 
* VDOS 1.0
 
* VDOS 2.0
 
* VDOS 2.0
 +
* VDOS 2.0-X
 
* VDOS 2.11
 
* VDOS 2.11
  
Line 13: Line 14:
 
The VDOS ROM also contained a machine language monitor.
 
The VDOS ROM also contained a machine language monitor.
  
VDOS supported as first DOS the Vortex format, which become a standard format later on.
+
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.
 +
 
 +
* TO BE CONFIRMED: VDOS supports other double sided disc formats by programming the XDPB. AMSDOS doesn't allow this.
 +
 
 +
* When using CAS TEST EOF firmware function and soft end of file is reached the following conditions are return: carry true, zero false, A=&1A this is different to AMSDOS which has the conditions: carry false, zero false, A=&1A
 +
 
 +
* When using CAS IN OPEN/CAS OUT OPEN VDOS will crop the filename and extension part. i.e. if you use the filename "LONGFILENAME.LONGEXTENSION" it will crop it to "LONGFILE.LON" and attempt to load it. AMSDOS will give a 'Bad command' error.
 +
 
 +
* VDOS has different error codes compared to AMSDOS.
 +
 
 +
* You should push/pop ix and iy around firmware functions if you use them. VDOS appears to have different conditions for some CAS functions. TO BE CONFIRMED: exactly which functions are different.
 +
 
 +
== VDOS for Vortex Winchester Harddisk ==
 +
 
 +
* The VDOS for the WD20 doesn't seem to autodetect the harddisk. It asks you if the interface is connected before accessing it.
 +
 
 +
== Vortex Disc format ==
 +
 
 +
Sector numbers are 01h..09h (same as AMSDOS IBM Format, but with a 9th sector).
 +
Disks are Double-Sided, Double Density, 80 Tracks, 9 Sectors, blocks are allocated in 4K units.
 +
Total capacity is 720K (704K available):
 +
* First 9K contain two System Tracks (eg. CP/M Bootstrap)
 +
* Next 4K contain directory (see Note)
 +
* Next 704K are data (allocated in 4K blocks) (aka 4K clusters)
 +
* Last 3K are unused (due to 4K allocation size)
 +
 
 +
Note: According to the manual, the directory can hold 128 entries under VDOS2.0 (whole 4K used), but only 64 entries under VDOS1.0 (only half of the 4K area used).
  
 
== Manual ==
 
== Manual ==
Line 25: Line 97:
 
Image:VDOS-screenshot.JPG|Boot-up VDOS message
 
Image:VDOS-screenshot.JPG|Boot-up VDOS message
 
Image:VDOS-2.JPG|VDOS external look
 
Image:VDOS-2.JPG|VDOS external look
Image:VDOS-internal.JPG|Internals photo
+
Image:VDOS-internal.JPG|Internals photo (VDOS in a Modul-X)
 
</gallery></center>
 
</gallery></center>
 +
 
== Download ==
 
== Download ==
  
* [[Media:Vortex10.zip| V-DOS 1.0 ROM]]
+
* [[Media:Vortex10.zip| VDOS 1.0 ROM]]
 +
 
 +
* [[Media:Vortex20.zip| VDOS 2.0 ROM]]
 +
 
 +
* [[Media:VDOS20X.ROM| VDOS 2.0-X ROM]]
 +
 
 +
* [[Media:VDOS_decoded_TFM.ROM | VDOS 2.11 ROM (decrypted, works as normal ROM but not in Vortex disc controllers. Hold space key after reset)]]
  
* [[Media:Vortex20.zip| V-DOS 2.0 ROM]]
 
  
 
* [[Media:VDOSisPD.pdf| A statement from the german company Vortex Computersysteme GmbH, VDOS is Public Domain]]
 
* [[Media:VDOSisPD.pdf| A statement from the german company Vortex Computersysteme GmbH, VDOS is Public Domain]]
 +
 +
== Manual (German) ==
 +
 +
<gallery caption="VDOS 2.0 Manual (German)">
 +
Image:vdos2 frontpage.jpg|Frontpage
 +
Image:vdos2 content.jpg|Contents
 +
Image:vdos2 p1.jpg|Page 1
 +
Image:vdos2 p2.jpg|Page 2
 +
Image:vdos2 p3.jpg|Page 3
 +
Image:vdos2 p4.jpg|Page 4
 +
Image:vdos2 p5.jpg|Page 5
 +
Image:vdos2 p6.jpg|Page 6
 +
Image:vdos2 p7.jpg|Page 7
 +
Image:vdos2 p8.jpg|Page 8
 +
Image:vdos2 p9.jpg|Page 9
 +
Image:vdos2 p10.jpg|Page 10
 +
Image:vdos2 p11.jpg|Page 11
 +
Image:vdos2 p12.jpg|Page 12
 +
Image:vdos2 p13.jpg|Page 13
 +
Image:vdos2 p14.jpg|Page 14
 +
Image:vdos2 p15.jpg|Page 15
 +
Image:vdos2 p16.jpg|Page 16
 +
Image:vdos2 p17.jpg|Page 17
 +
Image:vdos2 p18.jpg|Page 18
 +
Image:vdos2 p19.jpg|Page 19
 +
Image:vdos2 p20.jpg|Page 20
 +
Image:vdos2 p21.jpg|Page 21
 +
Image:vdos2 p22.jpg|Page 22
 +
Image:vdos2 p23.jpg|Page 23
 +
Image:vdos2 p24.jpg|Page 24
 +
Image:vdos2 p25.jpg|Page 25
 +
Image:vdos2 p26.jpg|Page 26
 +
Image:vdos2 p27.jpg|Page 27
 +
Image:vdos2 p28.jpg|Page 28
 +
Image:vdos2 p29.jpg|Page 29
 +
Image:vdos2 p30.jpg|Page 30
 +
Image:vdos2 p31.jpg|Page 31
 +
Image:vdos2 p32.jpg|Page 32
 +
Image:vdos2 p33.jpg|Page 33
 +
Image:vdos2 erata p1.jpg|Erata page 1
 +
Image:vdos2 erata p2.jpg|Erata page 2
 +
Image:vdos2 erata p3.jpg|Erata page 3
 +
Image:vdos2 erata p4.jpg|Erata page 4
 +
Image:vdos2 erata p5.jpg|Erata page 5
 +
</gallery>
  
 
[[Category:Disc Operating System]] [[Category:Expansion ROM]] [[Category:Manual]]
 
[[Category:Disc Operating System]] [[Category:Expansion ROM]] [[Category:Manual]]

Latest revision as of 06:55, 28 May 2022

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 4 versions:

  • VDOS 1.0
  • VDOS 2.0
  • VDOS 2.0-X
  • 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.
  • TO BE CONFIRMED: VDOS supports other double sided disc formats by programming the XDPB. AMSDOS doesn't allow this.
  • When using CAS TEST EOF firmware function and soft end of file is reached the following conditions are return: carry true, zero false, A=&1A this is different to AMSDOS which has the conditions: carry false, zero false, A=&1A
  • When using CAS IN OPEN/CAS OUT OPEN VDOS will crop the filename and extension part. i.e. if you use the filename "LONGFILENAME.LONGEXTENSION" it will crop it to "LONGFILE.LON" and attempt to load it. AMSDOS will give a 'Bad command' error.
  • VDOS has different error codes compared to AMSDOS.
  • You should push/pop ix and iy around firmware functions if you use them. VDOS appears to have different conditions for some CAS functions. TO BE CONFIRMED: exactly which functions are different.

VDOS for Vortex Winchester Harddisk

  • The VDOS for the WD20 doesn't seem to autodetect the harddisk. It asks you if the interface is connected before accessing it.

Vortex Disc format

Sector numbers are 01h..09h (same as AMSDOS IBM Format, but with a 9th sector). Disks are Double-Sided, Double Density, 80 Tracks, 9 Sectors, blocks are allocated in 4K units. Total capacity is 720K (704K available):

  • First 9K contain two System Tracks (eg. CP/M Bootstrap)
  • Next 4K contain directory (see Note)
  • Next 704K are data (allocated in 4K blocks) (aka 4K clusters)
  • Last 3K are unused (due to 4K allocation size)

Note: According to the manual, the directory can hold 128 entries under VDOS2.0 (whole 4K used), but only 64 entries under VDOS1.0 (only half of the 4K area used).

Manual


Media

Download


Manual (German)