@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 D8uiA $$****************************** $$* BASIC DUPer * $$* T} By Bill Bodenstein * $$* *$$* COPYRIGHT 1988 *$$* BY ANALOG COMPUTIU}NG *$$******************************2;@,<Q(*(This program modifies a DOS 2.5Q("DUP.SYS fileV} to disable BASIC whenFT,($loaded, and enable BASIC when exitedQ( with the RUN CARTRIDGE function.T(dJ@1(W}Insert a diskette with DUP.SYSF(and hit Jn4 AP4@@ D:DUP.SYSx(-@@X}G$)@( "@:,A2(( ΧԠĠӠЮӠš2 AS# A@BY}@@  D:DUP.SYSS( Modifying...+"!6@!*@+ AM@2(DUP.SYS filZ}e has been modified.J(Type 'DOS' to load.M,( ERROR - F:A,&77128,5,157,5,173,31,208,201,5,240,22,173,1[},211,9,2<<205,1,211,240,12,141,1,211,169,1,141,248,3,169,192,13399106,96,226,2,227,2,128,5,80,39,134,39,169,0,141,248\}<<3,141,0,212,173,1,211,41,253,141,1,211,172,253,191,206BB253,191,204,253,191,240,13,140,253,191,169,159,162,39,32,17]}6&AA49,76,15,33,169,160,133,106,173,252,191,208,237,173,253,1910;;240,232,234,41,31,53,31,86,69,82,83,46,32,178,174,181^}:32,109,111,100,-1D:LISTING1.BAS,208,237,173,253,1910;;240,232,234,41,31,53,31,86,69,82,83,46,32,178,174,181.Q $X********************************$X* BASIC DUPer *$X* By Bill Bodenstein *($X* `} *2$X* COPYRIGHT 1988 *<$X* BY ANALOG COMPUTING *F$X************************** a}******PX;Z"X;This program modifies DUP.SYSd#X;(DOS 2.5 version only) to maken"X;it disable BASIC when loaded,x#X;and en b}able the BASIC cartridgeX;when exiting with the RUNX;CARTRIDGE function.X;Append this code to yourX;DUP.SYS file. c}X;X*** EQUATES ***X;CONSOL;;Button pressed?SELECT;;This buttonX;PORTB;;ROM or RAM?X; d}DMACTL;;Screen on/off?X;RAMTOPj;;Num RAM pagesX;"INITADR;;Bin ld vector,X;6X;@#X*--------------- e}--------------*JX; Disable BASIC cartridge.T#X*-----------------------------*^$X;Before DUP takes over, turn thehX;car f}t off unless [SELECT]r"X;pressed. This routine is only|"X;used once, so store it in theX;text buffer.X;X; g} CART.OFFQCONSOL;;[Select] beingR>SELECT;; pressed?FGO.DUP;;Exit if yepX;QPORTB;;ROM/RAM statusL>;;B h}it 1 tells usRPORTB;; if cart on/offFGO.DUP;;Exit if offX;PPORTB;;Else turn offQ>;;Tell o.s. to&P;; i}keep cart off0X;:Q>;;Give us moreDPRAMTOP;; free memoryNX;X#X;Let DUP re-open editor to movebX;screen memory up j} in RAM.lX;v GO.DUP:;;Finish bin loadX; X;Remember: DUP.SYS is loaded$X;like any binary file. So we can$X;use k} the initialize jump vector.X; INITADR CART.OFFX;X;$X*------------------------------* X; Enable BASIC l} cartridge.$X*------------------------------*#X;We'll stick this routine right #X;in the RUN CART function code.$X;We' m}ll then need to re-write the "X;original DUP code, condensing*$X;it to now fit in the same area.4X;>P'HX;R CART.O n}N\Q>;;Cart on in casefP;; of [RESET]pPDMACTL;;Scr temp offzX;QPORTB;;Memory statusM>;;Clr bit 1 to o}PPORTB;; turn cart onX;X;!X;Now, we re-write part of the X;original code for DUP's RUNX;CARTRIDGE.X;% p};;See if this";; byte ROM/RAM) FYES.CART' NO.CARTQ>;;Print "no cart"$$>';; msg and exit. q}18!!B YES.CARTLQ>;;Reset # freeVPRAMTOP;; RAM pages`Q;;Check if cartjHNO.CART;; can betQ;; re-ent r}ered~ FNO.CART4;;Re-align codeX;#X;Rest of code remains the same.X;X;"X*----------------------------*X; s} New menu header."X*----------------------------*"X;Replace the original DOS infoX;with our text.X;)X; t}  AVERS. modA."X*----------------------------*"X;Replace the original DOS infoX;with our text.X;)X; <=]9:SSCGGCRPWPSSTPPPPDSCMUSI@@B@8v}Af@@ AF A @2 @2 A ADBxA@2BDBBVBw}@B6A90@Ap@!@ @!@"AU#AU$$*******x}***********************$$* ELECTRA-BALL *$$* BY FRANK MARTONE *$$************************y}******/ AP6-%6-/ A9m +@AY1A@CAUAz}#@a6-@m6-@)AV'AV)A A5w-@/(@ ELECTRA>BALL{}AA@M6-@8Y6-Afc Am Aw A ) A A)A#@ o%2|}46-R:,C6-R:@,Y"@)"@e6-@8o A S-@@""(}}@4-@@"A(@S@w%"@6-@7% A%"@6-@9% ~}A` -(@>*A#@<B2PA4NA@e`AA3/"@)"@}%6-Af/ A%"@6-Ag% A%"@6-Ae% A"@5 A }"Ac A P-@(@+K"T:,"*"@.-@=(@ K6-&@} K"T:,"*"@.-@=(@ K6-%@!8!@-@*(@ 86-}&@"8 @-@*(@ 86-%@#9-@(@+*-@9(@)}K"T:@,"*"@.-@=(@ K6-&@*K"T:@,"*"@.-@=(@} K6-%@+8!@-@*(@ 86-&@,8 @-@*(@ 86-}%@-!-@(@!$dG-@ @%(@>:,7-@@G(@>:,eG-@}@%(@>:,7-@@G(@>:,fG-@@%(@>:,7-@@G(@}>:,gG-@@%(@>:,7-@@G(@>:,hG-@@%(@>:,7-@}@G(@>:,i(-@@%(@>:,($i-@@%(@>:,7-@@G(@}>:,Y-@@i(@>:,G-@@%(@>:,7-@@G(@>:,G-@}@%(@>:,7-@@G(@>:,i-@@%(@>:,7-@@G(@}>:,Y-@@i(@>:,(-@ @%(@>:,($,6-@86-Af-mAA3}72@%@@Y2@@E@@c Am A.l%2}G2@YAa6-%i6-%l$36-@ 6-@'6-@36-} -(@>o"Ar6-6@86-%P:H:,$@,Q6-&H:,$@[ A0Pe A}o @n"@C6-@76-%P:H:,$@,P6-&H:,$@Z A0d An @<}"Ai6-6@(6-2 A< @;"@86-@'6-1 A; @;"@7}6-@'6-@1 A; @<"@96-@(6-6@2 A< @="Ae6}-6@)6-6@3 A= @<"Af6-6@(6-2 A< @<"Ag6-6}@(6-@2 A< @G @*"%6-@G2@@@T @*}!?%6-@26-6@T2@ @@T @*6@&6-@26-@T2}@@@>!@6-6@>2@@@H!@*"&6-6@}H2@ @@T!@*"@&6-6@26-@T2@@@V}!@*"6@'6-6@46-6@V2@ @@= @6-@=2@}@@: -(@  6-%(6-%01: @Q%2G2@}Q AP/M GRAPHICS6-F:A,&@&BBy8B2w@N6-$AV%A$}Z6-Af6-Ar6-@2~6-A A#@AYC #A A#@1A}AsCAAsW6-$AV%A/6-$AV%A6AAA#W6-$AV%A%-%}%@(%"!% /-%%@(%"!% /#A(%-%%@%"!% m-%%}@%"!% 7A#@IA@[A@mB2Y*B2H@2'B2I}A*$%%255,255,255,255,255,255,255,255 %%255,255,255,255,255,255,255,255 %%255,255,255,255,255,255,255,255 }%%255,255,255,255,255,255,255,255 %%255,255,255,255,255,255,255,255 %%255,255,255,255,255,255,255,255%%255,255,25}5,255,255,255,255,255%%255,255,255,255,255,255,255,2556,12,24,30,4,8,16,32144,18,64,0,214,0,16,146XS-}@7(@xxIAA3S AY7-@!7(@xx}]6-@@#-2(@#6 ^l-@@#-@2(@6 HAY@b}ZB2V@lB2W@b$ +@ A)A @;AMAR@o6}-F:A`,%AV$F:Aa,A#@^AY@F (@+(@=AR@^( FRO}M ANALOG COMPUTING6(@(@$(@6A@y55(@$ ELECTRABALL BY FRANK MARTONE}AA1)%@@;AA1MAAU_A @qA@A}@A@z-@K(@(________________________________________]-@@z(@} K-@ K(@(________________________________________ A$6-@} 6-A Y-@@""(@4-@@"A(@U-@@Y W6-%@}6-&@;2@@W2@@@ B2HB2I z"A !B2H@}3B2IA(U2w2@z$ AuCHARACTER SET}$$6-+F:A,&@,$AV.-A*%F:BsD%,.  #A" $1-}@"-%$@%1  A0L##42,16,24,92,222,0,255,254,124Q 1,0,0,192,225,115,51,51,51R}3,0,0,3,7,15,31,31,3V""12,62,93,107,127,107,93,62,0[!!11,0,0,62,127,223,255,127,0] 14,0,0,131,230,252,124,6,3e}5,3,1,0,24,28,12,1,0j6,254,248,24,0,0,128,0,64o7,0,12,36,60,24,4,40,128t##2,255,255,255,0,255,0,255,255}56},0,0,40,16,4,1,2,026,0,0,0,0,0,0,0,3 27,0,198,41,128,16,16,0,1628,0,0,0,0,0,0,128,192 29,2,6,14,60,254,}227,128,0 30,0,56,124,124,124,56,0,031,24,24,24,24,24,24,24,032,0,0,68,40,68,40,66,0 61,0,0,68,238,124,}56,24,28""62,224,192,224,24,12,24,32,049,0,0,126,106,86,126,0,059,0,0,34,119,62,28,24,56$$13,0,62,127,223},255,126,124,125,1,2,4,0,0,32,64,06,8,8,8,0,0,8,8,87,64,32,16,0,0,2,1,08,1,2,4,8,16,32,64,09,8,}8,8,8,8,8,8,810,64,32,16,8,4,2,1,0!!11,1,242,250,46,250,242,1,0&&12,0,128,158,183,230,183,158,128''49,170,2}55,255,255,153,255,255,85&&56,255,255,255,255,255,0,255,25516,60,66,66,66,0,66,66,6017,8,8,8,8,0,8,8,81}8,62,1,1,1,30,32,32,3119,62,1,1,1,62,1,1,6220,34,34,34,34,60,2,2,221,30,32,32,32,28,2,2,60 22,30,32,32},32,60,34,34,2823,28,34,34,2,0,2,2,2 24,60,66,66,66,60,66,66,6025,28,34,34,34,28,2,2,60##3,84,170,84,170},84,170,84,170-1%2G2@Y-@@"(@}RED 0 06-@86-Af A A)-@ @8(@>L-@@}^A#@j-@y(@ -@u(@ $-@@;(@ ԠO-}@@ S u2A@@-@@,(@ @-@@ D f2}j |A@eAA3I%2@P@@9-@@ }= I6-@26-@@#-2(@#6 l-@@#-@2(@6 }HAY@bZB2V@lB2W@6-@6-@B2QA 'AAUD-}@6?``2AlAp B2Q$ GOAL!9-@@}#-5(@ 9 l -@6@>2$@@\2@$@@}hAl -@@#-@2(@+F-@@J V-@e(@ y-}@@}  r-@@4-6@@@[2O:,%@%@@rAO}:%@,;  A@e/AA3;6-@A%236-%@A}"ASB2xAU!6-@ -6-@:6-6@F6-SLOSERS OUT6-@@#-}2(@#6 ` -@6@>2'@@\2@'@@`  }A @8-@@#-@4(@ 8 l -@6@>2$@}@\2@$@@hAl -@@#-@2(@F-@@}J V-@e(@ y-@@}   r-@@4-6@@@[2O:},%@%@@rAO:%@,     e%27AA3E6-%@}WA@ee"A RB2xAU!6-@ -6-@96-@E6-RLOSERS OUT 6-}@@#-@2(@6 ` -@6@>2'@@\2@'@}@`  A @ -@(@+ T -@6@<2@@}PA%@PT  L-@%@&(@ :-@&@I(@ L$ -@(}@ T -@6@<2@@PA%@ST  L-@%@&(@} :-@&@I(@ L$e +@AY) A;B2HMB2IY6}-e6-uAV'AV)AA5;AMAUu(# A N A L O G C O }M P U T I N GeAY@b'-@A(@ ELECTRA>BALLSA#@eA A9%6-F:}A`,%AV$F:Aa,9%@@9%(@ SPORT OF THE FUTURE9%@ @Q-@@}3(@?6-@QA@'-@ A8#B2P' -@A@}DB2PH:,$@%A4VA@hAAA3%H:,$@K'2}$@ @@K2@$@@@K )2K2@}V -@6?0>2$@ RA%A0V QAAU!6}-@-6-@?B2Y@QA#@W-@@:(@ 0 WT:},"A@xcR:,"@&6-&@C-@6@_2@@c cR:},"@&6-%@C-@6@_2@`@c _%2}1 @=6-@_2AU@@=!@%6-@=2AU@@} A@e! #Aq Ap! @X #Aq]"^V"AU12@S2}V$bu -@6@#(A2%@@e2@%@@@}i uAl Ap #AqP "z"AU12@S2}eAwAz$~ -@6@<2@@R2@@}fA%@UzA%@U~  ApU100,50,100,50,100,50,100100,60,100,80,100,60,100}100,60,100,80,100,60,100100,60,100,80,100,60,100100,50,100,50,100,60,100100,60,100,60,100,60,10050},80,50,50,80,80,50,8040,30,40,50,40,40,30,40255,255,255,255,255 ;-@@P70F:B7p,F:B}7p,; @ Ap+@+AV'AV=B2HOB2IaAY@bsA@}A@A'A#@'B2PA'J,-@,(@ >T.-@@.(}@ final score^)-@@)(@RED _+-@@+(@ `7-@ }7(@b7-@7(@cV -@6?0>2}$@U@RA$@V e #AqP ApPi-@Ap@DB2PH:},$@%A$VA@hAAA3%H:,$@jK'2$@ @@}K2@$@@kK )2K2@pgB2}P)-@5,A/@ U-@@Y ] g A9N D:ELECTRA.BASB2ybcK MOVMEMINVSMEMCOARSCHANGSCROLMLANGDATVBLOFFBYTDACCSEMEDLISMEMSCRSCRXXL} }Z A0 6-?:C:,"@)"6@!6-6>AA)&F:A,2 6-%<G!@}6-&@+6-%@=A@G A`F= 6-%@+6-&@=A@P!}A!A@d F:A,An A AY &&;@,;Av,;}@, ;@ , B 6. ;@A, B 6. --@")A6%- & --72},169,212,141,10,212,141,26,208,104,64N <6-F:A@,&@.A&@<6-$AVX +-@+ B}%@$b 956-?:C:,255 THEN 230230 TMP=PEEK(53248):IF TMP<4 OR TMP=8 THEN RET}URN 250 X=PEEK(1692)-47+2*(RND(0)>0.5)-1:Y=PEEK(1696)-158260 POKE 89,INT(MEM7/256):POKE 88,MEM7-256*PEEK(89):POKE 87,7:COLO}R 0270 YT=Y-3:YT=YT*(YT>=0)280 PLOT X-2,YT:DRAWTO X+2,YT+6:PLOT X,YT:DRAWTO X,YT+6:PLOT X+2,YT:DRAWTO X-2,YT+6290 PLOT X-2},Y*(Y>=0):DRAWTO X+2,Y*(Y>=0)300 RETURN YT:DRAWTO X+2,YT+6:PLOT X,YT:DRAWTO X,YT+6:PLOT X+2,YT:DRAWTO X-2,YT+6290 PLOT X-2*230 TMP=PEEK(53248):IF TMP<4 OR TMP=8 THEN 310310 IF TMP=0 THEN 250320 R=48*INT((PEEK(1696)-30)/16):C=2*INT((PEEK(1692)-SCR }OLL-COARSE*8-47)/16):R=R*(R>=0)330 INV$(R+C+3,R+C+4)="":INV$(R+C+291,R+C+292)="":EF=2390 RETURN 1020 IF EF=0 THEN 1080 }1030 INV$(R+C+3,R+C+4)="":INV$(R+C+291,R+C+292)=""1120 IF STRIG(0)=1 OR PEEK(1700)<>0 OR PEEK(1720)<>0 THEN 12501250 E }F=EF-(EF<>0)5270 SCROLL=0:CHANGE=1:SB=0:EF=0:COARSE=01120 IF STRIG(0)=1 OR PEEK(1700)<>0 OR PEEK(1720)<>0 THEN 12501250 E745VCMMMCCMIVJSTICKCMLTOLINDALNMLANG!} @do +4("Make sure you !}have saved a copy ofW(this program before RUNning itk-@APo n ( (x59@,$-@@!}("168,-5  20,41,26,36,112,11,657,1289-@@#6-/6-9 A -@8,!}" 6-%$$'@%P:'@%,A/ 6-6-",(...ERROR/& A!  "!}(...ERROR!&  #B7-@@-6-B%A$7 A+-@8,"+(>:@'!},>:, '@%"P:'@%, ">'@"P:'@,& A 46-%@> A  " A !} D(A(CHECKING LINE B%A$%@$P:'@%,D$= +-@@:( MLANG$!}=>:@4,=$J(>:@4,:RETURN#(CONT5-GAB@J&AB@$ NOO104,1!}62,228,160,95,169,6,32,92,228,162,228,160,98,169,7,32,92,228,96,2548Rll104,104,133,207,104,133,206,104,133,209,104,133,208!},104,170,160,255,138,208,2,104,168,177,206,145,3719RII208,136,192,255,208,247,230,207,230,209,202,224,255,208,233,96,3340!}Umm104,104,133,207,104,133,206,104,104,168,104,104,133,208,177,206,37,208,145,206,136,192,255,208,245,3931U 96,96Yff!}104,104,133,204,104,133,203,104,170,169,0,160,255,224,0,208,4,104,168,169,0,145,203,136,192,3396Y55255,208,249,230,204,202!},224,255,208,234,96,2365]^^173,251,6,240,104,173,252,6,141,4,212,173,253,6,141,5,212,173,254,6,240,79,173,48,2,3327]aa1!}33,204,173,49,2,133,205,160,3,177,204,201,65,240,61,201,1,240,52,41,112,201,64,144,48,3114]cc201,80,144,42,200,173,255,6,4!}8,18,177,204,24,216,109,254,6,145,204,200,177,204,105,0,145,3337]ff204,144,20,177,204,56,216,237,254,6,145,204,200,177,204!},233,0,145,204,144,2,200,200,200,208,3984]22189,169,0,141,254,6,141,251,6,76,95,228,1556a11104,104,170,104,168,169,6,32!},92,228,96,1273ebb104,104,104,141,188,6,104,104,141,228,6,141,231,6,141,234,6,141,237,6,238,237,6,141,240,3235e[[6,238,!}240,6,169,127,141,199,6,162,9,160,4,173,47,2,41,16,240,9,169,255,141,199,6,2765e^^162,19,160,8,140,200,6,160,9,189,206,6,1! }53,189,6,202,136,16,246,169,7,174,240,6,160,2969e]]108,32,92,228,96,32,238,6,189,152,6,24,109,200,6,168,205,199,6,144,3,17!!}2,199,6,189,2809eaa152,6,56,237,200,6,141,201,6,136,177,204,200,145,204,136,240,5,204,201,6,176,242,169,0,3450e\\145,20!"}4,96,32,238,6,189,152,6,56,237,200,6,168,176,2,160,0,189,152,6,24,109,200,6,2759edd141,201,6,200,177,204,136,145,204,200,2!#}04,199,6,240,7,204,201,6,144,239,240,237,169,0,145,3855e^^204,96,138,72,162,4,32,238,6,104,170,189,160,6,56,237,200,6,168,!$}176,2,160,0,189,160,2935e``6,24,109,200,6,141,201,6,136,177,204,61,202,6,145,204,200,200,189,202,6,73,255,49,204,3206edd!%}136,136,17,204,145,204,200,200,204,199,6,176,7,204,201,6,144,221,240,219,189,202,6,49,204,3719eaa145,204,136,189,202,6,49!&},204,145,204,96,138,72,162,4,32,238,6,104,170,189,160,6,24,109,2994e^^200,6,168,205,199,6,144,3,172,199,6,189,160,6,56,237!'},200,6,141,201,6,200,177,204,61,3152fee202,6,145,204,136,136,189,202,6,73,255,49,204,200,200,17,204,145,204,136,136,240,5,!(}204,201,3699fbb6,176,224,189,202,6,49,204,145,204,200,189,202,6,49,204,145,204,96,189,189,6,133,204,24,3445f^^216,173,1!)}88,6,125,194,6,133,205,169,0,133,77,96,162,0,188,128,6,48,106,185,120,2,41,2707&f]]8,208,23,189,148,6,221,136,6,240,43,169,!*}0,133,77,254,148,6,189,148,6,157,0,208,208,29310f\\28,185,120,2,41,4,208,21,169,0,133,77,189,148,6,221,132,6,240,9,222,148,!+}6,189,148,2652:f[[6,157,0,208,188,128,6,185,120,2,41,2,208,17,189,152,6,221,144,6,240,30,254,152,6,2668DfZZ32,229,6,138,1!,}6,21,185,120,2,41,1,208,14,189,152,6,221,140,6,240,6,222,152,6,32,2385Nf^^226,6,232,224,4,208,140,162,0,189,164,6,240,83,18!-}9,168,6,240,50,16,23,222,156,6,222,3182Xf]]156,6,189,156,6,157,4,208,201,47,176,32,169,0,157,164,6,240,53,254,156,6,254,156!.},6,2959bf``189,156,6,157,4,208,201,208,144,9,169,0,157,164,6,240,106,208,196,189,172,6,240,57,16,3208lf]]23,222,160,6,222!/},160,6,32,232,6,189,160,6,201,16,176,39,169,0,157,164,6,240,74,254,2920vf\\160,6,254,160,6,32,235,6,189,160,6,24,216,105,16!0},205,199,6,176,4,41,240,208,7,169,2830f]]0,157,164,6,240,42,189,176,6,61,0,208,240,13,169,255,157,176,6,157,184,6,169,0,15!1}7,2938f^^164,6,189,180,6,61,8,208,240,13,169,255,157,180,6,157,184,6,169,0,157,164,6,232,224,3141f4,208,145,76,98,228!2},0,759xiMM0,0,0,0,0,0,0,0,1,3,7,13,15,2,5,10,128,192,224,176,240,64,160,80,1,1321iSS3,7,13,15,5,8,4,128,192,224,176,240,!3}160,16,32,8,4,15,29,31,23,20,2,16,32,1403iYY240,184,248,232,40,64,2,20,23,29,31,15,4,8,64,40,232,184,248,240,32,16,3,15,31!4},2245i\\25,31,6,9,48,192,240,248,152,248,96,144,12,3,15,31,25,31,13,24,12,192,240,248,152,2437iNN248,176,24,48,0,9,5,0,!5}12,0,5,9,0,32,64,0,96,0,64,32,16,16,56,56,124,1092i124,198,198,520 D2:GDW2.BAS2,2437iNN248,176,24,48,0,9,5,0, [3070 DIM MEMCLR$(36):GOSUB 30500:MEMCLR$=MLANG$3150 PB=PEEK(740)-8:CB=PB-4:POKE 106,CB-4:CA=CB*256:PA=PB*2563250 X=USR(ADR(%7}MEMCLR$),PA+768,1280)3270 FOR BYTE=201 TO 208:READ DAT:POKE PA+1024+BYTE,DAT:NEXT BYTE3280 DATA 16,16,56,56,124,124,198,198%8}5200 POKE 54279,PB:POKE 559,62:POKE 704,105480 POKE 53277,3A+1024+BYTE,DAT:NEXT BYTE3280 DATA 16,16,56,56,124,124,198,198$>3120 FOR BYTE=1 TO 40:READ DAT:POKE 1737+BYTE,DAT:NEXT BYTE3130 DATA 252,243,207,63,0,128,0,128,128,2,2,3,3,1,0,0,0,0,0,4,5,):}6,7,3,76,1283140 DATA 64,76,80,64,76,177,64,76,5,65,76,88,65,03180 MEM=PA3190 FOR SEC=0 TO 7:GOSUB 32000+10*SEC:X=USR(ADR();}MOVMEM$),ADR(MLANG$),MEM,LEN(MLANG$)-1)3200 MEM=MEM+LEN(MLANG$):NEXT SEC5470 X=USR(PA,PB,PB):GOSUB 32000+10*SEC:X=USR(ADR((_5300 POKE 1664,0:POKE 1665,255:POKE 1666,255:POKE 1667,2555310 POKE 1668,50:POKE 1672,2005320 POKE 1676,201:POKE 1680,2015-=}330 POKE 1684,128:POKE 1688,201OKE 1666,255:POKE 1667,2555310 POKE 1668,50:POKE 1672,2005320 POKE 1676,201:POKE 1680,2015, 1270 IF COARSE<>4 AND COARSE<>-2 THEN 13301280 CHANGE=-CHANGE:POKE 1791,129-PEEK(1791)1290 IF CHANGE=1 THEN 13301300 POKE 1?}1685,235:POKE 1686,240:SAUCER=11310 POKE 675,111370 IF SAUCER=1 AND PEEK(1686)<40 THEN SAUCER=0:POKE 675,153290 FOR BYTE=31@}0 TO 38:READ DAT:POKE PA+1280+BYTE,DAT:READ DAT:POKE PA+1536+BYTE,DAT:NEXT BYTE3300 DATA 15,16,31,24,63,28,106,22,106,22,2551A},31,255,31,56,28,16,85300 POKE 1664,0:POKE 1665,43:POKE 1666,43:POKE 1667,2555310 POKE 1668,50:POKE 1669,0:POKE 1670,5:POKE1B} 1672,200:POKE 1673,235:POKE 1674,2405320 POKE 1676,201:POKE 1677,30:POKE 1678,30:POKE 1680,201:POKE 1681,30:POKE 1682,30531C}30 POKE 1684,128:POKE 1685,0:POKE 1686,5:POKE 1688,201:POKE 1689,30:POKE 1690,305365 POKE 675,155440 POKE 704,15:POKE 705,41D}0:POKE 706,405450 POKE 53248,128:POKE 53249,0:POKE 53250,51689,30:POKE 1690,305365 POKE 675,155440 POKE 704,15:POKE 705,40<1120 IF STRIG(0)=1 OR PEEK(1700)<>0 THEN 12701140 X=USR(ADR(MISCLR$),PA+768,255,252):POKE 1692,PEEK(1684)+2:POKE 53252,PEEK(5F}1692):POKE 1696,199:POKE PA+967,11150 POKE PA+968,1:POKE 1700,13060 DIM MISCLR$(26):GOSUB 30000:MISCLR$=MLANG$5340 POKE 175G}00,05350 POKE 1704,0:POKE 1708,1295430 POKE 53278,0OKE 1700,13060 DIM MISCLR$(26):GOSUB 30000:MISCLR$=MLANG$5340 POKE 1746180 X=USR(ADR(MISCLR$),PA+768,255,252):POKE 1720,0:RETURN 1090 IF PEEK(1720)<>0 THEN GOSUB 1801110 POKE 53278,01120 IF STR9I}IG(0)=1 OR PEEK(1700)<>0 OR PEEK(1720)<>0 THEN 12701150 POKE PA+968,1:POKE 53278,0:POKE 1712,15:POKE 1716,6:POKE 1720,0:POKE9J} 1700,15340 POKE 1700,0:POKE 1720,0)<>0 THEN 12701150 POKE PA+968,1:POKE 53278,0:POKE 1712,15:POKE 1716,6:POKE 1720,0:POKE8%180 X=USR(ADR(MISCLR$),PA+768,255,252):POKE 1720,0:IF PEEK(1716)<>255 THEN RETURN 190 POKE 675,15200 FOR X=4 TO 0 STEP -1:P=L}OKE 705,112+X*3:POKE 706,112+X*3:FOR L=1 TO 10:NEXT L:NEXT X210 POKE 1685,0:POKE 1686,5220 POKE 53249,0:POKE 53250,0:RETURN=M} 1300 POKE 1685,235:POKE 1686,240:POKE 705,40:POKE 706,40:SAUCER=1E 1685,0:POKE 1686,5220 POKE 53249,0:POKE 53250,0:RETURN<Dyz"NNCRFNNUBOXCNNNNNNNDLACUMPSPLNCSOSPSCLDLASODICHSTXTCSXBXYFLADAO}SSDLAN1@ @@@@@A  @ @ @R @AP}@@@@@@@@0@PA`@@@@`@AQ}AU@A !"@@#@3$A%@&A'A`(@)@A*+@A,g-@AR}.@/@01B2AP3@ 4$$******************************$$* PEBBLES AS} *$$* BY CLIVE KING *$$* *$$* COPYRIGHT 1989 *$$* AT}BY ANALOG COMPUTING *$$****************************** A@-@  $(-A $2AU}2@,,%%,%/,%%2$< *"$F 6- @P 6-8,Z  6-$%6-d#AV} !6-+&,$%#6-@$n@x6-% !6-% -")"6-%%6-&<2AAW}@,# -256-%9 <$ -A@6@ <2@@`2@%@AX}@@lAp 22@$(T:,"*8,!AY}  %6-($$ 6-R:,$*@A`! "6-%!6-%"@6-&6-&AZ} "*!6-6-& "* 6-6-%'"*!@6-@'6-& "* 6-6-% A[}   A`J2A@/2A5@3 =2G2J$8, A8@wA\} + 6-8, 6- '68,-+  6- 6-%!@6-"= 6-&68,-8,%A]}! '6-+ / 37 =6-,"*8,"$6A ;a 6-8,6-@ &6-*. 2 ;68,-A^}G6-@Q@U a6-@)8,)A0E> 6-% @!-((4@> AA_}J8,))A@OG68,-8,% !@'-1(8,=@G AT8,)APA`}YG68,-8,% !@'-1(8,=@G A^8,"*"6-cM *6-% !@Aa}'-4(@@@D J6-M$h()(AmJ68,-8,% !@'-1(8,=@Ab}A G6-J$r A| 68,- A*2@@ '2*$/ 6--@"6-Ac}%8,& ,!/$9@-1( GAME OVER! 5 9 5 +@-!(SCORES'-5(---Ad}---? -!( Ҡ: 8,'-?( Ҡ: 8,$ "-$( : (F:B2y,6-Ae}@( A@ A I -@-=( PLAYER # I6-@L "6-Af}@6-!6-)-46-%8,8 >"B L AL "6-@36-)-@46-%8,8 >"BAg} L A 6-    A2 -&( NO MOVE * . 2  " "APAq}B%DOS SYSB*)DUP SYSB SDUPBASICBASB_DUPBASICM65BuuELECTRA BASBGDW1 BASBGDW10 LSTB GDW11 LSTB) GDW2 BASB6GDW3 LSTB9GDW4 LSTB<GDW5 LSTB>GDW6 LSTBEGDW7 LSTBHGDW8 LSTBKGDW9 LSTB<NPEBBLES BASBUNSPRIT1BASB UNSPRIT2BASBUNSPRIT3BASB UNSPRIT4BASB7UNSPRIT5M65B+VIDEODSCBASK @-2(COMPUTER THINKING86->6-K6-6@0& 6--@"6-%8,& D "-Ar}2(@ NO MOVE 6 : D AP. 6--6-%8, ."A8 A@--@As}8,! 6-#'- A0 + -68,-8,"! + A &!-@68,-8,! 0! 6-At}8,6-6-!68,-D 6-&6-B2yN 6-%!@6-X "6-b.68,-8,%"6-Au}.8,"Al6-8,68,-o,8,"*"* "68,-8,%, Ar(8,"*"68,-8,%( AAv}v(8,"*!68,-8,%( A(8,"* 68,-8,&( A:8,"*!68,-8,%"068,-Aw}8,&: A:8,"* 68,-8,&"068,-8,%: AC8,"*!68,-8,%'68,-+968,-Ax}8,&C A98,"* 68,-8,&'68,-+968,-8,% A # -8,!6-8,#6Ay}- 6 -"( & ,6-6 AP;@,6-(6-@46-@@6-@Az}L6-@X6-@d6-@p6-@|6-@6-@ 6-@+0YAR16-F:A`A{},%F:Aa,$AV96-%A%I%Q%Y%R%@(@e.%@)F:A`,E%@0F:AA|}a,R(>:A%,/ -(PEBBLES-/(an ancient game C-@$( of strategy1-@@C( BY CLA}}IVE KINGA-@ -(DO YOU NEED INSTRUCTIONS1A4YA 6-@06-@`'6-AP36-A`A~}?6-AK6-@@W6-Ac6-@ o6-@Pu6-{6-6-A`6-AU ++9@,9@,9A},9@,*6-@68,- '68,-068,-66-4 >] +@/6-F:A`,%F:Aa,$AV76A}-%E&@qM%U%]%HE%@A@e.%@BF:A`,E%@CF:Aa,Rs ,A}/@r%,@7/@r@C,@"U/@r@"a,@0s/@r@0\A-@r,A}%/@1,@"=/@0A f-@  pC@-*( # OF PLAYERS:0-C(A} DIFFICULTY:zL -%(press start to begin+-L(@use option & select 6-F:B2y, "A 2 A}"6-%!6-#"@6-%!#6-7-@("-@)(- 7 A "A}A @ - ( 򠣱0 * - ( 򠣲0 * A ` -(0! -!(A}0$ -$( ) 6-$%"6-@) AP AP_-@A}_(KThe object is to capture the majority of the 'pebbles'. Use the joystick toRR(Jplace the cursor under the 'pit' of A}your choice, then press the trigger.4*("The contents of that pit will then4 ASS(Kbe picked up and distributed A}one by one into the other pits from left to RR(Jright. When the last pebble is 'sown' the contents of that pit are takeA}n 4*("and sown in the same manner. This 4 ASS(Kcontinues until the last pebble either lands in an emptyA} pit or ends QQ(Iin a pit bringing the total to three. If the later, the pebbles are then 6,($'captured' and added toA} the player's6 ARR(Jscore. During a turn if any pit is brought up to three (without ending SS(Kin that pit)A} the pebbles are captured by the player in whose territory they6,($reside. The top row is player #1's 6 ARR(JA}territory. The bottom is player #2's or the computer's. A player always SS(Kstarts his turn with a pit in his own tA}erritory. When the total # of 6,($pebbles left is less than 6 the game6 ARR(Jis over, and the scores will beA} dis- played. To play again press start. PP(HBy the way, each pit will show a max- imum of 9 pebbles, but thee may beA},,($more! 8-@@$( GOOD LUCK!. A8 AL=-@@ *(A}Ӡξ.:-@=$ D:PEBBLES.BAS@$( GOOD LUCK!. A8 AL=-@@ *(@8 Program Listing 1:Un-sprite LoaderBy Jason Leigh & B!#(έE}Ӡ&}&&201,10,208,3,76,43,96,201,20,208}""3,76,91,96,201,2,208,3,76,94}%%96,201,40,208,3,76,103,96,201,E}4}$$208,3,76,109,96,201,8,208,3,76}%%115,96,96,160,0,173,1,6,133,208}""173,2,6,133,209,24,46,1,6,46}%%2,6,200,192E},3,208,244,24,38,208}%%38,209,24,165,208,109,1,6,141,1}""6,165,209,109,2,6,141,2,6,24 } 96,32,43,96,24,46,1,6,46,2 E}}""6,24,96,32,91,96,76,94,96,32 }$$94,96,76,94,96,32,109,96,76,94 }$$96,201,2,208,3,76,143,96,201,4 }$$208,3,76,152,96E},201,8,208,3,76}""158,96,96,24,110,2,6,110,1,6}&&24,96,32,143,96,76,143,96,32,152}&&96,76,143,96,174,11,6,189,208,98E}}%%141,16,6,189,224,98,141,17,6,96}!!173,7,6,141,1,6,169,0,141,2} 6,173,17,6,32,0,96,173,1,6}""141,14,6,173,2,6,E}141,15,6,24}##173,3,6,109,14,6,141,14,6,173}!!4,6,109,15,6,141,15,6,173,5}6,141,1,6,173,6,6,141,2,6}##173,16,6,E}32,121,96,24,173,1,6}##109,14,6,141,14,6,173,2,6,109}$$15,6,141,15,6,96,104,104,141,4}##6,104,141,3,6,104,141,6,6,10E}4}%%141,5,6,104,104,141,7,6,104,141}$$9,6,104,141,8,6,104,104,141,10}++6,104,133,207,104,133,206,104,104,141}##11E},6,169,0,141,20,6,32,164,96 }""32,180,96,56,173,8,6,237,5,6!}!!141,1,6,173,9,6,237,6,6,141"}""2,6,173,16,6,32,121,96,17E}3,1#}##6,24,105,1,141,12,6,56,173,10$}!!6,237,7,6,24,105,1,141,13,6%}((162,0,173,12,6,129,206,230,206,165&}&&206,201,E}0,208,2,230,207,173,13,6'}))129,206,230,206,165,206,201,0,208,2(}%%230,207,169,0,141,19,6,141,18,6)}$$162,0,24,173,14,6E},109,18,6,133*}''208,173,15,6,105,0,133,209,173,20+}&&6,201,1,240,7,161,208,129,206,76,}**189,97,32,145,98,230,206,165,E}206,201-}%%0,208,2,230,207,238,18,6,173,18.}%%6,205,12,6,144,202,169,0,141,18/}##6,24,173,14,6,109,17,6,141,140}##6,1E}73,15,6,105,0,141,15,6,2381}$$19,6,173,19,6,205,13,6,144,1682}$$96,104,104,141,4,6,104,141,3,63}%%104,141,6,6,104,141,5E},6,104,1044}))141,7,6,104,133,207,104,133,206,1695}$$1,141,20,6,32,180,96,162,0,1616}((206,141,12,6,230,206,165,206,201E},07}((208,2,230,207,161,206,141,13,6,2308}))206,165,206,201,0,208,2,230,207,1739}$$16,6,201,1,208,3,76,142,98,238:}##E}14,6,173,14,6,201,0,208,3,238;} 15,6,173,5,6,141,1,6,173,6<}""6,141,2,6,173,16,6,32,121,96=}""24,173,16,6,32,0,96,56,1E}73,5>}""6,237,1,6,170,173,16,6,201,8?}&&208,6,189,240,98,76,139,98,201,4@}((208,6,189,249,98,76,139,98,189,253A}$$98,E}141,21,6,76,146,97,173,16,6B}((201,1,208,5,161,206,129,208,96,169C}((0,141,22,6,165,208,133,204,165,209D}++133,205,198,E}204,165,204,201,255,208,2E}((198,205,160,0,161,206,204,21,6,240F}##9,24,42,46,22,6,200,76,184,98G}((129,208,161,204,13,E}22,6,129,204,96H}1,1,1,4,8,4,8,4,8,2I}2,2,1,1,8,4,40,20,20,10J}##10,20,20,40,40,40,40,40,40,40K}20,40,8,7,6,5,4E},3,2,1L}0,8,6,4,2,8,4M}* 767 BYTESd}0-Af")BEv%- 0$ D:PROG1.BAS20,40,8,7,6,5,4Dn+,GRMODWDCPWDPSTBUFBUFFEMECOPPASTI} Program Listing 2:Un-sprite demonstration 1By Jason Leigh(Copy, paste & sI}croll)w6-@6-BHB'6-BPw4;A,E67@,.V67A,.n67@,.7@,w6I}-C:,( Ԡ2<3+@36-F:@,%F:@,$AVF""( Draw random shapePO-@I}%@:6-H:@,$$@%@OH:@,$@Z;-%@%+$@,%,3/%@7 I}; d226-?:<<<<@ <@ <<,n( Paste shapexZ-@@@.6-H:@,$AI}`E6-H:@,$@PV6-?:<<<<,Z  Ԡ+6-6-@!!( HorizI}ontal scroll:-@A(%6-%@66-?:<<<<,:  Ԡ+6-@@6-I}( Vertical scroll:-@@@%6-%@66-?:<<<<,:  Ԡ+6-I}6-"( Diagonal scroll,H-@@P%6-%@36-%@D6-?:<<<<,H 6I} + D:PROG2.BAS Diagonal scroll,H-@@P%6-%@36-%@D6-?:<<<<,H 6HDEGRMODWDCPWDPSTBUFBUFFEPTMEABBANCOUNXYXYCOPPASTM}@ M}Program Listing 3:Un-sprite Demonstration 2By Jason Leigh$$(2.5D rotating crystal matrix)M} w6-@6-BHB'6-BPw4;A,E67@,.V67A,.n67@,.7@,w6-C:,C M}@ +?("Number of points in crystal (3-10)C!! @)!@@ (]+@36-F:@M},%F:@,$AVEAR@W@Z(](2<Š٠ӛFP% 9, 6-@M}%6-@Z<6--@&68,-86-%+A`',< d7+-+A`',&@@76-M}n00((GENERATE & COPY EACH ROTATION OF CRYSTALx-@6-%@S6-G:8,,$@ %A`;6-E:8,M},$@%@G"@M6-S6- ,@/3,A`@c/-,A`@3/' 6M}-6-#68,-8,%@'  ,/S26-?:<<A1<@a<A<@<<,@6-%AO(@M}}S ŠӛH +AR@"(H(! PRESS A KEY TO BEGIN ANIMATION F:AdM},"AUA@AdAU!6-A-6-@`?+@%@Y0@s0@M}@0@@@-C:,&AA6-?:<<<<, 6-%6-%"  @)!APM} 6-6, !Ag) @ 6-66  A` D:PROG3.BAS<<, 6-%6-%"  @)!APLN?@BUFGRMODPPBPSTSTEESCRTLMEDDMEDOWACROSCOUNADQ} ProgramQ} Listing 4: BASIC Un-sprite equivalentBy Jason Leigh ;A,* +&(GRAPHICS MODE (0-8)*Q}-" (# #B0-"# 2+@<FGenerate random shapePZGQ}-@%@26-H:@,$$@GH:@,$@d;-%@%+$@,%,3/%@7 ; Q}Copy window(START VECTOR->( END VECTOR->%%6-F:@,%F:@,$AV#Q}6-%$%P:',#6-P:+&,', 6-& 6-"-,D-6-%@067,.>:F:%,,@+%,Q}AUD 6 6-% Paste Window(PUT BLOCK AT->6-%$%P:',6-&-Q}05-6-%@1+%,@:7<,,5 : 6-% DN'Pixels Per Byte'1,1,1,4,8,4,8,4,Q}8$'Bytes Per Line.' 40,20,20,10,10,20,20,40,40 D:PROG4.BASN'Pixels Per Byte'1,1,1,4,8,4,8,4,PI X; ************************** X; * UN - SPRITES * X; **************************(X; Assembler used : U}MAC652X;<EIF"X;Program to transfer blocks ofPX;screen data in a window.ZX;dX; BY JASON LEIGH 8/28/86nX; AU}NALOG COMPUTING 1986xX;X;To use routine in BASICX;WX;COPY=USR(WDWCPY,Screen Start,StartX,StartY,EndX,EndY,Buffer AU}ddress,Graphics Mode);X;('Graphics mode' corresponds to those on the XL & XEs)X;AX;PASTE=USR(WDWPSTE,Screen Start,StarU}tX,StartY,Buffer Address)X;X;X; *** EQUATES ***X;LOVAL ;;Lo Byte Param.HIVAL ;;For X and /U}.SCRNLO ;;Screen RAM.SCRNHI ;;Start.STXLO ;;StartX."STXHI ,STY ;;StartY.6EXLO ;;U}EndX.@ EXHI  JEY  ;;EndY.TGRMODE  ;;Graphics Mode.^ DX  h DY  r!TLMEMLO ;;Top Left corner|U}TLMEMHI ;;RAM location.PPB ;;Pixels Per ByteBPL ;;Bytes Per LineACROSS  DOWN &DIRECT U};;1=PASTE & 0=COPY WNDWSHIFTS ;;Shift alignTEMPSHFT TEMPLO;;Temporary. TEMPHIBUFLO;;BuU}ffer Address. BUFHITMPLOCPY;;TEMPLO-1TMPHICPYX;X;*** SUBROUTINES ***X;&X;MULTIPLICATION CONTROU}LLER0X;:`DMULTR> ;;Do multiplicationNHM1;;of LOVAL,HIVAL toX!X10;;accumulator.b M1R>lHM2v!X20 MU}2R>HM3!X21 M3R>(HM4!X40 M4R>HM5!X4 M5R>HM6!X8M6:X; X; MULTIPLY BY 10U} ALGORITHMX; X10%>;;SHIFT LEFT 3*QLOVAL;;TIMES TO X8,4PTEMPLO;;THEN ADD X2.> QHIVALH PTEMPHIRX11,;;3 lefU}t shifts.\ ULOVALf UHIVALp3z)>HX11,!UTEMPLO;;Add to 1 left shift. UTEMPHI, QTEMPLO OLOVAL PU}LOVAL QTEMPHI OHIVAL PHIVAL,:X;X; MULTIPLY BY 20X;$X20 X10;;Multiply by 10..X21,;;X2 algorithU}m.8 ULOVALB UHIVALL,V:`X;jX; MULTIPLY BY 40tX;~X40 X20;;Multiply by 20.!X21;;Double it.X;X; MULTIU}PLY BY 4X; X4 X21!X21X;X; MULTIPLY BY 8X; X8 X4!X21X;X;DIVISION CONTROLLER X;#DIVSR>U};;Divide LOVAL/HIVAL byHDV1;;accumulator.( !DIV22 DV1R><HDV2F !DIV4P DV2R>ZHDV3d !DIV8nDV3:xX;U}X;DIVISION BY 2 ALGORITHMX; DIV2, WHIVAL WLOVAL,:X;X;DIVISION BY 4 ALGORITHMX;DIV4 DIV2 !U}DIV2X;X;DIVISION BY 8 ALGORITHMX;DIV8 DIV4" !DIV2,X;6 X;Get PPB and BPL from table.@X;JCOPYDATA$GRMOU}DETQPIXPBYTE9^PPPBh QBYTEPLN9rPBPL|:X;'X;Calculate Top Left Corner Address.X;!X;Equivalent BASIC stateU}ment:-$X;TLMEM=SCRN+STY*BPL+INT(STX/PPB)X;TLCALCQSTY;;STY*BPL PLOVALQ> PHIVALQBPL MULT QLOVALU} PTLMEMLO QHIVAL PTLMEMHI&,0QSCRNLO;;Add SCRN: OTLMEMLOD PTLMEMLON QSCRNHIX OTLMEMHIb PTLMEMHIlQSTU}XLO;;STX/PPBv PLOVAL QSTXHI PHIVALQPPB DIVS,QLOVAL;;Add to TLMEM OTLMEMLO PTLMEMLO QHIVAL OU}TLMEMHI PTLMEMHI:X;'X;### END OF GENERAL SUBROUTINES ### X;X; %X;**** MAIN COPY BLOCK ROUTINE ****X;4$X;U}Get parameters from USR command>X;HIRWDWCPY7;;Remove TOS\EIf7;; Screen Start Addressp PSCRNHIz7 PSCRNLOU} 7;; StartX of Top Left Corner PSTXHI7 PSTXLO7 7;; StartYPSTY 7;; EndX of Bottom Right Crnr PEXHI7U} PEXLO 7;; EndY 7 PEY 7;; Storage buffer address$ PBUFHI. 78 PBUFLOB 7;; Graphics modeL 7V PGRMODE` Q>U}j PDIRECT;;0=COPY 1=PASTEt X;~ X; Get PPB and BPL for GRMODE X; COPYDATA X; !X; Get TLMEM (Top Left Memory) X;U} TLCALC X; X; Calculate DX & DY X; DX=INT((EX-STX)/PPB) X; ; QEXLO;;EX-STX SSTXLO PLOVAL QEXHI SU}STXHI( PHIVAL2 QPPB;;Divide by PPB< DIVSF QLOVALP ,Z O>d PDXn X;x X;DY=EY-STY X; ; QEY SSTY , U}O> PDY X; X;Main Loop To get block X; X;Store DX & DY first X;as headers of the buffer. X; $> QDX PU}@BUFLO6" #BUFLO, QBUFLO6 R>@ HG1J #BUFHIT G1QDY^ P@BUFLO6h #BUFLOr QBUFLO| R> HLOOP #BUFHI X;U} X;Now do loops X;See equivalent BASIC code. X; LOOPQ>;;FOR DOWN=0 To DY PDOWN;;FOR ACROSS=0 To DX PACROSS U}$> REP, QTLMEMLO OACROSS PTEMPLO QTLMEMHI O>& PTEMPHI0 QDIRECT: R>;; 1 Means PASTE, 0=COPYD FPU}ASTEN Q@TEMPLO6;;Get ByteX P@BUFLO6b !COPYl PASTE PASTEBYTEv COPY#BUFLO QBUFLO R> HF1 #BUFHI F1#U}ACROSS QACROSS RDX DREP Q> PACROSS , QTLMEMLO OBPL PTLMEMLO QTLMEMHI O> PTLMEMHI* #DOWU}N4 QDOWN> RDYH DREPR :;;Done, RETURN TO BASIC.\ X;f X;p &X; *** MAIN PASTE BLOCK ROUTINE ***z X; I WDWPSTE7;;U}Get parameters. EI 7;;Get Start of PSCRNHI;;screen RAM. 7 PSCRNLO 7 PSTXHI;;StartX 7 PSTXLO 7 7U}PSTY;;StartY7PBUFHI;;Buffer Address$7. PBUFLO8Q>BPDIRECT;;1=PASTELX;VX; Calculate TLMEM`X;j TLCALU}Ct$>;;Get DX, DY~ Q@BUFLO6PDX #BUFLO QBUFLOR>HH1 #BUFHIH1Q@BUFLO6PDY #BUFLO QBUFLOU}R>HH2 #BUFHI H2QPPB;;IF 1 pixel/ByteR>;;then no shift.&HCALCSHIFT;;else calculate shifts.(!ESC2U}CALCSHIFT#TLMEMLO<QTLMEMLO;;Increment TLMEMFR>P HCONT1Z #TLMEMHIdX;nX;Calculate Shift pntrxX; = STX - ((STXU}/PPB)*PPB)X;CONT1QSTXLO;;(STX/PPB) PLOVAL QSTXHI PHIVALQPPB DIVS,QPPB;;(STX/PPB)*PPB MULTU};;; STX-((STX/PPB)*PPB) QSTXLOSLOVAL;; Only lo byte>;; relevant.QPPB;;Get # of shiftsR>;;from shift tabU}les." HCCCN1,QSHFTABLE896 !CCCE@ CCCN1R>J HCCCN3TQSHFTABLE49^ !CCCEhCCCN3QSHFTABLE29rCCCEPSHIFTS;;SU}tore shifts.|ESC!LOOP;; Put to screen.X;X;Subroutine to put bytes in"X;correct position with correctX;number oU}f shifts.X;PASTEBYTEQPPBR>;; If not 1 PixelHPROCEED;; per byte thenQ@BUFLO6;;shift, elseP@TEMPLO6;;jU}ust put.:PROCEEDQ>PTEMPSHFT;;Clear Temp QTEMPLO PTMPLOCPY QTEMPHI&PTMPHICPY;;Copy TEMPLO/HI &0"TMU}PLOCPY;;decrement by 1.: QTMPLOCPYDR>N HKONTX "TMPHICPYbKONT%>;;Do requiredlQ@BUFLO6;;# of shifts.vKONT1V})SHIFTSFEXT,U? UTEMPSHFT3 !KONT1 EXTP@TEMPLO6;;Put on screenQ@TMPLOCPY6LTEMPSHFT;;OR byte-1V}P@TMPLOCPY6:X;X; Pixels per ByteX; X;H$X;Table of shifts for 8 PPB modesRX;\(SHFTV}ABLE8 ========fX;p$X;Table of shifts for 4 PPB modeszX;SHFTABLE4 ===X;$X;Table of shiV}fts for 2 PPB modesX;SHFTABLE2 =X;X;767 Bytes. PPB modeszX;SHFTABLE4 ===X;$X;Table of shiT?BABPUSSLDELA<<For use with Space Archive disk Vol. 3 MZ}ars and BeyondeeWith full duplex I/O and the computer "pushing the fade button" on the video switcher # 15-1274GGAtarZ}i 850 interface - to Pioneer LD-V6000 laser video disk player>>you must use an AUTORUN that initializes the "R:" device Z};A,;@2,z6-A@6-F:B@,2B@&@DB@@PB@bB@@zZ }See LINE 4040 REMarks__The following XIO commands are for RS-232 communications through the 850 interface PORT 1m+@Z }6@@R:mAux1 10 = 10 (1200 BAUD) + 0 (8 BIT WORD SIZE) + 0 (1 STOP BIT)#++@4@Z }A@R:(ddthe XIO 34 is required before printing to #5 - Aux1 240 = 192 (TURN DTR ON) + 48 (TURN RTS ON)2##Z }@@R:7 A <p +AR@"(%(((E(JUPITER, SATURN AND MARSH(p(# PRESZ }S A NUMBER FOR YOUR SELECTIONF.( (.( 1 - Jupiter's red spot in motionP@(@(52 - Jupiter's red spot in color still Z} photographsZS(S(H3 - Computer generated approach and flyover of Saturn's ring planedR(.(#4 - Volcanic erupZ}tions on Jupiter'sR( moon Io (still photographs)xX(/($5 - The first photo from the surfaceX($ of Mars comes iZ}n - July 20, 1976AdAU: F:Ad,"AUA:has a key been pressed?.F:Ad,"@1$6-Z}@. A.F:Ad,"@0$6-. A.F:Ad,"@&$6-. AXF:Ad,Z}"@$$6-6B2yJ-@@PN X A.F:Ad,"@)$6-. A Z}A.@.@@R:``The Aux1 13 in OPEN #5 is an OPEN for INPUT and OUTPUT (12) plus 1 Z}to enable Concurent I/OI+@@@R:IXIO 40 starts Concurent I/O!!XIO 40 starts ConcurentZ} I/O @: :this switches to the videodisk picture and sound @D4EF PPTRANSMIT STATUS (D4)Z} COMMAND - tells the video disk to transmit its status@&I 4 65 AIthis switches back to tZ}he computer screen04 65@`5`` 65 is line feed ( ) plus freeze frame status (65) which means the program Run iZ}s complete: A Xr +AR@90@@@<(?(B(E(H(K(r(" Would you like to seZ}e that againbI!( in SLOW MOTION ?$('(I( Type Y (Yes) if you do.g.(.(# (press any other key if you Z}don't)lAdAUv F:Ad,"AUA0.F:Ad,"@C$6-. A @`#6Z}.@3F3F3F3FCF1BEF# A660000 RUN (CF) VIDEO ON (1B) END PROGRAMMING (EF)L#6.@3F0F3F3FCF1BEF# AN01Z}00 VIDEO ON RUN#6.@3F8F3F3FCF1BEF# A0200 VIDEO ON RUN#6.@3F4F3F3FCF1BEF# A0300 VIDEO Z}ON RUNxV+@%@ (@+(@6(@V(@ JUPITER'S MOON IOz0400 VIDEO ON RUN}Z(@Z}(@:(@ volcano pele is inZ(@ the lower center6.@3F2F3F3FCF1BEF-@AZ} g@.@@R:V@@@R:c @g " @Z }D4EF"@4 65A@ A% /+@%@/0@@@(@(Z!}@$(@/(@P(@ NOTICE THE VOLCANOo(@ ERUPTING ON THE(@ LEFT EDGE OF IOZ"}-@A #6.@3F2FAF3FCF1BEF# A0400 VIDEO ON RUN#6.@3FAF3F3FCF1BEF# AZ#}0500 VIDEO ON RUNHHThis subroutine loads the memory of the Pioneer video disk player-XXFirst, the Pioneer is told wheZ$}re in its nonvolatile memory to program the commands__Then the commands to control the video disk player are programmed aZ%}t that memory location6.6F11 A0KK6 (6F) PAGE (11) MEMORY SIZE command for the Pioneer videodisk player