CINXE.COM

Commodore DOS - Wikipedia

<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-available" lang="en" dir="ltr"> <head> <meta charset="UTF-8"> <title>Commodore DOS - Wikipedia</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-available";var cookie=document.cookie.match(/(?:^|; )enwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy", "wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"169516c1-5e88-4b06-bf06-6bc05df85741","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Commodore_DOS","wgTitle":"Commodore DOS","wgCurRevisionId":1253508659,"wgRevisionId":1253508659,"wgArticleId":1094698,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Articles with short description","Short description is different from Wikidata","Articles with Finnish-language sources (fi)","Commodore 64 software","Disk operating systems","VIC-20 software"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"Commodore_DOS","wgRelevantArticleId":1094698,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgNoticeProject": "wikipedia","wgCiteReferencePreviewsActive":false,"wgFlaggedRevsParams":{"tags":{"status":{"levels":1}}},"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":false,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":30000,"wgRelatedArticlesCompat":[],"wgCentralAuthMobileDomain":false,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q353116","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false, "wgGELevelingUpEnabledForUser":false};RLSTATE={"ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.cite.styles":"ready","ext.pygments":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","jquery.makeCollapsible.styles":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["ext.cite.ux-enhancements","ext.pygments.view","site","mediawiki.page.ready","jquery.makeCollapsible","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.ReferenceTooltips","ext.gadget.switcher","ext.urlShortener.toolbar","ext.centralauth.centralautologin","mmv.bootstrap","ext.popups","ext.visualEditor.desktopArticleTarget.init", "ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.interface","ext.cx.eventlogging.campaigns","ext.cx.uls.quick.actions","wikibase.client.vector-2022","ext.checkUser.clientHints","ext.growthExperiments.SuggestedEditSession","wikibase.sidebar.tracking"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=en&amp;modules=ext.cite.styles%7Cext.pygments%2CwikimediaBadges%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediamessages.styles%7Cjquery.makeCollapsible.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&amp;only=styles&amp;skin=vector-2022"> <script async="" src="/w/load.php?lang=en&amp;modules=startup&amp;only=scripts&amp;raw=1&amp;skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=en&amp;modules=site.styles&amp;only=styles&amp;skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.4"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/2/2e/Commodore64_directory_listing_16.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="903"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/2/2e/Commodore64_directory_listing_16.png"> <meta property="og:image:width" content="800"> <meta property="og:image:height" content="602"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/thumb/2/2e/Commodore64_directory_listing_16.png/640px-Commodore64_directory_listing_16.png"> <meta property="og:image:width" content="640"> <meta property="og:image:height" content="482"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="Commodore DOS - Wikipedia"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//en.m.wikipedia.org/wiki/Commodore_DOS"> <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/w/index.php?title=Commodore_DOS&amp;action=edit"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikipedia (en)"> <link rel="EditURI" type="application/rsd+xml" href="//en.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://en.wikipedia.org/wiki/Commodore_DOS"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en"> <link rel="alternate" type="application/atom+xml" title="Wikipedia Atom feed" href="/w/index.php?title=Special:RecentChanges&amp;feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="//login.wikimedia.org"> </head> <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-Commodore_DOS rootpage-Commodore_DOS skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Jump to content</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Main menu" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Main menu</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Main menu</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">hide</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navigation </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Main_Page" title="Visit the main page [z]" accesskey="z"><span>Main page</span></a></li><li id="n-contents" class="mw-list-item"><a href="/wiki/Wikipedia:Contents" title="Guides to browsing Wikipedia"><span>Contents</span></a></li><li id="n-currentevents" class="mw-list-item"><a href="/wiki/Portal:Current_events" title="Articles related to current events"><span>Current events</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Special:Random" title="Visit a randomly selected article [x]" accesskey="x"><span>Random article</span></a></li><li id="n-aboutsite" class="mw-list-item"><a href="/wiki/Wikipedia:About" title="Learn about Wikipedia and how it works"><span>About Wikipedia</span></a></li><li id="n-contactpage" class="mw-list-item"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us" title="How to contact Wikipedia"><span>Contact us</span></a></li> </ul> </div> </div> <div id="p-interaction" class="vector-menu mw-portlet mw-portlet-interaction" > <div class="vector-menu-heading"> Contribute </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-help" class="mw-list-item"><a href="/wiki/Help:Contents" title="Guidance on how to use and edit Wikipedia"><span>Help</span></a></li><li id="n-introduction" class="mw-list-item"><a href="/wiki/Help:Introduction" title="Learn how to edit Wikipedia"><span>Learn to edit</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikipedia:Community_portal" title="The hub for editors"><span>Community portal</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Special:RecentChanges" title="A list of recent changes to Wikipedia [r]" accesskey="r"><span>Recent changes</span></a></li><li id="n-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_upload_wizard" title="Add images or other media for use on Wikipedia"><span>Upload file</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Main_Page" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="Wikipedia" src="/static/images/mobile/copyright/wikipedia-wordmark-en.svg" style="width: 7.5em; height: 1.125em;"> <img class="mw-logo-tagline" alt="The Free Encyclopedia" src="/static/images/mobile/copyright/wikipedia-tagline-en.svg" width="117" height="13" style="width: 7.3125em; height: 0.8125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Special:Search" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Search Wikipedia [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search Wikipedia" aria-label="Search Wikipedia" autocapitalize="sentences" title="Search Wikipedia [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Personal tools"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Change the appearance of the page&#039;s font size, width, and color" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Appearance" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Appearance</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&amp;utm_medium=sidebar&amp;utm_campaign=C13_en.wikipedia.org&amp;uselang=en" class=""><span>Donate</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:CreateAccount&amp;returnto=Commodore+DOS" title="You are encouraged to create an account and log in; however, it is not mandatory" class=""><span>Create account</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:UserLogin&amp;returnto=Commodore+DOS" title="You&#039;re encouraged to log in; however, it&#039;s not mandatory. [o]" accesskey="o" class=""><span>Log in</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="Log in and more options" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Personal tools" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Personal tools</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="User menu" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&amp;utm_medium=sidebar&amp;utm_campaign=C13_en.wikipedia.org&amp;uselang=en"><span>Donate</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:CreateAccount&amp;returnto=Commodore+DOS" title="You are encouraged to create an account and log in; however, it is not mandatory"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Create account</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:UserLogin&amp;returnto=Commodore+DOS" title="You&#039;re encouraged to log in; however, it&#039;s not mandatory. [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Log in</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Pages for logged out editors <a href="/wiki/Help:Introduction" aria-label="Learn more about editing"><span>learn more</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Special:MyContributions" title="A list of edits made from this IP address [y]" accesskey="y"><span>Contributions</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Special:MyTalk" title="Discussion about edits from this IP address [n]" accesskey="n"><span>Talk</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="Contents" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Contents</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">hide</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">(Top)</div> </a> </li> <li id="toc-CBM_DOS_versions" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#CBM_DOS_versions"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>CBM DOS versions</span> </div> </a> <ul id="toc-CBM_DOS_versions-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Technical_overview" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Technical_overview"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>Technical overview</span> </div> </a> <button aria-controls="toc-Technical_overview-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Technical overview subsection</span> </button> <ul id="toc-Technical_overview-sublist" class="vector-toc-list"> <li id="toc-1541_directory_and_file_types" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#1541_directory_and_file_types"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.1</span> <span>1541 directory and file types</span> </div> </a> <ul id="toc-1541_directory_and_file_types-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-File_access" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#File_access"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.2</span> <span>File access</span> </div> </a> <ul id="toc-File_access-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-The_save-with-replace_bug" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#The_save-with-replace_bug"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.3</span> <span>The save-with-replace bug</span> </div> </a> <ul id="toc-The_save-with-replace_bug-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Command_channel" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Command_channel"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.4</span> <span>Command channel</span> </div> </a> <ul id="toc-Command_channel-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-DOS_commands" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#DOS_commands"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>DOS commands</span> </div> </a> <ul id="toc-DOS_commands-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-References" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#References"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>References</span> </div> </a> <ul id="toc-References-sublist" class="vector-toc-list"> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Commodore DOS</span></h1> <div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" > <input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="Go to an article in another language. Available in 6 languages" > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-6" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span> <span class="vector-dropdown-label-text">6 languages</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-de mw-list-item"><a href="https://de.wikipedia.org/wiki/Commodore_DOS" title="Commodore DOS – German" lang="de" hreflang="de" data-title="Commodore DOS" data-language-autonym="Deutsch" data-language-local-name="German" class="interlanguage-link-target"><span>Deutsch</span></a></li><li class="interlanguage-link interwiki-es mw-list-item"><a href="https://es.wikipedia.org/wiki/Commodore_DOS" title="Commodore DOS – Spanish" lang="es" hreflang="es" data-title="Commodore DOS" data-language-autonym="Español" data-language-local-name="Spanish" class="interlanguage-link-target"><span>Español</span></a></li><li class="interlanguage-link interwiki-ko mw-list-item"><a href="https://ko.wikipedia.org/wiki/%EC%BD%94%EB%AA%A8%EB%8F%84%EC%96%B4_%EB%8F%84%EC%8A%A4" title="코모도어 도스 – Korean" lang="ko" hreflang="ko" data-title="코모도어 도스" data-language-autonym="한국어" data-language-local-name="Korean" class="interlanguage-link-target"><span>한국어</span></a></li><li class="interlanguage-link interwiki-it mw-list-item"><a href="https://it.wikipedia.org/wiki/Commodore_DOS" title="Commodore DOS – Italian" lang="it" hreflang="it" data-title="Commodore DOS" data-language-autonym="Italiano" data-language-local-name="Italian" class="interlanguage-link-target"><span>Italiano</span></a></li><li class="interlanguage-link interwiki-hu mw-list-item"><a href="https://hu.wikipedia.org/wiki/Commodore_DOS" title="Commodore DOS – Hungarian" lang="hu" hreflang="hu" data-title="Commodore DOS" data-language-autonym="Magyar" data-language-local-name="Hungarian" class="interlanguage-link-target"><span>Magyar</span></a></li><li class="interlanguage-link interwiki-sv mw-list-item"><a href="https://sv.wikipedia.org/wiki/Commodore_DOS" title="Commodore DOS – Swedish" lang="sv" hreflang="sv" data-title="Commodore DOS" data-language-autonym="Svenska" data-language-local-name="Swedish" class="interlanguage-link-target"><span>Svenska</span></a></li> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q353116#sitelinks-wikipedia" title="Edit interlanguage links" class="wbc-editpage">Edit links</a></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Namespaces"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Commodore_DOS" title="View the content page [c]" accesskey="c"><span>Article</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/Talk:Commodore_DOS" rel="discussion" title="Discuss improvements to the content page [t]" accesskey="t"><span>Talk</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Change language variant" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">English</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Views"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Commodore_DOS"><span>Read</span></a></li><li id="ca-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Commodore_DOS&amp;action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Commodore_DOS&amp;action=history" title="Past revisions of this page [h]" accesskey="h"><span>View history</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Tools" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Tools</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Tools</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">hide</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="More options" > <div class="vector-menu-heading"> Actions </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/Commodore_DOS"><span>Read</span></a></li><li id="ca-more-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Commodore_DOS&amp;action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Commodore_DOS&amp;action=history"><span>View history</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> General </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Special:WhatLinksHere/Commodore_DOS" title="List of all English Wikipedia pages containing links to this page [j]" accesskey="j"><span>What links here</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Special:RecentChangesLinked/Commodore_DOS" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k"><span>Related changes</span></a></li><li id="t-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_Upload_Wizard" title="Upload files [u]" accesskey="u"><span>Upload file</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/Special:SpecialPages" title="A list of all special pages [q]" accesskey="q"><span>Special pages</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=Commodore_DOS&amp;oldid=1253508659" title="Permanent link to this revision of this page"><span>Permanent link</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Commodore_DOS&amp;action=info" title="More information about this page"><span>Page information</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Special:CiteThisPage&amp;page=Commodore_DOS&amp;id=1253508659&amp;wpFormIdentifier=titleform" title="Information on how to cite this page"><span>Cite this page</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Special:UrlShortener&amp;url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FCommodore_DOS"><span>Get shortened URL</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Special:QrCode&amp;url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FCommodore_DOS"><span>Download QR code</span></a></li> </ul> </div> </div> <div id="p-coll-print_export" class="vector-menu mw-portlet mw-portlet-coll-print_export" > <div class="vector-menu-heading"> Print/export </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Special:DownloadAsPdf&amp;page=Commodore_DOS&amp;action=show-download-screen" title="Download this page as a PDF file"><span>Download as PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=Commodore_DOS&amp;printable=yes" title="Printable version of this page [p]" accesskey="p"><span>Printable version</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> In other projects </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q353116" title="Structured data on this page hosted by Wikidata [g]" accesskey="g"><span>Wikidata item</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Appearance</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">hide</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> <div id="siteSub" class="noprint">From Wikipedia, the free encyclopedia</div> </div> <div id="contentSub"><div id="mw-content-subtitle"></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><div class="shortdescription nomobile noexcerpt noprint searchaux" style="display:none">Operating system</div> <style data-mw-deduplicate="TemplateStyles:r1257001546">.mw-parser-output .infobox-subbox{padding:0;border:none;margin:-3px;width:auto;min-width:100%;font-size:100%;clear:none;float:none;background-color:transparent}.mw-parser-output .infobox-3cols-child{margin:auto}.mw-parser-output .infobox .navbar{font-size:100%}@media screen{html.skin-theme-clientpref-night .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .infobox-full-data:not(.notheme) div:not(.notheme){background:#1f1f23!important;color:#f8f9fa}}@media(min-width:640px){body.skin--responsive .mw-parser-output .infobox-table{display:table!important}body.skin--responsive .mw-parser-output .infobox-table>caption{display:table-caption!important}body.skin--responsive .mw-parser-output .infobox-table>tbody{display:table-row-group}body.skin--responsive .mw-parser-output .infobox-table tr{display:table-row!important}body.skin--responsive .mw-parser-output .infobox-table th,body.skin--responsive .mw-parser-output .infobox-table td{padding-left:inherit;padding-right:inherit}}</style><table class="infobox vevent"><caption class="infobox-title summary">Commodore DOS / CBM DOS</caption><tbody><tr><td colspan="2" class="infobox-image"><span typeof="mw:File"><a href="/wiki/File:Commodore64_directory_listing_16.png" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/2/2e/Commodore64_directory_listing_16.png/300px-Commodore64_directory_listing_16.png" decoding="async" width="300" height="226" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/2/2e/Commodore64_directory_listing_16.png/450px-Commodore64_directory_listing_16.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/2/2e/Commodore64_directory_listing_16.png/600px-Commodore64_directory_listing_16.png 2x" data-file-width="712" data-file-height="536" /></a></span><div class="infobox-caption">Listing the directory of a 1541-formatted disk</div></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="/wiki/Programmer" title="Programmer">Developer</a></th><td class="infobox-data"><a href="/wiki/Commodore_International" title="Commodore International">Commodore International</a></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="/wiki/Software_release_life_cycle" title="Software release life cycle">Latest release</a></th><td class="infobox-data">10.0</td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="/wiki/Natural_language" title="Natural language">Available in</a></th><td class="infobox-data"><a href="/wiki/English_language" title="English language">English</a></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;">Platforms</th><td class="infobox-data"><a href="/wiki/MOS_Technology_6502" title="MOS Technology 6502">MOS 6502</a> family</td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="/wiki/Software_license" title="Software license">License</a></th><td class="infobox-data"><a href="/wiki/Proprietary_software" title="Proprietary software">Proprietary</a></td></tr></tbody></table> <p><b>Commodore DOS</b>, also known as <b>CBM DOS</b>, is the <a href="/wiki/Disk_operating_system" title="Disk operating system">disk operating system</a> used with <a href="/wiki/Commodore_International" title="Commodore International">Commodore</a>'s <a href="/wiki/Commodore_International#6502-based_Computers" title="Commodore International">8-bit computers</a>. Unlike most other <a href="/wiki/Disk_operating_system" title="Disk operating system">DOSes</a>, which are loaded from disk into the computer's own <a href="/wiki/Random-access_memory" title="Random-access memory">RAM</a> and executed there, CBM DOS is executed internally in the drive: the DOS resides in <a href="/wiki/Read-only_memory" title="Read-only memory">ROM</a> chips inside the drive, and is run there by one or more dedicated <a href="/wiki/MOS_Technology_6502" title="MOS Technology 6502">MOS 6502</a> family <a href="/wiki/Central_processing_unit" title="Central processing unit">CPUs</a>. Thus, data transfer between Commodore 8-bit computers and their disk drives more closely resembles a <a href="/wiki/Local_area_network" title="Local area network">local area network</a> connection than typical disk/host transfers. </p> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="CBM_DOS_versions">CBM DOS versions</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Commodore_DOS&amp;action=edit&amp;section=1" title="Edit section: CBM DOS versions"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>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 Commodore's unique <a href="/wiki/Commodore_bus" title="Commodore bus">serial IEEE-488 bus (IEC Bus)</a> serial (TALK/LISTEN) protocols; all others use the parallel <a href="/wiki/IEEE-488" class="mw-redirect" title="IEEE-488">IEEE-488</a>. </p> <ul><li>&#160; 1.0 &#8211; found in the <a href="/wiki/Commodore_2040" class="mw-redirect" title="Commodore 2040">2040</a> and <a href="/wiki/Commodore_3040" class="mw-redirect" title="Commodore 3040">3040</a> floppy drives</li> <li>&#160; 2.0 &#8211; found in the <a href="/wiki/Commodore_4040" title="Commodore 4040">4040</a> and <a href="/wiki/Commodore_3040" class="mw-redirect" title="Commodore 3040">3040</a> floppy drives</li> <li>&#160; 2.5 &#8211; found in the <a href="/wiki/Commodore_8050" title="Commodore 8050">8050</a> floppy drives</li> <li>&#160; 2.6 &#8211; found in the <a href="/wiki/Commodore_1540" title="Commodore 1540">1540</a>, <a href="/wiki/Commodore_1541" title="Commodore 1541">1541</a> including the one built into the <a href="/wiki/Commodore_SX-64" title="Commodore SX-64">SX-64</a>, <a href="/wiki/Commodore_1551" title="Commodore 1551">1551</a>, <a href="/wiki/Commodore_2031" title="Commodore 2031">2031</a> (+"lp"), and <a href="/wiki/Commodore_4031" class="mw-redirect" title="Commodore 4031">4031</a> floppy drives</li> <li>&#160; 2.7 &#8211; found in the <a href="/wiki/Commodore_8050" title="Commodore 8050">8050</a>, <a href="/wiki/Commodore_8250" class="mw-redirect" title="Commodore 8250">8250</a> (+"lp"), and <a href="/wiki/Commodore_SFD-1001" class="mw-redirect" title="Commodore SFD-1001">SFD-1001</a> floppy drives</li> <li>&#160; 3.0 &#8211; found in the <a href="/wiki/Commodore_1570" title="Commodore 1570">1570</a>, external <a href="/wiki/Commodore_1571" title="Commodore 1571">1571</a>, and <a href="/wiki/Commodore_8280" title="Commodore 8280">8280</a> floppy drives (8280: 8-inch), as well as the <a href="/wiki/Commodore_D9060" title="Commodore D9060">9060</a> and <a href="/wiki/Commodore_D9060" title="Commodore D9060">9090</a> <a href="/wiki/Hard_disk" class="mw-redirect" title="Hard disk">hard drives</a></li> <li>&#160; 3.1 &#8211; found in the built-in 1571 drive of C128DCR computers</li> <li>10.0 &#8211; found in the <a href="/wiki/Commodore_1581" title="Commodore 1581">1581</a> (3½-inch) floppy drive</li></ul> <p>Version 2.6 was by far the most commonly used and widely known DOS version, due to its use in the <a href="/wiki/Commodore_1541" title="Commodore 1541">1541</a> as part of <a href="/wiki/Commodore_64" title="Commodore 64">C64</a> systems. </p><p>Note: The revised <a href="/wiki/Firmware" title="Firmware">firmware</a> for the 1571 which fixed the relative file bug was <i>also</i> identified as V3.0. Thus it is not possible to differentiate the two versions using the version number alone. </p> <div class="mw-heading mw-heading2"><h2 id="Technical_overview">Technical overview</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Commodore_DOS&amp;action=edit&amp;section=2" title="Edit section: Technical overview"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading3"><h3 id="1541_directory_and_file_types">1541 directory and file types</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Commodore_DOS&amp;action=edit&amp;section=3" title="Edit section: 1541 directory and file types"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The 1541 Commodore floppy disk can contain up to 144 files in a flat namespace (no <a href="/wiki/Directory_(computing)" title="Directory (computing)">subdirectories</a>); 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 <a href="/wiki/Bytes" class="mw-redirect" title="Bytes">bytes</a> 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&#8212;although accessing such files may be difficult or impossible. Files with identical names usually serve no purpose except to inform or visually manage files. One popular trick, used, for example, by <a href="/wiki/The_Final_Cartridge_III" title="The Final Cartridge III">The Final Cartridge III</a>, was to add files named <code>"----------------"</code> of type <code>DEL&lt;</code> to the directory, and files could then be rearranged around those lines to form groups. Many game developers, <a href="/wiki/Warez" title="Warez">warez</a> group members, and <a href="/wiki/Demoscene" title="Demoscene">demoscene</a> hackers used some more clever custom directory entries as well. </p><p>File names may contain a shifted space character (<code><a href="/wiki/Hexadecimal" title="Hexadecimal">$</a>A0</code>), and if the directory listing is being viewed from BASIC, the portion of the file name beyond the <code>$A0</code> character will appear to have been separated from the first part of the file name by a quotation mark, causing <a href="/wiki/Commodore_BASIC" title="Commodore BASIC">BASIC</a> to not consider it to be part of the full file name. This feature can be used to create directory entries such as <style data-mw-deduplicate="TemplateStyles:r1239335663">.mw-parser-output .mw-tmpl-kbd{background:#EEE;color:var(--color-base)}@media screen{html.skin-theme-clientpref-night .mw-parser-output .mw-tmpl-kbd{background:#171a1d}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .mw-tmpl-kbd{background:#171a1d}}</style><kbd class="mw-tmpl-kbd" style="letter-spacing:0.05em; padding-left:0.25em; padding-right:0.2em;">SAVE "PROGRAM<style data-mw-deduplicate="TemplateStyles:r1249182868">.mw-parser-output .keyboard-key{border:1px solid #aaa;border-radius:0.2em;box-shadow:0.1em 0.1em 0.2em rgba(0,0,0,0.1);background-color:var(--background-color-neutral-subtle,#f8f9fa);background-image:linear-gradient(to bottom,var(--background-color-neutral,#eaecf0),var(--background-color-neutral-subtle,#f8f9fa),var(--background-color-neutral,#eaecf0));color:var(--color-base,#202122);padding:0.1em 0.3em;font-family:inherit;font-size:0.85em}</style><kbd class="keyboard-key nowrap">⇧ Shift</kbd>&#8211;<kbd class="keyboard-key nowrap">space</kbd>&#160;<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1249182868"><kbd class="keyboard-key nowrap">Commodore</kbd>&#8211;<kbd class="keyboard-key nowrap">D</kbd><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1249182868"><kbd class="keyboard-key nowrap">U</kbd><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1249182868"><kbd class="keyboard-key nowrap">D</kbd><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1249182868"><kbd class="keyboard-key nowrap">E</kbd>",8,1</kbd>, which will then appear in the directory listing as, for example, <samp style="padding-left:0.4em; padding-right:0.4em; color:var( --color-subtle, #666666);">32 "PROGRAM",8,1 PRG</samp>.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">&#91;</span>1<span class="cite-bracket">&#93;</span></a></sup> When the user moves the cursor to the beginning of the line, types the word <code>LOAD</code> over the file size, and presses <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1249182868"><kbd class="keyboard-key nowrap">RETURN</kbd>, BASIC interprets that as <code class="mw-highlight mw-highlight-lang-cbmbas mw-content-ltr" style="" dir="ltr"><span class="kr">LOAD</span><span class="w"> </span><span class="s">&quot;PROGRAM&quot;</span><span class="p">,</span><span class="mf">8</span><span class="p">,</span><span class="mf">1</span><span class="w"> </span><span class="mf">...</span></code>, 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.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">&#91;</span>2<span class="cite-bracket">&#93;</span></a></sup> Alternatively, the user could press <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1249182868"><kbd class="keyboard-key nowrap">⇧ Shift</kbd>&#8211;<kbd class="keyboard-key nowrap">RUN/STOP</kbd> to <code class="mw-highlight mw-highlight-lang-cbmbas mw-content-ltr" style="" dir="ltr"><span class="kr">LOAD</span></code> and <code class="mw-highlight mw-highlight-lang-cbmbas mw-content-ltr" style="" dir="ltr"><span class="kr">RUN</span></code> the program automatically.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">&#91;</span>3<span class="cite-bracket">&#93;</span></a></sup> </p><p>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 their code and tamper with it. </p><p>In BASIC, the directory can be accessed as a non-executable pseudo-BASIC program with <code class="mw-highlight mw-highlight-lang-cbmbas mw-content-ltr" style="" dir="ltr"><span class="kr">LOAD</span><span class="w"> </span><span class="s">&quot;$0&quot;</span><span class="p">,</span><span class="mf">8</span></code> (or <code class="mw-highlight mw-highlight-lang-cbmbas mw-content-ltr" style="" dir="ltr"><span class="kr">LOAD</span><span class="w"> </span><span class="s">&quot;$1&quot;</span><span class="p">,</span><span class="mf">8</span></code> in the case of a dual drive) followed by <code>LIST</code>. 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." </p><p>On the <a href="/wiki/Commodore_64" title="Commodore 64">Commodore 64</a>, entering <code class="mw-highlight mw-highlight-lang-cbmbas mw-content-ltr" style="" dir="ltr"><span class="kr">LOAD</span><span class="w"> </span><span class="s">&quot;$&quot;</span><span class="p">,</span><span class="mf">8</span><span class="p">,</span><span class="mf">1</span></code> 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 <a href="/wiki/Hexadecimal" title="Hexadecimal">$</a>0401 (1025), which is equivalent to the start of BASIC for the <a href="/wiki/Commodore_PET" title="Commodore PET">Commodore PET</a>, but corresponds to the default screen memory in the C64 (starting with the second character on the first line of the screen). </p><p>Viewing the directory with a <code class="mw-highlight mw-highlight-lang-cbmbas mw-content-ltr" style="" dir="ltr"><span class="kr">LOAD</span><span class="w"> </span><span class="s">&quot;$&quot;</span><span class="p">,</span><span class="mf">8</span></code> command overwrites the BASIC program in memory. The <a href="/wiki/DOS_Wedge" title="DOS Wedge">DOS Wedge</a> and various third-party cartridges and extenders such as <a href="/wiki/Epyx_Fast_Load" title="Epyx Fast Load">Epyx Fast Load</a>, <a href="/wiki/Action_Replay" title="Action Replay">Action Replay</a>, and <a href="/wiki/The_Final_Cartridge_III" title="The Final Cartridge III">The Final Cartridge III</a> 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 <code>DIRECTORY</code> or <code>CATALOG</code> command that performs the same function. </p><p>The following file types are supported: </p> <dl><dt><code>SEQ</code></dt> <dd>A <a href="/wiki/Sequential_access" title="Sequential access">sequential</a> file is a data file that can be linearly read from start to finish. <code>SEQ</code> 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 <a href="/wiki/Flat_file" class="mw-redirect" title="Flat file">flat file</a> in <a href="/wiki/Linux" title="Linux">Linux</a> or <a href="/wiki/UNIX" class="mw-redirect" title="UNIX">UNIX</a>, 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 <code>lseek</code> kernel call found in <a href="/wiki/UNIX-like" class="mw-redirect" title="UNIX-like">UNIX-like</a> operating systems.</dd> <dt><code>PRG</code></dt> <dd><code>PRG</code> files normally contain executable program code, although they can also be used for data files. The first two bytes of the <code>PRG</code> are read by the <a href="/wiki/KERNAL" title="KERNAL">kernal</a> "load file" routine and used to determine the load address (they are stored in a <a href="/wiki/Endianness" title="Endianness">little endian</a> format).</dd> <dt><code>REL</code></dt> <dd>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 <a href="/wiki/Random_access" title="Random access">random access</a> to any part of the file.</dd> <dt><code>USR</code></dt> <dd>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 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, <a href="/wiki/GEOS_(8-bit_operating_system)" title="GEOS (8-bit operating system)">GEOS</a>' "VLIR" files show up as <code>USR</code> files.</dd> <dt><code>DEL</code></dt> <dd>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.</dd></dl> <p>The presence of an asterisk (<code>*</code>) prepended to the file type in a directory listing (for example, <code>*SEQ</code>) 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 <a href="/wiki/Block_availability_map" title="Block availability map">block availability map</a> (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, <a href="/wiki/Data_buffer" title="Data buffer">buffers</a> 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 <code>scratch</code> command to delete the file may cause <a href="/wiki/Filesystem" class="mw-redirect" title="Filesystem">filesystem</a> 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 <code>validate</code> command below), the latter which rebuilds the BAM and removes poison file references from the directory. The infamous <a href="#The_save-with-replace_bug">save-with-replace bug</a> could result in creation of splat files. </p><p><code>*DEL</code> 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 files if their data blocks and directory entries haven not yet been overwritten by other files. <code>DEL files</code> are commonly used to insert banners or comment sections into a directory listing. </p><p>File types with <code>&lt;</code> after them (for example, <code>PRG&lt;</code>) are "locked", and cannot be deleted&#8212;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. </p> <div class="mw-heading mw-heading3"><h3 id="File_access">File access</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Commodore_DOS&amp;action=edit&amp;section=4" title="Edit section: File access"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>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 <a href="/wiki/Commodore_BASIC" title="Commodore BASIC">BASIC ROM</a> 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. </p><p>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 assure unambiguous interpretation. A typical statement in BASIC to write to a sequential file would be as follows: </p> <dl><dd><code class="mw-highlight mw-highlight-lang-cbmbas mw-content-ltr" style="" dir="ltr"><span class="kr">OPEN</span><span class="w"> </span><span class="mf">3</span><span class="p">,</span><span class="mf">8</span><span class="p">,</span><span class="mf">4</span><span class="p">,</span><span class="s">&quot;0:ADDRESSBOOK,S,W&quot;</span></code></dd></dl> <p>The parameters following the <code>OPEN</code> <a href="/wiki/Verb" title="Verb">verb</a> are as follows: </p> <dl><dt>3</dt> <dd>This parameter, the <i>file number</i>, logically identifies the opened file within the <i>computer's</i> operating system and is analogous to a <a href="/wiki/File_descriptor" title="File descriptor">file descriptor</a> in <a href="/wiki/UNIX-like" class="mw-redirect" title="UNIX-like">UNIX-like</a> 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 opened all program input and output procedures use the file number. In <a href="/wiki/Assembly_language" title="Assembly language">assembly language</a> programs, this value is often referred to as LA (logical address), the abbreviation coming from the <a href="/wiki/Mnemonic" title="Mnemonic">mnemonic</a> 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 example.)</dd> <dt>8</dt> <dd>This parameter, the <i>device number</i>, identifies a specific <a href="/wiki/Peripheral" title="Peripheral">peripheral</a> attached to the computer. Devices 0 through 3 address the keyboard, tape cassette, <a href="/wiki/RS-232" title="RS-232">RS-232</a> 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 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 <a href="/wiki/GPIB" title="GPIB">GPIB</a>) 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.</dd> <dt>4</dt> <dd>This parameter, the <i>secondary address</i>, 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 <i>file number</i>, it can only use the <i>secondary address</i> 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 often referred to as SA (secondary address).</dd> <dt>COMMAND STRING</dt> <dd>The <code>"0:ADDRESSBOOK,S,W"</code> parameter is officially referred to in Commodore documentation as the <i>command string</i> 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 (<code>0:</code>, not to be confused with the device number), filename (<code>ADDRESSBOOK</code>), file type (<code>S</code>, sequential in this example) and access mode (<code>W</code>, 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.</dd></dl> <dl><dd>The drive number identifies a drive mechanism attached to a disk unit's controller and is analogous to a <a href="/wiki/Logical_unit_number" title="Logical unit number">logical unit number</a> in a <a href="/wiki/SCSI" title="SCSI">SCSI</a> controller that is capable of controlling multiple mechanisms (e.g., the <a href="/w/index.php?title=OMTI&amp;action=edit&amp;redlink=1" class="new" title="OMTI (page does not exist)">OMTI</a> <a href="/wiki/SCSI" title="SCSI">SASI</a> controllers that were developed to work with <a href="/wiki/ST-412" class="mw-redirect" title="ST-412">ST-412</a>/<a href="/wiki/ST-506" class="mw-redirect" title="ST-506">ST-506</a> 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 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 <a href="/wiki/Lt._Kernal" title="Lt. Kernal">Lt. Kernal</a> hard disk subsystem, in which the drive number refers to "logical units" (<a href="/wiki/Vdisk" class="mw-redirect" title="Vdisk">virtual drives</a> 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).</dd></dl> <p>Files can also be loaded and saved to with <code>LOAD</code> and <code>SAVE</code> commands. File name specifiers can also be used here, for example, <code class="mw-highlight mw-highlight-lang-cbmbas mw-content-ltr" style="" dir="ltr"><span class="kr">SAVE</span><span class="w"> </span><span class="s">&quot;FILE&quot;</span><span class="p">,</span><span class="mf">8</span></code> saves the BASIC program to a <code>PRG</code> (program) file and <code class="mw-highlight mw-highlight-lang-cbmbas mw-content-ltr" style="" dir="ltr"><span class="kr">SAVE</span><span class="w"> </span><span class="s">&quot;0:FILE,SEQ,WRITE&quot;</span><span class="p">,</span><span class="mf">8</span><span class="p">,</span><span class="mf">1</span></code> saves the BASIC program to a sequential file. If the secondary address isn't specified or is specified as 0 (e.g. <code class="mw-highlight mw-highlight-lang-cbmbas mw-content-ltr" style="" dir="ltr"><span class="kr">LOAD</span><span class="w"> </span><span class="s">&quot;FILE&quot;</span><span class="p">,</span><span class="mf">8</span></code>), the file is saved/loaded from the BASIC memory area (which, on the C64, starts by default at <a href="/wiki/Hexadecimal" title="Hexadecimal">$</a>0801). If the secondary address is specified as a non-zero value (e.g. <code class="mw-highlight mw-highlight-lang-cbmbas mw-content-ltr" style="" dir="ltr"><span class="kr">LOAD</span><span class="w"> </span><span class="s">&quot;FILE&quot;</span><span class="p">,</span><span class="mf">8</span><span class="p">,</span><span class="mf">1</span></code>), 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)&#8212;this form of command is more common when loading machine code programs. </p><p>Load relocation was first introduced on the <a href="/wiki/VIC-20" title="VIC-20">VIC-20</a> because this machine could start BASIC RAM in several different locations, depending on the memory expansion that was installed. The older <a href="/wiki/Commodore_PET" title="Commodore PET">Commodore PET</a> series did not support relocation, so <code class="mw-highlight mw-highlight-lang-cbmbas mw-content-ltr" style="" dir="ltr"><span class="kr">LOAD</span><span class="w"> </span><span class="s">&quot;FILE&quot;</span><span class="p">,</span><span class="mf">8</span></code> and <code class="mw-highlight mw-highlight-lang-cbmbas mw-content-ltr" style="" dir="ltr"><span class="kr">LOAD</span><span class="w"> </span><span class="s">&quot;FILE&quot;</span><span class="p">,</span><span class="mf">8</span><span class="p">,</span><span class="mf">1</span></code> 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 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 <a href="/wiki/Machine_language_monitor" class="mw-redirect" title="Machine language monitor">machine language monitor</a> to change the link address for the BASIC program after loading it. </p><p>The command <code class="mw-highlight mw-highlight-lang-cbmbas mw-content-ltr" style="" dir="ltr"><span class="kr">LOAD</span><span class="w"> </span><span class="s">&quot;*&quot;</span><span class="p">,</span><span class="mf">8</span><span class="p">,</span><span class="mf">1</span></code> 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 <a href="/wiki/Wildcard_character" title="Wildcard character">wildcard</a> 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 <code class="mw-highlight mw-highlight-lang-cbmbas mw-content-ltr" style="" dir="ltr"><span class="kr">LOAD</span><span class="w"> </span><span class="s">&quot;*&quot;</span><span class="p">,</span><span class="mf">8</span><span class="p">,</span><span class="mf">1</span></code> commands will load that file rather than the first. (However, <code class="mw-highlight mw-highlight-lang-cbmbas mw-content-ltr" style="" dir="ltr"><span class="kr">LOAD</span><span class="w"> </span><span class="s">&quot;0:*&quot;</span><span class="p">,</span><span class="mf">8</span><span class="p">,</span><span class="mf">1</span></code> or <code class="mw-highlight mw-highlight-lang-cbmbas mw-content-ltr" style="" dir="ltr"><span class="kr">LOAD</span><span class="w"> </span><span class="s">&quot;:*&quot;</span><span class="p">,</span><span class="mf">8</span><span class="p">,</span><span class="mf">1</span></code> will always load the first file on the disk.) </p><p>The directories of disks in two-drive units are accessed as <code class="mw-highlight mw-highlight-lang-cbmbas mw-content-ltr" style="" dir="ltr"><span class="kr">LOAD</span><span class="w"> </span><span class="s">&quot;$0&quot;</span><span class="p">,</span><span class="w"> </span><span class="mf">8</span></code> and <code class="mw-highlight mw-highlight-lang-cbmbas mw-content-ltr" style="" dir="ltr"><span class="kr">LOAD</span><span class="w"> </span><span class="s">&quot;$1&quot;</span><span class="p">,</span><span class="w"> </span><span class="mf">8</span></code>. <code>"0:$"</code> and <code>"1:$"</code> do not access the directory but actual files on one drive or the other that just happen to be named <code>"$"</code>. Partial directories can be loaded by adding a colon and a template: for example, <code class="mw-highlight mw-highlight-lang-cbmbas mw-content-ltr" style="" dir="ltr"><span class="kr">LOAD</span><span class="w"> </span><span class="s">&quot;$0:K*=P&quot;</span><span class="p">,</span><span class="mf">8</span></code> 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. </p> <div class="mw-heading mw-heading3"><h3 id="The_save-with-replace_bug">The save-with-replace bug</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Commodore_DOS&amp;action=edit&amp;section=5" title="Edit section: The save-with-replace bug"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>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 <code>SCRATCH</code> the existing file. This was done by prepending an <code>@</code> symbol to the file name during the <code>OPEN</code> or <code>SAVE</code> operation - for instance, <code class="mw-highlight mw-highlight-lang-cbmbas mw-content-ltr" style="" dir="ltr"><span class="kr">SAVE</span><span class="w"> </span><span class="s">&quot;@MY PROGRAM&quot;</span><span class="p">,</span><span class="mf">8</span></code>. 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.<sup id="cite_ref-whittern198507_4-0" class="reference"><a href="#cite_note-whittern198507-4"><span class="cite-bracket">&#91;</span>4<span class="cite-bracket">&#93;</span></a></sup> By early 1985 <i><a href="/wiki/Compute!" title="Compute!">Compute!</a></i> magazine advised readers to avoid using the command.<sup id="cite_ref-compute198502_5-0" class="reference"><a href="#cite_note-compute198502-5"><span class="cite-bracket">&#91;</span>5<span class="cite-bracket">&#93;</span></a></sup> That year various authors independently published articles<sup id="cite_ref-whittern198507_4-1" class="reference"><a href="#cite_note-whittern198507-4"><span class="cite-bracket">&#91;</span>4<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-slaymaker198510_6-0" class="reference"><a href="#cite_note-slaymaker198510-6"><span class="cite-bracket">&#91;</span>6<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-slaymaker198511_7-0" class="reference"><a href="#cite_note-slaymaker198511-7"><span class="cite-bracket">&#91;</span>7<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">&#91;</span>8<span class="cite-bracket">&#93;</span></a></sup> proving that the Save-with-Replace bug was real and including methods by which it could be triggered. </p><p>Affected devices included the single-drive 1541 and dual-drive 4040; the 8050 and 8250 did not exhibit the issue.<sup id="cite_ref-whittern198507_4-2" class="reference"><a href="#cite_note-whittern198507-4"><span class="cite-bracket">&#91;</span>4<span class="cite-bracket">&#93;</span></a></sup> Some commentators suggested the bug could be avoided by always explicitly specifying the <code>0:</code> drive number when saving,<sup id="cite_ref-slaymaker198510_6-1" class="reference"><a href="#cite_note-slaymaker198510-6"><span class="cite-bracket">&#91;</span>6<span class="cite-bracket">&#93;</span></a></sup> though it was later shown that <i>any</i> disk operations without a drive number were sufficient to lead to the bug.<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">&#91;</span>9<span class="cite-bracket">&#93;</span></a></sup> 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 <code>1:</code>" 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 could result in scrambled data being written to the disk. </p><p>In September 1986, Philip A. Slaymaker published an article<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">&#91;</span>10<span class="cite-bracket">&#93;</span></a></sup> describing in great detail the cause of the bug and providing <a href="/wiki/Patch_(computing)" title="Patch (computing)">patches</a> to the 1541 drive ROMs; readers with an <a href="/wiki/EPROM" title="EPROM">EPROM</a> 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 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. </p> <div class="mw-heading mw-heading3"><h3 id="Command_channel">Command channel</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Commodore_DOS&amp;action=edit&amp;section=6" title="Edit section: Command channel"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>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 secondary address, for example: </p> <dl><dd><code class="mw-highlight mw-highlight-lang-cbmbas mw-content-ltr" style="" dir="ltr"><span class="kr">OPEN</span><span class="w"> </span><span class="mf">1</span><span class="p">,</span><span class="mf">8</span><span class="p">,</span><span class="mf">15</span></code></dd></dl> <p>To retrieve and display the device status, one could code: </p> <dl><dd><code class="mw-highlight mw-highlight-lang-cbmbas mw-content-ltr" style="" dir="ltr"><span class="kr">OPEN</span><span class="w"> </span><span class="mf">1</span><span class="p">,</span><span class="mf">8</span><span class="p">,</span><span class="mf">15</span><span class="p">:</span><span class="kr">INPUT#</span><span class="mf">1</span><span class="p">,</span><span class="n">E</span><span class="p">,</span><span class="n">E$</span><span class="p">,</span><span class="n">T</span><span class="p">,</span><span class="n">S</span><span class="p">:</span><span class="kr">PRINT</span><span class="w"> </span><span class="n">E</span><span class="p">,</span><span class="n">E$</span><span class="p">,</span><span class="n">T</span><span class="p">,</span><span class="n">S</span><span class="p">:</span><span class="kr">CLOSE</span><span class="w"> </span><span class="mf">1</span></code></dd></dl> <p>In the above example, <code>E</code> will hold the error number (if any; it will be zero if no error exists), <code>E$</code> will be a terse text description of the error, <code>T</code> will represent the disk track where the error occurred, and <code>S</code> will be the sector on track <code>T</code> to which the error refers. If no error exists, the equivalent of <samp style="padding-left:0.4em; padding-right:0.4em; color:var( --color-subtle, #666666);">00,OK,00,00</samp> will be returned in the four variables. Note that <code>INPUT#</code> 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. </p><p>Commodore BASIC versions 4.0 and later provide a pseudo-variable referred to as <code>DS$</code> 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, a 1541 will return <samp style="padding-left:0.4em; padding-right:0.4em; color:var( --color-subtle, #666666);">73,CBM DOS V2.6 1541,00,00</samp>. 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. </p> <div class="mw-heading mw-heading2"><h2 id="DOS_commands">DOS commands</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Commodore_DOS&amp;action=edit&amp;section=7" title="Edit section: DOS commands"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <table class="wikitable" style="width: auto;"> <tbody><tr> <th>Command</th> <th>Description </th> <th>BASIC 1.x and 2.x Implementation </th> <th><a href="/wiki/DOS_Wedge" title="DOS Wedge">DOS Wedge</a> Implementation </th> <th>BASIC 3.0+ Implementation </th></tr> <tr> <th>New </th> <td>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. </td> <td><code>OPEN 15,8,15,"N0:<i>disk name</i>,<i>identifier</i>":CLOSE 15</code> </td> <td><code>@N0:<i>disk name</i>,<i>identifier</i></code> </td> <td><code>HEADER "<i>disk name</i>",<i>identifier</i></code> </td></tr> <tr> <th>Scratch </th> <td>Delete a file from the disk (or multiple files, using wild card matching) </td> <td><code>OPEN 15,8,15,"S0:<i>file name</i>":CLOSE 15</code> </td> <td><code>@S0:<i>file name</i></code> </td> <td><code>SCRATCH "<i>file name</i>"</code> </td></tr> <tr> <th>Rename </th> <td>Rename a file on the disk. Note that the new name comes first (except in the BASIC 3.0+ code)! </td> <td><code>OPEN 15,8,15,"R0:<i>new name</i>=<i>old name</i>":CLOSE 15</code> </td> <td><code>@R0:<i>new name</i>=<i>old name</i></code> </td> <td><code>RENAME "<i>old name</i>" TO "<i>new name</i>"</code> </td></tr> <tr> <th>Initialize </th> <td>Reset the drive and read the disk <a href="/wiki/Block_allocation_map" title="Block allocation map">BAM</a> 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. </td> <td><code class="mw-highlight mw-highlight-lang-cbmbas mw-content-ltr" style="" dir="ltr"><span class="kr">OPEN</span><span class="w"> </span><span class="mf">15</span><span class="p">,</span><span class="mf">8</span><span class="p">,</span><span class="mf">15</span><span class="p">,</span><span class="s">&quot;I0:&quot;</span><span class="p">:</span><span class="kr">CLOSE</span><span class="w"> </span><span class="mf">15</span></code> </td> <td><code>@I0:</code> </td> <td><code>DCLEAR</code> (BASIC 7.0+ only) </td></tr> <tr> <th>Validate </th> <td>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 <a href="/wiki/CHKDSK" title="CHKDSK">CHKDSK</a>/<a href="/wiki/Microsoft_ScanDisk" title="Microsoft ScanDisk">ScanDisk</a> tools of Microsoft operating systems. </td> <td><code class="mw-highlight mw-highlight-lang-cbmbas mw-content-ltr" style="" dir="ltr"><span class="kr">OPEN</span><span class="w"> </span><span class="mf">15</span><span class="p">,</span><span class="mf">8</span><span class="p">,</span><span class="mf">15</span><span class="p">,</span><span class="s">&quot;V0:&quot;</span><span class="p">:</span><span class="kr">CLOSE</span><span class="w"> </span><span class="mf">15</span></code> </td> <td><code>@V0:</code> </td> <td><code>COLLECT</code> </td></tr> <tr> <th>Copy </th> <td>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. </td> <td><code>OPEN 15,8,15,"C0:<i>new name</i>=0:<i>existing name</i>":CLOSE 15</code> </td> <td><code>@C0:<i>new name</i>=0:<i>existing name</i></code> </td> <td><code>COPY"<i>existing name</i>"TO"<i>new name</i>"</code> </td></tr> <tr> <th>Duplicate </th> <td>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). </td> <td><code class="mw-highlight mw-highlight-lang-cbmbas mw-content-ltr" style="" dir="ltr"><span class="kr">OPEN</span><span class="w"> </span><span class="mf">15</span><span class="p">,</span><span class="mf">8</span><span class="p">,</span><span class="mf">15</span><span class="p">,</span><span class="s">&quot;D1=0&quot;</span><span class="p">:</span><span class="kr">CLOSE</span><span class="w"> </span><span class="mf">15</span></code> </td> <td><code>@D1=0</code> </td> <td><code>BACKUP D0 TO D1</code> </td></tr></tbody></table> <p>There are also a command for seeking in RELative type files (<code>RECORD#</code>), several block-level direct-access commands (<code>BLOCK-READ</code>, <code>BLOCK-WRITE</code>, <code>BUFFER-POINTER</code>), block management (<code>BLOCK-ALLOCATE</code>, <code>BLOCK-FREE</code>), drive memory manipulation and execution of program code on the drive's processor (<code>MEMORY-WRITE</code>, <code>MEMORY-READ</code>, <code>MEMORY-EXECUTE</code>, <code>BLOCK-EXECUTE</code>) and user-definable functions (<code>USER</code> and <code>&amp;</code> commands). Some of the theoretically user-definable functions were rededicated for accessing new functionality in DOS versions after 1.0. </p> <div class="mw-heading mw-heading2"><h2 id="References">References</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Commodore_DOS&amp;action=edit&amp;section=8" title="Edit section: References"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1239543626">.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}</style><div class="reflist"> <div class="mw-references-wrap"><ol class="references"> <li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}</style><cite id="CITEREFSturdivant1985" class="citation magazine cs1">Sturdivant, Jerry A. (February–March 1985). <a rel="nofollow" class="external text" href="https://archive.org/details/commodore-power-play-13">"Quick Load"</a>. <i>Commodore Power/Play</i>. Vol.&#160;4, no.&#160;1. p.&#160;<a rel="nofollow" class="external text" href="https://archive.org/details/commodore-power-play-13/page/n55">54</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2018-10-07</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=Commodore+Power%2FPlay&amp;rft.atitle=Quick+Load&amp;rft.volume=4&amp;rft.issue=1&amp;rft.pages=54&amp;rft.date=1985-02%2F1985-03&amp;rft.aulast=Sturdivant&amp;rft.aufirst=Jerry+A.&amp;rft_id=https%3A%2F%2Farchive.org%2Fdetails%2Fcommodore-power-play-13&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ACommodore+DOS" class="Z3988"></span></span> </li> <li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFBrannon1983" class="citation magazine cs1">Brannon, Charles (December 1983). <a rel="nofollow" class="external text" href="https://archive.org/details/1983-12-computegazette">"Horizons: 64"</a>. <i>COMPUTE!'s Gazette</i>. No.&#160;6. p.&#160;<a rel="nofollow" class="external text" href="https://archive.org/details/1983-12-computegazette/page/n214">178</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2018-10-07</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=COMPUTE%21%27s+Gazette&amp;rft.atitle=Horizons%3A+64&amp;rft.issue=6&amp;rft.pages=178&amp;rft.date=1983-12&amp;rft.aulast=Brannon&amp;rft.aufirst=Charles&amp;rft_id=https%3A%2F%2Farchive.org%2Fdetails%2F1983-12-computegazette&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ACommodore+DOS" class="Z3988"></span></span> </li> <li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFGrace1986" class="citation magazine cs1">Grace, Paul (1986). <a rel="nofollow" class="external text" href="https://archive.org/details/run-magazine-1987-special/page/n37">"A bizarre dude"</a>. <i>RUN Special Issue 1987</i>. Peterborough, New Hampshire: CW Communications/Peterborough, Inc<span class="reference-accessdate">. Retrieved <span class="nowrap">2018-10-07</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=RUN+Special+Issue+1987&amp;rft.atitle=A+bizarre+dude&amp;rft.date=1986&amp;rft.aulast=Grace&amp;rft.aufirst=Paul&amp;rft_id=https%3A%2F%2Farchive.org%2Fdetails%2Frun-magazine-1987-special%2Fpage%2Fn37&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ACommodore+DOS" class="Z3988"></span></span> </li> <li id="cite_note-whittern198507-4"><span class="mw-cite-backlink">^ <a href="#cite_ref-whittern198507_4-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-whittern198507_4-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-whittern198507_4-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFWhittern,_Charles_H.1985" class="citation journal cs1">Whittern, Charles H. (July 1985). <a rel="nofollow" class="external text" href="https://archive.org/stream/transactor-magazines-v6-i01/trans_v6_i01#page/n21/mode/2up">"SAVE with Replace Exposed!!"</a>. <i><a href="/wiki/The_Transactor" title="The Transactor">The Transactor</a></i>. <b>6</b> (1): 20.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=The+Transactor&amp;rft.atitle=SAVE+with+Replace+Exposed%21%21&amp;rft.volume=6&amp;rft.issue=1&amp;rft.pages=20&amp;rft.date=1985-07&amp;rft.au=Whittern%2C+Charles+H.&amp;rft_id=https%3A%2F%2Farchive.org%2Fstream%2Ftransactor-magazines-v6-i01%2Ftrans_v6_i01%23page%2Fn21%2Fmode%2F2up&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ACommodore+DOS" class="Z3988"></span></span> </li> <li id="cite_note-compute198502-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-compute198502_5-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation news cs1"><a rel="nofollow" class="external text" href="http://www.atarimagazines.com/compute/issue57/feedback_commodore_debate.html">"The Great Commodore Save/Replace Debate"</a>. <i>Compute!</i>. February 1985. p.&#160;10<span class="reference-accessdate">. Retrieved <span class="nowrap">6 October</span> 2013</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=Compute%21&amp;rft.atitle=The+Great+Commodore+Save%2FReplace+Debate&amp;rft.pages=10&amp;rft.date=1985-02&amp;rft_id=http%3A%2F%2Fwww.atarimagazines.com%2Fcompute%2Fissue57%2Ffeedback_commodore_debate.html&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ACommodore+DOS" class="Z3988"></span></span> </li> <li id="cite_note-slaymaker198510-6"><span class="mw-cite-backlink">^ <a href="#cite_ref-slaymaker198510_6-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-slaymaker198510_6-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFSlaymaker,_P._A.1985" class="citation news cs1">Slaymaker, P. A. (October 1985). <a rel="nofollow" class="external text" href="https://archive.org/stream/1985-10-compute-magazine/Compute_Issue_065_1985_Oct#page/n77/mode/2up">"Save With Replace: Debugged At Last / Part 1"</a>. <i>Compute!</i>. p.&#160;79<span class="reference-accessdate">. Retrieved <span class="nowrap">16 October</span> 2013</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=Compute%21&amp;rft.atitle=Save+With+Replace%3A+Debugged+At+Last+%2F+Part+1&amp;rft.pages=79&amp;rft.date=1985-10&amp;rft.au=Slaymaker%2C+P.+A.&amp;rft_id=https%3A%2F%2Farchive.org%2Fstream%2F1985-10-compute-magazine%2FCompute_Issue_065_1985_Oct%23page%2Fn77%2Fmode%2F2up&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ACommodore+DOS" class="Z3988"></span></span> </li> <li id="cite_note-slaymaker198511-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-slaymaker198511_7-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFSlaymaker,_P._A.1985" class="citation news cs1">Slaymaker, P. A. (November 1985). <a rel="nofollow" class="external text" href="https://archive.org/stream/1985-11-compute-magazine/Compute_Issue_066_1985_Nov#page/n111/mode/2up">"Save-With-Replace: Debugged At Last / Part 2"</a>. <i>Compute!</i>. p.&#160;111<span class="reference-accessdate">. Retrieved <span class="nowrap">30 October</span> 2013</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=Compute%21&amp;rft.atitle=Save-With-Replace%3A+Debugged+At+Last+%2F+Part+2&amp;rft.pages=111&amp;rft.date=1985-11&amp;rft.au=Slaymaker%2C+P.+A.&amp;rft_id=https%3A%2F%2Farchive.org%2Fstream%2F1985-11-compute-magazine%2FCompute_Issue_066_1985_Nov%23page%2Fn111%2Fmode%2F2up&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ACommodore+DOS" class="Z3988"></span></span> </li> <li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text">Editors. "Save@: Gerry Neufield's Theory on an Old Bug". <i><a href="/wiki/Info_(magazine)" class="mw-redirect" title="Info (magazine)">Info</a></i> № 9, December 1985/January 1986.</span> </li> <li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="news:35E70343.32B@spamsuxdoitnow.com">Excerpt of e-mail from Philip A. Slaymaker</a> also archived at <a rel="nofollow" class="external text" href="https://groups.google.com/group/comp.sys.cbm/msg/f9d3a0a4949b1843">Groups.Google</a></span> </li> <li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text">Philip A. Slaymaker. "Eliminating SAVE@ and Other 1541 Bugs". <i><a href="/wiki/The_Transactor" title="The Transactor">The Transactor</a></i> Vol. 7 № O2, September 1986, pp.&#8201;33–35.</span> </li> </ol></div></div> <dl><dt>Notes</dt></dl> <style data-mw-deduplicate="TemplateStyles:r1239549316">.mw-parser-output .refbegin{margin-bottom:0.5em}.mw-parser-output .refbegin-hanging-indents>ul{margin-left:0}.mw-parser-output .refbegin-hanging-indents>ul>li{margin-left:0;padding-left:3.2em;text-indent:-3.2em}.mw-parser-output .refbegin-hanging-indents ul,.mw-parser-output .refbegin-hanging-indents ul li{list-style:none}@media(max-width:720px){.mw-parser-output .refbegin-hanging-indents>ul>li{padding-left:1.6em;text-indent:-1.6em}}.mw-parser-output .refbegin-columns{margin-top:0.3em}.mw-parser-output .refbegin-columns ul{margin-top:0}.mw-parser-output .refbegin-columns li{page-break-inside:avoid;break-inside:avoid-column}@media screen{.mw-parser-output .refbegin{font-size:90%}}</style><div class="refbegin" style=""> <ul><li>Immers, Richard; Neufeld, Gerald G. (1984). <i>Inside Commodore DOS. The Complete Guide to the 1541 Disk Operating System.</i> DATAMOST, Inc &amp; Reston Publishing Company, Inc. (Prentice-Hall). <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&#160;<a href="/wiki/Special:BookSources/0-8359-3091-2" title="Special:BookSources/0-8359-3091-2">0-8359-3091-2</a>.</li> <li>Englisch, Lothar; Szczepanowski, Norbert (1984). <i>The Anatomy of the 1541 Disk Drive.</i> Grand Rapids, MI: Abacus Software (translated from the original 1983 German edition, Düsseldorf: Data Becker GmbH). <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&#160;<a href="/wiki/Special:BookSources/0-916439-01-1" title="Special:BookSources/0-916439-01-1">0-916439-01-1</a>.</li> <li><span class="languageicon">(in Finnish)</span> Lundahl, Reijo (1986). <i>1541-Levyasema</i>. Amersoft. <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&#160;<a href="/wiki/Special:BookSources/951-35-3206-2" title="Special:BookSources/951-35-3206-2">951-35-3206-2</a></li></ul> </div> <div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}</style><style data-mw-deduplicate="TemplateStyles:r1236075235">.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}</style></div><div role="navigation" class="navbox" aria-labelledby="Disk_operating_systems_(DOS)" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><style data-mw-deduplicate="TemplateStyles:r1239400231">.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}</style><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:Disk_operating_systems" title="Template:Disk operating systems"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:Disk_operating_systems" title="Template talk:Disk operating systems"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:Disk_operating_systems" title="Special:EditPage/Template:Disk operating systems"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id="Disk_operating_systems_(DOS)" style="font-size:114%;margin:0 4em"><a href="/wiki/Disk_operating_system" title="Disk operating system">Disk operating systems</a> (DOS)</div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">MS-DOS, IBM PC DOS,<br />compatible systems</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><td class="navbox-abovebelow" colspan="2"><div id="*API_*Timeline_*Comparison_*Commands_*Games"> <ul><li><a href="/wiki/DOS_API" title="DOS API">API</a></li> <li><a href="/wiki/Timeline_of_DOS_operating_systems" title="Timeline of DOS operating systems">Timeline</a></li> <li><a href="/wiki/Comparison_of_DOS_operating_systems" title="Comparison of DOS operating systems">Comparison</a></li> <li><a href="/wiki/List_of_DOS_commands" title="List of DOS commands">Commands</a></li> <li><a href="/wiki/Index_of_DOS_games" title="Index of DOS games">Games</a></li></ul> </div></td></tr></tbody></table><div> <ul><li><a href="/wiki/MS-DOS" title="MS-DOS">MS-DOS</a> <ul><li><a href="/wiki/MS-DOS_4.0_(multitasking)" title="MS-DOS 4.0 (multitasking)">Multitasking MS-DOS 4.0/4.1</a></li> <li><a href="/wiki/MS-DOS_7" title="MS-DOS 7">MS-DOS 7</a></li></ul></li> <li><a href="/wiki/IBM_PC_DOS" title="IBM PC DOS">IBM PC DOS</a></li> <li><a href="/wiki/DOS/V" title="DOS/V">DOS/V</a></li> <li><a href="/wiki/DR-DOS" title="DR-DOS">DR-DOS</a></li> <li><a href="/wiki/H-DOS" class="mw-redirect" title="H-DOS">H-DOS</a></li> <li><a href="/wiki/Novell_DOS" class="mw-redirect" title="Novell DOS">Novell DOS</a></li> <li><a href="/wiki/ROM-DOS" class="mw-redirect" title="ROM-DOS">ROM-DOS</a></li> <li><a href="/wiki/SISNE_plus" title="SISNE plus">SISNE plus</a></li> <li><a href="/wiki/PTS-DOS" title="PTS-DOS">PTS-DOS</a></li> <li><a href="/wiki/FreeDOS" title="FreeDOS">FreeDOS</a></li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Other <a href="/wiki/X86" title="X86">x86</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <li><a href="/wiki/IBM_4680_OS" class="mw-redirect" title="IBM 4680 OS">4680 OS</a></li> <li><a href="/wiki/4690_OS" class="mw-redirect" title="4690 OS">4690 OS</a></li> <li><a href="/wiki/86-DOS" title="86-DOS">86-DOS</a></li> <li><a href="/wiki/ADOS_(Russian_operating_system)" class="mw-redirect" title="ADOS (Russian operating system)">ADOS</a></li> <li><a href="/wiki/Concurrent_CP/M-86" class="mw-redirect" title="Concurrent CP/M-86">Concurrent CP/M-86</a></li> <li><a href="/wiki/Concurrent_DOS" class="mw-redirect" title="Concurrent DOS">Concurrent DOS</a></li> <li><a href="/wiki/CP/M-86" title="CP/M-86">CP/M-86</a></li> <li><a href="/wiki/CP/K" class="mw-redirect" title="CP/K">CP/K</a></li> <li><a href="/wiki/Datapac_System_Manager" class="mw-redirect" title="Datapac System Manager">Datapac System Manager</a></li> <li><a href="/wiki/DOS_Plus" title="DOS Plus">DOS Plus</a></li> <li><a href="/wiki/K8918-OS" class="mw-redirect" title="K8918-OS">K8918-OS</a></li> <li><a href="/wiki/FlexOS" title="FlexOS">FlexOS</a></li> <li><a href="/wiki/MP/M-86" class="mw-redirect" title="MP/M-86">MP/M-86</a></li> <li><a href="/wiki/Multiuser_DOS" title="Multiuser DOS">Multiuser DOS</a></li> <li><a href="/wiki/NetWare_PalmDOS" class="mw-redirect" title="NetWare PalmDOS">NetWare PalmDOS</a></li> <li><a href="/wiki/Novell_DOS" class="mw-redirect" title="Novell DOS">Novell DOS</a></li> <li><a href="/wiki/OpenDOS" class="mw-redirect" title="OpenDOS">OpenDOS</a></li> <li><a href="/wiki/PC-MOS/386" title="PC-MOS/386">PC-MOS/386</a></li> <li><a href="/wiki/REAL/32" class="mw-redirect" title="REAL/32">REAL/32</a></li> <li><a href="/wiki/SB-86" class="mw-redirect" title="SB-86">SB-86</a></li> <li><a href="/wiki/SCP1700" class="mw-redirect" title="SCP1700">SCP1700</a></li> <li><a href="/wiki/Towns_OS" class="mw-redirect" title="Towns OS">Towns OS</a></li> <li><a href="/wiki/TurboDOS" title="TurboDOS">TurboDOS</a></li> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Other platforms</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/AmigaDOS" title="AmigaDOS">AmigaDOS</a></li> <li><a href="/wiki/AMSDOS" title="AMSDOS">AMSDOS</a></li> <li><a href="/wiki/ANDOS" title="ANDOS">ANDOS</a></li> <li><a href="/wiki/Apple_DOS" title="Apple DOS">Apple DOS</a></li> <li><a href="/wiki/Apple_ProDOS" title="Apple ProDOS">Apple ProDOS</a></li> <li><a href="/wiki/Apple_SOS" title="Apple SOS">Apple SOS</a></li> <li><a href="/wiki/Atari_DOS" title="Atari DOS">Atari DOS</a></li> <li><a href="/wiki/Atari_TOS" title="Atari TOS">Atari TOS</a></li> <li><a href="/wiki/BW-DOS" class="mw-redirect" title="BW-DOS">BW-DOS</a></li> <li><a class="mw-selflink selflink">Commodore DOS</a></li> <li><a href="/wiki/Concurrent_DOS_68K" class="mw-redirect" title="Concurrent DOS 68K">Concurrent DOS 68K</a></li> <li><a href="/wiki/Concurrent_DOS_V60" class="mw-redirect" title="Concurrent DOS V60">Concurrent DOS V60</a></li> <li><a href="/wiki/CP/M" title="CP/M">CP/M</a></li> <li><a href="/wiki/Cromemco_DOS" title="Cromemco DOS">Cromemco DOS</a></li> <li><a href="/wiki/CSI-DOS" title="CSI-DOS">CSI-DOS</a></li> <li><a href="/wiki/DEC_BATCH-11/DOS-11" title="DEC BATCH-11/DOS-11">DEC BATCH-11/DOS-11</a></li> <li><a href="/wiki/DIP_DOS" class="mw-redirect" title="DIP DOS">DIP DOS</a></li> <li><a href="/wiki/DOS/360" class="mw-redirect" title="DOS/360">DOS/360</a></li> <li><a href="/wiki/DOS_XL" title="DOS XL">DOS XL</a></li> <li><a href="/wiki/Edos" title="Edos">Edos</a></li> <li><a href="/wiki/EOS_(8-bit_operating_system)" title="EOS (8-bit operating system)">EOS</a></li> <li><a href="/wiki/FLEX_(operating_system)" title="FLEX (operating system)">FLEX</a></li> <li><a href="/wiki/GEMDOS" class="mw-redirect" title="GEMDOS">GEMDOS</a></li> <li><a href="/wiki/IDEDOS" title="IDEDOS">IDEDOS</a></li> <li><a href="/wiki/IMDOS" title="IMDOS">IMDOS</a></li> <li><a href="/wiki/IS-DOS" title="IS-DOS">iS-DOS</a></li> <li><a href="/wiki/ISIS_(operating_system)" title="ISIS (operating system)">ISIS</a></li> <li><a href="/wiki/Myarc_Disk_Operating_System" title="Myarc Disk Operating System">MDOS</a></li> <li><a href="/w/index.php?title=RCA_MicroDOS&amp;action=edit&amp;redlink=1" class="new" title="RCA MicroDOS (page does not exist)">MicroDOS</a></li> <li><a href="/wiki/MP/M" title="MP/M">MP/M</a></li> <li><a href="/wiki/MSX-DOS" title="MSX-DOS">MSX-DOS</a></li> <li><a href="/wiki/MyDOS" class="mw-redirect" title="MyDOS">MyDOS</a></li> <li><a href="/wiki/NewDos/80" title="NewDos/80">NewDos/80</a></li> <li><a href="/wiki/OS/M" class="mw-redirect" title="OS/M">OS/M</a></li> <li><a href="/wiki/PTDOS" title="PTDOS">PTDOS</a></li> <li><a href="/wiki/RealDOS" class="mw-redirect" title="RealDOS">RealDOS</a></li> <li><a href="/wiki/SB-80" class="mw-redirect" title="SB-80">SB-80</a></li> <li><a href="/wiki/Single_User_Control_Program" class="mw-redirect" title="Single User Control Program">SCP</a></li> <li><a href="/wiki/Sinclair_QDOS" title="Sinclair QDOS">Sinclair QDOS</a></li> <li><a href="/wiki/Data_General_RDOS" title="Data General RDOS">RDOS</a></li> <li><a href="/wiki/SmartDOS" class="mw-redirect" title="SmartDOS">SmartDOS</a></li> <li><a href="/wiki/SpartaDOS" class="mw-redirect" title="SpartaDOS">SpartaDOS</a></li> <li><a href="/wiki/SpartaDOS_X" title="SpartaDOS X">SpartaDOS X</a></li> <li><a href="/wiki/Technical_Support_SuperDOS" class="mw-redirect" title="Technical Support SuperDOS">Technical Support SuperDOS</a></li> <li><a href="/wiki/Top-DOS" class="mw-redirect" title="Top-DOS">Top-DOS</a></li> <li><a href="/wiki/TR-DOS" title="TR-DOS">TR-DOS</a></li> <li><a href="/wiki/TRSDOS" title="TRSDOS">TRSDOS</a></li> <li><a href="/wiki/TurboDOS" title="TurboDOS">TurboDOS</a></li> <li><a href="/wiki/UDOS" class="mw-redirect" title="UDOS">UDOS</a></li> <li><a href="/wiki/Z-DOS" title="Z-DOS">Z-DOS</a></li> <li><a href="/wiki/Z80-RIO" title="Z80-RIO">Z80-RIO</a></li></ul> </div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div> <ul><li><span class="noviewer" typeof="mw:File"><span title="Category"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/16px-Symbol_category_class.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/23px-Symbol_category_class.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/31px-Symbol_category_class.svg.png 2x" data-file-width="180" data-file-height="185" /></span></span>&#160;<a href="/wiki/Category:Disk_operating_systems" title="Category:Disk operating systems">Category</a></li> <li><span class="noviewer" typeof="mw:File"><span title="List-Class article"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/d/db/Symbol_list_class.svg/16px-Symbol_list_class.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/d/db/Symbol_list_class.svg/23px-Symbol_list_class.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/d/db/Symbol_list_class.svg/31px-Symbol_list_class.svg.png 2x" data-file-width="180" data-file-height="185" /></span></span>&#160;<a href="/wiki/List_of_disk_operating_systems_called_DOS" title="List of disk operating systems called DOS">List</a></li></ul> </div></td></tr></tbody></table></div> <!-- NewPP limit report Parsed by mw‐web.codfw.main‐f69cdc8f6‐6kzj2 Cached time: 20241122150257 Cache expiry: 2592000 Reduced expiry: false Complications: [vary‐revision‐sha1, show‐toc] CPU time usage: 0.472 seconds Real time usage: 0.577 seconds Preprocessor visited node count: 3349/1000000 Post‐expand include size: 39112/2097152 bytes Template argument size: 2663/2097152 bytes Highest expansion depth: 14/100 Expensive parser function count: 29/500 Unstrip recursion depth: 1/20 Unstrip post‐expand size: 56416/5000000 bytes Lua time usage: 0.285/10.000 seconds Lua memory usage: 16977835/52428800 bytes Number of Wikibase entities loaded: 1/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 499.847 1 -total 23.94% 119.658 1 Template:Reflist 20.39% 101.903 1 Template:Disk_operating_systems 20.12% 100.546 1 Template:Infobox_OS 19.99% 99.905 2 Template:Navbox 16.75% 83.726 3 Template:Cite_magazine 16.20% 80.964 1 Template:In_lang 11.73% 58.613 8 Template:Main_other 8.96% 44.805 1 Template:Short_description 7.93% 39.630 1 Template:Infobox --> <!-- Saved in parser cache with key enwiki:pcache:idhash:1094698-0!canonical and timestamp 20241122150257 and revision id 1253508659. Rendering was triggered because: page-view --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Retrieved from "<a dir="ltr" href="https://en.wikipedia.org/w/index.php?title=Commodore_DOS&amp;oldid=1253508659">https://en.wikipedia.org/w/index.php?title=Commodore_DOS&amp;oldid=1253508659</a>"</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Help:Category" title="Help:Category">Categories</a>: <ul><li><a href="/wiki/Category:Commodore_64_software" title="Category:Commodore 64 software">Commodore 64 software</a></li><li><a href="/wiki/Category:Disk_operating_systems" title="Category:Disk operating systems">Disk operating systems</a></li><li><a href="/wiki/Category:VIC-20_software" title="Category:VIC-20 software">VIC-20 software</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Hidden categories: <ul><li><a href="/wiki/Category:Articles_with_short_description" title="Category:Articles with short description">Articles with short description</a></li><li><a href="/wiki/Category:Short_description_is_different_from_Wikidata" title="Category:Short description is different from Wikidata">Short description is different from Wikidata</a></li><li><a href="/wiki/Category:Articles_with_Finnish-language_sources_(fi)" title="Category:Articles with Finnish-language sources (fi)">Articles with Finnish-language sources (fi)</a></li></ul></div></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> This page was last edited on 26 October 2024, at 10:44<span class="anonymous-show">&#160;(UTC)</span>.</li> <li id="footer-info-copyright">Text is available under the <a href="/wiki/Wikipedia:Text_of_the_Creative_Commons_Attribution-ShareAlike_4.0_International_License" title="Wikipedia:Text of the Creative Commons Attribution-ShareAlike 4.0 International License">Creative Commons Attribution-ShareAlike 4.0 License</a>; additional terms may apply. By using this site, you agree to the <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use" class="extiw" title="foundation:Special:MyLanguage/Policy:Terms of Use">Terms of Use</a> and <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy" class="extiw" title="foundation:Special:MyLanguage/Policy:Privacy policy">Privacy Policy</a>. Wikipedia® is a registered trademark of the <a rel="nofollow" class="external text" href="https://wikimediafoundation.org/">Wikimedia Foundation, Inc.</a>, a non-profit organization.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Privacy policy</a></li> <li id="footer-places-about"><a href="/wiki/Wikipedia:About">About Wikipedia</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikipedia:General_disclaimer">Disclaimers</a></li> <li id="footer-places-contact"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us">Contact Wikipedia</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Code of Conduct</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Developers</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/en.wikipedia.org">Statistics</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Cookie statement</a></li> <li id="footer-places-mobileview"><a href="//en.m.wikipedia.org/w/index.php?title=Commodore_DOS&amp;mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile view</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/w/resources/assets/poweredby_mediawiki.svg" alt="Powered by MediaWiki" width="88" height="31" loading="lazy"></a></li> </ul> </footer> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-f69cdc8f6-6kzj2","wgBackendResponseTime":744,"wgPageParseReport":{"limitreport":{"cputime":"0.472","walltime":"0.577","ppvisitednodes":{"value":3349,"limit":1000000},"postexpandincludesize":{"value":39112,"limit":2097152},"templateargumentsize":{"value":2663,"limit":2097152},"expansiondepth":{"value":14,"limit":100},"expensivefunctioncount":{"value":29,"limit":500},"unstrip-depth":{"value":1,"limit":20},"unstrip-size":{"value":56416,"limit":5000000},"entityaccesscount":{"value":1,"limit":400},"timingprofile":["100.00% 499.847 1 -total"," 23.94% 119.658 1 Template:Reflist"," 20.39% 101.903 1 Template:Disk_operating_systems"," 20.12% 100.546 1 Template:Infobox_OS"," 19.99% 99.905 2 Template:Navbox"," 16.75% 83.726 3 Template:Cite_magazine"," 16.20% 80.964 1 Template:In_lang"," 11.73% 58.613 8 Template:Main_other"," 8.96% 44.805 1 Template:Short_description"," 7.93% 39.630 1 Template:Infobox"]},"scribunto":{"limitreport-timeusage":{"value":"0.285","limit":"10.000"},"limitreport-memusage":{"value":16977835,"limit":52428800}},"cachereport":{"origin":"mw-web.codfw.main-f69cdc8f6-6kzj2","timestamp":"20241122150257","ttl":2592000,"transientcontent":false}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"Commodore DOS","url":"https:\/\/en.wikipedia.org\/wiki\/Commodore_DOS","sameAs":"http:\/\/www.wikidata.org\/entity\/Q353116","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q353116","author":{"@type":"Organization","name":"Contributors to Wikimedia projects"},"publisher":{"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2004-10-23T07:54:25Z","dateModified":"2024-10-26T10:44:21Z","image":"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/2\/2e\/Commodore64_directory_listing_16.png","headline":"DOS"}</script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10