== BIOS Functions and Memory Map related to AMSDOS ==
* [[AMSDOS Header]]
* [[AMSDOS RSX Functions]]
* [[AMSDOS Hidden RSX Functions]]
* [[AMSDOS Memory Map]]
<br>
== AMSDOS command reference ==
{| class=== "wikitable"! Command! Operation|-| '''|A ===''' || Makes drive A: the default disk drive. The result equals that of DRIVE with parameter A. On a CPC664, CPC6128 or 6128plus, normally the built-in disk drive is A:.|-| '''|B''' || Makes drive B: the default disk drive. The result equals that of DRIVE with parameter B. On a CPC664, CPC6128 or 6128plus, normally the built-in disk drive is A:.|-| '''|CPM''' || Boots a disk operating system from a system disk. CPCs came with CP/M 2.2 (CPC464, CPC664, CPC6128) and/or CP/M Plus (CPC6128, 6128plus). The command has no effect if no system disk is inserted. Some games also used this method in order to be started. Note that CPCs could be modified on the PCB in order to automatically perform the same thing as |CPM on power up.|-| '''|DIR''' || |DIR[,<text argument>] <br /> |DIR,"*.BAS" <br /> Shows the contents of the current disk (in CP/M style) as well as the free disk space. If <text argument> is omitted, *.* is assumed.|-| '''|DISC''' || Equals the commands |DISC.IN plus |DISC.OUT|-| '''|DISC.IN''' || Switches to disk as file input media.|-| '''|DISC.OUT''' || Switches to disk as file output media.|-| '''|DRIVE''' || |DRIVE,<text argument> <br /> |DRIVE,"A" <br /> Sets the default drive. This command only works when there is a readable disk in the chosen drive.|-| '''|ERA''' || |ERA,<text argument> <br /> |ERA,"*.BAK" <br /> Erases all files matching the text argument which aren't set as read-only. Wildcards can be used.|-| '''|REN''' || |REN,<text argument>,<text argument> <br /> |REN,"NEWNAME.BAS","OLDNAME.BAS" <br /> Renames a file. A file with the new file name may not already exist. Wildcards aren't allowed. For <text argument>, the USER parameter can also be used: <br /> |REN,"0:NEW.BAS","15:OLD.BAS" <br /> The file OLD.BAS from USER 15 will be renamed to NEW.BAS and assigned to USER 0, regardless which USER number was chosen before.|-| '''|TAPE''' || Equals the commands |TAPE.IN plus |TAPE.OUT|-| '''|TAPE.IN''' || Uses the tape recorder as file input media.|-| '''|TAPE.OUT''' || Uses the tape recorder as file output media.|-| '''|USER''' || |USER,<integer expression> <br /> |USER,3 <br /> Chooses, which of the 16 possible sections of the directory (from 0 to 15) applies to disk commands (e.g. CAT, LOAD, |DIR, a.s.o.). A file can be moved from one user number to another using the |REN command. E.g. <br /> |REN,"15:EXAMPLE.BAS","0:EXAMPLE.BAS" <br /> moves the file EXAMPLE.BAS from USER 0 to USER 15 without changing its name.|}
Makes drive ANote: the default disk driveIn fact, more user areas exist. The result equals that of |DRIVE with parameter A. On a CPC664, CPC6128 or 6128plus, normally the built-Deleted files for example are in disk drive is A:reality only moved to USER 229 (hexadecimal &E5).
=== You can choose another user with a POKE into AMSDOS variables. For example, '''poke &a701,&e5''' provides access to the deleted files or USER 229 (recycle bin). |B ===Ren,"0:filename.typ","filename.typ" moves the deleted file filename.typ from USER 229 to USER 0. Another example, '''poke &a701,&a2''' provides access to USER 162.
Makes drive B: the default disk drive. The result equals that of |DRIVE with parameter B. On a CPC664, CPC6128 or 6128plus, normally the built-in disk drive is A:.<br>
=== |CPM =Intercepted Firmware Calls ==
Boots a disk operating system from a system disk. CPCs came with CP/M 2.2 (CPC464Besides these external commands, CPC664, CPC6128) and/or CP/M Plus (CPC6128, 6128plus). The command has no effect if no system disk is inserted. Some games also used this method in order to be started. Note that CPCs could be modified on the PCB in order to automatically perform the same thing as |CPM on power up.AMSDOS facilities are implemented by intercepting these cassette firmware calls: *CAS IN OPEN *CAS IN CHAR *CAS IN DIRECT *CAS RETURN *CAS TEST EOF *CAS IN CLOSE *CAS IN ABANDON *CAS OUT OPEN *CAS OUT CHAR *CAS OUT DIRECT *CAS OUT CLOSE *CAS OUT ABANDON *CAS OUT CATALOG
=== |DIR ===The remaining cassette firmware calls are not intercepted and remain unaffected.
|DIR[,<text argument>]<br>
|DIR,"*.BAS"== CAS TEST EOF ==
Shows * If the opened file doesn't have a header then hard EOF is signaled at the contents end of the current disk record (in CP/M styleEach record is 128 bytes) as well as the free disk space. If <text argument> e.g. if reading a file without a header which is omittedmeant to be 2 bytes long, *hard eof will not be signalled until byte 128.* If the opened file does have a header then hard EOF is assumedsignaled at the end of the data defined by the header. (i.e. if there is a header and the file has length 2, hard EOF is signalled when reading the third byte).
=== |DISC ===<br>
Equals the commands |DISC.IN plus |DISC.OUT== BASDOS ==
=== |DISC'''BASDOS''' (BASIC Disc Operating System) is a patched AMSDOS made in East Germany (GDR) for the [[KC Compact]].IN ===
Switches to disk as file input mediaThe disc interface for the KC Compact contains the BASDOS rom, a NEC765 disc controller and 64KB RAM.
=== |DISC.OUT === Switches Differences compared to disk as file output media.AMSDOS: === |DRIVE === |DRIVE,* There is a new block of code at <text argumentdc00-> |DRIVE,"A" Sets df00 in the default driveROM which starts with a small jumpblock. This command only works when there code implements the patches. Other parts of the ROM have been patched to call into this.* Disc motor handler is patched to support a readable disk in the Ramdisk if selected.* Ramdisk is chosen with drive. === 'C' or 'D' using |ERA === |ERA,<text argument> |ERA,"*DRIVE only.BAK" Erases all files matching The XDPB for the text argument which arenramdisk is fixed and isn't set as read-onlyauto detected. Wildcards can be In addition data within the XDPB is usedto identify Ramdisk 'formats'. === |REN === |REN'Auto select' parameter is 1 for a ramdisk based format,<text argument>,<text argument> |REN,"NEWNAMEwhich has a dual purpose of identifying it and preventing auto-detection and the filler byte has been repurposed to define the base ram page of the ramdisk.BAS","OLDNAMEThe ramdisk uses KC Compact RAM Expansion/Amstrad compatible RAM Expansions.BAS"* Read/write is patched to allow double sided discs so that BASDOS format can be used.Renames a file. * Drive 'A file with the new file name may not already exist. Wildcards aren't allowed. For <text argument>, the USER parameter or 'B' can also be used DATA, BASDOS format (see [[AMSDOS#.7CUSER||USER]]704KB): |REN,"0:NEWor SYSTEM/VENDOR.BAS","15:OLDIBM format is replaced by BASDOS format.BAS" the file OLD* Drive 'C' accesses a 64KB RAM DISK.BAS from USER 15 will be renamed to NEW.BAS and assigned to USER 0(1KB blocks, regardless which USER number was chosen before64 blocks, 32 directory entries). === |TAPE === Equals the commands |TAPE.IN plus |TAPE.OUT === |TAPE.IN === Uses the tape recorder as file input mediasecond bank with ram selections from c4. === |TAPE* Drive 'D' accesses a 192KB RAM DISK.OUT === Uses the tape recorder as file output media. === |USER === |USER(2KB blocks,<integer expression> |USER96 blocks,3 Chooses, which of the 16¹ possible sections of the 128 directory (from 0 to 15entries) applies to disk commands (e.gUses second bank with ram selections from e8. CAT, LOAD, |DIR, Useful if you have a256KB/512KB ram expansion.s* the double sided [[MicroDOS]] disc format is only supported in Microdos and not in AMSDOS mode.oThere are no XDPB defined for it within the BASDOS ROM.). A file * BASDOS can be moved from one user number to another boot both [[MicroDOS]] and Amstrad CP/M using the |REN command. E.g. |REN,"15:EXAMPLE.BAS","0:EXAMPLE.BAS" moves CPM depending on the file EXAMPLEdetected disc format.BAS from USER 0 Read id is used to USER 15 without changing its namedetect which is used. ¹: In fact, more user areas existed. Deleted files for example are in reality only moved to USER 229 Both the sector ID (hexadecimal &E5R)and sector size (N) from the read id results are used. A ram expansion is required for MicroDOS. <br> <br> == BASDOS ==
'''Both BASDOS''' (BASIC Disc Operating System) is an AMSDOS clone made in East Germany (GDR) for the [[KC Compact]]and MicroDOS should be useable on a CPC.
[[Category:Stub]] [[Category:Disc Operating_System]]