"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/ |