YaPaDOS

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search
Superdisk.gif
YaPaDOS is patch for AMSDOS and ParaDOS that allows to redirect disk access to harddisk. This is done with keeping highest possible compatibility, so only 20 bytes of RAM are used (including 6 used by ParaDOS).

What is this?

Not quite clear... Seems to be an AMSDOS clone from Yarek (?), for supporting his IDE8255 (?) harddisk interface? Please confirm!

Diskimages

Instead of reading and writting floppy, a continous and limited area on harddisk is used. The area has the same amount of sectors, as the floppy and is called diskimage. Each drive A: and B: separately can be directed to floppy or one of diskimages. You can change the diskimages as you would change the floppies, but by opening some special files.

Using only 20 bytes of RAM makes features like FAT32 and support for .DSK files impossible, so the disk must have special formatting using IDEDOS structures (defined by Garry Lancaster). The harddisk can also contain FAT partitions, but they are not accessible from YaPaDOS.

The IDEDOS partition contains diskimages, that can have various size (e.g. 180kB, 800kB, 5MB). Up to 999 diskimages can be created and accessed.

Diskimages are selected by their numbers 1..999 (0 means floppy), by opening a file of special name. Only the number after dot matters. Names of diskimages can be listed from a virtual device called superdisk. Superdisk is read-only. After the superdisk is selected, the diskimage then can be selected without the ^ sign in file name.

Commands

The ^ sign placed as first in file name used in open file function tells the operating system to do something special:

LOAD"^" - selects superdisk

LOAD"^.nnn"
LOAD"^xxxxxxx.nnn" - selects diskimage number nnn (n - a digit, x - any character)

LOAD"^.0" - selects floppy

LOAD"^DESTROY.MBR" - clears MS-DOS partition table (also needs some POKEs for safety, see included README!.TXT)

LOAD"^DBnnnnn.mmm" - creates IDEDOS partition of nnnnn cylinders and up to mmm diskimages (needs some POKEs to set CHS geometry, see included README!.TXT)

LOAD"^MAKENEW" - adds diskimage respectively to current XDPB

LOAD"^MAKENEW.nnn" - as above, but enlarage to nnn kilobytes for safety


The ^ sign allows to change diskimages in every old software that enables opening any file and not crashes, when the file is empty. No changes in such software are needed to select diskimage on harddisk or redirect the drive to floppy.

Alpha version

YaPaDOS is currently in alpha version. So some major things may change.

For example base for diskimage number is 10 (digits 0..9), but may be 36 (0..9, A..Z). This will result in 46655 possible diskimages, not 999 as now.

Also, as creation of new diskimage gives it a fixed name, the |REN working on superdisk can be added.

All suggestions and ideas are welcome, please use the Yahoo! Groups list of FutureOS.

Download Alpha7 from: http://cpc.yarek.com/amsdos2.zip (version for SymbiFace IDE, plase contact to get other, e.g. CPCISA). Please backup all your harddisk data before use, as this version can include dangerous bugs.

  • Done since 2007-11-04:

+ Special XDPB is set for superdisk XDPB.
+ Diskimage sizes listed in superdisk.
+ List floppy on superdisk.
+ Support of IDE8255 (DSKHNDLR is written).
+ LBA start is #000000 not #000001.
+ Startup message with name of DSKHNDLR.
+ Redirection to floppy when wrong diskimage is selected.
+ Forbid disk creation from superdisk (has inadequate XDPB).
+ Corrected XDPB of new diskimage (cylinders and sides).
+ PARADOS |DRIVE tool installed in ROM bank 6 as |PRIVE.
+ Size of floppy (diskimage ".000") is zero.

  • Done but not released:

+ PARADOS |DRIVE tool installed in ROM bank 15 as |DRIVE.
+ Formatting done on superdisk creates new diskimage (also from |DRIVE tool).
+ Corrected free space printing in CAT to allow larger numbers.
+ Better PARADOS |DRIVE tool synchronization.

  • To do is:

- Rename diskimages from superdisk.
- Support for Vortex 704 format.

  • To fine tune is:

- Recelculate amount of free space in sectors.
- Move the free space entry towards end of partition list.
- Test of diskimages placed over #0010000 LBA.
- Test of large diskimages (over 184 blocks).
- Test of selection of diskimages number over 99.
- Test of listing diskimages above number 99.
- Solve the "Broken in" error.
- Support for diskimages with sectors of 256B and 1kB.
- Correct support for Master/Slave.
- IDE interface type detection (SF2, IDE8255, CPCISA).
- Display real number of units after DSKHNDLR detection.