ML }  X c0C)HCCH Mhhݩh `eCDiCD`  RyHP   * 1H0芢@) Y0.Ș` i #(PMR\ \b Pgi 0  % @ / ՠ`d   0DDԝLyN@  )?HI Y0`HIJH) * J j * hJJJ )HJ h i     } YS S0 i`΢ϣ߳H J3xj2h} 1 |9 ӭ45(420 * (0241өX.`  R *i)Lvw  ~*P}E 5 LN(G E  r s k rsrL ( E LO(0d( L iE0O +)$IC  H S8 }q p h   j 8no CDLQ CFl M  LO Ri)Llk2'")*F }$F$F$F$F$ 5 )ШF/Șl]kpqС,LQ/A! Ti)Zlk@ ܬ/i)(")")k }$F$F$F 5$/L /lF@jj(LNkle$$%8(k()` R 8 ELO Ri)^>jf | NrC s } ) vw5g   enfo Glvw LQ@iLm>j FL ~Jjjjii p qEh }jlrs`LQ:$ȱ$@+[_#{ 8  Խut! ai 8   E I   ] C } H h    ˰ 8  N   Lm E  ,  [ `LQ ,/ 8 ~/  Ơ? ѩ}/  [ /Lj0?MoLn FjMqLp NklLOLQnLoMlNLO R"(+}ըHH`Q R!!  % !   / .   FȑF! /GF \H"+0+* }! F tLQnm: J~nTF1F  *n+)5! n (, n)1JJJn(n*o} I ,0  ci a oF? @ , 8,0 ʩ0H Eh   i}  D ]DmmFLQvtu`*&!*@h ] 0 ^0` c 0l$$%}()()%*&J%H,@hH hH@,h $% 8i8$(%)0hhH ]h`() c 0H c 0 h}`hhh&JJ ](ll  LQ0  /qnoHH 9 9 H H  I9  9 } Nd EH  Q8 o n  FnoL HII/ Ih8`h`Lnon`no`u F }E VEhLO/luF l0BF/lɜɛ׽hE N  b VFL FREE SECTORS C} H) *Fh ):FȽ F FC IH' 0 d  i:Fȩ/F.l`CD/08HDIC}IHȰ/F`ȱ$>.+.i ȱ$:刄H !A \ Hȱ$*?ȝ 2. ? [_{ ,0}-:) 0$:>WI  IТ,LQH  0hLd ~ t u`C ?( 0(C.` E } R =! .ti S0N EE D XC )0')AY  )ע ? 0E088FG \o}n  (HhLcL3 iJ i Lqp 0=rspnqopqlk`jZj0  j FL`H}FhȑFȽlFi0 h FFLFpvqwgneofLF pq7  G0i 0 FJJh1FqȱFpȱFk`B!}08`hEE D 8. =D}tui( TʩL`b!)    cȌaȌd b`aab}H8 hdaHcd8 cH hHH  \h hc` =Hh I8ih( t  ( t(!` L\}CJfCJfCJfCDfC` a  HII  INdh  `h  `n)8jHniPoijIjFIjFIjh` a } I 38  8H0 I  ' H LQ8j Y  8j NdY  &I &I &IHeH.p!}Iiq  `!.莿 2Jjj }.m Ȉ!m FG` ɩLQ z "} e Hi04 \ Ȍ  8 i h !`I0 `C Y8.`DOS SYS#} I  ` ~ݩ.C/`ba.m۩mѤC9 `C L] H  ,- '0 l $}, BLVDE`D1:AUTORUN.SYS8hhJ ȱHȱIȱBȱDȱEeeHHLV)  %}1*  ,,p-  0 I &  '0   Lw)l, 0  I&LD1:MEM.SAV&}E:D1:DUP.SYS9Y0ӷ>* rH7m8h١jx@b fi}Cځ9DjwЧ'} D  C D     )16CS S)  C)D1 p p (}0 C9DI pCDL~CiCDiD` DD˙` d J)L !)}D L(( LL()  L| L( S LH 0p n  *} CY?  q  L L  ` )+} `A! d߰")-݆ "  $G@LLL&0") $G%,}H0 3S8`G ȱG ȱG   Gȭ Gȭ GG}GHiH8(()) G$H% `(0-})8` d)L ݆ & LGȘ ݆LL d  ! LL d)N>Q  HH).}  hyhyB q L> Lm JJ  Ln*` dB%'/}8  H H` 1 { LL   !L     Hh SY?  q  1L0}  !? S   q 1 L   Ll  Lg E`L   !L)  q 1L1}) `L0AM݊L݉ ML  N݆LLLNLMLHG!@2}1F GȱGLLEEȩÑEȑEEȑE Ed E7EȩE  q3} L !,0,0SGɛ L 1 !L EHEh W G gLLSROTCES EERF 4} G) *Gȩ GȽG GȌd q q G`  8   0G  `D5}CEDC0X:Ȣ Y ȱC* ? 0.. , 0%n ?A[ 0 : L`L  `, 0`Y6}`piH n0)բY? 08`0 7}  0$L GGȽG L `8L`L8}8`  05G)݁,G)ȱGȱGHh0})Hh` B! 8`8iiiLE`9}E8FEh( l0`ɃLL L8^~jj8jHi hEEEiEȱEiE` dTE:} H8EEȱEEȩEh J E8   . m  i`LI!)E1FR;}1LJ舩9GIH`LJJ`HGHh l`<} S gL   8 rii `дCDCG W  =}C  Lq` X٨`DOS SYS IIIIIIIIIIIIIIIC`0 ߩ0}}>} &@ |||||DOS DOSDOS SYS }?}}@}CDOS SYSA} 0`BDELV !B B}`LVUQ   ]   TU J ]L!T  #      TU C} L ? .  t`GBJ V~DEHI B V0dVD}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEhE}DEL8HI   0 HI,0 0  9 .G VLOF},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D1:MEM.SAV J y08 B|DEHIG} V0 0`B;DELV䌚 !B y`@ʆ v s? F0Ξ05: [ BDEHIH} VY8 B V  @  /DE `E:D1:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO I}STILL RUN DOS B;DE J V (` 9 V⪍ ઍ  -J}LLu DEHILV 9 .l 9 .l  `` s$B VBHK}I|DE V BLV nB,DE J V* \*` B V BLVDEHI BLVLL}1 3u H232435; 1 ;  hh@2 e1i1LHҍ 00) 08 109hh@ Ҡ2eM}1i1232435ޥ<<8}&&MAXENMAXLEVEKNNNNNNNNNNVBLANKINITDLIBOPCSEVBLANBOINIHIGLOPMBASPMDLISENCHATRIO}ACTIVLVAMOUNSTRENYPOXPONUMPLAADNUMVESTARSTARTXENYENSPEESTARTMAXFALLIFTRIGMAXLIFSTARTLVP} Q} R}!"#$%&'()*+,-./0S}1234567@89:;d**********************nT}* BOPOTRON *x* KYLE PEACOCK ** ANALOG COMPUTING ***********************96-@U}6-@'6-@36-@96-"71;A#,;A,;@,;@0,76-V}wAF:A,&16-F:A,$AV;+OA6'AVaBBAmARw A 6W}-C:,6-C:,6-C:,%-A#"!67,.>:,% %-A"!67,.>:,% O-@"!67,X}.>:,% .6-C:,?6-P:'AV,O6-&$AVAA,%-@0"!67,.>:,% 6g6-P:Y}+F:AE,%,',$)BBy76-$AVIAY@FUB2wgA#@3J#-A'"%%Z}# ^Q%6-F:Aa,$AV%F:A`,5%%A(G-%%@(MQ r=6-P:H:,$@,0'0/[}-92= |*** CONSTRUCT BOARD ***[ A@ AP! A`+ Ap5 A? A \}I A0[BBA AA7*** GET THINGS GOING -( @w*]}6-F:A7,!6-F:A,*6-T:,"*!A )A7-AU)2Q6-P:H:,$AV,%6^}-P:H:,$,-050AB2VMB2WQ 1 226-&'6-%1 A`>>2A&A_}$+R:,@,&@P$+",!! @)!@AC!6-P:+F:AA,&@E,',96-P:+F:AE,`}&,',C2&2-AU62*2%26-&0? -( !6-F:A,? @)!@Aa}: D1)-&+$+"@,,%+$+"@,,1(N;+-&+$+"@,,%+$+"@,,&3(;6-&X 2b}2b!! A6)!A7A0l@ 6-%"-@622A6 @ A@v6-&c}&$+",AD)A`KA7---AU@ 72C2%G K =A7d}-!2/B2H%3 = A@6-%$+,!A ApV-@0( Πe}>:%Av,6-@(L-@$V(-@&($L 6- A-D(&GAME OVER - PRESS BUTf}TON TO PLAY AGAINL0T:,A # A@6-6-# Ap% --@$(" %$g}*** CONSTANTS1,2,3,4,5,6,7,8,9,10 *** VERTICAL BLANK ROUTINE$.__216,238,199,2,173,1,6,240,3,h}76,98,228,165,203,72,165,204,72,160,0,162,0,189,5,6,157,0,2088``189,9,6,141,2,6,24,113,205,141,3,6,200,140,4,6,224,0,240,1i}3,165,203,24,105,128,133,203,165Baa204,105,0,133,204,173,2,6,56,233,10,168,169,0,145,203,200,204,2,6,144,248,173,3,6,24,10j}5,10L^^168,169,0,145,203,136,204,3,6,176,248,188,13,6,16,24,188,15,6,189,9,6,56,249,45,6,201,11V^^144,10,201,245,176,6,k}169,0,240,7,144,154,172,4,6,177,205,172,2,6,145,203,238,2,6,238,4,6`ZZ173,2,6,205,3,6,208,203,189,13,6,16,29,169,0,157,13,l}6,224,2,144,20,188,15,6,185,35,6j``157,5,6,185,45,6,157,9,6,169,15,157,17,6,172,4,6,232,224,4,144,188,104,133,204,104,133,m}203t\\174,78,6,48,58,222,19,6,208,53,189,15,6,240,7,169,255,157,15,6,48,41,188,17,6,185,25,6~\\157,19,6,189,7,6,217,55,n}6,208,59,189,11,6,217,65,6,208,51,169,1,157,15,6,169,15,157,19[[6,16,8,48,6,16,198,240,84,208,82,254,17,6,189,17,6,201,5,o}208,4,169,0,240,6,201,10,208YY2,169,5,157,17,6,168,185,25,6,240,227,16,51,189,7,6,24,125,21,6,157,7,6,189,11,6,24VV12p}5,23,6,157,11,6,236,81,6,208,26,173,5,6,24,125,21,6,141,5,6,141,6,6,173,9,6,24[[125,23,6,141,9,6,141,10,6,202,16,165,169,q}255,141,81,6,174,78,6,48,90,173,5,6,56,253,7YY6,16,5,73,255,24,105,1,201,7,176,23,189,11,6,56,237,9,6,201,12,208,5,142,81r},6,208,7WW176,5,169,1,141,1,6,169,0,157,21,6,157,23,6,188,17,6,189,7,6,217,55,6,144,6,240,9[[169,255,48,2,169,1,157,2s}1,6,189,11,6,217,65,6,144,6,240,9,169,255,48,2,169,1,157,23,6ff202,16,163,165,88,133,207,165,89,133,208,173,9,6,56,233,6,t}74,74,170,240,16,165,207,24,105,40,133bb207,165,208,105,0,133,208,202,16,238,173,5,6,56,233,44,74,74,168,177,207,174,81,6u},48,2,169,1dd141,76,6,41,127,141,75,6,173,9,6,201,27,144,23,165,207,56,233,80,133,207,165,208,233,0,133,208aa177,207,v}201,1,240,109,201,8,176,105,173,75,6,240,48,206,77,6,48,3,76,98,228,72,169,1,174,16ZZ208,240,1,10,141,77,6,104,201,2,144,w}4,201,8,144,26,173,81,6,16,53,173,9,6,41,1,208,7]]173,9,6,41,3,208,39,238,82,6,169,1,208,22,173,120,2,201,13,208,9,173,9,x}6,201,98,208,235 ^^240,16,201,14,208,12,169,255,24,109,9,6,141,9,6,141,10,6,173,75,6,240,81,173,82,6,205,83\\6,144,5,1y}69,1,141,1,6,169,0,141,82,6,173,120,2,201,7,208,22,173,5,6,201,198,176,49,173__75,6,201,8,240,42,201,12,240,38,169,1,208,z}24,201,11,208,30,173,5,6,201,47,144,23,173,75,6(MM201,9,240,16,201,13,240,12,169,255,24,109,5,6,141,5,6,141,6,6,76,98,228{}2* 723 BYTES<F*** VBLANK INITIALIZERPZcc216,165,16,41,127,133,16,141,14,210,104,104,141,79,6,104,141,80|},6,104,133,204,104,133,203,104dbb133,206,104,133,205,169,1,141,1,6,165,204,72,162,3,160,0,152,145,203,200,208,251,230,204,}}202nVV16,246,162,9,157,25,6,224,4,176,3,157,13,6,202,16,243,141,82,6,141,17,6,141,19,6xTT141,20,6,142,78,6,169,5,141,18~},6,104,133,204,174,79,6,172,80,6,169,7,76,92,228* 103 BYTES*** DLI ROUTINE72,173,0,6,141,10,212}141,9,212,104,64*** PLAYER IMAGE DATA ***!!12,126,0,60,126,126,126,126126,0,0,0,10212},0,24,60,24,0,66,0,0,6060,126,0 1,255 1,255"*** CHARACTER DATA,60,0,0,0,85,68,68,85@}8,8,8,10,89,72,72,90J0,0,0,170,85,68,68,170T%%128,128,128,128,149,132,132,149^8,8,8,10,8,8,8,10h0,0,0,170,}0,0,0,170r%%128,128,128,128,128,128,128,128| 191,191,170,42,85,68,68,85!!254,254,170,168,85,68,68,85""63,12,21},170,170,150,170,170!!48,48,84,170,154,86,154,1702,10,42,170,85,68,68,85!!128,160,168,170,85,68,68,85128,}60,12,15,2,61,2,253!!2,60,48,240,128,124,128,1270,0,0,0,255,204,204,255*** SET UP BOPOTRON!}AA!B2V!AA6!B2W3AAQ'AA13A #A %+}@ $,Y "#AA$%@H9AB$%@HIAE$%YAF$% $40,4,500,500H}37,23,200,500\0,12,300,500p16,13,300,50037,23,300,650  *** 'EXIT' GIRDER  #A0%+@ }$,  "-($ 0,40 0,23D 38,5X 23,23l 35,5*** FLOOR DRAW#A@}%+@ $,4"-"-%-,(!0 4 $MM9,0,8,4,17,26,4,3,13,9,16,23,9,30,35,9,7,13,13,}16,35,13,7,30,18,0,38,23KK9,7,15,7,18,23,7,14,15,12,18,19,12,6,10,16,23,28,16,35,36,16,2,5,19,0 38,23,EE8,0,5,5,0},5,13,0,5,23,34,38,5,34,38,13,34,38,23,12,19,9,22,27,9@NN12,16,23,4,16,23,9,0,5,12,30,38,12,16,18,14,21,23,14,12,15,16,24,}27,16,2A&&11,18,28,38,18,34,38,23,16,23,23TMM20,22,27,5,7,13,8,16,17,8,18,19,9,20,21,10,30,35,10,22,23,11,24,25,12,5U}PP13,13,26,27,13,28,29,15,30,31,16,32,33,17,34,35,18,20,21,19,18,19,20,11,17V 21,9,10,22,2,8,23,32,38,23*** }LADDER DRAW#AP%+@ $,2"-"-%-.(%&'2 9 -(>:@4,#$"-}5(>:@4,#$9 $''4,4,9,27,9,13,36,13,18,4,18,23,31**4,12,16,11,12,16,20,19,23,6,16,23,292,13,23,}1,13,23,36( 3,4,9,19,18,23,36,12,18,36<3,5,16,36,18,23,36,8,13,2pz*** BATTERY DRAW#A`%+@ }$,#"-"-#( -&( $ 1,0,23 1,14,23 1,34,13 1,16,9$ 1},0,23Xb*** POWER UNIT DRAWlv#Ap%+@ $,#"-"-#(,- -&(./ }$2,3,9,23,92,4,16,37,162,0,5,12,92,0,12,21,14 4,20,5,0,8,8,13,10,13@J*** PLATFORM PR}OGRAMMINGT^6-?:<<%A<,h#A%+@ $,r)"-6-%$+!,!")-|O"6}-$%@H/6-$%@?6-$%@HO6-$%@) "AA%%)AE%%IAa%A}q%-A%;A%IA%$ 6-% A&! $$II2,3,14,17,14,9,2,14,9,14,13,1,14,}13,14,17,1,2,9,4,15,4,1,15,4,9,4,3DD2,4,16,23,16,4,3,24,7,34,23,2,16,4,16,23,3,24,7,34,23,4,4,7,120024,12,2,5,7,0,17,}1,24,12,7,12,2,5,7,0,17,1NN2,5,18,9,18,5,2,18,5,6,5,2,6,5,6,23,2,6,23,18,23,2,18,23,18,23,1,5,20,23@@32,23,2,32,23,32},5,2,32,5,20,5,2,20,5,20,9,2,20,23,20,23,1882,3,0,19,0,23,1,0,23,32,23,1,28,13,24,13,2,4,19,232219,14,1,37,12,24,4,2,}14,4,6,12,2,6,12,6,18,2@@2,4,30,23,14,18,2,5,8,5,8,3,5,8,5,14,2,28,14,28,5,2,3,8,23%%14,8,2,14,8,14,8,3,28,5,34,11,2}D2:BOPOTRON.BAS@@2,4,30,23,14,18,2,5,8,5,8,3,5,8,5,14,2,28,14,28,5,2,3,8,23%%14,8,2,14,8,14,8,3,28,5,34,11,20100 ;0110 ; **************************0120 ; * BOPOTRON *0130 ; * by Kyle S. Peacock *0140 ; * ANAL}OG COMPUTING *0150 ; **************************0160 ;0170 ; *******************0180 ; * ZERO PAGE USAGE *0190 ; *****}**************0200 ;0210 PLADR = $CB ;ADDR PLR AREA0220 PMSTR = $CD ;ADDR PLR DATA0230 SCREEN = $CF ;ADDR OF S}CREEN0240 ;0250 ; ***************************0260 ; * HARD/SOFTWARE REGISTERS *0270 ; ***************************0280 ;}0290 POKMSK = $10 ;BREAK DISABLE0300 SAVMSC = $58 ;SCREEN ADDR.0310 STICK = $0278 ;JOYSTICK PORT0320 COLOR3 = $02C}7 ;COLOR REG. #30330 HPOSP0 = $D000 ;HOR. POS. PLRs0340 TRIG0 = $D010 ;JOYSTICK BUTTON0350 RANDOM = $D20A ;RANDOM NO.}0360 IRQEN = $D20E ;BREAK DISABLE0370 CHBASE = $D409 ;CHAR SET ADDR0380 WSYNC = $D40A ;WAIT FOR SYNC.0390 SETVBV = $}E45C ;SET VBLANK0400 XITVBV = $E462 ;END OF VBLANK0410 ;0420 ; ****************0430 ; * MEMORY USAGE *0440 ; *********}*******0450 ;0460 *= $06010470 ACTIVATE *= *+1 ;VBLANK ACTIVE0480 STARTPT *= *+1 ;PLR Y START0490 ENDPT *= *+1 };PLR Y END0500 DATAPT *= *+1 ;DATA POINTER0510 XPOS *= *+4 ;PLRs X-COORDS.0520 YPOS *= *+4 ;PLRs Y-COORDS.0530 }STATUS *= *+4 ;PLRs DEATH FLAG0540 PNTR *= *+2 ;DATA POINTERS.0550 XSPEED *= *+2 ;PLATFORM SPEED0560 DELTAX *= *+2} ;PLAT. X-DELTA0570 DELTAY *= *+2 ;PLAT. Y-DELTA0580 SPEEDS *= *+10 ;PLAT. SPEED0590 XSTART *= *+10 ;PLAT. X-START0}600 YSTART *= *+10 ;PLAT. Y-START0610 XEND *= *+10 ;PLAT. X-END0620 YEND *= *+10 ;PLAT. Y-END0630 CHAR *= *+2 ;}STANDING ON #.0640 MOVETIME *= *+1 ;MOVEMENT TIMER0650 TASKERS *= *+1 ;# OF PLATFORMS0660 XHOLD *= *+1 ;X-REG. HOLD06}70 YHOLD *= *+1 ;Y-REG. HOLD0680 SLIP *= *+1 ;ON PLAT. FLAG0690 FALLCOUNT *= *+2 ;HOW FAR TO FALL...0700 ;0710 ; *}*****************************0720 ; * VERTICAL BLANK INITIALIZER *0730 ; ******************************0740 ;0750 CLD} ;CHILL DECIMAL.0760 LDA POKMSK ;DISABLE BREAK0770 AND #$7F ;KEY. THE BREAK0780 STA POKMSK ;KEY N}O LONGER0790 STA IRQEN ;WORKS. (SO?!?)0800 PLA ;# OF VARIABLES0810 PLA ;VBLANK HI/BYTE0820 } STA XHOLD ;HOLD ON TO IT.0830 PLA ;VBLANK LO/BYTE0840 STA YHOLD ;HOLD ON TO IT.0850 PLA } ;PLAYERS HI/BYTE0860 STA PLADR+1 ;STORE IT.0870 PLA ;PLAYERS LO/BYTE0880 STA PLADR ;STORE IT.0890} PLA ;PLAYER STRING0900 STA PMSTR+1 ;HI/BYTE.0910 PLA ;PLAYER STRING0920 STA PMSTR ;LO/B}YTE.0930 LDA #$01 ;STOP OLD VBLANK0940 STA ACTIVATE0950 LDA PLADR+1 ;HOLD ON TO ADDR0960 PHA ;}OF PM AREA.0970 LDX #$03 ;LOAD X-REG.0980 LDY #$00 ;LOAD Y-REG.0990 TYA ;LOAD A-REG.1000 CLEAR}1010 STA (PLADR),Y ;CLEAR PMs1020 INY ;MOVE TO NEXT.1030 BNE CLEAR ;ALL DONE?1040 INC PLADR+1 ;M}OVE TO NEXT.1050 DEX ;ALL DONE?1060 BPL CLEAR ;NO. GO BACK!1070 LDX #$09 ;SET X FOR CLEAR1080 CL}EAR21090 STA SPEEDS,X ;CLEAR OLD1100 CPX #$04 ;MOTION TIMERS1110 BCS CLEAR3 ;& STATUS. PRE-1120 STA S}TATUS,X ;PARE FOR NEW1130 CLEAR31140 DEX ;DATA CONTROL1150 BPL CLEAR2 ;INFORMATION.1160 STA FALLCOUN}T1170 STA PNTR1180 STA XSPEED+0 ;STOP PREVIOUS1190 STA XSPEED+1 ;PLATFORMS.1200 STX TASKERS ;SOUND OFFICI}AL?1210 LDA #$05 ;I DIDN'T THINK1220 STA PNTR+1 ;SO!!!!!!!!1230 PLA ;YES. RESTORE1240 STA PLA}DR+1 ;PM AREA.1250 LDX XHOLD ;VBLANK HI/BYTE1260 LDY YHOLD ;VBLANK LO/BYTE1270 LDA #$07 ;DEF. VBLANK.1}280 JMP SETVBV ;SET IT UP/BOOGIE...1290 ;1300 ; **************************1310 ; * DISPLAY LIST INTERRUPT *1320 ; **}************************1330 ;1340 *= $20001350 PHA ;SAVE ACC.1360 LDA $0600 ;CHR. HI/BYTE.1370 } STA WSYNC ;WAIT A WHILE.1380 STA CHBASE ;SAVE CHR. SET.1390 PLA ;RESTORE ACC.1400 RTI ;B}OOGIE...1410 ;1420 ; ***********************1430 ; * PLAYER DRAW ROUTINE *1440 ; ***********************1450 ;1460 }CLD ;CHILL DECIMAL.1470 INC COLOR3 ;CHANGE COLOR.1480 LDA ACTIVATE ;VBLANK ACTIVE?1490 BEQ FUNCTION ;}YES! BRANCH!1500 JMP XITVBV ;NO. LATER.1510 FUNCTION1520 LDA PLADR ;PLR ADDR. LO.1530 PHA ;SAVE IT}.1540 LDA PLADR+1 ;PLR ADDR. HI.1550 PHA ;SAVE IT.1560 LDY #$00 ;BLANK Y REG.1570 LDX #$00 };BLANK X REG.1580 DRAW51590 LDA XPOS,X ;PLR X-POS.1600 STA HPOSP0,X ;STORE IT.1610 LDA YPOS,X ;PLR Y-POS.1}620 STA STARTPT ;SAVE IT.1630 CLC ;GET PLAYER1640 ADC (PMSTR),Y ;LENGTH. ADD1650 STA ENDPT ;AND }STORE IT.1660 INY ;MOVE TO 1st1670 STY DATAPT ;DATA BYTE.1680 CPX #$00 ;PLAYER #0?1690 BEQ PA}SS0 ;YES. BRANCH.1700 LDA PLADR ;INCREMENT1710 CLC ;PLAYER ADDR.1720 ADC #128 ;FOR DRAWING1730} STA PLADR ;NEXT PLAYER.1740 LDA PLADR+1 ;ADJUST FOR1750 ADC #$00 ;256 BYTE PAGE1760 STA PLADR+1 ;WRA}P-AROUND.1770 PASS01780 LDA STARTPT ;STARTING PT.1790 SEC ;SUBTRACT 101800 SBC #10 ;BYTES.1810 } TAY ;MOVE TO Y-REG.1820 LDA #$00 ;CLEAR ACC.1830 INSERT11840 STA (PLADR),Y1850 INY ;CLE}AR OUT1860 CPY STARTPT ;TOP & BOTTOM1870 BCC INSERT1 ;OF PLATFORM1880 LDA ENDPT ;GET ENDPOINT1890 CLC } ;AND ADD 101900 ADC #10 ;DECIMAL.1910 TAY ;MOVE TO Y-REG.1920 LDA #$00 ;CLEAR ACC.1930 }INSERT21940 STA (PLADR),Y ;STORE BLANK1950 DEY ;MOVE TO NEXT.1960 CPY ENDPT ;AT END?1970 BCS IN}SERT2 ;NO. BLANK MORE.1980 PASS11990 LDY STATUS,X ;GET STATUS.2000 BPL PASS2 ;IF >=0, BRANCH.2010 LDY PNTR-}2,X ;GET POINTER.2020 LDA YPOS,X ;GET Y-COORD.2030 SEC ;SUBTRACT START-2040 SBC YSTART,Y ;ING POINT.}2050 CMP #$0B ;IS IT < 12?2060 BCC PASS2 ;YES. BRANCH.2070 CMP #245 ;IS IT >= 245?2080 BCS PASS2 } ;YES. BRANCH.2090 LDA #$00 ;NO. CLEAR ACC.2100 BEQ PASSX ;BRANCH.2110 BACKUP2120 BCC DRAW5 ;BRANCH PO}INT.2130 PASS22140 LDY DATAPT ;GET POINTER.2150 LDA (PMSTR),Y ;GET PLR DATA.2160 PASSX2170 LDY STARTPT ;GET} START PT.2180 STA (PLADR),Y ;PUT IT PLR AREA2190 INC STARTPT ;INC. AREA PTR.2200 INC DATAPT ;INC. DATA PTR.}2210 LDA STARTPT ;GET AREA PTR.2220 CMP ENDPT ;AT END?2230 BNE PASS1 ;NO. BRANCH.2240 LDA STATUS,X ;GE}T STATUS.2250 BPL OUT ;IF >=0 BRANCH.2260 LDA #$00 ;CLEAR ACC.2270 STA STATUS,X ;SAVE STATUS.2280 }CPX #$02 ;DRAWING BOPOTRON?2290 BCC OUT ;YES. BRACH.2300 LDY PNTR-2,X ;GET PNTR.2310 LDA XSTART,Y ;GET }X-START2320 STA XPOS,X ;SAVE AS X-COORD2330 LDA YSTART,Y ;GET YSTART2340 STA YPOS,X ;SAVE AS Y-COORD2350 } LDA #15 ;PAUSE FOR A2360 STA XSPEED-2,X ;WHILE.2370 OUT2380 LDY DATAPT ;RESTORE Y-REG.2390 INX } ;MOVE TO NEXT.2400 CPX #$04 ;AT END?2410 BCC BACKUP ;NO. BRANCH.2420 PLA ;RESTORE OLD2430 ST}A PLADR+1 ;PLAYER ADDR.2440 PLA ;POINTERS.2450 STA PLADR ;2460 ;2470 ; *************************2480 ;} * GIRDER TASKED PLAYERS *2490 ; *************************2500 ;2510 LDX TASKERS ;# OF PLATFORMS.2520 BMI FORWARD} ;NONE. BRANCH.2530 START2540 DEC XSPEED,X ;TIME TO MOVE?2550 BNE FORWARD ;NO BRANCH.2560 LDA STATUS+2,X ;PLA}T ALIVE?2570 BEQ SELECT ;YES. BRANCH.2580 LDA #$FF ;SET UP FOR NEW2590 STA STATUS+2,X ;VECTOR.2600 BM}I FORWARD ;BRANCH.2610 SELECT2620 LDY PNTR,X ;GET PNTR.2630 LDA SPEEDS,Y ;GET PLAT SPEED2640 STA XSPEED,X ;S}AVE IT.2650 LDA XPOS+2,X ;IS PLATFORM AT2660 CMP XEND,Y ;DESTINATION?2670 BNE ADDUP ;NO. BRANCH.2680 L}DA YPOS+2,X ;NOW CHECK2690 CMP YEND,Y ;Y-COORDS.2700 BNE ADDUP ;NOT THERE. BRANCH.2710 LDA #$01 ;CHANGE }STATUS2720 STA STATUS+2,X ;TO ONE.2730 LDA #15 ;PAUSE FOR A2740 STA XSPEED,X ;WHILE.2750 BPL LOAD0 };BRANCH.2760 BMI LOAD0 ;BRANCH.2770 BACKTRACK2780 BPL START ;BRANCH POINT.2790 FORWARD2800 BEQ NEXT ;}BRANCH POINT.2810 BNE NEXT ;BRANCH POINT.2820 LOAD02830 INC PNTR,X ;AT DESTINATION.2840 LDA PNTR,X ;TIME} TO GET2850 CMP #$05 ;NEXT PREPROG-2860 BNE LOAD1 ;RAMMED VECTOR.2870 LDA #$00 ;BUT DON'T GET2880 } BEQ LOAD2 ;VECTOR IF IT2890 LOAD12900 CMP #10 ;IS NOT VALID.2910 BNE LOAD2 ;IF INVALID,2920 LDA #$05} ;KEEP SEARCHING2930 LOAD22940 STA PNTR,X ;FOR VALID2950 TAY ;VECTOR.2960 LDA SPEEDS,Y2970 B}EQ LOAD02980 BPL NEXT2990 ADDUP3000 LDA XPOS+2,X ;ADD PROPER3010 CLC ;DELTA TO PLAT-3020 ADC DEL}TAX,X ;FORM X-COORD.3030 STA XPOS+2,X ;SAVE IT.3040 LDA YPOS+2,X ;ADD PROPER3050 CLC ;DELTA TO PLAT-3}060 ADC DELTAY,X ;FORM Y-COORD.3070 STA YPOS+2,X ;SAVE IT.3080 CPX SLIP ;BOPOTRON ON3090 BNE NEXT ;T}HIS PLATFORM?3100 LDA XPOS ;YES. ADD3110 CLC ;X-DELTA TO BOP-3120 ADC DELTAX,X ;OTRON X-COORD3130 } STA XPOS ;AND SAVE IT.3140 STA XPOS+13150 LDA YPOS ;ADD Y-DELTA TO3160 CLC ;BOPOTRON3170 } ADC DELTAY,X ;Y-COORD AND3180 STA YPOS ;SAVE IT.3190 STA YPOS+13200 NEXT3210 DEX ;HANDLE NEXT32}20 BPL BACKTRACK ;PLATFORM.3230 ;3240 ; *************************3250 ; * BOPOTRON ON PLATFORM? *3260 ; *************}************3270 ;3280 LDA #$FF ;CLEAR 'ON3290 STA SLIP ;PLATFORM' FLAG.3300 LDX TASKERS ;# OF PLATFORM}S3310 BMI DELTASDONE ;NONE. QUIT.3320 SLIPTEST3330 LDA XPOS ;SUBTRACT BOPO-3340 SEC ;TRON X-COORD}3350 SBC XPOS+2,X ;FROM PLATFORM'S3360 BPL NOABS ;IF >=0 BRANCH.3370 EOR #$FF ;TAKE ABSOLUTE3380 CLC } ;VALUE.3390 ADC #$01 ;3400 NOABS3410 CMP #$07 ;IS IT >=7?3420 BCS SETDELTAS ;YES. BRANCH.3430 } LDA YPOS+2,X ;NO. SUBTRACT3440 SEC ;BOPOTRON3450 SBC YPOS ;Y-COORD.3460 CMP #12 ;IS IT = 12}?3470 BNE DIETEST ;NO. BRANCH.3480 STX SLIP ;SET FLAG.3490 BNE SETDELTAS ;BRANCH.3500 DIETEST3510 BCS} SETDELTAS ;IS IT < 12?3520 LDA #$01 ;YES!!! BOPOTRON3530 STA ACTIVATE ;DIES PAINFULLY3540 SETDELTAS3550 L}DA #$00 ;CLEAR OUT OLD3560 STA DELTAX,X ;DELTA VALUES.3570 STA DELTAY,X ;3580 LDY PNTR,X ;GET PNTR.3590 } LDA XPOS+2,X ;COMPARE DESTIN-3600 CMP XEND,Y ;ATION TO ACTUAL3610 BCC PLUS1X ;POSITION.3620 BEQ NEWDELTA };3630 LDA #$FF ;DELTA IS -1.3640 BMI SETDELTAX3650 PLUS1X3660 LDA #$01 ;DELTA IS +13670 SETDELTAX3680} STA DELTAX,X ;SAVE X-DELTA.3690 NEWDELTA3700 LDA YPOS+2,X ;COMPARE DES-3710 CMP YEND,Y ;TINATION TO3720 } BCC PLUS1Y ;ACTUAL POSITION3730 BEQ DELTASDONE3740 LDA #$FF ;DELTA IS -13750 BMI SETDELTAY3760 PLUS1Y37}70 LDA #$01 ;DELTA IS +13780 SETDELTAY3790 STA DELTAY,X ;SAVE Y-DELTA.3800 DELTASDONE3810 DEX ;CHE}CK NEXT3820 BPL SLIPTEST ;PLATFORM.3830 ;3840 ; ***************************3850 ; * CHARACTER TRACE ROUTINE *3860 ; }***************************3870 ;3880 PASS33890 LDA SAVMSC ;GET 1st ADDR.3900 STA SCREEN ;OF SCREEN3910 LD}A SAVMSC+1 ;MEMORY & SAVE3920 STA SCREEN+1 ;IT.3930 LDA YPOS ;BOPOTRON Y.3940 SEC ;SUBTRACT SEX395}0 SBC #$06 ;DECIMAL.3960 LSR A ;DIVIDE BY FOUR.3970 LSR A3980 TAX ;MOVE TO X-REG.3990 PA}SS44000 BEQ PASS5 ;IF =0 BRANCH.4010 LDA SCREEN ;GET SCREEN &4020 CLC ;ADD ONE LINE.4030 ADC #}40 ;(40 BYTES)4040 STA SCREEN ;SAVE IT.4050 LDA SCREEN+1 ;CORRECT FOR4060 ADC #$00 ;PAGE WRAP-4070 } STA SCREEN+1 ;AROUND.4080 DEX ;AT BOPOTRON'S4090 BPL PASS4 ;Y-COORD?4100 PASS54110 LDA XPOS ;Y}ES. GET4120 SEC ;X-COORD & SUB-4130 SBC #44 ;TRACT 44.4140 LSR A ;DIVIDE BY4150 LSR A } ;FOUR.4160 TAY ;MOVE TO Y-REG.4170 LDA (SCREEN),Y ;CHARACTER #.4180 LDX SLIP ;BOPOTRON ON4190 } BMI PASS6 ;PLATFORM?4200 LDA #$01 ;YES! CHAR=1.4210 PASS64220 STA CHAR+1 ;SAVE CHARACTER4230 AND # }$7F ;REMOVE msb4240 STA CHAR ;& SAVE AGAIN.4250 LDA YPOS ;IS BOPOTRON Y-4260 CMP #27 ;COORD <274 }270 BCC PASS7 ;YES! BRANCH.4280 LDA SCREEN ;CHECK SCREEN4290 SEC ;POSITION 24300 SBC #80 ;L }INES UP TO SEE4310 STA SCREEN ;IF BOPOTRON IS4320 LDA SCREEN+1 ;CRASHING HIS4330 SBC #$00 ;DOME.4340 }STA SCREEN+1 ;(80 BYTES)4350 LDA (SCREEN),Y ;CHARACTER #.4360 CMP #$01 ;IS IT A GIRDER?4370 BEQ ZAP ;YE }S BRANCH.4380 CMP #$08 ;IS IT >=8?4390 BCS ZAP ;YES BRANCH.4400 PASS74410 ;4420 ; *********************** }****4430 ; * BOPOTRON MOTION ROUTINE *4440 ; ***************************4450 ;4460 LDA CHAR ;GET CHARACTER #4470 } BEQ FALL ;IF = 0 BRANCH.4480 DEC MOVETIME ;DEC TIMER.4490 BMI MOTION ;IF <0 MOVE.4500 JMP XITVBV ;ELS }E, QUIT.4510 MOTION4520 PHA ;SAVE ACC.4530 LDA #$01 ;RESET TIMER.4540 LDX TRIG0 ;IS BUTTON HELD? }4550 BEQ RESET ;NO. BRANCH.4560 ASL A ;YES. MOVE FAST.4570 RESET4580 STA MOVETIME ;SAVE TIMER.4590 } PLA ;RESTORE ACC.4600 CMP #$02 ;IS CHARACTER <24610 BCC FALLTEST ;IF YES BRANCH.4620 CMP #$08 } ;IS CHARACTER <84630 BCC CHECK6 ;IF YES BRANCH.4640 FALLTEST4650 LDA SLIP ;ON PLATFORM?4660 BPL CHECK8 };IF YES BRANCH.4670 LDA YPOS ;MODIFY BOPO-4680 AND #$01 ;TRON'S Y-COORD4690 BNE FALL ;SO HE'S ALWAYS }4700 LDA YPOS ;ON TOP OF A4710 AND #$03 ;GIRDER.4720 BNE CHECK8 ;4730 FALL4740 INC FALLCOUNT ;FALL }ING...4750 LDA #$01 ;ADD ONE TO4760 BNE ADDY ;Y-COORD.4770 CHECK64780 LDA STICK ;GET JOYSTICK.4790 } CMP #13 ;PUSHED DOWN?4800 BNE CHECK7 ;NO. BRANCH.4810 LDA YPOS ;IS Y-COORD AT4820 CMP #98 ;LOWE }R LIMIT?4830 BNE FALL ;NO. BRANCH.4840 BEQ CHECK8 ;YES. BRANCH.4850 CHECK74860 CMP #14 ;PUSHED UP?48 }70 BNE CHECK8 ;NO. BRANCH.4880 LDA #$FF ;SET TO MOVE UP.4890 ADDY4900 CLC ;ADD MOVEMENT4910 A }DC YPOS ;DELTA TO BOP-4920 STA YPOS ;OTRON'S Y-COORD4930 STA YPOS+1 ;AND SAVE IT.4940 CHECK84950 LDA C }HAR ;GET CHARACTER #4960 BEQ ALLDONE ;IF =0 QUIT.4970 LDA FALLCOUNT ;IS FALLCOUNT4980 CMP FALLCOUNT+1 ;OVER } LIMIT?4990 BCC CHECK9 ;NO. BRANCH.5000 ZAP5010 LDA #$01 ;STOP VBLANK &5020 STA ACTIVATE ;INFORM BASIC.5 }030 CHECK95040 LDA #$00 ;NOT FALLING.5050 STA FALLCOUNT ;HALT COUNT.5060 LDA STICK ;GET STICK.5070 C }MP #$07 ;MOVED RIGHT?5080 BNE CHECK10 ;NO. BRANCH.5090 LDA XPOS ;CHECK FOR END5100 CMP #198 ;OF SCREE }N OR5110 BCS ALLDONE ;OBSTRUCTIONS.5120 LDA CHAR ;IF ANY, DO NOT5130 CMP #$08 ;ALLOW BOPOTRON5140 B }EQ ALLDONE ;TO MOVE RIGHT.5150 CMP #12 ;5160 BEQ ALLDONE ;5170 LDA #$01 ;O.K. TO MOVE5180 BNE ADDX } ;RIGHT. BRANCH.5190 CHECK105200 CMP #11 ;PUSHED LEFT?5210 BNE ALLDONE ;NO BRANCH.5220 LDA XPOS ;CH }ECK TO SEE IF5230 CMP #47 ;BOPOTRON IS AT5240 BCC ALLDONE ;SCREEN END OR5250 LDA CHAR ;OBSTRUCTED. IF5 }260 CMP #$09 ;SO DO NOT ALLOW5270 BEQ ALLDONE ;MOVEMENT TO THE5280 CMP #13 ;LEFT.5290 BEQ ALLDONE ; }5300 LDA #$FF ;O.K. TO MOVE LEFT.5310 ADDX5320 CLC ;ADD RIGHT OR5330 ADC XPOS ;LEFT DELTA TO53 }40 STA XPOS ;BOPOTRON'S X-5350 STA XPOS+1 ;COORD & SAVE.5360 ALLDONE5370 JMP XITVBV ;LATE HOME BOY...538 }0 ;5390 ; *****************************5400 ; * REDEFINED CHARACTER CHART *5410 ; *****************************5420 ;543 }0 ; CHAR # TYPE5440 ;5450 ; 0 BLANK SPACE5460 ; ! 1 GIRDER5470 ; " 2 GIRDER & LADDER (left)5480 ; # 3 GIRDER & L !}ADDER (middle)5490 ; $ 4 GIRDER & LADDER (right)5500 ; % 5 LADDER (left)5510 ; & 6 LADDER (middle)5520 ; ' 7 LADDER ( "}right)5530 ; ( 8 BATTERY (bottom left)5540 ; ) 9 BATTERY (bottom right)5550 ; * 10 BATTERY (top left)5560 ; + 11 BATTER #}Y (top right)5570 ; , 12 POWER UNIT (bottom left)5580 ; - 13 POWER UNIT (bottom right)5590 ; . 14 POWER UNIT (top left)56 $}00 ; / 15 POWER UNIT (top right)5610 ; 0 16 EXIT GIRDER - 13 POWER UNIT (bottom right)5590 ; . 14 POWER UNIT (top left)569h !!CHARACTER SET FILEMAKER FORCIRCUIT DATABASE..@@ &} D:CIRCHAR.SYS#'6-#-@A$'"(*@6-%2 <9Bf6("ERROR IN CHARACTER '} DATA STATEMENTS9&F##(CHARACTER SET FILE COMPLETEK'6-#-@Ai'"P*@6-%U  (}Z5BGR2(ERROR IN MACHINE LANGUAGE DATA5&_@`""(MACHINE CODE FILE COMPLETEcd880,0,0,0,0,0,0 )},0,0,24,24,24,24,0,24,0,0,102,102,102f@@0,0,0,0,0,102,255,102,102,255,102,0,24,62,96,60,6,124,24,0h??0,102,108,24,48,10 *}2,70,0,0,0,0,51,102,60,12,24,0,24,24,24j;;0,0,0,0,0,14,28,24,24,28,14,0,0,112,56,24,24,56,112,0l;;0,102,60,255,60,102,0 +},0,0,24,24,126,24,24,0,0,0,0,0,0n440,24,24,48,0,0,0,126,0,0,0,0,0,0,0,0,0,24,24,0p??0,6,12,24,48,96,64,0,0,60,102,110,1 ,}18,102,60,0,0,24,56,24rAA24,24,126,0,0,60,102,12,24,48,126,0,0,126,12,24,12,102,60,0tAA0,12,28,60,108,126,12,0,0,126,96 -},124,6,102,60,0,0,60,96,124vAA102,102,60,0,0,126,6,12,24,48,48,0,0,60,102,60,102,102,60,0x990,60,102,62,6,12,56,0,0,0,2 .}4,24,0,24,24,0,0,0,24,24z990,24,24,48,6,12,24,48,24,12,6,0,0,0,126,0,0,126,0,0|<<96,48,24,12,24,48,96,0,0,60,102,12,24, /}0,24,0,0,0,62,99~GG99,54,119,0,0,24,60,102,102,126,102,0,0,124,102,124,102,102,124,0FF0,60,102,96,96,102,60,0,0,120,10 0}8,102,102,108,120,0,0,126,96,124AA96,96,126,0,0,126,96,124,96,96,96,0,0,62,96,96,110,102,62,0AA0,102,102,126,102,102, 1}102,0,0,126,24,24,24,24,126,0,0,6,6,6CC6,102,60,0,0,102,108,120,120,108,102,0,0,96,96,96,96,96,126,0GG0,99,119,127,10 2}7,99,99,0,0,102,118,126,126,110,102,0,0,60,102,102FF102,102,60,0,0,124,102,102,124,96,96,0,0,60,102,102,102,108,54,0AA 3}0,124,102,102,124,108,102,0,0,60,96,60,6,6,60,0,0,126,24,24FF24,24,24,0,0,102,102,102,102,102,126,0,0,102,102,102,102,60 4},24,0EE0,99,99,107,127,119,99,0,0,102,102,60,60,102,102,0,0,102,102,60>>24,24,24,0,0,126,12,24,48,96,126,0,0,30,24,24 5},24,24,30,0==3,3,3,243,51,55,30,12,0,120,24,24,24,24,120,0,0,8,28,548899,0,0,0,0,0,0,0,0,0,255,0,0,0,255,54,54,102,20 6}4,0<<24,24,60,127,127,60,24,24,3,3,3,3,3,3,3,3,24,24,24,248@@248,0,0,0,24,24,60,254,254,60,24,24,0,0,0,248,248,24,24, 7}24PP255,192,192,192,192,192,192,255,192,192,192,255,255,192,192,192,248,14,7,3>>3,7,14,248,0,0,112,223,223,112,0,0,24 8},24,31,0,0,31,24,24GG24,31,0,255,255,0,31,24,24,126,231,195,195,231,126,24,255,255,0,0==0,0,0,0,0,0,0,0,0,0,255,255,0 9},126,126,126,126,126,126,0883,3,3,255,255,3,3,3,0,0,0,31,31,24,24,24,0,0,0,255AA255,0,0,0,24,24,24,219,255,24,24,24,3 :},51,27,255,255,27,51,3II3,51,99,255,255,99,51,3,192,192,192,192,192,192,192,192,0,24,60,255EE255,60,24,24,24,24,60,25 ;}5,255,60,24,0,24,24,60,255,255,60,24,24AA24,24,24,31,31,0,0,0,120,96,120,96,126,24,30,0,24,60,126,24BB24,24,24,24,24, <}24,24,24,24,126,60,24,0,24,48,127,127,48,24,0BB0,24,12,254,254,12,24,0,24,24,24,255,0,126,0,24,0,32,112,216FF141,7,2, =}0,24,12,6,12,24,48,96,48,102,102,102,231,231,102,102,102LL24,24,255,0,0,255,24,24,198,230,246,255,255,246,230,198,99,103, >}111,255JJ255,111,103,99,255,24,60,126,255,24,24,24,24,24,24,255,126,60,24,255AA0,3,6,252,252,0,0,0,0,231,60,102,102,1 ?}02,102,60,0,192,96,63<<31,0,0,0,24,24,24,24,24,28,6,3,3,3,118,204,204,118,3,3AA3,6,28,24,24,24,24,24,0,240,220,199,19 @}3,192,223,192,0,0,0,0JJ192,112,28,7,192,112,28,7,7,28,112,192,204,222,204,193,199,220,240,0667,28,112,192,0,0,0,0,6,6 A},6,255,254,6,6,6,6,6,0,0990,0,0,0,0,0,0,0,0,0,6,6,48,96,192,0,240,224,240,152II48,96,192,128,216,120,120,248,88,248,9 B}6,0,0,96,240,96,14,56,227,135@@7,3,0,0,24,220,220,192,96,96,48,48,24,24,24,24,24,24,24,24AA0,126,120,124,110,102,6,0, C}8,24,56,120,56,24,8,0,16,24,28,3028,24,16,0,QQ104,104,133,204,104,133,203,104,104,133,205,160,4,177,203,197,205,240, D}9,1526>>24,105,5,168,192,84,208,241,200,132,212,169,0,133,213,96QQ104,104,133,204,104,133,203,104,133,206,104,133,205, E}169,0,133,208,160,0,162MM0,177,203,133,207,177,205,197,207,208,1,232,200,192,4,208,240,224,4,240NN30,230,208,165,208, F}201,16,201,17,240,20,165,203,24,105,5,133,203,165,204KK105,0,133,204,160,0,162,0,24,144,206,177,203,133,212,169,0,133,213 G},96SS104,104,133,207,104,170,104,133,206,104,133,205,104,133,204,104,133,203,160,0PP177,203,145,205,202,208,6,165,207 H},240,17,198,207,230,203,208,2,230,204,23055205,208,2,230,206,24,144,228,234,234,234,234,96D2:CHARBILD.BAS165,207 v()33C25ERASDRACCOMMANCXNOC3CCYNOC2CC1C2C1TEMPDELASEARCWIRKWIRECC3CSEARCC2C3LCCJ}DCCC1C3MENC12C25FILEC1ADDRESSCREENUMBEC96IMOVHOLDC2BLC1DIRC1LINLINC1C1C3C3C3C3IOCADRHADRLNUK}MHNUMLC1C1C3C3C4CHASCMCTCSUCSCHLOJPCPSC12L} M} !@"#$%&'N}()*+,-./0123456O}789:;<=>?@ABCDEFP}GHIJKLMNOPQRSTUQ}VWXY !!ԠҠĠқ BY R.CONSTAN, 1984 ANALOG COMPUTING  BPR}R+ -3(SYSTEM INITIALIZATION9-R(ŠԠ BQ+0 AРS}ՠ12!!˯Ġś31F:Ad,*( A 1Šś4Ad6 6-T:,T}*(T:,6-7" @Q6-R:," %@P9 -6-%+ ,$= -6-&+!,$? -6-%+ ,$@ U}-6-&+!,$AFAU+(F:AU,,$<2@u&$F:AU,$F @QB%%ĠĠϠӠśV}d##ԠҠΛn+s" BQ@"ˠ̠ӛx 00@z 6-6-W} 6-6-6-6-AdҠț,!!àŠǠӛ1 -( ԠӮ66.X}6-ԛ@< @PAU-2@V&$<ԠĠE )(6-G:, AuIBBˠԠY}ӮĠԠŠƠέŠӮJH 1-'@2*A`46-?:<<,H"@A h( AZ}1% 6.>:,(ԛl6-?:<<,p67<,.7&,|' A1& 6.>:,'ԛ6-?:<<,[}67<,.7&,( A 1% 6.>:,(כ6-?:<<,67<,.7&,( A@1& 6.>:,(\}ś6-?:<<,67<,.7&,GAU@.*@AUGԠŠҠ 2]}&67&<&,.&Ԡě< 1-)")"A`AP<ԠΛ&6-?:<<,"@^}& A 6-&-!7%<%,4!67<,. !!נĠԠҠȡ6-?:<:,%@' 6-6--(`}' A&&********************************%%Ԡנ٠ӛ -1+",*++ ,)+",,a}!6.|'6-1 A@ 1+",*++!,)+",,!6.|'6-1 A@'+",*++ ,)+",,!6.'6-'+",*++b}!,)+",,!6.'6- - ( 8, & -( 6-6-0 @RDҠӛE2(vc}|twu| 6-%(6-%2 AF2(v|txu| 6-%(6-%2 AG6(  6-%,6-d}%@6 AH6(  6-%,6-%@6 AI8(  6-%.6-%@8 Ae}J8(  6-%.6-%@8 AN, )"@6-"6-, A'QS 6-6- @Rf}XàŠӛY(  A Z(   A [(  A \(   Ag} l< 6-%6-%)&"@s,6-26-< A&q 6-6- @RΠ՛ BQ@@q}BJDOS SYSBNNBOPOTRONBASBBOPOTRONASMB$%CHARBILDBASBhICIRCUIT BASBXLDOS BASBXLDOS ASMBCOMPRESSBASBBOFFO BASB$BOPCONSTBASBW'RACE BASBS~RACE1 ASM+ 000#0+00 (}%@p %(%0%TT(L CIRCUIT DATABASE __r}__________________ ҮΠ6 -6(() --s}(-%() $6 -6((.0 --( 1-----------DRAW NEW CIRCUIT0t}(3/,($ 2-----------VIEW PREVIOUS CIRCUIT/(81.(& 3-----------DISK CIRCUIT DIRECTORY1(BHB(6 4-----------Ru}ETURN TO PRESENTCIRCUIT FOR EDITINGE(H(G5'( *** ENTER SELECTION ***--5(L )!Adv}VJ"+ @I,)+!@R&+(,,.2&66-#@2J A`6-&@H!Ae 6.D:jK -w}1("ENTER CIRCUIT NAME: [ ]C-@%@!K( l -o )"AUApp+",*+Ax}U,A5r !Ad A5t>+"A&,*+!, ( (6-&467%,.> A5yaE+"@F,)y}++!@G,*+ @X,,)++!@d,*+ @,,W67%<%,.>:,a A`~,2&6-G:,"2, A5z}-@$%(>:, "AU AP#@'+3A ?AKAU B{}Q@0 6-6-%6-! Ab+6-%&0! AP!6-?:<% B(op qrs$6-%,6-%26-86-B @RL ҠכM  6- 6.d} N  6.c T ŠכU  6-"6.g V  "6.h W  "6.f X  "6.e }\  6- @Rl Ġכm  "(` @Rn @Rt РΛu ) -()6-?:<}:,I6-%1+!AU,*+ A`,)Ad16-&1+!@',*+ @2,%(>:,1 AP%} APP6-&+!, AP@6-%+ , AP@6-&+!, AP@6-%+ , AP@ -(}O+"A&,)+"AT,)6-&+,/-7( C"ATOAd"@' AR?"A%)}"AS16-?:<A `<ΠΠԛ>Q%6-F:@,%F:@,$AV/ B``4BP:Q(A>:,>.-%}@9.(K>:A,>:,>=-%A66-"6-1F:,!A'76-=6->&6-O:F:,&,&6-F:AV},$%$>K-%6*O:&F:,,# ' ,(0 @(@@K@> B$D2:CIRCUIT.BASVyS FLINCDONDATCKSUCLINd2 +-@@}2(XL-DOS CREATORn((((NOW CHECKING YOUR DATA LINES:x;A,6-6--@@}" 6-%("AV'6-@( A67B:,%@,.>:, )")6-F:A,%AV$F:A}, 6-%A(LINE # IS OK!(A0))(!DATA ALL OK - CREATING PATCH FILE2 A}2@@D:PATCH: B!-@A6*@@:7<,,: (@%(PATCH }FILE CREATED(!(ERROR IN DATA LINE #!"G#(ERROR IN OPENING PATCH FILED(DISK MAY BE WRITE PROTECTED.G''}255,255,122,21,124,21,76,192,2066##23,70,23,137,23,32,85,24,1427''169,0,133,212,133,214,169,29,2079))133,215,169,}192,133,213,162,16,2263((32,119,24,169,216,133,213,162,2108""7,32,119,24,32,70,24,96,1454$((169,0,133,212,169,224,}133,213,2313.$$160,0,162,3,177,212,72,32,18888%%85,24,104,145,212,32,70,24,1776B))200,208,241,230,213,202,16,236,263}6L%%96,182,23,251,23,240,73,32,2020V$$70,23,206,158,23,48,65,32,1735`''170,25,32,105,23,169,255,141,2040j''158,21},141,157,21,162,16,169,1975t$$47,157,68,3,169,24,157,69,1834~##3,32,164,21,32,85,24,162,1673''21,169,0,133,212,133,}214,169,2211((31,133,215,169,228,133,213,32,2324$$119,24,32,70,24,169,0,141,1759##157,21,96,19,24,39,24,32,1602}&&85,24,169,0,133,214,133,212,2170))169,228,133,215,169,31,133,213,2501%%162,21,208,18,58,24,135,24,1870%%32,11}9,24,32,70,24,206,157,1894$$21,76,117,32,32,102,24,88,1732((169,112,141,14,212,165,16,141,2220%%14,210,96,120,169},0,141,14,2024&&212,141,14,210,173,1,211,41,2273$$254,76,107,24,173,1,211,9,2135 %%1,141,1,211,96,234,234,234,2442}%%234,32,180,25,96,160,0,177,2204**214,145,212,200,208,249,230,213,2981(''230,215,202,208,242,96,63,25,26012##9}7,25,32,85,24,169,0,133,1895<))212,133,214,169,29,133,213,169,2612F''192,133,215,162,16,32,119,24,2243P''169,216,133},215,162,7,32,119,2413Z""24,32,70,24,96,50,31,52,1749d31,88,76,32,256,1863 D2:XLDOS.BAS,2243P''169,216,133g X*********************X** **X** XL-DOS **X** BY BOB LUCE **X** 5/31/84 } **X** **$X*********************.X;8 ==#BX;LX;O.S. EQUATESVX;` ICBALDj ICBAHEt} NMIEN~ IRQEN҈ CHSETX;X;D.O.S. EQUATESX;DUPFLG OPTSFLOADMEMFLG R}RDUPDUPSYS/ CLOSXCLOS20 DOSu X;X;MISC EQUATESX;( MSAVF2DOSSTART<MSAVT}1FMSAVT2PSAVEDOSZ TOd FROMnX;xX; DOS PATCHESX;z !DUPINITX;F MWRITE} ON;;AUX. MEM ONQ>;;SET UPPTO;;INDIRECTPFROM;;POINTERS Q>5MSAVF PFROM Q>5MSAVT1 PTO$>;;M}OVE LOWER MOVE;;10 PAGES"Q>5MSAVT2;;UPDATE INDIRECT,PTO;;POINTER6$>;;MOVE TOP@ MOVE;;7 PAGESJ# OFF;;TUR}N AUX MEM OFF- O.S. ONT:^X;h X; COPY CHR SET TO AUX MEMORYrX;| MOVECHRQ>4CHSET;;SET UPPTO;;INDIRECTQ>5CH}SET;;POINTERS PTO%>;;INIT REGS$>LP1Q@TO7;;GET CHR5;;SAVE ACC ON;;AUX MEM ON7;;RESTORE ACC}P@TO7;;& STORE OFF;;AUX MEM OFF3HLP1;;IF Y=0 THEN#TO;;INC HI BYTE&0;;DEC LOOP COUNTER0ILP1::DX;N}X FRRDUPbGOODl MWRITE;;DO MEM.SAVv"MEMFLG;;SHOW MEM SAVEDGRRDUP;;ALWAYSX;X; COLDSTART ROUTINEX;} DUPINIT CLOSX;;CLOSE IOCB MOVECHR;;MOVE CHR SETQ>;;CONDITION DOSPOPT;;FLAGS TO LOAD BUTPDUPFLG;;NOT }RUN DUP.SYS$>;;USE IOCB 1Q>4DUPSYS;;TO LOAD DUP.SYS PICBAL9 Q>5DUPSYS  PICBAH9 SFLOAD;;DO LOAD  ON;;A}UX MEM ON*$>;;MOVE DUP4Q>;;TO AUX MEM>PTOH PFROMRQ>5DOSSTART\ PFROMfQ>5SAVEDOSp PTOz MOVE }OFF;;AUX MEM OFFQ>;;SHOW DUP NOTPDUPFLG;;IN MEMORY:X; RRDUP1 ON;;AUX MEM ONQ>;;MOVE DUP DO}WNPFROM;;FROM AUX MEMPTOQ>5SAVEDOS PFROM Q>5DOSSTART PTO $>$ HCONT. X;8 :B CONTL M}OVEV  OFF;;AUX MEM OFF` "DUPFLG;;SHOW DUP IN MEMORYj !DOS;;AND RUN ITt X;~ X; ROUTINES TO ENABLE/DISABLE X; AUX MEM} ($C000-$FFFF) X; OFF AUXOFF . Q>p PNMIEN Q PIRQEN : ON = Q>;;NO INTERRUPTS! PNMIEN P}IRQEN AUXON( Q2 M>< !STF AUXOFFP QZ L>d STn Px : 4 4 4 4 X; !X; MEMSVQ TELLS DOS IF M}EM.SAV X; IS ACTIVE (Y=1) X; MEMSVQ  CLOS20;;CLOSE IOCB :;;RETURN Y=1 X; X; MOVE ROUTINE "X; CALLING ROUTINE} SETS UP 'TO' X; AND 'FROM' AND ON ENTRY X X; IS NUMBER OF PAGES TO MOVE" X;, MOVE6 %>@ LPJ Q@FROM7T P@TO7^ }3h HLPr #TO| #FROM 0 HLP : X; X; RESTORE SAVED MEMORY X; ? LDMEM1  ON;;AUX MEM ON Q>;};THEN MOVE PTO;;SAVED MEMORY PFROM;;BACK TO IT'S Q>5MSAVF;;ORIGINAL PTO;;LOCATION Q>5MSAVT1 PFROM& $}>0 MOVE: Q>5MSAVT2D PFROMN $>X MOVEb  OFF;;AUX MEM OFFl :v X; X; CHANGE DOS MENU TITLE BAR X; TO RE}FLECT PATCHED DOS X; 2 AXL A X MOVEb  OFF;;AUX MEM OFFl :v X; X; CHANGE DOS MENU TITLE BAR X; TO RE+A }AR@'@eV(*Insert source cassette and press any k}ey.e6-I:,q!B'g}6-B'gV;&A(,2@@C:D@@dVB7t@d}9#(Reading file...please wait./6-@9 @P(4)@67,.>:,*6-%@4 @@2A@}A(.Insert destination cassette and press any key.<##@@A(C:F##(Writing file...please wait.P}(@@Z++(#Done. Write same file again (Y/N)d  4Y@Pn##(Compress another }file (Y/N)x4Y%D2:COMPRESS.BAS)d  4Y@Pn##(Compress another Copp8 L FILEFIBYTLINTOTAINCOUNGNDTOLOHILOHILHTOTLETLCKHXHEXDHBBBLILOFDBYTEBYTEGTODODMSG!} !}!} X B3(!}ASSEMBLY-TO-BASIC DATA CONVERTORX( By Tom Hudson, ANALOG Computingt];@,;@,;!}@,;@,;@,;@,;@,;@,t6.0123456789ABCDEFO-@@,( BJ/ATA f!}ile084OE6.OBJECTO @`(0D@026. DATA<P-@@+( filename/9 !}A PB:,"@@F,7@<@,4:"6., AP,7@<@,4:"6., AZ 6.!}D:67@,.d` @@(4O5)@B)@`AU)AUA0n AP!}x#( INVALID FILE,# A@( NOT OBJ FILE,/( PRESS %@/ @`0-@!}@ ,( BASIC filename06 A&7@<@,4:,6.6 A,7@<@,4:"6., !}A 6.D:67@,.* @@* A?&( INVALID FILE, PRESS *5@!}? APF-@@,(Starting lineno6 A:F6-:-@@,( Line incremen!}t6 A :F-@@,( ecimal/ex0F0D*0HA0:-@@,( Bytes per !}line6 A@:F-@@,( Checksum (Y/N)0F0Y*0NAP6- A F 4D!}6-#6-BU5/6-BU6<6-6@F At)@)@*)@7)@G6-%$A!}VW6-%$AVg6-&%@t6-6@"!!"A7*"A6A ,D!*%@A(!}ҡ!} MEMORY NOT CONTIGUOUS!D6 6-!A0@6-6A J6-%@"ApTT)@6-%!}@,6-%@46-%F4Y*!A T6-&A^;"6A '(@ DATA /6-%;6-h)!}4D*!* )(@,r6-%@4H*6-P:'@,<6-&+$@,v(@7%@<%@!},7%@<%@, A|(@ A0 4N(@ A (@,!} A `+F:A,A6*F:A,](}ABNORMAL TERMINATION (ERROR F:A,)`4N)"6A "}A4DAp>(@00"6-%@06-%@> AP A>(@,0"}"6-%@06-%@> Ap(@,I(@0(@ REM *  BYTES;@F"}@I D2:BOFFO.BAS Ap(@,I(@0(@ REM *  BYTES;@F vwTkFILEDXGLBPVXLVBOPBOPKPWMAXPWXITXITGIRAMXLADAMBATAMPWRAMPLUPLRAMVEHOLOFAMOUNM&}ACOUN@@@@@@ &}&} !"#$d##*****************************n##* *x&}##* BOPOTRON CONSTRUCTION SET *##* BY KYLE PEACOCK *##* ANALOG COMPUTING *##* &} *##***************************** Ahh;@,;@,;@,9AP,9AP& },9AP,9AP,9AP,9AP,*** OUTPUT DEVICE!6. DATA !6. C:D:P:E:S:3 Ap&(DEVIC& }E FILENAME IS 3@C-@@ C7<%@,47@<@,A`  A*** LEV& }ELJ Ap-@@,(ҭ/(=(LEVEL # J@*** BOPOTRON LOCATIONF(%(BOPOTRON LO& }CATION (X,Y) :4@F"*"A"M((INITIAL POWER :(@+(@(MAXIMUM POWER :M@& },7(((EXIT GIRDER POSITION (X,Y) :7@6*** GIRDER DRAW@7 Ap-@@4(Ҡ&}7(J=(NUMBER OF GIRDERS :)@=!@PA0TA^-(*(Ժ STARTING X, ENDI&}NG X, Y-(h(-@,6-+&@,$@I(GIRDER  POSITION :Z@k68%@,-|68%&}@,-68%@,-r |*** LADDER DRAW7 Ap-@@4(Ҡ7(=(NUMBER O&}F LADDERS :)@=!@PA`AP-(*(Ժ STARTING Y, ENDING Y, X-((-&}@,6-+&@,$@I(LADDER  POSITION :Z@k68%@,-|68%@,-68%@&},- *** POWER PACK DRAW; Ap-@@8(Ҡˠ;(A (NUMBER OF POWER PACKS &}:-@A!@PB'gA0(-("Ժ LOWER LEFT X, LOWER LEFT Y0(x(-@&}*6-$@&@K( POWER PACK  POSITION :Z@c68,-t68%@,-x *** POWER UNIT DRA&}W; Ap-@@8(ҠԠ;(A (NUMBER OF POWER UNITS :-@A!@PA0&}Ap&0(-("Ժ LOWER LEFT X, LOWER LEFT Y0(0x(-@*6-$@&@K( POWER U&}NIT  POSITION :Z@c68,-t68%@,-x :*** PLATFORM PROGRAMMINGD; Ap-@@&}8(͠;(Nj68@,-$6-@?(NUMBER OF PLATFORMS :L@j )!@&}AX"Ab 68,-6-%@l%-@(%( ͠vJ((NUMBER OF VECTORS&} :,@J @)!@A0 68,-6-%@b(&(Ժ ORIGIN X, ORIGIN Y,P(% DE&}STINATION X, DESTINATION Y,b( SPEEDH(-@3(VECTOR  TRAJECTORY :H@^ 68&},-68%@,-.68%@,-?68%@,-P68%@,-^6-%@  6-&@*** DISP&}LAY OUTPUTQ Ap4(!GENERATING OUTPUT, PLEASE WAIT...Q@@"*"A@88 @&}A %+@ $,,,,,, @A0%+@ $,,Q6-A@6-#6-$@7& }-@APC68,-8,G Q AQ6-AP6-#6-$@7-@APC68,-8,G Q A&!}Q6-A`6-#6-$@7-@APC68,-8,G Q AQ6-Ap6-#6-$@7-@&"}APC68,-8,G Q A R6-A6-8@,$6-8-@APD68,-8,H R A&#} 7#6-%@$+"A,7"A`*+6- A+ @,4"6-%@" @&$}8,>T'@%"P:'@%,*6-%@2$@ @J AT A H! " @! A`R&%} @, A \$f? (}-@9(ΠΠ<(?$p+( @%+@ $,%&&} DATA +$z< (}-@@<(̠͠D2:BOPCONST.BAS+( @%+@ $,%$b12+&+DSDATHEXLINDATLIDDBYTPASCHKSUTOTAIN@*(} *** RACE IN SPACE ***I @ 1(MAKE CASSETTE (0), OR DISK (1)*)}5I!@@ C BC0,1,2,3,4,5,6,7,8,9,0,0,0,0,0,0,0,10,11,12,13,14,15(r;@,9@",/-**}@"3"<68,-@ L6-A V#A` A r( CHECKING DATA286-%@(LINE:!"8B:,@*+}A <F%6-F:A,%F:A,$AV+C(LINE  MISSING!FFq-@@@56-@:7<*,},,&@H[6-@:7%@<%@,,&@Hq6-8,$@%8,P."@*@ $". @PZ% 6-*-}%!A %6-&Ad  ""@Pn A x F:A,@A "Ap*.}(A`*@A$)*@@<*@A%O*@@b*@Au*@@G*/}@<-@@**@. 9@<(Ag+("INSERT DISK WITH DOS, P*0}RESS RETURN8;@,<g@@ D:AUTORUN.SYS*@AU)*@AU<*@*1}O*@@2b*@ATu*@@G A{((READY CASSETTE AND PRESS RETURNH@*2}@A(C:R#A0f-@@@j"w*@{ M(( WRITING FILE#6-@/6-A 9#A*3}C A M @P(BAD DATA: LINE ``0,33,216,31,255,31,169,0,141,47,2,169,60,141,2,211,169,0,141,231,2,*4}133,14,169,56,141,232,2//133,15,169,187,133,10,169,47,133,11,24,96cc0000000000000000000000007B3232320000000060A0A0200*5}07E42427E424200007E404040407E00007C464646,79dd467C00007E407C40407E00007E407C40404000007E40404E427E000042427E42424200007E1*6}81818187E000040,739dd404040407E00007E424242424200007E42427E404000007E42427E4C4600007E181818181800004242425A5A7E,369dd*7}000042427E181818007E81BDA1A1BD817E007E424242427E000008080808080800007E027E40407E00007E027E,235dd02027E000042427E020202000*8}07E407E02027E00007E407E42427E00007E020202020200007E427E42427E0000,361bb7E427E02027E00000000000000000018245A00000000000000*9}183C3C1800000000003C7E7E7E3C000000007EFF,6$ddFFFF00000000003C7E7E000000000000183C00000000000000180000000000000000000000000*:}0000000000000,936.dd00000000003C00000000000000FFFFFF7E000000007E7E3C00000000003C180000000000001800000000000000,3078dd00*;}181818183C7E5A1818183C7EFFDB0000000000000000000042424242427E0000001818001818000042424242,227Bdd241800007E5A5A4242420000464*<}C78584C4600FFFFFFFFFFFFFFFF7E42420042427E0002020200020202003E02,923Ldd023C40407C003E02023C02023E004242423C020202007C40403C*=}02023E007C40403C42427E003E020200020202,713Vdd007E42423C42427E007E42423C02023E00706700202727272727272727272727272707C100127*>}0707046911307,222`dd462F1446B0130606462F1446DF13463E14462F1446EF13467A14462F1446FF1346B614462F14460F1446D41446,281jdd2F*?}14461F1446F214462F144691134115127070704F0020000F000F000F000F000F000F000F000F000F000F000F,888tdd000F000F000F000F000F000F000*@}F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F00,218~dd0F000F000F000F000F000F000F000F000F000F000F000F000F00*A}0F000F000F000F000F000F000F000F000F000F,563dd000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F000F7*B}030C700083042,329dd1115415A12187E7EFFFF7E7E18000000555500000015030C030B1308FF2433030803150A0C06FF444D4E465846,960dd4C*C}4F58FF618E838486808A8C80988D8384860102FF83504E4A4F4F464C405B51FFA0C4C9C3CECBC6D8C0C0DBC3,107ddC4C9C3CCC5FFC51200141C1B17F*D}FE6AD8080ADFFF66E40406EFF000000000000000000CDCEC6D8D8C0D3CDCFCA,917ccD3CCC0C000000000000000000075757575757575757575757575*E}7575757500130D0F0A130C18C0C0CFF1968075,44dd00534D4F4A534C71408B86878F8075750058464B46444F71CECAC8C9CFC0757500584F434E4F71*F}00000D0B0311,159dd0075000F0E0A0808060E31000000000075750085868C988A8F91B1808000000075750098898A8D98B100000000,183dd000*G}0007575008493B3868F98B1000000000000757500B08C8AB2868E9886B10000000075750000000000000000,320dd0000000000007500000000CCD3C0*H}C6C7C7C6C4CFC075000000000000D8C9CAC6CBC5D8C0750000000000F3CAD8,953ddD8CACBC6D8C075000000D0C3CECDC0C5CECAF2C6C075000000000*I}0D8CFC3CCC5C3CEC5C07500000000000000C5,780ddD3F0DBCBC6C07500000000000000CFCECACDCBC6C0750000000000000000D8F0CDC6CEC0750000*J}00000000CED3,481ddC4F4C6CFD8C075000000000000D8C3F0C4C6CED8C0750000000000C5CAD8C3DBCBC6C5C075000000000000C6CC,965ccC3D*K}BCBC6C5C0750000000000CDD3D8CACFCAF2C6C0750000000000CCC6C8C3CFCAF2C600750000000004130D11,94 dd0E0A08090F001200030C030B13080*L}033030803150A0C0600141C1B170000000000001313000000F9F1F6F6E4F6,930dd0000001313000003000000001F1E1A181D1B333530FCF303000301*M}010101030003020302020302000000000E0D,842dd34123D1246124F122B123E144D145C146B147A1489149814A714B614C514D414E314F2140115030*N}30101010004,508(cc04020200183C3C185A7E5A4200187EDB7E0000000000B66DDBB61020010258A003115030C434003C7E7EFFFFFF,152ddFFFFF*O}F7E7E3C00C646F666266CA251404848E683A5140A29CE8DC2026840AD1FD0A8458225828482C904608D02,265<ddD2A9A48D03D2A0C0CAD0FD864D88D0*P}F88C03D260A200A9A48D01D28D03D2A912C583D0FC20EB15D00568684CA4,554Fdd17A9008583E88A8D03D029FC8D02D04A4A4AA8B971139939218A0A0*Q}A0A0A0A49F08D00D21869028D02D28AD0C4,204Pdd8D03D2858560A207A9009D00D0CA10FA60A9008D01D28D03D28D05D28D07D260A93C8D02D3A92B85*R}80A9128581,377ZddA9008D08D2A2559582CA10FBA9298D2F02A9038D0FD2A9398D07D4A9028D1DD0A9DE8D0002A9158D0102A9C08D,343ddd0ED4A*S}9108DF402A9C68DC502A9948DC602A9048DC302A9018D0AD08D0BD08D6F02205A1685A18586206516AA9D,347ndd00209D00219D00229D003BCAD0F1A2*T}07BD0A139D283BBD02139DA83BCA10F1E8BD1213F010A8E8BD1213C9FFF0,359xddF1990021C84C0117A9008D3002A9128D3102A9208D0312A9008D021*U}2854D8585A9102483F0FC20EB15D0034CA4,577dd17A9008583E684A584186D021245868D00D2A584290769DD8D06228D092269088D16228D1922A584*V}C910D03BA9,895dd0085848D05D4E685A586458509808D01D2AD02121869108D0212901EEE0312A922CD0312D0034C8D16200E16A9,919dd208D0*W}0D2A98F8D01D2A90F8586A5848D05D44C2817A583C583F0FCA9218D2F02A9158D3002A9128D310220281F,582dd205A16854D8D1DD020651685A085A1*X}A9948DC602A9048592A692BDD4158DC502BDD91520F815C69210EEADFC02,993dd293FA209DD5115F005CAD0F8F01D8A8D4D151869938DAE138A69F68*Y}D4015A9FF8DFC028A0A0A493F20F81520EB,146dd154A90034CA01D4A9024A93020F815A687F689B5893D99159589058E0AAAA000BD7D159180C8BD7E*Z}1591804CE6,158dd174A909FA91020F815A2018688A5870A0A0A0AAAA00DA9805DE0139DE013E88810F4A588D0034CE617E687A587,327dd0AAAB*[}D71158580BD72158581A687BD9E15658E858EA200A587C905D0C18687868E4C4E18A9008593A8A92C8594,767ddA906859160A902858FEC0AD2269006*\}9006900690C68FD0F1A5909193602094180691A68A20A218C8D0FAE694C6,449dd91D0F4C694A906859188B1934A919398D0F7C694C691D0F160A00A9*]}9000A99800A8810F7BDBE1595D49D00D08A,799dd48BDC015AAFE0008BD0008C91D9008A9139D0008FEFF0768AABDC2158D04D2A9AE8D05D2A90385B5*^}D6AED004A9,140dd0085ADA9FF8D1ED0608A48A5836AB02EC6B41004A90285B4A6B4BDB6158DAF15293C8DA515BDB715293C8DA615,386ddA5832*_}90EAABD5D158D6E15BD5E158D6F1568AA60CE1808105BA9058D1808A5B5F005C6B54C7B198D05D2CE0C08,897ddCE17081042A9FF8D0C08A9098D1708*`}A5B5D00AA9A48D05D2A9408D04D2CE0A08CE16081022A9FF8D0A08A9098D,404dd1608CE0908CE15081010A9FB8D0908A9058D1508CE0708CE140808A*a}5B505CB05CCD01BA5A825A9F015A5B705B8,644ccF00FA9288D05D2A5834A290709088D04D22860AD09D02901D010AD04D029040D0CD0F00AA5B0C901*b}F004A90085,48"ddA8AD08D02902D010AD05D029040D0DD0F00AA5B1C901F004A90085A960B5B7D0FBB5B0C902F00395B260D5B2F0,822,ddEE95B2*c}95B718B5D4690285CF95C7B5D685D0E6D095BFF6BF8AF00BA5D4690285CDA5D64C601AA5D5690285CDA5,6586ddD785CEE6CEA90195C195C938A5CEE5D*d}095BBB00AA9FF95C155BB95BBF6BB38A5CDE5CF95C5B00AA9FF95C955C5,153@dd95C5F6C5A90095C395B9B5C595BDA90F95CBB5BBD5BD900695BD4A95*e}C360B5BD4A95B9604820EB19202D19E683,514Jdd18A5AC693085AC8D02D2A5ADD0034C611CA9088D17D08A48A20FA5A8D0038E7802A5A9D0038E7902A*f}D78022D79,451Tdd02C90FA981B00CA5B005B1C903A988B002A9848D07D2A918B002A9208D06D2A20086B6E8AD08D085D2AD09D085,918^ccD3A5B0*g}05B1C901D00FAD0AD2291F09208D06D2A9A68D07D220E11CB5A8F034B5B0C901F02E20221AA5836A9006,48hddB5B0C903D0205E7802B002D6D65E7802*h}B002F6D6A58BF00E5E7802B002D6D45E7802B002F6D4B5D4C930B002A9,744rdd30C9C89002A9C795D49D00D08492B5A83024A5836AB01D0A29F69DC00*i}2A5B5D013A583290709C88D05D2AD0AD2,274|dd291F09208D04D2F6D6B5D6D00320E318C9C0902BB5A8D025B5D4DDBE15F00AF6D4901AD6D4D6D4D014*j}A9FF95A8,789dd8D1ED0BDC4159DC002A5B5D0038D05D2A9BF95D6E0016A859B9007A5B61DBA1585B68A4818B5A8F019AD0AD229,511dd0F1DC41*k}59DC002B5B0C90138F00718BDC4159DC002A009A209A58BF002A212BDA31590032D0AD2919BCA8810F2,513dd68AAB5B7F006A001A900919BA492CA30*l}034C2B1BA5B68D1CD0A5ADF013206519101CA9F68D07088D09088D0A08,147dd8D0C08A979854DA90085AD8D05D28D07D268AAA5A42583F0026840A5A*m}AF0FA98488A48A5A225A7D009A5A51865,640ddA6297F85A5A00DA6A5AD0AD239C6159D000BAD0AD239C6159D800BE88A297FAA8810E6AD0AD229F009*n}048DC202,692ddAD0AD229F009088DC30218A5A265A385A28D02D08D03D085AAE6ABA5ADF011A5ABC97DB00E4A4A8D00D2C91890,353dd05499F8*o}D01D268AA68A86840BD84024AB002A58935A8D5B0F0038D1ED095B0B5B7F006B5BFD00395B76018B5BB,103dd75B995B9D5BD900BF5BD95B918B5C175*p}BF95BF18B5C575C395C3D5BD900BF5BD95C318B5C975C795C7B5CBF012,215dd4A09888D05D2B5CB490F0A0A0A8D04D2D6CBB5C79D04D0B5BF4A90094*q}8A5B61DBC1585B6680980859DB5D23D71,480dd15D022B5C7F01E9848A003B19D3D5B1585D1B96D15E001D0020A0A05D1919D8810E968A860A90095B7*r}9848A003,556ccB19D3D5B15919D8810F6B5D23D7115F00320F61868A8602065168D1ED0A9FF85A885A9A9408D0ED4A90C8591A9,51bb008593A9*s}208594A909859EA9218D6F028D06D2A9018D0AD08D0BD085ADA96385AE85AFA218BD39159D0008CA10,9ddF7A90A859C20281FA9058D0CD0A90085A28*t}5A085AA854D85B585B785B8A89193C8D0FBE694C691D0F5A9BF85D6,579dd85D79899800999000A99000BC8D0F420BA18A201BDBE159D00D095D4CA10*u}F5E88EC6028690A92E8D2F028DC502,939ddA9088D07D4A9038D1DD0A9C48DC002A9348DC102A9B08D0002A91A8D0102A95A8D3002A9128D3102A9C08*v}D0ED4,667dd20941866909007B1930980189002B1936A9193C8D0F8E694C691D0F2A9068591A9008593A937859488B1932A91,502&dd9398D0F7C6*w}94C691D0F12690859585978593A9328596A92C8598A9208594A9EC8599A91F859AA24CA013B19511,8420dd97919391998810F5A595186914859585979*x}004E696E69818A593692885939002E69418A599692885999002E69A,507:ddCAD0CB20EB1590034CA4176A90034CA01DA58DF04EA5A0F033202D1FC69F*y}A5ADF005A59F4A09A08D03D2A59FF0,109Ddd300A0A0A49FF85ACD02CA5A16A900FA204A90F5DC4029DC402CA10F5C6A160AD0AD2293FD010202D1FA91*z}F859F,898Ndd85A0D00585A08D03D2A58CF004A5AAF0034C6A1EAD0AD2293FD0F685A4AA9D000BCAD0FA8D02D08D03D085ABAD,816Xdd0AD22903C9*{}03B0F785A6C6A6AD0AD22903AAA91F4ACA10FC85A7A5ADF002A9888D01D2AD0AD2293F691085A5A2,336bddFE86AAAD0AD21002A20286A3AD0AD210A6E*|}6A44C6A1EA9208596A9108598AAA90085958597A8B195919788D0F9,189lddE696E698CAD0F24C74160000000000000000000000000000000000000000*}}000000000000000000000000000000,817 D2:RACE.BAS9,189lddE696E698CAD0F24C74160000000000000000000000000000000000000000(64+dX; +---------------+nX; | RACE IN SPACE |xX; +---------------+X; X; Written by Charles BachandX;.}ORIGINX;X; Game Playfield AreaX; -------------------X;DRAMORIGINMRAMDRAMASTRPAGES.}DRAMASTLPAGESASTRX;X; Player/Missile AreaX; -------------------X;",X;6PM ;;blank .}space@PMM ;;missilesJPM0 ;;player 0TPM1 ;;player 1^PM2 ;;player 2hPM3 ;;player 3rX;|X;.} System EquatesX; --------------X;TRAMPM;;PM blank spaceCHBAS;;char base regCH;;last key press.}VSCROL;;vertical scrollNMIEN;;interrupt ctrlVDSLST;;DLI vectorSDMCTL/;;DMA enableSDLSTL0;;.}display listCOLOR0;;color reg 0COLOR1;;color reg 1COLOR2;;color reg 2COLPF1;;color playfld 1.}DLI;;DLI flagATRACTM;;attract mode&RTCLOK;;real time clock0PCOLR0;;player color 0:PCOLR1;;pla.}yer color 1DPCOLR2;;player color 2NPCOLR3;;player color 3XGPRIORo;;prioritybSIZEP2 ;;size player 2l.}SIZEP3 ;;size player 3vHPOSP0;;pos player 0HPOSP2;;pos player 2HPOSP3;;pos player 3HPOSM0.};;pos missile 0SIZEM ;;missile sizeVDELAY;;vertical delayGRACTL;;graphics ctrlCONSOL;;console.} keysPMBASE;;P/M base addrAUDF1;;audio freq 1AUDF2;;audio freq 2AUDF3;;audio freq 3AUDF4.};;audio freq 4AUDC1;;audio volume 1AUDC2;;audio volume 2 AUDC3;;audio volume 3AUDC4;;audio .}volume 4 AUDCTL;;audio control*SKCTL;;serial ctrl4RANDOM ;;random number>STRIG;;joystick trig 0H.}STICKx;;joystick 0RPAGES;;scrn block size\P0PF;;P0/PF collisionfP1PF;;P1/PF collisionpM0PL;;M0.}/PL collisionzM1PL ;;M1/PL collisionP0PL ;;P0/PL collisionP1PL ;;P1/PL collisionHITCLR;;collision.} clearPACTL;;port A controlX;X; Page Zero equatesX; -----------------X;X; SELPNT ;;menu s.}elect pntCONSAV ;;console saveCLOCK ;;local clockSLINE ;;scroll line cntVOLUME ;;intro volume.}DIRSW ;;vol direction$ OPTION ;;OPTION key indx.OPTSW ;;OPTION switch8TRIG ;;Trigger optionBDE.}NS ;;starfield densLSHIP ;;ship typeVCOME ;;comet enabled`UNIV ;;inverse univjSOFSET ;;SELECT.} offsettTEMP ;;temp registers~ GRPAGE ;;screen pointer GRP1 ;;asteroid leftGRP2 ;;asteroid right.}GRP20P ;;scrn pntr -20GRPX ;;player gr pntrGRPM ;;missile gr pntr FLASHC ;;univ flash cntr .}FLASHF ;;univ flash flagREVF ;;inv univ flagHPOS ;;comet H posHDIR ;;comet H dirHINC ;;co.}met H speedVPOS ;;comet V posVDIR ;;comet V dir VINC ;;comet V speedDEAD ;;dead ship flgCO.}METF ;;comet set flag(CSOUND ;;comet snd cntr2UNIVS ;;universe sound<ENDGAM ;;game over flagFSCOR.}ES ;;game scoresPTRIGN ;;processed trigsZTRIGS ;;last triggersdROTATE ;;rotate indexn SCLOCK ;.};score snd timerxVDEL ;;vert delayMISSLE ;;shot flagsROWAC ;;shot row accDELTAR ;;shot delta r.}owENDPT ;;shot end point ROWCRS ;;shot row cursorROWINC ;;shot row incCOLAC ;;shot column acc.}DELTAC ;;delta columnCOLCRS ;;column cursor COLINC ;;shot column incCOUNTR ;;shot delta cnt .}NEWCOL ;;shot end columnNEWROW ;;shot end row OLDCOL ;;shot old columnOLDROW ;;shot old rowTEM.}PM ;;shot temporary"M0PLS ;;M0 col shadow,XPLR ;;ship X coords6YPLR ;;ship Y coords@X;J ORIGINT.}X;^"X; Redefined Character Set Datah"X; ----------------------------rX;|!CHARS ======= ===.}={=2=2=2 ====`===  =~=B=B=~=B=B= =~=@=@=@=@=~= =|=F=F=F=F=|= .}=~=@=|=@=@=~= =~=@=|=@=@=@= =~=@=@=N=B=~= =B=B=~=B=B=B= =~=====.}~= =@=@=@=@=@=~= =~=B=B=B=B=B= =~=B=B=~=@=@= =~=B=B=~=L=F= =~=.}===== =B=B=B=Z=Z=~=& =B=B=~====0 ~===: ===~D =~=B=B=B=B=~=.}N =======X =~==~=@=@=~=b =~==~===~=l =B=B=~====v =~=@=~=.}==~= =~=@=~=B=B=~= =~====== =~=B=~=B=B=~= =~=B=~===~= .}======= =$=Z===== ===<=<=== ===<=~=~=~=< ====~==.}= =====<=~=~ =======< ======= ======= ===.}====  ======= <=======  ===~====* ~=~=<=====4.} <=======> =======H =====<=~=ZR ===<\ ~===f ====.}===p =B=B=B=B=B=~=z ======= =B=B=B=B=$== =~=Z=Z=B=B=B= =.}F=L=x=X=L=F= === === ~=B=B==B=B=~= ======= >===<=@=@.}=|= >===<===>= B=B=B=<==== |=@=@=<===>= |=@=@=<=B=B=~= >==.}=====  ~=B=B=<=B=B=~=  ~=B=B=<===>= X;$ X; Introduction Display List. X; -------------.}------------8 X;B DISPI p=gL DADR DRAMV  '='='='`  '='='='j  '='='='t  '==ADLI~ DISPI X; .}X; Game Options Display List X; ------------------------- X; DISPO p=p=p=F OPTMSG =F  SB  F  O.}L1 ==F  SB  F  OL2  F DOT TOPT(  F2  SB<  FF  OL3P  FZ DOD DOPTd  Fn  SBx  F  O.}L4  F DOS SOPT  F  SB  F  OL5  F DOC COPT  F  SB  F  OL6  F DOU UOPT  F"  S.}B,  F6 OPTMSG@  AJ DISPOT X;^ !X; Game Playfield Display Listh !X; ---------------------------r X;| DISPG p=p.}=p=O DRAM  ======  ======  ======  ======  ===.}===  ======  ======  ======  ======  =====.}=  ====  p=0=GDLI TRAM 0=B ANALOG&  A0 DISPG: X;D !X; Flying saucer in Intro DataN .}!X; ---------------------------X X;b SAUCER =~=~=l  =~=~=v WINDOW ===U  U=== X; X; Rede.}fined Char Set Equates X; -------------------------- X; TMC AC CC DC EC FC GC .} HC  IC LC  NC PC * RC4 TC> WCH YCR CRC\ N0Cf BCN0Cp OCN0Cz.} SCOC SMKN0C SMK2SMK SHCSMK2 MTSHC UCMT COLCUC VCCOLC MCV.}C KCMC BXKCA N7CKC X; X; Introduction Title DataX; -----------------------X;TITLE =.}AC=NC=AC=LC$ OC=GC==$=MC. AC=GC=AC=N0C=IC8 NC=EC==DB @=PC=RC=EC=SCL @=EC=NC=TC=S.}CV =a` =RC=AC=CC=EC=j =IC=NC==SC=PCt =AC=CC=EC~ TMC=TMC== @=WC=RC=IC=T.}C=TC=EC @=NC==BC=YC = =CC=HC=AC=RC=LC=EC =SC===BC=AC=CC =HC=AC=NC=DC.} ==CRC= N0C=N0C =N0C N0C== =SHC===SHC = @=SHC===SHC .} X;X; PRESS OPTION Message DataX; -------------------------(X;2#PMSG ========< =PC=RC=.}EC=SC=SCF ==OC=PC=TC=ICP =OC=NC==Z ========dX;nX; Options Screen DataxX; --.}-----------------X;*OPTMSG BX=BX=BX=BX=BX=BX=BX=BX# BX=BX=BX=BX=BX=BX=BX=BX" BX==OC=PC=TC=IC.}=OC=NC SC ===TC=COLCTIMOPT =N0C=OL1 BX= @=OC=PC=TC=IC @=OC=NC=COLC=.} =LC=EC=FC=TC= BX=BX= @=SC=EC=LC=EC=CC @=TC=COLC =RC=IC=GC=HC=TC= BX=BX=.}" @=SC=TC=AC=RC=TC, @=COLC6 ==PC=LC=AC=YC=@&OL2 BX==TC=RC=IC=GC=GC=ECJ RC=COLC==.}====BXTOL3 BX=^ =DC=EC=NC=SC=IC=TCh =YC=COLC==r ===BX|OL4 BX= =SC=.}HC=IC=PC=SC =COLC =======BXOL5 BX= =CC=OC=MC=EC=TC =SC=COLC ==.}====BXOL6 BX= =UC=NC=IC=VC =EC=RC=SC=EC=COLC ====BXSB BX======.}= ======TOPT BX==== =NC=OC==EC=FC=FC =EC=CC=TC=&TOPT2 BX===.}===0 =SC=HC=IC=EC: =LC=DC=SC=DTOPT3 BX=====N =MC=IC=SC=SCX =IC=LC=E.}C=SC=bTOPT4 BX===l =WC=AC=RC=PC=v =DC=RC=IC=VC=EC=DOPT BX===== =SC=.}TC=AC=NC =DC=AC=RC=DC="DOPT2 BX======= =DC=OC=UC=BC=LC =EC="DOPT3 BX.}======= =TC=RC=IC=PC=LC =EC=%DOPT4 BX======== =SC=UC=PC=EC=R.}C=SOPT BX====== =RC=OC=CC=KC =EC=TC=SC= SOPT2 BX====== =SC=AC.}=UC=CC=EC  =RC=SC=*COPT BX=====4 =DC=IC=SC=AC> =BC=LC=EC=DC=HCOPT2 BX==.}====R =EC=NC=AC=BC\ =LC=EC=DC=fUOPT BX=====p =PC=OC=SC=ICz =TC=IC=V.}C=EC=UOPT2 BX===== =NC=EC=GC=AC=TC =IC=VC=EC =BX&ANALOG ====CC=OC=P.}C=YC RC=IC=GC=HC=TC= CRC==AC=NC=AC=LC OC=GC==MC=AC=GC=AC" N0C=IC=NC=EC==N0C.} N0C =N0C=N0C ==="TRAMI ==N0C=N0C=== TRAMC =N7C=COLC=N7C =N7C=SMK,}