8L2C)pJJJJ IH(ȱH:=IH[H`@HcH  $ +   I/H`JLNGȄBȄF aK  haaFF  mJm# KKJ UJ )J ۈ) ;J3ȱJFȱJGJKaȄM  aaNNJFLGJL L? &PRODOS `DaElH$?EGvѶK+`L HHLy XP LM ŠϠĠӠS)*+,+`F)) (*=GJFjJJA QE'+ '== `@ STSP8QSS8 m P o R(8RNEW.DISK}' &&ARTIST ARTIST.LOAD ',# (ARTIST.T '  ,BASIC.SYSTEM (*+&CC.OBJ5H 3 3 (CC.OBJ.S=#B3 3 CCSHAPES`3 @3 'CHECKITa 6/ ;.CITY.CENTURIANi 35 , )DEMO.LISTvL :,DHR.DISPLAY{{*/ .)ENCR.DECR|W ) , ENCR.OBJ(. (. ENCR.OBJ.S. . GS.FX6  7 *GS.FX.DEMO.7% Q" 'GS.FX.S;6 7 HRCOMPH` (HRCOMP.T   HREXP@'HREXP.TA  IF.THEN.ELSEM*. *. LISTVOLS.BASICh*2 -MAKE.DEMO.LIST6# 6# MAKE.SCORES\3 3 )MERGESORT 6 Q1 -MERGESORT.OBJw6 6 /MERGESORT.OBJ.S506 'NIBMENU xQ( Q) PIC.CREATERG7,PIC.CREATE.S0 7&PRODOS }<SCORES3 3 'STARTUP ®3s,.STARTUP.SCREEN®09`®4TEXT.SHIFTER1: : TEXT.SHIFTER.FP : : .TEXT.SHIFTER.S : :  υ Ω`  X +,W,T,S,P, ,0L,H hɕϥ΅  LKɈ ΩL}ɋL}L}ɊL}ɰɸ8鰪 LKɛ ULK)L}L} зL}L}I,SLK,RLK IϦΥ  :LK I LK IILK LK LK I 9 X䠂 8@ A 8  A LIϦΥ  ]  ]``ϦΥLW$ [k `@ `` ` @ `ýϠҠƽ̯Ġ̽ýҠΠѽԠнΠЯͽŠԠҠӽŠԠԺ̤:$-6! *************************A * ARTIST.LOADER *a * BY S. SCOTT ZIMMERMAN *( * COPYRIGHT(C) 1988 *2 * MICROSPARC, INC. *< * CONCORD, MA 01742 *F *************************Z P:"GETTING THE BIG PICTURE":"BY S. SCOTT ZIMMERMAN":"(C) COPYRIGHT 1988":"MICROSPARC, INC.":"CONCORD, MA 01742"f ZD$(4) d(21): SWITCH T0 40 COLUMNS nD$"BLOAD HRCOMP,A$6000" xD$"BLOAD HREXP,A$300" D$"BLOAD ARTIST,A$8000" 32768 ************************************************** * * * ARTIST Source Code * * * * by S. Scott Zimmerman * * Copyright (c) 1988 * * by MicroSPARC, Inc * * Concord, MA 01742 * * * * The MicroSPARC Assembler * * * ************************************************** ORG $8000 ;Decimal 32768 ************************************************** * EQUates: * ************************************************** XALT EQU $04 ;Altern X position SCRNNUM EQU $06 ;Scrn num for HRCOMP LENGTH EQU $08 ;Length of compact pict CH EQU $24 ;Cursor horizontal COMPTR EQU $1E ;Compact start XPOS EQU $CE ;Cursor X position YALT EQU $E3 ;Altern Y position YPOS EQU $FA ;Cursor Y position FLSHDEL EQU $FB ;Flash delay MSGPTR EQU $FE ;Message pointer HREXP EQU $300 ;Expander routine APLSOFT EQU $3D0 ;Aplsoft warm start COMPIC EQU $4000 ;Compressed picture HRCOMP EQU $6000 ;Compactor routine KEYBD EQU $C000 ;Keyboard input STROBE EQU $C010 ;Clear keyboard strobe XDRAW EQU $F65D ;XOR shape onto scrn PRNTAX EQU $F941 ;Print hex number SETTXT EQU $FB39 ;Set text mode TABV EQU $FB5B ;Vertical tab routine HOME EQU $FC58 ;Clear text screen CROUT EQU $FD8E ;Output carriage return COUT EQU $FDED ;Output a character *------------------------------------------------* ESC EQU $9B ;Escape code LARR EQU $88 ;Left arrow code DARR EQU $8A ;Down arrow code UARR EQU $8B ;Up arrow code RARR EQU $95 ;Right arrow code DELVAL EQU $2000 ;Delay value ************************************************** * Hi-Res Graphics ROM routines and switches: * ************************************************** ROT EQU $F9 ;Shape rotation HPAG EQU $E6 ;Hi-Res page ($20/$32) SCALE EQU $E7 ;Shape scale SHOW EQU $C050 ;Display graphics scrn FULLSCRN EQU $C052 ;Display full scrn MXEDSCRN EQU $C053 ;Display mixed gr/txt FLIP1 EQU $C054 ;Display screen #1 HRSCRN EQU $C057 ;Display Hi-Res gr HCLR EQU $F3F2 ;Clear Hi-Res screen HPOSN EQU $F411 ;Position HR cursor HPLOT EQU $F457 ;Plot a pixel HLIN EQU $F53A ;Draw a line SETHCOL EQU $F6EC ;Set HR color ************************************************** * Initialize: * ************************************************** LDA #0 ;Set things to zero STA XALT ;Alt cursor STA XALT+1 STA YALT STA CURSFLG ;Init cursor flag STA ROT ;Set rotation to 0 STA SCRNNUM ;Set to page 1 STA PENFLG ;Set to pen up STA FMFLG ;Set to mixed STA XPOS+1 ;Clear HOB of X pos STA LENGTH ;Init to no length STA LENGTH+1 LDA #140 ;Set main cursor pos STA XPOS LDA #96 ;Set Y position STA YPOS LDX #3 ;Set color to white JSR SETHCOL ;Call to set color LDA #1 ;Set the scale to 1 STA SCALE LDA #$20 ;Set HR page 1 STA HPAG JSR HCLR ;Clear HR screen JSR HOME ;Clear text scrn JSR PRNTMENU ;Print menu BIT HRSCRN ;Select hi-res screen BIT FLIP1 ;Make sure it's pg 1 BIT MXEDSCRN ;Set to mixed scrn BIT SHOW ;Show HR screen BIT STROBE ;Clear kb strobe JSR PLOTCURS ;Plot the cursor ************************************************** * Start ARTIST main loop: * ************************************************** MAINLOOP BIT KEYBD ;Keypressed? BMI GETKEY ;Yes, get key JMP NOHIT ;No, proceed GETKEY LDA KEYBD ;Get key BIT STROBE ;Clear keybd strobe PHA ;Save keyboard input LDA CURSFLG ;Is flag on? BEQ CHECKIN ;No, just check input JSR PLOTCURS ;Yes, erase cursors CHECKIN PLA ;Restore input CMP #RARR ;Right arrow? BNE NEXT1 ;No, check next INC XPOS ;Move right a pixel BNE ]A INC XPOS+1 ]A LDA XPOS ;Is it too high? CMP #280 ;Past 279? LDA XPOS+1 SBC #280/ BCC SETNEW ;No, just set new LDA #0 ;Yes, wrap back to 0 STA XPOS STA XPOS+1 SETNEW JSR PLOT ;If pen down, plot point JSR PLOTCURS ;Go turn cursor on JMP MAINLOOP NEXT1 CMP #LARR ;Left arrow? BNE NEXT2 ;No, check next LDA XPOS ;Is it at zero? ORA XPOS+1 BNE ]A ;No, so decrement LDA #279 ;Yes, so wrap STA XPOS LDA #279/ STA XPOS+1 BNE SETNEW ;Always ]A LDA XPOS ;Decrement X BNE ]B DEC XPOS+1 ]B DEC XPOS JMP SETNEW ;Go set new pos NEXT2 CMP #UARR ;Up arrow? BNE NEXT3 ;No, check next LDA YPOS ;Is it at zero? BNE ]A ;No, so decrement LDA #191 ;Yes, so wrap STA YPOS JMP SETNEW ;Go set new pos ]A DEC YPOS ;Decrement Y JMP SETNEW ;Go set new pos NEXT3 CMP #DARR ;Down arrow? BNE NEXT4 ;No, check next INC YPOS ;Go down one pixel LDA YPOS ;Get current value CMP #192 ;Is it past bottom? BNE OKAY ;No, it's okay LDA #0 ;Yes, set to top STA YPOS OKAY JMP SETNEW ;Go set new pos NEXT4 CMP #"0 ;Input a number? BCC NEXT5 ;Too low CMP #"8 ;Is it too high? BCS NORMKEY ;Yes, go check next SEC ;Prepare to subtract SBC #"0 ;Subtract ASCII for 0 TAX ;Put color in X JSR SETHCOL ;Set new color JMP MAINLOOP NEXT5 CMP #ESC ;Undo last screen BNE NORMKEY ;No, proceed JSR RESTORE ;Restore from save JMP MAINLOOP NORMKEY AND #%11011111 ;Conv lower->upper CMP #"I ;Aux cursor up? BNE CHKJ ;No, go check J LDA YALT ;Is it at zero? BNE ]A ;No, so decrement LDA #191 ;Yes, so wrap STA YALT JMP SETNEW ;Go set new pos ]A DEC YALT ;Decrement Y JMP SETNEW ;Go set new pos CHKJ CMP #"J ;Aux cursor left? BNE CHKK ;No, go check K LDA XALT ;Is it at zero? ORA XALT+1 BNE ]A ;No, so decrement LDA #279 ;Yes, so wrap STA XALT LDA #279/ STA XALT+1 BNE OKAY ;Always ]A LDA XALT ;Decrement X BNE ]B DEC XALT+1 ]B DEC XALT JMP SETNEW ;Go set new pos CHKK CMP #"K ;Aux cursor right? BNE CHKM ;No, go check M INC XALT ;Move right a pixel BNE ]A INC XALT+1 ]A LDA XALT ;Is it too high? CMP #280 ;Past 279? LDA XALT+1 SBC #280/ BCC OK ;No, just set new LDA #0 ;Yes, wrap back to 0 STA XALT STA XALT+1 BEQ OK ;Always branch CHKM CMP #"M ;Aux cursor down? BNE CHKF ;No, go check F INC YALT ;Go down one pixel LDA YALT ;Get current value CMP #192 ;Is it past bottom? BNE OK ;No, it's okay LDA #0 ;Yes, set to top STA YALT OK JMP SETNEW ;Go set new pos CHKF CMP #"F ;Full/mixed toggle? BNE CHKL ;No, go check L LDA FMFLG ;Get full/mixed flag EOR #1 ;Toggle it STA FMFLG ;Save result BNE SETFULL ;Go set to full BIT MXEDSCRN ;Set to mixed JMP MAINLOOP SETFULL BIT FULLSCRN ;Set to full JMP MAINLOOP CHKL CMP #"L ;Draw line? BNE CHKC ;No, go check C JSR SAVE ;Save current screen LDY XPOS+1 ;Get cursor position LDX XPOS LDA YPOS JSR HPOSN ;Set that position LDX XALT+1 ;Get alt cursor pos LDA XALT LDY YALT JSR HLIN ;Draw a line JMP MAINLOOP CHKC CMP #"C ;Clear screen? BNE CHKP ;No, go check P JSR SAVE ;Save current screen JSR HCLR ;Clear graphics scrn JMP MAINLOOP CHKP CMP #"P ;Toggle pen up/down? BNE CHKQ ;No, go check Q JSR SAVE ;Save current screen LDA PENFLG ;Get current setting EOR #1 ;Toggle 0 <--> 1 STA PENFLG JMP MAINLOOP CHKQ CMP #"Q ;Quit? BEQ QUIT ;Yes NOHIT INC FLSHDEL ;Increment delay BNE ]A INC FLSHDEL+1 ]A LDA FLSHDEL ;End of flash delay? CMP #DELVAL LDA FLSHDEL+1 SBC #DELVAL/ BCS BLINK ;Yes, blink cursor JMP MAINLOOP BLINK JSR PLOTCURS JMP MAINLOOP *------------------------------------------------* QUIT JSR SAVE ;Save the HR screen JSR SETTXT ;Set back to text mode JSR HOME ;Clear the text screen LDX #ADRMSG ;Print address message LDY #ADRMSG/ JSR MESSAGE LDA #COMPIC/ ;Get compact address LDX #COMPIC JSR PRNTAX LDX #LENMSG LDY #LENMSG/ JSR MESSAGE LDA LENGTH+1 ;Get compact length LDX LENGTH JSR PRNTAX ;Print hex value JSR CROUT ;Carriage return JMP APLSOFT ************************************************** * Auxiliary routines: * ************************************************** PLOTCURS LDA CURSFLG ;Get current flag EOR #1 ;Toggle 1 <--> 0 STA CURSFLG LDY XPOS+1 ;Set X location LDX XPOS LDA YPOS ;Set Y location JSR HPOSN ;Set its position LDA #0 ;Zero rotation LDY #CURSOR/ ;Set shape location LDX #CURSOR JSR XDRAW ;Draw the shape LDY XALT+1 ;Set X location LDX XALT LDA YALT ;Set Y location JSR HPOSN ;Set its position LDA #0 ;Zero rotation LDY #ALTCURS/ ;Set shape location LDX #ALTCURS JSR XDRAW ;Draw the shape LDA #0 ;Zero the flash delay STA FLSHDEL STA FLSHDEL+1 RTS *------------------------------------------------* PLOT LDA PENFLG ;Is pen on? BNE ON ;Yes, so plot RTS ;No, so just return ON LDY XPOS+1 ;Set location LDX XPOS LDA YPOS JMP HPLOT ;Plot the point, return *------------------------------------------------* PRNTMENU LDX #0 STX CH ;Set horiz location LDA #20 ;Set verical location JSR TABV ;Move cursor there LDX #MENUMSG ;Get message address LDY #MENUMSG/ MESSAGE STX MSGPTR ;Set message pointer STY MSGPTR+1 LDY #0 ;Init index MSGLOOP LDA (MSGPTR),Y ;Get character BEQ MSGEND ;Quit if zero JSR COUT ;Print character INY ;Go to next BNE MSGLOOP ;Always branch MSGEND RTS ;End of message *------------------------------------------------* SAVE LDA #COMPIC ;Set address of compact STA COMPTR LDA #COMPIC/ STA COMPTR+1 JSR HRCOMP RTS *------------------------------------------------* RESTORE LDA LENGTH ;Is a compact pict there? ORA LENGTH+1 BNE RES ;Yes, restore it RTS ;No, just return RES JSR HCLR ;Clear current screen LDA #COMPIC ;Set compact pict adrs STA COMPTR LDA #COMPIC/ STA COMPTR+1 JSR HREXP RTS ************************************************** * Data: * ************************************************** MENUMSG ASC "ESC=UNDO 0-7=COLOR F=FULL/MXED" ASC " L=LINE" ASC "C=CLEAR SCREEN Q=QUIT " ASC "P=PEN UP/DOWN" ASC "IJKM=MOVE ALT CURSOR " ASC "ARROWS=MOVE CURSOR" BRK ADRMSG ASC "COMPACT PICT: A$" BRK LENMSG ASC ",L$" BRK *------------------------------------------------* CURSFLG DFS 1 ;0=Cursor off, 1=on PENFLG DFS 1 ;0=Pen up, 1=down FMFLG DFS 1 ;0=Mixed, 1=full *------------------------------------------------* CURSOR DFC $3A,$24,$2D,$36,$07,$00 ALTCURS DFC $04,$00 !"#$%&'()*+,-./01234LG ASTARTUP$#   / XXύX?klmnÍoL) "6L'?"(0`6708" = ***)<JJH !h穖tp% ;"Z/݀>">"' 1" 7"5).莀/ ;" " 6" >" 1"6"$ "g"" !"""""IzLYL 8!9 詍` "  4"/pŠϠŠà͠ӠàԠŠH06172839h` v97L75v^a ?/( va?LLLɍ$?`?a ɍɥAH93827160hH46576879h`,C bL ɍ b w,S0 @ lLޭBDEF޾ p ޾ p($ذ v (0 ( L?ԦʚLeةީa s  lL b,FLg,DL,C0$3 >@ Ɉ 3ɾꩈL(3ɾ;Ƀ B94 l% bʽ  ՚,S` H E$݅3`(l8L3LX>(Ƀ,`3,G0]ɾ g` H`پ_پ p _پ׾`>( p۾m׾) W)ʩ@`ɾ>(O puȾ ɾ-O ]c־Jjjj `O>0O l POپھ p H־Ǿh۰8L־Jjjjɾ)Ⱦ8 ѱ OLӜ ĤLLX>(F`־ؾپھ׾` bɄ KDEF vLl v lL bKɍKL?` w  vLl@3 @LtJ)s@J b  l`a?sa?,E30ɍФ3 E3HD F3 Ʉ%h3 bM E  lLthɍLL3`3,A0s0% Ipn DpnI:L ؅303L8933LΞAAJL ةޘг uv $ 8LƞaЌ>?@`>?@`B8` K  춼LK ҟ ҟ ( KK`HJJJJ8`HK)` #hhLJپھ pHJh` D!hgt}~p `~t}p8n~ni}tpi~~tso8pinii>j?k̈́>~|p|Ii||̈́ l - `>i>?Ek?!>Q>>>̀ `` \> ̀ `e>>?́?>?Emn(>e>ȱ>e?>Q>ؠ> ie>>?`|;}=:<~:<=;`||m};>:8o>oȑ>ppȑ>> :op`G DKpnG @p;G=po:i>?Ek?>Q>> L> \/ e>>?́?ޱ>ȥj>>m>` _m8injkiljo풼S 鸍긍$I2 U)VJ зT)`l8`a HbIJhjǾȾɾ p٭b=aIe f`8` P־ǾҾ,G0C f=W)_``\"׾پӾؾھ pD`־ǾY׾ؾOW)ݩȾɾʾ pD`8`W)CB) 5W) =)W)@! pZ}ȾȾ󰹩 p` ־ǾҾ,G 8`׾ؾ f p vۥs׾tؾE`  ( 8о(־Ǿ,G 8`_`W)H־Jjjjh p̭ fLᶢǾ ת..8 ۭ (8mȾȾmɾɾʾiʾ` Lpl8l:/,s̝sƬƀ#(ZZV4G_0=( A P FjL\5p-e9ABSAVERIFYBLOADELETEBYECATALOGOPENWRITEXECREATEFRESTORENAMEBRUNLOCKCHAIN#FLUSHREADPOSITIONOMONPR#PREFIXCLOSEAPPEND6D(!쫂8ֵ#ح#׮2}q :IC@@ -!S    !C- !ABELSDFRV@@ !$(19@EüϠž(+@ABCDEFGHIKLMNPSV     T[fouu~ՠٯ* PWN*]ĿNTz @n6VC/+A>@I5gN Oz @n[Dz @nd0,~z @`$仫@v$⩔,C[B?I>孓`仫6VtCicQĿUKqtVt Nʮq$6,⨁ K6, VtI=v!gNVt Vt  lg~TLLwLLL) `8` ԠŬLL6789:;<pȱ 0LB`ae`Q` `Lp`  (08NXbfx@@@@@@@@@@@@@@@@bFbL*d+d,d*b+b/d RdNcbc B g1dd,,S ? ܌ H  g  , χ U   x  D  w `1d`Z,Ĺ+b8+b=9+b`+bi+b0#+b`*b8*b *b`*bi*b0*b`  *d,`ɛ,ɛ,`ɓ,``ɑЧ `1d`+d,dbb,d Z*b+d *b+dbm+bb b+bɌ b+bbb+dLZ-d-dhb-d`b(TbHbbh Z-d*b bibL b8bb},bbb}@bb b LɅb |b b|bޤb bb 7b( ߄TbHbbh ZLt@b0 8@b@b`@bIi@b`,b0,b`,b`1d` *b0 L 0'Hȑh` 0Hȱ'h`1d` -d-dc-d`b'b Z-d*b b8*bbb'Ϡb ZL1d` -d-dc-d` [b( Z-db Z-d*b b8*bbb( Z-db ZLb`b`dbbb(` | 0Q`1d` -d-db-d`b( w*b b8*bbbLb( w ߄LH hH8,0h`1dX*dSNc0G+dbi&cbcb8&cbcNcbi:c&c Z*d ߄-d-dNc"&c:c Z-d&c}bc&c( Nc-d`:c ZL-d-dhb-d`-d.d.dNc.d0&cb:c8bNc:c&c Z-dhbvcbcTbHbch Z( ߄ L-d-dvc-d` c g-dvc g cc  gL# c gvcL# gL#-dccHch' Z-dc ߄-d`-d1d`*b`c8*bc`/d` 0d /d 0d0d L↩ 0d /d` ↩ `0d ߄2d3d0dLZ1d`-d-dhb-d`bb bibb8bة1d*b+b+dbb2d3d Z/d`1d` -d-db-d`bb bib w-dbL2 cbb`bɈhbSdRdL` d ߄L߄1-d-dc 0cABQ-d*b c8*bccABQ-d` -d-dc-d`-d.d.dhb.d0bb bibbɂݮ-dc4d 8  B S-dbHd' Z.dhbvcbcTbHbch( ZL$ -d-d4d-d` >d 4d  >d>d  LLj >d4d LLj1d`*b Hd8*bHd`-d>d  ߄ ߄>dHHdh' Z-d` `   ` LL$%L" `   Li i  i Lg `hb ` `Rd ߄ڠLԧӠԠŠԡ `Rd`Rd` `L퉠Sd`Sd`L `SdfLǡĠӠ٠Ԯ 0' ߄8 ߄``-d-dTdQd+hb&b(-d .d.dcbb .d-d`Tdbhdb|d Z-d|dhd ( Z-d*b hd8*bhd|di|dɆdTdhdddL|dhd ( ZL-d-dd-d` d ȋ-dސd ȋ dd  ȋL d ȋސdL ȋL-dddHdh' Z-dd ߄-d`-d1d`*b`d8*bd`-d-dTd-d`|dɂ-d .d.dc.d0ܹhdbibc4dbHd' Z 8  B SL-d-dNc-d`-d.d.dTd.d0&chd:c8|dTdd|ddhdd Z L1d Z *b`LL1d 7 +b`+b`+b`,ad *dd`>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_Ԡƍ î 卪  é ì 㮍 򺍪 Ǡؠ٠ث͠٫ԠԠԫڠԫԠګРԫРȠ̠ͫԠ̫РԫΠЫƠΫԠƫɠԫŠɫӠūҲӫұҲҰұӠҰҠӫʠҫؠ٠ثؠ٫٠ث֠٫֠֫֠֫֠֫Р֫ŠЫҠūРҫҠЫРҫؠЫŠثؠūԠثԠԫؠԫŠثŠūŠūؠū٠ثŠ٫֠ūԱ֫РԱؠЫ٠ثؠ٫٠ثŠ٫ŠūŠūؠūرثԱرРԱ̠Ыؠ̫٠ثԱ٫РԱؠЫӠثñӫΠñؠΫ٠ثԱ٫ؠԱ٠ثР٫ҠЫנؠ͍̬؍ȍȬ؍ȫؠ؍٠ٍװؠڍ٠ԍ٠ؠȩٍԍЍٍȩٍԍàȍàȍױҠԍРײԠ٠ԍٍЫٍÍàڍЍ٠ӍײȬةҠЩٍЩٍàȍٍàԍŠײЍԍàԍàԍŠױӍנҠЍРװРؠЍ؍̬؍ȍȬ؍ȫؠЍӍ̠ؠñōؠðȠؠؠ ō؍ٍÍҍҍҫҍҫōōō֍֍ԱōӍؠРŬ؍֬؍؍̠ЍҠӍҠҍ̍ҍԠðԠΠҠԍҠٺ؍Ҡ̍ҠōκҠͺōҠúōҠԺōҠͺōҠºōҠԍҠٺٍҠ΍ҠӍҠԿ΍ҠοЍҠͿЍҠٿҠٿ΍Ҡ¿ٍҠԿҠſҠſҠԿҠغ΍ҠغЍҠغٍҠغԍҠōѠ΍ӍԠ̍ŠԺӍԺð̠ԺčԠð٠ʍ٠ʢŠԺРԺԺРЍŠԺ֍Íà֍̠ԺčРӠԺč֍ӍԺР΍ŠԺ֍Íà֍ɠԺčРàԺč֍ӍԺРƍŠԺԺ֍Íà֍̠ԺčРӠԺč֍ԺĠӍԺРԍŠԺԺ֍Íà֍ɠԺčРàԺč֍ӍԺРɍŠԺōԠðӍԺРŠԺԠðԺð̠ԺРѠԺčԠðӍԺРŠԺԠðӍŠԺӍӍԺӍӍԺРŠԺčōӍŠ̍ŠŰӍŰōōؠ؍٠ٍōҠ׍֍РŠͺōѠͺͺ֍РŠͺōͺٍÍà֍ٍРӠͺٍ֍ŠͺͺРàͺٍ֍ͺؠ؍٠ٍōР׍ͺŠ؍ͺ͠ؠ؍Ŭ؍ŠͺͱͺͰà؍̠ͺ͍Ӎͺͱج؍РӠͺͲЬ؍٠٬؍ج؍؍Ҡ׍ؠ؍ͺͲ֍РŠͺͳج؍Íàج؍РͺʹͺͳРŠͺʹج؍Íàج؍ͺʹج؍Íà֬؍ج؍٬؍Íà֬؍٬؍РӠͺ͵٬؍ҠٍРͺͶͺ͵РàͺͶ٬؍ҠٍͺͶàҬ؍ŠͺͷҠٍЬ؍Ҭ؍àҬ؍ŠͺͷЬ؍Ҭ؍Ҡ؍ͺͷج؍РӠͺ͸٠ҠčЬ؍٠٬؍ج؍؍Ҡ׍ͺ͸РͺͰ٠֬؍ɠٺÍà֬؍֬؍Ӎٺ֬؍ҠƍÍà֬؍Ӎؠ֬؍ɠغ֬؍Ӎغ֬؍Ӎ̠̍ŠҍӍҠԍԍڍ֍ɠԍŠԍРԠҠԍ٠ЩٍԲٍЩٍٍЩٍٍŠԲЩٍàԍàԍŠԍӍԠҠԍ̱٠Щٍٍ̲ЩٍٍЩٍٍ٠Š̲ЩٍàԍàԍŠԍӍúŠ̍ŠúͰӍúͰ؍úͱؠ؍Ŭ؍ŠúͳúͲà؍̠úͱӍúͳج؍РӠúʹ٠ج؍؍Ҡ׍ؠ؍úʹ֍Ѡú͵ج؍Íà֍ج؍ú͵ج؍РӠúͲ٠ج؍؍Ҡ׍РúͲԺŠ̍ŠԺͰӍԺͰ؍Ժͱؠ؍Ŭ؍ŠԺͳԺͲà؍̠ԺͱӍԺͳҠͺԍج؍РӠԺʹ٠؍Ҡ׍ؠ؍ج؍؍٠Ҡ׍ؠ؍Ժʹ֍ѠԺ͵ج؍Íà֍ج؍Ժ͵ج؍РӠԺͲ٠؍Ҡ׍ؠ؍ج؍؍٠Ҡ׍РԺͲͺԍԬ؍ѠͺӰӍͺӰàԬ؍ѠͺӱӍͺӱԬ؍ج؍ج؍РàͺӲӍͺӲڍԍԍͺӳҠԍҠЩٍЩٍàԍàԍŠͺӳӍͺō̍ŠͺͰӍͺͰ؍ͺͱؠ؍Ԭ؍ŠͺͳͺͲà؍̠ͺͱӍͺͳج؍РӠͺʹҠͺӲͺʹ֍Ѡͺ͵ج؍Íà֍ج؍ͺ͵àԬ؍ŠͺͶРͺͲͺͶج؍РӠͺͲҠͺӲ٠ҠčРͺͲĠӍѠӳӱӲÍàŠӲԠðٍŠӱӳӍԠ̍ŠԺѠԺԺōѠԺؠԺŬ؍ѠԺ؍̠ԺɠԺԺōѠԺ؍Íàج؍֬؍ŠԺÍԺ ؍Íàج؍֬؍ԺàŬ؍ٍÍà٬؍ٍج؍؍Ҡ׍ō٠ҠčԺ؍Ժؠ؍Ŭ؍ѠԺج؍٠٬؍؍Ҡ׍ؠ؍ج؍Íà֬؍ج؍РàԺŬ؍Ժà؍̠ԺӍԺ٠٬؍؍Ҡ׍РԺԿ΍؍ȿؠ؍Ŭ؍Šȿȿà؍̠ȿӍȿ٠؍رȿؠرŬ؍Šȿȿàر̠ȿɠȿȿج؍РجٍŠȿ٬؍Íà٬ٍРàȿРàȿȿŬ؍٠٬؍ج؍؍Ҡ׍ ΍ؠ؍Ŭ؍Ա؍٠٬؍٬؍Ь؍ج؍ج؍؍Ҡ׍ ō٠ҠčҠӍРȿغΠ؍غؠ؍Ա؍Šغغà؍̠غӍغРàغЬ؍Ҡ׍ؠ؍àԱ؍غҠ׍ҠغōàЬ؍Ь؍РѠغҠ׍РغغЬ؍Ҡ׍àԱ؍ѠغРغغҠ׍Рغנؠ؍٠٬؍Ь؍ج؍؍ؠӠҍҠ׍ؠ؍Ь؍٠ҠčҠؠ؍ӍغŠؠ؍̍ŠغϰӍغϰ֍ŠغϱӍغϱج؍Íà֍ج؍ӍغРԱŠغӱӍغӱРàغӲЍҠ׍àԱغӲҠ׍àЍЍРѠغӳР׍غӳЍҠ׍àԱѠغӴӍغӴҠ׍ōӍנЍ̍٠Ҡčؠ؍٠ٍЍР׍οЍ̍Š̿ȰӍ̿Ȱ؍̿ȱؠ؍Ŭ؍Š̿ȳ̿Ȳà؍̠̿ȱӍ̿ȳج؍Р؍Ѡ̿ȳ؍ÍàРج؍Š̿Ȳ̿ȳ٬؍ÍàٍРà̿ȴРà̿Ȳ̿ȴ̍֍֍ōؠ؍٠ٍؠ؍٠ٍҠ׍ԱӍͿЍ̍ŠͿȰӍͿȰ؍Ϳȱؠ؍Ԭ؍ŠͿȳͿȲà؍̠ͿȱӍͿȳ؍Рج؍ѠͿȴ؍ÍàРج؍ŠͿȲͿȴҠͺӲؠ؍Ԭ؍Р̿ȴٿؠκɱŬ؍Ѡκɱج؍Р؍Ѡκɲκɱ؍̠κɱӍκɲٍРàκɱؠκɳŬ؍ѠκɴñŠκɳӍŠκɳРōκɳӍκɴ؍̠κɳōٍҠčРčӠ؍ڍҺؠ؍٬؍ԍҠԍج؍؍؍٠؍ҠЩٍЩٍؠ؍֍ѠҺج؍Íà֍ج؍Һج؍؍؍٠؍ҠЩٍЩٍà؍̠ҺӍٿ΍؍ɿ̱ؠ؍Ŭ؍Šɿ̳ɿ̲à؍̠ɿ̱Ӎɿ̳٠؍رɿ̴ؠرŬ؍Šɿ̶ɿ̵àر̠ɿ̴ɠɿ̲ɿ̶ج؍РجٍѠɿ̷جٍÍàРج؍Šɿ̵ɿ̷٬؍РӠɿ̸àɿ̵ɿ̸ؠ؍Ŭ؍Ա؍čӍÍàӍčҠӍҠǍؠ؍٠ج؍ج؍؍ؠӠɿ̹Ҡ׍ɿ̹ؠرŬ؍Ա؍٠٬؍٬؍Ь؍ج؍ج؍؍ؠӠɿ̱Ҡ׍ɿ̱Рɿ̲غ٠؍غɱؠ؍Ա؍Šغɳغɲà؍̠غɱӍغɳРŠغɴЬ؍Ҡ׍àԱ؍غɴҠ׍ҠغōàЬ؍Ь؍РѠغɵҠ׍РغɲغɵЬ؍àԱ؍ѠغɲҠ׍РغɲغŠ̍ŠغͰӍغͰ֍Ѡغͱج؍Íà֍ج؍غͱӍנؠ؍Ь؍̍̍٠Ҡč٠Ҡč٠Ь؍ج؍؍ؠӠױҠ׍ױؠ؍ӍӠؠ٠ҠӍӍРӠúؠ٠ҠӍӍРųúРӠؠ٠РòҠؠ٠ҠӍҲҠұҠҰРӠؠ̍кčҰÍàҰàкұÍàұàкҲÍàҲкč؍ŠкРҍſӍѠĺӍĺؠĺŬ؍Šĺ؍̠ĺōĺӍŠؠ٠ҠӍӍ٠Ҡčؠԍ٠ԍРԍԠàԧ ԡؠԠؠ٠٠ԺٍѠԺҠčàŠԺàŠԺԺӍſӍŠſӍſàӍѠſӍſؠ٠ҠӍؠÍ٠ÍРԍàà ؠԿñŠԿӍԿàñѠԿӍԿРſǠؠ٠ҠӍñؠǍ٠ǍРԍǠàǡ ԮؠҠԍԍڍҺҠԍ٠ҺЩٍٍ̠Һԍ٠ҠčÍàԍ٠ҠčàԍàԍŠҺӍºō̍РӠͺӍͺ؍ͺؠ؍ά؍ŠͺԱ؍ŠͺŬ؍Ѡͺج؍РàͺӠͺͺ٠؍رͺ ؠرŬ؍Ѡͺ°ج؍РجٍѠͺÍͺ°àر̠ͺͺà؍̠ͺӍͺàάٍجٍ؍جٍ٬ٍ٬ٍٍҠ׍ؠ؍ͺ٠٬؍ج؍؍ؠӠͺҠ׍ͺؠ؍֍Ѡͺج؍Íà֍ج؍ͺ٬؍Íà٬؍Рàͺ٬؍ά؍ج؍ج؍Ա؍Рͺͺ٠٬؍ج؍؍ؠӠͺҠ׍ͺРͺغ ؍غͱؠ؍Ա؍ŠغͳغͲà؍̠غͱӍغͳРàغʹЬ؍Ҡ׍ؠ؍àԱ؍غʹҠ׍ҠōàЬ؍Ь؍РѠغ͵Ҡ׍РغͲغ͵Ь؍Ҡ׍àԱ؍ѠغͶРغͲغͶҠ׍РغͲנؠ؍٠٬؍Ь؍ج؍؍ؠӠҍҠ׍ؠ؍Ь؍٠ҠčҠؠ؍ӍŠؠ؍̍ŠºϰӍºϰ֍ŠºϱӍºϱج؍Íà֍ج؍Ӎ¿ٍ؍Ϳñؠ؍ά؍ŠͿóͿòà؍̠ͿñӍͿó٬؍РàͿò٠؍رͿôؠرŬ؍ŠͿöͿõàر̠ͿôɠͿòͿöجٍРج؍ѠͿ÷ÍàРج؍ŠͿõͿ÷Ŭ؍Ա؍٠ج؍ج؍؍ؠӠͿøҠ׍ͿøčӍÍàӍčҠӍҠǍРͿòԿ؍ȿ±ؠ؍Ŭ؍Šȿ³ȿ²à؍̠ȿ±Ӎȿ³٠؍رȿ´ؠرά؍Šȿµȿ´àر̠ȿ´ɠȿ²ȿµجٍРج؍Šȿ´٬ٍÍà٬؍Рàȿ¶Рàȿ´ȿ¶ά؍Ա؍٬؍٬؍ٍج؍ج؍؍Ҡ׍ҠӍРȿ²ٺؠ̍ѠٺذʍРˢѠٺذؠҠ±ō٠àٺر٠Ӡٺز֍ٺذӍٺرРԺٺزРԺٺ٠̍ѠٺذʍРˢѠٺذؠҠ±ō٠àٺٱ٠Ӡٺٲ֍Ӎٺٱ֍Ӎٺٲ֍ӍΠʍРˢѠκԠð̠κàҍŠκōҍκӍ 0>|?~>~x?*UUA*yO*AUAkI ժ[mgsCaCaA">>"AIk>> ID  J D00 F&@00Ac6bcdefgh. ********** NIBBLE PRD DISK **********[ * CHECKIT * * COPYRIGHT 1988 BY MICROSPARC, INC.*( * CONCORD, MA 01742 *2 ************************************* <:::"CHECKIT":"COPYRIGHT 1988 BY MICROSPARC, INC."& F90R PI0377:ML:CSCSML:::CS48127100 Z:"ERROR IN DATA STATEMENTS!":"PROBABLY LOCATED ON OR BEFORE LINE ";(123)(124)256: d216,0:768,0:H(3):H(0)1:H(1)16:H(2)256:H(3)4096/ n6:"ARE YOU ENTERING A HEXADECIMAL":"FILE?";:A$:16368,0:A$Z xA$"N"A$(110)İ370:34218,128:210v A$"Y"A$(121)110 768,1:10:958:"WHAT IS THE STARTING ADDRESS OF THE":"FILE (IN HEX)";:H$:290:AH( A736A39424ĺ:"INVALID ADDRESS. PLEASE DOUBLE-CHECK":"AND RE-ENTER":350:140r 13:958:"WHAT IS THE LENGTH OF THE FILE":"(IN HEX)";:H$:290:BH B1B32000ĺ"INVALID LENGTH. PLEASE DOUBLE-CHECK":"AND RE-ENTER":350:160 :::34,1:2:"INSTALLING CHECKIT..."n A6144İ320:5799,(A256):5798,A256(5799):5801,(B256):5800,B256(5801):5802,0:230: ABOVE $1800 SOMEWHERE A6144İ370:34215,(A256):34214,A256(34215):34217,(B256):34216,B256(34217):34218,0:210: BELOW $1800 SOMEWHERE (48896)76Ĺ56,0:57,133:1002:2508 (4);"IN#A$8500":250b (48896)76Ĺ56,0:57,22:1002:250| (4)"IN#A$1600":250 :::34,1:2:"CHECKIT INSTALLED" (768)1ĺ:"ENTER THE MONITOR BY TYPING":" CALL -151"  O"H0:L(H$):L1L4300:I1L:D((H$,I,1)):HHH(LI)(D48(D58D47)55(D64D71)):U,j6 $1600 VERSION@I0377:ML:5632I,ML:I:C5632JI018:ML:CML,(CML)111:T^21:"PRESS RETURN TO CONTINUE ";:CH$:CH$:16368,0: h $8500 VERSION+rI0377:ML:34048I,ML:I1| 216,32,27,253,201,154,240,31,201,141,208,26,134,224,32,178,133,32,251,218,32,128,254,56,165,8 229,9,32,218,253,32,132,254,166,224,169,141,96,32,106,134,44,170,133,16,43,169,1,133,6,169U 8,133,7,160,0,177,6,133,251,200,177,6,133,252,240,63,200,177,6,32,79,134,200,177,6,32 79,134,165,251,133,6,165,252,133,7,208,221,173,167,133,133,7,173,166,133,133,6,160,0,177,6 32,79,134,230,6,208,2,230,7,230,251,208,2,230,252,165,251,205,168,133,165,252,237,169,133,144} 227,162,0,189,171,133,32,237,253,232,224,7,144,245,44,16,192,32,128,254,164,8,166,9,32,64 249,32,251,218,32,132,254,169,152,96,0,0,0,0,0,20,15,20,1,12,58,32,32,106,134,1334 6,169,2,133,7,160,0,177,6,201,176,144,73,201,186,176,69,177,6,44,170,133,16,53,201,210 208,4,166,251,240,61,201,162,208,8,72,169,1,69,251,133,251,104,201,160,208,6,166,251,208,25 240,26,201,191,208,19,132,226,160,0,185,117,134,32,79,134,200,192,5,144,245,164,226,176,3,32e 79,134,200,196,224,144,188,96,166,224,104,104,169,141,96,132,226,136,177,6,201,160,240,249,201,186 240,8,201,176,144,36,201,186,176,32,164,226,200,177,6,201,197,208,23,200,177,6,201,205,208,16, 169,210,32,79,134,169,197,32,79,134,169,205,32,79,134,96,164,226,177,6,24,144,135,162,8,10 38,8,38,9,144,14,72,165,8,73,33,133,8,165,9,73,16,133,9,104,202,208,232,96,169,0 133,8,133,9,133,251,133,252,96,208,210,201,206,212  16,41,44,73,79,92,97,106,123,128,135,180,203,246,249,261,316,321,326 jklmnopqrstu ** CITY.CENTURIAN4* BY JOHN ROMERON(* COPYRIGHT (C) 1988e2* MICROSPARC,INC.~<* CONCORD, MA 01742F*P:(21);:Z1770dI773777:KEY:I,KEY:n::1250xD$(4)' RN%PF1::D$"BLOADCC.OBJ":D$"BLOAD CCSHAPES":787,("K")128:RN%1:PF0: (NA$(1))160 PF1:D$"OPEN SCORES":D$"READ SCORES":I09:S(I):NA$(I):L(I)::D$"CLOSE":PF0 783,1 230,32:62450 SP3:LV1:SM1:MM0 LELV:LV10LE10 LXLV:LV4LX4 690 990 740 GAME32912A 768,19:769,70:770,0:32768G P 800V  "7:13:": :":13:" CITY ":13:" CENTURIAN ":13:": :": ,:12:"BY JOHN ROMERO":12:"COPYRIGHT(C)1988":11:"BY MICROSPARC,INC."3 6:"( ) PLAY ( ) SCORES ( ) CHANGE ( ) END"; @H2c J16:H:A$:A$" "HH11:H40H2v TA$(13)330 ^H13İ1760:260 hH24İ810:260 rH35ė:23: |:20 3100::"CONQUER AND YOU SHALL BE REWARDED!":I12000::16302,0  760 230,32* 771,1@ I02:780I,0:R 772,SP5049b SP3:779,1 24:1:868:23:1:868:34,0:GAME RCODE(778):RC2MMMM2:LVLV1:23:1:"5 YEARS LATER...";:LV(LV5)50SPSP1:24:1::"FREE SHIP AWARDED TO YOU!";::23 771,LV+ 34,22< RCODE1650N RCODE31530` RCODE41510i 760 &LE(779):LELE1:LE9LE9 0779,LE:LV(LV2)20LV4SMSM1:17:22(SM10)1:"THE ALIENS ARE BUILDING!";:SM9SM9:17:23:"CONSTRUCTION COMPLETED!";*DLXLV:LV4LX43N784<X740Eb690Nl990pv768,19:769,70:770,0:32768y470SPSP1:SP1Ģ23:1:868::"GAME OVER";::", THE MOON IS DOOMED!";A$:1600760:768,19:769,70:770,0:32768470 ** DRAW MNTS. **6HC((1)61):HC0HC4690EHC:0,145oI52745:MY((1)10145):I,MY:279,145:0,155279,155: ** STARS **3:I049:SX((1)255):SY((1)140):SX,SY:25542I,SX:25592I,SY:: ** PRINT STATS **G21:1:"SHIPS :";:20:"SCORE:":"CITIES:";:20:"LEVEL:"q21:8:SP10);SP" ":26:LV10);LVw  ** INST. LINE ** :17:"SELECT WITH SPACEBAR, THEN PRESS RETURN "::*:800:16:"SELECT SKILL LEVEL:1.2.3.4.5.6";:H24#4H:A$:A$" "HH2:H31H206>A$(13)820HHSP(H20)21xR16:1:868:"SOUND: ( ) ON ( ) OFF";:H9\H:A$:A$" "HH8:H17H9fA$(13)860pH9Ĺ783,1zH17Ĺ783,016:1:868:"CONTROL: ( ) KEYBOARD OR ( ) JOYSTICK?";:H115H:A$:A$" "HH16:H27H11HA$(13)910YH11A$"K"jH27A$"J"}787,(A$)128H27ı1370 ** CREATE MONSTERSI01925192I,0:25462I,025683I,0:25743I,025744I,0 IMM1150#MX((1)255):MY15BXV1:((1)21)2XV255n$YV((1)51):((1)21)2YV256YV.SH((1)LX)2825090I,MX:25110I,MYB25132I,XV:25152I,YVL25172I,SH:25192I,1VTI((1)50):25212I,TI:25232I,TI)`TM((1)20):25252I,TM:25272I,TM9jMX391150\t768,MX:769,MY:770,SH:32768|~I10Ĺ25352I,0:25652I,0I(LE)CX((1)255):25292I,CX:25352I,1:CX39Ĺ768,CX:769,134:770,6:32768SM1āI09:25362I,0:25332I,0::/I0SM:25332I,0:25312I,(1)255N25322,(1)255:25362I,1(25312I)40Ĺ768,(25312I):769,0:770,7:32768:769,136:770,8:32768:SM9āISM19:25362I,0::"PLEASE WAIT";::"...";RM%ıRM%1hLAC24576:CA0:H02:BYTE31:I03:BYTEBYTE1:J01:K07:LACCA,BYTE(4K):CACA1:K,J,I,H LACCA,255:CACA1:CA2561290BYTE0:1330:BYTE40:1330:BYTE80:1330LACCA,255:CACA1:CA5121310(L16640:1350C2I03:J01:K07:LACCA,BYTE:CACA1::BYTEBYTE128::BYTEBYTE256::]< 193,218,136,149,160FI140:K1:J17:L,K:LL1:KK2::PL16896:I039:J17:L,I:LL1:::3Z:800:11:1:"DEFINE CONTROLS, FOR THE SAME:":"UP :":"DOWN :":"LEFT :":"RIGHT:":"FIRE :":17:1:40);:idI04:CHAR(773I):A$(CHAR):CHAR136A$"<-"nCHAR138A$"DA"xCHAR139A$"UA"CHAR149A$"->"12I:7:A$:I04:12I:7:A$:A$(13)1490 773I,(A$)128:A$(8)A$"<-"!A$(10)A$"DA"7A$(11)A$"UA"MA$(21)A$"->"XA$" "^d21:1:958:"BETTER LUCK NEXT TIME":"PRESS RETURN...";A$11023:1:"THERE ARE NO MORE CITIES LEFT ON THE MOON. YOU CAN'T REFUEL:";::"GAME OVER!";::"";A$ 1600}:"SCORE:";:10:"WHODUNNIT:";:26:"LEVEL:":"------";:10:"----------";:26:"-----"I09:S$(S(I)):(S$)61580"J05(S$):0;:,S(I);:10:NA$(I);:28:L(I)10);L(I):6"@NUM0:I05:NUMNUM(((I1642)176)10(5I)):*J:3TII0S^I09:NUMS(I)III1:I9h:IIİ1550::"YOU HAVE NOT FOUGHT HARD ENOUGH...";:"";A$:110rIIII1|I8II1:S(I1)S(I):NA$(I1)NA$(I):L(I1)L(I):NA$(II)"":1550=II3:1(NUM100000)(NUM10000)(NUM1000)(NUM100)(NUM10):NUM;S(II)NUM:L(II)LV:10:28);:28:LV10);LV;:26:"<";:9:">";10:"";NA$(II):II3:28:L(II)10);L(II);(NA$(II))161690.14:1:"YOU HAVE FOUGHT WELL. ARE YOU SATISFIED WITH YOUR ENTRY?";:A$:A$"Y"A$"N"1720FA$"N"ĢII3:1700:D$"DELETESCORES":D$"OPENSCORES":D$"WRITESCORES":I09:S(I):NA$(I):L(I)::D$"CLOSE"110:1550::"THE TOP 10. HIT RETURN:";A$::M:23:PF1ĺ"ERROR LOADING FILES...":"THE FILES SCORES, CC.OBJ AND CCSHAPES":"MUST BE ON THIS DISK":"ERROR ";(222):"IN LINE ";(218)256(219):wxyz*111 YRPPPWX ASQPIFO NDIJAUY CGHEQTA *222 UKFKAXZ MQENOKK UHCZTDF JFZAXCQ *333 VJGFWWQ UWSCHGZ YWLCFGY EPERQQX *444 VAFSCFV HURYNEP APHTHIS OTGPBZH *555 JJTUOQS JSTAYKD SZWEAAF BONNNTG *666 AEQKPHX AGFTKPW CPIYYIY SOMRYTI *777 PSCFDTQ RDRWYMW JXWWSZI FWRONQP *888 QJDLWJG AIKWPEY MZFLGGX NXFBKGJ *999 DEGEZPH IXQKQPM VAKKXBM WUEKCJK *101010 QRGFBEW KLPXLKV OLVRZPQ IUOLAED *111111 MZCGCWP TQOYCHC RKNJGJP UVUTIGD *121212 ZEMHJGJ BUCDTZE LPPYBIR QZGZTDH *131313 WJSSCDL VOHSTZQ DEPVWFT YIVBVTS *141414 YGJHEUF YSQQAJX HHBQODR EFPURTY *151515 RDRABVX DFVFRWV TYUGZSD UOOTIUT *161616 WPOUYTE TVDDREN PZUEKBC NIDMXJC *171717 XLOUULO JGEYGFD OXTMLUB WRZPOII *181818 HZSMJGS LBJWAID WTAZMTS BFXJKNZ *191919 SAZRRWS YDYYRXW GEDCQBI VVILIZG *202020 HULXVZQ JBDEESM TQLGNKK WTEDMOY *212121 PYNQAIJ SGRRQQT OWWYNJE XBWSVEK *222222 KCWCULY FCIXSVC NAPFLRY CJFMVLU *232323 JHNEZQM NTNPVLR CDSGHIV MKIQHUX *242424 GVINIQC EHWXFJT JQSBICC EDOYAEO *252525 BRPMVIV UEXNXLR NKNSTMR LTCDPET *262626 RRAYBRF SEFJHCF KJPFXLK OSKPCLB *272727 FNAGFBX THURSXT MUAFGVV PEOICQI *282828 JVAWFRQ LCRATJX ZJSSVIP FGXZPLG *292929 PGOPTCM XVBGFMK IQJBKHV YKHZDQH *303030 CFIKCGL COVAJRZ FCATKTR HLNSATD *313131 RKUFOXW KFXHXOE OADLYAJ JTXIOAL *323232 UNIIZHS NBHZBMB AHIGIEL NWNQMUI *333333 YFCLDMQ HOERFIN NVCSIKF FEQWEFW *343434 ZLDZQFQ HRPYLJH CORLZFR JBNVSEN *353535 RZHDILB TIEBYEK HROEQOJ JPPTUYK *363636 HMLQTMJ UPPGCKU IFDJVDK ZNRLMHX *373737 BVGOIIX GJVJVOB SWXLWUQ QMOLJIR *383838 TTSCZHE LVFXPGT PPFPGYO CIWZWPT *393939 ICOTGYF HHDBFKF OWQNAAR ZHXEHME *404040 TWISMYP NJQQQVD NDQLNIM VIRYQDI *414141 NHANVQW RWZUXGU QONPMRA PYVEFAG *424242 QSQCYTK ECTPFZK COUMUWY WUZVXBW *434343 ZBNZAKX IUZJDTS UCHJYHC FQOJXQR *444444 OLNXTNY YSIBLND BQFOKGP KRJADTM *454545 THBARRH HNSJCZB MJJOITB OYBIZQN *464646 YAKGWFT APTBOIY WNLSQMR JFVMNZN *474747 RMZJQSL ESLSHGC EALEYLA DTTDVVO *484848 KRIKFSC XBWRJND FITLBVT DBUAJUL *494949 ZKOVPJZ ABOXMWH CYLELAI FBUZXFW *505050 HMHPHMX GFBMJUS KAGQXYO ZHYAXFK * XʽiiL`H hFD#Lީ C=??>Ȅ";IX$V TE$IX$:730j FL1FL0:260{ "IX$""ī100 ,3:"OUTPUT FILE =>";OX$ 6TE$OX$:730 @FL1FL0:300 JOX$""ī100W TIX$OX$Ģ18:"INPUT AND OUTPUT FILES CANNOT HAVE THE SAME NAME. PRESS RETURN TO CONTINUE. ";:16368,0:AN$::18:1:958:1:260s ^5:"ENTER KEY =>";K$ hK$""ī100 r(K$)1ī350 | 13:12 AN1ĺ"ENCRYPTING..." AN2ĺ"DECRYPTING..." 450 (4);"VERIFY ";OX$1 22:"OUTPUT FILE ALREADY EXISTS.":900:100; 620S (4);"VERIFY ";IX$i (4);"OPEN ";IX$ (4);"OPEN ";OX$ 768,(K$) (4);"READ ";IX$ X$ AN2İ960 X$""Ĺ769,0:550 769,(X$) &771 0BN$((770)) :(4);"WRITE ";OX$" DAN1İ970A N(BN$)4(BN$)132ī1010K XBN$;T b500 l(222)6ĺ"FILE ";IX$:"DOES NOT EXIST":900:100 v(222)13ė:"THIS PROGRAM ONLY WORKS WITH TEXT FILES.":900:100(222)5ė:"DOS ERROR ";(222):(4);"CLOSE":900:216,0:23::%216,07(4);"CLOSE"YAN1ĺ"ENCRYPTION COMPLETED"{AN2ĺ"DECRYPTION COMPLETED"I11000:100 * CHANGE SLOT/DRIVE & CATALOG  * SUBROUTINE 940TE$"/"770 TE$"?"860(7:"SLOT:";:S$B S$"1"S$"6"ĺ:770KS$;e 8:7:" DRIVE:";:D$*D$"1"D$"2"ĺ:8004D$>S(S$):D(D$)H(48896)76ĺ(4);"PREFIX,S";S;",D";D:860R43624,D:43626,S\34,8fp8!z(4);("CATALOG",74((48896)76))X23:"PRESS RETURN TO CONTINUE.";:16368,0:AN$:gFL1:34,09:"PRESS '/' TO CHANGE SLOT & DRIVE ":"PRESS '?' TO SEE A CATALOG ":"OR 'RETURN' TO EXIT "216,0:|:"INVALID SLOT&DRIVE OR NON SYSTEM DISK":"PRESS RETURN TO CONTINUE";:16368,0:AN$:FL1:34,0::3288:216,0:920:740:23:"ERROR LOADING ENCR.OBJ":B$:C$:A$X$B$C$:X$((A$)):BN$((770))(BN$)1BN$"00"BN$(BN$)2BN$"0"BN$V(4);"CLOSE":21:"TEXT FILE CANNOT BE DECRYPTED":900:100Mj ` Ү 卪 Ʈ ΍ Ԩé ì Í Ĭ Ǡ± ² Ӡ Ҡ²Ҡ±Ӎ±ÍҍàčĠ±Ӎ80) @)f :T b5&芗bIib3ȗb! )`ȷ bȗbb8b о )` b\ ሷbBȷሷሷሷbEȷሷЬ )`H h) )`)ȷ) )`H h` ** GS.FX.DEMO1* BY PETER STUBBSK(* COPYRIGHT (C) 1988c2* MICROSPARC, INC.|<* CONCORD, MA 01742F*PFX8192:SPD27:EFFECT26:VIDEO49193:SUPER193:TXT65e Z(4);"PR#3"::35:"GS/FX Demo"::32:"BY PETER STUBBS"::31:"COPYRIGHT (C) 1988"::32:"MICROSPARC, INC.":::"THIS PROGRAM WILL ONLY WORK ON AN APPLE IIgs"o d220 n(4);"BLOAD GS.FX,A$2000":216,0 xSPD,80:::"Which speed setting would you like?(S/M/F):";:16368,0:AN$:AN$;:AN$"S"AN$"s"ĹSPD,120! AN$"F"AN$"f"ĹSPD,40 ::"Is there a picture currently in memory?(Y/N):";:16368,0:AN$:AN$;:AN$"Y"AN$"y"170 210 (4);"BRUN PIC.CREATE":216,0 :12:37:"FADE IN":T12000::EFFECT,0:FX= VIDEO,SUPER:T11000::VIDEO,TXT::12:37:"FADE OUT":T12000::EFFECT,1:FX VIDEO,SUPER:T11000::VIDEO,TXT::12:36:"SCROLL IN":T12000::EFFECT,2:SPD,((SPD)1.5):FX VIDEO,SUPER:T11000::VIDEO,TXT::23: 216,0:"ERROR LOADING PIC.CREATE":23:- 216,0:"ERROR LOADING GS.FX":23: Ӯ 卪 ì 㮍 ҠҍÍÍǠ 썠 Ϡՠð Ԡՠ Ҡՠ Ϡՠ Šՠ ̱ՠ ̲ՠ Šՠ Šՠ ٠ՠ  卍ԠÍŠ Р 󍪍Ϡ ύŠ 獠Ϡ 󍍠űŰ Ҡ ƍűŰҫޤűŰҫűŰ Ϡ űŰϫޤűŰϫ ̠ōŠؠ РŠؠ 􍺲РŠ̠ؠ  ҠƳ 썠Ԡ 􍍪ؠ 卪̠ 占ؠ 멍а̠űŰؠ ƍ؍ؠ Šа 占٠Š ԠҠα ̠в вα̱ ѠŲ 占ؠƠ ؽ Рؠ ݬ٠ 占Ҡγ ̠Š ōγؠŠ ŠР 덠̱ Р ԠŲ ű вà 獠à ݬ٠ 卍Ҡδ ̠Š ōδР̱ Šв ŲؠƠ г؍٠ 占ݬ٠ 占٠ ٍҠε ̠Š ōεؠ̲ 򿍠Šг 덠٠ ٠ ̠Ԡ 卍ԠŠ ύ ύӠ 􍍪ؠ 卪̠٠ аݬ٠ 퍠ؠ ̠űŰؠ ƍٍݬ٠ 占ؠ ٍ̠űŰؠ 占ٍ٠ 䍠Šа٠ ԠҠα ̠в вαؠ̲ γ٠ 占ݬ٠ 占٠ 占Ҡβ ̠Š ōβؠ ؠƠ Šγ ؠ̱ 占βݬ٠ 占Ҡγ ̠Š ōγР ԠŠ à à β 䩍ŠؠŠ Πݬ٠ Ҡδ ̠Š ōδؠ ؠƠ ŠΠ ٠ ٠ ٠ ŠԠ 덍ӠōύӍؠ 卪̠ 占ؠ 멍а̠űŰؠ ƍ̠űðؠ ō؍ؠ Šа 占Š ōҠΰ ̠  ΰ٠ б٠ ݬٻ堤ؠ ƍ̠űŰؠ ٠ ƍݬٍ؍̠űŰؠ ƍƠ §Ҡα ̠  αٍݬ٠ ƍ؍̠űðؠ ōٍݬٍ؍̠űðؠ ō٠ ƍݬ٠ ؠ ̠űðؠ 占ٍݬٍ؍̠űðؠ 占Š §Ҡβ ̠  βٍݬ٠ ō؍̠űŰؠ 占ٍݬٍ؍̠űŰؠ 占٠ 󿍠Šб ԠŠ ύύӠ  ؠР̠űİؠ § Š ٠ 占ҠԠ ٠ ζؠ 㮍ؠø§ űøŠЍ  ύ 鍠 ύӍ 󍪍вݬ٠ 捠̱ Ġ 占Š ٠ 占ݬ٠ ̲ ٠ 占Ơ ƍ ؠР̠űİؠ § ζؠ 㮍ؠø§ űøŠЍ  ύ 鍠 ύӍŠ ٠ 占ҠԠ 占 Ӡ Ġˠ õ e?eeeVɀRHP89h&PPPoPoP3ɀ/ɀ/PHPP28 ȑȑ `i i ` `************************************************** * * * HRCOMP Source Code * * * * by S. Scott Zimmerman * * Copyright (c) 1988 * * by MicroSPARC, Inc * * Concord, MA 01742 * * * * The MicroSPARC Assembler * * * ************************************************** ORG $6000 ;Relocatable ************************************************** * EQUates: * ************************************************** ENDCOMP EQU $00 ;End addrs of compact COMPSTRT EQU $02 ;Start addrs of compact SCRNNUM EQU $06 ;0=HR pg 1; 32=HR pg 2 LENGTH EQU $08 ;Length compact file SCREND EQU $19 ;Pntr last scrn byte+1 HRPTR EQU $1C ;Pntr to HR screen COMPTR EQU $1E ;Pntr to compact pict ENDBYT EQU $80 ;#$80 ends 'on' bytes SCRN1 EQU $2000 ;HR pg 1 start MAXLEN EQU 5000 ;Max length allowed ENDSCRN EQU $3FF8 ;Last adrs of pg 1 ************************************************** * Define macros: * ************************************************** INCHR MAC ;Increment HR scrn byte INC HRPTR ;Go to next HR byte BNE ]A INC HRPTR+1 ]A LDA HRPTR ;Past HR screen? CMP SCREND ;Compare LOB LDA HRPTR+1 ;Get HOB for compare SBC SCREND+1 ;End of 16-bit compare BCS :A ;Branch to here EMC INCCO MAC ;Increment compact byte INC COMPTR ;Go to next compact byte BNE ]A INC COMPTR+1 ]A LDA COMPTR ;Past max length? CMP ENDCOMP ;Compare LOB LDA COMPTR+1 ;Get HOB for compare SBC ENDCOMP+1 ;End of 16-bit compare BCS :A ;Branch to here EMC ************************************************** * Initialize program pointers: * ************************************************** LDA #SCRN1 ;Set scrn pntr address STA HRPTR ;LOB CLC ;Prepare to add LDA #SCRN1/ ;HOB ADC SCRNNUM ;Add 32 if HR page 2 STA HRPTR+1 LDA #ENDSCRN ;Set end pointer STA SCREND ;LOB CLC ;Prepare to add LDA #ENDSCRN/ ;HOB ADC SCRNNUM ;Add 32 if HR page 2 STA SCREND+1 CLC ;Prepare to add LDA #MAXLEN ;Get maximum length ADC COMPTR ;Add compact address STA ENDCOMP ;Save as end of compact LDA #MAXLEN/ ;HOB ADC COMPTR+1 STA ENDCOMP+1 ;Save HOB LDA COMPTR ;Save compact address STA COMPSTRT LDA COMPTR+1 STA COMPSTRT+1 ************************************************** * Compact the Hi-Res picture: * ************************************************** GETBYT LDY #0 ;Zero the index LDA (HRPTR),Y ;Get HR screen byte BEQ NODOT ;Nothing there CMP #ENDBYT ;Not 0, is it $80? BEQ NODOT ;Yes, so treat as blank PHA ;Save HR screen byte LDA HRPTR ;Adrs of this byte STA (COMPTR),Y ;Save in compact pict INCCO TOOLONG1 ;Increment compact byte LDA HRPTR+1 ;Get HOB curr HR addrs SEC ;Prepare to subtract SBC SCRNNUM ;Subtract 32 if HR pg 2 STA (COMPTR),Y ;Save HOB INCCO TOOLONG1 ;Increment compact byte PLA ;Restore screen byte STA (COMPTR),Y ;Store byte value INCCO TOOLONG1 ;Increment compact byte INCHR STLEN1 ;Increment HR byte CLV ;To force branch BVC DOTON ;Always branch NODOT INCHR STLEN1 ;Increment HR byte CLV ;To force branch BVC GETBYT ;Always branch ************************************************** * Relays (to avoid jumps for relocatability) * ************************************************** TOOLONG1 CLV ;To force branch BVC TOOLONG2 ;Always branch STLEN1 CLV ;To force branch BVC STLEN ;Always branch GETBYT1 CLV ;To force branch BVC GETBYT ;Always branch ************************************************** * Check if next 4 bytes are zero: * ************************************************** DOTON LDA (HRPTR),Y ;Get HR byte INY ;Go to next HR byte ORA (HRPTR),Y ;OR it with previous INY ;Go to next HR byte ORA (HRPTR),Y ;Or it with previous INY ;Got to next HR byte ORA (HRPTR),Y ;Or this also BEQ CLEAR ;All are clear CMP #ENDBYT ;Also check for $80 BEQ CLEAR ;No pixel on either LDY #0 ;Go back to orig byte LDA (HRPTR),Y ;Get it again CMP #ENDBYT ;Is it $80? BNE ADDON ;No, so add to table LDA #0 ;Yes, convert to 0 ADDON STA (COMPTR),Y ;Save byte in compact INCCO TOOLONG1 ;Increment compact INCHR STLEN ;Increment HR byte CLV ;To force branch BVC DOTON ;Always branch CLEAR LDY #0 ;Set index back to 0 LDA #ENDBYT ;Get end byte $80 STA (COMPTR),Y ; Store in table INCCO TOOLONG ;Increment compact INCHR STLEN ;Increment HR byte CLV ;To force branch BVC GETBYT1 ;Always branch TOOLONG2 CLV ;Relay (relocatability) BVC TOOLONG ************************************************** * Calculate length of compact picture: * ************************************************** STLEN SEC ;Prepare to subtract LDA COMPTR ;Get current (end) adrs SBC COMPSTRT ;Subtract starting adrs STA LENGTH ;Save length LOB LDA COMPTR+1 ;Do HOB SBC COMPSTRT+1 STA LENGTH+1 LDA SCRNNUM ;Restore scrn number STA HRPTR LDY #0 ;Put three $80 at end LDA #ENDBYT STA (COMPTR),Y INY STA (COMPTR),Y INY STA (COMPTR),Y LDA LENGTH ;Check if zero ORA LENGTH+1 BNE ADD3 ;No, so add 3 RTS ;Yes, so end here ADD3 CLC ;Add these 3 to length LDA LENGTH ADC #3 STA LENGTH LDA LENGTH+1 ADC #0 STA LENGTH+1 QUIT RTS ;Done TOOLONG LDA #0 ;Set length to 0... STA LENGTH ; if compact picture STA LENGTH+1 ; is too long RTS ;Abort eɀ Pɀȱɀ`************************************************** * * * HREXP Source Code * * * * by S. Scott Zimmerman * * Copyright (c) 1988 * * by MicroSPARC, Inc * * Concord, MA 01742 * * * * Merlin Assembler * * * ************************************************** ORG $300 ;Relocatable ************************************************** * EQUates: * ************************************************** HRPTR EQU $00 ;Hi-res screen pointer SCRNNUM EQU $06 ;0 = HR pg 1, 32 = pg 2 COMPTR EQU $1E ;Compact pict pointer ENDBYT EQU $80 ;#$80 ends 'on' bytes ************************************************** * Macro definition: * ************************************************** INCR MAC ;16-Bit increment INC :A BNE ]A INC :A+1 ]A EMC ************************************************** * Program start: * ************************************************** ADDRESS LDY #0 ;Zero the index LDA (COMPTR),Y ;Get compact byte INCR COMPTR ;Point to next comp byt STA HRPTR ;Set hi-res address CLC ;Prepare to add LDA (COMPTR),Y ;Get HOB from compact INCR COMPTR ;Point to next comp byt ADC SCRNNUM ;Add HR page (0 or 32) STA HRPTR+1 ;Set HOB BYTVAL LDA (COMPTR),Y ;Get HR byte value INCR COMPTR ;Point to next comp byt CMP #ENDBYT ;End of string? BEQ TABLEND ;Yes, end of string NOP ;To erase, put $A9 here NOP ; and $00 here STA (HRPTR),Y ;Put pixels on screen INCR HRPTR ;Point to next HR byte CLV ;To force branch BVC BYTVAL ;Always branch TABLEND LDA (COMPTR),Y ;Three $80's in a row? CMP #ENDBYT BNE ADDRESS ;No, so proceed INY ;Go to next compact byt LDA (COMPTR),Y CMP #ENDBYT BNE ADDRESS ;No, so proceed RTS ;Yes, so done L`ɭL { ɫ ޥ<ɭ<ɯ ٠<L 32,0,191,197,92,12,208,80,160,0,185,97,12,41,15,240,59,141,96,12,185,97,12,41,112,24,42,42,42,42,42,105,176,32,240,253,32,72,249,185,97,12,41,128,24,42,42,105,177,32,240,253,32,72,249,174,96,12,200,185,97,12,9,128,32,240,253,202,240f X30723167:A:X,A::3072:3,76,58,12,32,142,253,152,41,240,24,105,16,176,7,168,76,10,12,32,45,255,96,2,0,97,12  *  * MAKE.DEMO.LIST8 * BY CHESTER PAGER( * COPYRIGHT(C) 1988k2 * MICROSPARC, INC.< * CONCORD, MA 01742F *K220PD$(4)ZD$"OPEN DEMO.LIST"dD$"WRITE DEMO.LIST"nREC150x"*";}REC;REC;REC FIELD14 I17+ ((1)2665);2 I? :FIELDJ :RECT "*";c D$"CLOSE"i :23:"ERROR ";(222);" IN LINE ";(218)256(219) Z D$(4):D$"OPENSCORES":D$"WRITESCORES":I110:1000:"John Doe":5::D$"CLOSE":  * * MERGESORT9 * BY CHESTER H. PAGEU( * COPYRIGHT (C) 1988r2 * BY MICROSPARC, INC.< * CONCORD, MA 01742F *P890Z33280:35328d(4);"BLOAD MERGESORT.OBJ"n216,0:26,154; x:5:4:"MERGESORT"::5:"BY CHESTER H. PAGE":5:"(C) 1988 MICROSPARC, INC.":d " 1) SHOW LIST IN PRESENT ORDER" " 2) REORDER LIST ON LINE L" " 3) PRINT LIST IN PRESENT ORDER" " 4) SAVE LIST TO DISK" " 5) LOAD NEW FILE" " 6) CATALOG"' " 7) CHANGE SLOT & DRIVE": " 8) QUIT"d 18:"YOUR CHOICE:";:16368,0:AN$:} AN$"1"AN$"8"210 X(AN$) X5(26)154ĺ:"NO TEXT FILE IN MEMORY":530:120 X270,290,350,370,570,550,780,770  * PRINT LIST :249,0:4617:530:1201  * REORDER LISTI ":"LINE NUMBER ";L[ ,L1L5ī290f 6239,L @:10:"REORDERING "F$:4614 J:F$" REORDERED ON LINE "L:530:120 T * PRINT LIST TO PRINTER ^:"PRINTING":D$"PR#1":249,0:4617:D$"PR#0":530:120# h * SAVE LISTING> r:36352:D$(4):420] |"SAVE AS FILE NAMED: ";F$m F$""ī120 D$;"VERIFY "F$ 490 510 D$"OPEN"F$ D$"WRITE"F$ 249,1:4617 D$"CLOSE":35328 :"FILE SAVED: "F$:530:216,0:120  * ERROR TRAPu 216,0::"FILE ALREADY EXISTS. OVERWRITE (Y/N):";:16368,0:AN$:AN$"N"AN$"n"ī120~ 420 216,0:26,154::"ILLEGAL FILE NAME OR FILE NOT FOUND":530:120 D$"CLOSE":"FILE TOO LARGE":530:120$:"PRESS RETURN TO CONTINUE.";:16368,0:AN$:5 * CATALOGT&:1:(4);"CAT":530:120n0 * LOAD NEW LISTING::35328:510DD$(4)N"LOAD FILE NAMED: ";F$XF$""ī120b26,0lD$;"VERIFY ";F$vD$;"OPEN ";F$216,04608D$"CLOSE""(771)0690@:"EMPTY FILE":530:120J760mD$;"BLOAD ";F$;",A$1600,TTXT"T(((01)256)(0))1:T33279ĺ:"FILE TOO LARGE.":530:26,154:120 (T)(5632)(T1)(5632)ĺ:"INCORRECT TEXT FILE FORMAT":530:26,154:120216,0:4611X(26)154ĺ:"MORE THAN 510 ITEMS IN LIST":530:120a120:"FILE TOO LARGE":26,154:216,0:530:120:23: :1:"SLOT:";:16368,0:S$:S$S$(13)ī120 S$"1"S$"7"ī780*2:"DRIVE:";:16368,0:DR$:DR$(4DR$(13)ī120B>DR$"1"DR$"2"ī810LH870mR(4);"PREFIX,S";S$;",D";DR$}\216,0:120f216,0::"INVALID SLOT AND DRIVE.":530p780z216,0::"CANNOT FIND FILE:MERGESORT.OBJ"L L/LHL i`@֠ɚ  i iȱDȥ8eiȥiȥiɚ`Ȣ ȥȥΑȥϑ8钍NnNn`&ii` ȱ` ȥ` ȱ  9ȱȱϑΑLk * * : ȱ Ff 98ЬФ *Ff 9Ff`L   [ o [ o`ȱ` ȥ  ȱ `ȥȱ`8 ȱ ei猪 ȱ eiȱ $)߅ $)`  ȱȱ$ ȱ ,ɛL$ ,`* * MERGESORT.S * BY CHESTER H. PAGE * (C) 1988 MICROSPARC, INC. * CONCORD, MA 01742 * TEXT EQU $0 KEEP EQU $0 dual names for dual use of NODE EQU $2 pointers, for readability PTR EQU $2 of source remarks HOLD EQU $4 NEXTA EQU $6 Pointers to next NEXTB EQU $8 lists to be merged START EQU $A FINISH EQU $CE S1 EQU $1A S2 EQU $1E LETTER EQU $D6 $40 for testing for caps MARK EQU $D7 Holds delimiter N EQU $EB INDEX EQU $ED LINE EQU $EF FLAG EQU $F9 TEMP EQU $F9 TXTLOAD EQU $1600 Start of text area HEADLIST EQU $8E00 SLIST EQU $9200 Stringlist, node list COUNT EQU $9200 COUT EQU $FDED ORG $1200 JMP TXTEND JMP LOAD JMP MAKELIST JMP PRESHOW TXTEND LDA #2 prepare parmlist for STA $300 PRODOS GET.EOF LDA #1 STA $301 JSR $BF00 call PRODOS MLI to get DB $D1 length of file DW $300 address of parmlist LDA $302 build pointer to storage STA TEXT position of EOF CLC LDA $303 ADC #SLIST initialize START pointer STA START LDA #SLIST CLC ADC #4 STA (START),Y LDY #0 STY TEXT LDA #SLIST CLC ADC #4 STA NODE LDA #SLIST STA COUNT LDA FINISH+1 SBC #HEADLIST STA PTR LDA PTR+1 ADC #HEADLIST STA NODE LDA #"L;"ίΠ`v""""""*$ Fk%YeQP!/RB}QBiBB}\ }FEL,#> ȏ6 . ) ɘ"    L:#:#ŠϠĠԠ  m# m# J Qڨ)̰}] нȱ ̀𩠙 i V N c ɘ\   VG+ #X ɛL ' 0% '8 Jm ʈ0  0ŠϠĠ͢Š͠͠ϠŠŠϠĠخ͠ ͍B B(8`BYYZLYLYLY뿭` 8!@8` %MNЩUMߩ  L 5   8 0 8  `0 / X& & +&&7&P^&0`ŠӠֱҭԠŠҬî̠ӠĮʎ1|&… (n}&Dž (\%Tz&Lc()8= (J 8'z&'{& 3((ʎ1|&|&|&3223 ')L&18|&"m11 2H22h2舌|&|&12H)M0 h10200I20h2 (`LE%12 `_'"L  <8# ȱ)ɀ  )( ` (Xp< @( )m((.(( M(i  ``) |'(j21 z& {&!` ({&z&(i({&(( CBDFGE (r&$ 3(,}&r& … 3(ŅL&JJJJ`Ϡ'8`r&h)hrȱȱȱȱ0]cȱeem*ȱ*ȱ**ȱ**ȱ* )* * )L(`L?* *Ll) ) L( )Ll)8e` ,$`ee` `* G** c*` v* G* c*`hh8`8`***`}*`e`H)hJJ*0JJ)` (< ( < *? ( < (? ( < (? ( <*? * **? *? *? ( < *? ( <.<ʆ>,=?BC8 é&'112`HB-9F 3"aɿ LLB Nϰ H  @h( L Lj  @`eLJCAB@=?<>=?<>CAB@?A` 1 L  <>`ڢF]PL8i m L   6< L  BLRAM' hLDLآ <B*IBGF08Lé'+8H <,``h(`@ڍL3hh@ihAiH(ؠȱ@JJJJq@)@vvȱ@Hȱ@Ah@@cve J) LL LJiB LJ) JxNhHHHHL(  ްƠx@BEOD  ް(`( C)CJJJl`B l-`J,~@~@}J@` ߩ%S @ ~`E hhhߺ0 h ߐ(     0 HϭߍLпllllhh8` Qu")T'P() ɺiLG )?      `l@Hȱ@IױHXATȱH ɯȩ׍̕5H)/@a)_ .0 :A[8@`,뎕׮Б` L` @>V)I38Pghם`K8`@Nȱ@O@ IiNȽבN)/ȩ/N`@[ WHJjjjhA I'KI؍0JHi 뎈`C8` @ 3N@) S莴 ⭱i`0 e; 뮈ٝ٘ 0 W,0 .H hȑNWȮّNW8`ٍّNί0NN` G8`F@ 0 P LK8`= >I8`FHGH hGhF܌ բFܽܕF芝ܝ 밶=> ?܅I m@IHHyHȘI Lܝ` @f@ n@Ю׍V)mיVʈ@tȱ@fȱ@prsiQ{R|V)5VI0ܢܽ lS'H* 7ghFG (JK L܅IU mHIH` wt tP0ST HVHQFRG 밳QR 밨J%܈G" T)Ii)܍U*܍H'ܮ( 4 䭐 $H %HFFHGHG 됬`R8`)` HHV` /Q'܅IHHVVЍV@`8 ` ͐% ΐQ8`܅I `S܍TU p8D`F` ilH)HFȍQHGR $%܍&܍!ܢ8* J8` L ܝA)I 'ܝ=`I8iUFSGT`I܅IH3H ( )ȱHί`Α8HeHI SB=0P ٙNٙLFQJʈ p猱`8m0`,0H hi PȽίhٍ0GF8yאFG  $0 S01 E8`100 e 0ʩ 谼 谷`12)1`0`Ȏi 0U`)8`ί` W G IؙJJ c: QLHIHI`JKJK`FHIG ( Ȣ؝؈JL)eKM`)` J }J͢ $0 ΑJFJL8`JGBJ \ FإG`BH \FإG`,H hHB؅F  ؅GxDE؍00C ް(`(8` L3J  B"L H  B 9ؙ` @ P8`K8`B8` O؈VJJJJحt) ) )Ю ЪGgF $ ᭔ع+ؠ >H  Wh8` 䮈ٽ ٬ؠ@` ( O )8`)i п`  H h)N$% LL L L >  .pJ덦 )@፩NJOK >iKKΥΥ IJΦ JФ̭JjHFIH HIGxKE ް((H hH h8`8@ȭ@L>쬉8NNO 8 ؍JL`RΥʱLN1MOMEKP/MEKΥLCL-M O,p莤eNNO(`JNKOL >/  .P L8 cؑJ`L@ȱ@ `@Nȱ@O`؝}}I}ؐ` rؽ؝} r 1 r؝}؈` ` H  \h)N@ C; L  >$ )bJ e ) H @hL ) # )حJjI~HI}H؊  PLKΥʱNLMO MЈMEKݸP%MEKΥL0 O, PeNNO O(` C  7 #2J}HI~HI؊ LQ  6` #A H} ع H~ ؙ؊ؠIhHIhH  iع `  عiعi` )؍0CGHFHBFGx ް(8hFhG`@4͔ L @Ai ׭2` . W#ع؍0 e讈)`.@+ i 8` L )߹0 )p )@ ) ȩ ؝O0QR 방 STQRFG 嬉؍i؍j؝k ؝f }V) }V )حP͝ `H@h`h``N8`  ) C⬉Ȣ؝@ݡ@ʈLO KIJHȢݡ)Jn 8 λ ؍ ؍ aH8 ع)ꭸJJJJ Ȣ؝I؈ >h(8H E h(8Hh(`ؑ@`@ȱ@ ` B@8ZV p鮈ٍٍٍvHٍu8ihjVJJJJV)V@` %I -t) 0@V)N8` @LL =@ 4ȹP8` %i` Bם0 4B B)( ȹ`8m8m@8` G8`F Pt)@N8`V)@J 4טyרםVV)׍Vgh 밑 %LȹL@ȅH@IL,0` G פֿ= eH.t)N 0 PghV)@LP8` a᮷ &֩VJKJ L䬈yٙ٭yٙ٩`K OEgFhG 6%&N   & ܮ `J HH hh` 0 @ LLL w`̻Yܝ ݝ0̻ȩFG   0` ܅F݅G ` wͬ 밽܅F݅G ` * w% L`L뮷HH &hFhG܍ݍ 8 `FHGH & hGhF`ݹܙ݊`@Bɼ>K@J5 9X(K XXK تKo`V8`no` I on I9XX`) HJJJh`OeNeO࿰ 9XАO`@ȭ@` ON fNJKO`HхhꭋILhH),kx8 (8` ԍ`@Ae Or88`zw! NIJK,-NOPQRSu' @   !"#$Ԡ͠ˠ(C)1983-87APPLELKL`BL Lެެެެެެެެެެެެެެެ(C)APPLE'83xLLM Mh@8nЍLޭ 0J @,,LZP׽8H  ): e: y8鰕:Jjjj<)yאi8i;i(*=>hPם8`;Zx3QZYXXWV[HEVhEhH)IWHPHHHAHHHLaVEWLӿ ֽ ְ& .Vӈ  JJJJH 8h Ei 8EX`'8`jӍWӥC)p> pӥCYӍY 轊( ( ӈBV ( ӭp0 \BkJ ՠ@iӦ> Ӑi'j:ZH i@ioZZH h ѐȭnWǥBJ Ӱ8XӦ>` Ր+>*L o % ԽYӍZӭoӝY 3Ѡ шNZ`rZLkӭZӍq8r7IZӐiZkӐk 8 ѹs ӭq ѹ| kн Z)*>>` @ $(,048<@DHLPTX\`dh 0ުlptx| 0($ p,&"op8`kkV꽌ɪɖxlӽ*kӽ-kәmMlӈ 꽌ɪ`8` ZԍsԍԍԍԥDEԌ8TԌ8WpԌqԠ 7I꽌ɪ꽌ɭ蠪:љVE:8`]ѾV]H)]ѾV]ҙ)]ѾT]ҙ)] >8hUD` ԝY`> Hh݌(`HCJJJJ)*h`8LխӅ:HhHh Ո թ թ ՘VYҪҦ>:Y)Ң`;R?AJ;<ȰY)Ң`Y?)Ң`ȐҰ ;HhHh=Ң`Hh `Hh`DEiȍ0֌18V%֌&8V֌֠)HV)hH)hHIhդD?DRIDQD)҅; ?JDQD]ՎՎՎ`MY pӭY)p  ӭp`C)`BFGV 8``  / XʩXύX X %   % ɍRH hɛɘɉɈ $ Ld :Ldې)ɮ۰ɺ' Ld  : X ( % ɛ$ɘɉ ɈL :Lɍ)ې)ɮ۰ɺH h 'L  ġLL ̹L)'L ȳL O'F ʻ ̹(((L $ʩ $$ $L `ީ % K@D EFby LҠؠӠ΢ϠԩҠŠƠԠԠŠӢɯϠҠůȠԠĠ  0h)ύh0HHHH " ׍hhhhhhh .hh8`JIMJAYKERRY&MIKE100 John Doe 5 200 John Doe 5 300 John Doe 5 400 John Doe 5 500 John Doe 5 600 John Doe 5 700 John Doe 5 800 John Doe 5 900 John Doe 5 1000 John Doe 5 hn Doe 5  ******* 8/08/86 *******;* ProDOS STARTUP *X* BY OWL *u(* COPYRIGHT (C) 1987 *2* BY MICROSPARC, INC. *<* CONCORD, MA 01742 *F***********************P16384Z::D$(4):(21)d9704 n ********** GET HI-RES SCREEN AND SET DISPLAY SWITCHESf x11:3:"MICROSPARC PRESENTS NIBBLE SOFTWARE" 15:13:"PLEASE WAIT..." D$"BRUN STARTUP.SCREEN" G(16297)(16300)(16301)(16304) ********** READ INFO FROM NIBMENU TEXTFILE 11203 P$(20): P$ = PROGRAM NAME a S$(300):S$ = LINES OF TEXT INSTRUCTIONS RC$(20): RC$ = COMMAND USED TO RUN PROGRAM MP$(20): MP$ = PROGRAM NAME TO APPEAR IN MENU D$;"OPEN NIBMENU" D$;"READ NIBMENU" A$: A$ = DISK NAME? NA$"NIBBLE "A$:22:20((NA$)2):NA$:1j NP: NP = NUMBER OF PROGRAMS ON DISK I1NP:P$(I):I MM: MM = NUMBER OF VALID MENU ENTRIES "I1MM:MP$(I):RC$(I):I ,S$ 6I0 @II1:768,S$(I) J(S$(I),1,1)"#"350 T320# ^D$;"CLOSE"` h(1101)6İ1080: ********** UPPER/LOWER CASE ROUTINE r ********** FIRST TEXT SCREEN |::3 "Thank you for ordering the Nibble":A$;"!": "The programs on this disk are:": Z1NP:5:P$(Z):Z 1030:FLAG$"ESC"ī600O  ********** CYCLE THRU NIBMENU TEXT SCREENSW A1` :3 S$(A)"@"İ1030::3:((FLAG$"ESC"))490:600 S$(A)"#"510 S$(A) AA1:460  ********** LAST TEXT SCREEN BEFORE MENU :3!6:"Thanks again for your order !"+12:S6:"ALL PROGRAMS ON THIS DISK ARE"{&6:"COPYRIGHT (C) 1988 BY NIBBLE"06:"MICROSPARC, INC. CONCORD, MA"::17:5:"UNAUTHORIZED COPYING IS ILLEGAL"D1030N ********** SET UP MENU XMEMM2:X$(0)" ":X$(1)"-->":Vb1:1:"Selection: : Instructions"l3:"----------------------------------------";v5:20((A$)2):A$I1ME2:61I:8:I". "MP$(I):61(ME1):8:ME1". Catalog Disk"61ME:8:ME". Quit"B21:"----------------------------------------"23:1:"Type number or use arrows, then ";:PX10:SX4:SL1 ********** SELECT CHOICENSL:OSSL:780:Z0:24:868/1:12:SL:49168,0:16384,128::Z$((16384)128):Z$"1"Z$(ME)SL(Z$):NOS:780:700Z(Z$(21)Z$(10))(Z$(8)Z$(11))10(Z$(13))20(Z$(27)):Z950Z20ī380SLSLZ(Z10):SLSLME(SLME)ME(SL1)NOS:780:Z10700800 ********** PRINT POINTER SUBROUTINE% 61N:SX:X$(SLOS);:H ********** SELECTION ROUTINEa SL(ME1)İ860:600*SLMEİ900:SL1:780:68042:1:" "::2:1:RC$(SL):> ********** EXECUTE A VALID MENU CHOICEH49168,0::1100:D$;RC$(SL)&R ********** CATALOG SELECTED C\:49168,0::D$;"CAT":mf24:7:"Press to continue";p49168,0:49152,128:z ********** QUIT SELECTED22::958:"Do you really want to quit? (Y/N)";:49168,049168,0:49152,1280(49152)249(49152)217Ĺ49168,0::1100:6j ********** SOUND BUZZER FOR WRONG KEYSTROKE EQ110:EY(16336)(16336):EQ: ********** ERROR HANDLING ROUTINE:(1101)6ė:D$"PR#A$300"5(222)6(222)8Ģ19:(7);"Disk Error. Please insert Nibble disk":1010g19:(7);"An error #"(222)" has occurred. "23:"Press to continue ";:958:49168,0:49152,128:600 ********** WAIT FOR KEYSTROKEFLAG$""623:" for next page or for menu";:49168,0:49152,128T(49152)155FLAG$"ESC"Z$. *********** ATTACH UPPER/LOWER CASE ROUTINE8I013:ML:768I,ML:I:D$"PR#A$300":B ********** DETACH UPPER/LOWER CASE HANDLER L(4);"PR#0":0V ********** INSTALL INPUT-ANYTHING ROUTINEK`X768839:A:X,A::xj ********** INPUT-ANYTHING ROUTINE DATAt 32,190,222,32,227,223,36,17,208,5,162,163,76,18,212,133,133,132,134,165~ 184,164,185,133,135,132,136,32,44,213,173,0,2,201,3,208,3,76,99,216Z 169,0,133,13,133,14,169,0,160,2,32,237,227,32,61,231,32,123,218,165 135,164,136,133,184,132,185,32,183,0,96,0 ********** UPPER/LOWER CASE ROUTINE DATA 216,201,225,144,6,201,251,176,2,233,31,76,240,253,0  c` ` v`` ` v` `ݥ``8 ``+p|~p|*U*U*U*U*U*S( @?p~px|xժժժժժ pgBT* @?p~px|ЪժժժՊ @?~|>xaFaFF?p- U @?`p~?pxԊԪ"- U*U*U*uP*U*U*U*U*U }<_/" p@Pgp{?"dydw!<MժժժժժժdpO|`*U*U*U*U*U*p|~p|(U*U*U*U*U*S* @?p~px|ժժժժժ toBT* @?p~px|xժժժՂ `~}?~|C~axGFx- U @?`p~pp[(U*UA*U*uԪժժժժՊ @ [ժժժժժժdpO|`*U*U*U*U*U*p|~p|(U*U*U*U*U*S* @?p~px|ժժժժժ dOBT* @?p~Ap||xժժժՂ `|y #L ~`xCc- Uy(U*U P*U* > @p{?" NԪժժժժժ@ [ժժժժժժdpO|`*U*U*U*U*U*p|~p|(U*U*U*U*U* `AB@* @?p~px|ժժժժժ n_?BU* @?p~p|ժժժp}{  3 00C1c. Uz*U*U*U*U*U L @@ " NԪժժժժժtժժժժժժdpO|`*U*U*U*U*U*pp~p|(U*U*U*U*U* `AB@* @?p~px|ԪժժժժN?8` |1U* @?`p~p|ժժժpys # 3 00F1c- Uz*U*U*U*U*U 49N/ p<@Pg@ OorEc{yMԪժժժժժLժժժժժժf~p*U*U*U*U*U*@?@p~p||(U*U*U*U*U* pcBP* @?p~px|Ԫժժժժ_?<< p|G?1U* @?`p~p|ժժժx{w<|sxο+* Tw@*U*U*U*U*U QA"$"p E@_(@ "  Mժժժժժժtժժժժժժf~p*U*U*U*U*U*@?p~Ap||x U*U*U*U*U* pcBP* @?p~px|ԪժժժՊ?~x 0 FA F11U @?`p~p|ժժxsg0 if there are more lines DONE RTS CHK ;Merlin CHK code = 9D