• Atari 8-Bit Computers: Frequently Asked Questions (18/30)

    From Michael Current@21:1/5 to Marc G. Frank on Tue Nov 26 21:54:38 2019
    [continued from previous message]

    - Shipped with the 400 computer systems from 1979-1981
    - Shipped with the 800 computer systems from 1979-1982

    Atari BASIC Rev. A was produced by Atari on cartridge (CXL4002), standard 400/800-style brown label, which reads either "BASIC Computer Program" (early) or "BASIC Computing Language" (most).

    The cartridge was produced in mass quantities before SMI had finished
    debugging it. One place these bugs are documented is in this article by Steve Hanson from Compute! magazine, Oct. 1981: http://www.atarimagazines.com/compute/issue17/171_1_DOCUMENTED_ATARI_BUGS.php

    On February 25, 1981, the source code to Atari BASIC (including the FPP) was purchased from SMI by Optimized Systems Software (OSS), headed by former SMI employees Bill Wilkinson and Mike Peters.

    The Atari BASIC Source Book (Compute! Books, 1983, 0-942386-15-9), authored by Bill Wilkinson, Kathleen O'Brien and Paul Laughton, made the source code to Atari BASIC (Rev. A; and including the FPP) available to the public.
    Available: http://users.telenet.be/kim1-6502/6502/absb.html

    Revision B
    ----------
    When the 600XL/800XL computers shipped in the fall of 1983 they included a newly debugged Atari BASIC Rev. B built-in on ROM. Unfortunately, while most existing bugs were fixed, Rev. B introduced a new bug more serious than any of the earlier problems. In his article in the June 1985 issue of Compute!, Bill Wilkinson writes:
    Each time you LOAD (or CLOAD or RUN "filename") a program, rev B adds 16
    bytes to the size of your program. If you then save the program, the next
    time you load it in it grows by ANOTHER 16 bytes, and so on.
    http://www.atarimagazines.com/compute/issue61/323_1_INSIGHT_Atari.php
    The problem can be alleviated by periodically, if not exclusively, using
    LIST instead of SAVE or CSAVE to save your programs.

    Atari never produced Atari BASIC Rev. B on cartridge.

    "Revision C Converter: Type-in fix for buggy BASIC revision B" by Matthew Ratcliff was published in the September 1985 issue of Antic: http://www.atarimagazines.com/v4n5/revisioncconverter.html

    Revision C
    ----------
    Atari BASIC Rev. C is the final "fully debugged" version. It was first made available on cartridge from Atari Customer Service in June 1984 (free to 600XL/800XL owners still within warranty). The silver label on the first Rev. C cartridges reads "(c)1982 Atari, Inc." and "Made in U.S.A." Atari, Corp. also produced Rev. C on cartridge, using two different silver labels designs, both of which read "(c)1985 Atari Corp." and "Made in Taiwan". Rev. C was
    also built-in on ROM in late-production 800XL computers as well as the 65XE, the 130XE, the XE System Console, and the 800XE.

    Determining Revision version
    ----------------------------
    When running Atari BASIC, memory location 43234 ($A8E2, BASIC ROM) indicates which Revision of BASIC is running. At the READY prompt, enter:
    ? PEEK(43234)

    If the result is: You have Revision: Atari Part#:
    162 A C012402+C014502
    96 B C060302A
    234 C C024947A

    All 3 versions of Atari BASIC may be available for download here: http://www.ataripreservation.org/websites/freddy.offenga/atari_dev.htm

    Manuals from Atari:
    (See the "What is the Atari OS" FAQ section for FPP documentation.)
    - Atari BASIC (Wiley Self-Teaching Guide) C014385 by Albrecht/Finkel/Brown
    (c)1979, 332 pages (see: http://www.atariarchives.org/basic/)
    - Shipped with the 400 computer systems from 1979-1981
    - Shipped with the 800 computer systems from 1979-1982
    - BASIC Reference Manual (400/800 ed.), C015307, (c)1980, 120 pages
    - Authors: Carol Shaw and Keith Brewster
    - Shipped with the 800 computer systems from 1980-1982
    - Inside Atari BASIC, C060992, Carris for Reston, (c)1983, 183 pages
    - Atari BASIC Reference Manual Update, C061038, (c)1982, 6 pages
    - BASIC Reference Manual (400/800/1200XL ed.), C061456 / BX4211, (c)1983,
    126 pages
    - Atari BASIC Reference Guide For Experience Programmers, C061570, (c)1983,
    14 pages
    - Atari BASIC Reference Guide, C061948, (c)1983 (international; 61 pages)

    ------------------------------

    Subject: 7.2.2) How do I load/run or save an Atari BASIC program on cassette?

    To load and run an Atari BASIC program from cassette:
    1. Insert the cassette into the recorder.
    2. Use REWIND or ADVANCE/F.FWD on the recorder, if necessary, to bring the
    tape to the position where the program is located.
    3. Boot the computer to the Atari BASIC READY prompt.
    4. There are several possibilities for the next step, depending on how the
    program was saved, and whether you want to run the program or just load
    it into RAM. Enter one of the following four commands:
    a. CLOAD loads programs saved with CSAVE
    b. LOAD "C:" loads programs saved with SAVE "C:"
    c. ENTER "C:" loads programs saved with LIST "C:"
    d. RUN "C:" loads and runs programs saved with SAVE "C:" 5. The system buzzer sounds (to signal you to press PLAY on the recorder).
    6. Press PLAY on the recorder.
    7. Press the RETURN key on the computer keyboard.
    Tape motion starts, the program loads from the cassette into RAM, and then
    tape motion stops.
    Then, if you entered RUN "C:" above, the loaded program runs; otherwise a
    READY prompt is displayed.
    8. You may press STOP on the recorder once the program is loaded, unless the
    program is designed to control further tape motion start/stop.
    9. If the loaded program is not running yet (you did not enter RUN "C:"
    above), now enter the command: RUN

    To save an Atari BASIC program from computer RAM to cassette:
    1. Insert a cassette into the recorder.
    2. Use REWIND or ADVANCE/F.FWD on the recorder, if necessary, to bring the
    tape to the position where the program is to be recorded.
    3. Enter one of the following three commands:
    a. CSAVE
    (short inter-record gap - fastest read/write speed - tokenized files)
    - According to Atari Tech Tip #5, 11/17/82, regarding the 400/800
    computer models, pressing SYSTEM RESET does not reset the data I/O
    line in POKEY. Subsequent use of CSAVE is unreliable because the
    data I/O line is not clear, POKEY sends garbage, and the data stored
    is unrecoverable.
    Solution #1: Avoid using SYSTEM RESET before using CSAVE.
    Solution #2: Following use of SYSTEM RESET, execute a serial bus
    command that properly resets POKEY and clears the data I/O line.
    Recommended: LPRINT
    (If a printer is not attached when the LPRINT is executed, an error
    138 occurs. This is normal and does not interfere with the reset of
    POKEY and safe subsequent use of CSAVE.)
    b. SAVE "C:"
    (long inter-record gap - middle read/write speed - tokenized files)
    c. LIST "C:"
    (long inter-record gap - slowest read/write speeds - straight ATASCII -
    tape actually stops in between block reads/writes)
    4. The system buzzer sounds twice (to signal you to press both PLAY and
    RECORD on the recorder).
    5. Press both PLAY and RECORD on the recorder.
    6. Press the RETURN key on the computer keyboard.
    Tape motion starts, the program is copied from RAM to the cassette, and
    then tape motion stops.
    7. You may press STOP on the recorder once recording has finished.

    ------------------------------

    Subject: 7.3.1) What is Atari DOS, and what versions did Atari release?

    This FAQ section describes the various DOS versions produced by Atari for use with their 8-bit computers: DOS I, DOS 2.0S, DOS 3, DOS 2.5, DOS XE, DOS XLE

    On the Atari, a complete Disk Operating System (DOS) consists of a complex, flexible combination of software components provided in the Atari OS on ROM with software components loaded into RAM from disk:

    1) SIO (Serial I/O bus Utility) routine
    - Component of the Atari OS
    - Generalized low level communications with SIO bus devices, including
    disk drives
    - Utilized by the Resident Diskette Handler
    - Normally utilized by the FMS
    2) Resident Diskette Handler
    - Component of the Atari OS
    - Utilizes SIO for communications with disk drives
    - Supports just five functions (four on the 400/800):
    1. GET SECTOR
    - Read a specified sector
    2. PUT SECTOR WITH VERIFY
    - Write sector; check sector to see if written
    3. STATUS REQUEST
    - Ask the disk controller for its status
    4. FORMAT
    - Issue a format command to the disk controller
    5. PUT SECTOR WITHOUT VERIFY
    - Write sector (don't check sector to see if written)
    - Available on XL/XE; not available on 400/800
    - 400/800: Uses 128 byte sectors
    XL/XE: Can read/write disk sectors having variable length from 1 to
    65536 bytes. Default=128 bytes
    - Normally only used to load the FMS from disk. Exception: Atari DOS I
    uses the OS-resident Diskette Handler for all disk communications.
    3) FMS (File Management Subsystem)
    - Must be loaded from disk (using the Resident Diskette Handler)
    - Normally utilizes SIO for disk drive communications
    - Does not utilize the Resident Diskette Handler. Exception: Atari
    DOS I uses the OS-resident Diskette Handler for all disk
    communications.
    - Normally provides a D: Disk File Manager device handler that is
    compatible with CIO
    4) CIO (Central Input/Output Utility) routine
    - Component of the Atari OS
    - Generalized high level, device independent access to device handlers,
    including any disk drive device handler provided by a FMS
    5) DUP (Disk Utility Package) or equivalent software program(s)
    - Optionally provided with a FMS
    - Must be loaded from disk using the FMS
    - Typically a DOS menu program, but could take any form of software
    that provides a user interface to FMS management functions
    - Normally utilizes CIO for carrying out disk management operations

    In practice, those DOS components loaded into memory from disk, that is, a FMS and any additional programs distributed with that FMS (such as a DUP), are normally collectively described as a "DOS" on the Atari.

    DOS I
    -----
    DISK OPERATING SYSTEM 9/24/79 COPYRIGHT 1979 ATARI
    - Contains two main parts:
    - A File Management Subsystem (FMS)
    - Developed by Paul Laughton (also wrote: Atari BASIC) for Shepardson
    Microsystems, Inc. (SMI) for Atari
    - A Disk Utility Package (DUP)
    - Shipped with 810 disk drives manufactured from 1980-1981.
    - Disk Utility Package (DOS menu) is loaded into memory with the FMS
    - Uses the OS-resident Diskette Handler for all disk communications via SIO
    - Disk drive type supported: Atari 810 (& compatible)
    - Disk utilization/filesystem: "DOS I"
    - 128 total bytes/sector, with 3 bytes of each sector used to address
    the next sector
    - 40 tracks * 18 sectors/track = 720 total sectors, with 11 sectors used
    for software control or unused by the FMS.
    - Data capacity per diskette:
    709 sectors x 125 bytes/sector = 88,625 bytes/disk
    - Cannot read disks written with DOS II, which require a 3 sector boot
    - 11 special sectors:
    1 Boot sector, containing the boot record accessed by the Atari OS
    at system power-up
    360 Volume Table of Contents (VTOC) (sector usage)
    361-368 File Directory (8 directory entries per sector)
    720 unused by the FMS (FMS interprets the VTOC sector bit map as
    sectors numbered 0-719, ignoring nonexistent sector 0, while the
    Atari 810 drive uses sectors numbered 1-720)
    - Maximum of 64 files per diskette (8-sector File Directory)
    - Uses binary file format unsupported by any other DOS version for the Atari
    - D: Disk File Manager supports up to four 810 disk drives, D1: through D4:
    - To configure DOS I for fewer drives (freeing system environment RAM),
    adjust memory location 1802 ($70A or DRVBYT):
    1. Boot the system to the BASIC READY prompt
    2. Enter one of:
    - POKE 1802,1 (for a one drive system; saves 397 bytes)
    - POKE 1802,3 (for a two drive system, saves 258 bytes)
    - POKE 1802,7 (for a three drive system, saves 130 bytes)
    - POKE 1802,15 (for a four drive system; DOS I default value)
    3. Go to DOS and use menu item H (WRITE DOS FILE) to write the DOS.SYS
    file (with the new value of location 1802) to disk, replacing any
    existing copy of DOS on that disk.
    - Can open up to 3 files simultaneously
    - Configurable by adjusting memory location 1801 ($709 or SABYTE) via
    the same process as described for adjusting the number of disk drives.
    Valid values for DOS I are 1-3 inclusive. Default is 3.
    - AUTO.SYS can be used to automatically poke data in RAM locations on
    system startup.
    - Files copied or duplicated in small buffer
    - Must redisplay menu before issuing new command
    - Can only write DOS system file to drive 1
    - N. DEFINE DEVICE menu option: "The full implementation of this selection is
    not supported, so use it with caution." --DOS Reference Manual p.39
    - DOS I is not compatible with the 850 Interface Module R: device handler
    - Disk File Manager Master Copy (CX8101) disk contains:
    DOS.SYS both the FMS with D: Disk File Manager and DUP with DOS Menu,
    loaded by OS-resident Diskette Handler on system startup
    - Manual: Disk Operating System Reference Manual C015200

    DOS 2.0S
    --------
    DISK OPERATING SYSTEM II VERSION 2.0S COPYRIGHT 1980 ATARI
    - Shipped with 810 and 1050 disk drives manufactured from 1981-1983.
    Master Diskette also shipped with the Atari Touch Tablet.
    - FMS (DOS.SYS) component developed by Paul Laughton for Shepardson
    Microsystems, Inc. (SMI) for Atari, based on the Atari DOS I FMS.
    Released code version: "19-Aug-80"
    - Disk Utility Package (DUP.SYS -- DOS menu) is separate from the FMS, and
    optional for use of the FMS, freeing up memory for user programs when the
    DUP is not needed. Released code version: "ver 2.9 11/18/80"
    - Does not use the OS-resident Diskette Handler once the FMS is loaded.
    - Utilizes SIO for disk drive communications
    - MEM.SAV file can be employed to preserve the contents of memory to disk
    when DUP.SYS is loaded.
    - Introduces support for AUTORUN.SYS binary file launch upon system boot
    (replaces AUTO.SYS of DOS I)
    - Disk drive type supported: Atari 810 (& compatible)
    - Disk utilization/filesystem: "DOS 2.0 Single Density"
    - 128 total bytes/sector, with 3 bytes of each sector used to address
    the next sector
    - 40 tracks * 18 sectors/track = 720 total sectors, with 13 sectors used
    for software control or unused by the FMS.
    - Data capacity per diskette:
    707 sectors x 125 bytes/sector = 88,375 bytes/disk
    - Requires a 3 sector boot (provision for double density version DOS 2.0D)
    - 13 special sectors:
    1-3 Boot sectors, containing the boot record accessed by the Atari
    OS at system power-up
    360 Volume Table of Contents (sector usage)
    361-368 File Directory (8 directory entries per sector)
    720 unused by the FMS (same as DOS I)
    - Maximum of 64 files per diskette (8-sector File Directory)
    - Difference in boot record lengths means DOS I and DOS II disks cannot be
    interchanged.
    - Established standard binary file format supported by ALL other DOS versions
    for the Atari (exception: Atari DOS I)
    - By default, the CIO-compatible D: Disk File Manager supports up to two 810
    disk drives, D1: and D2:
    - To configure DOS 2.0S for the number of 810 disk drives attached to the
    system (which affects system environment RAM), adjust memory location
    1802 ($70A or DRVBYT):
    1. Boot the system to the BASIC READY prompt
    2. Enter one of:
    - POKE 1802,1 (D1:)
    - POKE 1802,3 (D1: and D2: -- DOS 2.0S default value)
    - POKE 1802,7 (D1:, D2:, D3:)
    - POKE 1802,15 (D1:, D2:, D3:, D4:)
    - POKE 1802,31 (D1:, D2:, D3:, D4:, D5:)
    - POKE 1802,63 (D1:, D2:, D3:, D4:, D5:, D6:)
    - POKE 1802,127 (D1:, D2:, D3:, D4:, D5:, D6:, D7:)
    - POKE 1802,255 (D1:, D2:, D3:, D4:, D5:, D6:, D7:, D8:)
    3. Go to DOS and use menu item H (WRITE DOS FILES) to write the DOS
    system files (with the new value of location 1802) to disk,
    replacing any existing copy of DOS on that disk.
    - By default, can open up to 3 files simultaneously
    - Configurable by adjusting memory location 1801 ($709 or SABYTE) via
    the same process as described for adjusting the number of disk drives.
    Valid values for DOS 2.0S are 1-7 inclusive. Default is 3.
    - Files copied or duplicated into buffer which can be as large as user memory
    area
    - SAVE BINARY FILE has "/A" option allowing two files to be appended together
    - Can create load-and-go type file which enables you to select a file and
    have it automatically run without entering a RUN address
    - Diskette with bad sectors detected cannot be formatted
    - Screen margins are reset when DUP is entered
    - DUP: May enter another command or redisplay menu after a command
    - Can write DOS files to any drive
    - NOTE/POINT are available for random file access
    - Atari 810 Master Diskette II or Atari 810/1050 Master Diskette II (CX8104)
    disk contains:
    DOS.SYS FMS with D: Disk File Manager, loaded by OS-resident
    Diskette Handler on system startup
    DUP.SYS Disk Utility Package (DOS menu)
    AUTORUN.SYS Loads the R: device handler from an 850 Interface Module
    - Shipped with one Atari CX8111 Formatted Diskette II
    - Manuals:
    - Disk Operating System II Reference Manual C016347
    - Disk Utilities Listing, February 1981 C016558 (without binder)
    (DUP.SYS source code, early release)
    - DOS Utilities Source Listing (DOS II), August 1981 C017894
    ("Disk Utility Programs (DUP) ver 2.9 11/18/80")
    - Atari 810 Disk Drive: An Introduction to the Disk Operating System
    C060054 (CO60054)
    - Atari 1050 Disk Drive: An Introduction to the Disk Operating System
    C061529
    - On February 25, 1981, the source code to the Atari DOS 2.0S FMS (DOS.SYS)
    was purchased from SMI by Optimized Systems Software (OSS), headed by
    former SMI employees Bill Wilkinson and Mike Peters.
    - Inside Atari DOS (Compute! Books, 1982, 0-942386-02-7), authored by
    Bill Wilkinson, made the source code to the Atari DOS 2.0S FMS (DOS.SYS)
    available to the public. See: http://www.atariarchives.org/iad/
    - Modified versions of DOS 2.0S were widely created and exchanged among Atari
    users. Also notably, the first 3rd-party disk drives for the Atari, the
    Percom RFD-40S1 and RFD-44S1, were initially (1982) distributed with a
    program ("BLD") to build Percom DOS 2.0P (double density support) from a
    copy of DOS 2.0S.

    DOS 3
    -----
    Atari DOS 3 Copyright 1983
    - Shipped with 1050 disk drives manufactured from 1984 through early 1985.
    - Developed by 3-person team at Atari, led by Richard K. (Hud) Nordin
    - Project started at Atari by early 1981 under systems software manager
    Brian Johnston. Contributor: NEOTERIC consultant Harry B. Stewart
    - Disk drive types supported:
    1) Atari 810 (& compatible)
    2) Atari 1050 (& compatible)
    3) Atari 1450XLD built-in (1983 version: DS/ED 260KiB drive)
    Minimal support only: A single 1450XLD disk drive appears to DOS 3 as
    two Atari 1050 drives. That is, side 1 is accessed as D1: and side 2
    is accessed as D2:.
    - Disk utilization/filesystems:
    1) "DOS 3 Single Density"
    - Sector = 128 bytes
    - Block = 8 sectors = 1024 bytes
    - Track = 18 sectors = 2304 bytes
    - Disk contains 40 tracks, or 720 sectors, or 90 blocks, with 3 blocks
    used for software control.
    - Data capacity per diskette:
    87 blocks x 1024 bytes/block = 89,088 bytes/disk
    - Blocks 1-3 are used by the system as 24 special sectors:
    1-9 Boot sectors, containing the boot record accessed by the
    Atari OS at system power-up
    10-15 unused
    16-23 File Directory
    24 File Allocation Table (block usage)
    - Maximum of 63 files per diskette (8-sector File Directory)
    2) "DOS 3 Double Density" (enhanced/dual density)
    - Sector = 128 bytes
    - Block = 8 sectors = 1024 bytes
    - Track = 26 sectors = 3328 bytes
    - Disk contains 40 tracks, or 1040 sectors, or 130 blocks, with 3
    blocks used for software control.
    - Data capacity per diskette:
    127 blocks x 1024 bytes/block = 130,048 bytes/disk
    - Blocks 1-3 are used by the system as 24 special sectors:
    1-9 Boot sectors, containing the boot record accessed by the
    Atari OS at system power-up
    10-15 unused
    16-23 File Directory
    24 File Allocation Table (block usage)
    - Backward compatible with DOS 3 Single Density
    - Maximum of 63 files per diskette (8-sector File Directory)
    - Keyboard Command Processor (KCP) is separate from the FMS, and optional for
    use of the FMS, freeing up memory for user programs when the KCP DOS
    subfunctions and the DOS menu are not needed.
    - KCP Overlay (DOS menu) is separate from the FMS and KCP, and optional for
    use of the FMS and KCP, freeing up memory for user programs when the DOS
    menu is not needed.
    - MEM.SAV file can be employed to preserve the contents of memory to disk
    when the KCP Overlay (DOS menu) is loaded.
    - Supports AUTORUN.SYS binary file launch upon system boot
    - File manager and buffers now take up less space than the DOS 2 equivalents.
    All utilities, such as COPY, INIT, DUPLICATE (all UTL files) are called
    into memory only as needed. Each is maintained in a separate file.
    - Provides a direct method for the user to modify the FMS parameters
    - Provides an online HELP feature
    - Compared to DOS 2: The NOTE and POINT commands return a pointer number
    relative to the start of a file (byte 0) rather than an absolute sector and
    byte location within the sector.
    - Master Diskette 3 (DX5052) contains:
    FMS.SYS FMS with D: Disk File Manager, loaded by OS-resident
    Diskette Handler on system startup. Contains subfunctions:
    ERASE FILE, RENAME FILE, PROTECT FILE, UNPROTECT FILE, LOAD
    KCP.SYS Keyboard Command Processor, loaded on system startup if a
    cartridge is present. Contains subfunctions: SAVE,
    GO AT HEX ADDRESS, TO CARTRIDGE, COPY FILE, INIT DISK,
    DUPLICATE DISK, ACCESS DOS 2
    KCPOVER.SYS KCP Overlay, displays the DOS menu and process commands
    COPY.UTL COPY/APPEND utility
    DUPDISK.UTL DUPLICATE utility
    INIT.UTL INIT Disk utility
    CONVERT.UTL ACCESS DOS 2 utility, use to copy files from a DOS 2.0S disk
    to a DOS 3 disk
    HELP.UTL HELP utility
    HELP.TXT Text information displayed by the HELP utility
    HANDLERS.SYS Loads the R: handler from an Atari 850 Interface Module
    during system boot up, if this file is on the drive 1
    diskette.
    - Manuals for DOS 3:
    - Atari Disk Operating System Reference Manual C062287 (100 pages)
    (makes no mention of the 1450XLD built-in disk drive)
    - An Introduction to the Atari Disk Operating System C062288 (29 p)
    (makes extensive mention of the 1450XLD built-in disk drive)
    - Atari DOS 3 Reference Manual Errata, 05/01/84
    "Early versions of DOS 3 used a random access method that was incompatible
    with large files. To determine if you have an early version, boot your
    copy of DOS 3 with Atari BASIC, and execute the following BASIC command:
    PRINT PEEK(1816)
    If the value returned is '53', your copy of DOS 3 is the latest released.
    If the value returned is '51' or '56', Atari Customer Relations offered a
    program to update DOS 3 to the latest revision level."
    - Atari 1050 Disk Drive: An Introduction to the Atari Disk Operating
    System C024323 (international; 144 pages)

    DOS 2.5
    -------
    DISK OPERATING SYSTEM II VERSION 2.5 COPYRIGHT 1984 ATARI CORP.
    - Shipped with 1050 disk drives manufactured in fall 1985, and with XF551
    disk drives manufactured in 1987-1988.
    - Developed by Optimized Systems Software (OSS - Bill Wilkinson) for Atari
    - Disk drive types supported:
    1) Atari 810 (& compatible)
    2) Atari 1050 (& compatible)
    3) Atari 130XE RAMdisk (65,408 bytes)
    - Disk utilization/filesystems supported (detected automatically):
    1) DOS 2.0 Single Density
    2) "DOS 2.5 Enhanced Density" (or just "DOS 2.5")
    - 128 total bytes/sector, with 3 bytes of each sector used to address
    the next sector
    - 40 tracks * 26 sectors/track = 1040 total sectors, with 30 sectors
    used for software control or unused by the FMS.
    - Data capacity per diskette:
    1010 sectors x 125 bytes/sector = 126,250 bytes/disk
    - 30 special sectors:
    1-3 Boot sectors, containing the boot record accessed by the
    Atari OS at system power-up
    360 Volume Table of Contents (sectors 1-719 usage)
    361-368 File Directory (8 directory entries per sector)
    720 unused by the FMS (same as DOS I and DOS 2.0S)
    1024 Extended Volume Table of Contents (sectors 720-1023 usage)
    1025-1040 unused by the FMS (FMS uses a 10-bit sector address)
    - Maximum of 64 files per diskette (8-sector File Directory)
    - Backward compatible with DOS 2.0 Single Density
    3) "DOS 2.5 130XE RAMdisk"
    - 128 total bytes/sector, with 3 bytes of each sector used to address
    the next sector
    - 508 total sectors, with 9 sectors used for software control.
    - Data capacity:
    499 sectors x 125 bytes/sector = 62,375 bytes
    - 9 special sectors:
    360 Volume Table of Contents (sector usage)
    361-368 File Directory
    - Maximum of 64 files (8-sector File Directory)
    - Backward compatible with DOS 2.0 Single Density
    - RAM memory locations 1802 ($70A or DRVBYT, the active drive map) and 1801
    ($709 or SABYTE, the maximum number of concurrently open files) are
    utilized in the same way as by DOS 2.0S.
    - If the DOS 2.5 130XE RAMdisk is enabled, the default value for SABYTE is
    131, enabling D1:, D2:, and D8:, where D8: is the RAMdisk.
    - DOS 2.5 (DX5075) disk contains:
    DOS.SYS FMS with D: Disk File Manager, loaded by OS-resident
    Diskette Handler on system startup
    DUP.SYS Disk Utility Package (DOS menu)
    RAMDISK.COM If present on startup disk on an XL/XE with 128KiB RAM or
    more:
    1) Displays a message that it is initializing the RAMdisk
    2) Sets up a 64KiB RAMdisk as D8:
    3) Copies DUP.SYS to D8: and establishes MEM.SAV on D8:
    SETUP.COM External utility has 3 functional options:
    1) Change current drive number
    2) Change system configuration. 3 configurable options:
    i) Active drives number (1 to 4)
    ii) Max number of simultaneous files (1-7)
    iii) Disk writes with or without verify
    3) Create an AUTORUN.SYS that does either one or both of:
    - Load the R: handler from an Atari 850 Interface Module
    - Load and RUN a BASIC program from the boot disk
    COPY32.COM Utility to copy files from a DOS 3 disk to a DOS 2.5 or to a
    DOS 2.0S disk
    DISKFIX.COM DiskFix Utility can be used to:
    - Unerase a file (under certain circumstances)
    - Verify the soundness of every file on a disk
    - Rename a file by number (solves problem of files with
    duplicate names)
    - Manuals:
    - Atari DOS 2.5: 1050 Disk Drive Owner's Manual C072033
    - Atari DOS 2.5: XF551 Disk Drive Owner's Manual C033537

    DOS XE
    ------
    DOS XE DISK OPERATING SYSTEM COPYRIGHT 1988 ATARI CORP. VERSION 01.00
    - Shipped with late production XF551 disk drives starting in 1989
    - Developed by Bill Wilkinson for Atari. Known as "ADOS" prior to release
    - Requires an XL/XE; does not run on the 400/800
    - Disk Utility Package (DOS menu) is loaded into memory with the FMS
    - Disk drive types fully-supported (with internal provision for up to 8
    drive types):
    1) Atari 810 (& compatible)
    2) Atari 1050 (& compatible)
    3) Atari XF551 (supports XF551 high speed)
    4) Atari 130XE RAMdisk (64KiB)
    5) SSDD 5.25" Single-Sided, Double Density
    - Disk utilization/filesystems:
    1) "DOS XE" via the native D: Disk File Manager:
    - All disks are addressed in 256 byte (logical) sectors.
    - Simulates 256 byte sectors on 810 and 1050 disk drives, which
    have 128 byte physical sectors, by reading and writing physical
    sector pairs.
    - Five different types of sectors:
    1) Boot sectors
    - Disk sectors 1-3 contain the boot record accessed by the
    Atari OS at system power-up. (OS reads 128 bytes/sector)
    - Contains a 32 byte Drive Table describing the physical and
    logical layout of the disk.
    - The DOS XE 130XE RAMdisk does not have boot sectors.
    2) Volume Table of Contents (VTOC) sectors
    - Starts in sector 4 (one sector only for drive types supported
    by DOS XE).
    - The first 10 bytes give information about the current status
    of the disk and the rest is a bit map of the blocks on the
    disk.
    3) Directory sectors
    - The first directory block immediately follows the VTOC
    sector(s). Additional directory blocks are allocated as
    needed and may be scattered throughout the disk, linked by a
    two-byte pointer at the end of each block.
    - Each entry contains the file name, information about the
    file (including creation date and last modified date), and up
    to 12 two-byte pointers which point to the file map blocks
    for the file.
    - Includes a six byte sector label, containing the File ID
    number, Volume number, and Sequence number.
    4) File Map sectors
    - Contain from 1 to 125 two byte data block pointers.
    - Includes a six byte sector label, containing the File ID
    number, Volume number, and Sequence number.
    5) Data sectors
    - 250 bytes allocated for data.
    - Includes a six byte sector label, containing the File ID
    number, Volume number, and Sequence number.
    - Files can be up to 8MiB long.
    - There is a limit of 1250 files per directory/subdirectory, but no
    theoretical limit to the number of directories.
    - There is an 80 character limit on pathnames.
    - Up to 64KiB sectors can exist on a single disk.
    (65536 sectors x 256 bytes/sector = 16MiB)
    - Data capacity per disk for fully-supported drive types:
    - AT810: 347 usable sectors * 250 bytes/sector = 86,750 bytes
    - AT1050: 507 usable sectors * 250 bytes/sector = 126,750 bytes
    - XF551: 1435 usable sectors * 250 bytes/sector = 358,750 bytes

    [continued in next message]

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Michael Current@21:1/5 to Marc G. Frank on Thu Mar 19 10:20:42 2020
    [continued from previous message]

    shadow. The reason for the OS behavior might be that Atari wanted to
    prevent crashes if the cartridge is inserted or removed while the
    machine is running. The 400/800 is powered down when a cartridge is
    inserted, the XL/XE lacks the cover of the older models that triggered
    a little switch to interrupt the power line.

    2) Similar to the above, writes to $3F8. This OS equate defines
    whether on a warmstart, the BASIC ROM shall be mapped back in. If
    its contents are altered, a program triggering a reset as part of its initialization will find itself then with 8KiB less RAM occupied by
    a BASIC ROM, making it crash. Similarly, writes to the cartridge checksum
    $3EB could cause a cold-start on a "reset initialization". This is
    fixable by the translator disk.

    3) Some games use a four-joystick setup, or at least initialize
    PIA itself. If this happens inadequately, PIA Port B, bit 0 gets changed, disabling the ROM, and thus crashing the machine. This is not fixable
    by the translator since it is a hardware issue.

    4) Direct jumps into the OS ROM, not using the documented vectors in
    the $E450 area. Interestingly, this fault is not as common as it may
    sound since games hardly ever use the OS. It causes failures of
    some "serious applications", most notably "QS Forth" and applications
    compiled by it. This is fixable by the translator disk.

    ------------------------------

    Subject: 7.1.8) Why do some programs run only on the XL/XE (not the 400/800)?

    Section started by Konrad M. Kokoszkiewicz.

    Software designed for the Atari XL/XE won't work on the 400/800 if:

    1) It uses shadow RAM at $C000-$CFFF (4KiB) or $D800-$FFFF (10KiB). In other
    words, it requires 64KiB RAM.
    2) It uses RAM expansions at $4000-$7FFF controlled by PORTB $D301. In other
    words, it requires at least 128KiB total RAM, 130XE compatible.
    3) It uses XL OS vectors (routines) not present in the 400/800 OS. Some of
    these correspond to XL/XE specific hardware, such as the [HELP] key or the
    PBI/ECI interface.
    4) Rather than using documented OS vectors, it "illegally" uses OS routines
    directly for routines that were located at different memory addresses in
    the 400/800 OS.
    5) It uses the International Character Set.

    ------------------------------

    Subject: 7.1.9) How can I run older programs using the Atari Translator?

    While each later revision of the Atari Operating System (OS) was designed to
    be backward compatible with earlier versions, software incompatibilities were sometimes introduced. In particular, a number of programs written for the 400/800 OS versions do not run correctly or at all under the XL OS
    versions. In order to allow many "400/800-only" programs to be run on an
    XL (or later, XE) computer, Atari sold the Atari Translator on disk.

    The auto-booting Translator diskette installs the 400/800 OS in RAM "under"
    the ROM-based XL OS in an XL/XE Atari computer. Once this disk has been loaded, the user is prompted to remove it and insert the application diskette (or cassette) and press the [SELECT] key. When this occurs the system undertakes a coldstart in the new, RAM-based 400/800 OS environment.

    The Translator disk is a two-sided disk, providing two slightly different versions of the Translator. The Side A Translator provides a version of the 400/800 OS that is slightly modified to allow the [RESET] key to be pressed without reverting to the XL OS on ROM. The Side B Translator provides an
    even higher degree of compatibility, including support for programs that boot the 850 interface, but the 400/800 OS in RAM would be disabled if the [RESET] key is pressed.

    Atari shipped two versions of the Translator disk:
    - Atari Translator DX5063 NTSC version: 400/800 OS Rev.B/NTSC
    - Atari Translator FK100807 PAL version: 400/800 OS Rev.A/PAL

    Translator programmers at Atari:
    - Greg Riker: Original version 83-03-20
    - Joe Miller: Added graphics and code for [RESET] 83-09-15

    Atari Translator partial source code: http://www.atariage.com/forums/topic/78381-xl-translator-source/

    Similar "translator" programs from 3rd parties include:
    - XL Fix by Computer Software Services (CSS), 1983 (ad Antic Apr84p102)
    - Commercial program released (originally) in disk and cassette versions
    - Also released in ROM version
    - OldOper ver. 1.0 by MasterSoft, April 1984
    - The FIXXL by Belathiel (widely distributed by Antic magazine), 6/11/84
    - The Emulator by ATCO int. systems (ATCO-IS) Stuttgart, version 4.0, 1984
    - "Home-Made Translator" by Angelo Giambra, ANALOG July 1985 p.28-34
    - Follow-up by D.D. Davids II to above article, ANALOG Sept. 1985 p. 6
    - XOS/Translator, by Computer Support, 1985
    - Also released in ROM version as: XOS/Fix
    - Ultra Translator: Ultrafix/XL (400/800 OS Rev.B or Rev.A), by Tim Patrick
    - Revision 1.3, 1984/86
    - Revision 2.0, 1984/86
    - This version also produced on cartridge by Video 61
    - Revision 2.2, 1984/86

    See a separate section of this FAQ list for 400/800 OS "translator" products sold on ROM chips (replacement operating systems)

    ------------------------------

    Subject: 7.1.10) How can software detect NTSC versus PAL/SECAM computer types?

    Several techniques are available to programmers, as follows:

    1) The XL OS (not the 400/800 OS) provides a flag called PALNTS at decimal memory location 98 (hex: $62). PALNTS indicates whether the CTIA/GTIA/FGTIA has reported itself to be NTSC or PAL/SECAM, where 0 means NTSC, or 1 means PAL/SECAM. In Atari BASIC, enter "? PEEK(98)" to determine the value of the PALNTS flag.

    2) An approach which works on all 400/800/XL/XE systems is to use the same method used by the XL OS to set the value of the PALNTS flag described above. That is, to read and interpret the "PAL" memory flag, decimal location 53268 (hex: $D014). The value of PAL is provided by the CTIA/GTIA/FGTIA chip
    itself. Meanings are:
    Bit 1-3 clear (xxxx000x) = PAL/SECAM
    Bit 1-3 set (xxxx111x) = NTSC
    (Proper interpretation of the value returned by PEEK(53268) in Atari BASIC would thus be a bit of a programming challenge. This is left to the reader!)

    3) Software may determine NTSC or PAL/SECAM by determining how many scan
    lines are being generated by ANTIC. This is done by monitoring the VCOUNT memory register. VCOUNT (54283 decimal, $D40B hex) is used by ANTIC to keep track of which line is currently being generated on the screen. Values
    reflect the line count divided by two. VCOUNT values range from zero to 130 for an NTSC ANTIC (131*2=262 scan lines), while VCOUNT values range from zero to 155 for a PAL ANTIC (156*2=312 scan lines).

    ------------------------------

    Subject: 7.2.1) What is Atari BASIC?

    (Thanks to Laurent Delsarte for cartridge variation pics and testing.)

    BASIC is an acronym for Beginner's All-purpose Symbolic Instruction Code. Developed by John Kemeney and Thomas Kurtz in the mid 1960s at Dartmouth College, BASIC is one of the earliest and simplest high-level programming languages, incorporating components of FORTRAN and ALGOL.

    In October 1978 Atari contracted with Shepardson Microsystems, Inc. (SMI; headed by Bob Shepardson) to create a version of BASIC (as well as a File Management System) for the upcoming Atari personal computers. Credits:
    Paul Laughton - Main programmer (also wrote: FMS for DOS I and DOS 2.0S)
    Kathleen O'Brien - Floating point routines (also wrote: Assembler Editor)
    Bill Wilkinson - Preliminary specifications for the language;
    floating point scheme design
    Paul Krasno - Implemented the transcendental routines

    While SMI developed Atari BASIC to occupy 10KiB of ROM, including a 2KiB Floating Point Package (FPP) for internal use by the language, Atari placed
    the FPP component in operating system ROM (memory locations 55296 to 57343 or $D800 to $DFFF) for universal availability. Thus, the Atari BASIC ROM was slimmed to 8KiB. Please see the "What is the Atari OS" section of this FAQ
    for further information about the FPP.

    Atari released 3 different Revisions of Atari BASIC:

    Revision A
    ----------
    - Shipped with the 400 computer systems from 1979-1981
    - Shipped with the 800 computer systems from 1979-1982

    Atari BASIC Rev. A was produced by Atari on cartridge (CXL4002), standard 400/800-style brown label, which reads either "BASIC Computer Program" (early) or "BASIC Computing Language" (most).

    The cartridge was produced in mass quantities before SMI had finished
    debugging it. One place these bugs are documented is in this article by Steve Hanson from Compute! magazine, Oct. 1981: http://www.atarimagazines.com/compute/issue17/171_1_DOCUMENTED_ATARI_BUGS.php

    On February 25, 1981, the source code to Atari BASIC (including the FPP) was purchased from SMI by Optimized Systems Software (OSS), headed by former SMI employees Bill Wilkinson and Mike Peters.

    The Atari BASIC Source Book (Compute! Books, 1983, 0-942386-15-9), authored by Bill Wilkinson, Kathleen O'Brien and Paul Laughton, made the source code to Atari BASIC (Rev. A; and including the FPP) available to the public.
    Available: http://users.telenet.be/kim1-6502/6502/absb.html

    Revision B
    ----------
    When the 600XL/800XL computers shipped in the fall of 1983 they included a newly debugged Atari BASIC Rev. B built-in on ROM. Unfortunately, while most existing bugs were fixed, Rev. B introduced a new bug more serious than any of the earlier problems. In his article in the June 1985 issue of Compute!, Bill Wilkinson writes:
    Each time you LOAD (or CLOAD or RUN "filename") a program, rev B adds 16
    bytes to the size of your program. If you then save the program, the next
    time you load it in it grows by ANOTHER 16 bytes, and so on.
    http://www.atarimagazines.com/compute/issue61/323_1_INSIGHT_Atari.php
    The problem can be alleviated by periodically, if not exclusively, using
    LIST instead of SAVE or CSAVE to save your programs.

    Atari never produced Atari BASIC Rev. B on cartridge.

    "Revision C Converter: Type-in fix for buggy BASIC revision B" by Matthew Ratcliff was published in the September 1985 issue of Antic: http://www.atarimagazines.com/v4n5/revisioncconverter.html

    Revision C
    ----------
    Atari BASIC Rev. C is the final "fully debugged" version. It was first made available on cartridge from Atari Customer Service in June 1984 (free to 600XL/800XL owners still within warranty). The silver label on the first Rev. C cartridges reads "(c)1982 Atari, Inc." and "Made in U.S.A." Atari, Corp. also produced Rev. C on cartridge, using two different silver labels designs, both of which read "(c)1985 Atari Corp." and "Made in Taiwan". Rev. C was
    also built-in on ROM in late-production 800XL computers as well as the 65XE, the 130XE, the XE System Console, and the 800XE.

    Determining Revision version
    ----------------------------
    When running Atari BASIC, memory location 43234 ($A8E2, BASIC ROM) indicates which Revision of BASIC is running. At the READY prompt, enter:
    ? PEEK(43234)

    If the result is: You have Revision: Atari Part#:
    162 A C012402+C014502
    96 B C060302A
    234 C C024947A

    All 3 versions of Atari BASIC may be available for download here: http://www.ataripreservation.org/websites/freddy.offenga/atari_dev.htm

    Manuals from Atari:
    (See the "What is the Atari OS" FAQ section for FPP documentation.)
    - Atari BASIC (Wiley Self-Teaching Guide) C014385 by Albrecht/Finkel/Brown
    (c)1979, 332 pages (see: http://www.atariarchives.org/basic/)
    - Shipped with the 400 computer systems from 1979-1981
    - Shipped with the 800 computer systems from 1979-1982
    - BASIC Reference Manual (400/800 ed.), C015307, (c)1980, 120 pages
    - Authors: Carol Shaw and Keith Brewster
    - Shipped with the 800 computer systems from 1980-1982
    - Inside Atari BASIC, C060992, Carris for Reston, (c)1983, 183 pages
    - Atari BASIC Reference Manual Update, C061038, (c)1982, 6 pages
    - BASIC Reference Manual (400/800/1200XL ed.), C061456 / BX4211, (c)1983,
    126 pages
    - Atari BASIC Reference Guide For Experience Programmers, C061570, (c)1983,
    14 pages
    - Atari BASIC Reference Guide, C061948, (c)1983 (international; 61 pages)

    ------------------------------

    Subject: 7.2.2) How do I load/run or save an Atari BASIC program on cassette?

    To load and run an Atari BASIC program from cassette:
    1. Insert the cassette into the recorder.
    2. Use REWIND or ADVANCE/F.FWD on the recorder, if necessary, to bring the
    tape to the position where the program is located.
    3. Boot the computer to the Atari BASIC READY prompt.
    4. There are several possibilities for the next step, depending on how the
    program was saved, and whether you want to run the program or just load
    it into RAM. Enter one of the following four commands:
    a. CLOAD loads programs saved with CSAVE
    b. LOAD "C:" loads programs saved with SAVE "C:"
    c. ENTER "C:" loads programs saved with LIST "C:"
    d. RUN "C:" loads and runs programs saved with SAVE "C:" 5. The system buzzer sounds (to signal you to press PLAY on the recorder).
    6. Press PLAY on the recorder.
    7. Press the RETURN key on the computer keyboard.
    Tape motion starts, the program loads from the cassette into RAM, and then
    tape motion stops.
    Then, if you entered RUN "C:" above, the loaded program runs; otherwise a
    READY prompt is displayed.
    8. You may press STOP on the recorder once the program is loaded, unless the
    program is designed to control further tape motion start/stop.
    9. If the loaded program is not running yet (you did not enter RUN "C:"
    above), now enter the command: RUN

    To save an Atari BASIC program from computer RAM to cassette:
    1. Insert a cassette into the recorder.
    2. Use REWIND or ADVANCE/F.FWD on the recorder, if necessary, to bring the
    tape to the position where the program is to be recorded.
    3. Enter one of the following three commands:
    a. CSAVE
    (short inter-record gap - fastest read/write speed - tokenized files)
    - According to Atari Tech Tip #5, 11/17/82, regarding the 400/800
    computer models, pressing SYSTEM RESET does not reset the data I/O
    line in POKEY. Subsequent use of CSAVE is unreliable because the
    data I/O line is not clear, POKEY sends garbage, and the data stored
    is unrecoverable.
    Solution #1: Avoid using SYSTEM RESET before using CSAVE.
    Solution #2: Following use of SYSTEM RESET, execute a serial bus
    command that properly resets POKEY and clears the data I/O line.
    Recommended: LPRINT
    (If a printer is not attached when the LPRINT is executed, an error
    138 occurs. This is normal and does not interfere with the reset of
    POKEY and safe subsequent use of CSAVE.)
    b. SAVE "C:"
    (long inter-record gap - middle read/write speed - tokenized files)
    c. LIST "C:"
    (long inter-record gap - slowest read/write speeds - straight ATASCII -
    tape actually stops in between block reads/writes)
    4. The system buzzer sounds twice (to signal you to press both PLAY and
    RECORD on the recorder).
    5. Press both PLAY and RECORD on the recorder.
    6. Press the RETURN key on the computer keyboard.
    Tape motion starts, the program is copied from RAM to the cassette, and
    then tape motion stops.
    7. You may press STOP on the recorder once recording has finished.

    ------------------------------

    Subject: 7.3.1) What is Atari DOS, and what versions did Atari release?

    This FAQ section describes the various DOS versions produced by Atari for use with their 8-bit computers: DOS I, DOS 2.0S, DOS 3, DOS 2.5, DOS XE, DOS XLE

    On the Atari, a complete Disk Operating System (DOS) consists of a complex, flexible combination of software components provided in the Atari OS on ROM with software components loaded into RAM from disk:

    1) SIO (Serial I/O bus Utility) routine
    - Component of the Atari OS
    - Generalized low level communications with SIO bus devices, including
    disk drives
    - Utilized by the Resident Diskette Handler
    - Normally utilized by the FMS
    2) Resident Diskette Handler
    - Component of the Atari OS
    - Utilizes SIO for communications with disk drives
    - Supports just five functions (four on the 400/800):
    1. GET SECTOR
    - Read a specified sector
    2. PUT SECTOR WITH VERIFY
    - Write sector; check sector to see if written
    3. STATUS REQUEST
    - Ask the disk controller for its status
    4. FORMAT
    - Issue a format command to the disk controller
    5. PUT SECTOR WITHOUT VERIFY
    - Write sector (don't check sector to see if written)
    - Available on XL/XE; not available on 400/800
    - 400/800: Uses 128 byte sectors
    XL/XE: Can read/write disk sectors having variable length from 1 to
    65536 bytes. Default=128 bytes
    - Normally only used to load the FMS from disk. Exception: Atari DOS I
    uses the OS-resident Diskette Handler for all disk communications.
    3) FMS (File Management Subsystem)
    - Must be loaded from disk (using the Resident Diskette Handler)
    - Normally utilizes SIO for disk drive communications
    - Does not utilize the Resident Diskette Handler. Exception: Atari
    DOS I uses the OS-resident Diskette Handler for all disk
    communications.
    - Normally provides a D: Disk File Manager device handler that is
    compatible with CIO
    4) CIO (Central Input/Output Utility) routine
    - Component of the Atari OS
    - Generalized high level, device independent access to device handlers,
    including any disk drive device handler provided by a FMS
    5) DUP (Disk Utility Package) or equivalent software program(s)
    - Optionally provided with a FMS
    - Must be loaded from disk using the FMS
    - Typically a DOS menu program, but could take any form of software
    that provides a user interface to FMS management functions
    - Normally utilizes CIO for carrying out disk management operations

    In practice, those DOS components loaded into memory from disk, that is, a FMS and any additional programs distributed with that FMS (such as a DUP), are normally collectively described as a "DOS" on the Atari.

    DOS I
    -----
    DISK OPERATING SYSTEM 9/24/79 COPYRIGHT 1979 ATARI
    - Contains two main parts:
    - A File Management Subsystem (FMS)
    - Developed by Paul Laughton (also wrote: Atari BASIC) for Shepardson
    Microsystems, Inc. (SMI) for Atari
    - A Disk Utility Package (DUP)
    - Shipped with 810 disk drives manufactured from 1980-1981.
    - Disk Utility Package (DOS menu) is loaded into memory with the FMS
    - Uses the OS-resident Diskette Handler for all disk communications via SIO
    - Disk drive type supported: Atari 810 (& compatible)
    - Disk utilization/filesystem: "DOS I"
    - 128 total bytes/sector, with 3 bytes of each sector used to address
    the next sector
    - 40 tracks * 18 sectors/track = 720 total sectors, with 11 sectors used
    for software control or unused by the FMS.
    - Data capacity per diskette:
    709 sectors x 125 bytes/sector = 88,625 bytes/disk
    - Cannot read disks written with DOS II, which require a 3 sector boot
    - 11 special sectors:
    1 Boot sector, containing the boot record accessed by the Atari OS
    at system power-up
    360 Volume Table of Contents (VTOC) (sector usage)
    361-368 File Directory (8 directory entries per sector)
    720 unused by the FMS (FMS interprets the VTOC sector bit map as
    sectors numbered 0-719, ignoring nonexistent sector 0, while the
    Atari 810 drive uses sectors numbered 1-720)
    - Maximum of 64 files per diskette (8-sector File Directory)
    - Uses binary file format unsupported by any other DOS version for the Atari
    - D: Disk File Manager supports up to four 810 disk drives, D1: through D4:
    - To configure DOS I for fewer drives (freeing system environment RAM),
    adjust memory location 1802 ($70A or DRVBYT):
    1. Boot the system to the BASIC READY prompt
    2. Enter one of:
    - POKE 1802,1 (for a one drive system; saves 397 bytes)
    - POKE 1802,3 (for a two drive system, saves 258 bytes)
    - POKE 1802,7 (for a three drive system, saves 130 bytes)
    - POKE 1802,15 (for a four drive system; DOS I default value)
    3. Go to DOS and use menu item H (WRITE DOS FILE) to write the DOS.SYS
    file (with the new value of location 1802) to disk, replacing any
    existing copy of DOS on that disk.
    - Can open up to 3 files simultaneously
    - Configurable by adjusting memory location 1801 ($709 or SABYTE) via
    the same process as described for adjusting the number of disk drives.
    Valid values for DOS I are 1-3 inclusive. Default is 3.
    - AUTO.SYS can be used to automatically poke data in RAM locations on
    system startup.
    - Files copied or duplicated in small buffer
    - Must redisplay menu before issuing new command
    - Can only write DOS system file to drive 1
    - N. DEFINE DEVICE menu option: "The full implementation of this selection is
    not supported, so use it with caution." --DOS Reference Manual p.39
    - DOS I is not compatible with the 850 Interface Module R: device handler
    - Disk File Manager Master Copy (CX8101) disk contains:
    DOS.SYS both the FMS with D: Disk File Manager and DUP with DOS Menu,
    loaded by OS-resident Diskette Handler on system startup
    - Manual: Disk Operating System Reference Manual C015200

    DOS 2.0S
    --------
    DISK OPERATING SYSTEM II VERSION 2.0S COPYRIGHT 1980 ATARI
    - Shipped with 810 and 1050 disk drives manufactured from 1981-1983.
    Master Diskette also shipped with the Atari Touch Tablet.
    - FMS (DOS.SYS) component developed by Paul Laughton for Shepardson
    Microsystems, Inc. (SMI) for Atari, based on the Atari DOS I FMS.
    Released code version: "19-Aug-80"
    - Disk Utility Package (DUP.SYS -- DOS menu) is separate from the FMS, and
    optional for use of the FMS, freeing up memory for user programs when the
    DUP is not needed. Released code version: "ver 2.9 11/18/80"
    - Does not use the OS-resident Diskette Handler once the FMS is loaded.
    - Utilizes SIO for disk drive communications
    - MEM.SAV file can be employed to preserve the contents of memory to disk
    when DUP.SYS is loaded.
    - Introduces support for AUTORUN.SYS binary file launch upon system boot
    (replaces AUTO.SYS of DOS I)
    - Disk drive type supported: Atari 810 (& compatible)
    - Disk utilization/filesystem: "DOS 2.0 Single Density"
    - 128 total bytes/sector, with 3 bytes of each sector used to address
    the next sector
    - 40 tracks * 18 sectors/track = 720 total sectors, with 13 sectors used
    for software control or unused by the FMS.
    - Data capacity per diskette:
    707 sectors x 125 bytes/sector = 88,375 bytes/disk
    - Requires a 3 sector boot (provision for double density version DOS 2.0D)
    - 13 special sectors:
    1-3 Boot sectors, containing the boot record accessed by the Atari
    OS at system power-up
    360 Volume Table of Contents (sector usage)
    361-368 File Directory (8 directory entries per sector)
    720 unused by the FMS (same as DOS I)
    - Maximum of 64 files per diskette (8-sector File Directory)
    - Difference in boot record lengths means DOS I and DOS II disks cannot be
    interchanged.
    - Established standard binary file format supported by ALL other DOS versions
    for the Atari (exception: Atari DOS I)
    - By default, the CIO-compatible D: Disk File Manager supports up to two 810
    disk drives, D1: and D2:
    - To configure DOS 2.0S for the number of 810 disk drives attached to the
    system (which affects system environment RAM), adjust memory location
    1802 ($70A or DRVBYT):
    1. Boot the system to the BASIC READY prompt
    2. Enter one of:
    - POKE 1802,1 (D1:)
    - POKE 1802,3 (D1: and D2: -- DOS 2.0S default value)
    - POKE 1802,7 (D1:, D2:, D3:)
    - POKE 1802,15 (D1:, D2:, D3:, D4:)
    - POKE 1802,31 (D1:, D2:, D3:, D4:, D5:)
    - POKE 1802,63 (D1:, D2:, D3:, D4:, D5:, D6:)
    - POKE 1802,127 (D1:, D2:, D3:, D4:, D5:, D6:, D7:)
    - POKE 1802,255 (D1:, D2:, D3:, D4:, D5:, D6:, D7:, D8:)
    3. Go to DOS and use menu item H (WRITE DOS FILES) to write the DOS
    system files (with the new value of location 1802) to disk,
    replacing any existing copy of DOS on that disk.
    - By default, can open up to 3 files simultaneously
    - Configurable by adjusting memory location 1801 ($709 or SABYTE) via
    the same process as described for adjusting the number of disk drives.
    Valid values for DOS 2.0S are 1-7 inclusive. Default is 3.
    - Files copied or duplicated into buffer which can be as large as user memory
    area
    - SAVE BINARY FILE has "/A" option allowing two files to be appended together
    - Can create load-and-go type file which enables you to select a file and
    have it automatically run without entering a RUN address
    - Diskette with bad sectors detected cannot be formatted
    - Screen margins are reset when DUP is entered
    - DUP: May enter another command or redisplay menu after a command
    - Can write DOS files to any drive
    - NOTE/POINT are available for random file access
    - Atari 810 Master Diskette II or Atari 810/1050 Master Diskette II (CX8104)
    disk contains:
    DOS.SYS FMS with D: Disk File Manager, loaded by OS-resident
    Diskette Handler on system startup
    DUP.SYS Disk Utility Package (DOS menu)
    AUTORUN.SYS Loads the R: device handler from an 850 Interface Module
    - Shipped with one Atari CX8111 Formatted Diskette II
    - Manuals:
    - Disk Operating System II Reference Manual C016347
    - Disk Utilities Listing, February 1981 C016558 (without binder)
    (DUP.SYS source code, early release)
    - DOS Utilities Source Listing (DOS II), August 1981 C017894
    ("Disk Utility Programs (DUP) ver 2.9 11/18/80")
    - Atari 810 Disk Drive: An Introduction to the Disk Operating System
    C060054 (CO60054)
    - Atari 1050 Disk Drive: An Introduction to the Disk Operating System
    C061529
    - On February 25, 1981, the source code to the Atari DOS 2.0S FMS (DOS.SYS)
    was purchased from SMI by Optimized Systems Software (OSS), headed by
    former SMI employees Bill Wilkinson and Mike Peters.
    - Inside Atari DOS (Compute! Books, 1982, 0-942386-02-7), authored by
    Bill Wilkinson, made the source code to the Atari DOS 2.0S FMS (DOS.SYS)
    available to the public. See: http://www.atariarchives.org/iad/
    - Modified versions of DOS 2.0S were widely created and exchanged among Atari
    users. Also notably, the first 3rd-party disk drives for the Atari, the
    Percom RFD-40S1 and RFD-44S1, were initially (1982) distributed with a
    program ("BLD") to build Percom DOS 2.0P (double density support) from a
    copy of DOS 2.0S.

    DOS 3
    -----
    Atari DOS 3 Copyright 1983
    - Shipped with 1050 disk drives manufactured from 1984 through early 1985.
    - Developed by 3-person team at Atari, led by Richard K. (Hud) Nordin
    - Project started at Atari by early 1981 under systems software manager
    Brian Johnston. Contributor: NEOTERIC consultant Harry B. Stewart
    - Disk drive types supported:
    1) Atari 810 (& compatible)
    2) Atari 1050 (& compatible)
    3) Atari 1450XLD built-in (1983 version: DS/ED 260KiB drive)
    Minimal support only: A single 1450XLD disk drive appears to DOS 3 as
    two Atari 1050 drives. That is, side 1 is accessed as D1: and side 2
    is accessed as D2:.
    - Disk utilization/filesystems:
    1) "DOS 3 Single Density"
    - Sector = 128 bytes
    - Block = 8 sectors = 1024 bytes
    - Track = 18 sectors = 2304 bytes
    - Disk contains 40 tracks, or 720 sectors, or 90 blocks, with 3 blocks
    used for software control.
    - Data capacity per diskette:
    87 blocks x 1024 bytes/block = 89,088 bytes/disk
    - Blocks 1-3 are used by the system as 24 special sectors:
    1-9 Boot sectors, containing the boot record accessed by the
    Atari OS at system power-up
    10-15 unused
    16-23 File Directory
    24 File Allocation Table (block usage)
    - Maximum of 63 files per diskette (8-sector File Directory)
    2) "DOS 3 Double Density" (enhanced/dual density)
    - Sector = 128 bytes
    - Block = 8 sectors = 1024 bytes
    - Track = 26 sectors = 3328 bytes
    - Disk contains 40 tracks, or 1040 sectors, or 130 blocks, with 3
    blocks used for software control.
    - Data capacity per diskette:
    127 blocks x 1024 bytes/block = 130,048 bytes/disk
    - Blocks 1-3 are used by the system as 24 special sectors:
    1-9 Boot sectors, containing the boot record accessed by the
    Atari OS at system power-up
    10-15 unused
    16-23 File Directory
    24 File Allocation Table (block usage)
    - Backward compatible with DOS 3 Single Density
    - Maximum of 63 files per diskette (8-sector File Directory)
    - Keyboard Command Processor (KCP) is separate from the FMS, and optional for
    use of the FMS, freeing up memory for user programs when the KCP DOS
    subfunctions and the DOS menu are not needed.
    - KCP Overlay (DOS menu) is separate from the FMS and KCP, and optional for
    use of the FMS and KCP, freeing up memory for user programs when the DOS
    menu is not needed.
    - MEM.SAV file can be employed to preserve the contents of memory to disk
    when the KCP Overlay (DOS menu) is loaded.
    - Supports AUTORUN.SYS binary file launch upon system boot
    - File manager and buffers now take up less space than the DOS 2 equivalents.
    All utilities, such as COPY, INIT, DUPLICATE (all UTL files) are called
    into memory only as needed. Each is maintained in a separate file.
    - Provides a direct method for the user to modify the FMS parameters
    - Provides an online HELP feature
    - Compared to DOS 2: The NOTE and POINT commands return a pointer number
    relative to the start of a file (byte 0) rather than an absolute sector and
    byte location within the sector.
    - Master Diskette 3 (DX5052) contains:
    FMS.SYS FMS with D: Disk File Manager, loaded by OS-resident
    Diskette Handler on system startup. Contains subfunctions:
    ERASE FILE, RENAME FILE, PROTECT FILE, UNPROTECT FILE, LOAD
    KCP.SYS Keyboard Command Processor, loaded on system startup if a
    cartridge is present. Contains subfunctions: SAVE,
    GO AT HEX ADDRESS, TO CARTRIDGE, COPY FILE, INIT DISK,
    DUPLICATE DISK, ACCESS DOS 2
    KCPOVER.SYS KCP Overlay, displays the DOS menu and process commands
    COPY.UTL COPY/APPEND utility
    DUPDISK.UTL DUPLICATE utility
    INIT.UTL INIT Disk utility
    CONVERT.UTL ACCESS DOS 2 utility, use to copy files from a DOS 2.0S disk
    to a DOS 3 disk
    HELP.UTL HELP utility
    HELP.TXT Text information displayed by the HELP utility
    HANDLERS.SYS Loads the R: handler from an Atari 850 Interface Module

    [continued in next message]

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)