@L|}6CD l0C)HCC WhL/h `CmCDiD`  R@W1  Y0@R !L` D  C D     )16CS S)  C)D1 p p 0 C9DI pCDL~CiCDiD`10 REM :LDA #1AU'@@. }1 D:SYSTAT.SYS  (YES/NO)?-@A F:Adcd ) LITSCSCXYGRACTPMBASHPOSPRAMTOSDMCTHIBYTADDZZADACADBSCXFLITPYFI@G B@}@@"@(1?(U @@0@` @ @ B2w BByB2HAAY}A B BD@A@B#A3A @@G @}!?b"@#A$;@(,V6-B2w6-BBy'6-B2H36-A?6-AYP6-F:,&@ }@V@6-AV$+-@@("'67,.>:,+ RR192,224,225,241,114,58,4,4,8,8,16,16 },8,8,8,28,28,42,73,0,31,21,31,14,4,0,0,0&86-%A$&-6AVA$4%8 01-@@-% }A%AU1 XA6-&AV%@--@@=%@:7<,,A bA6-%AV%A--@@ }(=%@:7<,,A lU6-%A%A1--@@;%AUQ%%AVAUU  +@  }@b+A#@=A@2OA@aA@rsA@A@A}AA#%@A 7%@AK%@A_%@@}k6-@w6-@G6-AS%@Af+%@Ah?%@ApS%@Ar}6-@"6-@'6-@76-@$'C6-@O6-@0[6-@`g6-@v9<@,6-@}6-A 9<@,6-@$'=6- A '-@/6-%9 A = I6-6-}% A@3-@;6-%E A@I : -@@6@,@&:6-@&6-} A0,%-@ A0!/%  H 6-%+ A )!A4%'@26-6>!A0H} A`)!@$@%@) AEG%@'%@&@=%@&@G A@E}68<@,-G:,B68<@,-E:,$+G:'@,%@,E$ A6-+&,$8<@,%>6-6+&'@,$8<@,%}A$.68<@,-G:,+68<@,-E:,.$@$6-+'@&,$8<@,%=6-+&,$8<@,%@$pd6-%}@6-'1 AP7,M-@'@W AP]/a d$ D:APPLE.EATFI@G B@m ABPEEK8 } LL** ATARI MESSAGE BOARD - BY JON LOVELESS 73 BROOKWOOD,ORINDA,}CA. 94518= (}#0@=0@W-@ @-(ATARI MESSAGE BOARD?-@ }@W(___________________3-@@3(** A MOVING WORD DISPLAY:-@@:( ** UP TO 10,000} CHARACTERS LONG1-@@1(** LARGE BLOCK LETTERS9-@@9(** 4 POSSIBLE CHARACTER COLORS }AR@ ;-@@ ;(!PRESS TO SEE THE COLOR KEY"F:B2y,@" @ (} A}0;I:,$?,9@'@@99AR= (}#0@@}=0@@ F:B2y,"@@$ (}F6-6-6@(6-@46-@FAR }@ @-@@(ҠŠ  ӠǮ!3-@@3((begin typing when ready!})###@@K:(E6-%@6-%@+"@@76-E6-%@-i!@!6-"}%@)6-@/(}A-@i(ҠŠ  ӠǮ2Z -)@(AR@#}4"A&B6-&@P6-&@Z A@4G"@!-@@G((press to end) PAGE # 5!$}-@!(  7# -AR#(>:,<$"AU@$ AA67<,.>:,Z @%}@d +@'6-@ 6-@'6-@'6-@ 6-@'6-@0@@&}0@@@0@@ @0@@@0@X#6-'}&@#@w0(@}-@0(@7<, A   B:,6-%@R)"(}6-@)6-%@\"A A-@@ $ IAR@/0@)}I0@ --@@-(**** COLOR KEY **** --@@-(==============*}===== 6-@@6(UPPER CASE = GOLD 6-@@ 6(Š = BLUE 7-@+}@7(lower case = GREEN 5-@@5( = RED =-@=(#PRE,}SS TO SEE A DEMONSTRATION ;-@;(!PRESS TO BEGIN YOUR MESSAGE F:B2y,"@A0P-} F:B2y,"@AP F:B2y,"@@  A0P $5@"6@'6-@956-.}&@AR@67<,. -(7<,)-@)( &@ -#@@/}K:- @P - DEMONSTRATION SUBROUTINE;A,||67@<@,.aTHIS IS A DEMONSTRATION OF T0}HE ATARI MESSAGE BOARD.....IT CAN DISPLAY A MESSAGE IN 4 COLORS......zz67@<A,._UPPER CASE IS GOLD...REVERSE 1}VIDEO IS ...LOWER CASE IS green...REVERSE LOWER CASE IS ... +@'6-@ 6-@'6-@'62}-@ 6-@'6-@ 0@@0@@@0@@ @(03}@@@20@<6-&@F0(@}-@0(@7<,P A4}Z  B:,6-%@d)"6-@)6-%@n "  @x AQ D:MESSAGE}ABRFJZTOMDYMDYPPJJNNNNNNNXXRTIMLOO@@ 6}  7} ! BIORYTHM CHARTxG 8}G9@,9@,;@ ,;@$,;@Q,;@,6.SUNMONTUEWEDTHUFRISAT6-@(1-@ 9}@"68,- ))31,28,31,30,31,30,31,31,30,31,30,31 +"( ("( ͠ :}!((WHAT IS YOUR NAME!,($(BIRTHDATE (MM,DD,YYYY) , A6-%A 6-6-6- ;} A 6-)!(START DATE (MM,DD,YYYY) ) A6-%A A"%(%(THE CHART <}IS 40 DAYS LONG.'6-@@,-@A 1 6-6 A;6-%%$Ae@ Bc#6-@ =}E 6-J AO6-%%$AeT Bc#6-@Y6-&?ZYY6-&%P:'@,&P:'@ >},&P:'A,%P:'A,%P:'A,&P:'A,^!@Apc 6-h Am 6-%r @ ?}Aw 6-| A 6-%PRINT HEADER@ +@AR@22()0.. @}....1......2......3......4......5....@@)()('S CHART FROM //++(#RED=PHYS. (23), A}WHITE = EMOT. (28),$$(BLUE=INTELLECT 33 DAY CYCLESET F(2) FOR LEAP YEAR 6- A68@,-8 B}@,%GENERATE CHART2 6-%6-6@20@@0@@9 @) C}-AY@5,@79 9 @)-@AY@(5,@y9 y @,@v@ D}1/@@C,@y@U/@y@g,@v@iy/@@i A-&@ E}?P6-%@6-776-+G:$+'@#&P:'@#,,,$@%,%@& @,@c& F}JP:,"@&,@w@2@#@@J A&776-+G:$+'@3&P:'@3,,,$@%,%@& G}+ @,@c&,JP:,"@&,@u@2@3@@J A5776-+G:$+'@( H}&P:'@(,,,$@%,%@&: @,@c&;JP:,"@&,@s@2@(@@J I} A?''P:,"@&*P:,"@&AA''P:,"@&*P:,"@&AC''P:,"@&*P:,"@&A J}D AN-@@u O!!B%+'@,AcP-@@R/%2@@ K}@/ AS!!B%+'@,@5T/%2@@@@/ AU!!B%+'@, L}AcV XINCREMENT DATE]"@A b6-%@g!@6-@l6-%@q& ! M}8,6-@&6-%@v @A@{6-@6-%@ 6-68@,-@( A N}68@,-8@,% 4RA` 4XAR AFIND DAY O}OF WEEK&&6-%@$P:?`%@',6-&P:?`%@',&&6-P:@$+%@,'@,6-P:@ P}$'@,6-P:'A,6-P:'A,6-%&%%&@&&6-&@$P:'@,%@$ Q} FIND DAYS IN PAST MONTHS*6-4-@&@8"@A@>6-%8,H R$ R}CHECK X FOR LEAP YEAR,,'A&P:'A,"A ,,'A&P:'A,"A0,,'@ S}&P:'@,A06-@$6-$L@-@@% =2 T}@$ TITLEcBpD@e'Bp@e9Bq$@KBqd@e]Br@ec"H"cBpE U}@!'Bp@9Bq%@KBqe@]Br@!c"I"cBD@d'B@d V}9B$@dKBd@d]B@c"L"cBE@ 'B@e9B%@eKB W}e@e]B@ c"O"?$ D:BIOCHARTNXXRTIMLOO@@ =  EPfCTRXYoo Y} 報 庠ˮ° +@%@36-@6-@'6-@yZ}36-@G("T:,"" A -6-F:B@,&AD2WWAAAAA[}AAAA A< @@d 6-%6-% A)6-%@6-&@) A\},6-%@ A @@)6-&@6-%@) AX)6-&@6-&@) A]}6-&@ A  @@6-%@ A6-&@LO:,!@@`O:,!@@j^}+ ,%%,&%!,%&+,&& @@6-%@"@6-@$D:COLO_}RSTK.B01PfCTRXYoo  ;<  SXSYXYSDDDHMISETIMA1A1A2ETEEDAYA@@@@a} b}oo 報 c}庠ˮ° &&9@a,9@a,;@,6.AM AW-A`@(6d}-E:,16-G:,B68'@,-S68'@,-W ! +@ A!@#'6-@y6-A`'6-@ye}(G6- A0--@@`96-@yC A@G *m-@`@%6-16-@h; Af}0G6-@yQ A@e-@@m6-&+ 6-%@`,/6-@t A0%6-@y/ g}A@-   2 (WHAT TIME IS IT 7''6-+$A6%$@`%,$@`<E6-P:'BU6,$6-&$BU6h}56-P:'AV,E6-&$AVA0 6-P:,@$@0@ BUAR@(((!(?(IT'S TIi}ME TO BUY AN ATARIU(PERSONAL COMPUTERF/ A6-%6-@e/ AP% 6-6-@U% Aj}R% 6-6-@E% ATW 6-6-@e A%6-16-@U; AA6-M6-@EW AZk} 6-6-6-_ @pdEE6-P:+F:@,$BU6%F:@,$AV%F:@ ,,'@`,n\6-P:'A6,$6l}-&$A656-P:'@`,E6-&$@`N6-P:,\6-&@p&!@6-&@&6.PMr6-$@&m}@s+6-&@ +6-%@`t 6-%@`u 6-%@`$3 n},A`@y3/8,$%8,$%$3 @,A`@y3/8,$%8,$%$! @!,8,$%o}8,$%$! @!/8,$%8,$%$,B +@%(@ ATARI TIMEB(@ŠĠ6p}$70@@ @70@$D:NEWCLOCK.B01@@@@V10 REM .C120 REM ͛30 REM .C040 REM 50 REM NUM.OBJ is a machine language60 REM object file which will provide70 REM thr}e BASIC user with automatic80 REM generation of line numbers.90 REM 100 REM .P105 REM .C1110 REM ͮʛ115 s}REM .C0120 REM 130 REM NUM.OBJ resides in the $600-$6ff140 REM address range of memory. It150 REM can be loaded into memt}ory by160 REM either of two methods. The170 REM first method is to use the180 REM DOS 'L' function to load it190 REM frou}m the DOS utility menu.200 REM The other method is to run210 REM the LOADOBJ BASIC program220 REM provided on this disk.2v}30 REM 240 REM To start automatic line number250 REM generation, enter the following260 REM BASIC statement:270 REM 280 w}REM A=USR(1536)285 REM .P290 REM 300 REM To stop it, just enter a null310 REM line (press RETURN without320 REM enteringx} any data). At this330 REM point, you may reposition the340 REM cursor and make any corrections350 REM that are necessaryy}.360 REM To resume generation, just re-enter370 REM the BASIC statement shown above.380 REM .P390 REM .C1400 REM z}420 REM 430 REM 440 REM Norm Draper450 REM .C0M.OBJ is a machine language60 REM object file which will provide70 REM th210 REM .C120 REM ͮ°30 REM .C040 REM 50 REM This is an assembler, written60 REM in BASIC, and published in the|}70 REM February 1981 issue of MICRO80 REM magazine (page 17).90 REM 100 REM Actually, it is much more than110 REM just an}} assembler. It can do120 REM the following six functions:130 REM 140 REM 1. Input and assemble source code150 REM 2. Sav~}e object code on tape160 REM 3. Load object code from tape170 REM 4. Execute the object program (USR)180 REM 5. Call the o}bject program and pass190 REM a parameter.200 REM 6. Disassemble an object program to210 REM the screen.220 REM .P230 RE}M .C1240 REM 250 REM .C0260 REM You should list off the program,270 REM or refer to the magazine article,28}0 REM to find out the mnemonics used.290 REM 300 REM The program is menu driven.310 REM Just RUN it and look at the menu.}320 REM 330 REM It would be a fairly easy task340 REM to convert this program for350 REM disk usage.360 REM .P370 REM .C}1380 REM 390 REM .C0400 REM 410 REM Author - William Colsher of420 REM Lisle, Illinois430 REM 440 REM Keyed in }by - Bill AppelM ͮ°30 REM .C040 REM 50 REM This is an assembler, written60 REM in BASIC, and published in the10 REM .C120 REM ԛ30 REM .C040 REM 50 REM This is a machine language60 REM program used to test your70 REM ATARI' }s RAM memory.80 REM 90 REM .P100 REM .C1110 REM 120 REM .C0130 REM 140 REM Each byte of memory from } $3400150 REM through the value in MEMTOP160 REM ($2E5-$2E6) is tested with every170 REM possible bit pattern. The memory }180 REM is tested in blocks of 256 bytes190 REM each. The first byte will initially200 REM contain $00 and the second byt }e210 REM $01, etc.. After storing the220 REM patterns for a block, they are230 REM read back in and verified. Next240 RE }M the first byte will contain $01250 REM and the second byte $02, etc..260 REM The 256th byte will contain a270 REM $00 on } this second pass.280 REM .P290 REM If an error is detected, the300 REM internal speaker will squack310 REM twice and a m }essage will be320 REM printed showing the location330 REM of the error and the pattern340 REM being tested for.350 REM 3 }60 REM All throughout the running of370 REM this program, messages will be380 REM displayed, showing you the block390 REM }of memory being tested at the400 REM time. When the program is all410 REM finished, the internal speaker420 REM will squa }ck once, and a count430 REM of the errors will be displayed.432 REM 433 REM The run time is approximately434 REM six seco }nds per block (or 24435 REM seconds per K).440 REM .P450 REM .C1460 REM 470 REM .C0480 REM 490 REM If yo }u have a 48k machine,500 REM you should remove the cartridge510 REM before booting the disk. If a520 REM cartridge is in }place, the last530 REM 8K of RAM will not be tested.730 REM .P740 REM .C1750 REM 760 REM .C0770 REM 780 REM W }ho will be the first person to790 REM convert this program to be800 REM bootable from tape? This way810 REM the memory no }rmally occupied by820 REM DOS can be tested, and people830 REM without disks can utilize the840 REM program.841 REM .P84 }2 REM .C1843 REM 844 REM .C0845 REM 846 REM The assembled listing of847 REM this program is provid }ed to you848 REM as MEMTEST.PRT on the disk. You849 REM may view it using the DOS copy850 REM function to copy to E:. Or } you851 REM may print it if you wish, using852 REM some other method.855 REM .P860 REM .C1870 REM 890 REM 900 RE }M Norm Draper910 REM 920 REM All Rights Reserved930 REM .C0achine language60 REM program used to test your70 REM ATARI' ?10 REM .C120 REM Λ30 REM .C040 REM 50 REM This program is one which60 REM will display a moving low70 REM resolut$}ion pattern on the80 REM screen.90 REM 100 REM It is Example 3 from page110 REM 70 of the ATARI ASSEMBLER/120 REM EDITOR$} reference manual.130 REM 140 REM .P150 REM .C1160 REM 170 REM .C0180 REM The BASIC program named190 REM PA$}TTERN.B01 will load the200 REM machine language subroutine210 REM to produce the pattern into220 REM memory.230 REM After$} it is loaded, a USR240 REM command is issued to transfer250 REM control to the routine.260 REM .P270 REM .C1280 REM $}290 REM .C0300 REM Enter the following to run310 REM the program-320 REM 330 REM RUN "D:PATTERN.B01"340 REM $}350 REM To stop it, press SYSTEM RESET REM 50 REM This program is one which60 REM will display a moving low70 REM resolut$'100 REM ΠҠàқ110 REM 120 REM 130 REM This assembler is (}written in BASIC140 REM and is disk oriented. Since it is150 REM written in BASIC, it is not very160 REM fast. It does, (}however, support170 REM symbols and labels.180 REM 190 REM There are three parts to this200 REM assembler:210 REM 1) ASM(}EDT - To initially enter220 REM your assembler source program.230 REM 2) ASM - This is the assembler240 REM itself.250(} REM 3) ASMLDR - To load the machine260 REM language program into memory.270 REM 280 REM .P285 REM .C1290 REM ԛ295(} REM .C0300 REM When you run this program, you will310 REM be prompted for the actual source320 REM statements. A disk fi(}le named330 REM ASMIN.TXT is created from the340 REM source statements. The format is350 REM the same as a BASIC program (}that360 REM is LISTed to disk. The statements370 REM are line numbered and are REM's380 REM followed by the assembler sou(}rce.390 REM When you are finished entering your400 REM program, enter END starting in the410 REM first column. This will (}close the420 REM disk file. If you want to make430 REM any corrections, additions, etc.,440 REM type in NEW, followed by (}ENTER450 REM D:ASMIN.TXT (with quote marks in460 REM the proper places). Use normal470 REM BASIC editing procedures to ma(}ke480 REM your changes. When you are sat-490 REM isfied with it, LIST it back out500 REM to the disk under the same name(}510 REM of ASMIN.TXT.520 REM .P530 REM 535 REM .C1540 REM ͛545 REM .C0550 REM 560 REM The assembler will read in the(}570 REM source file created by ASMEDT580 REM and create a disk file named590 REM ASM.OBJ. This file contains600 REM DATA(} statements in BASIC format610 REM with values for the object code620 REM generated by the assembler.630 REM .P635 REM .C(}1640 REM қ645 REM .C0650 REM 660 REM This program reads in the ASM.OBJ670 REM file created by the ASM program680 R(}EM and stores the object code in690 REM memory at the address you specify700 REM at the prompt. LOAD (do not RUN)710 REM (}this program. After it is loaded720 REM you must enter 'ENTER #D:ASM.OBJ#'.730 REM (The #'s are really quote marks).740 R(}EM Then type in RUN.Ҡàқ110 REM 120 REM 130 REM This assembler is (10 REM .C120 REM қ30 REM .C040 REM 50 REM This program is one which60 REM will display all of the70 REM possible 12,}8 ATARI colors80 REM on the screen at one time.90 REM 100 REM It is Example 4 from page110 REM 72 of the ATARI ASSEMBLER/,}120 REM EDITOR reference manual.130 REM 140 REM .P150 REM .C1160 REM 170 REM .C0180 REM The BASIC program n,}amed190 REM COLOR.B01 will load the200 REM machine language subroutine210 REM to produce the colors into220 REM memory.2,}30 REM After it is loaded, a USR240 REM command is issued to transfer250 REM control to the routine.260 REM .P270 REM .C1,}280 REM 290 REM .C0300 REM Enter the following to run310 REM the program-320 REM 330 REM RUN "D:COLOR.B01",}340 REM 350 REM To stop it, press SYSTEM RESET This program is one which60 REM will display all of the70 REM possible 12,110 REM .C120 REM Û30 REM .C040 REM This program, which you are50 REM using now, provides a convenient60 REM method for0} presenting documentation70 REM to the user from text stored80 REM on disk.90 REM .P100 REM .C1110 REM 120 R0}EM 130 REM .C0140 REM Program DOC, is a BASIC program150 REM which reads in any normal BASIC160 REM REM statements which 0}have been170 REM LISTed to the disk, and displays180 REM them on the television screen.190 REM 200 REM To use, insert the0} BASIC cartridge,210 REM and type in NEW, then enter220 REM the REM statements you wish to230 REM have displayed. You may0} initially240 REM enter them as periods and the250 REM BASIC cartridge will convert260 REM them to REM's during the LIST20}70 REM process.280 REM .p290 REM A good companion program to use300 REM for creating the text is the310 REM NUM program, 0}which will auto-320 REM matically generate line numbers330 REM for you. (See the separate340 REM documentation for that p0}rogram).350 REM .P360 REM .C1370 REM 380 REM .C0390 REM 400 REM Some commands are provided for410 RE0}M centering and skipping to the420 REM next "page" before displaying.430 REM 440 REM To turn on automatic centering,450 R0}EM just enter REM .C1 on a line460 REM by itself. After that, each470 REM line will be centered until480 REM centering mo0}de is turned off.490 REM To turn off centering mode,500 REM enter REM .C0 on a line by510 REM itself after the last line t0}o520 REM be centered.530 REM 540 REM To "page eject" your data, just550 REM enter REM .P on a line by itself.560 REM .P0}570 REM .C1580 REM 590 REM 600 REM Norm Draper610 REM .C050 REM using now, provides a convenient60 REM method for0D450 REM .C1460 REM ЮÛ470 REM .C0480 REM 490 REM This is the assembler source500 REM code for a parallel printe4}r510 REM driver which utilizes the520 REM ATARI's controller jacks 3 & 4.530 REM 540 REM You don't need an ATARI 850 Inte4}rface550 REM when using this software driver.560 REM 570 REM It was published in the FEB 1981580 REM issue of COMPUTE mag4}azine.590 REM 600 REM For more information, please610 REM refer to the magazine article.620 REM .P630 REM .C1640 REM 4}650 REM .C0660 REM 670 REM Keyed in by Wes Newell.EM This is the assembler source500 REM code for a parallel printe4;AFNROCENTELERLEO@'@@ AV@%@$ @ 8} A6 A` @ 򠠠 A;@d,;@ ,8}(6-AV2##@@K:<6-A6-F }P 8}򠠠Z dTRAP 170n&&@@D:*.*x@B:, @A &&7@8}<@,0DOCA  7@<@, A @/ / $Enter one of the program names above8}66 . or position cursor over one and press RETURN. 6.D:   +67@,.+67B:,%@,..DOC8}TRAP 490 @@ }"@Ap@ 6-B:,-@&@8}"67<%@,4REM(6-%@66-&@, 1 !67,. 6-67<,4.A@@"8} A`J##-@+@@&,'@T  ^ h 7<,rF:, @A`|-@@#8},, #Πà)@"AUAP"@'Ap A((78}%@<%@,4PA> 7%@<%@,4C>6-A:7%@<%@,, A`@'8} }-@@' Š:-@@#: Π嬠à)@$"@'8}@! }$"AU@` A6-F:A,%%6-AV$F:A,%F:A,A68}A A"A Ap%"A`6-@% A ERROR  AT LINE $ 8}D:DOCAFNROCENTELERLEO@'@@ AV@%@$ @ 8"6INSLINENUMBEoo 堵 <} 庠Ԯ° @6-@44@6@ D:ASMIN.TXT }<}!!   ;A , 9AA'AA9A AS,,@@<} D:ASMIN.TXT"B:, @@@#&&7@<@,4END@p( @ REM :2<}6-%@< @0F@P%D:ASM2 D:ASMEDT.B01 堵 <P'HXoo 堵@} 庠Ү° +d;@,)% ENTER LOAD ADDRESS IN DECIMAL)"4==@}AA ?%6-@:7@<@,,&@H1!@ ?6-&@?%6-@:7@<@,,&@H1!@ @}?6-&@+$@%!6-%@+ A@ '== D:ASMLDR.B01 堵@_a"232TLNULMOCZPTANIFSYMTABSYMLOCTEMPMEMMEM1MEM2PLUSSYMCNNRTPTTFPPPWOSYD}MHNQQQIIFVARLSTVARLST D} @D} !"#$%&'()*D}+,-./0123456789D}oo 堵 庠ͮ°36-@D}6-'6-36-AB9AA'AA9A AS;@r,;@r,;A D},;@r,;A ,;@r,;@r,;A ,;@r,;A ,;@,;A,9A,<<;@D},;A,;A ,;@@,;@8, A`6-6- }$ A.66**NUM TOD} STRING CONV. I=INPUT R=BASE A$=OUTPUT**B 6.L 6-V%"@6-@% A0`6-@j-D}6@t'#@Ap~ 6-&@6-P:'#,&@A6-6D}-&$# #@@-" 67B:,%@,.!A`$%%0,1,2,3,4,5,6,D}7,8,9,A,B,C,D,E,F,,@@ D:ASMIN.TXT--@@ D:ASMTMP.TXT } 006.&D}++++++++++++++++++++++++++++++++++++++(6-@2 6502 ASSEMBLER SOURCE7 <6-PS 6.6.6.D}6.&6.S6.& Z6-%@d$$**SEPARATE TOKENS STORE LABELSn A5 D}x@} B6-@@w!B:,A(7<,0:6-%@( A D}'6-%@6.7,!6.'6.  B 6-4A6-@6.; AQ0D}"AP"@6. A 6.7,6.7@<&@,$$7@<@,4 AD}0 AI0" 6.,0.A06 6..@ ApJ 6.T A ^ AI0h 6.rB:, D}@A|&&7@<@,4.WOAB0&&7@<@,4.TEAB0&&7@<@,4.BYABD}0&&7@<@,4.DBAB00AB:,A@6.7@<@, ApD} AI0 6.B:,A 6- A0 AR "@A 6- A``D}&67B:,%@,.0 68,-6-%@D67@<@%B:,,.N67@4,.X @Y@@6.D}6 b @l A`v$$7@<@,0.A! D} 6.= AQ0!Ap MISSING 4 IN LINE  AB6-%@ AI0##7D}@<@,0A ## MISSING ARGUMENT IN LINE  AB 6. AR @A p,, D}"ILLEGAL FORWARD REFERENCE IN LINE   AB 6-  6-*0A04 A`> #AWH4E}A"R-@@V\"f4A!p z!! UNKNOWN OPCODE IN LINE  AB 6-4E}A"@ A``67B:,%@,. 68,-6-%@ AI 6.**67&B:,&@<&B:,&@E},.! **FIND AD. MODE LOAD AD.**0A#6-@ A2p 0AA#@ 6-@ E} A2p$ $$7@<@,0#A#. 6-@8 6-%@B 6.7@,L A)@V $$7@<E}@,0BA%0` 4BITA%0j 6-@t 6.~ AR  @A$p 6-6A A0E}@ 6-&&@ A% 6-AV% O:&,A'A0@ && BRANCH OUT OF RANGE IN LINE}E  AB 6.( 6-&B:, AQ0 6- 6., AQ0 6-( 6-2 (A&E}< ((7%@<%@,0XA&PF 6-@P A&Z ((7%@<%@,4YA&d && BAD ADE}DRESSING MODE IN LINE n ABx A(P AI0 6. ()(A'@ 6-@ A'E } (A'p 6-@ A' 6-@  6. AR  6- @A(  6-6AE } O:,AUA0@ 6-%@ A0@" AI0, 6.7@,6 ()(A)@ 6-@E }J A)@T (A)0^ 6-@h A)@r 6-@| AR  6- --+@*@,)E }AUA) 00 &VALUE TOO LARGE FOR ZERO PAGE IN LINE  AB @A0@ 6-6A "@E }A0@ 6-6A **PR. OPCODE & AD.** A1@ 67@<@,.** 6-%@E} @A0 67@<@,.R 6-%AV A2p& 67@<@,.**0 6E}-%@: A2pD 6-@N 6-X Apb 6.l 6.000v 67@,. 99+@*@E},)+@*@,A2P 5567@<@,.7B:,&@ 6-H AE}0@R **  ILLEGAL ADDRESSING MODE IN LINE \ ABf 67@<@,.p 67@<@,.:z 6-%E}@ 67@<@%B:,,. 67@8,.  @  @ @@6.6 E}  A` ** BEGIN SECOND PASS *** @@ 6- 6-E} **@@ D:ASM.OBJ --@@ D:ASMTMP.TXT + +  ***** 6502 ASSEMBLY LIST ***E}****   && LOC. OBJECT LABEL SOURCE -- %------------------------------------- A@`6-@E}@@@w$ B.6-%@8B:, @A9@B 6.!L AQE}0V!!")"@A7` 6-j67<,. tB:, @A9@y$$7@<@,0*A9@E}~ AI0 6.$$7@<@,0(A7P6.7@, AR @A711 'IRRESOE}LVABLE FW REF/ BAD LABEL IN LINE  AB 6-$$7@<@,0RA8@6-&&@E}A8@6-%AV6-@  Ap 6. 6.000(67@,.2%%7@<@,0**E}A90<5567@<@,.7B:,&@w AB |**MEMORE%}Y LOADS **6-@%%7@<@,0TEAC@AC AI6-&B:,6.767B:,%@,.H6-%@R 6-\6-@f App 6.000z67@,.((67E.}@<@,.7B:,&@,67@<@,.:@AH@B:,"AH A``E/}67B:,%@,. 68,-6-%@67@<@%B:,,.0B:, @8&67B:,%@,.0 AH0E0}67@8,. AHP6- @@@6.6 E1}  @ 6- ABP$** ISOLATE TOKENS **.""**P=LOC. P$=OUT END AT " "**86-@BE2}**ENDS AT .L!B:,AIV-B:,`7<,0 AIj t 6.~B:,AP-B:,E3}7<,4 AP"@AP`7<,4,AP7<,4)AP7<,4=AP6E4}7B:,%@,.7<,  6-B:,AQ6-%@6-$ ** FIND SYMBOLS *E5}** **P1=LOC P1=0 IF NOT FOUND-B:,(''7<,47@<@,AR2 <6-F$P 6-E6}Z$d$$**SIMPLIFIES NUMERIC STRINGS**x6-6-(B:,"6.%6-($ 6.E7}-@B:,7<,4+AS@7<,4-AS@7<,4)AWP67B:,%@,.7<, E8}0.ASp 6- AV0$$7@<@,3ZAU$$7@<@,2AAU-E9}&@..6.7$@%@<$@%@, 6-B:,!@6-@"6.7@<,,E:}4ATP6 @ ATJ 6-8,T6-@^ AV0h6-@r$|$$7@<@,0'AU@E;}6.7@, 6-@:, AV06-@$$7@<@,0%AU6-@ AVE<}$$7@<@,0$AV6-@6.7@, AX 6-"@AV` 6-%E=} AVp 6-&&B:,AWP0 6.+-:-@B:,D7<,47<,AW@N X## ILLEGALE>} OPERATOR IN LINE b ABl 6.q AS0v6-$!!**STRING TO NUMBER CONV ***:B=BASE AE?}$=INPUT F=OUTPUT6-6--B:,@6@ #@@-&@"E@}47<,AY    BAD NUMBER IN LINE  AB 6-%$#*&&6-+P:$@%?P,'@,46EA}-%@> H$f))ADC,AND,ASL,BCC,BCS,BEQ,BIT,BMI,BNEp11BPL,BRK,BVC,BVS,CLC,CLD,CLI,CLV,CMP,CPX,CPYz11DEC,DEB}EX,DEY,EOR,INC,INX,INY,JMP,JSR,LDA,LDX11LDY,LSR,NOP,ORA,PHA,PHP,PLA,PLP,ROL,ROR,RTI11RTS,SBC,SEC,SED,SEI,STA,STX,STY,EC}TAX,TAY,TSXTXA,TXS,TYA6. 67@$~ +~55-F:A(,%AV$F:A),%AVB~ 6-FEI}:,~"&~7!@6-&A(% >:,3 >:AU,7 ~ >:,  D:ASM.B01FPPPWOSYDmbcAWHXSXUNMNBYCOTMAVB1B2B3ADS3S2SUNN2SDUAIOZEDT9ASSCBBFIK}@ IL} IM}!"#$%&'()*+,-.ooIN} 堵 庠ͮ° ss;@,;@IO},;@,;A,9AV,;@,;@,;@,;@,;@, ]];@,;@,;@IP},;@,;@,;@,;@,;@, ;@,;@,-AU2 ""67$@IQ}%@,.+68,-26.( 2 6.<-@@F"67,.6.P Z +d)) !1.IR} Input source code and Assemblen## 2. Save Object Code on Tapex%% 3. Load Object Code from Tape++ #4. Execute MacIS}hine Language Program((  5. Call Machine Language Program  as USR Routine((  6. List MACHINE Language ProgramIT}+!+,)+!@,+ Ap77B@BABBA) @6-P:'@IU},6-&+$@,6.7%@,6.7%@,!67@,.!67@,.$T +^ & IV} Start address&6- "@# APP 6-%@ 6-F:, 6.7$@%@, 0NIW}ULL  A0P  6- A B0    * 6-%@ A0 ""8,A0`A0AIX}@P  6- A B0     6-%@ A0  6- A 6.6IY}-F:%@, A 6. B06-&&     6-%@ A0 IZ}6- A 6.6-F:%@, A 6.6-F:%@, A 6.++6-F:%@,%+F:I[}%@,$AV, B0((      6-%@ A0 0 $I\}# +6-# A0pEEBRK ,1,ORAIX,2,NULL ,0,NULL ,0,ORAZ ,2,ASL ,2,NULL ,0,PHP ,1u NULL ,0zMMORAIMI]},2,ASLA ,1,NULL ,0,NULL ,0,ORA ,3,ASL ,3,NULL ,0,BPL ,2,ORAIY,2EENULL ,0,NULL ,0,NULL ,0,ORAZX,2,ASLZX,2,NULL ,0,CLC I^},1,ORAY ,3MMNULL ,0,NULL ,0,NULL ,0,ORAX ,3,ASLX ,3,NULL ,0,JSR ,3,ANDIX,2,NULL ,0MMNULL ,0,BITZ ,2,ANDZ ,2,ROLZ ,2,I_}NULL ,0,PLP ,1,ANDIM,2,ROLA ,1,NULL ,0MMBIT ,3,AND ,3,ROL ,3,NULL ,0,BMI ,2,ANDIY,2,NULL ,0,NULL ,0,NULL ,0MMANDI`}ZX,2,ROLZX,2,NULL ,0,SEC ,1,ANDY ,3,NULL ,0,NULL ,0,NULL ,0,ANDX ,3MMROLX ,3,NULL ,0,RTI ,1,EORIX,2,NULL ,0,NULL ,0,NULIa}L ,0,EORZ ,2,LSRZ ,2MMNULL ,0,PHA ,1,EORIM,2,LSRA ,1,NULL ,0,JMP ,3,EOR ,3,LSR ,3,NULL ,0EEBVC ,2,EORIY,2,NULL ,Ib}0,NULL ,0,NULL ,0,EORZX,2,LSRZX,2,NULL ,0MMCLI ,1,EORY ,3,NULL ,0,NULL ,0,NULL ,0,EORX ,3,LSRX ,3,NULL ,0,RTS ,1MMAIc}DCIX,2,NULL ,0,NULL ,0,NULL ,0,ADCZ ,2,RORZ ,2,NULL ,0,PLA ,1,ADCIM,2MMRORA ,1,NULL ,0,JMPI ,3,ADC ,3,ROR ,3,NULL ,0,BId}VS ,2,ADCIY,2,NULL ,0MMNULL ,0,NULL ,0,ADCZX,2,RORZX,2,NULL ,0,SEI ,1,ADCY ,3,NULL ,0,NULL ,0MMNULL ,0,ADCX ,3,RORXIe} ,3,NULL ,0,NULL ,0,STAIX,2,NULL ,0,NULL ,0,STYZ ,2MMSTAZ ,2,STXZ ,2,NULL ,0,DEY ,1,NULL ,0,TXA ,1,NULL ,0,STY ,3,STA If} ,3MMSTX ,3,NULL ,0,BCC ,2,STAIY,2,NULL ,0,NULL ,0,STYZX,2,STAZX,2,STXZY,2MMNULL ,0,TYA ,1,STAY ,3,TXS ,1,NULL ,0Ig},NULL ,0,STAX ,3,NULL ,0,NULL ,0$EELDYIM,2,LDAIX,2,LDXIM,2,NULL ,0,LDYZ ,2,LDAZ ,2,LDXZ ,2,NULL ,0.MMTAY ,1,LDAIM,2,TAIq}?bASMIN TXTbAPPLE EATbMESSAGE b#5BIOCHART bXCOLORSTKB01b`NEWCLOCKB01b qNUM DOCb {MICROASMDOCbMEMTEST DOCbPATTERN DOCbASM DOCbCOLOR DOCbDOC DOCbPRINTNOPDOCbDOC bASMEDT B01bASMLDR B01beASM B01b7JMICROASMB01bLOADOBJ B01bASM OBJbNUM OBJbPATTERN B01bCOLOR B01b ASM TABbPRINTNOPASMbCOLOR ASMbMEMTEST ASMbCOLOR OBJbPATTERN OBJbMEMTEST OBJb'DOS SYSb*DUP SYSbADISK CATX ,1,NULL ,0,LDY ,3,LDA ,3,LDX ,3,NULL ,0,BCS ,28EELDAIY,2,NULL ,0,NULL ,0,LDYZX,2,LDAZX,2,LDXZY,2,NULL ,0,CLV ,1BIr}MMLDAY ,3,TSX ,1,NULL ,0,LDYX ,3,LDAX ,3,LDXY ,3,NULL ,0,CPYIM,2,CMPIX,2LMMNULL ,0,NULL ,0,CPYZ ,2,CMPZ ,2,DECZ ,2,NULL Is},0,INY ,1,CMPIM,2,DEX ,1VMMNULL ,0,CPY ,3,CMP ,3,DEC ,3,NULL ,0,BNE ,2,CMPIY,2,NULL ,0,NULL ,0`MMNULL ,0,CMPZX,2,It}DECZX,2,NULL ,0,CLD ,1,CMPY ,3,NULL ,0,NULL ,0,NULL ,0jMMCMPX ,3,DECX ,3,NULL ,0,CPXIM,2,SBCIX,2,NULL ,0,NULL ,0,CPXZ ,2,Iu}SBCZ ,2tMMINCZ ,2,NULL ,0,INX ,1,SBCIM,2,NOP ,1,NULL ,0,CPX ,3,SBC ,3,INC ,3~UUNULL ,0,BEQ ,2,SBCIY,2,NULL ,0,NULIv}L ,0,NULL ,0,SBCZX,2,INCZX,2,NULL ,0,SED ,1==SBCY ,3,NULL ,0,NULL ,0,NULL ,0,SBCX ,3,INCX ,3,NULL ,0%%0,1,2,3,4,5,6,Iw}7,8,9,A,B,C,D,E,F(# +2# Enter Program Name7# 6.C:67@,.<# @@F#Ix}@P#@Z# -d#@n# x# #@#$' +'%! Enter Address Iy}in Base 10%'!BU5 B$' 6-?:,.'$* ++%! Enter Value to be passed% +%! Enter AddIz}ress in Base 10%*+6-?:<,4+$2 6-6-P:'A@,26-&$A@26-P:'AV,26-&$AVI{}26-P:'@,3))6-&+$A@%$AV%$@,36.7%@,36.7%@,"36.7%@,,3I|}6.7%@,63?67@,.!67@,.067@,.?67@,.@3$6% +6-A&%6-A&6"I}}" (MNEMONIC)(SPACE)(OPERAND)6 BP66-6-AU66.7$@%@,6 0 B@I~}`6* 6-8,6-@6-*6-AV6 6" BB`7BABA0BA 7 B@ 7 I} 76-%@(7$270!AU) - ERROR - OPERAND0$<7 F7%@P76-%@Z7$I}d7/!BU5) , ERROR -OPERAND/$n7 x76-P:'AV,76-&+$AV,7%@7%@I}76-%@7$73)+4ORG ,)+4END ,)+4DC ,3 BB7 ERROR - PSUEDO-OP&74ORG I} BC7 BC@72"@( ERROR - MULTIPLE ORG2 B@ 76-@7 6-6-7 B@ 84EI}ND  BC`8 BD86-&@"8$8 86-%@8 B@ :6. 6.:/B:,I} @% ERROR - LENGTH/ BP: 6- -@B:,:# 6.7,4 6-#6-B:,: :"I} BQ:/-@&@"6.7,+67,./ :"@ BP: -@67,.  : 6.I}6.7,6-A:,:$:6-B:,%@;/-@&@"6.7,+67,./ ;"@ BP;*-I}@67,.  * BP N +*N Enter Program Name/N 6.C:67@,.4N @@I}>N @HN @RN -\N 6-F:,fN @pN zN@N$D:MICROAI}SM.B01AWHXSXUNMNBYCOTMAVB1B2B3ADS3S2SUNN2SDUAIOZEDT9ASSCBBFHG+@FSADSTARADENADCUoo M} 堵 庠ʮ° ;@ ,$$ ENTER FILESPEC FOR OBJ FILE M}d A`n @@x)@)@)@)@6-AVM}$%)@)@6-AV$%  LOADING FROM  TO  6-)@ M}6-%@  A A@@ D:LOADOBJ.B01 LZ4200D. 684210D. A2,004220D. AC,C4,024230D. BD,C5,024240D. 9D,C4,024250D. E84260D. E0,034270D. 90,F54280D. 8C,C7,0242Q}90D. 6084210D. A2,004220D. AC,C4,024230D. BD,C5,024240D. 9D,C4,024250D. E84260D. E0,034270D. 90,F54280D. 8C,C7,0242Ph!"!"`3&3 L>!"8`  x xLTmb'FSADSTARADENADCUooY} 堵 庠ή°d A`n..@Y}@ D:PATTERN.OBJx)@)@)@)@6-AV$%)@Y})@6-AV$% 6-)@ 6-%@  A A@Y}@, +@6-?:A6, D:PATTERN.B01ooXAbk~FSADSTARADENADCUoo]} 堵 庠Ү°d A`n,,@]}@ D:COLOR.OBJx)@)@)@)@6-AV$%)@]})@6-AV$% 6-)@ 6-%@  A A@]}@, +@[-@;-@ $@ $%@G,@S/@9W [ 6-?:]}A6, D:COLOR.B01DENADCUoo\ 696575 6D7D796171 292535 2D3D392131 0A 0616 0E1E 90 a} B0 F0 24 2C 30 D0 a} 10 00 50 70 18 a} D8 58 B8 C9C5D5 CDDDD9C1D1 E0E4 ECa} C0C4 CC C6D6 CEDE CA 88 a}494555 4D5D594151 E6F6 EEFE E8 C8 4C a} 6C 20 A9A5B5 ADBDB9A1B1 A2A6 B6AE A0A4B4 ACBC 4A 4656 a} 4E5E EA 090515 0D1D190111 48 08 6a}8 28 2A 2636 2E3E 6A 6676 6E7E 40 a} 60 E9E5F5 EDFDF9E1F1 38 F8 78 a} 8595 8D9D998191 86 968E 8494 8C AA a} A8 BA 8A 9A `n0100 *=$067A0110 REENT JSR HANFX0120 .BYTE $4C0130 LO *=*+10140 HI *=*+10150 HANTAB .BYTE $8F,$06,$A8,$06,$DE,$060160e} .BYTE $A8,$06,$DE,$06,$DE,$060170 .BYTE $4C,$78,$EE0180 CTR *=*+10190 OPEN LDA #$300200 STA $D3030210 LDA #$FF0220e} STA $D3010230 LDA #$340240 STA $D3030250 LDA #$800260 STA $D3010270 ALCLO LDY #$010280 RTS0290 CLOSE LDA #$0D0e}300 WRITE CMP #$9B0310 BNE PRT0320 LDA #$0D0330 PRT LDX #$040340 BSY LDY $D0130350 BNE PRT0360 DEX0370 BNE BSY03e}80 LDY #$800390 ORA #$800400 STA $D3010410 AND #$7F0420 STA $D3010430 STY $D3010440 CMP #$0D0450 BNE TEST0460e} DELAY LDX #$800470 DEL DEX0480 BNE DEL0490 LDA #$4F0500 STA CTR0510 LDA #$000520 BNE PRT0530 TEST DEC CTR0540 e}BEQ CLOSE0550 BACK BNE ALCLO0560 BINIT PLA0570 INIT LDA $0C0580 STA LO0590 LDA $0D0600 STA HI0610 LDA #$7A0620 Se}TA $0C0630 LDA #$060640 STA $0D0650 HANFX LDA #$800660 STA $031B0670 LDA #$060680 STA $031C0690 RTS$DE,$060160dq10 ;20 ;COLOR PALETTE30 ;PUTS ALL 128 COLORS ON SCREEN40 ;CALL FROM BASIC WITH FOLLOWING COMMANDS:50 ;GR.560 ;F.I=0TO3:Ci}.I:F.J=20*I TO20*I+19:PLOT J,3:70 ;A=USR(1536)80 ;BASIC IS STILL USABLE90 ;EXIT WITH SYSTEM RESET KEY0100 ;0110 ;0120 i}*=$06000130 POINTA=$CC POINTER TO DISPLAY LIST0140 COLCNT=$CE KEEPS TRACK OF COLOR WE ARE ON0150 DECK=$CF BIT O KEEPS TRACi}K OF WHICH DECK0160 DSLSTL=$0230 O.S.DISPLAY LIST ADDRESS0170 NMIEN=$D40E NON-MASKABLE INTERRUPT ENABLE0180 NMIRES=$D40F Ni}ON-MASKABLE INTERRUPT RESET0190 NMIST=$D40F NON-MASKABLE INTERRUPT STATUS0200 VDSLST=$0200 DISPLAY LIST INTERRUPT VECTOR02i}10 COLBAK=$D01A BACKGROUND COLOR REGISTER0220 COLPF0=$D016 COLOR REGISTER#00230 COLPF1=$D017 COLOR REGISTER #10240 COLPF2=i}$D018 COLOR REGISTER #20250 WSYNC=$D40A WAIT FOR HORIZONTAL SYNC0260 SETUP PLA CLEAN STACK0270 ;0280 ; SET UP POINTER ONi} PAGE ZERO0290 ;0300 LDA DSLSTL0310 STA POINTA0320 LDA DSLSTL+10330 STA POINTA+10340 ;0350 LDY #$07 POINT TO 3RD i}MODE BITE0360 LDA #$8A NEW MODE BITE0370 ;0380 ;STORE 16 DISPLAY LIST INTERRUPT0390 ;0400 LOOP1 STA (POINTA),Y0410 INi}Y0420 CPY #$170430 BNE LOOP10440 ;0450 ;SKIP FOUR BLANK LINES0460 ;0470 INY0480 INY0490 INY0500 INY0510 ;052i}0 ;STORE 16 MORE DISPLAY LIST INTERRUPT MODE BYTES0530 ;0540 LOOP2 STA (POINTA),Y0550 INY0560 CPY #$2B0570 BNE LOOP2i}0580 ;0590 ;SET UP DISPLAY LIST INTERRUPT VECTOR0600 ;0610 LDA #$500620 STA VDSLST0630 LDA #$060640 STA VDSLST+106i}50 ;0660 LDA #$000670 STA COLCNT INITIALIZE COLOR COUNTER0680 STA DECK INITIALIZE DECK COUNTER0690 STA NMIRES RESET Ii}NTRPT.STATUS REGISTER0700 WAIT LDA NMIST GET INTERRUPT STATUS REGISTER0710 AND #$40 HAS VERTICAL BLANK OCCURED?0720 BEQ i}WAIT NO, KEEP CHECKING0730 LDA NMIEN YES,ENABLE DISPLAY LIST0740 ORA #$800750 STA NMIEN THIS ENABLES DLI0760 RTS ALL i}DONE0770 ;0780 ;DISPLAY LIST INTERRUPT SERVICE ROUTINE0790 ;0800 *=$06500810 DLISRV PHA SAVE ACCUMULATOR0820 LDA COLCi}NT GET CURRENT COLOR0830 CLC0840 ADC #$10 NEXT COLOR0850 STA COLCNT SAVE IT0860 BNE OVER END OF DECK?0870 ;0880 ;ENi}D OF DECK,BLACKEN SCREEN0890 ;0900 STA WSYNC WAIT FOR NEXT SCAN LINE0910 STA COLBAK BLACKEN ALL REGISTERS0920 STA COLPi}F00930 STA COLPF10940 STA COLPF20950 INC DECK NEXT DECK0960 PLA RESTORE ACCUMULATOR0970 RTI DONE0980 ;0990 ;PUT Oi}UT NEXT COLOR,WITH FOUR LUMINOSITIES1000 ;1010 OVER LDA DECK UPPER OR LOWER DECK?1020 AND #$01 MASK OFF RELEVANT BIT1030i} ASL A SHIFT INTO HIGH LUMINOSITY1040 ASL A1050 ASL A1060 ORA COLCNT MERGE WITH COLOR NYBBLE1070 STA WSYNC WAIT FOR i}NEXT SCAN LINE1080 STA COLBAK STORE COLOR1090 ADC #$02 NEXT HIGHER LUMINOSITY1100 STA COLPF0 STORE COLOR1110 ADC #$02i} NEXT HIGHER LUMINOSITY1120 STA COLPF1 STORE COLOR1130 ADC #$02 NEXT HIGHER LUMINOSITY1140 STA COLPF2 STORE COLOR1150 i} PLA RESTORE ACCUMULATOR1160 RTI DONECOLORS ON SCREEN40 ;CALL FROM BASIC WITH FOLLOWING COMMANDS:50 ;GR.560 ;F.I=0TO3:Ch(10 .OPT NOEJECT20 ; RAM MEMORY TEST PROGRAM30 ; FOR THE ATARI 400/800 COMPUTER40 ; ALL RIGHTS RESERVED50 ; BY NORM DRAPEm}R60 ; OF THE ATARI COMPUTER USERS GROUP OF DALLAS70 ;80 BELL = $FD90 EOL = $9B0100 ATTRACT = $4D0110 HIMEM = $2E50120 m}COUT = $F6A40130 *= $D40140 ADDRS .DBYTE 00150 START .DBYTE 00160 END .DBYTE 00170 *=$2E00180 .WORD BEGIN0190 *=$1m}D000200 BEGIN0210 LDA #ENDPGM/2560220 CLC0230 ADC #10240 STA START+10250 STA END+10260 LDA #00270 STA START02m}80 LDA #$FF0290 STA END0300 MEMTEST0310 JSR INIADDRS0320 JSR PRINT0330 .BYTE "TESTING",00340 JSR PRTADDR0350 JSm}R TESTPGM0360 INC END+10370 INC START+10380 LDA HIMEM+10390 CMP END+10400 BEQ LASTPART0410 BCC ALLDONE0420 JMP m}MEMTEST0430 ALLDONE0440 JSR PRINT0450 .BYTE BELL,"ALL DONE",EOL,00460 LDA ERRCTR+10470 JSR TBYT0480 PHA0490 TXAm}0500 JSR COUT0510 PLA0520 JSR COUT0530 LDA ERRCTR0540 JSR TBYT0550 PHA0560 TXA0570 JSR COUT0580 PLA0590 JSm}R COUT0600 JSR PRINT0610 .BYTE " ERRORS FOUND",EOL,00620 FOREVER0630 JMP FOREVER0640 LASTPART0650 LDA HIMEM0660 Sm}TA END0670 JMP MEMTEST0680 ;0690 TESTPGM0700 LDY #$00 ; PATTERN REGISTER0710 LDX #$000720 STX TESTPATRN0730 JMP Nm}XPASS0740 ;0750 NXPATRN0760 INC TESTPATRN0770 BNE NXPASS0780 RTS0790 NXPASS0800 LDY TESTPATRN0810 JSR INIADDRS0m}820 LOOP1 TYA0830 STA (ADDRS,X) ; STORE PATTERN0840 CMP (ADDRS,X) ; CHECK0850 BEQ NOERR10860 JSR ERROR ;ADDRS, R(A),(m}ADDRS,X)0870 NOERR1 JSR INCADDRSC0880 BEQ CKPATRN0890 INY0900 JMP LOOP10910 ;0920 CKPATRN LDY TESTPATRN0930 JSR INm}IADDRS ; INITIALIZE ADDRS0940 LOOP2 TYA0950 CMP (ADDRS,X)0960 BEQ NOERR20970 JSR ERROR ; ADDRS,R(A),(ADDRS,X)0980 NOEm}RR2 INY0990 JSR INCADDRSC1000 BNE LOOP21010 BEQ NXPATRN1020 ;1030 ;1040 INCADDRSC INC ADDRS1050 BNE SKIPHI1060 Im}NC ADDRS+11070 SKIPHI LDA END1080 CMP ADDRS1090 BNE EXIT21100 LDA END+11110 CMP ADDRS+11120 EXIT2 RTS1130 ; OUTPUTm} THE ERROR; ADDRESS, PATTERN, ERROR1140 ERROR1150 JSR TBYT1160 STX EPATRN1170 STA EPATRN+11180 LDA ADDRS+11190 JSRm} TBYT1200 STX EADDR1210 STA EADDR+11220 LDA ADDRS1230 JSR TBYT1240 STX EADDR+21250 STA EADDR+31260 JSR PRINT12m}70 .BYTE BELL,BELL,"ERROR AT "1280 EADDR .BYTE " "1290 .BYTE " PATTERN="1300 EPATRN .BYTE " ",EOL,01310 SED1320 m}CLC1330 LDA ERRCTR1340 ADC #11350 STA ERRCTR1360 LDA ERRCTR+11370 ADC #01380 STA ERRCTR+11390 CLD1400 RTS141m}0 ;1420 ;1430 ; INITIALIZE ADDRS WITH START1440 INIADDRS LDA START1450 STA ADDRS1460 LDA START+11470 STA ADDRS+1148m}0 RTS1490 ;1500 ;1510 ; ROUTINE TO OUTPUT A BYTE1520 TBYT PHA1530 LSR A1540 LSR A1550 LSR A1560 LSR A1570 JSR m}NIBBLE1580 TAX1590 PLA1600 NIBBLE AND #$0F1610 ORA #$301620 CMP #$3A1630 BCC TBYTXT1640 ADC #$061650 TBYTXT166m}0 RTS1670 TESTPATRN .BYTE 01680 TESTTYPE .BYTE 01690 PRINT1700 PLA1710 STA LDA1+11720 PLA1730 STA LDA1+21740 PRIm}NT101750 INC LDA1+11760 BNE LDA11770 INC LDA1+21780 LDA1 LDA LDA11790 BEQ PRINT991800 JSR COUT1810 JMP PRINT101m}820 PRINT991830 LDA LDA1+21840 PHA1850 LDA LDA1+11860 PHA1870 RTS1880 PRTADDR1890 LDA START+11900 JSR TBYT191m}0 STX ADDR1+11920 STA ADDR1+21930 LDA START1940 JSR TBYT1950 STX ADDR1+31960 STA ADDR1+41970 LDA END+11980 JSRm} TBYT1990 STX ADDR2+12000 STA ADDR2+22010 LDA END2020 JSR TBYT2030 STX ADDR2+32040 STA ADDR2+42050 JSR PRINT20m}60 ADDR1 .BYTE " "2070 ADDR2 .BYTE "- ",EOL,02080 LDA #02090 STA ATTRACT2100 RTS2110 ERRCTR .DBYTE 02120 ENDPm}GM2130 .ENDCT20 ; RAM MEMORY TEST PROGRAM30 ; FOR THE ATARI 400/800 COMPUTER40 ; ALL RIGHTS RESERVED50 ; BY NORM DRAPElCh0̭1͠ȑ+P΅ύԭ)@ `PHi ԍЍЍЍh@) ΍ ԍiq}iih@͠ȑ+P΅ύԭ)@ `PHi ԍЍЍЍh@) ΍ ԍipxhЪ ) 8Iiϭ )8 Iiee)JJJѭ )ш eeͨёXЦХ)ОJJJJJ) ҝLu}xhЪ ) 8Iiϭ )8 Iiee)JJJѭ )ш eeͨёXЦХ)ОJJJJJ) ҝLt2233iׅ٩֩ 3 @3TESTING d3 ~2׭FL2 @3ALL DONE3 )3H h 3 )3H h @3 ERy}RORS FOUNDLs2L2>3L2>3`>3 3 2 2L2>3 3 2 2ե` )33 3 )322y} )322 @3ERROR AT PATTERN= 3i33i3`օԥׅ`HJJJJ 33h) 0:i`hQ3hR3Q3R3P3 LH3R3HQy}3H` )333 )333 )333 )333 @3 - M`FL2 @3ALL DONE3 )3H h 3 )3H h @3 ERxE D  C D     )16CS S)  C)D1 p p }}0 C9DI pCDL~CiCDiD` DD˙` d J)L !}}D L(( LL()  L| L( S LH 0p n  }} CY?  q  L L  ` )}} `A! d߰")-݆ "  $G@LLL&0") $G%}}H0 3S8`G ȱG ȱG   Gȭ Gȭ GG}GHiH8(()) G$H% `(0}})8` d)L ݆ & LGȘ ݆LL d  ! LL d)N>Q  HH)}}  hyhyB q L> Lm JJ  Ln*` dB%'}}8  H H` 1 { LL   !L     Hh SY?  q  1L}}  !? S   q 1 L   Ll  Lg E`L   !L)  q 1L}}) `L0AM݊L݉ ML  N݆LLLNLMLHG!@}}1F GȱGLLEEȩÑEȑEEȑE Ed E7EȩE  q}} L !,0,0SGɛ L 1 !L EHEh W G gLLSROTCES EERF }} G) *Gȩ GȽG GȌd q q G`  8   0G  `D}}CEDC0X:Ȣ Y ȱC* ? 0.. , 0%n ?A[ 0 : L`L  `, 0`Y}}`piH n0)բY? 08`0 ~}  0$L GGȽG L `8L`L~}8`  05G)݁,G)ȱGȱGHh0})Hh` B! 8`8iiiLE`~}E8FEh( l0`ɃLL L8^~jj8jHi hEEEiEȱEiE` dTE~} H8EEȱEEȩEh J E8   . m  i`LI!)E1FR~}1LJ舩9GIH`LJJ`HGHh l`~} S gL   8 rii `дCDCG W  ~}C  Lq` X٨`DOS SYS IIIIIIIIIIIIIIIC`0 ߩ0}}pp~} HE |||DDOS DOSDOS SYS }~}|}~ }B ASM TABBPRINTNOPASMBCOLOR ASMBMEMTEST ASMBCOLOR OBJBPATTERN OBJBMEMTEST OBJCDOS ~ } SYS 0`BDELV !B ~ }`LVUQ   ]   TU J ]L!T  #      TU ~ } L ? .  t`GBJ V~DEHI B V0dV~ }QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh~}DEL8HI   0 HI,0 0  9 .G VLO~},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D1:MEM.SAV J y08 B|DEHI~} V0 0`B;DELV䌚 !B y`@ʆ v s? F0Ξ05: [ BDEHI~} VY8 B V  @  /DE `E:D1:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO ~}STILL RUN DOS B;DE J V (` 9 V⪍ ઍ  -~}LLu DEHILV 9 .l 9 .l  `` s$B VBH~}I|DE V BLV nB,DE J V* \*` B V BLVDEHI BLVL~}1u H232435; 1 ;  hh@2 e1i1LHҍ 00) 08 109hh@ Ҡ2e~}1i1232435ޥ<<8|} 3E:}DISK OPERATING SYSTEM II VERSION 2.0SCOPYRIGHT 1980 ATARIA. DISK DIRECTORY I. FORMAT DISKB. RUN CARTRIDGE J. D}UPLICATE DISKC. COPY FILE K. BINARY SAVED. DELETE FILE(S) L. BINARY LOADE. RENAME FILE M. RUN AT ADDRESSF. LOCK F}ILE N. CREATE MEM.SAVG. UNLOCK FILE O. DUPLICATE FILEH. WRITE DOS FILES9!&x#!7&p))'&X*./)L''-؆莟}R'S  vW DEHHI 1A#! @ ~0ɛ8A0.) ȅ 1 1i}il ! 1L NO SUCH ITEMSELECT ITEM OR FOR MENU! 0 .{z:*{}.|~ 1 0 0}JB 18L^%|DLl%DIRECTORY--SEARCH SPEC,LIST FILE? # 0 0 n&|D! 1L NOT A DISK FILE}N !B 1L " 1 !BDED:}:1BJ|DE 1DEBH}I 1 h0ߢ 0.  0?詛 1 ~0YЛ 1 "L<" "L } BL1TYPE "Y" TO DELETE...DELETE FILE SPECCOPY--FROM, TO?OPTION NOT ALLOWED494 FREE SECTORS COPYING---D2:LOAD }MP.OBJ# 0|D .L$A#B#C#JB|DE 1BHIDD#E 1D#0: B!} 1L B#C#C#B# B 1N#$0SYS1}:e#D# d# D# .d#ȽD# d# 𩛙d#X# 1,A#"}PdD#ELO- A.BJdD#E 1 1HH 0hh|DL^%1}:e# Lt% e#dD#EL%#} 1 0 . .0% 1L WILD CARDS NOT ALLOWED IN DESTINATION 0 A.|K@C} L ERROR- 169ɛ+,' 20*.. өw2 1``2TOO MANY DIGITSINVALID?} HEXADECIMAL PARAMETER800 0 8 00`,0'D800H,ɛh`2L1NEED D1 THRU D4u@} HEXADECIMAL PARAMETER800 0 8 00`,0'D800H,ɛh`2L1NEED D1 THRU D4uD:DISK.CATPD002^^ˠ ,ǠĠ ,Р ,ụ̊ ,Š ,Š ,Ӡ ,ALL RECORDS D:CATALO