@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@P!( 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`  `1  ɐ     `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.D1:MEM.SAV J y08 B|DEHI$} V0 0`B;DEL`?<0LV`@ʆ 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  (` 9 V⪍ ઍ  -'}LLu ÝDEHILV 9 .l 9 .l  `` s$B BH(}I|DE V BLV nB,DE JLV B V BLVDEIʩ BꭝLu o} 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 ALLOWED BLINK ASM 012 COPYING---D2:BLINK.ASMMl# 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 D8uHDXYRDELAA AB A @ !!*** SNOWFLAKE GENERATOR ***T}BY TOM HUDSON(2""SET UP GRAPHICS MODE, COLORS<F9+@%@/0@9@PU}Z$$SET UP DEGREES, X AND Y TABLESdn))9@,9@,9@,xRANDOMIZE SHAPErV}-@@&68,-@68,-H:,$@\68,-H:,$$@` r@wECHO AW}ND ROTATE SHAPEt,A`@)-@@t/A`%+8,$E:8,,%8,$G:8,,,@%+68,$G:8,,%X}8,$E:8,,,868,-8,%@` 88@, A`A*-@@&68,-* t,A`Y}@)-@@t/A`%+8,$E:8,,&8,$G:8,,,@%+68,$G:8,,&8,$E:8,,,868,-8,%@`Z} 88@, A`A  LEAVE IT ON SCREEN A WHILE-@AP % D:SNOW.BAS}0100 ; CHARCTER SEARCH ROUTINE0105 ;0110 ; Syntax: X=USR(ML,SVT,V,R)0115 ; ML=addr of this routine0120 ; SVT=addr of $ to \} be searched0125 ; V=addr of search character0130 ; R=# bytes to search0135 ;0140 ; Program equates0145 ;0150 CADR=$CB ]} ; char addr pointer0155 TABLE=$CD ; verb table pointer0160 CHAR=$CF ; character buffer0165 BRET=$D4 ; BASIC return addr ^}0170 ;0175 PLA ; # arguments0180 PLA ; msb of table addr0185 STA TABLE+10190 _} PLA ; lsb0195 STA TABLE0200 PLA ; msb of verb addr0205 STA CADR+10210 PLA `} ; lsb0215 STA CADR0220 LDA #$000225 TAY0230 STA BRET+1 ; zero msb0235 LDA (CADR) a},Y ; get the char0240 STA CHAR ; save for later0245 PLA ; msb of range (ignore)0250 P b}LA ; lsb0255 TAY ; use as the index0260 NEXT DEY0265 BMI NOPE ; must be illegal0 c}270 LDA CHAR ; get char0275 CMP (TABLE),Y ; match?0280 BNE NEXT ; no; try another0285 d}INY ; yes; give position0290 STY BRET ; to BASIC0295 RTS ; and return0300 NOPE LD e}A #$00 ; 0=char not found0305 STA BRET ; give to BASIC0310 RTS ; and return300 NOPE LD r0100 ; DLI/BLINK ROUTINE0105 ;0110 ; Syntax: USR(DLI,DLI+X)0115 ; DLI=addr of this routine0120 ; X=offset to DLI handlerg}0125 ;0130 ; Program equates0135 ;0140 COLPF1=$D0170145 COLPF2=$D0180150 WSYNC=$D40A0155 SDLSTL=$02300160 VDSLST=$0200h}0165 CHACTL=$D4010170 CHACT=$02F30175 BUFFER=$CB0180 BLINCT=$D00185 ;0190 ; First set up the DLI0195 ;0200 PLA i} ; # arguments0205 PLA ; msb of DLI addr0210 STA VDSLST+10215 PLA ; lsb0220j} STA VDSLST0225 LDA SDLSTL ; find start of0230 STA BUFFER ; display list0235 LDA SDLSTL+10240k} STA BUFFER+10245 LDY #$18 ; mode line 200250 LDA #$82 ; DL instruction0255 STA (BUFFER),Yl}0260 LDA #$00 ; turn off0265 STA CHACT ; inverse video0270 RTS0275 BRK ; mark em}nd of init0280 ;0285 ; This is the actual DLI handler0290 ;0295 PHA ; save accumulator0300 TXA0305n} PHA ; save X0310 LDA #$00 ; black bkgrnd0315 LDX #$0A ; white chars0320 STA WSo}YNC0325 STA COLPF20330 STX COLPF10335 INC BLINCT ; Blink cursor0340 LDA BLINCT0345 AND #$10p}0350 LSR A0355 LSR A0360 LSR A0365 STA CHACTL0370 PLA ; restore A and X0375 TAq}X0380 PLA0385 RTI ; back to BASIC STA CHACTL0370 PLA ; restore A and X0375 TA99:sOUTICRISSULINECOUNPLILINUNLCTOTACHKSUPRODUCs} d88 DEBUGGING AID BY ISTVAN MOHOSn!!VERSIt}ON 2 MODS AND CASSETTExVERSION BY TOM HUDSONT +(T(?This run will LIST data statements to the screen or u}printer.i(f([This DATA is created by evaluating each character of a user program, LISTed to tape.i(&&;@v},;A(,;@,>$(OUTPUT TO CREEN OR RINTER(>0S*0PA`5 4S+@@w}E:5 A7@3(READY PRINTER AND PRESS 7- A-@@P:,((x}ENTER ISSUE NUMBER( A,M('(READY TAPE AND PRESS G@@C:J(M('6-y}6-6-'6-@B A@@(6-%@B6-A:7@<@,,/6-%@/!@* z}@A"@A(@6-@S 4S6-%@%"@C(PRESS TO CO{}NTINUEGS6- 6- (@ DATA "! 6-!@ !6-@,R-@B:,$6-$@:7<,,|},6-%:6-%@F"@R6-@6= 6-%$AU%6-%@1"@=6-@@6-&A$P}}:'A,J'(@,6-%' A0T@"Ap^(@h@rD (}D(~}5Your typed-in program was not properlyLISTed to tape.|n(](*Please LIST your program to tape, thenRUN >:@4,CHEC}K>:@4, again.h@knD:CASSCHEK.BAS(*Please LIST your program to tape, thenRUN >:@4,CHEC>k5JQQQQQQQQQQQ1Q1Q1Q1Q1Q1Q2Q2Q3Q3Q3Q4Q7Q8Q12Q25Q50Q53Q55Q55Q70Q71Q71Q75Q76Q84Q}99Q100WAIFILECFALINQ1@@@@@@@@ @ } @ @ @ @@@@ @"@0@1@4@C@u@A%AU}AA5AUAYA A A!AR"Ad#AB$A %A&Ah'()}*+,-./012345678}9 ;;""kk0,1,2,3,4,5,6,7,8,9,10,11,}12,13,14,17,20,22,30,31,34,43,75,82,125,255,500,535,555,559,709,710,712,752764,842,999,1000. +%((.( } #( disk catalog (( -( 2( } 7( <( CLARKSVILLE,TN.A,( (-$, F;},;,;,KR  +%6-B2y-7(PROGRAM OPTIONS=-R( file makerLN -(-!(}'-0(6-?(E-N(P: -( file finder$-:( exit programU3 -(}-3(PRESS FOR ZC -#(PRESS FOR )-C(PRESS FOR _ 6-F:,F:,")"} $dF:,")" &iF:,")"%n %s#"x  %} %%( &I -}-(type number for kind of listing3-C( 1 file nameI-O( 2 disk number-1(3 cataloged disks9-%O}(4 program options 6-F:,")" $ "%(>:,  "% $ %  " $I}$(type in name of desired file(.-A(I'm looking...I $%4$(type in disk number desired(."4 $}#%+%,$! "4 END OF DATA! E*4 -=(SORRY I COULD NOT FIND DISK ''E $%8 "6}-%"2( 7<,/ USED8 %3 4* (>:,--(I'm looking...36.E "%-3(I'M GOIN}G TO CLEAR THE SCREEN;-? E6-4 46-%-4(  IS ON DISK # - !6-!%6-%'}!%-6- -%" $& "( ' "* %(6-%'6-%? "*  %(6-%}'6-%-"396-?-E ""(  %6-%-6-%3"9?6-E-I "6-}6-!-I(#ŠӠŭϠԠӠ% "6-F:,"(>:,% $ " $ $ " $}%C "*"-;(SORRY I COULD NOT FIND DISK ''C $% = -1( Disk #  7}=U "*0-0(I COULD NOT FIND ''3(U( PLEASE RECHECK YOUR DATA+ -+(Another }disk? Y/N' -%"'(another file? Y/N"" 6-F:,"*" " $%' "*  $, "% 1 } $&6 ;K +%-+( IF new file1-K( IF update@F -F(5IF UPDATE PL}ACE DISK WITH 'filename.lst' IN DB% -%( FOR options E 6-F:," $&J "6- $}L "% O %&T#"Y  $&^ %%(cB +%-B(% } hS -(put disk in %-:( when prompted@-S( type disk m5 -( } #-5( WHEN READYr 6-F:,"  %%w %&|H  - (if done type 0&-;(and pres}s RETURNA-H( -( change disk B -!(type number of disk'-<(and press RETURNB- }" &+%, "(>:,-5 ")-%+%,$%%+%,$%%-(1 5 / 6-%+%,$6-/}D1:*.*& (>:,-( DATA &-1 7<,4FREE)(,,01 $%/ (,-!}7<,0 +(7<,/ 7<,0 (.& -7<,0 "(7<,& (,7%<,# (,"(}~#ESC DELETE "  6-% &+%,  %=  -!(a new file will'-=(be written }to D1.[ -(be sure the disk$-9(has enough room.?-[(press RETURN when ready 6-F:, &+%,}I (>:,-I(LIST>:,D1:FILENAME.LST>:,,,$   U -U(Aa file 'FILENAME.LST'} has been Ġ on this disk. (-  9  +%!-AF39}E'6-F:A`,%F:Aa,$AV%1&&9-A%E < - (disk directory&-9( }<$9  +%!-AF39E'6-F:A`,%F:Aa,$AV%1&&9-A%}E  < - (disk directory&-9( <$B (>:,-B(ENTER>:,D1:FILENAME.L}ST>:,( ( ((CONT-  &! &$+D (>:,6-6-6-"6-(6-.6-66. >6. D}6-0,+%%#),$: 6-6-&?  -%%% %D  $-%% %}I-%%%N$X4 6-(>:, &-1( 4(] #%$$b" " %&eF:%,%}((g ( 6-% $%l% -%%(Press RETURN for menuq 6-F:, %v %{H  -3(!Stand} by while I load the file...;-? E &H$u999,END OF DATA,-1 D:CATALOG.BAS %{H  -3(!Stand_0100 ; NOUN/VERB DECODER0105 ;0110 ; Syntax: N=USR(ML,TL-5,NL)0115 ; ML=addr of this routine0120 ; TL=addr of lookup tabl}e0125 ; NL=addr of current noun/verb0130 ;0135 ; Program equates0140 ;0145 NOUN=$CB ; noun addr pointer0150 TABLE=$CD }; table addr pointer0155 NRET=$D4 ; BASIC return addr0160 ;0165 PLA ; # arguments0170 PLA }; msb of table addr0175 STA TABLE+10180 PLA ; lsb0185 STA TABLE0190 PLA ; msb of }noun addr0195 STA NOUN+10200 PLA ; lsb0205 STA NOUN0210 LDA #$000215 STA NRET+1 ; }zero msb0220 LDX #$15 ; noun/verb count0225 NEXT DEX0230 BEQ NOPE ; illegal entry0235 CLC0240 } LDA TABLE ; +5 to pointer0245 ADC #$050250 STA TABLE0255 LDA TABLE+10260 ADC #$000265 S}TA TABLE+10270 CLC0275 LDY #$00 ; init index0280 LDA (NOUN),Y ; get 1st char0285 CMP (TABLE),Y }; equal?0290 BNE NEXT ; no; next noun0295 INY ; in-line for speed0300 LDA (NOUN),Y ; try 2n}d char0305 CMP (TABLE),Y0310 BNE NEXT0315 INY0320 LDA (NOUN),Y ; try 3rd char0325 CMP (TABLE),}Y0330 BNE NEXT0335 INY0340 LDA (NOUN),Y ; last char!0345 CMP (TABLE),Y0350 BNE NEXT0355 }INY ; must be legal0360 LDA (TABLE),Y ; get iden #0365 STA NRET ; give to BASIC0370 RTS } ; and return0375 NOPE LDA #$00 ; 0=illegal entry0380 STA NRET ; give to BASIC0385 RTS }; and returneturn0375 NOPE LDA #$00 ; 0=illegal entry0380 STA NRET ; give to BASIC0385 RTS  D:DISK.CAT007Burn0375 NOPE LDA #$00 ; 0=illegal entry0380 STA NRET ; give to BASIC0385 RTS #$\p PROGPNTBYTLINCOUNTOTACHECKSU ##**************$}***************##* MEMTEST DISK FILE MAKER *##* BY TONY MESSINA *##* (C) A.N.A.L.O.G. 83 *##$}*****************************} +@A@=(@ MEMORY TEST\(@ DiskFile maker}($}@ ********* E$(@ analog 400/800E(@ *********!##(@ by $}"[-@@5(@ disk G-@ [(@#((;A,6$}-@(6-A-c#67@<@,.>:AU,C67@<@,.>:AU,c67@<@,.>:A(,2c#$}67@<@,.>:@,C67@<@,.>:@C,c67@<@,.>:@,7%6-%@%-@$}@<""A  @A67,.>:,F)6-%@6-% )(LINE:K#" "6-# @U$}P (BAD CHECKSUM: LINE  &U 6-%"@Z--@@ D:MEMTST.OBJ_ @$}@di""****************************n""* DISK FILE DATA FOLLOWS *s""****************************x$},,162,0,134,82,160,5,162,162,32,133,1032..243,162,38,142,240,2,169,61,134,210,1401..32,164,246,166,210,202,16,24$}4,160,5,1445//162,226,32,133,243,165,88,24,105,180,1358--133,207,165,89,105,0,133,208,169,7,1216--133,214,173,230$},2,56,233,1,133,215,1390..169,9,133,211,169,16,133,209,96,169,1314000,168,133,212,133,213,133,205,133,212,1542001$}62,2,134,213,165,214,133,206,166,215,161011165,212,73,255,133,216,145,205,200,208,181222251,230,206,228,206,176,245,1$}66,213,165,2086--214,133,206,165,212,202,16,4,162,2,131622145,205,200,208,246,230,206,165,215,197,201722206,176,2$}36,165,214,133,206,166,213,165,1880--216,202,16,4,162,2,165,212,209,205,139311208,28,200,208,240,230,206,165,215,197,$}189700206,176,232,198,213,16,173,165,212,73,1664,,255,48,161,198,211,16,74,76,113,5,1157,,132,205,32,134,5,141,18$},6,165,217,1055))141,17,6,160,0,177,205,32,134,5,877,,141,28,6,165,217,141,27,6,165,205,1101((32,134,5,141,8,6,16$}5,217,141,7,856((6,165,206,32,134,5,141,6,6,165,866++217,141,5,6,160,5,162,251,32,133,1112--243,160,6,162,30,32,1$}33,243,76,120,1205--5,160,0,230,209,165,209,145,207,76,1406''197,4,72,74,74,74,74,32,151,5,757--133,217,104,32,15$}1,5,133,218,96,41,1130((15,201,10,48,2,105,6,105,48,96,636))125,127,32,32,32,32,32,65,84,65,626''82,73,32,77,69,7$}7,79,82,89,32,692++84,69,83,84,127,127,127,127,32,32,892((32,32,32,98,121,32,65,87,77,32,608 ''65,78,65,76,79,71,3$}2,35,49,49,599 22127,127,155,127,127,127,127,127,127,127,1298//127,127,127,155,127,127,127,73,84,69,1143**82,65,84$},73,79,78,83,127,127,127,925**127,127,32,32,32,32,32,48,155,69,686''82,82,79,82,32,64,45,62,36,88,652''88,88,88,3$}2,84,86,65,76,45,62,714''36,88,88,32,65,86,65,76,45,62,643**36,88,88,155,127,127,84,69,83,84,941((32,32,68,79,78,$}69,155,65,226,2,806((227,2,128,4,224,2,225,2,197,4,1015  999,999 D:DISKMEM.BAS,83,84,941((32,32,68,79,78,$^'**DDNMKKPDPRNTRMINCMINHFCTNUNITDAYNEHCLOYHIYDUKPCLCLCLCLAVYUSCOSDDDIDDAVTIM(}SEHCDDICDTOHDDIHDTOCDAVHDAVHAVCAVLIN@ (} (} !"#$%&'((})*+,-./0 @""(} KILOWATTS!!((} ELECTRICITY($$( ANALYSIS PROGRAM2!!( BY JOE HARB<mm(eDURING OPERATION OF(} THIS PROGRAM, DO NOT DEPRESS RETURN KEY AFTER TYPING ANSWERS TO PROMPTS.Fn#@@K:nOPEN KE(}YBOARD TO GET INPUTS LATER IN PROGRAM WHEN GET STATEMENT IS USEDP4('(DEPRESS ANY KEY TO CONTINUE.4)@ZGG;(}@,;@,;@,;@,;@e,;@,d]6-A6-A'6-A]MINCD=MINIMUM COOLIN(}G DAYS NECESSARY FORCOMPUTATIONn11MINHD=MINIMUM HEATING DEGREE DAYS NECESSARYxbbFCTR=NR. OF KILOWATTS TO BE SUBTRACTED (}FROM MONTHLY KILOWATT USE WHEN COMPUTING DEGREE DAYS.ooSUBTRACTING FCTR REDUCES EXTENT TO WHICH OTHER HOUSEHOLD ELECTRICI(}TY USE BIASES HEATING AND COOLING STATSaaCALCULATE: TOTAL MONTHS OF DATA (NR); LOW YEAR OF DATA (LOYR); AND HIGH YEAR OF (}DATA (HIYR)6-"CCM$=MONTH, Y=YEAR, UNITS=KILOWATTS USED USED IN BILLING PERIOD((DAYS=NR(}. OF DAYS IN BILLING PERIODXXNET=COST OF ELECTRICITY WHEN BILL PAID ON TIME,DD=DEGREE DAYS DURING BILLING MONTHHD=H(}EATING DEGREE DAYSCD=COOLING DEGREE DAYS 6- #"", 4END# A 66-%@6-(}@ AmmSUBROUTINE TO GET INPUT FOR MENU OPTIONS A & B; THEN CLEAR INPUT QUESTIONS FROM SCREEN TO ALLOW DISPLAY(}OF ADDITIONAL DATA]6(.}TYPE FIRST THREE LETTERS OF MONTH YOU WANT.C)@P)@])@DDNEXT(} LINE CONVERTS ATASCI VALUES TYPED ON KEYBOARD TO A STRINGG 6.>:,#67B:,%@,.>:,:67B:,%@,.>:,D A0(}G$p @F:@,&@4-@`(' d p39 SPACES# @(}F:@,&@#$""ҠӠϠśkEND,999,0,0,0,0,0MENU OPTIONS?<(4}THIS PROGRAM AL(}LOWS THE FOLLOWING SELECTIONS:?(DD(< A. TOTAL MONTHLY AND AVERAGE DAILY KILOWATT USEEE(= B. TO(}TAL MONTHLY AND AVERAGE DAILY KILOWATT COST<<(4 C. TOTAL ANNUAL KILOWATT USE AND COST<<(4 D(}. PRINTOUT OF ALL ELECTRICAL USE DATA''( E. DATA INPUT INSTRUCTIONS ( F. EXIT PROGRAM(4'(T(}YPE LETTER OF OPTION YOU WANT.4)@ WWGET IS USED TO DETERMINE LETTER TYPED ON KEYBOARD; A=ATASCI VALUE OF LETTER (}TYPED*"@eA04"@fA@>"@gAPHM"@h A!`9@@(}P:C BM A`R"@iAp\$"@p!@@$f A ppPRINTER ERROR MESSAGE(}z?@+(PRINTER IS NOT ON-LINE!5 B? A p ""SUBROUTINE FOR MENU OPTION A A lU(MDO YOU (}WANT TO INCLUDE INFORMATION ON HEATING(H), COOLING(C) OR NEITHER(N)?b)@l A0 &"@g6.COOL&6-(} &"@r6.HEAT&6-@ 2"@x6. &6-@26- ,,($MONTH TOTAL AVG T(}OTAL AVG KWU A+(! KWU DAILY DGREE PER A8 SPACES BEFORE KWU E.(& KWU USE DAYS DGREE DAY(}E14 SPACES BEFORE KWU -@ " 0A2& Y6-P:A$','AYCOMPUTE UNITS PER(} DAY AND LIMIT DECIMAL PLACES DISPLAYED0 %"6-!% A1P: %"@6-!% A1PD +"@(}))!6.N/A+ A1pN X06-P:A$+&,'++'@0,$,,'A96.=:,XCOMPUTE UNITS PER DEGREE DAYX >>(}LINES 3170-3190 USED TO ALIGN AND PRINT SCREEN DISPLAYb \6-@&B:=:P:,,,16-@&B:=:P:,,,E6-@&&B:=:,,(}\6-@2&B:=:P:,,,l J( -F:@,"(1-F:@,6(E-F:@,J(v -F:@,(  (} # L(?(4DO YOU WANT TO LOOK AT ANOTHER MONTH? TYPE Y OR N.L)@ -"@ A0# A- A0(}  (} A ""SUBROUTINE FOR MENU OPTION B A%%(MONTH TOTAL TOTAL UNIT;%( KWU (} COST COST;9 SPACES BEFORE KWU-@"0A@> 6-P:B$+',,'B>(}CALCULATE AVERAGE DAILY USE16-@&B:=:P:,,,16-@&B:=:P:,,,U( -F:@,(( 7-F:@(},<(Q-@%F:@,U(   #L(?(4DO YOU WANT TO LOOK AT ANOTHER MONTH? TYPE Y OR N.L)@(}-"@ A0# A- A@0 (} A ""SUBROUTINE FOR MENU OPTION C_L(D}DO YOU WANT TO INCLUD)}E INFORMATION ON HEATING (H) OR COOLING (C)?Y)@_6-&"@g6.COOL&6-&"@r6.)}HEAT&6-@G/(  AVG KWATTG22 SPACES BEFORE DDN$G.(&YEAR KWATTS DGREE P)}ER DGREEG10 SPACES BEFORE DGREE((( USED COST DAYS DAY36-6-'6-36-)}-@"AQ@1"6-'6-1 AQ01"@6-)}'6-1 AQ0 6-%6-%&  6-%6-%   #66-!66-P:A$','A)}(H6-@&B:=:P:,,,16-@&&B:=:P:,,,H6-@0&B:=:P:,,,2T(%A  ,-F:@,1()}@-F:@,E(T-F:@,<(F'6-%@' %@AP`P#Z:(-("DEPRESS ANY KEY TO RETURN T)}O MENU.:)@d A o""SUBROUTINE FOR MENU OPTION Dp6-6-Q(1}TYPE NUMBER OF LINES PER )}PAGE TO BE PRINTED.^)@k)@6-++&@H,$@,%+&@H,zC3>:@',>:@V,CDISABLE ) }EPSON "END OF PAPER" FUNCTION\C(@2 TOTAL AVG TOTAL AVG\24 SPACES BEFORE TOTAL]) }E(@4 HEAT KWATT COOL KWATT]24 SPACES BEFORE HEAT[C(@2 KWATTS TOT) }AL DGR PER DGR PER[8 SPACES BEFORE KWATTJG(@6YEAR USED COST DAYS DGR DAY DAYS DGR DA) }YJ36-%@6-c6-6-'6-36-?6-K6-W6-c6-) }hhCDDIV & HDDIV ARE NUMBER OF ANNUAL KILOWATTS FOR HEATING & COOLING. ONLY MONTHS WITH MORE THAN 100nnCOOLING OR 200)} HEATING DEGREEDAYS ARE INCLUDED. 500 KWATTS PER MONTH SUBTRACTED BY FCTR FOR OTHER ELECT.ggCDTOT & HDTOT ARE TOTAL HEATI)}NG/COOLING DEGREES PER ANNUM FROM MONTHS WITH SUFFICIENT DEGREE DAYSWK6.A )} W65 SPACES9-@9CALCULATE ANNUAL CONSUMPTION AND COST"Aa)} !6-%6-%& !6-%6-%& 6-%6-%$   #.*!*6-P:A$','A8)}*!*6-P:A$','AB;(@%A;67@&B:=:,,<@,.=:,L((67@&B:=:P:,,,)}<@,.=:,V%%67@%&B:=:,,<@$,.=:,`((67@0&B:=:P:,,,<@2,.=:,j%%67@A&B:=:,,<@@,.=)}:,t((67@E&B:=:P:,,,<@G,.=:,~(@6-%@'6-%@' %@A`p# 36)}-%@hhCALCULATE AND PRINT MONTHLY DATA. SUBROUTINE 6410 PRINTS COLUMN HEADINGS ON EACH SHEET OF PAPER Ad)} Ad` qR(@A KWAT KWAT`6-%@q47 & 10 SPACES)}_Q(@@MONTH DAILY MNTHLY MNTHLY COST HEAT PER COOL PER_6-%@uR(@A KWATT)} KWATT COST PER DGRE DGRE DGRE DGRE`6-%@u8 SPACES BE4 KWATT(pQ(@@ USE USE )} KWU DAYS DAY DAYS DAYT3b6-%@p8 & 13 SPCS2$< 6.JAN AfF 6.FEB Af)}P 6.MAR AfZ 6.APR Afd 6.MAY Afn 6.JUN Afx 6.JUL Af 6.)}AUG Af 6.SEP Af 6.OCT Af 6.NOV Af 6.DEC Af@()}} A :-@:CALCULATE MONTHLY CONSUMPTION AND COST"6-6-0)}Ah (@ WK6.A W65 SPACES 6-)}P:A$+',,'A((67@&B:=:P:,,,<@,.=:,%%67@&B:=:,,<@,.=:,"((67@"&B:=:P:,)},,<@$,.=:,, 6-P:A$+',,'A6((67@(&B:=:P:,,,<@1,.=:,@%%67@9&B:=:,,<@8,.=:,) }J* !*6-P:A$++&,',,'AT4"*67@B<@D,.N/A4 Ag`^((67@C&B:=:P:,,,<@F)!},.=:,h%%67@S&B:=:,,<@R,.=:,r* !*6-P:A$++&,',,'A|4"*67@V<@X,.)"}N/A4 Ah((67@W&B:=:P:,,,<@`,.=:,#6-%@"#6-@(@   #")#}Ahp4DECAhJ=(5INSERT ANOTHER SHEET OF PAPER; THEN DEPRESS ANY KEYJ)@%6-)$}6-% Ad"36-%@""Ah@$W++INSTRUCTIONS FOR PREPARING DATA LINESX6-%A bI)%}I(A}FOR EACH MONTH OF DATA YOU HAVE, YOU MUST TYPE ONE DATA LINE.l66(.THE FIRST DATA LINE MUST BE NUMBERED 1000.v)&}SS(KAFTER THAT, EACH DATA LINE MUST BE NUMBERED ONE HIGHER THAN THE LAST.LL(DFOR EXAMPLE, 1000 MUST BE FOLLOWED B)'}Y 1001, 1002, 1003, 1004, ETC.K>(6DEPRESS ANY KEY WHEN READY FOR NEXT INSTRUCTIONS.K)@66(.}THE FOLLO)(}WING IS THE FORMAT FOR A DATA LINE:--(%1000 DATA OCT,82,1350,30,79.25,495,0++(#REQUIRED DATA SEQUENCE AND FORMAT:))}((( 1. MONTH; MUST BE 3 LETTERS LONG''(2. YEAR; MUST BE 2 NUMBERS LONG,,($3. NUMBER OF KILOWATTS USED IN MONTH)*}++(#4. NUMBER OF DAYS IN BILLING PERIOD99(15. NET COST OF ELECTRICITY IN BILLING PERIOD99(16. HEATING DEGREE DA)+}YS IN BILLING PERIOD99(17. COOLING DEGREE DAYS IN BILLING PERIOD:A :($LAST LINE OF DATA ),}YOU ENTERED WAS: ))(!NOW BEGIN TYPING NEW DATA LINES.  D:ENERGY.BAS:A :($LAST LINE OF DATA (W#$ABCDEFLQSUWDCPPPF -.}  ##ԮӠ##-/}##حɠƯԠ####ì㮠###-0}(##ˠɠ-##2##쬠-1}7##<##àӠѠ쩠A##ӠѠѭ詛F##-2}n@@sb A@&"A80+@B-@@_(@-3}TURN ON printerbx##@@K:##@@P:$$(@>:@',>:@d-4}, +00155 POKE 710,254:POKE 712,138:POKE 709,2029AA0'AA09A @-5}<<;@@,;@@,;@@,;@@,;@@,RR;@@,;@@,;@@,;@@,;@@,;-6}@@,;@@,--6.#(A) subscript FONT (toggles B5:C:S)6.(B) N/72 INCH LINE6.(C) COMPRESSED6.-7}(D) DOUBLE STRIKE,,6."(E) EMPHASIZED Ԡ蠨éө6.(F) SKIP OVER PERF !!6.(L) CHARACTERS PER LINE-8}**6. (P) PAPER-OUT ENABLE (SW.1-3 =L)6.(Q) 6. (S) SUBSCRIPT""6.(U) UNIDIRECTIONAL PRINT"6.-9}(W) DOUBLE WIDTH' A A)%,3-@3(*************************63-@@3(* E-:}PSON PRINTER OPTIONS *;3-@@3(*************************@)&( (H) HELP (R) RESET)(E(J-;}(T(^(h(r(|((((((4-@@"4(堧ѧ䠠-<}+-@@+(YOUR CHOICE(S): )@>:,4H A(}>:,4R%f>:,4Af(-=}@>:@',>:@e,>:@,>:@,>:@',>:@,>:@,f>:,4A(67@<@,.*5A->}67@<@,.*Z67@<@,.*f6-@u>:,4B -@@1( >ӯ5[(@-?}>:@',>:@e,>:,u67@<@,.*N=>:,4C$(@>:@,=67@<@,.*H>:,4-@}D/(@>:@',>:@q,H67@<@,.*v<>:,4E*7@<@,0**7@<@,0*](-A}@>:@',>:@i,v67@<@,.*t>:,4F -@@ 1( >Ơ5[(@>:@'-B},>:@x,>:,t67@<@,.*t>:,4L -@@!1( >ү5[(@>:@',>:@-C},>:,t67@<@,.* H>:,4P/(@>:@',>:@W,H67@<@,.*<>:,4Q(-D}@267@<@,.*< AS>:,4S:(@>:@',>:@,>:@,S67@<@,.*-E}&S>:,4U:(@>:@',>:@,>:@,S67@<@,.*0S>:,4W:(@>:@',>:@-F},>:@,S67@<@,.*: AD (}N0-@@0(** EPSON PRINT MODE **X0-@-G}@0( ---------------- b(l.7@<@,0*.( FONTv)7@<@,4*)(7@-H},87@<@,4*8(7@, (/72))7@<@,4*)(7@,)7@<@,4-I}*)(7@,17@<@,4*1(7@<@,;7@<@,4*;(7@, ( LINES)-J}:7@<@,4*:(7@, (/LINE)57@<@,4*5(7@<@ ,D)7@<-K}@,4*)(7@,)7@<@,4*)(7@,)7@<@,4*)(7@,"6-L}-@6-P:@f$+@',,1(1( This mode gives  lines/ 11 in.H7@<@,4*(H($ -M}ՠ٠נҠҠΠF7@<@,4*F(% ΠΠƠŠįҠ E7@<@-N},4*E($ ŠΠ̠ΠΠӠ@@ %%(} EPSET INSTRUCTIONS*,(,-O}(! This is a program to send all4**("those CONTROL CODE combinations to>((( the Epson MX-80 printer for suchH++(-P}#things as compressed print or 'sub-R**("script font' (try this I use it to\**("get 150+ lines on an 11 inch sheetf++-Q}(#of paper!!!) or Double-Width or anyp**("other things you may need (mix andz**("match).(subscript font = A C S Q )-R}((All you need do is:++(#1. TURN ON PRINTER & INTERFACE MOD.,,($2. RUN THIS PROGRAM (RESETS PRINTER),,($3. -S}ENTER THE LETTER OF THE OPTION(S)((( YOU DESIRE (A '*' WILL APPEAR,,($ NEXT TO THE OPTION AS IT IS SENT)++(#-T}4. WHEN DONE TYPE 'Q' (AS IN QUIT).,,($5 YOU CAN NOW TURN OFF THE COMPUTER++(# AND/OR THE DISK DRIVE. THE EPSON-U}( WILL REMEMBER!!!!!--@@#-(HIT TO BEGIN F:B2y,@A$ D:EPSET.-V}BAS WILL REMEMBER!!!!!--@@#-(HIT TO BEGIN F:B2y,@A$ D:EPSET.,[tCG7PINIPD%%***************1X}****************%%* *%%* GRAPHICS 7+ HANDLER *%%* 1Y} *%%* BY TOM HUDSON *%%* *%%* A.N.A.L.O.G. COMPUTING #11 *%%* 1Z} * %%******************************* ##*** PLACE PLOT CALCULATOR ***##*** ON PAGE 6 1[} ***(2Y-A")A6%16-%5 ABQUV(CALC DATA ERROR!Y<F*** P1\}LACE GRAPHICS 7+ ***P*** MACHINE-LANGUAGE ***Z*** IN STRING G7P$ ***dnB;Aq,$-@Aq1]}("667<,.>:,>6-%B s'B8 $(MAIN DATA ERROR!'x!!*** SET INITIALIZATION, ***!!*** PLOT AND1^} DRAWTO ***!!*** VARIABLES ***( 6-C:,6-%@w(6-%A) *** SET UP GRAPHICS1_} 7+ *** *** GRAPHICS MODE ***+@%@6-?:,0@@!!*** GET R1`}ANDOM X,Y, AND ***!!*** COLOR VALUES ***Q6-H:,$A@16-H:,$AQP:H:,$@1a}%@,",""*** PLOT THE FIRST POINT ***6""*** IN THE RECTANGLE ***@J 6-?:<@%<@%,1b}T^!!*** DRAW THE 4 SIDES OF ***h!!*** THE RECTANGLE ***r|<<6-?:<@%<<<<<@%<@1c}%<@%,""*** DO ANOTHER RECTANGLE *** A""*** PLOT CALCULATOR DATA ***]]11d}73,241,6,10,133,203,169,0,42,133,204,6,203,38,204,6,203,165,203,133,207,38,204,165,204aa133,208,6,203,38,204,6,203,38,2041e},165,203,24,101,207,133,203,165,204,101,208,133,204,165,88]]24,101,203,133,203,165,89,101,204,133,204,173,240,6,41,3,170,1f}173,240,6,74,74,24,101,203]]133,203,165,204,105,0,133,204,164,200,189,113,6,57,105,6,133,206,189,109,6,160,0,49,203>>1g}5,206,145,203,96,0,85,170,255,63,207,243,252,192,48,12,3!!*** GR. 7+ MACHINE CODE ***ZZ104,173,48,2,24,101q}B%DOS SYSB*)DUP SYSBSSNOW BASB [SEARCH ASMB fBLINK ASMBrCASSCHEKBASB.CATALOG BASBDECODE ASMBDISK CATBDISKMEM BASBVENERGY BASB*-EPSET BASBWGR7HNDLRBASB|MEMCASS BASBTMEMTEST ASMBMEMTST OBJBMENU BMISSLMOVASMBMISSMOVEBASBA-NATURE BASBnOLDMENU B SCREEN ASMcADVENTURBAS5,3,133,203,173,49,2,105,0,133,204,160,0,177,203,201,79,208,21,169&]]78,145,203,165,203,24,105,2,133,203,165,204,105,0,1331r},204,169,0,240,15,201,15,208,6,1690[[14,145,203,208,5,201,65,208,1,96,165,203,24,105,1,133,203,165,204,105,0,133,204,169,01s}:bb240,197,216,104,240,13,133,205,41,1,240,8,166,205,104,104,202,208,251,96,104,104,201,160,176D\\22,141,240,6,104,104,1t}201,192,176,6,141,241,6,32,0,6,198,205,198,205,208,229,96,104,104N``169,0,240,243,216,104,240,217,133,205,41,1,240,6,166,21u}05,169,0,240,200,104,104,201,160,176X__14,141,242,6,104,104,201,192,176,7,141,243,6,144,9,104,104,198,205,198,205,208,228,1v}96,205bWW241,6,144,14,56,237,241,6,141,247,6,169,1,141,249,6,208,15,173,241,6,56,237,243,6lYY141,247,6,169,255,141,249,1w}6,173,242,6,205,240,6,144,14,56,237,240,6,141,246,6,169,1vYY141,248,6,208,15,173,240,6,56,237,242,6,141,246,6,169,255,141,1x}248,6,169,0,141,245,6ZZ141,244,6,173,246,6,205,247,6,144,15,141,250,6,133,209,74,141,245,6,169,0,240,14,240[[147,173,1y}247,6,141,250,6,133,209,74,141,244,6,173,250,6,240,237,173,245,6,24,109,247,6\\141,245,6,197,209,144,19,173,245,6,56,229,1z}209,141,245,6,173,241,6,24,109,249,6,141,241ZZ6,173,244,6,24,109,246,6,141,244,6,197,209,144,19,173,244,6,56,229,209,141,1{}244,6,173II240,6,24,109,248,6,141,240,6,32,0,6,206,250,6,208,182,169,0,240,159 D:HANDLER.BAS244,6,56,229,209,141,0h#$\R g PROGPNTBYTLINCOUNTOTACHECKSU ##**************5}}***************##* MEMTEST CASS FILE MAKER *##* BY TONY MESSINA *##* (C) A.N.A.L.O.G. 83 *##5~}*****************************} +@A@=(@ MEMORY TEST\(@ cassette maker}(5}@ ********* E$(@ analog 400/800E(@ *********!##(@ by 5}"[-@@5(@ boot G-@ [(@#((;A,65}-@(6-A-%6-%@%-@@2""A  @u767,.>:,<)6-%@6-5}% )(LINE:A#" "6-# @EF (BAD CHECKSUM: LINE  &K 6-%"@pP##@5}@A(C:U @@di""****************************n""* CAS PROGRAM DATA FOLLOW5}S *s""****************************x&&0,4,128,4,136,4,24,96,169,60,625**141,2,211,169,152,141,10,0,169,4,9995}((141,11,0,96,162,0,142,82,0,160,794..5,162,232,32,133,243,162,38,142,240,1389,,2,169,61,142,225,5,32,164,246,174,15}220++225,5,202,16,242,160,6,162,40,32,1090..133,243,173,88,0,24,105,180,133,207,1286++173,89,0,105,0,133,208,169,5}7,141,1025++229,5,173,230,2,56,233,1,141,230,1300++5,169,9,141,226,5,169,16,141,224,1105**5,169,0,168,141,227,5,15}41,228,5,1089,,133,205,141,227,5,162,2,142,228,5,1250..173,229,5,133,206,174,230,5,173,227,1555--5,73,255,141,2315},5,145,205,200,208,146800251,230,206,228,206,176,245,174,228,5,1949--173,229,5,133,206,173,227,5,202,16,1369..4,15}62,2,145,205,200,208,246,230,206,1608..173,230,5,197,206,176,234,173,229,5,1628--133,206,174,228,5,173,231,5,202,16,15}373++5,162,2,173,227,5,209,205,208,32,122800200,208,238,230,206,173,230,5,197,206,1893--176,229,206,228,5,16,159,5}173,227,5,1424++73,255,48,144,206,226,5,16,78,76,1127))169,5,132,205,32,192,5,141,88,6,975++173,222,5,141,87,6,165}0,0,177,205,1176**32,192,5,141,98,6,173,222,5,141,1015((97,6,165,205,32,192,5,141,78,6,927,,173,222,5,141,77,6,165}5,206,32,192,1219''5,141,76,6,173,222,5,141,75,6,850,,160,6,162,65,32,133,243,160,6,162,1129,,100,32,133,243,76,15}76,5,160,0,238,1163++224,5,173,224,5,145,207,76,229,4,1292))72,74,74,74,74,32,211,5,141,222,979 ((5,104,32,211,5,15}41,223,5,96,41,863 ((15,201,10,48,2,105,6,105,48,96,6360,0,0,0,0,0,0,0,0,0,0))125,127,32,32,32,32,32,65,84,65,625}6''82,73,32,77,69,77,79,82,89,32,692++84,69,83,84,127,127,127,127,32,32,892((32,32,32,98,121,32,65,87,77,32,6085}''65,78,65,76,79,71,32,35,49,49,59922127,127,155,127,127,127,127,127,127,127,1298//127,127,127,155,127,127,127,73,85}4,69,1143**82,65,84,73,79,78,83,127,127,127,925 **127,127,32,32,32,32,32,48,155,69,686"''82,82,79,82,32,64,45,62,365},88,652$''88,88,88,32,84,86,65,76,45,62,714&''36,88,88,32,65,86,65,76,45,62,643(**36,88,88,155,127,127,84,69,83,84,95}41*((32,32,68,79,78,69,155,0,0,999,1512 D:MEMCASS.BAS65,86,65,76,45,62,643(**36,88,88,155,127,127,84,69,83,84,94@h;****************************************;* ATARI MEMORY TEST PROGRAM ;* FOR ANALOG COMPUTING9} # 11 %;* BY TONY MESSINA 0;****************************************5@;******************9}***E;* EQUATES FOR PROG P;*********************U;* FIRST PG0 LOCATIONS`;*********************epTSTPTR .DE $9}CD ; POINTER TO TEST AREuITCNT .DE $CF ; SCRN ADDR OF ITCNT VÀASCICNT .DE $D1 9} ; ASCII NUMBER IT CNԅSAVEX .DE $D2 ; X STORE LOÐTOTAL_CNT .DE $D3 ; # TIMES THRU LOO9}P CNԕTOGGLE .DE $D4 ; XR LOCATIOTESNUM .DE $D5 ; ODD BYTE CNSTART_PAGE .DE $D6 9} ; STRT PG OF TST AREEND_PAGE .DE $D7 ; END PG OF TST ARETEST_VAL .DE $D8 ; VALUE9} TO TES HIHEX .DE $D9 ; HEX NUM STORE AREA HI NYBL%LOHEX .DE $DA ; HEX NUM STORE LO N9}YBL05;*********************@;* END PG 0 LOCATIONS E;*********************P;* NOW ROM LOCATIONS U;***************9}******`ePUTCHR .DE $F6A4 ; CHAR IN A TO SCREEpWRITE_MSG .DE $F385 ; WRITE A LINE TO SCREEuMOTCNTL 9}.DI $D302 ; MOTOR CNTL LOÀ;********************;* END ROM LOCATIONS ;********************;* MISC E9}QUATES ;********************CR .DI $9B ; CARRIGE RETUR CLS .DI $7D ; CLE9}AR SCREE%BELL .DI $FD ; RING BUZZE0SPACE .DI $20 ; SPACE CHA5TAB .DI $7F 9} ; TAB CHA@MEMLO .DE $02E7 ; LOW START ADDEMEMHI .DE $02E5 ; HI MEM ADDPSCRADR 9}.DE $58 ; PTR TO 1ST SCREEN LOUCURON .DE $02F0 ; CURSOR ON/OFF TOGGLE ADD`NULL .DI $00 ; NULL B9}YTeCASOFF .DI $3C ; MOTOR OFpMARLFT .DE $52 ; LFT MARGIN LOuDOSINI .DE $0A ; DOS VECTOҀ;*****************9}****;* ASSEMBLY CONTROL ;********************* .PR "TYPE 1 FOR CAS, 0 FOR DISK.CASS_FL 9}.IN CASS_FL  .BA $0480 ; ASSEMBLE FOR $048% .MC $A000 ; STORE AT $A000; 9} .LS ; GIMME LISTIN5 .OS ; STORE OBJ COD@E;*********************P;* PROGRAM 9}STARTS HEREU;*********************` IFN CASS_FLep;*** DON'T ASSEMBLE THE FOLLOWING **u;*** IF CASS_FLG = 09} **HEADER .BY  .BY  .SI HEADE .SI INI CL 9} RT %INIT LDA #CASOFF ; OFF VA0 STA MOTCNTL ; DO I5 LDA #L,SET_SCREE@ STA *D9}OSINI ; SWAP RESTARE LDA #H,SET_SCREEP STA *DOSINI+1 ; VECTOU RTS ; AND RETUR9}` *** ; END CONDITIONAepSET_SCREEu LDX # STX *MARLFT ; MAKE 40 COLӅ LDY #9}H,TITLE1 ; GET LO ADDҐ LDX #L,TITLE1 ; GET HI ADDҕ JSR WRITE_MSG ; PUT IT U LDX #38 ; LO9}AD COUN STX CURON ; ZAP CURSODRAW_BA  LDA #'= ; LOAD AN % STX *SAVEX ; SAVE X RE0 9} JSR PUTCHR ; PRINT THE 5 LDX *SAVEX ; RESTORE COUN@ DEX ; DEC THE COUNE BPL DRAW_BAR ;9} DO IT 39 TIMEPUDO_TITLE` LDY #H,TITLE2 ; LO ADDe LDX #L,TITLE2 ; HI ADDp JSR WRITE_MSG 9}; WRITE Iu;************************;* FIND SCREEN ADDRESSES ;************************GET_ADDR LD9}A *SCRADR ; GET 1ST LO CLC ; CLR CARR ADC #180 ; ADD OFFSE  STA *ITCNT ; STOR9}E L% LDA *SCRADR+1 ; GET H0 ADC #0 ; ADD CARRY TOO5 STA *ITCNT+1 ; STUFF H@9}E;*************************P;* GET AREA OF MEMORY TO U;* TEST... `;*************************epTES9}T_RANGu LDA #7 ; START AT PG  STA *START_PAGE ; STORŅ LDA MEMHI+1 ; GET HI Pǐ S9}EÕ SBC #1 ; SUBTRACT 1 PAG STA *END_PAGE ;STORE I;***************;* SET LOOP CNT ;********9}*******%0OUTER_LOO5 LDA #9 ; 9 TIMES THR@ STA *TOTAL_CNT ; STUFE LDA #16 ;9} LOAD START CNT ASCIP STA *ASCICNT ; STORE IU IFE CASS_FL` RTS ; END OF INIT SEGMENe 9} *** ; END CONDITIONApu;********************************PROG_STARԕ LDA #0 ; ZERO 9}TO  TAY ; SAVE IN STA *TOGGLE ; CLR TOGGL STA *TESNUM ; AND TESNU STA *T9}STPTR ; ZAP LO PG PT MAIN_LOO% STA *TOGGLE ; MEM FILL/TST VA0 LDX #2 ; LOAD TEST9} LOOP COUN5 STX *TESNUM ; AND STORE I@PASS_LOOE LDA *START_PAGE ; GET STRT PG# OF A9}REP STA *TSTPTR+1 ; STORE IN POINTEU LDX *END_PAGE ; GET END PAGE OF TEST ARE` LDA *TOGGLE9} ; LOAD VALUe EOR #$FF ; MAKE CURENT TST VAp STA *TEST_VAL ; AND STORE IuWRITE_V9}À STA (TSTPTR),Y ; WRITE VAL INTO TEST ARE INY ; INC LO PAGE COUNԐ BNE WRITE_V9}AL ; DO THIS WHOLE PǕ INC *TSTPTR+1 ; INC NEXT PAG CPX *TSTPTR+1 ; DONE WITH TST AREA9} BCS WRITE_VAL ; GO BACK IF NOT> EN  ;******************************* ;* TEST AREA IS NOW FILLED WITH % ;* T9}HE TEST VALUE.NEXT WE STUFF 0 ;* AN ODD VALUE IN 1 OF EVERY 3 5 ;* BYTES IN THE TEST AREA. @ ;***********************9}********E P LDX *TESNUM ; GET ODD BYTE PTU LDA *START_PAGE ; RESET TEST ARE` 9} STA *TSTPTR+1 ; POINTEe ZERO_FILL LDA *TOGGLE ; GET TOGGLE VAp DOIT DEX ; DEC TEST COUNu 9} BPL BYPASS ; IF POSITIVE BRANCȀ LDX #2 ; ELSE STORE ODD VA̅ STA (TSTPTR),Y ; SO STUFF 9}IԐ BYPASS INY ; INC LO PNTR THIS PǕ BNE DOIT ; DO ENTIRE PAG INC *TSTPTR+1 9} ; AND INC TO NXT P LDA *END_PAGE ; GET END PG VA CMP *TSTPTR+1 ; WE DONE BCS 9}ZERO_FILL ; IF NO..PLEASE CONTINU %0;******************************5;* AT THIS POINT THE TEST AREA @;* IS SET UP..N9}OW TEST IT.... E;******************************PU LDA *START_PAGE ; RESET PG0 POINTE` STA *TSTPTR+9}1 ; TO START OF TST AREe LDX *TESNUM ; LOAD ODD BYTE PNTpTEST_RAu LDA *TEST_VAL ; LOAD TES9}TING VÀ DEX ; DEC PNTR OF ODD VA̅ BPL BYPASS2 ; IF <> ODD CK TEST VA̐ 9} LDX #2 ; ELSE RESET COUNTEҕ LDA *TOGGLE ; AND CK ODD VABYPASS2 CMP (TSTPTR),Y ; THIS LOCAT9}ION MATCH BNE NOGO ; NOPE!!!BOO BOO! INY ; YES..INC POINTER L BNE TEST_R9}AM ; AND DO WHOLE PAG  INC *TSTPTR+1 ; INC PAGE H% LDA *END_PAGE ; LOAD ENDING PAG0 CMP *TSTP9}TR+1 ; WE DONE5 BCS TEST_RAM ; NO..FINISH THIS P@E;*******************************P;* THIS PASS WAS9} OK..FLIP THE U;* VALUES AND DO IT AGAIN SAM `;*******************************ep DEC *TESNUM ; DEC TE9}ST NUMBEu BPL PASS_LOOP ; IF >=0 GO BACˀ LDA *TOGGLE ; GET OUR TOGGLŅ EOR #$FF ; FLIP IԐ9} BMI MAIN_LOOP ; RPT IF VAL IN A=$Fƕ DEC *TOTAL_CNT ; DEC # OF TESTS CN BPL9} NEXT_TEST ; DO TEST 9 TIME JMP PROG_END ; THEN WE DON;******************************* ;*9} COME HERE IF MEMORY ERROR %;*******************************05NOGO STY *TSTPTR ; STORE LSB ERROR ADD9}@ JSR CONVERT ; CONVERT TO HEE STA TVALAD+1 ; STORE LP LDA *HIHEX ; GET HI HEU 9} STA TVALAD ; STORE HI TST VA` LDY #NULL ; ZAP e LDA (TSTPTR),Y ; GET ACTUAL VALUp JSR CON9}VERT ; CONVERT IT TO HEu STA AVALAD+1 ; STUFF Lπ LDA *HIHEX ; GET HI HE؅ STA AVALAD ; STUF 9}IԐ LDA *TSTPTR ; GET LSB ADDR OF FAILED ME͕ JSR CONVERT ; CONVERT I STA ERRAD+3 ; STORE LO 9}HEX MS LDA *HIHEX ; GET *HIHEX LS STA ERRAD+2 ; STUF LDA *TSTPTR+1 ; GET MSB ADDR OF MEM9} FAI  JSR CONVERT ; TO HE% STA ERRAD+1 ; STUFF LO MS0 LDA *HIHEX ; GET HI MS5 STA9} ERRAD ; STUF@ LDY #H,ERRMSG ; GET MSG ADDE LDX #L,ERRMSG ; HI/LP JSR WRITE_MSG ; DISPLAY I9}UPROG_END LDY #H,END_MSG ; LOAD EN` LDX #L,END_MSe JSR WRITE_MSG ; WRITE IpDONE JMP DO9}NE ; INFINITE LOOu;** COME HERE TO INC ITERATION *;** COUNT AND RESET FOR NXT TST*NEXT_TEST LDY #9} INC *ASCICNT ; INC CNT LDA *ASCICNT ; LOAD VA STA (ITCNT),Y ; STUFF I 9} JMP PROG_STAR !%;*********************0;* BIN TO HEX CONVERT 5;*********************@ECONVERT PHA ; SAVE 9}P LSR U LSR ` LSR e LSR p JSR CONASC ; CONVERu STA *HIHE؀9} PL JSR CONASÐ STA *LOHEؕ RTS ; RETUR;*******************;* ACTUAL HEX CO9}N ;******************* %CONASC AND #$00 CMP #$05 BMI LT@ ADC #ELT9 ADC #9}$3P RTS ; RETURU;***********************`;* MESSAGE AREA FOLLOWS e;***********************puTITLE 9} .BY CLS TAB ' ATARI MEMORY TEST' TAB TA… .BY TAB TAB ' by AWM ANALOG #11' TAB TAB CҐ .9}BY TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB CҕTITLE .BY TAB TAB TAB 'ITERATIONS' TAB TA .BY TAB9} TAB TAB SPACE SPACE SPACE SPAC .BY SPACE '0' C ERRMSG .BY 'ERROR @->$%ERRAD .BY 'XXXX' SPACE 'TVAL-9}>$0TVALAD .BY 'XX' SPACE 'AVAL->$5AVALAD .BY 'XX' C@EEND_MSP .BY TAB TAB 'TEST DONE' CULAST_INS 9} .EVALAD .BY 'XX' SPACE 'AVAL->$5AVALAD .BY 'XX' C@EEND_MSP .BY TAB TAB 'TEST DONE' CULAST_INS 8+R &=  XiϥYiЩ֭8ש ө`ԅՅͅԢեօΦץIؑΰեօΥ=}ΥΰօΦեΥΰI0JLq ٍ ٍ ٍ ٍ =} LxѥёLHJJJJ h `) 0ii0`} ATARI MEMORY TEST by AWM ANALOG #11ITERATIONS=} 0ERROR @->$XXXX TVAL->$XX AVAL->$XXTEST DONEA by AWM ANALOG #11ITERATIONS<HO a ABCDMXYLOOBBA(Bh@@@@ @A} @ @1  LOAD*IT BY KARL STIEFVATERREVISED 10/24/85BY CLAYTONA} WALNUMCOPYRIGHT (C) 1985(BY ANALOG COMPUTING2 Ap<&&;@ ,;@,;@@,FA +AA}R@A6-F:A`,%F:Aa,$AVPk0@70@Q0@@A}k0@ZG%@@d%@3%@@G%@&@Hd70@@A}70@@@nh6-6-% Ap,(}V(% h-@A}@x1@1@@D:*.*J@J7@<@,4 F)7@<@,4 FA}A`&&7@<@,4SYSA06-%@( J@J7@<@,4 F)7@<A}@,4 FA`&&7@<@,4SYSAE( A0J-@(>--@@!J(A}USE