@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@W!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr d M * @  $ % CC$$)%1 Udߥ$9%: !0 S$%} DD˙`  }J)Lr J  ((  p L ()   J}L= ( L 0q A    IB JC;? D W } LL  ` W )LA!  ߰")-݆ p" } $G@LL 08`Q")<2Q0 -G$Ș݆ UL# ; p8(()(0ʥ)NQ` }$GȘ݆LU )L ݆ L GȘ ݆LL )W>Z   HH)H }p h  hyhy D L> L JJ    ! LA*` BF }7'8  M HN H` 8 Z  \LdJJ!"! GFE@F (!L }EE !E^ ^ E E7EȩEdE/EȩE  D } .L }  ;F d  ;?F7F? ( .   Z D LL d } . D  L    p  E` , d)  D L) 0BM݊L݉} ML  N݆ L NLML [ TEqEHȱEqEh 0Gȹ G} HLL GɛL  LFREE SECTORS G) *Gȩ GȽG GȌ*jj >G} C8jJ3j2CD( C202C ԠBX` N 1? l LlD:RAMDISK}.COMLu L1 L ;LHL  T`  `8  ɐ     `TU  } L ? .  t`GBJ ~DEHI B V0dV!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh"}DEL8HI4 0 HI,0 0  9 .G VLO#},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D8:MEM.SAV J y08 B|DEHI$} V0 0`B;DEL`?<0LV`@ʆ v s? F0Ξ05: [ BDEHI%} VY8 B V  @  /DE `E:D8:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO &}STILL RUN DOS B;DE J  (` 9 V⪍ ઍ  -'}LLu ÝDEHILV 9 .l 9 .l  `` s$B BH(}I|DE V BLV nB,DE JLV B V BLVDEIʩ BꭝLu } 3E:}DISK OPERATING SYSTEM II VERSION COPYRIGHT 1984 ATARI CORP.A. DISK DIRECTORY I. FORMAT DISKB. RUN CARTRIDG*}E J. DUPLICATE DISKC. COPY FILE K. BINARY SAVED. DELETE FILE(S) L. BINARY LOADE. RENAME FILE M. RUN AT ADDRES+}SF. LOCK FILE N. CREATE MEM.SAVG. UNLOCK FILE O. DUPLICATE FILEH. WRITE DOS FILES P. FORMAT SINGLEL !N',}#"&))9(&*)/h)''-&؆莟R'S  vL/ˢ L }Insert DOS 2.0s, type Y Λx -}DEfHI 1莏#q! @ y0ɛ8A0,' ȅ 1 1ild! 1L!NO SUCH ITEMSELECT.} ITEM OR FOR MENU! 0 .z:*{}.|{ 1 0 0JB 18L%|DL/}%DIRECTORY--SEARCH SPEC,LIST FILE?[# 0 0 &|D3" 1L!NOT A DISK FILEN !B 1L!E# 1 !BD0}ED:}:1BJ|DE 1DEBHI 1 h0ߢ 0.1}  0?詛 1 y0YЛ 1 ;#L" ;#L! BL1TYPE "Y" TO DELETE...DELETE FILE SPEC2}COPY--FROM, TO?OPTION NOT ALLOWED697 FREE SECTORS COPYING---D8:COPY32.COMl# 0|D .L/%#3}##JB|DE 1BHID#E 1#0: B 1L!#͑### B 1#c$0SY4}S1}:## # # .#Ƚ# # 𩛙## 1,#PD#ELJ- <.BJD#E 5}1 1HH 0hh|DL%1}:̳# L% #D#EL% 1 0 . .0O% 1L!WILD CARDS NOT A6}LLOWED IN DESTINATION 0 <.|K}N 2 FORMAT. t* 5) 1L!`) 0NΞ 0 L1) 1 L!BAD LOAD FILELOAD FROM WHAT FILE?) 0 ?}0#B 1L!WHAT FILE TO LOCK?) 0 0$B 1L!WHAT FILE TO UNLOCK?DUP DISK-SOURCE,DEST DRIVES?TYPE "Y" IF OK TO US@}E PROGRAM AREACAUTION: A "Y" INVALIDATES MEM.SAV.FE! +L1   `*  70 2 2A} 0.* 1 y0 0)INSERT BOTH DISKS, TYPE RETURN^, 1 y038逍 N, 1L! ,B}C, t*  Lx+, 0 ^, 1 y0 , ,0,0 ,L+ ,I0 ,Vǭ0C}Ξ, 0 }, 1 y0C,ШC, 0K'!" H H 'h h Lx+!EF 5L1L!D,I,HhD}` NOT ENOUGH ROOMINSERT SOURCE DISK,TYPE RETURNINSERT DESTINATION DISK,TYPE RETURNE}`  `8 rL1`-* 1P* 1 y0Y`hhL!NAME OF FILE TO MOVE?- 0 0|DL% <.F},^ 1 70 0 .@L# .BJ 1  DEHIB V L1 ,} 1 70,L.  G}JB|,#P#DE 1 HI BDEHHII 1 B 1 ,^ 1 70,0La- B V,#PH},^ 1 70 0L#L!-* 1P* 1 y0Yj383}mm ݭI}}`8}``|* ? ɛ,`|:-)| / 1L!`DESTINATION CANT BE DOJ}S.SYS0 0H{ 24Δ 28/L!/) 2 Π 2 0 ξK}hAΞB,0 J 1 BDEHI,HÝDE 1HIHIDELSAVE-GIVE L}FILE,START,END(,INIT,RUN)O S0 1`BDEPHI V` S0H 1 L!M}0 0 1L~0`PLEASE TYPE 1 LETTER,0`hhL! 70 1L0L<1 ,;ɛ7,"ɛ:ݦ1ݥN}A"D|ݤD|ȩ:|ȩ|ɛ,,(/+.ީ1 1,ɛ`轤{NAMEO} TOO LONG B VL!` L1I H1EΝDL1|mDiE` V0`8d/8 i:222 1 LP}!ERROR- 164ɛ+,' 20*.. өr2 1``2TOO MANY DIGITSINVALID HEXAQ}DECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8uR} ECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8u05  15 2 2151^116115ύ011$r2ԭ5 3)5)5ԭx GT}@@L00)+& 2 L0=ɛ -L!1LV1L1 /3 3ȹ441L-4 v3 25 2H 2h͔5U}L3L3 2 k3U hh`DOC`QL3P1Lk0S1H /3h0B k3@ VL0LU!#$53 1181118V}1111Ε5 1Lk0552 1Ȍ1i111i11115Lk0pppB4f5&&&&&&&&^6f^6&&&&&W}&&A1@BJ D2ELVK@BHILV^Щ6 2BD2EJ VBD5EHI0 V0%5X}5 2iХiL[2 25 25`D:*.*` i@`8 ``@i `8@`0 BLV525<4Y}5`HH i ԍΗ552 ԍhh@ Lح1Э1Ѣ 24.4 24Z}4`D4E` 2BJ k3LVRH` 2BD4EhK)I JLV333 BASIC language TUR > TURBO BASIC OBJ| f}COM > MACHINE language DOC > DOCumentation PIC|MIC|FNT|MVM > Graphics AMS|MUS|MBD > Music LST > BASIC g} LISTing -Some MACHINE language programs can only be run by loading the MENU without BASIC! ------- -For s h}ome programs, XL/XE models may require a "TRANSLATOR" program (available from BELLCOM) to be loaded first! -Most i}programs are relatively self-explanatory; however, some may have separate DOCumentation files. Some BASIC programs m j}ay contain instructions in their program listings. LIST to read. -To view DOCumentation files one page at a time, k} press [START], [Return], or the Joystick Trigger to display the highlighted DOC file. Pressing the [Esc] key cau l}ses a return to MENU. -To print out a hard-copy of any DOCumentation file, [Q]uit the MENU, boot DOS, and then from m} DOS, use the (C)Copy command: D:Filename.DOC,P: -To use this great MENU program on your own disks, simply n} copy the file "AUTORUN.SYS". D:Filename.DOC,P: -To use this great MENU program on your own disks, simply ! ==== ==== ==== ==== ==== ===p}=== == == == == == == == == == [R] _________________________________ q}ATARI * SYSTEM REFERENCE MANUAL _________________________________ A voluntary payment of $1.50 is requested for thisr} SHAREWARE disk. I will give any technical support I can to those who have paid this fee and include a S.A.S.E. withs} their questions. Write to the address on the title page of this Manual: Bob DuHamel, 6915 Casselberry t}Way, San Diego, CA. 92119 This double sided disk contains parts 3 and 4 of an extensive 4- part systems refeu}rence Manual for Atari 8-bit computers, consisting of 20 chapters, plus 3 appendices. The Manual is written for the Av}tari 400/800, but updates for latest XL/XE models are included. The Manual may be read from the SCREEN and/or PRINTED w}out by using the READER.OBJ program included, or it may be dumped to a PRINTER by using your own favourite Word Procex}ssor. It is recommended that the Manual be printed out, due to it's large size and the need for referral. Also, as ty}he Manual is written in 80-columns, it is much easier to read in a printed form. ADDITIONAL PRINz}TING INSTRUCTIONS _____________________ The files on this disk were written with AtariWriter, and for an Epson{} MX80 printer. You should be able to load them into another Word Processor and easily change them to work with it an|}d a different printer. If you have AtariWriter and an Epson compatible printer, load and print each CHAP/APNDX file }}(CHAP1-CHAP20 / APNDXA-APNDXC). Ignore the files with extensions (i.e. CHAP1.1) as they will auto- matically chain to t~}he previous CHAP file. Change the following codes for a different word processor or printer: [CTRL][O]27E starts }NLQ mode " [O]27F stops NLQ mode " [O]27G starts BOLD mode " [O]27H stops BOLD mode " [V]D:... chai}ns new file " [E] page eject " [L] left margin " [R] right margin " [T] top margin (hal}f " [B] bottom margin lines) " [Y] page length " " [C] center " [C][C] right justify} _________________________________ (Advertisement) **************************** * DO YOU PROGRAM IN BA}SIC? * **************************** Add over 40 powerful new commands to Atari and compatible BASICs with the Ata}ri BASIC Power Pack; a function library for Atari BASIC. Just some of it's features are: = High speed disk access d}irectly to strings. = High speed graphics saving and loading. = Custom character set loading. = Mixed text a}nd graphics in mode 8. = English error messages. = Decimal aligned number columns. = Five color, 40 column text} mode. It is written in standard Atari BASIC with some machine language in strings. It's easy to use too because} all commands are called by name, not by address or line number. For information on how to obtain this terrific utility} by Bob DuHamel, write to: |BELLCOM |Public Domain Software Library |P.O. Box 1043, Peterborough |ONTARIO, CANADA} K9J 7A5DuHamel, write to: |BELLCOM |Public Domain Software Library |P.O. Box 1043, Peterborough |ONTARIO, CANADA $d0L 2L>%L-Lx%Lo(L(L(L(L4)L2)L%L%L%L%L%LU,L`,L(L)L,L(L+L$(L".L,L(L'L'L'Lm'Lv'L,L,L'L(L'L'L.L.Lk}.L.L.L.L.L.L.L#*L.*L&L&L.&L=&LF&LQ&Lk&Lr&L{&L&L&L&L)L)L)L)L,.L)L:'L'L&LL'L['LR'L*L*L.L&L&L&La'LB(LR(L}.L(L/L9/L6/L/L/L/L/L0L0L+0LC0L/L^(Lj(L)'L@'Lo/Lr/LO/L%L'L%L% -膚 ɩҍD҅ 2 22}2 a(2222 ` -Lq -l ԤՄԅ`ȱ`ȱ`ȥ`}ԑȥՑ`ԤՄ`ԤԅդՅ` '0=D '04.5 '0.( '0 ' ' 8`ԅ`} & & & &ѐ & &ʥ %аЪ %Зьɛ &0 &0 `}ԥ`Ɠƒ` % &LS* %LS* %օ0֥0 S*` %eԥe` %La* % % o*L% %Lo* % &L|* %L|* %}L% % Ʌ` BLV䅆L' %ԅ`TU HH 'hhL, B VԩL%p v'P}KJBDEL, &fL=) %ԅ`Ę eĘ +L4( % & %` %Ԅԅ`} -``&eԅԥeՅ`L% o(ԨL%Ԅ & %eԥe` Ԅ &ɛ +0` d) ذI} ( 8ԅԩՅL%L,ȹɛ꩛` d)f & 8fԆՅɛ摥0L}?)$0`2 2L,(,ɛM(M( )ɛ )򩀅` %ԍ`ԄL%}ԄL%ɛԆL% &󅐩f =) ؐL(L4,ԅԥՅL%82ԭ 2L%ԤՄԅե`}8ե`eեe` B* K+fL% B* +fL%8ԨՄԅL% & B*ԥՄԩՅօפԥFf G+}ԥ K+ԅՅԥզЦ`ԅՅʩ0B+=+ B+ 08f$˹ `' d }+1ԦԄզՄFԐ eਊe&Lh+Ԇ`hh L, +Ff&֐ݥ ԆՅԠ&&&8થ}օԈ`քע +Ե 8`晄 ,L,`GHFH` U,0ɛȄ ؐL,HI h 8}ԅԩՅL%?S, ,򦅩DEBHIL,ɛ +` +` %HI BL,}՝HIB VL,L%B Vú.hh -l. -0dd-8/ i - 0-- ,}@ . ,... + x' $(.Ԏ.8ե ".LO-- , `,ɛD(C` ذ -L- -L 2 -- ,}L- - -L-l lp '8`ERROR- ?Run address> BASIC exitTrace:P8Յթԅ` ,.L, .-}ȘH *h00,)` & ҅ԭ ) |*օեׅ` L,0թԅթᨊઐ}```Յ`8Յթԅ`0 ԩ`ԅ`` ' %`BԝK)I JD/ELVS:)H)h y}` & % & %TԅUՅV`&B ,NLսM` & %ԝL՝MN%BL, & /` BHIL, & /`}B JKL, %ԅUՅV & %ԅT`)ҩҊ H) hҘ` %)xԩL% %))Lc&LZ& %})pԩL% %)|LZ&Lc& V0L-$2~2'@'@DDhDDL 2 $ppҠD Z$1@ H$ ?$ $ <}G@vD $K@D $5@ !$PD '$5@ !$R22D '$N@hD $Z@D $a@} !$ $D $ h9 Z$ ?$ Z$c@ H$ Z$ -$ᢐD <$2}3թ@D $L*3L}3ԩթ@D $LY3L3ԩթ@D $~33L3@wD $L3 h9}L2 h9 Z$ ?$ Z$@ H$ Z$ -$ᢐD <$ԩթ@D $L43{4L%6ԩթ@}D $L/4L%6ԩթ@D $Ls4@D $Ly4 h9L3 h9|44 Z$ ?$ Z$@ }H$ Z$ -$ᢐD <$ԩթڅ@D $L4LV5ppҠDԩթ@4z5D }$L5LV5ԩթ܅@D $LP5/@ !$PD '$LV5 h9Ly4 h9 Z$ ?$ Z$ޠ@ H$ Z$ -${55}ᢐD <$ԩթڅ@D $L5L%6ԩթ@D $L5L%6ԩթ@}5y6D $L6/@ !$RD '$L%6 h9LV5 h9 Z$ ?$ Z$A H$ Z$ -$ hD <$ԩթ @h}D $z66L6N@hD $L> h9 Z$ ?$ Z$A H$ ?$ Z$ ?$ Z$5A H$ ?$Щ r$LD '$LD !$C@} $L6L7LD6x7 !$?@ $L7L 2L6 Z$1@ H$ ?$8 %vD{D $hD~D $ Z$}{D f$ Q$ Z$y77ᢌD f$ Q$ppҠD =ԩթ@D $L8 Z$1@ }H$ ?$ Z$ ?$ Z$ ?$ Z$ ?$ Z$Q7x8A H$ ?$ Z$ `$FD '$ԩթjAD $L?8 ~; Z$FD !$ }$ᢀ K$FD !$a@ $L8 Z$y88ᢧD K$ ?$L8é r$HD '$RHD !$pA $L8 Z$ ?$ Z}$rA H$ ?$ Z$ ?$L9 Z$ ?$ Z$A H$HD !$ E$8x9A H$ ?$ Z$ T$ Z$ T$0 Z$ T$ppҠD Z$A H$ ?$Щ} r$LD '$LD !$C@ $L_9Lb9L69L 2L$5@ !$OA $$ $y99 Z$ؠA H$ ?$A !$B $$ $ Z$wD K$ ?$}ԩթjAD $L9A !$A@ $$ $ Z$B H$9x: ?$ԩթ@D $LH:}A !$A@ $$ $ Z$ B H$ ?$PD !$5@ $L:A !$B $$ $ Z$By:: H$ ?$PD !$/@ $L:A !$}B $$ $ Z$B H$ ?$RD !$5@ $L:A !$'B $$ $ Z$)B H$ ?$RD !$/@:v; $L$;A !$'B $$ $} Z$,B H$ ?$A !$'@ $$ $ Z$0B H$ ?$A !$'@ $$ $ Z$ hD K$ ?$5@ !$E@w;; $$ $`T r$JD '$}^D !$3@ $L; Z$ ?$ Z$ $L> Z$A@ !$ $ᢀ K$RD !$/@ $L> Z$)D !$ $ᢀ K$-D !$ $}ᢀ K$/D !$n>> $ᢀ K$` Z$1@ H$ ?$/@ !$^D '$8 %vDD $0 Z$ T$ R Z$1@} H$ ?$0 Z$ᢓD f$>l? Q$ppҠD Z$3D H$vD K$7D H$ ?$ Z$ ?$? %/@ !$ND '$0 Z$ }`$`D '$ Z$`D !$ $ᢀm?? K$`D !$a@ $L? Z$ᢧD K$ ?$ ~;ND $BD $LE?é r$HD }'$pA $L?L83@ !$^D '$ ~;R?b@ Z$ ?$0 Z$ T$5@ !$^D '$ Z$1@ H$ ?$ } PRIOR p/m priority and GTIA mode $D21B 53275 GPRIOR $026F 623 PORTA port A $D300?} 54016 STICK0 $0278 632 STICK1 $0279 633 PORTB port B @} $D301 54017 STICK2 $027A 634 STICK3 $027B 635 PACTL poA}rt A control $D302 54018 PBCTL port B control $D303 54019 B} DMACTL Direct Memory access control (DMA) $D400 54272 SDMCTL $022F 559 CHACTL character control $C}D401 54273 CHART $02F3 755 DLISTL display list pointer low byte $D402 54274 SDLSTL $0230 560 DLISTH display list poinD}ter high byte $D403 54275 SDLSTH $0231 561 HSCROL horizontal scroll $D404 54276 VSCROE}L vertical scroll $D405 54277 PMBASE player/missile address / 256 $D407 54279 F} CHBASE Address of character set / 256 $D409 54281 CHBAS $O2F4 756 WSYNC wait for horizontal sync G} $D40A 54282 VCOUNT vertical line counter $D40B 54283 PENH light pen horH}izontal position $D40C 54284 LPENH $0234 564 PENV light pen vertical position $D40D 54285 LPENV $0235 565 NI}MIEN non-maskable interrupt enable (NMI)$D40E 54286 NMIRES NMI reset $D40F 54287 J} NMIST NMI status $D40F 54287 D:APNDXA.2 $D40F 54287 h4 4 1 5 0 5 75 2 4 132SHADOW REGISTER ORDERALPHEBETICAL ORDER Register !L} Shadow Name Description !M} Address Name Address ---------------------------------------------------------------------- KBCODE!N} keyboard code $D209 53769 CH $O2FC 764 CHACTL character control $D401 54273 CHART!O} $02F3 755 CHBASE Address of character set / 256 $D409 54281 CHBAS $O2F4 756 COLBK color/brightness of setcolor 4 !P} $D01A 53274 COLOR4 $02C8 712 COLPF0 Color/brightness of setcolor 0 $D016 53270 COLOR0 $02C4 708 COLPF1 color/brightne!Q}ss of setcolor 1 $D017 53271 COLOR1 $02C5 709 COLPF2 color/brightness of setcolor 2 $D018 53272 COLOR2 $02C6 710 CO!R}LPF3 color/brightness of setcolor 3 $D019 53273 COLOR3 $02C7 711 PRIOR p/m priority and GTIA mode $D21B 53275 G!S}PRIOR $026F 623 PENH light pen horizontal position $D40C 54284 LPENH $0234 564 PENV light pen vertical position !T} $D40D 54285 LPENV $0235 565 POT0 game paddle 0 $D200 53760 PADDL0 $0270 624 POT1 game paddl!U}e 1 $D201 53761 PADDL1 $0271 625 POT2 game paddle 2 $D202 53762 PADDL2 $0272 626!V} POT3 game paddle 3 $D203 53763 PADDL3 $0273 627 POT4 game paddle 4 $D204 537!W}64 PADDL4 $0274 628 POT5 game paddle 5 $D205 53765 PADDL5 $0275 629 POT6 game paddle 6 !X} $D206 53766 PADDL6 $0276 630 POT7 game paddle 7 $D207 53767 PADDL7 $0277 631 COLPM0 color/!Y}brightness, player/missile 0 $D012 53266 PCOLR0 $02C0 704 COLPM1 color/brightness, player/missile 1 $D013 53267 PCOLR1 $02C1!Z} 705 COLPM2 color/brightness, player/missile 2 $D014 53268 PCOLR2 $02C2 706 COLPM3 color/brightness, player/missile 3 $D015![} 53269 PCOLR3 $02C3 707 IRQEN interrupt request enable (IRQ) $D20E 53774 POKMSK $0010 16 DLISTH display list pointer !\}high byte $D403 54275 SDLSTH $0231 561 DLISTL display list pointer low byte $D402 54274 SDLSTL $0230 560 DMACTL Di!]}rect Memory access control (DMA) $D400 54272 SDMCTL $022F 559 SKCTL serial port control $D20F 53775 SSKCTL $!^}0232 563 PORTA port A $D300 54016 STICK0 $0278 632 !_} STICK1 $0279 633 PORTB port B $D301 54017 STICK2 $027A 634 !`} STICK3 $027B 635 TRIG0 joystick trigger 0 $D010 53264 STRIG0 $0284 644 TRIG1!a} joystick trigger 1 $D011 53265 STRIG1 $0285 645 TRIG2 joystick trigger 2 $D012 53266 STRI!b}G2 $0286 646 TRIG3 joystick trigger 3 $D013 53267 STRIG3 $0287 647 NUMERICAL ORDERIRQEN interrup!c}t request enable (IRQ) $D20E 53774 POKMSK $0010 16 DMACTL Direct Memory access control (DMA) $D400 54272 SDMCTL $022F 5!d}59 DLISTL display list pointer low byte $D402 54274 SDLSTL $0230 560 DLISTH display list pointer high byte $D403 5!e}4275 SDLSTH $0231 561 SKCTL serial port control $D20F 53775 SSKCTL $0232 563 PENH light pen horizontal po!f}sition $D40C 54284 LPENH $0234 564 PENV light pen vertical position $D40D 54285 LPENV $0235 565 PRIOR p/m !g}priority and GTIA mode $D21B 53275 GPRIOR $026F 623 POT0 game paddle 0 $D200 53760 PADDL0 $02!q}}B%DOS SYSB*)DUP SYSB SAUTORUN SYSB_HELP DOCBoMANUAL DOCBBREADER OBJB?APNDXA B? APNDXA 1 B-KAPNDXA 2 BKAPNDXB BEAPNDXB 1 B#APNDXB 2 B4APNDXC 70 624 POT1 game paddle 1 $D201 53761 PADDL1 $0271 625 POT2 game paddle 2 $D2!r}02 53762 PADDL2 $0272 626 POT3 game paddle 3 $D203 53763 PADDL3 $0273 627 POT4 game paddle 4 !s} $D204 53764 PADDL4 $0274 628 POT5 game paddle 5 $D205 53765 PADDL5 $0275 629 POT6 !t}game paddle 6 $D206 53766 PADDL6 $0276 630 POT7 game paddle 7 $D207 53767 PADDL7!u} $0277 631 PORTA port A $D300 54016 STICK0 $0278 632 !v} STICK1 $0279 633 PORTB port B $D301 54017 STICK2 $027A 634 !w} STICK3 $027B 635 TRIG0 joystick trigger 0 $D010 53264 STRIG0 $0284 644 TRI!x}G1 joystick trigger 1 $D011 53265 STRIG1 $0285 645 TRIG2 joystick trigger 2 $D012 53266 ST!y}RIG2 $0286 646 TRIG3 joystick trigger 3 $D013 53267 STRIG3 $0287 647 COLPM0 color/brightness, player/missi!z}le 0 $D012 53266 PCOLR0 $02C0 704 COLPM1 color/brightness, player/missile 1 $D013 53267 PCOLR1 $02C1 705 COLPM2 color/brigh!{}tness, player/missile 2 $D014 53268 PCOLR2 $02C2 706 COLPM3 color/brightness, player/missile 3 $D015 53269 PCOLR3 $02C3 707 !|}COLPF0 Color/brightness of setcolor 0 $D016 53270 COLOR0 $02C4 708 COLPF1 color/brightness of setcolor 1 $D017 5327!}}1 COLOR1 $02C5 709 COLPF2 color/brightness of setcolor 2 $D018 53272 COLOR2 $02C6 710 COLPF3 color/brightness of setcol!~}or 3 $D019 53273 COLOR3 $02C7 711 COLBK color/brightness of setcolor 4 $D01A 53274 COLOR4 $02C8 712 CHACTL charact!}er control $D401 54273 CHART $02F3 755 CHBASE Address of character set / 256 $D409 54281 CHBAS $O2F4 !}756 KBCODE keyboard code $D209 53769 CH $O2FC 764 haracter set / 256 $D409 54281 CHBAS $O2F4 M8 4 1 5 0 4 76 2 8 132B-@27EAPPENDIX BOPERATING SYSTEM EQUATES0100 ;0101 ; ATARI 80%}0 EQUATE LISTING0102 ;0103 ;0104 ;0105 ;This listing is based on the original release of Operating System,0106 ;version %}A. The vectors shown here were not changed in version B.0107 ;New equates for XL and XE models are included and noted. Cha%}nges0108 ;from version B to XL/XE are also noted.0109 ;0110 ;Most of the equate names given below are the official Atari0%}111 ;names. They are in common use but are not mandatory.0112 ;0113 ;0114 ; DEVICE NAMES0115 ;0116 ;0117 ;SCREDT%} = "E" SCREEN EDITOR0118 ;KBD = "K" KEYBOARD0119 ;DISPLY = "S" DISPLAY0120 ;PRINTR = "P" PRINTER0121 ;CASSET =%} "C" CASSETTE0122 ;DISK = "D" DISK DRIVE0123 ;0124 ;0125 ;0126 ; STATUS CODES 0127 ;0128 ;0129 SUCCES =%} $01 10130 BRKABT = $80 128 BREAK KEY ABORT0131 PRVOPN = $82 130 IOCB ALREADY OPEN0132 NONDEV = $82 %}130 NONEXISTANT DEVICE0133 WRONLY = $83 131 OPENED FOR WRITE ONLY0134 NVALID = $84 132 INVALID COMMAND0135 NOTOP%}N = $85 133 DEVICE OR FILE NOT OPEN0136 BADIOC = $86 134 INVALID IOCB NUMBER0137 RDONLY = $87 135 OPENED FOR%} READ ONLY0138 EOFERR = $88 136 END OF FILE0139 TRNRCD = $89 137 TRUNCATED RECORD0140 TIMOUT = $8A 138 PERI%}PHERAL TIME OUT0141 DNACK = $8B 139 DEVICE DOES NOT ACKNOWLEDGE0142 FRMERR = $8C 140 SERIAL BUS FRAMING ERROR01%}43 CRSROR = $8D 141 CURSOR OUT OF RANGE0144 OVRRUN = $8E 142 SERIAL BUS DATA OVERRUN0145 CHKERR = $8F 143 SE%}RIAL BUS CHECKSUM ERROR0146 DERROR = $90 144 PERIPHERAL DEVICE ERROR0147 BADMOD = $91 145 NON EXISTANT SCREEN MOD%}E0148 FNCNOT = $92 146 FUNCTION NOT IMPLEMENTED0149 SCRMEM = $93 147 NOT ENOUGH MEMORY FOR SCREEN MODE0150 ;015%}1 ;0152 ;0153 ;0154 ; COMMAND CODES FOR CIO0155 ;0156 ;0157 OPEN = $03 30158 OPREAD = $04 4 OPEN FOR %}INPUT0159 GETREC = $05 5 GET RECORD0160 OPDIR = $06 6 OPEN TO DISK DIRECTORY0161 GETCHR = $07 7 GET %}BYTE0162 OWRITE = $08 8 OPEN FOR OUTPUT0163 PUTREC = $09 9 WRITE RECORD0164 APPEND = $09 9 OPEN TO AP%}PEND TO END OF DISK FILE0165 MXDMOD = $10 16 OPEN TO SPLIT SCREEN (MIXED MODE)0166 PUTCHR = $0B 11 PUT-BYTE016%}7 CLOSE = $0C 120168 OUPDAT = $0C 12 OPEN FOR INPUT AND OUTPUT AT THE SAME TIME0169 STATUS = $0D 130170%} SPECIL = $0E 14 BEGINNING OF SPECIAL COMMANDS0171 DRAWLN = $11 17 SCREEN DRAW0172 FILLIN = $12 18 SCREEN%} FILL0173 RENAME = $20 320174 INSCLR = $20 32 OPEN TO SCREEN BUT DON'T ERASE0175 DELETE = $21 330176 DF%}RMAT = $21 33 FORMAT DISK (RESIDENT DISK HANDLER (RDH))0177 LOCK = $23 350178 UNLOCK = $24 360179 POIN%}T = $25 370180 NOTE = $26 380181 PTSECT = $50 80 RDH PUT SECTOR0182 GTSECT = $52 82 RDH GET SEC%}TOR0183 DSTAT = $53 83 RDH GET STATUS0184 PSECTV = $57 87 RDH PUT SECTOR AND VERIFY0185 NOIRG = $80 128%} NO GAP CASSETTE MODE0186 CR = $9B 155 CARRIAGE RETURN (EOL)0187 ;0188 IOCBSZ = $10 16 IOCB SIZE0189 MAXIO%}C = $80 128 MAX IOCB BLOCK SIZE0190 IOCBF = $FF 255 IOCB FREE0191 ;0192 LEDGE = $02 2 DEFAULT LEFT MARG%}IN0193 REDGE = $27 39 DEFAULT RIGHT MARGIN0194 ;0195 ; OS VARIABLES0196 ;0197 ; PAGE 00198 ;0199%} LINZBS = $00 0 (800) FOR ORIGINAL DEBUGGER0200 ; $00 0 (XL) RESERVED0201 NGFLAG = $01 1 (XL) F%}OR POWER-UP SELF TEST0202 CASINI = $02 20203 RAMLO = $04 4 POINTER FOR SELF TEST0204 TRAMSZ = $06 6 %}TEMPORARY RAM SIZE0205 TSTDAT = $07 7 TEST DATA0206 WARMST = $08 80207 BOOT? = $09 9 SUCCESSFUL BOOT%} FLAG0208 DOSVEC = $0A 10 PROGRAM RUN VECTOR0209 DOSINI = $0C 12 PROGRAM INITIALIZATION0210 APPMHI = $0E %} 14 DISPLAY LOW LIMIT0211 POKMSK = $10 16 IRQ ENABLE FLAGS0212 BRKKEY = $11 17 FLAG0213 RTCLOK = $12 18 %}3 BYTES, MSB FIRST0214 BUFADR = $15 21 INDIRECT BUFFER ADDRESS0215 ICCOMT = $17 23 COMMAND FOR VECTOR0216 DSKF%}MS = $18 24 DISK FILE MANAGER POINTER0217 DSKUTL = $1A 26 DISK UTILITY POINTER (DUP.SYS)0218 PTIMOT = $1C %} 28 (800) PRINTER TIME OUT REGISTER0219 ABUFPT = $1C 28 (XL) RESERVED0220 PBPNT = $1D 29 (800) PRINTER BUFFER %}POINTER0221 ; $1D 29 (XL) RESERVED0222 PBUFSZ = $1E 30 (800) PRINTER BUFFER SIZE0223 ; $1E %} 30 (XL) RESERVED0224 PTEMP = $1F 31 (800) TEMPORARY REGISTER0225 ; $1F 31 (XL) RESERVED0226 ZIOCB = %}$20 32 ZERO PAGE IOCB0227 ICHIDZ = $20 32 HANDLER INDEX NUMBER (ID)0228 ICDNOZ = $21 33 DEVICE NUMBER022%}9 ICCOMZ = $22 34 COMMAND0230 ICSTAZ = $23 35 STATUS0231 ICBALZ = $24 36 BUFFER POINTER LOW BYTE0232 ICB%}AHZ = $25 37 BUFFER POINTER HIGH BYTE0233 ICPTLZ = $26 38 PUT ROUTINE POINTER LOW0234 ICPTHZ = $27 39 PUT%} ROUTINE POINTER HIGH0235 ICBLLZ = $28 40 BUFFER LENGTH LOW0236 ICBLHZ = $29 410237 ICAX1Z = $2A 42 AUXI%}LIARY INFORMATION BYTE 10238 ICAX2Z = $2B 430239 ICSPRZ = $2C 44 TWO SPARE BYTES (CIO USE)0240 ICIDNO = $2E %} 46 IOCB NUMBER X 160241 CIOCHR = $2F 47 CHARACTER BYTE FOR CURRENT OPERATION0242 ;0243 STATUS = $30 48 STA%}TUS STORAGE0244 CHKSUM = $31 49 SUM WITH CARRY ADDED BACK0245 BUFRLO = $32 50 DATA BUFFER LOW BYTE0246 BUFRHI %}= $33 510247 BFENLO = $34 52 ADDRESS OF LAST BUFFER BYTE +1 (LOW)0248 BFENHI = $35 530249 CRETRY = $36 %} 54 (800) NUMBER OF COMMAND FRAME RETRIES0250 LTEMP = $36 54 (XL) LOADER TEMPORARY STORAGE, 2 BYTES0251 DRETRY =%} $37 55 (800) DEVICE RETRIES0252 BUFRFL = $38 56 BUFFER FULL FLAG0253 RECVDN = $39 57 RECEIVE DONE FLAG0%}254 XMTDON = $3A 58 TRANSMISSION DONE FLAG0255 CHKSNT = $3B 59 CHECKSUM-SENT FLAG0256 NOCKSM = $3C 60 CHE%}CKSUM-DOES-NOT-FOLLOW-DATA FLAG0257 BPTR = $3D 610258 FTYPE = $3E 620259 FEOF = $3F 630260 FREQ %}= $40 640261 ;0262 SOUNDR = $41 65 0=QUIET I/O0263 CRITIC = $42 66 CRITICAL FUNCTION FLAG, NO DEFFERED V%}BI0264 FMSZPG = $43 67 DOS ZERO PAGE, 7 BYTES0265 CKEY = $4A 74 (800) START KEY FLAG0266 ZCHAIN = $4A %}74 (XL) HANDLER LOADER TEMP, 2 BYTES0267 CASSBT = $4B 75 (800) CASSETTE BOOT FLAG0268 DSTAT = $4C 76 DISPLAY S%}TATUS0269 ;0270 ATRACT = $4D 770271 DRKMSK = $4E 78 ATTRACT MASK0272 COLRSH = $4F 79 ATTRACT COLOR SHIF%}TER (EORed WITH GRAPHICS)0273 ;0274 TMPCHR = $50 800275 HOLD1 = $51 810276 LMARGN = $52 82 SCREEN LEFT%} MARGIN REGISTER0277 RMARGN = $53 83 SCREEN RIGHT MARGIN0278 ROWCRS = $54 84 CURSOR ROW0279 COLCRS = $55 %} 85 CURSOR COLUMN, 2 BYTES0280 DINDEX = $57 87 DISPLAY MODE0281 SAVMSC = $58 88 SCREEN ADDRESS0282 OLDROW = $5%}A 90 CURSOR BEFORE DRAW OR FILL0283 OLDCOL = $5B 910284 OLDCHR = $5D 93 DATA UNDER CURSOR0285 OLDADR = $%}5E 94 CURSOR ADDRESS0286 NEWROW = $60 96 (800) DRAWTO DESTINATION0287 FKDEF = $60 96 (XL) FUNCTION KEY D%}EFINATION POINTER0288 NEWCOL = $61 97 (800) DRAWTO DESTINATION, 2 BYTES0289 PALNTS = $62 98 (XL) EUROPE/NORTH A%}MERICA TV FLAG0290 LOGCOL = $63 99 LOGICAL LINE COLUMN POINTER0291 MLTTMP = $66 1020292 OPNTMP = $66 102 T%}EMPORARY STORAGE FOR CHANNEL OPEN0293 SAVADR = $68 1040294 RAMTOP = $6A 106 START OF ROM (END OF RAM + 1), HIGH B%}YTE ONLY0295 BUFCNT = $6B 107 BUFFER COUNT0296 BUFSTR = $6C 108 POINTER USED BY EDITOR0297 BITMSK = $6E 110%} POINTER USED BY EDITOR0298 SHFAMT = $6F 1110299 ROWAC = $70 1120300 COLAC = $72 1140301 ENDPT = $74 %} 1160302 DELTAR = $76 1180303 DELTAC = $77 1190304 ROWINC = $79 121 (800)0305 KEYDEF = $79 121 (XL)%} KEY DEFINATION POINTER, 2 BYTES0306 COLINC = $7A 122 (800)0307 SWPFLG = $7B 123 NON 0 IF TEXT AND REGULAR RAM IS%} SWAPPED0308 HOLDCH = $7C 124 CH MOVED HERE BEFORE CTRL AND SHIFT0309 INSDAT = $7D 1250310 COUNTR = $7E 126%}0311 ;0312 ZROFRE = $80 128 FREE ZERO PAGE, 84 BYTES0313 FPZRO = $D4 212 FLOATING POINT RAM, 43 BYTES0314 FR0 %} = $D4 212 FP REGISTER 00315 FRE = $DA 2180316 FR1 = $E0 224 FP REGISTER 10317 FR2 = $E6 23%}0 FP REGISTER 20318 FRX = $EC 236 SPARE0319 EEXP = $ED 237 VALUE OF E0320 NSIGN = $ED 237 SIGN OF FP %}NUMBER0321 ESIGN = $EF 239 SIGN OF FP EXPONENT0322 FCHFLG = $F0 240 FIRST CHARACTER FLAG0323 DIGRT = $F1 %}241 NUMBER OF DIGITS RIGHT OF DECIMAL POINT0324 CIX = $F2 242 INPUT INDEX0325 INBUFF = $F3 243 POINTER TO ASCI%}I FP NUMBER0326 ZTEMP1 = $F5 2450327 ZTEMP4 = $F7 2470328 ZTEMP3 = $F9 2490329 DEGFLG = $FB 2510330 %}RADFLG = $FB 251 0=RADIANS, 6=DEGREES0331 FLPTR = $FC 252 POINTER TO BCD FP NUMBER0332 FPTR2 = $FE 254033%}3 ;0334 ;0335 ; PAGE 10336 ;0337 ; 65O2 STACK0338 ;0339 ;D:APNDXBD.1R0332 FPTR2 = $FE 254033$]0340 ;0341 ;0342 ; PAGE 20343 ;0344 ;0345 INTABS = $0200 512 INTERRUPT RAM0346 VDSLST = $0200 512 NMI VE)}CTOR0347 VPRCED = $0202 514 PROCEED LINE IRQ VECTOR0348 VINTER = $0204 516 INTERRUPT LINE IRQ VECTOR0349 VBREAK = $0)}206 5180350 VKEYBD = $0208 5200351 VSERIN = $020A 522 SERIAL INPUT READY IRQ0352 VSEROR = $020C 524 SERIAL OUT)}PUT READY IRQ0353 VSEROC = $020E 526 SERIAL OUTPUT COMPLETE IRQ0354 VTIMR1 = $0210 528 TIMER 1 IRQ0355 VTIMR2 = $021)}2 530 TIMER 2 IRQ0356 VTIMR4 = $0214 532 TIMER 4 IRQ0357 VIMIRQ = $0216 534 IRQ VECTOR0358 CDTMV1 = $0218 536 )}DOWN TIMER 10359 CDTMV2 = $021A 538 DOWN TIMER 20360 CDTMV3 = $021C 540 DOWN TIMER 30361 CDTMV4 = $021E 542 DOWN )}TIMER 40362 CDTMV5 = $0220 544 DOWN TIMER 50363 VVBLKI = $0222 5460364 VVBLKD = $0224 5480365 CDTMA1 = $0226 )}550 DOWN TIMER 1 JSR ADDRESS0366 CDTMA2 = $0228 552 DOWN TIMER 2 JSR ADDRESS0367 CDTMF3 = $022A 554 DOWN TIMER 3 FLAG)}0368 SRTIMR = $022B 555 REPEAT TIMER0369 CDTMF4 = $022C 556 DOWN TIMER 4 FLAG0370 INTEMP = $022D 557 IAN'S TEMP0)}371 CDTMF5 = $022E 558 DOWN TIMER FLAG 50372 SDMCTL = $022F 559 DMACTL SHADOW0373 SDLSTL = $0230 560 DISPLAY LIST )}POINTER0374 SSKCTL = $0232 562 SKCTL SHADOW0375 ; $0233 563 (800) UNLISTED0376 LCOUNT = $0233 563 (XL) LOA)}DER TEMP0377 LPENH = $0234 564 LIGHT PEN HORIZONTAL0378 LPENV = $0235 565 LIGHT PEN VERTICAL0379 ; $0236 )} 566 2 SPARE BYTES0380 ; $0238 568 (800) SPARE, 2 BYTES0381 RELADR = $0238 568 (XL) LOADER0382 CDEVIC = $023A)} 570 DEVICE COMMAND FRAME BUFFER0383 CAUX1 = $023C 572 DEVICE COMMAND AUX 10384 CAUX2 = $023D 573 DEVICE COMMAND)} AUX 20385 TEMP = $023E 574 TEMPORARY STORAGE0386 ERRFLG = $023F 575 DEVICE ERROR FLAG (EXCEPT TIMEOUT)0387 DFLAGS)} = $0240 576 FLAGS FROM DISK SECTOR 10388 DBSECT = $0241 577 NUMBER OF BOOT DISK SECTORS0389 BOOTAD = $0242 578 BO)}OT LOAD ADDRESS POINTER0390 COLDST = $0244 580 COLD START FLAG, 1 = COLD START IN PROGRESS0391 ; $0245 581 (80)}0) SPARE0392 RECLEN = $0245 581 (XL) LOADER0393 DSKTIM = $0246 582 (800) DISK TIME OUT REGISTER0394 ; $0246 )} 582 (XL) RESERVED, 39 BYTES0395 LINBUF = $0247 583 (800) CHARACTER LINE BUFFER, 40 BYTES0396 CHSALT = $026B 619 (XL)}) CHARACTER SET POINTER0397 VSFLAG = $026C 620 (XL) FINE SCROLL TEMPORARY0398 KEYDIS = $026D 621 (XL) KEYBOARD DISABL)}E0399 FINE = $026E 622 (XL) FINE SCROLL FLAG0400 GPRIOR = $026F 623 P/M PRIORITY AND GTIA MODES0401 GTIA = $026F)} 6230402 PADDL0 = $0270 624 (XL) 3 MORE PADDLES, (800) 6 MORE PADDLES0403 STICK0 = $0278 632 (XL) 1 MORE STICK, (8)}00) 3 MORE STICKS0404 PTRIG0 = $027C 636 (XL) 3 MORE PADDLE TRIGGERS, (800) 6 MORE0405 STRIG0 = $0284 644 (XL) 1 MORE)} STICK TRIGGER, (800) 3 MORE0406 CSTAT = $0288 648 (800)0407 WMODE = $0289 6490408 BLIM = $028A 6500409 ; )} $028B 651 5 SPARE BYTES0410 NEWADR = $028E 654 (XL) LOADER RAM0411 TXTROW = $0290 6560412 TXTCOL = $0291 )} 6570413 TINDEX = $0293 659 TEXT INDEX0414 TXTMSC = $0294 6600415 TXTOLD = $0296 662 OLD ROW AND OLD COL FOR TEXT)}, 2 BYTES0416 ; $0298 664 4 SPARE BYTES0417 TMPX1 = $029C 668 (800)0418 CRETRY = $029C 668 (XL) NUMBER O)}F COMMAND FRAME RETRIES0419 SUBTMP = $029E 6700420 HOLD2 = $029F 6710421 DMASK = $02A0 6720422 TMPLBT = $02A1 )} 6730423 ESCFLG = $02A2 6740424 TABMAP = $02A3 675 15 BYTE BIT MAP FOR TAB SETTINGS0425 LOGMAP = $02B2 690 4 BY)}TE LOGICAL LINE START BIT MAP0426 INVFLG = $02B6 6940427 FILFLG = $02B7 695 FILL DIRING DRAW FLAG0428 TMPROW = $02B8)} 6960429 TMPCOL = $02B9 6970430 SCRFLG = $02BB 699 SCROLL FLAG0431 HOLD4 = $02BC 7000432 HOLD5 = $02BD 7)}01 (800)0433 DRETRY = $02BD 701 (XL) NUMBER OF DEVICE RETRIES0434 SHFLOC = $02BE 7020435 BOTSCR = $02BF 703 24 N)}ORM, 4 SPLIT0436 PCOLR0 = $02C0 704 3 MORE PLAYER COLOR REGISTERS0437 COLOR0 = $02C4 708 4 MORE GRAPHICS COLOR REGIST)}ERS0438 ; $02C9 713 (800) 23 SPARE BYTES0439 RUNADR = $02C9 713 (XL) LOADER VECTOR0440 HIUSED = $02CB 715 )}(XL) LOADER VECTOR0441 ZHIUSE = $02CD 717 (XL) LOADER VECTOR0442 GBYTEA = $02CF 719 (XL) LOADER VECTOR0443 LOADAD = )}$02D1 721 (XL) LOADER VECTOR0444 ZLOADA = $02D3 723 (XL) LOADER VECTOR0445 DSCTLN = $02D5 725 (XL) DISK SECTOR SIZ)}0446 ACMISR = $02D7 727 (XL) RESERVED0447 KRPDER = $02D9 729 (XL) KEY AUTO REPEAT DELAY0448 KEYREP = $02DA 730 (X)}L) KEY AUTO REPEAT RATE0449 NOCLIK = $02DB 731 (XL) KEY CLICK DISABLE0450 HELPFG = $02DC 732 (XL) HELP KEY FLAG0451 )}DMASAV = $02DD 733 (XL) SDMCTL (DMA) SAVE0452 PBPNT = $02DE 734 (XL) PRINTER BUFFER POINTER0453 PBUFSZ = $02DF 73)}5 (XL) PRINTER BUFFER SIZE0454 GLBABS = $02E0 736 GLOBAL VARIABLES, 4 SPARE BYTES0455 RAMSIZ = $02E4 740 PERMANENT ST)}ART OF ROM POINTER0456 MEMTOP = $02E5 741 END OF FREE RAM0457 MEMLO = $02E7 7430458 ; $02E9 745 (800) SPA)}RE0459 HNDLOD = $02E9 745 (XL) HANDLER LOADER FLAG0460 DVSTAT = $02EA 746 DEVICE STATUS BUFFER, 4 BYTES0461 CBAUDL =)} $02EE 750 CASSETTE BAUD RATE, 2 BYTES0462 CRSINH = $02F0 752 1 = INHIBIT CURSOR0463 KEYDEL = $02F1 753 KEY DELAY )}AND RATE0464 CH1 = $02F2 7540465 CHACT = $02F3 7550466 CHBAS = $02F4 756 CHARACTER SET POINTER0467 NEWROW =)} $02F5 757 (XL) DRAW DESTINATION0468 NEWCOL = $02F6 758 (XL) DRAW DESTINATION0469 ROWINC = $02F8 760 (XL)0470 COL)}INC = $02F9 761 (XL)0471 CHAR = $02FA 7620472 ATACHR = $02FB 763 ATASCII CHARACTER FOR CIO0473 CH = $02FC )} 7640474 FILDAT = $02FC 764 COLOR FOR SCREEN FILL0475 DSPFLG = $02FE 766 DISPLAY CONTROL CHARACTERS FLAG0476 SSFLAG)} = $02FF 767 DISPLAY START/STOP FLAFG0477 ;0478 ;0479 ; PAGE 30480 ;0481 ;0482 ; RESIDENT DISK HANDLER)}/SIO INTERFACE0483 ;0484 DCB = $0300 768 DEVICE CONTROL BLOCK0485 DDEVIC = $0300 7680486 DUNIT = $0301 7690)}487 DCOMND = $0302 7700488 DSTATS = $0303 7710489 DBUFLO = $0304 7720490 DBUFHI = $0305 7730491 DTIMLO = $030)}6 7740492 DBYTLO = $0308 7760493 DBYTHI = $0309 7770494 DAUX1 = $030A 7780495 DAUX2 = $030B 7790496 TIM)}ER1 = $030C 780 INITIAL TIMER VALUE0497 ADDCOR = $030E 782 (800) ADDITION CORRECTION0498 JMPERS = $030E 782 (XL) O*}PTION JUMPERS0499 CASFLG = $030F 783 CASSETTE MODE WHEN SET0500 TIMER2 = $0310 784 FINAL VALUE, TIMERS 1 & 2 DETERMIN*}E BAUD RATE0501 TEMP1 = $0312 7860502 TEMP2 = $0313 787 (XL)0503 TEMP2 = $0314 788 (800)0504 PTIMOT = $0314 *} 788 (XL) PRINTER TIME OUT0505 TEMP3 = $0315 7890506 SAVIO = $0316 790 SAVE SERIAL IN DATA PORT0507 TIMFLG = $031*}7 791 TIME OUT FLAG FOR BAUD RATE CORRECTION0508 STACKP = $0318 792 SIO STACK POINTER SAVE0509 TSTAT = $0319 793 *}TEMPORARY STATUS HOLDER0510 HATABS = $031A 794 HANDLER ADDRESS TABLE, 38 BYTES0511 MAXDEV = $0321 801 MAXIMUM HANDLER*} ADDRESS INDEX0512 PUPBT1 = $033D 829 (XL) POWER-UP/RESET0513 PUPBT2 = $033E 830 (XL) POWER-UP/RESET0514 PUPBT3 = $0*}33F 831 (XL) POWER-UP/RESET0515 ;0516 ;IOCB's0517 ;0518 IOCB = $0340 8320519 ICHID = $0340 8320520 ICDNO =*} $0341 8330521 ICCOM = $0342 8340522 ICSTA = $0343 8350523 ICBAL = $0344 8360524 ICBAH = $0345 837052*}5 ICPTL = $0346 8380526 ICPTH = $0347 8390527 ICBLL = $0348 8400528 ICBLH = $0349 8410529 ICAX1 = $034A * } 8420530 ICAX2 = $034B 8430531 ICAX3 = $034C 8440532 ICAX4 = $034D 8450533 ICAX5 = $034E 8460534 ICAX6* } = $034F 8470535 ; OTHER IOCB's, 112 BYTES0536 PRNBUF = $03C0 960 PRINTER BUFFER, 40 BYTES0537 * }; $03E8 1000 (800) 21 SPARE BYTES0538 SUPERF = $03E8 1000 (XL) SCREEN EDITOR0539 CKEY = $03E9 1001 (XL) STAR* }T KEY FLAG0540 CASSBT = $03EA 1002 (XL) CASSETTE BOOT FLAG0541 CARTCK = $03EB 1003 (XL) CARTRIDGE CHECKSUM0542 ACMVAR * }= $03ED 1005 (XL) RESERVED, 6 BYTES0543 MINTLK = $03F9 1017 (XL) RESERVED0544 GINTLK = $03FA 1018 (XL) CARTRIDGE INTE*}RLOCK0545 CHLINK = $03FB 1019 (XL) HANDLER CHAIN, 2 BYTES0546 CASBUF = $03FD 1021 CASSETTE BUFFER, 131 BYTES TO $047F0*}547 ;0548 ;0549 ; PAGE 40550 ;0551 ;0552 USAREA = $0480 1152 128 SPARE BYTES0553 ;0554 ; SEE APPENDIX C *}FOR PAGES 4 AND 5 USAGE0555 ;0556 ;D:APNDXBD.20552 USAREA = $0480 1152 128 SPARE BYTES0553 ;0554 ; SEE APPENDIX C (30557 ;0558 ;0559 ; PAGE 50560 ;0561 PAGE5 = $0500 1280 127 FREE BYTES0562 ; $057E 1406 129 FREE BYT.}ES IF FLOATING POINT ROUTINES NOT USED0563 ;0564 ;FLOATING POINT NON-ZERO PAGE RAM, NEEDED ONLY IF FP IS USED0565 ;0566 L.}BPR1 = $057E 1406 LBUFF PREFIX 10567 LBPR2 = $05FE 1534 LBUFF PREFIX 20568 LBUFF = $0580 1408 LINE BUFFER0569 PLY.}ARG = $05E0 1504 POLYNOMIAL ARGUMENTS0570 FPSCR = $05E6 1510 PLYARG+FPREC0571 FPSCR1 = $05EC 1516 FPSCR+FPREC0572 F.}SCR = $05E6 1510 =FPSCR0573 FSCR1 = $05EC 1516 =FPSCR10574 LBFEND = $05FF 1535 END OF LBUFF0575 ;0576 ;0577 ; .} PAGE 60578 ;0579 ;0580 PAGE6 = $0600 1536 256 FREE BYTES0581 ;0582 ;0583 ; PAGE 70584 ;0585 ;0.}586 BOOTRG = $0700 1792 PROGRAM AREA0587 ;0588 ;0589 ; UPPER ADDRESSES0590 ;0591 ;0592 RITCAR = $8000 32768 RA.}M IF NO CARTRIDGE0593 LFTCAR = $A000 40960 RAM IF NO CARTRIDGE0594 C0PAGE = $C000 49152 (800) EMPTY, 4K BYTES0595 C0PAGE.} = $C000 49152 (XL) 2K FREE RAM IF NO CARTRIDGE0596 ; $C800 51200 (XL) START OF OS ROM0597 CHORG2 = $CC00 52224 (.}XL) INTERNATIONAL CHARACTER SET0598 ;0599 ;0600 ; HARDWARE REGISTERS0601 ;0602 ;0603 ; SEE REGISTER LIST FOR MORE.} INFORMATION0604 ;0605 ;0606 HPOSP0 = $D000 532480607 M0PF = $D000 532480608 SIZEP0 = $D008 532560609 M0PL = $D0.}08 532560610 SIZEM = $D00C 532600611 GRAFP0 = $D00D 532610612 GRAFM = $D011 532650613 COLPM0 = $D012 532660614 CO.}LPF0 = $D016 532700615 PRIOR = $D01B 532750616 GTIAR = $D01B 532750617 VDELAY = $D01C 532760618 GRACTL = $D01D 532.}770619 HITCLR = $D01E 532780620 CONSOL = $D01F 532790621 AUDF1 = $D200 537600622 AUDC1 = $D201 537610623 AUDCTL = .}$D208 537680624 RANDOM = $D20A 537700625 IRQEN = $D20E 537740626 SKCTL = $D20F 537750627 PORTA = $D300 540160628. } PORTB = $D301 540170629 PACTL = $D302 540180630 PBCTL = $D303 540190631 DMACLT = $D400 542720632 DLISTL = $D402 .!}542740633 HSCROL = $D404 542760634 VSCROL = $D405 542770635 CHBASE = $D409 542810636 WSYNC = $D40A 542820637 VCOUNT."} = $D40B 542830638 NMIEN = $D40E 542860639 ;0640 ; FLOATING POINT MATH ROUTINES0641 ;0642 AFP = $D800 552960643 .#}FASC = $D8E6 555260644 IFP = $D9AA 557220645 FPI = $D9D2 557620646 ZFR0 = $DA44 558760647 ZF1 = $DA46 5.$}58780648 FSUB = $DA60 559040649 FADD = $DA66 559100650 FMUL = $DADB 560270651 FDIV = $DB28 561040652 PLYEVL .%}= $DD40 566400653 FLD0R = $DD89 567130654 FLD0P = $DD8D 567170655 FLD1R = $DD98 567280656 FLD1P = $DD9C 5673206.&}57 FSTOR = $DDA7 567430658 FSTOP = $DDAB 567470659 FMOVE = $DDB6 567580660 EXP = $DDC0 567680661 EXP10 = $DDCC.'} 567800662 LOG = $DECD 570370663 LOG10 = $DED1 570410664 ;0665 ;0666 ; OPERATING SYSTEM0667 ;0668 ;0669 .(}; MODULE ORIGIN TABLE0670 ;0671 CHORG = $E000 57344 CHARACTER SET, 1K0672 VECTBL = $E400 58368 VECTOR TABLE0673 VC.)}TABL = $E480 58496 RAM VECTOR INITIAL VALUE TABLE0674 CIOORG = $E4A6 58534 CIO HANDLER0675 INTORG = $E6D5 59093 INTERRUP.*}T HANDLER0676 SIOORG = $E944 59716 SIO DRIVER0677 DSKORT = $EDEA 60906 DISK HANDLER0678 PRNORG = $EE78 61048 PRINTER HA.+}NDLER0679 CASORG = $EE78 61048 CASSETTE HANDLER0680 MONORG = $F0E3 61667 MONITOR/POWER UP MODULE0681 KBDORG = $F3E4 624.,}36 KEYBOARD/DISPLAY HANDLER0682 ;0683 ;0684 ; VECTOR TABLE, CONTAINS ADDRESSES OF CIO ROUTINES IN THE0685 ; FOLLOWING O.-}RDER. THE ADDRESSES IN THE TABLE ARE TRUE ADDRESSES-10686 ;0687 ; ADDRESS + 0 OPEN0688 ; + 2 CLOSE0689 ; ..} + 4 GET0690 ; + 6 PUT0691 ; + 8 STATUS0692 ; + A SPECIAL0693 ; + C JMP TO I./}NITIALIZATION0694 ; + F NOT USED0695 ;0696 ;0697 EDITRV = $E400 58368 EDITOR0698 SCRENV = $E410 58384 SCREEN.0}0699 KEYBDV = $E420 58400 KEYBOARD0700 PRINTV = $E430 58416 PRINTER0701 CASETV = $E440 58432 CASSETTE0702 ;0703 ; .1} ROM VECTORS0704 ;0705 DSKINV = $E453 584510706 CIOV = $E456 584540707 SIOV = $E459 584570708 SYSVBV = $E45F .2}584630709 VBIVAL = $E460 58464 ADR AT VVBLKI0710 XITVBV = $E462 58466 EXIT VBI0711 VBIXVL = $E463 58467 ADR AT VVBLKD0.3}712 BLKBDV = $E471 58481 MEMO PAD MODE0713 WARMSV = $E474 584840714 COLDSV = $E477 58487 = $E463 58467 ADR AT VVBLKD0,^12 4 1 5 0 10 70 2 12 132C-@27EAPPENDIX CMEMORY USEPage 0$00-$7FOperating system zero-page. The 25}entire first half of page zero is reserved for the operating system.$80-$FFFree zero-page. The top half of page zero is 26}free if BASIC is disabled. BASIC uses all but $CB-$D1. The floating point math routines use $D4-$FF. If the floating point27} arithmetic package is not used this memory is free.Page 1$100-1FFThis is the 6502 stack. The stack pointer initializ28}ed to $1FF and moves downward as the stack is filled.Pages 2-5$200-$47FThis area is used for operating system database29} variables. Parts which are not used in some particular programs, such as the cassette buffer or printer buffer, may then be2:} used for other purposes. See the O.S. equate listing for these locations.$480-$57D ($480-$6FF if no floating point)This2;} is called the user work space. It is free to be used by programs. If the floating point arithmetic package is not used the2<} user work space extends to $6FF. This area is used by BASIC.$57E-$5FFThis area is used by the floating point arithmetic2=} package. It is free if the package is not used.Page 6$600-6FFAtari has solemnly sworn never to put anything in this2>} page of memory.Page 7-the screen region$700This is called the boot region. Most machine language programs which don'2?}t use DOS load at this address. DOS extends from $700-$1CFB.MEMLOThe address pointed to by the O.S. database variable M2@}EMLO [$02E7,2 (743)] is the first byte of free memory. This pointer is usually changed by any program's initialization routi2A}ne. For example, upon power-up, MEMLO points to $700. When DOS loads in, DOS changes MEMLO to point to $2A80. If an AUTORU2B}N.SYS program then loads in just above DOS, such as DISKIO, it will usually change MEMLO to point above itself. One importan2C}t reason for this is to protect the program from BASIC. BASIC uses memory starting at MEMLO.MEMTOPMEMTOP [$2E5,2 (741)] 2D}is set by the O.S. whenever a graphics mode is entered. The graphics region is at the very top of ram and extends downward. 2E} The address MEMTOP points to depends on how much memory the screen region uses.APPMHIAPPMHI [$0E,2 (14)] should be set b2F}y any program to point to the highest address required by the program. If the O.S. cannot set up a screen without going belo2G}w APPMHI it will return a not-enough-memory-for-screen-mode error.The cartridge slots$8000 (32768)This is the beginnin2H}g of the 8K bytes used by the right cartridge slot of the 800. This is also where 16K cartridges begin. If there is no cart2I}ridge here it is ram.$A000 (40960)This is the beginning of the left cartridge of the 800 or the only cartridge slot on a2J}ll other models. This is where the BASIC ROM resides in the XL/XE models. This area is RAM is there is no cartridge or BASI2K}C is disabled on XL/XE models.above the cartridges$C000-$CFFF (49152-53247)This area is empty on the 800. Sometimes s2L}pecial ROM chips, such as Omnimon are wired in here. On the XL/XE models $C000-C7FF is free ram if there are no cartridges. 2M} On XL/XE models, the O.S. ROM starts at $C800$D000-$D7FF (53248-57373)This area is taken up by the hardware chips. The 2N}chips actually take only a fraction of this space. If these addresses are further decoded there is space for many, many more2O} hardware chips. For example, The PIA chip uses 256 bytes of memory but needs only 4 bytes. There is room for 64 PIA chips 2P}in this reserved memory.$E000-E3FF (57344-58367)This is the location of the ATASCII character set.$E400-FFF7 (58368-6552Q}27)This is the operating system ROM$FFF8-$FFFF (65528-65535)These last 8 bytes contain the addresses of the interrupt v2R}ectors. Upon power up the 6502 gets a reset pulse and looks up the reset routine here.tain the addresses of the interrupt v0X