AllARl%oo/8oo ATARI HOME COMPUTERSYSTEM
TECHN ICAL REFERENC NE OTES includes:
OperatingSystemUser'sManual OperatingSystemSourceListing and HardwareManual
TO ALL PTRSONS RECTIVINCfHIS DOCUMTNT Reproductionis forbidden without lhe specificwritten permissionof ATARI,lN(. Sunnr\ale,(A q408b.No risht to reprodu(elhi\ do(umenr, nor the.ubie(l m.tllerlhereof,i. Brantedunles\br $ri en rgreement$ith, or rvritlenpermissionfrom the CorDoration.
/t\"
" ATAR| ^-","", ".-**--.c.*-!o
ATARI%oo/8oo ATARI"HOME COMPUTERSYSTEM
OPERATING SYSTEM MANUAL USER'S
/t\
ATARI'. -"^. --^--,-.-*-, s
C O P Y R T G H T1 9 8 2 , A T A R I , I N C . ALL RIGHTS RESERVED
IO ATT PERSONS RECEIVINC THIS DOCUMENf Reproduclion is forbidden without the specific written permission of ATARI,lNC. Sunnyva'e, CA 94086.No rightto reproduc€this documenl, nor the subiectmatter thereof, is grantedunlessby written agreem€nrwilh, or wrillen oermission from the CorDoration.
Every efforl: has been made to ensure that this manual accurately alocuments this product of the ATARI Hoine Computer Division. Ho$rever, due to the ongoing improvement anal update of the computer software and hardware, ATARI, IllC. cannot guarantee the accuracy of printed rnaterial after the date of publication and disclains 'o-r changes, errors, or omissionsliability
ATARI Ho e Cofip uter Opereting Sgsten USER'S MANUAL
PREFACE
17
INTRODUCTION
1A
CENERAL DESCRIPTION OF THE ATARI COI'IPUTERSYSTEM
1A
CooventionE U6ed in ThiE Manoel HEXADECII4AL NUMBERS MEI.IORYADDRESSES KILOBYTES OF IIEIIORY FASCAL AS AN ALGORITHM-SPECIFICATIAN LANGUAC€ MSI,IORYLAVOUTS BACKUS-NAURFORM (BNF) OS-EOUATE F ILSNAI.IES
20 20 20
OFERATINC SYSTEM FUNCTIONALORGANIZATION I n p u t l o { . r t p u t S u bs q s t e o Interr"upt Froc es6 ing Initirl i.ation
22 23
Pouer-Up Srts tett| R€9€ t FI oat ing Point A"ithmetic
Pa.kage
24
CONFIGURAIIONS
2e
Progran Envi r onfientE
23
Blac kboard flode Caitr idge Diskette-Boot C a 6s e t t e - 8 o o t
29
R A M E xp a n 6 i o n P e r 'i p h e r a 1 D e v i c e E
27
eane Controt 1erg Progra{r R€coider Ser ia I B|,E DevicaE SYSTEI.I I'IEHORYUI ILI ZAT ION
29
RAHRegion
e9
Pege O Page 1 OS D€ta 8es€ UEer l.lortspate Boot.8€9ion S.reen Displag Li6t F r e € l { e m o r g R e gi o n
4
2A
30 30 30 and Data
31 31
C a rt r i d g e s A a n d g l'lapped I/O Re6ident OS and Floating Point Packag€ Centia 1 Data BeEe DeEc.iption l,le{florq Dgnafii c a P r o Ee 6 E Sgrtem Initializetion C h a n gi n g S c r e e n I ' l o d € s I,/O SUBSYSTET'I Central I/O Utilitg C I 0 D e 5i 9 n P h i t o s o p h q DEVICE INDEPENDENCE DATA ACCESS I'IETHODS I'IULTIPLE DEVICE/FILE CONCURRENCY UNIFIED ERRAR HANDLINE DEVICE EXPANSION CIO CALLINE MECHANISM HANDLER ID -- ICHID [O34O] DEVICE NUMBER_- ICDNO tO341] COMI.IAND BYTE __ ICCMD TO342] -STATUS ICSTA to343l SUFFER ADDRESS ICBALT0344] AND ICBAH IO3451 PUT ADDRESS -ICPTL T0346] AND ICPTH tO347] EUFFER LENGTH/BYTE COUNI -ICBLL to34gl and ICBLH CO349l AUXILIARY INFARi.IATION-ICAXl tO34Al and ICAX2 lO34gl REI4AININC BYTES ( ICAX3- ICAX6 }
39 40 40
40 40 40 4L
C I O F u n ct i o n 5
4L
OpEN --
AEEign DeviEe/Filename to IOCB €nd Readq fot'Acces6 CLoSF -- Terminat€ AccesF to Device/Fi1e and Rel eas6 IOCB OFT CHARACTER9-- Read n Cha.ertarg (B{ te-AI i gned Aec€ss} PUT CHARAC1ERS-- wr.ite n Cha.Ect6rs ( B gt e - A I i g n e d A t c € s E ) e E T R E C O R D- - R e a d U D T o n C h a r € c t € r 6 ( R e e o r d - A l i g n e d A c E e E s) P U T R E C O R D- - t 0 r . i t e U p T o n c h E r a e t e r e ( R e c o . d - A I i g n e d A c c e s s) G E T S T A T U S- - R e t u r n D e v i t e - D e p e n d e n t S t a t u E B gt € € SPECIAL -- 9Decial Function
41 42
43 44 44 45 45
Device/Fi lenene gpecif ication I/O Eraftple
46 47
D e v i c e S p e ci f i . I n + o r r n a t i o n K e q b o a r d H a n dI e r .
50 90
CIO Function Descriotiong
51
T h 6 o . g o f O pe r a t i o n
51
D i E p1 a g H € n d l e r ( S : ) Scaoan llodes TEXT HADE O TEXT }'1ODES1 AND 2 eRAPHICS ODES (Modei 3 Thiough 111 SPLIT*SCREEN CONFIOURATIONS C I O F u n ct i o n D e s e r . i t t i o n 6 User-AIterab 1e DEte Base Variables Theor! of Operation licreen Editor
(E: )
CIO Fun.t ion DeEcrirtiong User-Al terab 1e Data Base Var'i€bIes C a e E e t t e H a n d1 e " ( C : ) C I O F u n ct i o n D e s E r i p t i o n 6 T h e o r g o f O pe r a t i o n Fi 1e Str uctuf e
54 54
61
66
70
Pr inter Handler (F: ) CIO Flnction DeEctiptiong T he o r g o f O p e r € t i o n DiE|( File
Hanager (D: )
CI0 Flnction oescriptionE D € v i c e / F i 1 e n € f i e S p e ci + i E E t i o n
7e 79
al
Fi lenane tli ldcard ing S p e ci a l C I O f u n c t i o n 5 l h e o r g o f O pe r a t i o n F l ' l SD i s k e t t e U t i l i r € t i o n FMS BOOT RECORD FORI'IAT BOOT PROCESS I'IEI.IORYIIAP VALU''IE TABLE OF CONTENTS FILE DIRECTORYFORT4AT FIIS FILE SECTOR FORI'IAT Non-CIO I/0 R e si d e n t D e v i € e H a n dl e r
a9 90 s2 94 99
Vectorg
R e s i d e n t D i s f t € t t e H a n dI e i D i e k e t t € H.nd ler Co|llmand 9 Ser ia 1 BUE l/o
97 99 101
INTERRUPT PRACESSING
102
C h i p - R e Fe t N o n o e E * e bl e
103
Intarrupts
S t a g e 1 V S L A N KP r o c e E s S t a g e 2 V B L A N I 4P i o c e E i H a sk e b l e I n t e r r u p t E Interrupt Initislirstion givstem T ioers Usage Not€9 PoKEY Interiup t i'{ei k S€tting Interrupt and Timer Vector.E gteck Content 3t Interrupt Vector. PointE llisce I laneous ConBiderations FlorrchaitE
1C4
10e 109 109 110 110 111 LLz 113
SYSTEI'I INI TIALI ZATIAN
r16
Pouer-Uplnitialiration(Coldstart)pr.oceduie (lrar.nstart) procedore SgEteo Reset tniti€liz€tion
116 119
FLOATING POINT ARITHI,IETTCPACKAGE Funrtions/Cal
lin9
Sequence6
ASCII to Flodting Point Conversion (AFpt Floating Point to AgCII Conve.sion (FASC) InteEer to Floating Point Conv€teion (IFp) Floating Point to Integei Conversion (FpIt Float ing Point Addltion (FADD' Flo.t ing Point Subtr.action (FSUBI (Fl.lULt F106ting Point Multiplic6tion ( F D M Fl oat ing Point Division Floating Point Loga.ithms (LOe end LOOTO' Floeting Point Etponentiation (EXp end EXpIO' (pLyEVL' Floating Point Polrrnonial Eveluation ( Cleer FRO ZFRO) C1e€i Pege-Z6ro Floetinq Folnt Number (ZF1) L o a d F l o a t i n g P o i f l t N u r D b e rt o F R O ( FLDOR and FLDOP) Losd Flo6tlng Point Nuftber to FR1 ( F L D l R a n d F L D 1 P) Stora Floatinq Point Number Fnor FRO ( FATOR and FSTOP) ove Floating Point Numbsr From FRO to FRl
( Ft'tovEt
123 r23 124 124 t23
127
1eE
Resour'6. Uti I i z.tion Iop l€fientati on Det€i 1s
t??
ADDING NEI.' DEVICE HANDLERS./PER TPHERALS
131
Oevice T€ble CI t l / H € n d l e i l n t 6 . * a c e
134 134
Calling lvlechaniEtn Hendlei. Initialitstion Fsnction6 Suppoited E r F o r H a n dI i n g Rdsourca Al location ZERO-PACE RA}I NONZERO_PAOERAH STACK SPACE H a n dt .e . , / S I O I n t e a f a c e
135 736 140 140
t4r. 141 142
142 L44 L44
Calling MechEnisdr F u n E t i o n 6 S u pp o f t e d Er.r.or Handl ing SEr'ial I/o
8us Chsr€ctefistics
End Protocol
H a r d u a r e / E l e ct r ' i c a I C h e r € c t e r i s t i c s Specificetions Seria I Poit Electrical Bus Comanandg COI'II,IANDFRAI'IE COMhANDFRAI'TEACKNT]WLEDOE DATA FRAI'IE OPERATIONCOMPLETE
10
145 145 147 147 144 148 t49 149
Bu6 T ining
150
H e n d1 s r E n v i r o n m e n t
192
B o o t a b 1 e H € n d1 e r C a r t r i d g e R e si d e n t H a n d1 e r FlolrEh€r'tE
193 153 153
PROCRAI{ENVIRONI'IENTAND INIT IAL I ZATI{]N 147
Certi idge Ceitiidge Cartridte
Without Eooted Suppoft Pac&age tlith gooted EupPoit Pstk€9e
Dis kette-Booted
Sof tuare
Dis lette-Boot FiIe Fordat D i E k e t t e - B o o t P r ' o ce s 5 Saftpl6 Dis kette-Bootab le Prograln LiEting Progia$ to Create Di6kette-Boot FiIeE Caseette-Booted
gof ttare
C66satte-Boot File Foroat Cassette-8oot Proc esE S a o p1 e C . 6 s e t t e - E o o t e b l e P r o g t a L i E t i n g Prograo to Create CEssette_Boot Fi1e5
158 154 r$9 1s9 160 161 L64 165 165 ,.67
1 1 ADVANCEDTECHNIOUESAND APPLICATIAN NOTES Sound eenere t i on
170
Cepabiliti6r Conf I iE t6 l.lith OS
170 170
56?een Graphi,c5
171
Herduare Capabil ities O S C a p a bi l i t i e g C s r r o r C o nt r o I Colo. Contr.ol Alternat€ ChaFacter Setg
171 LVL L71 L7L t7?
Plager/i.1i€5 i le craphics
L74
H a r d | l r a i e C e p a bi l i t i € 9 Conf I icts lrith Og Rerdint
L74 t74
esfte ContFol ler'g
174
Kegboard Control ler SenEing Front Panel Connectorr is I/O Portr Hdrduate Infor'fiation: SoftuarB Infor.nat i on: Othea tliEcellanaouB Softuare
10
170
Infor.fiation:
t74 176 ,.7b 177 179
APPENDICES A p p e n di x A
CIA COMI'IANDBYIE VALUES
lAO
A p p e n di r I
CIO STATUS BYTE VALUES.
1e1
A pp . n d i x C
Stg
LA2
A pp l n d i r D
ATASCI I CODES
143
A p p e n d ir E
DISPLAY CODES ( ATASCIt )
144
A pp . n d i r F
KEYBOARDCI]DES (ATASCt I }
1€9
A p p e n di x c
PRINTER CODES (ATASCI I '
146
A p p e n di r H
SCREEN IiODE CI.IARACTER ISTICS
1Sg
A p p e n d1 r I
SERIAL BUS ID AND COI.ITIANDSUMMARY
191
A p p e n di r J
ROM VECTORS
19?
A pp e n d I x K
DEVICE CHARACTER I9T ICS
154
STATUS BYTE VALUES
Neqb odrd Di splag ATART 4lotTf.ll Progrem ReEoid er ATARI 82OtTM1 4O-Column Impaet P.inter ATAR! ElOtTMf Dist Drive Appendir
L --
Central
OS DATA BASE VARIABLE FUNCTIANAL DESCRIPT IONS
Data 8a9e D€sct iotion
ts4 194 194 195 197
200 200
FUNCTIONAL INDEX TO DATA BASE VARTABLED E S C R I P T I O N S2 0 1 A. !{EI'IORY CONFIEURATION
211
t1
B. TEXT/ORAPHTCSSCREEN CurEor. Contio 1 gEreen Mirg ing Tert Scrol I ing A t t r a c t M o de Tabbinq L o gi e a l T e r t L i n e s split Srreen DiFp larj ing Cont?ol Charact€rs E5cap€ (Displeg Follo{ring Control charactet'} DiEp lag Canttol Cheadct€rs l'lod€ Bit-Happed erEph ic5 I nterna I llorking VariebI.s Interna I Charscter Code ConverEion
2L2 213 e15 219 eL6 217
ela eeo ezl eel 2?t
C. DISKETTE HANDLER
e25
D.
223 Baud Rate Deteimination Ca6Eette ModE C a s s e t t e B r r ff e r Internal Worl in9 Vari.EbleE
227
KEYBAARD X e V R e E di n q a n d D e b o u n . i n g 9 p e Ei a l F u n c t i o n 5 Star. t/Stop Autol'ep€it Inverse Vi deo Control Console Kegs: tSELECTI,tSTARtl, PRINTER Printer-Bu++er' Interna I tlo, I ing vaii€bleE
229
eeo e30 231
and tOPllONl
232
E . C E N T R A LI / O R O U T I N E ( C I O , U s e r C e1 1 F € r € o e t e ? s 1/U
L O N E P O1
IJlOEX
Device Statu6 D e v i . e T a bl e CI O l H a n d 1 e r I n t e r + a c e P a t a n e t e r s Zeio-Page IOCB I nterne I l,lorking Veriables H. SERIAL I/A
R O U T I N E( S I O }
U6ea Call P€r'€oeters DeviEe Contro1 Eloc* Bu6 Sound Cont.ol Ser io I Brrs contr.ol Ratrg Logic C he c k s u n Data Buffering Generel BtJ+fer Control C o o o a o d F r a m e 0 u t p u t B t J+ f e r Re. e ive/Trenefii t Data Buffering S I 0 T i m e o ut l n t e r n e l W o rk i n g V a r i a b l e g
233 233 235 235
237
ee7
244 e40 241
ATART CONTRf]LLER5 J o r js t i c * E Paddlee Light Pen D.iving Control lerE
249 246
K,
DISK FILE HANAGER
247
L.
DISK UTILITY POINT€R
244
FLOATINO POINT PACKAOE
248
F o u e r - U p a n d $ g s t e f l R e 6 et
249
RAM 5i zin9 Di 6 k e t t e / C e s 6 e t t e - B o o t Environment Cdntrol
245
. N.
2eo 291
P.
F,
I NDEX
t4
INTERRUPTS Sgctem Ti nea6 Rerl Tifie Cloc I Sgrtem Timer 1 Sgst€|n Tim€r 2 SgEteor Timers 3, 4 and I R A t t l n t e r r u g t V e Et o r E NilI tnte.r.up t V6. tor5 I R O I n t e . r u p t V e ct o r E Haiduare R6giiter Updates Int€.na I tro.L ing VariabIes
e$3 253 233
USER AREAS
254
Alphabetical List of DEte Bese VeriableE ilFoo.g AddreEs Ordeird LiEt of Date 8€6€ Varieblee Float ing Point Pack€ge Variables
259
295 295 255 236 254
270 271
TAELE OF ILLUSTRATIONS Fi gure 1-1. Figure 1-2.
ATARI Home Conputer Bloct leleoorgLegout ChErt
Fi9u.e 4-1. Fi gur.e 4-e.
650A Sqst€n I'lapped t/O
Figur€ 5- 1. Fi gure 5-2. Figurd 5-3. Figure g-4. Figure 5-5. Figuie 9-6. Figure 5-7. Fiqure 5-8. Fi qur.e 5-9. Fi tur.e 5-1O. Fi gur€ 5-11. Utiliretion Fi gure 5-12. Fi 9u"e 5-13. lvleoorg Mep Figure 3- 14. of ContentE Figure g-15. Figure 3- 16. Figure 9- 17. Fi g'rre 5-18. Figure 5-19.
I/O SubsgEtenEtr!ctu.e Flou Diagram CIO Celling ilechaniBn A n l / O E x E o pl e KeVcode to ATASCII Conversion Table Text Hodeg 1 and 2 Dsta Form Or5!hiti Modes 3-11 eET D6ta Form C r ' € p h i c s l . l o d e E3 - 1 1 P U T D a t E F o r m Str.een Dicp latJ Elort Dieqiefi C a 3 s e t t e H € n dl e r R F . o r d F o . m a t Devi ce/Fi lanaoe SgntEx F i l e l . l E n E g € n e n tS u b € q s t e m D i 6 t e t t e Sector
llefiorg
Diegram
l'lep
MED
FiIe File
l v l a n a g e m e n t€ i u b s g s t 6 n S o o t R e c o r d F o . r . m a t l'lan:genent S!bsgstetn Boot PpoterE
File
M e n a g e n e n tg u b E g s t e r nV o l u E T a b l e
File I'lanagenent SubsUEtem9olufle 8it Mdp File Dir.ectorg Format File Manaqement Subsgsteo File Sectof FoiinEt Re5id€nt Device Handler Vectors D V S T A T4 - 8 g t e O p e r a t i o . r S t e t ! s F o l " n € t
2S
49 53 56 59 A4 74 B? 90 q2 93 93 94 95 96 100
15
Fi gure 6-1. List of SgBtem IntetruFt Eventg g u r e Fi 6-?. Interruo t RAll Vectof Initialiration Figure 6-3. P O I ( E YI n t e r r u p t M a 6 t E r a m p t e Figure 6-4. I n t e r r u p t a n d T i m e r V e c t o r R A MS t a c l Content Tabl e Figure Figure Fig!re Figure Figure Figure Fig ure Fi gure Figure Figure
lO- 1. 1O-2. 1O-3. 1O-4.
I / O S u b s g 6 t € mF l o u D i a g r E m D€vica table Forlll3t H 6 n d1 e . V e ct o r T a b l e Serial 8uE Coflnectot Pin Descriptions Seriel Bus ConnEnd Ftafle Format Ser i61 lls Timing Diagran
133 134 135 L46 144 151
Cartr i rlge Heeder'Foroat D i Ek e t t e S o o t F i l e F o r n e t DiEk€tte-Eoot€b le Prograft Li6ting S e l n p1 e C € E s e t t e * B o o t a b I e P r o g l . a f i
137 159 Ex.mpla
UEer-De+ined cherEcte. Set Eit lelenorgAddress lJser-Defined I r €} Charact€r' Hatrix git Table C h E r e ct e r B a E e D i a g r ' a n Re€ding Data Frofl an ATARI Keqbo€rd Contioller ATARI Ke!bo€r'd Control l ei Variable/Register v a l u e T a b1 e F i gu r e 1 1 - 6 . U 6 i n g F r o n t P a n e I C o n n e c t o r r A t l / Q P o r t s : P i n F u n c t i o n T a bI e s
Figuie Figure F i 9u i e Fig uie Figuie
16
11-1. 11-2. 11-3. 11-4. 11-5.
t02 108 1to
173 L73 176 179
PREFACE This rl€r|oal deEcribes the r.sident Operating ggste|'l (US) +or the ATARIe Hofie Computea. tor readers oho are f€miliar urith the int€rnel behavior o+ f,he E96tem. It diBcusEes: Sgstem funetion6 and utilization
techniqueE
S u b 6 q 6 t e mr e l a t i o n 3 h i p s € n d o r . g a n i r a t i o n Cher€ct€risticE of the ATARI peripheral devir€6 that can b € € t t a c h e d t o t h e A T A R I 4 O O I T H ] a n d A T A R I A O O IT t r u H o m e Co ! uter A a l v a n c e dt e E h n i q u e s f o r carEbiliti.eg
going beqond the baEic Og
The goneral featur.es of bg the OS.
t h e E o f t p r . r t e r .s g s t e o h a r ' d l r a r e u s e d
It uould be helpful to have a f€oiliaritg { r i t h p r o g r . a m m i n gc o n c e p t E and terninolog!, assenblg language proqramfling in gene.ral, th€ Sgnertek 65Oe in particular, and digital herduare concepts arld ter.ninologgrrou uill be provided !rith the infornation gou n€ed to uBe the OS reEouices, trithout r.egorting to trial-and-er?or t€chniques or the Og !isting. Supporting information *or taskE that involv€ OS I iEting references i9 also pr'ovided. T h i s l n € n u € 1d o e E n o t p r e s e n t a c o { n p r e h e n s i v €d e E c r i p t i o n o + t h e hardqrEre used to prov:d€ OS iapabilites. T h e p i o g r ' a m m e t .u h o n e e d 5 t o go begond the rapabilities descr.ibed Ehould consult the ATARI Home C o m p u t € r H e r ' d { r a re H € n u €} .
O P E R A I I N GS Y S T E } 4C 4 1 6 9 5 5 - -
Section
1 I7
1
INTRODUCTION
CENERALDESCRIPTTONOF THE ATARI HOMECOIIPUTERSYSTEI'I i n t h e A T A R I @4 O O t T M l a n d A T A R I E O O I T M ] H o m e Bper€ti.ng iqstenr The primarg differenceE bet{reen the turo are: Computer are identicel. o
Phgsicel Faclaging
o
The ATARI 4OOComputer con6ole h€5 one cartridge slot, rlots ATARTBOOComtutei console hes turo certridge
o
The ATARI 4OO HomeCornputer contain6 l&l{ RAMand cannot be expanded. The ATARI 8OO Home Conputer can be erpanded to ts mer iflun o+ 4AK RAt'l.
o
Th€ ATARI 8OO conpstei' Comouter does not.
has a nonitor
Jack,
the
th€ ATARI 4oo
The Heiduare Circsitrq o p?oduce6 both Eheracter and point uhite (B/tll or color television.
g.aphics +or blac& and
o Produces four independent €udio channels (trequenE" cont?o1led) u,hi€h use the televi€ion Eound sUsten. o Provides one bi-level
audio output
in
o InterfaeeE uith ContTolters.
up to +our Joqsticks
o Interfaces
a ser'iel
uith
o Contains E built-in
I/O bus for
the baEe unit. and eight
Paddle
sxpanEion.
k€qboerd
Figure 1-1 preEents a simpIi+i€d block diagiam of the haiduare. See ths htsrdureren€nu.l for Eupgor'tinq docu|nentation.
O P E R A T I N GS Y S T E HC O 1 6 $ 5 5 - -
1B
Section
1
r 6502 | i p l ' o a e 6 s o ri +----+----+ +---------+
ROM
+---------+
+---------+
IDgOO-FFFF I
RATI
I OOOO-r x x r t---------+E I Pforessor externEl bus
i I
+---------+ 1......... ; IRO I
iCartridge I I o t s A&BI IBOOO-BFFFI +-----*---+ I PIA
+---------+ I cont?ol- i I er oorts !
Jogst:€ks +--------+----------+ i -------+
+--------
I
i
ID 3 O O - D 3 1 F + - - - - - - - -i - - - - - + +---------+ I i : |
| t |
+---------+
| i
| I
ilegboard i idata legsi
+---------+
+--------i-----t-i--+ + BREAK I i . . . . . . . . . I D2OO-D21F+-------i ---+ | | +---------+ I +----+----+ IRO audio | ! ! I on/off +------------i +---------+ i -+ | | i +----+----+ i + + cassette trig5 I i i i I i +--------+ I CTIA i i i linterfacei +-----+ i +-l-i----+ I ! DOOO-DOlF+----- i -- | -+ i ! +---------+ +----+----+ i I i i +----+ eerial I i video I I i I i t/o I DMA +----+----+ litpen i i +------+ bug I .....-...1 ANTIC +--------+ i 1.........
iD400-D41Fi
|
|
'
i
NMI
conpo6it€ audio/video
t"----+
froo I console CTIA -+ speeker
i i
+---------+
i i
+---------+ i START, I OPTION
Figu'.e 1-1.
A T A R I H o f l r €C o n p u t e r B I o E t D i a g r € f t
OPERATINGSYSTEII CO16555 --
Se.tion
I 19
CONVENTIONSUSED IN THIS MANUAL T h i E m t s n u e lu 6 e s t h € f o l l o u r i n g s p € a i € l
notetions:
H €r a d e c i | n € l N u m b e r s A t l t u i o - d i 9 i t n u { n b e " sp r e c e d € d b q a d o 1 1 € r s i g n ( $ t d e s i g n a t e hexadecimal nuobers. All other nunbers (exE€pt ftemorg addresE€E) are in deci.nal +orm snless other{ri6e EpeEified in the suppor.ting t€tt. Me$or.gAddreEEes A11 ie+erenEes to co puter nenorg ard mapped I/O IoE:tion5 a?e in hex€decimal notetion. Meoror! addres5€6 fieg oi lnag not be contEined in Equeie brac&etE. (ExaflpIe: CD2OFI snd OzOF eie the sarne Bddf esE. )
Ki lobg tes
of l,le|norq
I t l e m o r gE i z e s a r e f r e q u e n t l g as 32K, urhere a tilob{te is
erpressed in unitE of kilobqt€i, 1024 bgtes of oemorg.
P A S C A LA s a n A l g o | . i t h o - S p e c i f i c a t i o n
such
Language
T h e P A S C A LI e n g u € g e ( p r o c e d u ? E b l o c l o n l g ) i s u s e d a 9 t h e specification l a n g u a g e i n t h e + e u p l a r e s | , h e r . €E n a l g o r i t h t n i E ipecifi€d i n d € t a i 1 . P A S C A Ls g n t a r i s 6 i n i l € r to ang numbei o+ other bloct-strlctuied lEnguag€i, end gou Ehould have no dif+icultg follouin9 the eoda presented. MeoorrJ Lag out s Diagrems similer to Figure 1-2 el.e used uhenever.pictures ot teble6 .re oaesented: 7 6 3 4 3 2 1 0 +-+-+-+-+-+-+-+-+ i i --+-+-+-+-+-+-+-+-+ + ---
This
i6 e single
of bqtes
bqt€.
This is a uJord (2 bgte5).
+-+-+-+-+-+-+-+-+ i
i
--r +-+-+-+-+-+-+-+-+ Figure
1-2.
i
This iE a blorft o+ |tlenorq of unspecified length.
Menorg Lagot',t Chsit
OPERATINGSYSTE|4CO16S53 --
Section
,.
A i t 7 i E t h s m o e t E i g n i t i c a n t b i t ( H E } B )o f t h e b { t e , iE the least Bignificant bit (LSB). '
In t€61es snd figure6, botton of the figure.
and Bit
dtemorgaddreEses a1{r€qs increa6e
O
touard
the
Baclu6-Naur Forft A nodifi€d version ol Baclur-Naur Forn (gNFt iE uscd to Exg?es9 sone sgntaEtir forras, rrhere the +ollouing o€talinguistic 6Vmbotsera used: : := <
is )
i t
the sub6titution
a netesgntactic
(aiiignnent)
operatoi.
vErieble.
sEp€?etes al ternat ive subEtitutiong. I
an optional
conEt?uat.
Angthing elEe is e slntacti€ it6€lf.
literel
conrt€nt,
{rhiEh Etands for
F o r E x a n p1 e : <device Epe€ification>
: : = {deviEe nafle)t<devi.e nurnbei}l:
< d e v i c e n a . n e >: : = C i D ! E i K l P i R t S <deviEe nuftbei>::=
I l2 i3l4l 5l6 !7l A
A ridevice specifi.ation,, con6ists of a lnEndatorg ,,devic€ name,,, fotloured bg en optional "device number,,' folloued bg the mandatorg colon charecter. The device neme in turn llluit be one of the char€cters shoun as alternativeE. The devi€e n!flber ( if it iE Diesent) muet be a digit 1 through A. OS Equate Fi leneneE U p e . a t i n g S g s t e m R O M ( R e e d O n l U l ' l e o o r { } a n d R A l " l { R s n d o { t lA € E e s s l ' l e m o r g l v e € t o i n a m e s , R A l " !d e t a b e s e v a r i a b l e n e m e s a n d h € i d u a r e regi.ster n€nes are ell referred to bq the names€Esigned in the Og p r o g ? a m e q u a t e 1 i 6 t . l ^ r h e no n e o f t h e g e n e i n e s i s u s e d , t h € m e m o r g e d d r e s E i E ! s u a l . l r J p r o v i d e d , s u c h a e E O U T A Dt 0 2 4 2 l .
A P E R A T I N CS Y S T E MC O l 6 5 5 5 - -
gection
1.
2
OPERATINO SYSTEI{ FUNCTIANAL OROANIZATION
This seation descri.beE the various genera I teitng.
subs{rsteos of th€ regident
OS in
Inputl0utp ut Subigiten The Input/Output (I/O) subsgstem provideE a high-IeveI inter'+a.e betueen the paograor and thE harduar€. Ho6t functions are device-independent, su€h a9 the ?eading end uriting of chaiacter dett, p r o v i s i o n E d e v i c e d € p e n d e n t f ! nctions as {rell. h € v e b e e n f o r o a d e vet All periphrral d€viceE capEble of dealing uith .haractei data hsve i n d i v i d u € 1 E q l | l b o l i c n a { n e E( E [ r c h a E K , D , P , e t c r . € n d c a n b e a c c e E s e d using a Csntral I/U (CIO) routineA R A t ' ld a t a b € i e p r o v i d e s e c c € 6 s t o c o n t r o l l e l ' s ( J o ! s t i . k E a n d p a d d l e controller6), i l h i E h d o n o t d e € 1 u i t h c h a i a c t e r d e t E . T h i 5 R A t ' ld a t a base is periodicallg updated to sho{, the states of these device9. INTERRUPT PROCESSINE The inter.upt s r J g t e mh a n d l e s € 1 1 h a r d u r a i e i n t e r r ' ! p t 9 i n a c o m m o n and €onsistent manner'. BrJdefault, al I interiupts aie fielded bg inte.ruptE (oi the OS. At gour discretion, individual pioqrem. gaoupE of interrupts' can be fi€lded bq the appli{ation INITIALIZAIION po{ter up and The rUstem provides tto Ievels of initieliz€tion: s{stem reEet. The OS per'formg pouei-!p initial i zation eech tirne the E!stem pouer iE snitched to ON, and sqstem r.eset i . s p e ? f o r m e d e a c h t i m e t h e t S Y S T E I 'RI .E 9 E T I f t e q i 5 initi€lization pressed. Pou€r-Ut The OS eranine6 and notes the configuretion of the unit the gqsten po0rer is suitched to ON. The sqEtem perforos tasls at pouer up:
O P E F A T I N OS Y S T E MC O 1 6 5 5 5 - -
SeEtion
2
uhenev€r the follouing
o
D e t € r n i n € E t h e h i g h e E t R A Ma d d . e 5 5 .
o
Claari
o
Establishes all
o
Foi|nats the device
o
InitialireE
o
Set€ up the 6cr6en +or e4 r 40 text
o
Boot6 the cesE€tt€ if
o
ChectE cai'tridge Elot(E)
o
Boot6 the dickettr iB ettech€d.
o
TainEfdr's control to the €aitridge, dislette-booted caFsette-booted prog!'a|n, or blac&boafd pno!lram.
aII
o t R A I ' It o
zeros. vertors.
RAH inteirupt tabl€.
the cartridq€(5).
if
mode.
directedfor
diElette-boot
diracted
instructions.
to do Eo and € disl
drive
unit
progralnl
TSYSTEH.RESET] P i e s s i n g t h e I S Y S T E | .R |.ESET] teq ceuses the Og to perfo.|n these fo l l oqring ta5t3: the Og por.tion of RAl,l.
o
Cleari
o
RecheE*s tor
o
Reestab liih€5
o
Foiftats
o
Initializer
o
Eats up the Ecr.een for
o
TranEfeF: control to the car.tridge. a diskette-booted pr.ogr€n, a casgette-booted prograo, or the blaa&b06rd program.
of RAM. ell
the device
RAl.lintel.ruot
veEto?8.
table.
the cartridge(s). 24 x 40 tsxt
N o t e t h E t I S Y S T E F IR. E S E T ! d o e 6 n o t p e i f o i n tas*s listed in the pouer-up section.
node.
all
OPEFATINGSYSTEI'ICO16955 --
the pouer-up
Section
e
23
FLOATINE PAINT ARITHMETTCPACKAOE T h e O S R O Hc o n t a i n 3 € F l o a t i n g P o i n t ( F F ) p a q k a g e t h a t i 6 € v a i l a b l e to nonrEsident piograne such as ATARI EASIC. The pactage i6 not uied bU the oth.|' pattE of the OS itiel+. The f l o a t i n g p o i n t n u l t l b e r sa r e i t o r e d a E 1 0 g C D d i g i t F o f o € n t i s E a , p l u s a l-bgte exponent. The pactage aontains theEe routineE: o
AgCII-to-FP
o
tnteger-to-FF
o
FP add, 5ubtr€Et,
o
FP 1og, €xp, end polgnomiEl €valuation.
o
FP nunber Elear,
and FP-Io-ASCII
conversion_
and Fp-to-integer oultiplg
load,
convFr€ion.
and divi.de.
store,
and nove.
OPERATINo SYSTEI'ICO1655S --
Section
2
3
CDNFICURATIONS
T h e A T A R I 4 O O a n d A T A R I 8 O O H o r n €C o t n p u t e r s s u p p o r t a t id{ val.ietg of configlreti.onE, eech urith € uni.{ue operating envir onment: Ca.tridge(E)
ma! or
€g not
be in9erted
a d d e d to F l e m o F gr a n b e o p t i o n a l l g Eonso 1e in 16K increm€nts p€iipheral Hen{ different EariaI I/0 buE.
the ATARI goo codtputer
devi ce6 can be attached
to the
The OS accounts for all of th€6e veriBElei urithout .equiiing E (iee 9eation a). The $€chine change in the resident OS itself e o n f i . g u r a t i o n i s r h e c k e d { r r h e np o u e r i B f i r s t torned on and then A general i 5 n o t c h e c l e d E g a i n , u n l e 6 E e t J s t e mr € g e t i s u t e d . discus6ion of Eomeo+ the velid ronfigu?ationE follous. PROORAMENVIRONITIENTS Tha OS ElIo{rE on€ of four progra(n tqFes to be in contrdl ooint in time:
at ang
The Og b1ts€lboBrd (ATARI Meno Ped) ptogratn progrem
o
A c€r'tridge-reEident
o
A diskette-booted
o
A cassette-booted pl'ogram
piogi€m
Conttol choice is baged upon in+oroation in the caattidge(5), upon urhether or not a diEk drive is Ettached, snd upon operstot kegboard input€. Th€ exact €lgorithms ere di5cu55ed in detail in 9ection 7. Bl€clbodrd ModE In blactbosrd oode, th€ screen is €stablished aE a 24 x 40 text screen, Angthing entered from the kelboard goas to the screen rrithout being etalrlined, €lthough eI1 of the screen editj.ng functionE ai'e .upported. Elacftboaid moile is the loorest prio!'itU e n v i r o n m e n t . Y o u g o t h e . e o n l q b g c o m m a n d+ r o | n e h i 9 h e r OPERATINGSYSTET'ICO16555 --
Section
3
prioritg environnent, or bq defa!:t, if there iE no other rea6on€bIe envi?onoent for the OS to enter. For er€ftp1e. t{ping BYE in BASIC cauEeE the OS to enter the bleEkbos.d mode. The b1€c|(boeid n o d e . a n b e e r i t e d b ! p r e s s i n g t h e t g Y S T E t ' lR . ESETI keq i+ it uas ente"ed froo a higher envlronment. Ca.tridge An inserted Eartridge normallg provides the tnein Eoot?oI e+ter initieliration iE conpletE (for erample: ATARI BAEIC, SUPER SREAKOUTITIT{1,EASKETBALL, COI''PUTERCHESS, and otheF6. All these caitridqe programs intelfac€ directlg uith rrou in sone uaq). Although a cartridge ran paovide a suppoiting function for 6ooe other Frogr.ao €nviron|nent, this has not qet been done. Some€a?tridgeE (perticularl{ fteqboard-orisntad oneE) can Ehenge environoent5 bq entering spe.iel a o m m a n d s( i u a h a 9 " B Y E " ) t o 9 o t o b l a c k b o a a d m o d € o r " D O S " t o e r t e r the disl utilitS. Other ce?tridges csnnot chEnge envi.onnentE. Note p?eventE the remov€1 or inse|.tion o+ a that a haadu€.e interloc|( cartridge {rith the pouer on; thiE fe€ture rsuser the entire sqstem to reinitialire !rith ever.q cartridge change. Dl skett6
Eoot
The diil€tte marl or oag not be booted {rhen the 6g9ten pouers up qrith di6lette-bootable ioftuare. T h i s p a r a g r . a F ha s s u | l l e st h e t a di6Lette boot did o€cur. See Section 7 for boot condition erplanations. The diEtette-booted Eofttare can take €ontrol EE the Dist Utilitg P"ogr'am(DUPI doeg under certain conditions, or ran provide a s u p p o r t i n g { u n r t i o n a s t h e F i I € M e n a g e ( n e nS t gEtefl (FMS} does. Thi.g envitontrlent iE so +Ierible that it is difficult to generalize on itg cepabilitie6 The onlg fiachine Fequireo€nt (other and a€Etrictions. t h a n t h e d i E t d r i v e ) i E t h e t 6 ! + f i c i e 1 1 t R A Mb e i n s t E l I E d t o s ! p p o r t th€ p.ogran baing booted. Cassette-Boot The cassette-boot enviionnent is sinile. to the dis*ette-boot snvironment, elthough the caE5ette is limited as an I/tl device. It is slou End can ecceEs onlq one file €t,a time in Eequence- Note that the f,a6Eette-boot fa€ilitq ha9 no relation to the sse of c 6 6 s e t t e s t o s t o r e h i g h - 1 e v e l l a n g u a g e p r o g r . ] r n g( e . 9 . , p r o g i a 0 n E uritten in ATARI BASIC), nor to the use of r€s6ettes to gtoie det€.
OPERATINGSYSTET'ICO16595 --
Sertion
3
RAII EXPANSIAN Altho!qh golJ can erpend RAHnonrontiguouElg in the ATARI AOOHooe Cooputer, the OS orill onlg recognizs RAI'I that is aontigrrols Etarting froo loEation O. InsteLletion diiettions a r e p r . o v i d e d u i t h t h e p u r a h s s e d R A Ml l l o d u l e s . R A M c a n b e edded until it totsIE 4gK. After 3eK, additionat RAH ove.lagE f i.rst th€ right-certridqe addres6es (32K to 4Ok) and then the left-c€l.tritlge edd!.eeEe6 (4OK to 48K). Note thet in cases of .onfliat, the inEerted cartridge has higher prioritg and diEables the confli€ting RAMin EK incaenentg. gee SeEtion 4 for a detailed discursion of Eqstemo€ftorg AE € result of polrei-up, the OS lrill qener3te t0ro FointerE that d e f i n e t h e 1 o ! r e 6 t a v a i l e b l e R A l . ll o c a t i o n a n d t h e h i g h e s t a v a i l a b l e R A F Il o c E t i o n . T h e U S a n d d i 5 k e t t e o l . c a s s e t t e - b o o t e d i o f t u a r e u r i t l dete?oine the locetion of the loueEt aveilable RAt{, uhi.le the nl.|lber of RAfl noduleE snd the current screen node uill deter.(nine the highest available RAM. PERIPHERAL DEVICES Feripherel devices of several tgpes csn be sdded to the sVstem using EtandBrd cables to either. the 9erie1 bus or' the connectors at t h e f r o n t o + t h e € o n p u t e r E o n s o l e . T h e $ o r t c o m r n o nt g p e 6 d e a l r r i t h €ith€r tranEoission of bUte6 of data (u5ua11g serial bus' or tiEnEfiisEion of sense in+ortnetion (u5u:l1u oan€ Eontrollers).
GameControIlerE The OS pefiodic€1Ig senges (90 or 60 timeE pel Eecond) the Etefldeid (P€ddle9 and Jogsti€k5) end the vaIue6 read €re gaoe rontroller6 Btored in RAl.l. You ran pIug in, remove, and reerr'ange thege controlleis E t r ! i l 1 { r i t h o u t d + f e c t i n g 5 g s t e m o p e i e t i o n , b e c a { J s et h e sgstem uill elua{rs trq to reed all of there rontrotlerE_ The Driving Controllers €r€ l.ead, but not de.oded, b'J the OS. sp€ci€I (Eee inEtiuction5 are requi.ed to read the tegboard controller S e c t i o n 1 1l . Piogaafi Rer ord ei T h e A T A F I 4 l O t T M l P r o g r a r nR € . o r . d e r i 6 a 5 p € c i E t p e r i p h e f a l . It uses the seriEl bus to send end r'eceive data, but doee not confo"n to the proto€o1 o+ the other peripherals th€t uee th€ serial bus. The Prograo Re[oider must also be the last d€vi€e on the Eerial buE, b e t E { , t g ei t d o r s n o t h a v e s s e t i e l b u s e x t e n d e f c o n n e c t o r e E t h e other peripheF:lg do. Ihere Eal| never be moae than one pr.ogreln Recoider connected to €ng sggteo +oi the sam€ re6son. The sqsten .annot €€nge the pre6ence ot abgence of the Progra& Recoider, Eo it €en be connected and diEconflected at ui11. O P E R A T I N eS Y S T E I IC O l 6 5 9 9 - -
Section
3
SeriaI
BUEDevires
A Eeri€l bus dEvire conforrns to th€ seiial I/O bqs trotoEol aq defined in Section 9, but thiE does not incl!de the prograrn Recoi.der. Each seiial b!6 device hEs tuo identical connsEtor5: a Eerial bus input, and a rerial b{rr ertender. Eithei connector can b e - u s e d f o r e i t h e r ' p u r . F o i e . P e r i p h e . a l s c e n b e . , d a i 9 q E h a i n e d , ,b q €abling them together in a cequenti€l feEhion. Ther€ are usuallrg no t.sstrictions on the cdbling oide. because esEh d€viEe has a unique identifier. lilhere re5tr.ictionE erirt, theU o,itt be mentioned in S e ct i o n 5 .
2S
0PERATINo SVSTEfi CO16555 --
S€ction
4
4
SYSTET'IIIEHORYUTtL I ZATtAN
H e m o l ' gi n t h e 6 9 s t e m i s d e c o d e d i n t h e f u l I 6 4 K r a n E e o + t h e 6 S O a mrcr.ocodrputea end there €re no piovisions for 6dditionel fiapping to extend dreoorV. Memorg i.. divided into four be9i.a regi.ons (uith 5one over'1ap poi6ible): RAH, cErtridge area. I/O regiot| and the resident Og ROH. The regions and theii address bo!nd€rie6 ere listed belou ( a 1 1 a d d r e s E e sa r e i n h € r a d e c i m e l ) : 0000- lFFF
eooo-7FFF BOOO-9FFF AOOO-AFFF
coo0-cFFF DOOO-D7FF DSOO_DFFF
Figlre
4-1
RAM(minimufl rsquired *or o0er.ation) RAM e rpans i on area C6rtridge B? Cartridge A (hs1f of 16K size) Cartridge A or RAl.l UnuEed Harduaie I/B de.ode6 Fl oat in9 Point P€rkEge (US) R e si d e n t O p e r a t i n g S g s t e n R O t ' {
or RAll
6502 Sgstem Menoru l'lep
This secti.on {tri11break the5e regions into even 6maller function€I diviEione and pr.ovide deteiled explanEtionE of their u5age. RAH REEION T h F O S a n d t h e c o n t r o l p r d g r e n 6 h a r e t h e R A Mr e g i o n . T h e R A H r . e g i o n can be fuither EUbdivided into the follouing sub negions for d i E c u 6 5i o n p u r D o E e s : Paqe O = 6502 page zero Eddiess mode region. Page 1= 6502 st:c|( region. Pege6 2-4 = OS d:teb:se €nd uEer {rorlipace. PageE 5-6 = U6e!. progran uror*6pace. P e g e a 7 - X X = B o o t a b l e s o S t u , a i e a r e a / f r e e R A l , ln. P a q e E X X - t o p o + R A M= S E r e e n d i 6 p l a q l i s t a n d d a t a . * Note that amdunt of
XX ie e function RAl"i in6tal Ied.
of
the
screen
gr€phics
ttloda€nd the
T h e p a r a g r s p h s t h a t f o l l o t , d e 6 . r i b e h o u t h e O S u s e s R A ME u b r e g i o n 5 , e n d p 1 " e s e n t 6u 6 e r p r o g r a r n r e c o m e n d e t i o n E . O P E R A T I N CS Y S T E i 4C O l 6 5 9 5 - -
Sertion
4 29
Page o The €rchitecture of the 6302 microconputer instruction 6et and addr.essing nodei givEE psge O speci€1 EignificanEe. ReferenreE e d d . € s s e 9 i n t h a t p a g e ( O O O Ot o O O F F ) e r € f a s ; e r , reqoiis {euer instruction bgtes, and provide the onlg oech€nism +o. ha?duere indirect €ddr€sEin9. Page O should be used 6paringlg so that al porEible use.5 can have 6 portion o+ it. The OS pern:nentlq tal l o u € r h e l + o f p a g e O ( O O O Ot o O O T F ) . T h i s p o r t i o n c a n n e v e r o e ang outer.nvironment unless the OS is comptetelg disabled and inteirupts to the 8S aie elininsted.
to I e6 the used bg A I I
T h e u p p e r h a l + o f p a g e O ( O O B Ot o O O F F ) i E e v a i t a b l e t o o l t e r environoents trith the follouing restriEtion: the ftoating point pEElage, if ured, fequires OOD4through OOFF. Page 1 Page 1 i3 the 55OZ h€.duare €tack region; JSR inEtruEtions, PHA inEtauctions, snd inter.uptE all cauEe data b{tes to be l,ritten to pege 1. ConverE€lU RTS, pLA, €nd RTI instructions aII €ause data bgtes t o b e r e a d f r . o o p e g e 1 . T h e e S 6 b g t e 6 t a c k i 6 e d e q u e t € + o r n o r m at s u b i o u t i n e c a l l s p l u s i n t e r . r . ! p t p r o r e s s n e s t i r g , s o n o r . e s t r i . c t i on6 have been l|ladeon p€ge 1 uEege. It is obviouE that a stact of th i 9 size is totellq inedequate for dEepIg reEUisive proce66e9 or +or ne5ted proceE6es uith large loc€1 environm€nts to be saved. So, Eophistic€ted applir€tions. Eoft0rare rnainteined EteEfts nuEt be i m p I E m e nt e d . The 6502 6tact pointer iE initialired at pouer-up or 6q6tem reset to point to Iocation O1FF. The 6tack then pusheE dounusrd touard O1OO. The stict uill u r a D e r o u n d f r o m O 1 O Ot o O 1 F F i f a s t s r k o v e r f t o u condition occu?s, because o+ the nature of the 6502'E 8-bit stact pointer r€9iiter. OS Data Eeie L o c € t i o n g O 2 O Ot h r . o u g h O 4 7 F a r e e l l o c a t e d b r t t h e O S + o r u o i k i n q vtsri€bles, tableE €nd deta buffers. Poitions of this region can be used onlg after gou deterftine thet nonconflict rrrith the US i5 guer.snteed. For' exeopla, the printer and da6sette bLrffers could be used if L/O opet'€tionE to the5e deviceg are impo€sible urithin the controlling environment. The amount of uor|( involved in deter.mining nonconflict seemg to be coopletelg out o+ line 0rith the bene+its to be gained (erc€pt for a fe{r trivial c a s e s } a n d i t i 9 r e c o m n e n d e dt h a t pages 2 through 4 not be uged ercept brJ the US.
O P E R A T I N GS Y S T E I ' C I O16555 --
30
Section
4
User Nortspace LocatiqnE O48O thaough O6FF €re dediceted *or outer environment u6€ ercept {rhen the floating point paEkage is uBed. The +loating point package ureE loestions O57E through O9FF. B o o t R e gi o n Prge 7 is the Etirt of the "boot rEgion. " Whenso+tuere iE booted fron eithef the diskett€ or the caesette, it c€n st€rt et the louest free o $ t n o t l a d d r . e a c ( t h r t i 6 O T O O )a n d p r o c e e d ! p u a r d ( a l t h o u g h i t c € n a l s o 5t6tt at.ng a d d t e E s a b o v e O T O Oa n d b e l o t r t h e E r ! . e ! n d i E p l a r J l i E t ) . T h e t o p o f t h i s i a E i o n d € f i f l € 6 t h e 6 t a r t o f t h e , , f r e e ( n € { n o r r j ' ,r e g i o n . [,lhen the boot pr.oEess is EotnpIete, a pointe" in the d€t€ baEe containg the 3ddt'esEof the nert €vailable location above the goftdare JUst booted. Whenno softuare ha9 been booted, thi6 rointer contains the velue OTOOScreen DiBpleg LiEt and Dat6 Wh.n th€ OS is hendling th€ screen displarJ, the di.pl€q liEt that de+ines the srreen ch€raateristiEs End the .urrent d6ta that i6 contained on the Fcreln are rlec€d 6t the high address lnd of RAM. The b o t t o . n o + t h i s r € 9 i o n d € f i n e s t h e end of the free oemorq region and its 1oc€tion i6 a +unction o+ thr scieen ftode cuirentlg in ef+ect. A pointai i.n the data base aontaing the addresE of the I€Et availabl€ loration belou the screen reoion. Free l,leftorg Reg i oo The +r'ee nenorg t€gion is all the RAt{betd€€n the end o* the boot region End the rtart of tha screen region. Tfte outer Ievel applir:tion iE r€sponEible foa managing the free ftefioag regi.on. CARTRIDEESA AND 8 There are tuo 8K regiong regarved for. plug-in EErtridge6. Cartridge E, that i€ th. right-hand ceFtr.idge stot +ound onlg in the ATARI AOO Home Cotnputer, ha€ been allocated me orq addrosres 8OOO through 9FFF. CErtridgs A (the 16ft-hend cantiidqe slot in the ATARI BOOCo$puter. ronsole, €nd ths onlg rlot in the ATARf 4OO Cof|lgutei. . o n E o I e ) h € 3 b e e n a l t o c a t a d m e n o r g a d d r e E s e s A O O Ot h f o u g h 8 F F F a n d optionallq S O O Ot h r . o u g h B F F F , f o r I 6 K c a r t r i d g e s . I f E R A t ' tf i o d u l e i s p].uggedinto the lagt slot guch as to overls{ ang of thes€ addr€sseE, t h e R A l , lt € k e E p r e c e d € n e e e s l o n g a s t s c € r t t . i d g e j s n o t i n s e ? t e d . Ho{rever, if e dar-ti.idge is inserted, it uill disable the entire E o n f l i E t i n q R A I ' Il t l o d u l e i n t h e l a s t s l o t i n B K i n c r e m e n r E .
OPERATINe SYSTEH CO1695S --
Serti.on
4
MAPPED I/O The 4502 perforos input/output op€r€tions bg €dd.eEsing the €rtern€l support chip6 aB memorg, sofle chip retiEterE €re reEd/urite lrhile (the ATARI Home Computer others ere read_on1g or rrriie-onlg HarduEre l'lanual gives descriptions of 611 of th€ external registerE'. t l h i l e t h e e n t i r e € d d r e s 6 6 p a c e { r o r n D O O ot o D T F F h a E b € e n a } l o c a t e d foi L/O decoding, onlg the follouing subfegions arE used: DOOo-DO1F = D2OO-D21F = D3OO-D31F = D4OO-D41F = Figure 4-?.
CTI A POKEY FIA ANTIC
tlepped I/u
RESIDENT 05 AND FLOATING PAINT PACKAOEROT,I The region from llgoo through FFFF:lue{s containi the OS and the floating point pa€kage. Cere 6hou1d be t:*en to avoid u9in9 ang entig pointE that ar.e not guarenteed not to move, to €lIorJ for the possibilitg that another, but function€11q competible, OS can bc gen€rated in th€ future. ThE BS conteins mang vectored entrU points et t h e e n d o f t h e R O Ms n d i n R A H t h a t u i l l point not move. The floating paeldge is not vectored, but a1I documentedentrg pointB qrill be f i r e d : D o n o t u s e u n d o c u m e n t e dr o ! t i n e E + o u n d b g s c a n n i n g t h € l i E t i n g . A 1 i s t o + t h e f i r e d R O Mv e c t o r s c a n b e + o u n d i n A p p e n d i r J . CENTRAL DATA BASE DESCRI PTI DN See Appendir L.
MEI'IDRYDYNAT.IICS T h e f i e e m e m o r qr e g i o n i E t h a e a e a b e t u e e n t h e e n d o f t h e b o o t r e g i o n end the Etart of the screen r.€9ion. Aa ruch, its timit6 are variable. M E M L At O Z E T l d e f i n e 5 t h e b o t t o | n o + t h e f r e e r . e g i o n , a n d t ' l E H T O pt O A E S I defineE the top of ths r.egion. This section pr€Eents the conditionB that ce!6€ tfie setup or €1te!.stion of theEe variables
O P E R A T I N eS Y S T E MC O 1 6 5 5 5 - -
Section
4
Sgsteln InitiEliuation
pr.ocess
The OS deter'nine€ the ertent oa the Iouest blocL of contiguolrg RAl,l, and saver the limits. lhe Screen Editor iE then opened, thus setting a n e { , ( a n d I o l r a r } v t s I u e i n H E H T O P .D i g k e t t e o r E e E s e t t e - b o o t e d s o f t u e r e mi9ht be brought into fieoortr, th€t {rould pr.obebtg set a ne!, (and h i q h e r ) v a l u e i n M E I ' | L O( s e e S e c t i o n 7 ' . t t E H L Oa n a U g n t O p u , i l l d e f i n e t h e m a x i u f i a n o u n t o f f r € e n e { n o r . qa v e i l a b l e uhen the appliEetion progi€n finallg Thdt Emouht of fr.ee rnenor! cdn lete. 9et6 rontiol. d e c , | ' e e s e ,€ s d e s c r i b e d i n t h e n e x t p a r a g r a p h .
C h e n gi n g S c r . e e n l ' l o de 6 The Di6plag HEndlei interpr.tE t h e v a r . i a b l e A p p l t H I . t O O O E l, t o c 6 n t a i n *he addreis b€1ou lrhiEh i.IEMTOP cEnnot €xtend. ThiE allotrs rJou to pt'otect the poition of *r.ee menorg slace thet rJou aie uEing from being overuritten €s a feEult of screen node Ehange. The displag h3ndler l,ill 5 e t t h e s . r e e n + o r n o d e O , u p d a t e M E H T O P ,a n d i e t u . n a n e r r o r 9tatus to 9ou. i+ it deterrnineE thEt the screen oefioig uill ettend belou, APP|{HI as E re6!lt of e scre€n node ahanqe. In other cases the DlEplag Handler effects the desired oode chsnge and !pdEteg t,IEMTOP.
OPERATINGSYSTEf'|CO15555 --
Section
4