Knowledge

Commodore DOS

Source 📝

832:, which may range from 0 to 15 inclusive, refers to a specific communication channel established with the device's controller and is passed to the device when it is commanded to "talk" or "listen" on the peripheral bus. As with the file number, the secondary address is determined by the programmer and must be unique for the device in question. The range 0 to 14 inclusive is used for passing data to or from the device, whereas 15, referred to as the "command channel", is used to issue commands to the device's controller (such as to rename a disk file), if the device is able to support such an operation. In disk drives, secondary addresses 0 to 14 inclusive are mapped to buffers within the controller, hence establishing communication with a specific file on a specific disk; since as mentioned above the drive does not know about the 471:. The first line has a line number of 0 or 1 (indicating the drive number), showing in reverse video the name and ID of the disk and a shorthand code for the DOS version with which it was created (codes vary only as far as the DOS versions use incompatible disk formats: "2A" is used by most 5.25-inch DOS versions, "3D" by the 3.5-inch 1581). Lines after this have the size of a file (in disk blocks) as their pseudo "line number", followed by the file name in quotes and the three-letter type code. The last line shows the number of unallocated blocks on the disk (again as a pseudo "line number"), followed by the words "BLOCKS FREE." 27: 2745: 2756: 709:) are "locked", and cannot be deleted—they can be opened for reading, however. There is no Commodore DOS command that can explicitly set or clear this status, but many third-party utilities were written to allow this to be done. These utilities generally read the directory using direct-access commands, perform the necessary modifications to the raw data, and then write the changes back to the disk. 1268:" on single-drive systems, resulting in the allocation of an unnecessary buffer under some conditions. Since the Save-with-Replace command used all five drive buffers, and because the method by which the "phantom" buffer was allocated did not meet specifications, this resulted in scrambled data being written to the disk under some conditions. 1448:
that may be used to retrieve drive status in lieu of the above code. This reserved variable is not available on earlier versions of BASIC, so the command channel must be manually read as demonstrated above. Note that immediately after power-on or reset, the DOS revision will be returned. For example,
840:
to make a difference between several files that are open at the same time. On the other hand, the host operating system is agnostic about the secondary address; it is transmitted to the drive on every access to the file, but not otherwise used by the host. In assembly language programs, this value is
818:
drive mechanism(s) within the unit. By convention, the first disk drive unit on a system has device number 8, the second drive, if present, 9, etc., up to a maximum number of 15 (when eight disk drives are attached). The device number scheme was derived from the IEEE-488 (or general purpose interface
146:
At least seven distinctly numbered versions of Commodore DOS are known to exist; the following list gives the version numbers and related disk drives. Unless otherwise noted, drives are 5¼-inch format. The "lp" code designates "low-profile" drives. Drives whose model number starts with 15 connect via
899:
hard drives in the 1980s). In floppy disk units, the first mechanism is drive 0: and the second is 1:. It is fairly common practice to omit the drive number when communicating with a single drive floppy unit, as 0: is the default in such units, but since omitting the number can trigger a few obscure
693:
is a special type written into the on-disk directory entry of files that have been deleted. Such files are not shown in a normal directory listing, and their data blocks and directory entries will be reused by files that are subsequently created. Some utility programs allow the "un-deletion" of such
1279:
burner could produce their own patched ROMs which could be swapped into the drive. Commodore was made aware of Slaymaker's findings, and while they never issued an official update for the original 1541's ROMs, they did fix the bug in Revision 5 of the 1571 ROMs, and also in the ROMs for the 1541-c
789:
operating systems. It is never sent to the drive and thus is neither known nor used by the drive's own operating system. The file number may be in the range of 1 to 254 inclusive, is assigned by the programmer and must be unique if more than one file is simultaneously opened. Once the file has been
433:
A null byte embedded in a file name will interrupt the listing after loading by BASIC. If there are three null bytes, that makes it difficult to list through BASIC. Many machine language programmers would experiment with null bytes in an attempt to make it harder for BASIC programmers to access
1047:
would have the same effect: the file would be loaded into the same memory region from which it was saved. Load relocation happens in the host, being an exception to what is said above about the secondary address being used only device-internally. Since the PET cannot relocate files, BASIC programs
306:
in length and is theoretically unique; by using direct access methods on the directory structure, it is possible to rename a file to that of another—although accessing such files may be difficult or impossible. Files with identical names usually serve no purpose except to inform or visually
725:
Opening a file on a Commodore disk unit entails the processing of a number of parameters that are vaguely analogous to file opening procedures in other environments. Since the DOS is actually running in the drive's controller, the file opening sequence must pass enough information to the drive to
1288:
As previously noted, the Commodore DOS itself is accessed via the "command channel", using syntax like that used to access files. Issuing commands to the DOS and retrieving status and error messages generated in response to commands is accomplished by opening a file to the device using 15 as the
817:
interface, and video display, respectively, all of which are directly controlled by the kernal ROM. Device numbers 4 and higher address devices attached to the peripheral bus, such as printers or disk drives. In the case of a disk drive, the device number refers to the unit's controller, not the
633:
A user-specified file has an internal structure that is identical to that of a sequential file. Commodore's original purpose for this file type was the facilitation of DOS development, as the file content could be copied into a drive buffer for execution by the drive's microprocessor. Very few
620:
A relative file is a variation of the sequential file type, in which an indexing mechanism referred to as side-sectors is present to permit record-oriented access. Records may be a maximum of 254 bytes in size and are addressed by a one-based cardinal number, permitting true
1263:
disk operations without a drive number were sufficient to lead to the bug. The bug stemmed from the fact that the affected DOS implementations were modified versions of the DOS contained in earlier Commodore PET dual drives such as the 8050. This created a "phantom drive
1735:
Duplicate a file on the same disk (or another disk in the same two-drive unit) under a different file name. Note that the new name comes first (except in the BASIC 3.0+ code)! Duplicating to another disk without a two-drive unit requires using a utility program.
721:
contains a higher level abstraction for file access using BASIC syntax. The components that concern the DOS itself are file name parsing and the secondary address. This section will give an overview of the necessary BASIC commands for the sake of completeness.
634:
programs ever made use of this file type. Some applications that use non-standard low-level disk structures save data in USR format, which came to be considered a sort of "leave me alone, don't try to copy or delete" indication to the user. Most notably,
1076:
will load the first program on the disk starting from the file-specified memory location. This is one of the most popular load commands of the platforms, the method to start majority of commercial software, for example. Of note is the fact that the
666:(BAM) is updated to accurately reflect which blocks have been used. If a program crash or other problem (such as the user removing the disk while a file is open) results in an "orphan file", also referred to as a "poison" or "splat" file, 822:) bus that was used with the Commodore PET/CBM models. In assembly language programs, this value is often referred to as FA or PA (physical address), again from the mnemonic for the memory location where the device number is stored. 1280:
and 1541-II drives. Although not supported by Commodore, it is known that the 1541-II firmware (but not that of the 1541-c) can also be used in an original 1541 drive by using EPROMs, which will fix the bug for that drive as well.
1204:
would load a partial directory that shows only the files whose name starts with the letter K and which are of type PRG; all such partial directories still contain the initial disk name line and the final "BLOCKS FREE" line.
670:
are not flushed and the BAM will not accurately reflect disk usage, putting the disk at risk of corruption. A poison file generally cannot be accessed (but can be opened in "modify" mode), and an attempt to use the DOS
1782:
Duplicate an entire disk. Only available in two-drive units, otherwise a utility program needs to be used instead. The target(!) drive number comes first, then the source drive number (except in the BASIC 3.0+ code).
1244:. For years rumors spread, beginning with the 4040 drive, of a bug in the command's implementation. At first, this was denied by some commentators. Prizes were offered to prove the existence of the bug. By early 1985 1000:), the program is loaded starting from the address specified by the file itself (the PRG header, which is the first two bytes of the file)—this form of command is more common when loading machine code programs. 798:
that refers to the memory location where the file number is stored. File numbers greater than 127 cause the system to write an extra line feed after each carriage return (useful for double spacing a document, as an
1250:
magazine advised readers to avoid using the command. That year various authors independently published articles proving that the Save-with-Replace bug was real and including methods by which it could be triggered.
1440:
is a run mode only verb. Also, in programs that issue many disk commands it is customary to open a file to the device's command channel at the start of the program and not close it until the program has finished.
410:, causing the program to be loaded into memory. Anything after the colon or the secondary address will not be executed, since the computer ignores any command after a LOAD. Alternatively, the user could press 1254:
Affected devices included the single-drive 1541 and dual-drive 4040; the 8050 and 8250 did not exhibit the issue. Some commentators suggested the bug could be avoided by always explicitly specifying the
1487:
Format a disk, preparing it for use and deleting any data contained on it. Omitting the two-character identifier parameter will perform a quick deletion of all files on an already-formatted disk.
662:) indicates that the file was not properly closed after writing. When the drive is commanded to close a file that has been opened for writing, the associated buffer is flushed to the disk and the 908:
created on a single physical drive), which made syntax such as 4: or 10: necessary if a file to be opened was not on logical unit zero (equivalent to drive mechanism zero in a dual floppy unit).
541:
allow viewing of the disk directory using special commands that load the directory into screen memory without destroying the current BASIC program. Some versions of Commodore BASIC include a
679:
corruption, such as crosslinking. The only practical method of removing one of these files is by opening the file in "modify" mode (and fixing it), or by validating the disk (see the DOS
650:
An undocumented internally used file type similar in structure to a sequential file. Creation of this file type must be accomplished by direct manipulation of the disk directory.
1672:
Reconcile the BAM with the disk directory, allocate all used blocks and free all blocks not being used by files, and delete all unclosed files from the directory. Comparable to
855:
and is interpreted by the controller of the device being accessed. In the case of a disk drive unit, the formal command string structure consists of the drive mechanism number (
871:, opened for writing in this example). In practice, some of these parameters may be omitted. Minimally, only the filename is required if the file is to be opened for reading. 1081:
expansion will only pick the first catalog name when no other file on that disk has been accessed before; the name of the last-used file is kept in memory, and subsequent
717:
Accessing files is primarily an issue for the host computer. The kernal ROM in the computer contains the necessary primitive routines needed to access files, and the
900:
bugs in the DOS it is not a recommended practice (a colon alone is equivalent to 0: and is enough to avoid those bugs). An exception to this convention is with the
581:, in that it has no specialized internal structure. It is not possible to position to any arbitrary location in a sequential file, as there is no analog of the 302:); the directory is stored on reserved track 18, which is located halfway from the hub to the edge of a 35-track single-sided disk. A file name may be up to 16 1048:
written on later Commodore machines must be modified by using a sector editor to change the header bytes. It is also possible to use the PET's built-in
499:
will flood the screen with garbage instead of loading the directory into BASIC RAM. This is because the drive assigns the directory a load address of
2217: 1616:
into its internal memory. Rarely needed as the drive usually does this on its own, except if a disk is exchanged for another one with the same ID.
2620: 569:
files are commonly used to store documents or text files created by a word processor or other such editor. A sequential file is analogous to a
1007:
because this machine could start BASIC RAM in several different locations, depending on the memory expansion that was installed. The older
1884:
commands). Some of the theoretically user-definable functions were rededicated for accessing new functionality in DOS versions after 1.0.
1213:
Commodore DOS also offers a "Save-with-Replace" command, which allows a file to be saved over an existing file without the need to first
2760: 2072: 2045: 507:, but corresponds to the default screen memory in the C64 (starting with the second character on the first line of the screen). 885: 1453:. Error code 73 is common to all drive models and may be used to determine if the drive has been reset to its power-on state. 2210: 1271:
In September 1986, Philip A. Slaymaker published an article describing in great detail the cause of the bug and providing
600:
files normally contain executable program code, although they can also be used for data files. The first two bytes of the
2257: 1991: 683:
command below), the latter which rebuilds the BAM and removes poison file references from the directory. The infamous
111: 2252: 2189: 2171: 2156: 2166:
Grand Rapids, MI: Abacus Software (translated from the original 1983 German edition, Düsseldorf: Data Becker GmbH).
726:
assure unambiguous interpretation. A typical statement in BASIC to write to a sequential file would be as follows:
345:
to not consider it to be part of the full file name. This feature can be used to create directory entries such as
960:
saves the BASIC program to a sequential file. If the secondary address isn't specified or is specified as 0 (e.g.
2786: 2749: 2370: 2203: 2781: 2015: 341:
character will appear to have been separated from the first part of the file name by a quotation mark, causing
319:
to the directory, and files could then be rearranged around those lines to form groups. Many game developers,
285:
identified as V3.0. Thus it is not possible to differentiate the two versions using the version number alone.
635: 2580: 2665: 2615: 876:
The drive number identifies a drive mechanism attached to a disk unit's controller and is analogous to a
49: 2695: 134:. Thus, data transfer between Commodore 8-bit computers and their disk drives more closely resembles a 2285: 2116: 1185:
do not access the directory but actual files on one drive or the other that just happen to be named
794:
programs, this value is often referred to as LA (logical address), the abbreviation coming from the
337:), and if the directory listing is being viewed from BASIC, the portion of the file name beyond the 2791: 1049: 266:
Version 2.6 was by far the most commonly used and widely known DOS version, due to its use in the
2610: 2585: 1960: 538: 308: 131: 107: 42: 975:), the file is saved/loaded from the BASIC memory area (which, on the C64, starts by default at 694:
files if their data blocks and directory entries haven not yet been overwritten by other files.
2395: 1939: 1910: 1566:
Rename a file on the disk. Note that the new name comes first (except in the BASIC 3.0+ code)!
663: 2226: 2112: 299: 115: 103: 2262: 1613: 119: 87: 8: 2555: 877: 127: 74: 2535: 2530: 2375: 2267: 1677: 1078: 224: 135: 1902: 437:
In BASIC, the directory can be accessed as a non-executable pseudo-BASIC program with
2675: 2185: 2167: 2152: 1931: 1860:), drive memory manipulation and execution of program code on the drive's processor ( 1272: 791: 562: 1189:. Partial directories can be loaded by adding a colon and a template: for example, 122:
and executed there, CBM DOS is executed internally in the drive: the DOS resides in
813:
attached to the computer. Devices 0 through 3 address the keyboard, tape cassette,
298:
The 1541 Commodore floppy disk can contain up to 144 files in a flat namespace (no
123: 82: 64: 59: 26: 698:
are commonly used to insert banners or comment sections into a directory listing.
2425: 2099: 782: 718: 608:"load file" routine and used to determine the load address (they are stored in a 342: 247: 243: 197: 1444:
Commodore BASIC versions 4.0 and later provide a pseudo-variable referred to as
2380: 2195: 2129: 1996: 530: 378:. When the user moves the cursor to the beginning of the line, types the word 267: 259: 239: 235: 231: 220: 216: 209: 205: 201: 193: 189: 182: 175: 171: 164: 160: 2775: 2670: 2420: 1008: 622: 534: 504: 148: 2545: 2500: 2149:
Inside Commodore DOS. The Complete Guide to the 1541 Disk Operating System.
475: 271: 1532:
Delete a file from the disk (or multiple files, using wild card matching)
904:
hard disk subsystem, in which the drive number refers to "logical units" (
2690: 2355: 1416:
will hold the error number (if any; it will be zero if no error exists),
976: 884:
controller that is capable of controlling multiple mechanisms (e.g., the
667: 500: 332: 255:  3.1 – found in the built-in 1571 drive of C128DCR computers 2440: 2430: 2327: 2317: 2297: 979:
0801). If the secondary address is specified as a non-zero value (e.g.
901: 810: 790:
opened all program input and output procedures use the file number. In
676: 609: 37: 851:
parameter is officially referred to in Commodore documentation as the
2685: 2640: 2515: 2510: 2505: 2495: 2151:
DATAMOST, Inc & Reston Publishing Company, Inc. (Prentice-Hall).
1473: 786: 586: 570: 526: 324: 250: 565:
file is a data file that can be linearly read from start to finish.
2715: 2680: 2480: 2465: 2460: 2405: 2400: 2290: 1246: 1052:
to change the link address for the BASIC program after loading it.
920:
commands. File name specifiers can also be used here, for example,
795: 374:, which will then appear in the directory listing as, for example, 278: 152: 1967:. Peterborough, New Hampshire: CW Communications/Peterborough, Inc 658:) prepended to the file type in a directory listing (for example, 126:
chips inside the drive, and is run there by one or more dedicated
2730: 2700: 2655: 2630: 2565: 2560: 2550: 2455: 2445: 2435: 2415: 2385: 2360: 2337: 2332: 2322: 2247: 1432:
to which the error refers. If no error exists, the equivalent of
327:
hackers used some more clever custom directory entries as well.
2710: 2705: 2605: 2595: 2590: 2570: 2520: 2485: 2410: 2365: 2307: 2280: 2244: 2127:
Philip A. Slaymaker. "Eliminating SAVE@ and Other 1541 Bugs".
1673: 1004: 896: 892: 814: 605: 503:
0401 (1025), which is equivalent to the start of BASIC for the
1102:
commands will load that file rather than the first. (However,
2725: 2660: 2650: 2635: 2600: 2490: 2450: 2312: 2302: 1836:
There are also a command for seeking in RELative type files (
1276: 905: 574: 320: 303: 1424:
will represent the disk track where the error occurred, and
1147:
The directories of disks in two-drive units are accessed as
151:
serial (TALK/LISTEN) protocols; all others use the parallel
2720: 2645: 2625: 2575: 2540: 2390: 1316:
To retrieve and display the device status, one could code:
888: 881: 819: 763: 578: 2097:
Editors. "Save@: Gerry Neufield's Theory on an Old Bug".
2348: 1259:
drive number when saving, though it was later shown that
529:
and various third-party cartridges and extenders such as
859:, not to be confused with the device number), filename ( 307:
manage files. One popular trick, used, for example, by
525:
command overwrites the BASIC program in memory. The
118:, which are loaded from disk into the computer's own 1989: 1436:will be returned in the four variables. Note that 281:for the 1571 which fixed the relative file bug was 1217:the existing file. This was done by prepending an 777:, logically identifies the opened file within the 330:File names may contain a shifted space character ( 2162:Englisch, Lothar; Szczepanowski, Norbert (1984). 2039: 2037: 2773: 2225: 2070: 2043: 1985: 1983: 1981: 293: 1840:), several block-level direct-access commands ( 1420:will be a terse text description of the error, 867:, sequential in this example) and access mode ( 2073:"Save-With-Replace: Debugged At Last / Part 2" 2064: 2046:"Save With Replace: Debugged At Last / Part 1" 2034: 1144:will always load the first file on the disk.) 684: 31:Listing the directory of a 1541-formatted disk 2211: 2133:Vol. 7 № O2, September 1986, pp. 33–35. 1978: 891:controllers that were developed to work with 242:floppy drives (8280: 8-inch), as well as the 138:connection than typical disk/host transfers. 2147:Immers, Richard; Neufeld, Gerald G. (1984). 2008: 1901:Sturdivant, Jerry A. (February–March 1985). 1208: 1003:Load relocation was first introduced on the 841:often referred to as SA (secondary address). 912:Files can also be loaded and saved to with 2755: 2218: 2204: 2113:Excerpt of e-mail from Philip A. Slaymaker 1900: 2016:"The Great Commodore Save/Replace Debate" 687:could result in creation of splat files. 549:command that performs the same function. 467:in the case of a dual drive) followed by 1275:to the 1541 drive ROMs; readers with an 552:The following file types are supported: 1929: 781:operating system and is analogous to a 2774: 1680:tools of Microsoft operating systems. 1011:series did not support relocation, so 2199: 1958: 675:command to delete the file may cause 288: 2164:The Anatomy of the 1541 Disk Drive. 1909:. Vol. 4, no. 1. p.  1221:symbol to the file name during the 141: 13: 2071:Slaymaker, P. A. (November 1985). 1990:Whittern, Charles H. (July 1985). 1930:Brannon, Charles (December 1983). 1612:Reset the drive and read the disk 1283: 14: 2803: 2044:Slaymaker, P. A. (October 1985). 1470:BASIC 1.x and 2.x Implementation 196:including the one built into the 2754: 2744: 2743: 2103:№ 9, December 1985/January 1986. 1876:) and user-definable functions ( 1289:secondary address, for example: 382:over the file size, and presses 230:  3.0 – found in the 215:  2.7 – found in the 188:  2.6 – found in the 181:  2.5 – found in the 170:  2.0 – found in the 159:  1.0 – found in the 25: 2121: 1786: 1683: 1619: 1456: 1320: 1293: 1230: 1190: 1163: 1148: 1124: 1103: 1082: 1056: 1027: 1012: 980: 961: 940: 921: 730: 511: 479: 453: 438: 434:their code and tamper with it. 425: 419: 387: 2106: 2091: 1952: 1923: 1894: 712: 1: 1992:"SAVE with Replace Exposed!!" 1887: 935:saves the BASIC program to a 759:The parameters following the 753:"0:ADDRESSBOOK,S,W" 654:The presence of an asterisk ( 510:Viewing the directory with a 294:1541 directory and file types 149:serial IEEE-488 bus (IEC Bus) 1428:will be the sector on track 945:"0:FILE,SEQ,WRITE" 7: 2286:Multitasking MS-DOS 4.0/4.1 2022:. February 1985. p. 10 430:the program automatically. 386:, BASIC interprets that as 10: 2808: 2696:Technical Support SuperDOS 1479:BASIC 3.0+ Implementation 1451:73,CBM DOS V2.6 1541,00,00 1229:operation - for instance, 638:' "VLIR" files show up as 258:10.0 – found in the 2739: 2473: 2346: 2243: 2234: 1209:The save-with-replace bug 705:after them (for example, 311:, was to add files named 81: 70: 58: 48: 36: 24: 1050:machine language monitor 809:, identifies a specific 625:to any part of the file. 2180:Lundahl, Reijo (1986). 1235:"@MY PROGRAM" 539:The Final Cartridge III 309:The Final Cartridge III 43:Commodore International 20:Commodore DOS / CBM DOS 2787:Disk operating systems 2396:Datapac System Manager 2227:Disk operating systems 1965:RUN Special Issue 1987 1938:. No. 6. p.  1412:In the above example, 836:, it can only use the 664:block availability map 262:(3½-inch) floppy drive 2782:Commodore 64 software 1852:), block management ( 685:save-with-replace bug 585:kernel call found in 376:32 "PROGRAM",8,1 PRG 104:disk operating system 1959:Grace, Paul (1986). 1907:Commodore Power/Play 1195:"$ 0:K*=P" 828:This parameter, the 805:This parameter, the 773:This parameter, the 114:. Unlike most other 2556:DEC BATCH-11/DOS-11 2235:MS-DOS, IBM PC DOS, 1449:a 1541 will return 939:(program) file and 878:logical unit number 849:"0:ADDRESSBOOK,S,W" 392:"PROGRAM" 323:group members, and 147:Commodore's unique 21: 2536:Concurrent DOS V60 2531:Concurrent DOS 68K 2376:Concurrent CP/M-86 2237:compatible systems 1936:COMPUTE!'s Gazette 1664:(BASIC 7.0+ only) 589:operating systems. 313:"----------------" 289:Technical overview 277:Note: The revised 136:local area network 19: 2769: 2768: 2276: 2275: 2115:also archived at 1834: 1833: 1740:OPEN 15,8,15,"C0: 1570:OPEN 15,8,15,"R0: 1536:OPEN 15,8,15,"S0: 1491:OPEN 15,8,15,"N0: 838:secondary address 830:secondary address 792:assembly language 93: 92: 2799: 2758: 2757: 2747: 2746: 2241: 2240: 2220: 2213: 2206: 2197: 2196: 2179: 2134: 2125: 2119: 2110: 2104: 2095: 2089: 2088: 2086: 2084: 2068: 2062: 2061: 2059: 2057: 2041: 2032: 2031: 2029: 2027: 2012: 2006: 2005: 1987: 1976: 1975: 1973: 1972: 1961:"A bizarre dude" 1956: 1950: 1949: 1947: 1946: 1927: 1921: 1920: 1918: 1917: 1898: 1883: 1879: 1875: 1871: 1867: 1863: 1859: 1855: 1851: 1847: 1843: 1839: 1830: 1825: 1820: 1819: 1816: 1813: 1810: 1809:"D1=0" 1807: 1804: 1801: 1798: 1795: 1792: 1789: 1774: 1761: 1749: 1727: 1722: 1717: 1716: 1713: 1710: 1707: 1704: 1701: 1698: 1695: 1692: 1689: 1686: 1663: 1658: 1653: 1652: 1649: 1646: 1643: 1640: 1637: 1634: 1631: 1628: 1625: 1622: 1604: 1591: 1579: 1558: 1549: 1541: 1524: 1512: 1500: 1461: 1460: 1452: 1447: 1439: 1435: 1431: 1427: 1423: 1419: 1415: 1408: 1407: 1404: 1401: 1398: 1395: 1392: 1389: 1386: 1383: 1380: 1377: 1374: 1371: 1368: 1365: 1362: 1359: 1356: 1353: 1350: 1347: 1344: 1341: 1338: 1335: 1332: 1329: 1326: 1323: 1312: 1311: 1308: 1305: 1302: 1299: 1296: 1267: 1258: 1243: 1242: 1239: 1236: 1233: 1228: 1224: 1220: 1216: 1203: 1202: 1199: 1196: 1193: 1188: 1184: 1180: 1176: 1175: 1172: 1169: 1166: 1161: 1160: 1157: 1154: 1151: 1143: 1142: 1139: 1136: 1133: 1130: 1127: 1122: 1121: 1118: 1115: 1112: 1109: 1106: 1101: 1100: 1097: 1094: 1091: 1088: 1085: 1075: 1074: 1071: 1068: 1065: 1062: 1059: 1046: 1045: 1042: 1039: 1036: 1033: 1032:"FILE" 1030: 1025: 1024: 1021: 1018: 1017:"FILE" 1015: 999: 998: 995: 992: 989: 986: 985:"FILE" 983: 974: 973: 970: 967: 966:"FILE" 964: 959: 958: 955: 952: 949: 946: 943: 938: 934: 933: 930: 927: 926:"FILE" 924: 919: 915: 870: 866: 862: 858: 850: 766:are as follows: 762: 755: 754: 751: 748: 745: 742: 739: 736: 733: 708: 704: 701:File types with 697: 692: 682: 674: 661: 657: 647: 641: 630: 617: 604:are read by the 603: 599: 594: 584: 568: 558: 548: 544: 524: 523: 520: 517: 514: 498: 497: 494: 491: 488: 485: 482: 470: 466: 465: 462: 459: 456: 451: 450: 447: 444: 441: 429: 428: 423: 422: 409: 408: 405: 402: 399: 396: 393: 390: 381: 377: 340: 336: 318: 314: 142:CBM DOS versions 98:, also known as 29: 22: 18: 16:Operating system 2807: 2806: 2802: 2801: 2800: 2798: 2797: 2796: 2792:VIC-20 software 2772: 2771: 2770: 2765: 2735: 2474:Other platforms 2469: 2426:NetWare PalmDOS 2342: 2272: 2236: 2230: 2224: 2194: 2177: 2138: 2137: 2126: 2122: 2111: 2107: 2096: 2092: 2082: 2080: 2069: 2065: 2055: 2053: 2042: 2035: 2025: 2023: 2014: 2013: 2009: 1988: 1979: 1970: 1968: 1957: 1953: 1944: 1942: 1928: 1924: 1915: 1913: 1899: 1895: 1890: 1881: 1877: 1873: 1869: 1865: 1861: 1857: 1853: 1849: 1845: 1841: 1837: 1829:BACKUP D0 TO D1 1828: 1823: 1817: 1814: 1811: 1808: 1805: 1802: 1799: 1796: 1793: 1790: 1787: 1764: 1752: 1739: 1725: 1720: 1714: 1711: 1708: 1706:"V0:" 1705: 1702: 1699: 1696: 1693: 1690: 1687: 1684: 1661: 1656: 1650: 1647: 1644: 1642:"I0:" 1641: 1638: 1635: 1632: 1629: 1626: 1623: 1620: 1594: 1582: 1569: 1552: 1544: 1535: 1515: 1503: 1490: 1476:Implementation 1459: 1450: 1445: 1437: 1433: 1429: 1425: 1421: 1417: 1413: 1405: 1402: 1399: 1396: 1393: 1390: 1387: 1384: 1381: 1378: 1375: 1372: 1369: 1366: 1363: 1360: 1357: 1354: 1351: 1348: 1345: 1342: 1339: 1336: 1333: 1330: 1327: 1324: 1321: 1309: 1306: 1303: 1300: 1297: 1294: 1286: 1284:Command channel 1265: 1256: 1240: 1237: 1234: 1231: 1226: 1222: 1218: 1214: 1211: 1200: 1197: 1194: 1191: 1186: 1182: 1178: 1173: 1170: 1168:"$ 1" 1167: 1164: 1158: 1155: 1153:"$ 0" 1152: 1149: 1140: 1137: 1134: 1131: 1128: 1125: 1119: 1116: 1113: 1110: 1108:"0:*" 1107: 1104: 1098: 1095: 1092: 1089: 1086: 1083: 1072: 1069: 1066: 1063: 1060: 1057: 1043: 1040: 1037: 1034: 1031: 1028: 1022: 1019: 1016: 1013: 996: 993: 990: 987: 984: 981: 971: 968: 965: 962: 956: 953: 950: 947: 944: 941: 936: 931: 928: 925: 922: 917: 913: 868: 864: 860: 856: 848: 783:file descriptor 760: 752: 749: 746: 743: 740: 737: 734: 731: 715: 706: 702: 695: 690: 680: 672: 659: 655: 645: 639: 628: 615: 601: 597: 592: 582: 566: 556: 546: 542: 521: 518: 515: 512: 495: 492: 489: 486: 483: 480: 468: 463: 460: 458:"$ 1" 457: 454: 448: 445: 443:"$ 0" 442: 439: 426: 420: 417: 413: 406: 403: 400: 397: 394: 391: 388: 385: 379: 375: 373: 371: 368: 365: 362: 358: 354: 350: 338: 331: 316: 312: 296: 291: 144: 112:8-bit computers 32: 17: 12: 11: 5: 2805: 2795: 2794: 2789: 2784: 2767: 2766: 2764: 2763: 2752: 2740: 2737: 2736: 2734: 2733: 2728: 2723: 2718: 2713: 2708: 2703: 2698: 2693: 2688: 2683: 2678: 2673: 2668: 2663: 2658: 2653: 2648: 2643: 2638: 2633: 2628: 2623: 2618: 2613: 2608: 2603: 2598: 2593: 2588: 2583: 2578: 2573: 2568: 2563: 2558: 2553: 2548: 2543: 2538: 2533: 2528: 2523: 2518: 2513: 2508: 2503: 2498: 2493: 2488: 2483: 2477: 2475: 2471: 2470: 2468: 2463: 2458: 2453: 2448: 2443: 2438: 2433: 2428: 2423: 2418: 2413: 2408: 2403: 2398: 2393: 2388: 2383: 2381:Concurrent DOS 2378: 2373: 2368: 2363: 2358: 2353: 2351: 2344: 2343: 2341: 2340: 2335: 2330: 2325: 2320: 2315: 2310: 2305: 2300: 2295: 2294: 2293: 2288: 2277: 2274: 2273: 2271: 2270: 2265: 2260: 2255: 2250: 2238: 2232: 2231: 2223: 2222: 2215: 2208: 2200: 2193: 2192: 2182:1541-Levyasema 2175: 2160: 2144: 2143: 2142: 2136: 2135: 2130:The Transactor 2120: 2105: 2090: 2063: 2033: 2007: 1997:The Transactor 1977: 1951: 1932:"Horizons: 64" 1922: 1892: 1891: 1889: 1886: 1870:MEMORY-EXECUTE 1854:BLOCK-ALLOCATE 1850:BUFFER-POINTER 1832: 1831: 1826: 1821: 1784: 1780: 1776: 1775: 1762: 1750: 1737: 1733: 1729: 1728: 1723: 1718: 1681: 1670: 1666: 1665: 1659: 1654: 1617: 1610: 1606: 1605: 1592: 1580: 1567: 1564: 1560: 1559: 1550: 1542: 1533: 1530: 1526: 1525: 1513: 1501: 1488: 1485: 1481: 1480: 1477: 1471: 1468: 1465: 1458: 1455: 1410: 1409: 1314: 1313: 1285: 1282: 1210: 1207: 1129:":*" 910: 909: 906:virtual drives 873: 872: 863:), file type ( 853:command string 845: 844:COMMAND STRING 842: 826: 823: 803: 800: 771: 757: 756: 714: 711: 652: 651: 648: 643: 631: 626: 618: 613: 595: 590: 559: 531:Epyx Fast Load 516:"$ " 484:"$ " 415: 411: 383: 369: 366: 363: 360: 356: 352: 348: 346: 300:subdirectories 295: 292: 290: 287: 264: 263: 256: 253: 228: 213: 186: 179: 168: 143: 140: 91: 90: 85: 79: 78: 72: 68: 67: 62: 56: 55: 52: 50:Latest release 46: 45: 40: 34: 33: 30: 15: 9: 6: 4: 3: 2: 2804: 2793: 2790: 2788: 2785: 2783: 2780: 2779: 2777: 2762: 2753: 2751: 2742: 2741: 2738: 2732: 2729: 2727: 2724: 2722: 2719: 2717: 2714: 2712: 2709: 2707: 2704: 2702: 2699: 2697: 2694: 2692: 2689: 2687: 2684: 2682: 2679: 2677: 2674: 2672: 2671:Sinclair QDOS 2669: 2667: 2664: 2662: 2659: 2657: 2654: 2652: 2649: 2647: 2644: 2642: 2639: 2637: 2634: 2632: 2629: 2627: 2624: 2622: 2619: 2617: 2614: 2612: 2609: 2607: 2604: 2602: 2599: 2597: 2594: 2592: 2589: 2587: 2584: 2582: 2579: 2577: 2574: 2572: 2569: 2567: 2564: 2562: 2559: 2557: 2554: 2552: 2549: 2547: 2544: 2542: 2539: 2537: 2534: 2532: 2529: 2527: 2526:Commodore DOS 2524: 2522: 2519: 2517: 2514: 2512: 2509: 2507: 2504: 2502: 2499: 2497: 2494: 2492: 2489: 2487: 2484: 2482: 2479: 2478: 2476: 2472: 2467: 2464: 2462: 2459: 2457: 2454: 2452: 2449: 2447: 2444: 2442: 2439: 2437: 2434: 2432: 2429: 2427: 2424: 2422: 2421:Multiuser DOS 2419: 2417: 2414: 2412: 2409: 2407: 2404: 2402: 2399: 2397: 2394: 2392: 2389: 2387: 2384: 2382: 2379: 2377: 2374: 2372: 2369: 2367: 2364: 2362: 2359: 2357: 2354: 2352: 2350: 2345: 2339: 2336: 2334: 2331: 2329: 2326: 2324: 2321: 2319: 2316: 2314: 2311: 2309: 2306: 2304: 2301: 2299: 2296: 2292: 2289: 2287: 2284: 2283: 2282: 2279: 2278: 2269: 2266: 2264: 2261: 2259: 2256: 2254: 2251: 2249: 2246: 2245: 2242: 2239: 2233: 2228: 2221: 2216: 2214: 2209: 2207: 2202: 2201: 2198: 2191: 2190:951-35-3206-2 2187: 2183: 2176: 2173: 2172:0-916439-01-1 2169: 2165: 2161: 2158: 2157:0-8359-3091-2 2154: 2150: 2146: 2145: 2140: 2139: 2132: 2131: 2124: 2118: 2117:Groups.Google 2114: 2109: 2102: 2101: 2094: 2079:. p. 111 2078: 2074: 2067: 2051: 2047: 2040: 2038: 2021: 2017: 2011: 2003: 1999: 1998: 1993: 1986: 1984: 1982: 1966: 1962: 1955: 1941: 1937: 1933: 1926: 1912: 1908: 1904: 1897: 1893: 1885: 1874:BLOCK-EXECUTE 1827: 1822: 1785: 1781: 1778: 1777: 1772: 1768: 1767:existing name 1763: 1760: 1759:existing name 1756: 1751: 1747: 1746:existing name 1743: 1738: 1734: 1731: 1730: 1724: 1719: 1682: 1679: 1675: 1671: 1668: 1667: 1660: 1655: 1618: 1615: 1611: 1608: 1607: 1602: 1598: 1593: 1590: 1586: 1581: 1577: 1573: 1568: 1565: 1562: 1561: 1556: 1551: 1548: 1543: 1539: 1534: 1531: 1528: 1527: 1523: 1519: 1514: 1511: 1507: 1502: 1498: 1494: 1489: 1486: 1483: 1482: 1478: 1475: 1472: 1469: 1466: 1463: 1462: 1454: 1442: 1319: 1318: 1317: 1292: 1291: 1290: 1281: 1278: 1274: 1269: 1262: 1252: 1249: 1248: 1206: 1145: 1087:"*" 1080: 1061:"*" 1053: 1051: 1010: 1009:Commodore PET 1006: 1001: 978: 907: 903: 898: 894: 890: 887: 883: 879: 875: 874: 854: 846: 843: 839: 835: 831: 827: 824: 821: 816: 812: 808: 807:device number 804: 801: 797: 793: 788: 784: 780: 776: 772: 769: 768: 767: 765: 729: 728: 727: 723: 720: 710: 699: 688: 686: 678: 669: 665: 649: 644: 637: 632: 627: 624: 623:random access 619: 614: 611: 610:little endian 607: 596: 591: 588: 580: 576: 572: 564: 560: 555: 554: 553: 550: 540: 536: 535:Action Replay 532: 528: 508: 506: 505:Commodore PET 502: 477: 472: 435: 431: 347:SAVE "PROGRAM 344: 334: 328: 326: 322: 310: 305: 301: 286: 284: 280: 275: 273: 269: 261: 257: 254: 252: 249: 245: 241: 237: 233: 229: 227:floppy drives 226: 223:(+"lp"), and 222: 218: 214: 212:floppy drives 211: 208:(+"lp"), and 207: 203: 199: 195: 191: 187: 185:floppy drives 184: 180: 178:floppy drives 177: 173: 169: 167:floppy drives 166: 162: 158: 157: 156: 154: 150: 139: 137: 133: 129: 125: 121: 117: 113: 109: 105: 101: 97: 96:Commodore DOS 89: 86: 84: 80: 76: 73: 69: 66: 63: 61: 57: 53: 51: 47: 44: 41: 39: 35: 28: 23: 2546:Cromemco DOS 2525: 2501:Apple ProDOS 2184:. Amersoft. 2181: 2178:(in Finnish) 2163: 2148: 2128: 2123: 2108: 2098: 2093: 2081:. Retrieved 2076: 2066: 2054:. Retrieved 2052:. p. 79 2049: 2024:. Retrieved 2019: 2010: 2001: 1995: 1969:. Retrieved 1964: 1954: 1943:. Retrieved 1935: 1925: 1914:. Retrieved 1906: 1903:"Quick Load" 1896: 1862:MEMORY-WRITE 1835: 1770: 1766: 1758: 1754: 1745: 1741: 1600: 1596: 1588: 1584: 1575: 1571: 1554: 1546: 1537: 1521: 1517: 1509: 1505: 1496: 1492: 1467:Description 1457:DOS commands 1443: 1411: 1315: 1287: 1270: 1260: 1253: 1245: 1212: 1146: 1055:The command 1054: 1002: 911: 852: 837: 833: 829: 806: 778: 774: 758: 724: 716: 700: 689: 653: 551: 509: 476:Commodore 64 473: 436: 432: 329: 297: 282: 276: 265: 145: 99: 95: 94: 60:Available in 2691:SpartaDOS X 1866:MEMORY-READ 1846:BLOCK-WRITE 1609:Initialize 1434:00,OK,00,00 861:ADDRESSBOOK 834:file number 775:file number 713:File access 478:, entering 270:as part of 251:hard drives 234:, external 88:Proprietary 2776:Categories 2441:PC-MOS/386 2431:Novell DOS 2328:SISNE plus 2318:Novell DOS 2298:IBM PC DOS 2258:Comparison 2083:30 October 2056:16 October 1971:2018-10-07 1945:2018-10-07 1916:2018-10-07 1888:References 1858:BLOCK-FREE 1842:BLOCK-READ 1779:Duplicate 1748:":CLOSE 15 1578:":CLOSE 15 1540:":CLOSE 15 1522:identifier 1510:identifier 1499:":CLOSE 15 1497:identifier 902:Lt. Kernal 811:peripheral 779:computer's 677:filesystem 563:sequential 106:used with 2686:SpartaDOS 2641:NewDos/80 2516:Atari TOS 2511:Atari DOS 2506:Apple SOS 2496:Apple DOS 2026:6 October 1669:Validate 1555:file name 1553:SCRATCH " 1547:file name 1538:file name 1518:disk name 1506:disk name 1493:disk name 1474:DOS Wedge 799:example.) 787:UNIX-like 719:BASIC ROM 696:DEL files 587:UNIX-like 571:flat file 543:DIRECTORY 527:DOS Wedge 357:Commodore 325:demoscene 274:systems. 108:Commodore 102:, is the 71:Platforms 38:Developer 2750:Category 2716:TurboDOS 2681:SmartDOS 2621:MicroDOS 2481:AmigaDOS 2466:TurboDOS 2461:Towns OS 2406:K8918-OS 2401:DOS Plus 2291:MS-DOS 7 2263:Commands 2253:Timeline 2077:Compute! 2050:Compute! 2020:Compute! 2004:(1): 20. 1771:new name 1755:new name 1742:new name 1678:ScanDisk 1601:new name 1597:old name 1595:RENAME " 1589:old name 1585:new name 1576:old name 1572:new name 1529:Scratch 1516:HEADER " 1247:Compute! 1079:wildcard 796:mnemonic 681:validate 612:format). 416:RUN/STOP 315:of type 279:firmware 225:SFD-1001 153:IEEE-488 128:MOS 6502 75:MOS 6502 2731:Z80-RIO 2701:Top-DOS 2656:RealDOS 2631:MSX-DOS 2566:DOS/360 2561:DIP DOS 2551:CSI-DOS 2456:SCP1700 2446:REAL/32 2436:OpenDOS 2416:MP/M-86 2386:CP/M-86 2361:4690 OS 2356:4680 OS 2338:FreeDOS 2333:PTS-DOS 2323:ROM-DOS 1838:RECORD# 1726:COLLECT 1563:Rename 1464:Command 1273:patches 1215:SCRATCH 707:PRG< 673:scratch 668:buffers 547:CATALOG 474:On the 414:– 412:⇧ Shift 359:– 351:– 349:⇧ Shift 317:DEL< 130:family 100:CBM DOS 83:License 65:English 2759:  2748:  2711:TRSDOS 2706:TR-DOS 2606:iS-DOS 2596:IDEDOS 2591:GEMDOS 2571:DOS XL 2521:BW-DOS 2486:AMSDOS 2411:FlexOS 2366:86-DOS 2347:Other 2308:DR-DOS 2281:MS-DOS 2188:  2170:  2155:  1674:CHKDSK 1662:DCLEAR 1599:" TO " 1438:INPUT# 1343:INPUT# 1183:"1:$ " 1179:"0:$ " 1005:VIC-20 897:ST-506 893:ST-412 815:RS-232 642:files. 606:kernal 537:, and 384:RETURN 355:  238:, and 77:family 2726:Z-DOS 2661:SB-80 2651:PTDOS 2636:MyDOS 2601:IMDOS 2491:ANDOS 2451:SB-86 2313:H-DOS 2303:DOS/V 2268:Games 2229:(DOS) 2141:Notes 1882:& 1824:@D1=0 1815:CLOSE 1765:COPY" 1732:Copy 1712:CLOSE 1648:CLOSE 1403:CLOSE 1376:PRINT 1277:EPROM 880:in a 583:lseek 575:Linux 372:",8,1 353:space 343:BASIC 321:warez 304:bytes 198:SX-64 116:DOSes 2761:List 2721:UDOS 2676:RDOS 2646:OS/M 2626:MP/M 2616:MDOS 2611:ISIS 2586:FLEX 2576:Edos 2541:CP/M 2391:CP/K 2371:ADOS 2186:ISBN 2168:ISBN 2153:ISBN 2100:Info 2085:2013 2058:2013 2028:2013 1880:and 1878:USER 1788:OPEN 1769:"TO" 1753:@C0: 1721:@V0: 1685:OPEN 1657:@I0: 1621:OPEN 1583:@R0: 1545:@S0: 1504:@N0: 1484:New 1446:DS$ 1322:OPEN 1295:OPEN 1232:SAVE 1227:SAVE 1223:OPEN 1192:LOAD 1187:"$ " 1181:and 1165:LOAD 1162:and 1150:LOAD 1126:LOAD 1105:LOAD 1084:LOAD 1058:LOAD 1029:LOAD 1026:and 1014:LOAD 982:LOAD 963:LOAD 942:SAVE 923:SAVE 918:SAVE 916:and 914:LOAD 889:SASI 886:OMTI 882:SCSI 847:The 820:GPIB 764:verb 761:OPEN 732:OPEN 703:< 691:*DEL 660:*SEQ 636:GEOS 579:UNIX 513:LOAD 481:LOAD 469:LIST 455:LOAD 452:(or 440:LOAD 424:and 421:LOAD 389:LOAD 380:LOAD 339:$ A0 283:also 268:1541 260:1581 248:9090 246:and 244:9060 240:8280 236:1571 232:1570 221:8250 217:8050 210:4031 206:2031 202:1551 194:1541 190:1540 183:8050 176:3040 174:and 172:4040 165:3040 163:and 161:2040 132:CPUs 54:10.0 2666:SCP 2581:EOS 2349:x86 2248:API 1940:178 1757:=0: 1744:=0: 1614:BAM 1418:E$ 1385:E$ 1358:E$ 1261:any 1225:or 1123:or 937:PRG 785:in 646:DEL 640:USR 629:USR 616:REL 602:PRG 598:PRG 593:PRG 577:or 573:in 567:SEQ 557:SEQ 545:or 427:RUN 418:to 407:... 272:C64 124:ROM 120:RAM 110:'s 2778:: 2075:. 2048:. 2036:^ 2018:. 2000:. 1994:. 1980:^ 1963:. 1934:. 1911:54 1905:. 1872:, 1868:, 1864:, 1856:, 1848:, 1844:, 1818:15 1803:15 1791:15 1715:15 1700:15 1688:15 1651:15 1636:15 1624:15 1520:", 1337:15 1310:15 1266:1: 1257:0: 1177:. 977:$ 857:0: 561:A 533:, 501:$ 335:A0 333:$ 219:, 204:, 200:, 192:, 155:. 2219:e 2212:t 2205:v 2174:. 2159:. 2087:. 2060:. 2030:. 2002:6 1974:. 1948:. 1919:. 1812:: 1806:, 1800:, 1797:8 1794:, 1773:" 1709:: 1703:, 1697:, 1694:8 1691:, 1676:/ 1645:: 1639:, 1633:, 1630:8 1627:, 1603:" 1587:= 1574:= 1557:" 1508:, 1495:, 1430:T 1426:S 1422:T 1414:E 1406:1 1400:: 1397:S 1394:, 1391:T 1388:, 1382:, 1379:E 1373:: 1370:S 1367:, 1364:T 1361:, 1355:, 1352:E 1349:, 1346:1 1340:: 1334:, 1331:8 1328:, 1325:1 1307:, 1304:8 1301:, 1298:1 1241:8 1238:, 1219:@ 1201:8 1198:, 1174:8 1171:, 1159:8 1156:, 1141:1 1138:, 1135:8 1132:, 1120:1 1117:, 1114:8 1111:, 1099:1 1096:, 1093:8 1090:, 1073:1 1070:, 1067:8 1064:, 1044:1 1041:, 1038:8 1035:, 1023:8 1020:, 997:1 994:, 991:8 988:, 972:8 969:, 957:1 954:, 951:8 948:, 932:8 929:, 895:/ 869:W 865:S 825:4 802:8 770:3 750:, 747:4 744:, 741:8 738:, 735:3 656:* 522:8 519:, 496:1 493:, 490:8 487:, 464:8 461:, 449:8 446:, 404:1 401:, 398:8 395:, 370:E 367:D 364:U 361:D

Index


Developer
Commodore International
Latest release
Available in
English
MOS 6502
License
Proprietary
disk operating system
Commodore
8-bit computers
DOSes
RAM
ROM
MOS 6502
CPUs
local area network
serial IEEE-488 bus (IEC Bus)
IEEE-488
2040
3040
4040
3040
8050
1540
1541
SX-64
1551
2031

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.