@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  } 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 ALLOWED736 FREE SECTORS COPYING---D1:DIRECK.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- 138ɛ+,' 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 D8uEFN++STARLVOODLASSPUSSHLSTDRTRBOHSLMNAMEZB6@@@T}@@@@ @ Bp Bp A @@@@@?hBw4@xe@U}3@AP@Bp@&&& @ @6 ======================V}== THE DEVIL'S DOORWAY == by =(= DAVID SCHWENER =2=======================F BW} BPK! +@!AV'AVM 6-@Pr-&(@ 8-@X}K(@]-@r(@SHIELDSZ A dj"6-@'6-@36-@Y}?6-@Q-@@`(@ j A n56-P:H:,$@,)6-@/6-56-x!@ Z}A@<#-@A&+$@,)-8(@z< +6-@6-@!6-+ AP -([}@B+ 1"A! A+ A!!"A)"@2A -(@z 6-6-\}"F:Ad,AU" A06-R:,<T:,"&6-%@2 @< Ac"@]}*!'6-&@76-%$@Y2A@@c APY"@* @'6-%@^}76-%$@Y2A@@56-%@52@$@@@G%2_}G2@@w A@UE-%+ B,%+ B,%+ A`},%+ A,%+ @,R(@U$6-%@-@@**2H:,$@@@a}0@@C !0@C2&u!@!-@@b}2(@>!@P-@@a(@OUTu!@AP0$X)6-&@ c})6-b"-@@"(@l&6-H:,& ?PApv"6-H:,$@%@6-@d}@<-K(@Y-&@h(@B2@@1%@O"A" e}A'6-&@1+@IEAV'AVO A )%2) !-@(@f}B!$""6-H:,$@%@~ -@@6@&-5(@C-%@R(@Bg}n2@@~1&@O"A" A'6-&@1+@IEAV'AVO A h})%2) !-@(@B!$  !6.>:AV,*  6.>:AX,4F9i}-P:H:,$@,P:H:,$@%@,F(@>$6-%@"@26-2 j}-(@( A2 A;-@@ ;2@%@P@@s-@(@k}M*-@9(@mE-@T(@`-@o(@s -@@$]00@l}H:,$@%@@]2H:,$@@@.K )2K2m}@8=+@%@H)AV'AV=0@@Be-@@"-,(n}@z:-&@I(@ ]-@@a e L"@6-@V"6-@`o}!@ A`j@ A@tS-@-@",(@z@-&@@"O(@ p}S ~ Ap\-@6@&-@"5(@zI-%@@"X(@ \ +-@@q}+(@ +-@@+(@ +-@@+(@ 6-P:Ar}$',!A 6-Ac-@@;2@@@G6-@S6-@Y6-s}c AP_6-%@6-@)6-@/6-9 AP[2_ -@At} "A -@6@>2@%@@L6-%A^-@@u}s(@&@6-@6-@6- AP-@@ ) )2v}-@A W -@"@6@4-&@W(@ 2-w}2(@ z F@#-%@F(@BBBBBBBBBBBBBBBBBBBB3!@x}#-@%@3(@ E2@@# E2 -@"y}@6@ 2-2(@qqqqqqqqqqqqqqqqqqqq:-%@:(@  z}p -@@6?PF2A&$@@J l2p *)+@%{}@2)AV'AV4)6-%@ @)6-@>96-6-@'6-36-96-|}H0@@R?AU(}<( PREPARE FOR DESCENT?(\I-@6-H:,$}}@%@E(@I f<AU(((9( LEVEL <(p6-P:H:,$@ ,z~}m-@@"(@4-@@E(@ok Q6-@]6-@c6-m AP A } AdAU F:Ad,"AUA0 AdAU$,( ( ()( ӠŠ,(l}-@@P10@@@E0@@l2H:,$@@@!0@}! 90@@92 A` !6-$$(} THE DEVIL'S} DOORWAY%"( by david schwener%( ( ȠźB2y@6-FT:,"}$6-06-<6-F @uyF:B2y,"@,-@@ 0 >6-%@P-@@}a(@ m!@y6-<F:B2y,"@$6-26-&@< @u<F:B2y,"@}&6-&@26-< @u AP p-@@u -@6@z-@}(@0@@=2A%$@@A E _0@@@2} -@@6@i-2(@ m M m M F-%@i(}@ c-@@92@P@@= _2}c 2-@@2(@OPTION:U-@@ 0(@ SELECT:B-@ @U(}@{-@@1(@START :C-@@S(@e-@ @{(@} {-@@2(@trigger:D-@@T(@f-@ @{(@} 1d$ Nq AF:A,&@*+K6-+F:A,%@,$AV_AV'AVqAR@}%N #B;@8,*N9-@@8")67<,.>:,5AU9 /NRR104,169,0,133,203,133,205,169,22}4,133,206,165,106,24,105,1,133,204,160,0,1770NHH205,145,203,200,208,249,230,204,230,206,165,206,201,228,208,237,964N6-?}:C:,,>N #BpHN""6@$RN=-@"-%$@%9AU= \N B@fN$$16,}0,126,102,102,102,102,126,0pN17,0,56,56,24,24,24,24,0zN""18,0,126,126,6,126,112,126,0N!!19,0,126,126,6,30,102,126,0}N!!20,0,6,102,102,102,126,14,0N""21,0,126,112,126,6,126,126,0N##22,0,124,96,126,102,126,126,0N23,0,126,126,6,6,6},6,0N##24,0,126,102,60,102,126,126,0N""25,0,126,102,126,6,126,126,0N$$28,24,52,114,241,241,114,52,24N""30,24,44,7}8,143,143,78,44,24N$$33,0,126,126,102,102,126,102,0N""35,0,126,126,96,96,126,126,0N$$36,0,124,110,110,110,110,124,0}N""37,0,126,96,120,96,126,126,0O!!38,0,126,126,96,120,96,96,0O##39,0,126,126,96,110,102,126,0O$$40,0,102,102,126,1}26,102,102,0$O""41,0,126,126,24,24,126,126,0.O$$43,0,110,110,120,120,110,110,08O 44,0,96,96,96,96,126,126,0BO$$47,0,}126,102,102,102,126,126,0LO""48,0,126,126,102,126,96,96,0VO$$50,0,126,126,102,126,108,102,0`O!!51,0,126,126,96,126,6,12}6,0jO 52,0,126,126,24,24,24,24,0tO$$53,0,102,102,102,102,126,126,0~O""54,0,102,102,102,126,60,24,0O""55,0,99,99,107},127,127,119,0O!!57,0,102,102,126,24,24,24,0O""34,24,36,66,255,255,66,36,24O""42,0,0,255,219,165,219,255,0O((45,1}02,195,126,153,231,255,165,126O$$49,24,24,24,153,219,90,126,255O&&56,24,126,102,195,195,102,126,24O$$58,124,214,130,}84,186,146,16,0O-1a; +@'0@@;AV'AVa5#@@K:5Ad}AUa/;@,;@,/6. a-@@+-@@1-S2@}@@b(@Bp-&@(@ 2a   a-@@}+-@@1-S2@@@b(@Bp-&@(@ 2}a   a%%2a@-@@"%-2(@< BS@} all10,5,v,7,8,o,12,8,y,8,5,d,4,5,t,9,8,r,13,5,',6,5,e,11,8,a,6,8,d,14,5,s,7,5, ,9,5,e,10,8,w,5,5,h,12,5,la8,8,o,11,}5,i b%%2*b6-4b -@@6@.-@:-@V2}@@e(@y-&@@(@  >b-@ BS  Hb$-@@$(}@ Rb-@@.-@6@:-@V2@@e(@y-%@}@(@  \b-@ BS  fb%%2pb$-@@$(@} zb$-@ @$(@bE-@@ E2@@@@&+'@,bw-@@}&6-F:A,=+A,F:A,RAF:A,gAF:A ,sA w b)%2}) b1-@@!1(@select :1b.-@@".(@ PRESS startb6-@}b0@@@b; BS@'0@@1 BS@; BR`b6-&@$bd-@}@;2A&@@? a2d$b$-@@$(@ b&}6-%@#(@7<,&$b<-@@P,F:B2y,"@/'2'< BRcyF:B2y,"@,-@}@0 >6-%@P-@@!a(@ m!@y6-c   $ D:DEVILS.BAS-@y ORG 1536; ***************************; * DUMPMATE M-L UTILITY *; * used to process screen *; * memory for pr }inting *; * with the Okimate 10 *; * printer and the Dumpmate*; * BASIC program *; * revision of 9/23/8 }5 *; * by Arthur F. Horan *; ***************************;;;Equates:ROWCRS = 84; Y-coordinateCOLCRS = 85; x- }coordinatePRINT = 203; pointer to PRINT$PBL = 205; stores processed screen data - low bytePBH = 206; screen d }ata - hi byteSAVMSC = 88; start of screen memorySHIFT = 207; shift factorLAST = 216; flag for column 0SCREENAD = } 212;pointer to screen byteNOLFT = 214;flag for sh. directionOFFSET = 215; for current line dumpCIOV = 58454; vec }tor to CIO;Program starts here CLD PLA ;discard # arguments PLA ;pull hi-byte of PRYNT$ STA PRIN }T+1 ;and save PLA ;now get lo-byte STA PRINT ;save it too;;Initialize variables LDA #0 STA OFFSET } STA SHIFT STA NOLFT STA LAST;;Check if column 0 LDA COLCRS+1 BNE GETOFF LDA COLCRS BNE GE }TOFF INC LAST ;yes, set flag;;Loop to get offsetGETOFF LDY #3DIV8 LSR COLCRS+1; (divide x-position ROR COLCRS ; }by 8 for offset into ROR OFFSET ;screen mem and save DEY ;remainder as offset; into lo-byte B }NE DIV8 ;of 7-bit pixel array;;Now right-justify remainder LDY #5JUST LSR OFFSET DEY BNE JUST;;Initialize } shift factor according to;bit-offset of cursor position in;screenINSH LDA OFFSET BNE OF1 LDA #1 STA SHIFT } STA NOLFT BNE PROCESSOF1 LDA OFFSET STA SHIFT DEC SHIFT;; Now process screen bytes;PROCESS LDA SAVM }SC ;set up pointer CLC ADC COLCRS STA SCREENAD LDA SAVMSC+1 ADC #0 STA SCREENAD+1;;Loop throu }gh a vertical "STRIPE" of;screen & process it for printingGBYTE LDY #0 LDA (SCREENAD),Y STA PBL ;get pic-byte lo } INY; LDA (SCREENAD),Y STA PBH ;& pic-byte hi LDA NOLFT ;shift right? BEQ SH2 ;no, so skip ahead } LSR PBL ;shift right one bit LDA PBL CLC ;force branch BCC FILBUF;SH2 LDY SHIFT ;shift 7-bit field; } left according BEQ NOSH ;to calculated factor;DOSHL ASL PBH ;shift hi-byte ROL PBL ;and rotate lo-b }yte DEY BNE DOSHL ;NOSH LDA PBL AND #127 ;mask out bit 7;;Fill buffer string with;processed byteFILBUF N }OP ;padding to allow; later NOP ;modification for; reverse printing LDY ROWCRS } LDX LAST BEQ FILL ;handle last stripe? LSR A LSR A ;yes, so shiftFILL STA (PRINT),Y ;fill PRINT$ } LDA #40 ;set pointer to next CLC ADC SCREENAD ;screen row STA SCREENAD LDA #0 ADC SCREENAD+1 S }TA SCREENAD+1 INY STY ROWCRS CPY #192 ;done? BNE GBYTE ;no, go back. DEC ROWCRS RTS ;That's it! }A SCREENAD+1 INY STY ROWCRS CPY #192 ;done? BNE GBYTE ;no, go back. DEC ROWCRS RTS ;That's it! 12FILEPRYNTAMDIDEVCHMDNDMDCAUND}@ @ @ B@d""*********************}*******n""* *x""* DUMPMATE *""* by Arthur F. Horan *""* A Gr}aphics 8 Dump *""* for the Okimate 10 *""* 9/23/85 *""* *""}****************************g +g;@,;A,;@,;@,;@ ,;@,;@,;}@,6,($Please wait while program READS DATA6 A A6.MDNRL6.001&6-@26-A6.0103071}5Q6-F:A,.-@@@D"A:7<%@,,G'Q A@ %6-+%@,'@% A }ԠŪ.@.@@P:> AP67@,./67A,.>67}@,.:: @>:@',>:@f,>:@',>:@7,", -A6@,-,6-?:A}6  - }F:A,0-@A4 > A hΠժrx0@@ 70@@ }I@x()}|YY(PŠƮ } 11(( a screen dump program YY(P for the Okimate 10 printer }XX(P } YY(Pպ* ("-@8+F:@},,*(11(( ͮ SET MARGIN [= ] 11(( Į DISK DIRECTORY 11(( } DRIVE NUMBER [ ] 11(( Ү REVERSE ON/OFF [ ] 11(( ̮ LOAD PICTURE FILE } * ("-@8+F:@,,*(k-@)@#(7@,5-@0@:(L-@)@}X"a(OFFk A  (ON -@11((W0((}B@@T-@@!W$&ՠΪ0(YOUR SELECTION}:" A`4" ApD/-@@"47<,%'/ AN X A`b$lΠ}Ъv A` A`9/AAApAA`9 A@' Ap6-}G(((WHAT FILE DO YOU WISH TO LOADG(Cassette users answer 'C:'&4C:6-A(& A@4A }dB:,!@d+7@<@,4D*7@<@,4:,)7@<@,4D:A@J 6.$67@<@},.D1:0@J67@<@,.=:,67@,./ AP@/@@l( (} Will now be loaded4(and displayed.7(Y(When you are ready to print,l(Press .K (Or to return to the m}enu3(Press .G-@AK  +@$ M")0@@@C0@@}M A70@70@@ cAP@*ARF:@,?ASF:@},QAVcAW@0*56-?:C:hLV,,5MACHINE LANGUAGE SCREEN LOAD4@>,F:B2y,"}@"+, A H F:B2y,@A0R AP PRINT SUBROUTINE\ A0f F:A,"A6}A0p APz٪@6.D1:*.*@667@<@,.=:,@ AP+@}+@@ A `@ |@  A 0F:A,"A6}($( -F:A,$""Š̠ͭԠś #A096-#-A6A'"-}56-%9 EB1(}ҠΠӮB( CHECK TYPINGE$216,104,104,133,204,1041}33,203,169,0,133,215133,207,133,214,133,216$165,86,208,6,165,85.208,2,230,216,160,3870,86,102,85,102,215}B136,208,247,160,5,70L215,136,208,251,165,215V208,8,169,1,133,207`133,214,208,6,165,215j133,207,198,}207,165,88t24,101,85,133,212,165~89,105,0,133,213,1600,177,212,133,205,200177,212,133,206,165,214}240,7,70,205,165,20524,144,15,164,207,2407,6,206,38,205,136208,249,165,205,41,127234,234,164,84,166,2}16240,2,74,74,145,203169,40,24,101,212,133212,169,0,101,213,133213,200,132,84,192,192208,187,19}8,84,96* 149 BYTESԠӪcN(FMARGIN IS SET IN SIXTIETHS OF AN INCH.CHOOSE ANY NUMBER FROM 1 TO 2}88.X Ac6.001(.6-P:,. @)!AA 2$ @!67@,.=:,$$<$ A!6}7@,.=:,$$F67@,.=:,$P##ŠŠҪZ.(DRIVE NUMBER IS NOW .( CHANGE TO d}) Ap) @)!Apn 6- $x]"6-@6( PRINTING IS ONHAP@sZ}AQA']$R6-+( PRINTING IS OFF=APA4OAQA4R$SSBytes at 1650 and 1}651 (115th and 116th bytes) are NOPs for reverse printing.D:DUMPMATE.BASAQA4R$SSBytes at 1650 and 1Q/)d (c)1983 Action Computer Services  B JKIHiDiELV`L=/} =/ BLV`mL//l L/ &` Fj`8冨凪` /EӅӥ} /`ʆǪƩ Ɛee` /ƦʆǢ &Ɛeǐ 0 0L/ /'&&&8儨児}祂*L/&&*ń8&&L/ [0`hihiHHȱȱL/c !#3`}L/JJJJ`H /h`Hȩh r/L0 {/L0 %/L0 -/L0 3/H8}`HhHh _1L0 BHI V䅠L0 L1 =/L0Ԇ ؠPIPP`} 1P -/L0 1L1 1L1 2L1H- 18塪墨hL2 2L1 &2L1 1ȹP`}텠8堨塪 1芨Oȩ-`PP 1P棩 Ѥģ0-ģ6000:,80H }& &ehe&eģ0ʥ 8堅塅`$ 1&*i0:0i 1Ʀ`¢ 护}°ڱ%ȱ%E 1L`3担CS R1L`3I 2L`3H 3L`3 1L`3 &B V 0NLMȑ}` MLN%B VL0S:4E:4H L1 4 4 1 L1h)0I44L1[\ZUVT` @444}` G4L1 :4L1 @4L1) ` G4L1 &0`2)2ҩ`ȱ`}`HhƣĢ`ƥĤ`(88(888(888(8}8(888(8f~~f$~~$B~~Bf~w~f$~w~$B~w~B45$<<$<$<<<$<$<<$$$<<$$<<<$<$$<<$<D}Dc[[c"[["A[[c5000 000000000 }0 00 03?3?3UT *)%)*PThXh???}kjjjjj *00T3 <<00??<5       (7  }         (E7    x7 "7  77hY iHHY}xYL6c Y!YYYLYJYYYYHYYYYYYYYYYY}7YYY(Y4d0*d 8`Hh Z8L7 BHI L88͢8}L8 m87e7i87i8L8`L888͟8LU9888878 ͠8LO9887 878888}7i78L8` LZ9V9V9L98V9V98V999͢8L97 88L{9 8`L997m97 8 8`L997m}97 8 8`L99998988 mZ8*(m[88qq7e7e8`L::::8:88M8L}?;8̈́8LU:8888La:88888IFL:8 mZ8*(m[88qq7e7eC8 mZ8*(m[8 }8qq7e7eD8888888::͎8L?;S8 mZ8*(m[88qq7e7e }88L:8M8LT>8ͅ8Ld;8888Lp;88888IIL=8 mZ8*(m[88qq7e7eH }8 mZ8*(m[88qq7e7eG8i8 mZ8*(m[8qq7e7e888 }8 mZ8*(m[8qq7e7e88IFL<8 mZ8*(m[88qq7e7eQ }8IFL<8 mZ8*(m[88qq7e7eP8i8 mZ8*(m[8qq7e7e}8888 mZ8*(m[8qq7e7e88IFL=8 mZ8*(m[88qq7e7}eN8IFL=8 mZ8*(m[88qq7e7eO8888888>>͎8LT>8 mZ8}*(m[88qq7e7e88L>8888`  Lj> 0a>b>7a>7e>78d>u8c>t8878j8}a>k8b>L>8a>h8b>i88 /8L>8`L> 0>8L?7m87i>L?8IL?}7m87i>i8i7e7i>i8i7e7i>i8i7e7i>>7m}8t8e7u8i788??͌8L@8>8m87e7i>im87e7i8L?}8͌8LU@>m87e7i7m87i8L@`LZ@V@V@7V@7V@7V@7V@ 8V@78V@70V@78}V@7 V@8V@7)V@8V@8)V@8V@7 [0V@8V@8 [0V@ 8`L@47L E7L E8 m}Z8*(m[8 8qq7e7e8 8i8 mZ8*(m[8qq7e7e88ILB}8 mZ8*(m[8 8qq7e7e 8i8 mZ8*(m[8qq7e7ex8y8} 8 W9Vm88ELB8 ́8LB7m87i@8i7e7i@@M 8LB@M8LBb8 8}8 9 8i8 98i8L)B8@8Ji 9{8dz8<8<888́8LBP8V88LB8I`}L E8́8LC7m87i@8i7e7i@@M 8LC@M8LCb8 88 9 8i}8 98@ 988i8L C@L+Db87m@7i@i7e7i 97m@7i}8'񮅠@i7e7i 9L Eb87m@7i@i7e7i 97m@7i}i@i7e7i 97m@7i8&񮅠@i7e7i 97m@7i8&񮅬}i@i7e7i 98IcL_Eb8 88 98 9 8i8 98`LfE`E`E8LH}`E8LH`E%8`E*8`E/8`E488`E988`E 8 mZ8*(m[8`E8qq7e7e8 }`E8i8`E 8 mZ8*(m[8qq7e7e8B͚8LNF8VB͛8LjF8VLjF`E%8`E!} 8i mZ8*(m[8`E8qq7e7e8`E8i`E 8i mZ8*(m[8qq"}7e7e8B͚8LG8VB͛8L*G8VL*G`E*88`E8`E 8 mZ8*(m[8qq7e7e#}8B͚8LG8VLG`E/8`E8i`E 8 mZ8*(m[8qq7e7e8B͚8LG8V$}LG`E48`EILH8 mZ8*(m[8 8qq7e7e8 8i8 mZ8*(m[8qq7%}e7e8͚8LH͛8LH8`E7LHܮ`E7ܮ`E7LH`E7`E78 `E7LH`E%8`E*8&}`E/8`E48`E70 Ю`E7LI`E/8`E48`E 8L@I`E%8IL@I`E7`E 8`E98`E 8ILnI`E*8ILnI`'}E7`E 8`E98`E 8ILI`E/8ILI`E7`E 8`E98`E 8ILI`E48ILI`E7`E 8`E98`E 8LI`E(}%8LI8`E78`E7`E 8ILJ`E*8LJ`E7m8`E7`E 8IL@J`E/8L@J8`E78`E7`E 8ILhJ`E48L)}hJ`E7m8`E7`LrJiJlJiJ7kJiJ7mJiJ7nJiJ W@iJ8LXLiJ8LXLz8 {8LJ7iJ7LJ7i8*}iJ7ŮLJiJ 8LKiJ77LK870iJ7LKiJ 8LK7iJ7LFK7i8iJ7ŮLFKiJ 8LKiJ77+}LtK870iJ7LtKiJ 8LK 4jJjJiJ 8kJLKiJ 8ILKlJLLkJILKiJ 8LKlJLLkJILKi,}J 8ILKlJLLkJILKiJ 8ILKlJLLlJlJIL!L 4jJjJiJ 8lJLKiJ7MnJLXLiJ7MmJLXL 4-}jJjJiJ 8iJ cE`LcL_L W@77ILMM8LL77)88LL$877)88LL$.}88LM77)88LL$877)88LM$8 cE8IL,M_LIL,M @`L1M8-M-MLyM/}7m-M7iѮLsM7m-M7i8-ML9M`LM 40 477 4LM M R17i7iB0}8́8LM7m87i8LM8(́8L2N8 mZ8*(m[8(8 &08LM8 ́81}L]N8 &0878L7N8́8LN8 &0878LbN`LNj 48 88 &0b8c88j M2}8c8b8 5g8f8f8g8L7Ob8ic8imf8mg87mf87mg8 4f8Юg8LN3}X 477`LLO>/oР8́8LO7m87i8L`O8i8i &0h8i8h8ij4}8i8ik8j8il8k8im8l8in8m8io8n8ip8o8iq8p8ir8q8is8^8_8m8l8 m^8*(m_8o8ȑ5}n8 m^8*(m_8q8ȑp8 m^8*(m_8s8ȑr877 &0i 7i7i6} &0i7i7i &0i7i7i &0ii8h7}8 4`L4Q! :4LGQPAUSEDQ@ R18́8LyQ7m87i8LSQL~Q! :4LQ Q R1`8}LQ8́8LR8͂8LR8 mZ8*(m[88qq7e7eQQIN QIPLRQL5RQIO QI9}QL5R8QQQICLERQLXRQIDLXR8QQQISLhRQL{RQITL{R8QQ8'88 mZ8*(m[8q:}q7e7eQ8LQ8LQ`LRF88C7m8D7i88(LS8iC7eD7i88iC7e;}D7i88iC7eD7i888 988 :8i8C7m8D7i8LRI88v7m8w7i<}88(L4T8iv7ew7i88iv7ew7i88iv7ew7i888 988 :8i8=}v7m8w7i8LSE8 9b88́8LzT8 9 8 :8 98 :8LJT 9  : 9  :>} 9 9 9U88́8LU7m87i88i7e7i888 98i8LTT88?}8L}U7m87i88i7e7i8S888 9T88i8 98i8LU Q8 ́8LU@} 487i7i8 &0ig8f8f8 g8LUf8g8LU8LU8 ́8LeV7m87iA}88i7e7i8Vm8888 9Wm888i8 98i8LU8́8LV7m87i8B}8i7e7i8`888 9a88i8 98i8LjVg8(f8f8g8LW7mf87mg88C}f8ig8i7e7e88L{W8L{W7mf87mg8f8ig8i7e7e‘v8w8f8g8LD}V`LW888888́8LW7m87i8LW}8|88j 4 ~4 ~4 ~40 4E}777i 7i7i 7i 4X 477 8 :4L_XӠXY Y1 :4LyXŠXtF} Y1 :4LX pressŠorX F1LX Ԡto٠X Y1 1LX by Ken MillerX R1 48́8LYG}88 ԭ88 ILY8LX888ILX887 4 8 N IO`L^Y 4w8v8y8x88́8H}LY|87`878LrY|77877 4 R888YÝ8LYm87e7iR8LYI}k8j8 4 ~4  ~4 ~4 ~4 ~4$888́8LsZ8L88>88B88G88Q88L;ZJ}LZ 1Q87LZ78888e7e7iR7LZ8ͣ8LZ7787i7iK}!888L[7i7iͥ8LV[7i7i m87i7i‘888Lk[7i7iL}ͦ8L[7i7i m87i7ib888L[7i7iv8Mx8 w8My8L8\8|8|8}8}8|8M} }8|8}8L \}8 |88i8ͱ8L#\88Ͳ8L5\8 [Yx8IK y8ILk\c8  9d8  98N}^~8~88L\8~8~888~8I 8IL\b8  9  9 .M8L\8ͧ8L_8IL\8L\N8$8O}L\F8L\F88 8L ]8B8L]8B8z8{8 ͨ8L]8>8L]P8>88>8IPLp]88a]a]ͮ8Lm]P} 98LV]8ͭ8L]8L_F88]B8L_8>8L_k8j8 488́8L]|87`878L] 4g8f8Q}f8g8L^K8U8JJJK8L0^K8U8iU8U8L^U8P8P8L0^P85P85k8j8 g>778R} >7i7iP8 7i7i8́8L^8L^f8g8L]7i7i7i7iK8S}U8k8j8 4$8|7785$85k8j8 g>778 >g8f8@f8g8LN_f8g8L4_88T}e7e7i8888L_ W [Y8z8{8L_8z8z8{8{88́8L_7m87iU} &0i8L_Laͨ8La8888888́8LM`7m87i &0i8L`V}ͩ8La877 &0i 7i7i &0i7i7i &W}0i7i7i &0i8́8Lc8>8L~a8 oJ8 m^8*(m_85X}8 85 g>87878 >Lc88>88>88G88>8Lc8Q88G8Lb8G88Q88QY}8La8Q88L88L8La8L878}L87i88 m^8*(m_8ȱ585 g>8Z}7878 >7i7i8L87i7iLc8>8Lc8>8Lc7i7i7i[}7i8G88Q88 m^8*(m_8ȱ 48 8|87`878 oJ8 m^8*(m_8\}58 85 g>87878 >8>88L a `L5$85k8j8 g>778 >]}8͝8Lc8g8f8|8c}8ccf8cg8Lcf8g8LcILsZ WL^Y`Ld7 4j8 W [Y`` d >vX X*SAVE#D3:RAMBUG.M65X*X*ASM,#-,#D3:RAMBUG.COM(ARAMBUG II,By Mat*RatA2P<FFEKPX* = (lister code)_}ZCIOV;;CALL OS HEREdICCOMB;;COMMAND TO CIOnICBADRD;;BUFFER OR FNAMExICBLENH;;BUFFER LENGTHICAUX1`}J;;AUX BYTE #1ICAUX2K;;AUX BYTE #2X;COPN;;COMMAND OPENCCLOSE ;;COMMAND CLOSECGBINR;;GET BINARa}Y RECCPBINR ;;PUT BINARY RECCDRAW;;COMMAND DRAWTOCFILL;;COMMAND FILLX*OPIN;;OPEN FOR INPUTOb}POUT;;OPEN FOR OUTPUT XCORDU YCORDTDRAWCOLOR ATRACTM"VVBLKD$;;Def VBI vector, VDSLST;;Sc}creen Dlist Inr6CASINI;;RESET HOOK@ DOSINI JBOOT ;;RESET CONTROLTCOLDSTD;;RESET KEY FLAG^"WATTAGE;d};2000 WATTS A GAMEhNMIEN;;Ena DLI hererWSYNC ;;DLI Sync hdw loc|!VCOUNT ;;display sync hereSDMCTL/;;e}PM ControlsSDLSTL0STICK0x;;JoystickSTRIG0COLOR0;;PF colorsCOLOR1COLOR2COLORf}3COLOR4PCOLR0;;Player ColorsCOLPF0;;Hdw color regCOLPF1COLPF2COLPF3 CHg}BASCH;;Cset Pointer&HPOSP0;;Players X-ctl0HPOSM0;;Missile X-ctl: SIZEM DSIZEP0N P0PFq}@B%DOS SYSB*)DUP SYSBXSDEVILS BASBDUMPMATEAMAB-DUMPMATEBASBmMIDAS OBJB^RAMBUG M65B$RAMBUGIIOBJBAVBI1 BASB[VBI2 BASBuVBI3 BASX P1PFbM0PL;;Read colsn herelGRACTLvGPRIORo;;PL/PF PRIORITYHITCLR;;Collision RegCONSr}OL;;Start? HereAUDF1;;AudioAUDF2;;Control Regs AUDF3Ҳ AUDF4Ҽ AUDC1 AUDC2 AUDs}C3 AUDC4AUDCTL SKCTLRANDOM ;;Random RegPMBAS;;PM pointer SIOINVe;;Init soundt}SAVMSCX;;Gr Mode NORTH;;Joystick*SOUTH;;direction4WEST;;control bits> EASTHJIFFY;;VBI TIMERRu}GLFLIM0;;Grid Left Limit\GRSGL;;Grid Rite Limit 1fGRDBL;;Grid Rite Limit 2pGRQUD;;Grid Rite Limit 4z#v}FARLFT%;;Left Screen PL limit"FARITE;;Right Screen PL lim MIDDLrBTOP<;;playfiledBBOT;;limitsMBw}IG;;big missiles=easy MMEDU MSML START SELECT OPTIONX; P/M POINTERSSOUND;;Sound Poix}nter ZAGSOUND;;VBI Dela Bolt!BFLAGZAG;;L-BOLT On Flag"SPTRBFLAG;;Source PointerDPTRSPTR;;Desy}t Pointer$POWERDPTR;;Power Level."PPTRPOWER;;Player Pointer8 BUGCNTPPTR;;Bugs KilledB$TBUGSBUGCNTz};;Current # BugsL!XCNTTBUGS;;Vec WorkspaceVYCNTXCNT`!XVECYCNT;;Actual VectorsjYVECXVECtXPOS{}YVEC;;Xpos of Bugs~YPOSXPOS;;Ypos of Bugs OYPOSYPOS;;Old Bug Locs$MINSPOYPOS;;Difficulty Ctrl|}SPEEDOMINSP"BONUSSPEEDO;;# of bonuses$DSABLBONUS;;Bug Start Delay$PMFLGDSABL;;PM VBI Work Flg}}LEVELPMFLG;;Game Level ZAGDELLEVEL;;Grid delay!XGRIDZAGDEL;;Grid X Posn"TMPAXGRID;;keep regs h~}ereTMPXTMPATMPYTMPX#BLDELTMPY;;Blast Sound Del "ZBDELBLDEL;;zagbolt delay$VWRKZBDEL;};VBI PGZR0 WORKSPKBUGSVWRK;;killed bugs(%FLASHKBUGS;;killing routine.2KILLERFLASH<X* this roundFX}* Vectors:PX* Xvec values 1-7Z"X* Msbit clear move left->rightdX* Msbit set move r->lnX* Yvec values 1-7xX* Msbit cl}ear move upX* (decreasing y-values)X* Msbit set move dn!X* Invert dir bit for y if bug X* hits upper or lower limit}.X*X* Set Up P/M GraphicsX*PMAREA@;;PMs hereBOLTPMAREAPM0PMAREAPM1PM0PM2P}M1PM3PM2TBOLTBOLT@BBOLTBOLTDINDEXW;;Graphics Mode"BOTSCR;;Scroll lines,X* Next }define bugs6DEDBUGPMAREA@BUG1DEDBUG;;P/M BUGJBUG2BUG1;;definitionsT BUG3BUG2;;kept in c-set^}BUG4BUG3;;areah!GRIDBUG4;;grid char hererX* Custom Display List|DLST p=p=F TITLE =====} ====== A DLSTTITLE Ascore 00000 A A 00000ASTATS A:ASPOWR A ASWATS} A attowattsA A:ASBUGS A ROUND: ASLVL AAGAMESCR #CREDIT1 A Ǡ A#CRE}DIT2 A rat and miller A&"MATRAT A chief exterminatorsA0"SELCLV A SELECT difficulty A:!SSTRT A or } AD!SBEGN A BEGIN DEBUGGING AN"SNEWHI Awriting HI AXLVLTX A attoAb AfemtoA;;Wattagel A picoA;;p}refixesv A nanoA;;for levels AmicroA;;1-20 AmilliA AcentiA A deciA AplanoA A dekaA AhectoA }A kiloA A megaA A gigaA A teraA AdannoA AjimboA AnafieA  AdavieA AmattoA  ArattoA*X* Pla}yer Colors4PCLRS N===>PFCLRS B==4=HX* BUG & GRID SCREEN BYTESRGRIDAT =&==\BUGTBL =!==}fX* BUG DEFINITIONSpBUGS =Q=J=*;;DEDBUGz ,==<= ==q=:;;BUG1 ==p= ===y;;BUG2} ==p= ===;;BUG3 0==&=A ===;;BUG4 0=='=X* GRID Right X-Coord LimitX* adjus}table according toX* missile sizes, gameX* difficulty. GRTLIM  GAMDIF ;; 0, 1, or 2 DIF0 A Š} A DIF1 A Ϡ A$ DIF2 A ҠǠ A. X* Lightning Bolt zapping bug8 X* sound data.B ZS}OUND ===L  ===V   = == `  = == j  = == t  = == ~  $= ==  *= ==  }0= ==  6= ==  <= ==  B= ==  H= ==  N= ==  T= ==  Z===  `=}==  f===  l===  r===  x=== NSOUND === DLST1 p=p=G( SHOW2  ==}====<  =p====F  =====p=P  AZ DLST1d SHOW A A.N.A.L.O.G. An  A computi}ng Ax  A A  A 砠 A / A By Mat*Rat - with Dave M.I.C.E. Miller A  Athe best }bug killer A #NAMESTR A A ALHI AHIGHEST SCORE: A !ALKIL Abugs blasted : A !ALPWR AS}URPLUS POWER: A / A Press [START] to NUKE some bugs! A FILE AD:RAMBHIA= X* MACRO Definitions GETIT }    ABAD GETITA   GET GGOOFHI" P , 6 PUTIT @  J  ABAD PUTITAT ^ % h  PUTr GNOPUT}|  "X* DINC - Double Byte Increment "X* DINC - Double Byte Increment DINC    ABad DINC Call.A  # } H@LINC #  @LINC  X* "X* DDEC - Double Byte Decrement DDEC     ABad DDEC Call.A& 0 " : }Q D R>N H@DECX " b @DECl v X* Setup for storing string X* to screen RAM. SLSTR  ;OR %0<1 } ASLSTR MACRO ERRA  Q>4  %>5    $>    SLINGSTRING  SPEED     ASpeed ERRA  } %> * 'MINSP4 %> > 'SPEEDOH %> R 'BUGVAL\ f X* GET SHOW DISPLAYp >D3:SHOW.M65z #X* Update POWER an}d BUGS fields. $X* POWER - value 0-999 sssssWATTS X* two byte value. X* BUGS - value 0-200 single X* byte value. Run}ning total $X* of all the bugs you've zapped. PWRBUGQ>4SPOWR PSPTR;;POINT Q>5SPOWR;;TO PSPTR;;POWER FIELD }QPOWER;;TOTAL POWER $POWER  PNUM;;Print number Q>4SBUGSPSPTR;;Update bug cnt Q>5SBUGS PSPTR$ QBUG}CNT.$>;;1 Byte value8 PNUMB:L"X* MAKBUG - Make a new bug. SetV!X* random vector and direction`X* Fix X according} to X-Dirj"X* Fix Y random between TBOLT+7tX* and BBOLT-14~"X* Set DSABL start according to#X* current LEVEL with rando}m 0-3X* delay variation#X* Entry: X-Reg=Bug #0-3 to make$X* Exit : Bug Vec & Posn RAM regsX* set. X,Y preserved.}MAKBUG&MAKX;;Save temp 'MAKY Q>4PM0PCLRBUG Q>5PM0PCLRBUG(> FDOCLB NXPM#CLRBUG0 H}NXPM($MAKX;;Restore X-reg2 DOCLB%><Q>FCLRBUGPPM08P1Z ICLRBUGdQRANDOM;;50/50 chancenW?;;x-directionx} W?;;selectM>;;dir bit onlyPXVEC9;;saveQRANDOM;;move 1-7 each timeM> HKPXVQ>;;min=1KPXVPXCNT9;};Iniz counter LXVEC9 PXVEC9M>;;set init x-posHATRITE;;by dir flagATLFTQ>FARLFT;;Far LeftHKPXC;;keep x}-coordATRITEQ>FARITEKPXCPXPOS9;;new xposQRANDOM;;set Yvec"W?,W?6M>;;50/50 chance@PYVEC9;;either dirJ}QRANDOM;;Yvec=0-15TM>^PYCNT9;;iniz cnthLYVEC9;;dir & amountrPYVEC9;;new vector|QRANDOM;;iniz y-coordR>}BTOP;;< TBLOT+7 ?ECKMAX;;no, check maxQ>BTOP;;yes, min thenHSAVY;;save itCKMAXR>BBOTDSAVY;;no, }keep it Q>BBOTSAVYPYPOS9Q>;;do delay ,;;starterSLEVEL;;delay 1-10 VBI's T?;;*16 T?;;.25 T?;;TO}T?;;5 SECONDSKPDSPDSABL9;;start dela& QRANDOM0M>;;+ rnd 0-15: LDSABL9D PDSABL9N %MAKYX:;;done new bug!b }MAKX l MAKY vX* PNUM - Print DEC # inX* A(LO),X(HI) Regs toX* screen pointed to byX* SPTR. Converts digits t}oX* MAC/65 .SBYTE format.X* Stores directly to screenX* RAM area.PNUMPLODEC&HIDEC;;Work num here%>;;IN}IZ TBL INX 'SUPRESNXTDIG$>;;INIZ DIG COUNT SUBEMQLODEC;;FETCH LSBY BIN;;;SUBTRACT LSBY SSUBTBL8  PLODEC}QHIDEC;;FETCH MSBY 3;;SUB MSBY* SSUBTBL84DADBACK;;IF RESULT NEG>X* RESTORE LSBYTEHPHIDEC;;OTHERWISE,RX* STOR}E MSBYTE OF RESULT\2;; NEXT DIGIT,f1;;POINT TO LSBYp!SUBEM;; AND GO AGAINz X* RESTORE LSBYTE VALE IF SUB#X* RESULTE}D NEG VALUE, THE PRINTX* DIGIT COUNTADBACK1;;POINT TO LSBYQLODEC;;GET LSBYTEOSUBTBL8;;AND ADD LSBY PLODEC}A;;PUT DIGIT IN AFSUPCK;;Supress?#SUPRES;;Reset Sup FlagSUPCK$SUPRES;;Still Sup?X* Leading zeros? HKEEP}Q>;;Blank FKEEP1KEEPL>;;>SBYTE KEEP1$>$ P@SPTR6.DINC SPTR8 NXDEC3B3L)>;;END OF TABLE?VDNXT}DIG;;NO, CNTNU WITH`X* NEXT DIGITjQLODEC;;YES, GET 1'StL>;;CONVERT TO sbyt~$> P@SPTR6:#X* DECIMAL OUT RO}UTINE WORKSPACESUBTBL ';;10000 ;;1000 d;;100  ;;10 LODEC  HIDEC SUPRES ;;SPRESS LEAD 0s}PMSETUPQ>;;turn on PMs PGRACTLQ>!  PGPRIORX;multi colorX;pl/pf priorities(Q>>;;dma ena2 PSDMCTL<$>};;do playerFCLOOPQPCLRS9P PPCOLR09Z0;;color defsd ICLOOPn$>xQ>SZPLPSIZEP090 ISZPLQ>5PMAREA;};PM RAM pointer PPMBASQ>?CLPMPBOLT8;;missle bolt PPM08PPM18;;Clear PM area PPM28 PPM383 HC}LPMQ>MIDDL;;middle screen PXGRID" XBOLT;;do it,Q>6PTBOLT;;top &@ PTBOLTJPBBOLT;;bottom of liteT PB}BOLT^Q>;;REG MISSLESh PSIZEMr :;;done|"X* Play sound - if any routine. BLAST%BLDEL;;time to blast?FBOOM;;y}upidy "BLDEL:BOOMQ@SOUND7FUNBOOM;;no sound?PAUDF1;;got some INCSND;;do it Q@SOUND7 PAUDC1 IN}CSND;;update sound Q@SOUND7PAUDF2;;pointer INCSND Q@SOUND7 PAUDC2& INCSND0Q>: PBLDELD:;;back to V}BINUNBOOMQ>;;sound regsXPAUDF1;;1 & 2 offbPAUDC1;;at end oflPAUDF2;;blastv PAUDC2:X* Update SOUND addre}ssX* pointer for BLASTINCSNDDINC SOUND:X* Killed a bug, updateX* his TIMELY demise!KILLBUGQ>;;flash}PFLASH;;screen QLEVELM>?;;graba deadbug QBUGTBL8 PTMPBGG %KBUGS;;bugs this levelQ>;;20 levels }KILLB1;;;10 bugs/lvl*S>;;showa dead4 1;;bug>HKILLB1;;on gridH%LEVEL;;Offset toR 1;;proper\'TMPAD;;columnf,p} OTMPADz? QTMPBGGPGAMESCR8;;RAID: TMPBGG  TMPAD X* DLI - lower intensityX* of background on lowe}rX* portion of screen, powerX* grid area.DODLI5;;Save regsA5$>LOINTENQCOLOR09M>;;strip inten}DLIMSKL>;;set realow$PCOLPF09;;Stuff into hdw.08 ILOINTENB7L>V7`9jX* VBI handler for Lightningt#X* bolt} control, bug processing,~X* and most other updatesVBIPTMPA;;save regs &TMPX 'TMPY6;;save statusQPMFLG;;P}Ms on?HPLAY;;yes-play on$>;;no-resetQ>;;bug positionsNOPMPHPOSP090 INOPM!DOMOVS;;finish upPL}AY$>;;do disable delays DOPDISQDSABL9;;vbi timedFNODOPD;;delays "DSABL9( NODOPD02 IDOPDIS<QFLASH;;flash k}illingFFNOKLEM;;bug?P "FLASHZQCOLOR4;;red?dHGOBLK;;or blacknQ>0x HNOKLEM GOBLKQ>NOKLEMPCOLOR4;;new }colorDOMOVSQBFLAG;;fire!?HSHOOT;;yes - do lbolt PZBDEL;;no,ena for next timeQTBOLT;;unzagged yet?FDOSN}DS;;yes-do sounds UNZAGB;;no-clear !DOSNDS SHOOT, QPOWER HSHOOT1 QPOWER HSHOOT1 !DOSNDS#SHOOT1}DDEC POWER;;less power"QPOWER;;<0?, IMZAPON6Q>;;empty@ PPOWERJ PPOWERT PBFLAG^MZAPON ZAGBOLThD}OSNDS BLAST;;boom if anyr ZAGRID;;do power grid|Q> PATRACT QTMPA $TMPX %TMPY8 !@XITVBI:X* Move a} bug and changeX* bug pointers forX* animation purposes.X* Entry: X Reg=Player #X* Exit: All Regs PreservedX*}MOVBUG&MTPX'MTPY;;TemporaryPMTPA;;storageQXPOS9;;before move&PHPOSP09;;mov x-dir0Q>5PM0;;get ram ptr:}PCLG;;source pointerD Q>4PM0N PCLGX(>;;first player?bFGOTSC;;yes-no offsetlINCSC#CLG;;next pagev0;};according to pl# HINCSC $MTPXGOTSCQOYPOS9;;clear out?;;old player pos QCLG PCLGG QCLG PCL}GG$>Q> CLGPPM0830ICLG $MTPX;;restore pl#QRANDOM;;bzzzzz  PAUDF3*Q>;;ctl/vol4 PAUDC3}>QXVEC9;;pikabugHGBG34;;do 3 or 4RQRANDOM;;no-1 or 2\U?;;50/50 chancefDDBG1;;do 1pDBG2Q>4BUG2;;do 2z %>5B}UG2!VBUGY;;use itDBG1Q>4BUG1;;do 1 %>5BUG1 !VBUGYBG34QRANDOM;;50/50 chance U?;;3 or 4DDBG4;;do 4}DBG3Q>4BUG3;;do 3 %>5BUG3 !VBUGYDBG4Q>4BUG4;;4 please %>5BUG4VBUGYPDOMOV;;put in'DOMOV;;progra}m code!QYPOS9;;new y-pos?$$>.DOMOVQBUG198CLGGPPM08B3L2V(>` HDOMOVj$MTPX;;restore pl#tQYPOS}9;;new old 'Y'~ POYPOS9 QMTPA %MTPY:MTPX ;;move tempMTPY ;;storage here MTPA X* NXBPOS - next }bug posn.X* caller must check xposX* (disabled if 0), before"X* calling NXBPOS. NXBPOS will!X* check & update disa}bl flag. X* If zero, will fly the bug. X* Use & update vector cntrs.  X* Restore them if both cntrsX* at zero. Flip }y dir bitX* if bug hits upper/lower(X* limit of pf.2X* Entry: X=Pl # to move<X*FNXBPOSQDSABL9;;Disabled?PFNXB}0;;no-fly!Z:dNXB0QXCNT9;;x-cnt set?nFNXB1;;no-do y vecx"XCNT9;;yes-updateQXVEC9;;and moveGNXB0A;;move r->}l?#XPOS9;;no l->r!QXPOS9;;limit? R>FARITE HNXB1;;noNXB0BQ>;;yes-missedPXPOS9;;turn it off"TBUGS;;}1 less bugQLIVES;;Still Alive?FNXB2;;dead-forget it "LIVES!NXB2;;this roundNXB0A"XPOS9;;r->lQXPOS9;;l}imit? R>FARLFT"FNXB0B;;lost him,NXB1QYCNT9;;y pos upd.6FNXB3;;zero-no upd.@ "YCNT9JQYVEC9;;dir?TGNXB4;;m}ov dn?^"YPOS9;;no-uphQYPOS9;;limit?r R>BTOP| HNXB3QYVEC9;;flip dir L>;;bit PYVEC9!NXB3;;wrapupNX}B4#YPOS9;;move dn QYPOS9R>BBOT;;limit?HNXB3;;no-go!QYVEC9;;yes-flip dir M>;;bit PYVEC9NXB3 MOVBUG}, QYCNT9;;vector OXCNT9;;counters empty? HNXB5;;no-cntnu& QXVEC9;;yes-restore0 M>;;count values: PXCNT9D }QYVEC9N M>X PYCNT9b NXB5:l NXB2Q>;;lost bugv PHPOSP09;;just move off BITDUST DIEBUG :;;screen X* SL}INGSTRING - Sling a 20 X* byte SBYTE string out X* to game screen. X* Entry: A - Loadr of stext X* Y - Hiadr o}f stext X* X - Screen line # X* Exit: X=X+1, A & Y changed X* SLINGSTRING PSPTR;;Source!'SPTR;;point}er !Q>4GAMESCR;;compute!PDPTR;;screen !Q>5GAMESCR*!PDPTR;;pointer4! A;;line #>!?H! FSLINE1R!SLINE,;;20 bytes\}!Q>;;per linef! ODPTRp! PDPTRz! DSLINE0! #DPTR! SLINE01! HSLINE!%>;;display!SLINE1Q@SPTR7;;it! P@DPT}R7!3!)>! HSLINE1!2;;next line!:;;for next time!X*! X* SELDIF"X* select game difficulty"X* and start game"}X*$" SELDIF." NOGRID8"$SLSTR CREDIT1=;;show creditsB"SLSTR CREDIT2=;;andL"SLSTR MATRAT;;titlesV" SLSTR }SELCLV=;;& prompts`"SLSTR SSTRT=j"SLSTR SBEGNt"Q>;;hi inten now~"PDLIMSK"SLOOP FULLPWR;;lotsa"QGAM}DIF;;diff"HSL12;;level?"SLSTR DIF0=;;missile"Q>MBIG;;sizes" $>GRQUD"SPEED &==2"%>;;for xbolt" !S}LDF1"SL12R>;;level 1?" HSL02"SLSTR DIF1=# Q>MMED # $>GRDBL#SPEED !==K#%>(# !SLDF12#SL02SLST}R DIF2=<# Q>MSMLF# $>GRSGLP#SPEED =%=dZ#%>d#SLDF1PSIZEM;;Bolt sizen#&GRTLIM;;right limitx#'XMISL;;xm}ov cnt# Q>MIDDL# XBOLT;;set it#SELD1QCONSOL;;leggo#R># HSELD1#Q>;;reset#PBFLAG;;lbolt#SELD2QCONSOL}#R>START;;run?#FGOTDIF;;yup#R>SELECT;;no-sel?# FSELD2A# QSTRIG0$ FGOTDIF$ !SELD2$SELD2AQ>;;fire!"$ PBFL}AG,$ DIEBUG;;turn on sound6$ $GAMDIF@$2J$(>;;next levelT$ HSELD3^$$>h$SELD3&GAMDIFr$ !SLOOP|$GOTDIF MAKGRID}$Q>;;low intensity$PDLIMSK;;background$ :;;play$X*$ X* DIEBUG - set sound pointer$X* to zsound while not VBI}$X*$DIEBUGQJIFFY$HDIERJIFFY$ HHDIE$ Q>4ZSOUND$PSOUND;;die bug$ Q>5ZSOUND%PSOUND;;die!%:%X*&% X* S}TEAL - steal system reset0% X* vector:%STEALQDOSVECD%R>N% HDOSVECX%QDOSVECb%R>l% HDOSVECv% QDOSINI%PDO}SVEC%QDOSINI%PDOSVEC% !DOSKIP%DOSVEC %DOSKIPQ>4GAME% PCASINI% Q>5GAME%PCASINI%Q>% P}BOOT%Q>% PCOLDST&: &X*&X* FULLPWR - restore full &X* power for new game*&X*4&FULLPWRQ>4WATTAGE>& PPOWERH&Q}>5WATTAGER& PPOWER\&:f&X*p&X* SCORE=50*BUGCNT+5*POWERz&X* Compute & Display it &&X* do hi score too.&X*&SCORI}T SCLIN;;total& QBUGCNT&PSCORE;;bugs&Q>;;killed& PSCORE& PBFLAG& PHIFLG&X* be sure vbi lbolt control&X}* is off to avoid pnum&X* conflicts (vwrk)&BUGVAL$>1;;*50'SCORIT0QBUGCNT;;lazy!',;;multiply!' OSCORE$' PSCORE.}' DSCORIT18' #SCOREB' SCORIT10L' HSCORIT0V'$>;;power left`' SCORIT2,j' QPOWERt'OSCORE;;over~'PSCORE;;*5' QP}OWER' OSCORE' PSCORE'0' HSCORIT2'X* add bonus if any' $BONUS' FSNOBON' SBADD,'QBUGVAL;;Bonus'}OSCORE;;based on game'PSCORE;;level.( DSBADD0 ( #SCORE( SBADD00( HSBADD((SNOBONQ>4TITLE;;shoit2( PSPTR<}(Q>5TITLEF( PSPTRP( QSCOREZ( $SCOREd( PNUMn(X* new HI score?x( QSCORE( RHI( DNOHI( HNEWHI(QS}CORE;;if hi bytes=then(RHI;;check lobyte( DNOHI(NEWHIQSCORE(PHI( QSCORE( PHI(QHI( LHI( FNOHI})Q>)PDLIMSK) QJIFFY")DHJFRJIFFY,) FDHJF6) GETNAME@)SLSTR SNEWHI=J) PUTHIT)Q>^)PDLIMSKh) #HI}FLGr)X* Show HI score|)NOHIQ>4TITLE) PSPTR)Q>5TITLE) PSPTR)QHI) $HI) PNUM):) SCORE ) H}I ) HIFLG )X* Play the game boys!)GAME STEAL;;GIMME DOS)!HGAME SHOWALL;;HI SCORE DUDE* BEGIN;;do screen*Q}>* PBONUS&* PPMFLG0* PKBUGS:* PTBUGSD* PMSETUP;;enable pmsN*%NEWGAME PWRBUG;;show bug & powerX* Q>MIDDLb* PXGRID}l* XBOLTv* SIOINV*Q>* PAUDCTL*Q>* PSKCTL* MAKGRID*Q>* PLEVEL*Q>* PDELAYIT*Q>* PSCORE* P}SCORE* SCORIT;;show score+ QHIFLG + FNEWG1+Q>;;Gotta new hi-show + PXGRID*+ XBOLT4+ !HGAME>+NEWG1PBONUSH}+ PBONUSR+ PCOLOR4\+ PBUGCNTf+ SELDIF;;new gamep+Q>;;Live longz+PLIVES;;and prosper+GAMEGO DIEBUG;;Sound+%>};;Leggo console+CLEGOQ@SOUND7+ HCLEGO+ QCONSOL+R>+ HGAMEGO+ FULLPWR;;full power+ PWRBUG;;show it+ LFLI}N+ LIFER+Q>+ PPMFLG,SRND$>;;make new bugs,DOPLMK MAKBUG,0$, IDOPLMK.,BROUNDQ> ;;bugs this round8, PT}BUGSB,QDELAYIT;;speedL,RMINSP;;maxed out?V,FSAVDD;;yup`,;j,SSPEEDO;;faster!t, DFASTEST~, RMINSP, ESAVDEL,FAST}ESTQMINSP,SAVDELPDELAYIT, SAVDDQ>, PKBUGS,Q>,PPMFLG;;PMs on now,GAME0 PREFIX;;wattage,GAME1 PWRBUG;};power & bugs,PHITCLR;;No hits now,$>;;Make new bugs,%TBUGS;;if room-GMMAKQXPOS9 - FGMMAK0-1- GGMAK1(- GM}MAK002- IGMMAK<-$>F-GMAKQXPOS9P- HGMAK0Z- MAKBUGd-Q>n- PAUDF3x-1- GGMAK1- GMAK00- IGMAK- GMAK1Q>- P }MOVTRY-GAME1AQPOWER- HDOFIRE- QPOWER- HDOFIRE-!GAMEND;;NO POWER-DIE DUDE-DOFIREQSTRIG0-HGAME2;;nopidy }-Q>;;yuppidy. PBFLAG.#!GAME5;;Fire or move - not both. GAME2Q>".PBFLAG;;Reset electrodes,.GAME2AQ>WEST;;move }6.*STICK0;;electrodes?@. HGAME3J.QXGRID;;limit testT. R>GLFLIM^. FGAME4h. "XGRIDr. !GAME4|.GAME3Q>EAST. *STICK0 }.HGAME5;;no moves.QXGRID;;limit.RGRTLIM;;check. FGAME4. #XGRID.GAME4 XBOLT;;movit.GAME5%DELAYIT;;slow do }wn. QCONSOL. R>START. HGAME5A. NOBUGS. !NEWGAME/GAME5AQ>;;Key pause?/RCH/ FGAME5C&/PCH0/ NOSOUND:/ '}BFLAGD/GAME5BRCHN/ FGAME5BX/PCHb/GAME5C$>;;collisions?l/Q>v/GAME6LM0PL9/0/ IGAME6/R>;;any hits/HG}AME7;;yes-doit/1;;no-delay/HGAME5A;;remember zagbolt/ "MOVTRY/HGAME1A;;2 TIMES MORE OFTEN/GAME7 KILLTEST;;kill }bugs/QTBUGS;;end round?/GNXRND;;yup-next/PHITCLR;;no move bugs/ LIFER0QLIVES;;Still Alive? 0FGAMEND;;NO-DIE!}0$> 0GAME8QXPOS9*0 FGAME8A40 NXBPOS>0 GAME8A0H0 IGAME8R0 KILLTEST\0 QTBUGSf0GNXRND;;end roundp0!GAME1;;loo}pitz0NXRNDQKBUGS;;got all 100R> 0HNOBON;;no-no bonus0,;;yes-add it0 QBONUS0 OLEVEL0 PBONUS0NOBONQLEVEL;;}game end?0R>0 FGAMEND0$>;;turnoff0 Q>;;bugs0BUGOFFPXPOS9001 IBUGOFF1Q>;;flash endround1 PFLASH$1 }DIEBUG;;killendround.1%>;;PMs off81 'PMFLGB1 'BFLAGL1 'AUDC3V1 'AUDF3`1 'COLOR4j1WRAPUPQ@SOUND7;;done soundt1 HW}RAPUP~1#LEVEL;;next level1!SRND;;start new round1GAMENDQ>1PBFLAG;;save power1 PPMFLG1$>1GAMEND0 DIEBUG};;killem1Q> 1 PFLASH1GAMEND1&GAMX1 ZAGBOLT1 $GAMX1%>2 Q@SOUND7 2 HGAMEND1202 HGAMEND0(2 UNZAGB22 !}NEWGAME<2KILLTEST$>F2Q>P2KILOOPLM0PL9;;hitem?Z20d2 IKILOOPn2%>;;setup bit maskx2 'KILLER2$>2KILTST*K}ILLER2 HGOTEM2KILTSTATKILLER;;next222(>2 HKILTST2 !KILEXIT2GOTEMPGAMA2&GAMX;;savem2QBFLAG;;You nuke}m?2LBBOLT;;BOLT STILL ON?2HGOTEM1;;YUP!3!DIEGRID;;No - you die!3GOTEM1 DIEBUG3 "TBUGS"3#BUGCNT;;CREDIT FO}R,3 PWRBUG;;THIS DEAD BUG63 #KBUGS@3 $GAMXJ3 KILLBUGT3 $GAMX^3Q>h3PXPOS9;;OFF NOW!r3 PHPOSP09|3 QGAMA3 !KILTS}TA3KILEXITPHITCLR3:3NOBUGS$>3Q>3GOAWAYPXPOS93 PHPOSP09303 IGOAWAY3NOSOUND%>3 'AUDF13 'AUDF2}3 'AUDF34 'AUDC14 'AUDC24 'AUDC3&4:04GAMA ;;save regs here:4 GAMX D4 MOVTRY N4DELAYIT X4b4 GAME}PPPppFPAPscoreattowatts2/5.$Qaratandmil}lerchiefexterminators3%,%#4difficultyor"%').$%"5'').'writing()attofemtopiconan}omicromillicentideciplanodekahectokilomegagigateradannojimbonafiedaviemattorattoNB4FƆAQJ*,<q:pyp }ά0&AƯ0'    $ * 0 6 < B !} H N T Z`flrxppGRppAR!.!,/'computing"}瀀"y-at 2at with$ave-)#%-illerthebestbugkiller()'(%343#/2%#}bugsblasted3520,530/7%20ress;34!24=to.5+%somebugsD:RAMBHI Tx_y_̅ȅLU T0x_ T0$}y_ T0څ T0Ӆ T0̩̅ TLU TLUx_ T0y_ T0 T0 T0ߤ T0ة TLUBIHDSELVH UhJ%}KIDSEHBLV LTBHILV eVܠR01XRY TĩSŭx_y_ xZ&}Sť̢ xZ΅ĩSťȦ xZ &U ԍТUHUUʈhU L=UR 9['}̅ȅ` BLV *:JZjz eVRP01[ԩXPYdV $cV%dV$[% VĆ(}@ǮŢđR@(@ )<0@؅R`S:H` B V`B`DVEhK)I J V`򩥅ĩQ)}eąĐę3P8 LVi HiOPhiPP`RQP`QP` ) )0@`i*}``0BC 0**jjACBC BCܩčҭ ҩ`BCҍ`)X ;X r^aޝЭWW W+}W ҝBC ԎW )W8 WWW Wҡ̮WW aWWWWW Waa`XLWXĄŠ ęP`,}scoredebuggers)X*XP`XéҍҹXXȹXȍ8ҢΑXҍҍҍҩ%XΑXΐX-}`(FFdȿ?:*8=9 %# /(>- .+ 4!newhi ;X r^ VéڠX [].}SĩPũƭRĭY YYݽXL#YXƥкLYLYЯƩĥ/}LYPSfX%~X`<ҩ@ҩҍҢ/ҍҍҍ`.ĩPťȦ xZBĩPť̢ xZ`vZwZZDZ Z0}vZD jj)֭ )֕)%ϕޭ jj)ڭ )ڕڭ CCѐѕ )wZ`ZZ1}ZZ8ZZZZZLZZyZZZZ Z `'d Щ!o>/R2}@ԩCDEFGr W@CACCC ``# v[ v[ v[ v[`ҍҍҍ`3}`)R[8򈌩[m[[QP`HH) hh@ L[ 04} BC+ aWL-\L-\ȥɥȅɅ W 9[ VM(lcV\\\ޝЩD{\z\ {\\樭z\\{\\5}D\ ҍҩҵ0 *@L\@L\ * @L\(@\\⨢@D\\\``'ε0޵6}ͭ)XN)XLO]޵%%ҵ0< L8]) A\u )ε)` ;X r^`ĄũQƩPNJe7}ƐLjđ` VQ []-Q []AQ []UQ []iQ []}Q [][ ^GRHR []&1^L&^\8}R []U!J^L&^pR []Ƞ%c^ ЎFRWr Wí#L?^ r^GRGRL] 9}V[`R`^^ ^ ^L^ {_ D`Ѕȩ` W̍v_w_Íz_1mv_v_w_mv_:}v_mw_w_^mv_v_w_ĩPŭv_w_ xZw_y_@v_x_6v_x_w_y_x_ y_"[ XQ [] JT[z_;}$ĩPŭx_y_ xZ` ^ T U Z Yr W eҩ Vav_w_ ^z_ WL~_ ])X r<}^ ^ Y W 1X Y ͭa8a V YТ͵0 Y҈0a=}L8aL`é,x 0L`,x FR Wa aL_ aaЃ _a0>}! 1X)XQ \ _a0L+` e( r^ÌҌҌL_Å r^ a Wa?} aWL_$ Laaa CLtW r^ Ya }[aޝЭaLsa`ޝҌҌҌҌҌ`@}{_$ Laaa CLtW r^ Ya }[aޝЭaLsa`ޝҌҌҌҌҌ` 45I [ EMPTYTRANSCHANGEBALEMPTMOVHILOSCROLAD& 4XXB'BEBy"B}@BA' Be @q @ @  UP! UP! AND AWAY!FINE VERTICAL SCROLLINGDURING"C} THE VERTICAL BLANK(ROUTINE IS LINKED USING2SYSTEM TIMER TWO<""BY ALLAN MOOSE/MARIAN LORENZF***** 1985 **"D}***P99DIMENSION AND DEFINE STRINGS THAT STORE ML ROUTINESZAND CHARACTER SETd11;@,;@ ,;@,;"E}@,x5 #A!-@@%"167,.>:,5 +-@@ "'67,.>:,+ +-@@"F}"'67,.>:,+ +-@@"'67,.>:,+ %%SET UP RESERVED SPACE AND CLEAR9AAH'"G}A9AAH6-?:C:,,""SET GRAPHICS MODE AND COLORSC +@AR@1A"H}@CAA`''MOVE STANDARD CHARACTERS/REDEFINE'A'AA$6-?:C:,, 6-"I}C:,6-P:'AV,"6-&$AV,AA6'A@$'AAH@6-?:C:,,"J}J SET UP CUSTOM DISPLAY LISTT/-@+B%A/ ^7BA7SCROLLING BIT SET (64+7"K}+32=103)h'B'BATrX-@ +B%@9/ XSCROLL BIT SET AT EVERY LINE"L} (7+32=39)|B@B @e'B'BAW66TELL ANTIC AND OS WHERE DL A"M}ND SCREEN MEMORY ARE'AY'TURN OFF SCREEN'A`'AaAW'@'@"N}AT5AVAH5INSTALL CHARACTER SET ADDRESS&AY@4&TURN ON SCREENPUT BALLOON IN"O} MEMORY&-@@& @#$%&-@@& @&'(&-@@ & @)*+$"P}-@@$ @$-@@$ @LOAD IN SCROLL ROUTINE7 #A`!-@p"Q}%"3BH%7 &DATA FOR SCROLL ROUTINE0PP164,205,200,192,120,240,19,132,205,166,206,232,224,16,240,11,142"R},5,212,134DXX206,169,6,141,26,2,96,216,24,173,4,157,105,20,176,16,141,4,157,169,0,141,5,212,133XYY206,169,6,141,26,2,96"S},238,5,157,141,4,157,169,0,141,5,212,133,206,169,6,141,26,2,96l..INSTALL ADDRESS OF THE SCROLLING PROGRAMv'AR"T}'ASAX--SET REGISTERS USED BY SCROLLING ROUTINE9A'A9BBw"U}START SYSTEM TIMER 2A8@ ADATA FOR EMPTY$FF104,169,0,162,8,160,0,145,203,200,208,2"V}51,230,204,202,208,246,96DATA FOR TRANS$PP104,162,4,160,0,177,205,145,203,200,208,249,230,206,230,204,202,208,242,9"W}6DATA FOR CHANGE$55104,160,0,177,205,145,203,200,192,88,208,247,96DATA FOR BAL$UU0,0,1,3,7,15,31,31,0,126"X},255,255,255,255,255,255,0,0,128,192,224,240,248,248,63 ``63,63,63,63,63,63,63,255,255,255,255,255,255,255,255,252,252,252"Y},252,252,252,252,248,31,15TT7,3,1,0,0,0,255,255,255,255,255,255,126,126,248,240,224,192,128,0,0,0,36,36,36 0036,255,25"Z}5,255,255,255,255,255,126,0,0,0,0 D:VBI1.BAS255,255,255,255,126,126,248,240,224,192,128,0,0,0,36,36,36 0036,255,25 4ABG Y EMPTYTRANSCHANGEBALEMPTMOVHILOSCROLNUTRANCHANGBALA&\} @R @ @ A%AF UP! UP! AND AWAY!FINE HORIZONTA&]}L SCROLLINGDURING THE VERTICAL BLANK(ROUTINE IS LINKED USING2SYSTEM TIMER TWO<""BY ALLAN MOOSE/MARIAN LORE&^}NZF***** 1985 *****P** VERSION 2 **Z #Ad--@")A%- nGG104,169,0,1&_}62,28,160,0,145,203,200,208,251,230,204,202,208,246,96x #A@--@")A%%- PP104,162&`},4,160,0,177,205,145,203,200,208,249,230,206,230,204,202,208,242,96 #Ap--@")AF%- &a}66104,160,0,177,205,145,203,200,192,144,208,247,96 #A--@")Aa%- RR0,0,1,3&b},7,15,31,31,0,126,255,255,255,255,255,255,0,0,128,192,224,240,248,248]]63,63,63,63,63,63,63,63,255,255,255,255,255,255,25&c}5,255,252,252,252,252,252,252,252,248]]31,15,7,3,1,0,0,0,255,255,255,255,255,255,126,126,248,240,224,192,128,0,0,0,36,36,&d}36,36--255,255,255,255,255,255,255,126,0,0,0,0%%SET UP RESERVED SPACE AND CLEAR9AA3'A&e}9AA36-?:A,""SET GRAPHICS MODE AND COLORSC +@AR@1A@CA&f}A`"''MOVE STANDARD CHARACTERS/REDEFINE,'A'AA$66-?:A%,@'AA&g}%'A@J'A@$'AA4T6-?:AF,^ SET UP CUSTOM DISPLAY LISThB-&h}@+BAv%A/ BBLANK SCAN LINESrT-@3BAy%$@@7 TSCROLL SET EVE&i}RY MODE LINE|M-@3BA%$@A(7 MSET LO SCRN ADDRESSO-@5BA%$&j}@A8%9 OSET HI SCRN ADDRESSBB@eBBA(BBA3!!TELL ANTIC WH&k}ERE TO FIND DL'AY'TURN OFF SCREEN'A`A('AaA32AVA42INSTALL C&l}HARACTER SET ADDR&AY@4&TURN ON SCREEN**POKE CHAR CODES DIRECTLY INTO MEMORYG%AD$AV%A0&m}@GAD$AV%A1@G%AD$AV%A2@GAE$AV%A0@G%AE&n}$AV%A1@GAE$AV%A2@G%AF$AV%A0@ GAF$AV%A1&o}@G%AF$AV%A2@GAG$AV%A1A@%%AH$AV%A1AA&LOAD &p}IN SCROLL ROUTINE0--@Q")A6%- :DOO164,205,200,192,200,240,19,132,205,166,206,232,224,&q}8,240,11,142,4,212,134NX99206,169,6,141,26,2,96,162,0,222,132,133,232,232,232bl>>224,33,208,246,169,0,141,4,2&r}12,133,206,169,4,141,26,2,96v..INSTALL ADDRESS OF THE SCROLLING PROGRAM'AR'AS@--&s}SET REGISTERS USED BY SCROLLING ROUTINE9A'A9BBvSTART SYSTEM TIMER 2&t}A8@ A D:VBI2.BAS'A9BBvSTART SYSTEM TIMER 2$2AB EMPTYTRANSCHANGEBALEMPTMOVHILOSCROLNUTRANCHANGBALA*v} @i @ @ A%AF UP! UP! AND AWAY!FINE DIAGONAL *w}SCROLLINGDURING THE VERTICAL BLANK(ROUTINE IS LINKED USING2SYSTEM TIMER TWO<""BY ALLAN MOOSE/MARIAN LORENZ*x}F***** 1985 *****P** VERSION 2 **Z #Ad--@")A%- nGG104,169,0,162*y},28,160,0,145,203,200,208,251,230,204,202,208,246,96x #A@--@")A%%- PP104,162,4*z},160,0,177,205,145,203,200,208,249,230,206,230,204,202,208,242,96 #Ap--@")AF%- *{}66104,160,0,177,205,145,203,200,192,144,208,247,96 #A--@")Aa%- RR0,0,1,3,7*|},15,31,31,0,126,255,255,255,255,255,255,0,0,128,192,224,240,248,248]]63,63,63,63,63,63,63,63,255,255,255,255,255,255,255,*}}255,252,252,252,252,252,252,252,248]]31,15,7,3,1,0,0,0,255,255,255,255,255,255,126,126,248,240,224,192,128,0,0,0,36,36,36*~},36--255,255,255,255,255,255,255,126,0,0,0,0%%SET UP RESERVED SPACE AND CLEAR9AA3'A*}9AA36-?:A,""SET GRAPHICS MODE AND COLORSC +@AR@1A@CA*}A`"''MOVE STANDARD CHARACTERS/REDEFINE,'A'AA$66-?:A%,@'AA%*}'A@J'A@$'AA4T6-?:AF,^ SET UP CUSTOM DISPLAY LISThB-*}@+BAv%A/ BBLANK SCAN LINESrT-@3BAy%$@A7 TSCROLL SET EVERY*} MODE LINE|M-@3BA%$@A(7 MSET LO SCRN ADDRESSO-@5BA%$@*}A8%9 OSET HI SCRN ADDRESSBB@eBBA(BBA3!!TELL ANTIC WHER*}E TO FIND DL'AY'TURN OFF SCREEN'A`A('AaA32AVA42INSTALL CHA*}RACTER SET ADDR&AY@4&TURN ON SCREEN**POKE CHAR CODES DIRECTLY INTO MEMORYG%AD$AV%A0*}@GAD$AV%A1@G%AD$AV%A2@GAE$AV%A0@G%AE*}$AV%A1@GAE$AV%A2@G%AF$AV%A0@ GAF$AV%A1@*}G%AF$AV%A2@GAG$AV%A1A@%%AH$AV%A1AA&LOAD IN*} SCROLL ROUTINE0--@h")A6%- :D@@164,205,200,192,80,240,28,132,205,166,206,232,224,8,2*}40,20N//134,206,142,4,212,166,207,232,232,134,207X!!142,5,212,169,6,141,26,2,96b''162,0,222,132,133,232,254,132,133*}l**232,232,224,33,208,243,169,0,133,206v33133,207,141,4,212,141,5,212,169,4,141,26,2,96..INSTALL ADDRESS OF THE SCRO*}LLING PROGRAM'AR'AS@--SET REGISTERS USED BY SCROLLING ROUTINEKA'A*}9AKBBvSTART SYSTEM TIMER 2A8@ A D:VBI3.BAS*}9AKBBvSTART SYSTEM TIMER 2A8@ A D:VBI3.BAS(