7.1.1) What is the Atari Operating System?

"An operating system (OS) is a collection of software that manages computer
hardware resources and provides common services for computer programs.  The
operating system is a vital component of the system software in a computer
system.  Application programs require an operating system to function."
(Wikipedia 8/15/2012)

Atari 8-bit computers were supplied with the proprietary Atari Operating
System contained in Read Only Memory (ROM) as an integral feature of the
computer.  Major design elements of the Atari OS (derived here from De Re
Atari):

  MONITOR
  Executed upon system power (Coldstart) or [System Reset] keypress
  (Warmstart).  Sets up memory management, initializes I/O Subsystem, sets up
  System Vectors, boots (loads software into RAM) from cassette or diskette if
  present, selects and launches program execution environment

  INTERRUPT PROCESSING STRUCTURE
  The OS processes 6502 interrupts as generated by events including: keyboard
  keystrokes, the [Break] key, some serial bus events, system timer timeouts,
  and the vertical blank interval on the television/monitor.  An Interrupt
  ReQuest (IRQ) Handler and a NonMaskable Interrupt (NMI) Handler are both
  provided.

  SYSTEM VECTORS
  Design consideration allows for:
   - User programs to directly utilize OS routines
   - User programs to substitute for OS routines

  INPUT/OUTPUT SUBSYSTEM
  Multi-layered provision for user program access to hardware peripherals.
  Device Handlers may be added by user programs.  Includes a complete Cassette
  Handler and a rudimentary Diskette Handler, but notably does not include a
  complete Disk Operating System.  Described in greater detail in a separate
  section of this FAQ list.

  REAL TIME PROGRAMMING
  Hardware timers and system software timers are provided to facilitate
  predictable and controllable speeds of software routine execution.

  ROM CHARACTER SET
  Atari ASCII, or ATASCII.  May be substituted by user programs.  Described in
  greater detail in a separate section of this FAQ list.

  FLOATING POINT PACKAGE (FPP)
  Set of mathematical routines that use binary coded decimal (BCD) arithmetic
  to provide standard mathematical functions (+, -, *, /), exponential and
  logarithmic functions as well as conversion from ATASCII to BCD and BCD to
  ATASCII.  Developed apart from the rest of the Atari OS by Shepardson
  Microsystems, Inc. (SMI) for internal use by Atari BASIC, but placed in
  operating system ROM by Atari for universal availability.

Software can reliably determine the version of the Atari Operating System
running as follows. (primary source: OS Manual XL Addendum, p.28)

First, determine whether the system is running a 400/800 OS version or an
XL OS version by checking the value of memory location $FCD8.  In Atari
BASIC, PEEK(64728) is the equivalent test.
     Read Result   Means
     $A2 (162)     400/800 OS
     $4C (76)      XL OS

Then, if running a 400/800 OS version as determined above, now check the
values of BOTH memory locations $FFF8 and $FFF9.  In Atari BASIC, PEEK(65528)
and also PEEK(65529) and interpret the results as follows:
$FFF8 (65528)   $FFF9 (65529)    400/800 OS Rev.       Rev. Date
-------------   -------------    ---------------       ---------
   $FF (255)                  --> "Operating System 255"1979-04 (VERY RARE)
   $DD (221)       $57 (87)   --> Rev.A/NTSC            1979-06 (uncommon)
   $D6 (214)       $57 (87)   --> Rev.A/PAL             1979-06 (common)
   $F3 (243)       $E6 (230)  --> Rev.B/NTSC            1981-09 (common)
   $22 (34)        $58 (88)   --> Rev.B/PAL             1981-09 (NOT SHIPPED?)

About "Operating System 255" --
A pre-production demo unit release, possibly a few thousand once existed.
For more info see http://mcurrent.name/os255/410insert-os255.htm and
http://mcurrent.name/os255/softside.htm and the 17-Nov-79 essay
Atari_CASSETTE_TAPES.pdf found in post #2 in:
http://atariage.com/forums/topic/204930-some-early-atari-a8-development-docs/

If running an XL OS version as determined above, the Revision number of the XL
OS is available at memory location $FFF7.  In Atari BASIC, PEEK(65527) for the
XL OS Revision number.  XL OS Revisions shipped:
    XL OS  (Dec.)  Hex   Rev. Date    Shipped in
    Rev.A   (10)   $0A   1982-10-26   1200XL (most)
    Rev.B   (11)   $0B   1982-12-23   1200XL (rare--via service centers only?)
    Rev.1    (1)   $01   1983-03-11   600XL(all)/800XL(early)
    Rev.2    (2)   $02   1983-05-10   800XL(most)/65XE(most)/130XE(most)
    Rev.3    (3)   $03   1985-03-01   65XE(later)/130XE(later)/800XE(all)
    Rev.4    (4)   $04   1987-05-07   XE System Console (all)
    Rev.3B  (59)   $3B   1987-07-21   Arabic Atari 65XE Najm (all)

OS MANUALS FROM ATARI (FPP coverage included)
- Operating System User's Manual
    - Author: Harry B. Stewart, NEOTERIC for Atari
    - (c)1980 edition
       - GREEN title page (printings with line-printed title page include
         printing date imprint; printing with Atari logo on title page lacks
         printing date)
       - 215 numbered pages   
       - Table of contents lacks page numbers
       - Contents of pages numbered 191 and 192 are reversed
       - The last two sections are:
         pp. 177-199 Appendix K. OS Database Variable Functional Descriptions
         pp. 200-215 Appendix L. Equate File (400/800 OS Rev.A source excerpt)
       - Included in earlier printings of C016555 Atari Personal Computer
         System Operating System User's Manual and Hardware Manual (official
         nickname: "Technical User's Notes"), including printings dated:
         November 1980 (orange cover page), August 1981 (cover page??)
    - (c)1980 Rev. 0.2 edition
       - GREEN title page (line-printed)
       - 261 numbered pages
       - Identical to the earlier (c)1980 edition through page number 191
          - Confusingly, this includes the portion of the superceded version
            of Appendix K from the earlier edition on pages numbered 177-191
       - Pages marked 192 through 261 marked: "C016555 - Rev. 0.2"
       - Pages 192-197: Appendix K. Device Characteristics
         (content not included in the earlier edition)
       - Pages 198-261: Appendix L. OS Database Variable Functional
         Descriptions
         (complete revision of the Appendix K. from the earlier edition)
       - The Appendix L. Equate File content from the earlier edition is not
         included.
       - Included in January 1982 printing of C016555 Atari Personal Computer
         System Operating System User's Manual and Hardware Manual (official
         nickname: "Technical User's Notes") (yellow cover page)
    - (c)1982 edition
       - GRAY title page (with Atari logo)
       - 273 numbered pages
       - Completely revised table of contents, including page numbers
       - Completely revised layout; content is heavily revised in some places
       - Includes Index (pages 271-273)
       - Included in C016555 Rev. A (1982) Technical Reference Notes
- De Re Atari: A Guide to Effective Programming
    - C060070, (c)1981 edition (early version for registered developers)
      https://archive.org/details/DeReAtari_early_version
    - APX-90008, (c)1982 edition (common version sold via APX)
      http://www.atariarchives.org/dere/
    - Also published in German and French language editions
- Operating System Manual: Supplement to Atari 400/800 Technical Reference
   Notes C024515 (ii+38 pages covers changes from the 400/800 OS to the XL OS)
    - REV. A with green cover: "Atari 1200XL: Atari Home Computer System"
    - White cover: "Atari XL Addendum: Atari Home Computer System"

OS SOURCE CODE PUBLISHED BY ATARI
(excluding the FPP; see "What is Atari BASIC" FAQ section for FPP source code)
- Operating System Source Listing CA016557 with binder
    - Should exist.  February 1981?
    - Complete 400/800 OS Rev.A source code
- Operating System Source Listing C017893, August 1981, (c)1981
    - Complete 400/800 OS Rev.A source code
- Operating System Source Listing, (c)1982, 129 numbered+24 un-numbered pages
    - BLUE title page (with Atari logo)
    - Complete 400/800 OS Rev.B source code (numbered pages)
    - Cross Reference section (un-numbered pages)
    - Included in C016555 Rev. A (1982) Technical Reference Notes
- According to Mapping the Atari, Revised Ed. by Ian Chadwick, page 212, or
   http://www.atariarchives.org/mapping/appendix12.php :
   "Atari did produce a listed source code for the XL OS, although for some
    reason it was never published for public sale as it was intended...It is
    an excellent 500+ page resource document."

OS DEVELOPER CREDITS AT ATARI
(see "What is Atari BASIC" FAQ section for FPP credits)

400/800 OS
   Rev.A
      David Crane         - Design/programming -
                            graphic assistance routines (line draw, area fill)
                            (also wrote: APX Outlaw/Howitzer)
      Alan Miller         - Design/programming
                            (also wrote: Basketball)
      Larry Kaplan        - Design/programming
                            (also wrote: Video Easel, Super Breakout)
      Harry B. Stewart    - Design (as Neoteric consultant to Atari)
                            (also wrote: APX Extended WSFN, Atari PILOT)
      Gary Palmer         - Worked on the I/O portion (as consultant to Atari)
      Ian Shepard         - Developed the disk drive functions
      R. Scott Scheiman   - ATASCII

   Rev.B
      Michael P. Mahar    - Fix several problems
      R. Scott Scheiman   - Fix several problems

XL OS
   Rev.A
      Harry B. Stewart        - External Reference Specification
                                (Neoteric consultant to Atari)
      Lane Winner             - ?
      R. Scott Scheiman       - Handler Loader
      Y. M. (Amy) Chen        - Relocating Loader; International Character Set
      Mike W. Colburn         - Self Test
      Richard K. (Hud) Nordin - ?

   Rev.B
      R. Scott Scheiman   - Fix several problems

   Rev.1
      R. Scott Scheiman       - Support for PBI and on-board BASIC
      Richard K. (Hud) Nordin - Support for PBI and on-board BASIC
      Y. M. (Amy) Chen        - Support for PBI and on-board BASIC

   Rev.2
      R. Scott Scheiman   - Fix several problems

   Rev.3
      ?                   - Self Test updated; Fix one problem

   Rev.4
      ?                   - Support for detachable keyboard and on-board game

   Rev.3B
      ?                   - Arabic character set and right-to-left text entry

Source code and further details for all known shipped and prototype versions
of the Atari OS, based on disassembled ROM images combined with published
source listings, was (amazingly) published by Tomasz Krasuski at
http://www.atariage.com/forums/topic/201133-os-source-code-all-revisions/
About Us - Contact - Credits - Powered with Webdev - © Atarimania 2003-2024