@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@P!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr d M * @  $ % CC$$)%1 Udߥ$9%: !0 S$%} DD˙`  }J)Lr J  ((  p L ()   J}L= ( L 0q A    IB JC;? D W } LL  ` W )LA!  ߰")-݆ p" } $G@LL 08`Q")<2Q0 -G$Ș݆ UL# ; p8(()(0ʥ)NQ` }$GȘ݆LU )L ݆ L GȘ ݆LL )W>Z   HH)H }p h  hyhy D L> L JJ    ! LA*` BF }7'8  M HN H` 8 Z  \LdJJ!"! GFE@F (!L }EE !E^ ^ E E7EȩEdE/EȩE  D } .L }  ;F d  ;?F7F? ( .   Z D LL d } . D  L    p  E` , d)  D L) 0BM݊L݉} ML  N݆ L NLML [ TEqEHȱEqEh 0Gȹ G} HLL GɛL  LFREE SECTORS G) *Gȩ GȽG GȌ*jj >G} C8jJ3j2CD( C202C ԠBX` N 1? l LlD:RAMDISK}.COMLu L1 L ;LHL  T`  `1  ɐ     `TU  } L ? .  t`GBJ ~DEHI B V0dV!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh"}DEL8HI4 0 HI,0 0  9 .G VLO#},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D1:MEM.SAV J y08 B|DEHI$} V0 0`B;DEL`?<0LV`@ʆ v s? F0Ξ05: [ BDEHI%} VY8 B V  @  /DE `E:D1:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO &}STILL RUN DOS B;DE J  (` 9 V⪍ ઍ  -'}LLu ÝDEHILV 9 .l 9 .l  `` s$B BH(}I|DE V BLV nB,DE JLV B V BLVDEIʩ BꭝLu  } 3E:}DISK OPERATING SYSTEM II VERSION COPYRIGHT 1984 ATARI CORP.A. DISK DIRECTORY I. FORMAT DISKB. RUN CARTRIDG*}E J. DUPLICATE DISKC. COPY FILE K. BINARY SAVED. DELETE FILE(S) L. BINARY LOADE. RENAME FILE M. RUN AT ADDRES+}SF. LOCK FILE N. CREATE MEM.SAVG. UNLOCK FILE O. DUPLICATE FILEH. WRITE DOS FILES P. FORMAT SINGLEL !N',}#"&))9(&*)/h)''-&؆莟R'S  vL/ˢ L }Insert DOS 2.0s, type Y Λx -}DEfHI 1莏#q! @ y0ɛ8A0,' ȅ 1 1ild! 1L!NO SUCH ITEMSELECT.} ITEM OR FOR MENU! 0 .z:*{}.|{ 1 0 0JB 18L%|DL/}%DIRECTORY--SEARCH SPEC,LIST FILE?[# 0 0 &|D3" 1L!NOT A DISK FILEN !B 1L!E# 1 !BD0}ED:}:1BJ|DE 1DEBHI 1 h0ߢ 0.1}  0?詛 1 y0YЛ 1 ;#L" ;#L! BL1TYPE "Y" TO DELETE...DELETE FILE SPEC2}COPY--FROM, TO?OPTION NOT ALLOWED736 FREE SECTORS COPYING---D1:DIRECK.COMl# 0|D .L/%#3}##JB|DE 1BHID#E 1#0: B 1L!#͑### B 1#c$0SY4}S1}:## # # .#Ƚ# # 𩛙## 1,#PD#ELJ- <.BJD#E 5}1 1HH 0hh|DL%1}:̳# L% #D#EL% 1 0 . .0O% 1L!WILD CARDS NOT A6}LLOWED IN DESTINATION 0 <.|K}N 2 FORMAT. t* 5) 1L!`) 0NΞ 0 L1) 1 L!BAD LOAD FILELOAD FROM WHAT FILE?) 0 ?}0#B 1L!WHAT FILE TO LOCK?) 0 0$B 1L!WHAT FILE TO UNLOCK?DUP DISK-SOURCE,DEST DRIVES?TYPE "Y" IF OK TO US@}E PROGRAM AREACAUTION: A "Y" INVALIDATES MEM.SAV.FE! +L1   `*  70 2 2A} 0.* 1 y0 0)INSERT BOTH DISKS, TYPE RETURN^, 1 y038逍 N, 1L! ,B}C, t*  Lx+, 0 ^, 1 y0 , ,0,0 ,L+ ,I0 ,Vǭ0C}Ξ, 0 }, 1 y0C,ШC, 0K'!" H H 'h h Lx+!EF 5L1L!D,I,HhD}` NOT ENOUGH ROOMINSERT SOURCE DISK,TYPE RETURNINSERT DESTINATION DISK,TYPE RETURNE}`  `8 rL1`-* 1P* 1 y0Y`hhL!NAME OF FILE TO MOVE?- 0 0|DL% <.F},^ 1 70 0 .@L# .BJ 1  DEHIB V L1 ,} 1 70,L.  G}JB|,#P#DE 1 HI BDEHHII 1 B 1 ,^ 1 70,0La- B V,#PH},^ 1 70 0L#L!-* 1P* 1 y0Yj383}mm ݭI}}`8}``|* ? ɛ,`|:-)| / 1L!`DESTINATION CANT BE DOJ}S.SYS0 0H{ 24Δ 28/L!/) 2 Π 2 0 ξK}hAΞB,0 J 1 BDEHI,HÝDE 1HIHIDELSAVE-GIVE L}FILE,START,END(,INIT,RUN)O S0 1`BDEPHI V` S0H 1 L!M}0 0 1L~0`PLEASE TYPE 1 LETTER,0`hhL! 70 1L0L<1 ,;ɛ7,"ɛ:ݦ1ݥN}A"D|ݤD|ȩ:|ȩ|ɛ,,(/+.ީ1 1,ɛ`轤{NAMEO} TOO LONG B VL!` L1I H1EΝDL1|mDiE` V0`8d/8 i:222 1 LP}!ERROR- 138ɛ+,' 20*.. өr2 1``2TOO MANY DIGITSINVALID HEXAQ}DECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8uR} ECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8u()a NAMEADDRESSCITYPHONEAFILENAMECOUN !!*********T}******************!!* BASIC TRAINING *!!* SIMPLE ADDRESS BOOK *(!!* by Clayton Walnum *2!!* U} *<!!* Copyright 1989 *F!!* by ANALOG Computing *P!!***************************V}ZdGG;@0,;@0,;@0,;@,;@,;@,nx!!***************************!!* W} PRINT MENU *!!***************************(>:A%,((| REX}ATE FILE |(| |(| OAD FILE |(| |(| EIWY} FILE |(| |(| UIT |(4CZ})4cAp4L)4lAP"4Q)4q,4V)4vA6 A`@J!!****************[}***********T!!* CREATE FILE *^!!***************************hr(FILENAME| @@\} A !!***************************!!* LOAD FILE *!!***********************]}****(FILENAME @@ !!***************************!!* GET ADDRE^}SS *!!***************************#((NAME:#4A &((ADDRESS:&4A _}0((CITY, STATE & ZIP:!04A &$((PHONE:$4A 0( ((((:-()(IS THE ABOV`}E ENTRY OKAY (Y/N)-D>4N)4n(4(PLEASE REENTER THE ADDRESS.> A N80Y*0y(.(PLEASE ANSWER a} OR .8 ApX7(@(@*(@7(@b A l@ A`v!!*****b}**********************!!* VIEW FILE *!!***************************(FILENAME @c}@ A`6-(>:A%,7@@*@7@(d} (((J6-%@"@ (<(PRESS [RETURN] FOR MORE@J A( A 4(( END OF FILE.e}4(PRESS [RETURN] FOR MENU.@ A` D:ADDRESS.BASA( A 4(( END OF FILE.O]5dX;SAVE#D:BUPP1.M65nX;xX;------------------;X; BUP.SYS part I ;X; ;X; (c) 1989 g};X; by Barry Kolbe ;X; ;X;------------------;EIX; X;equatesX; LO JOEO h}L;;end of lineLINENO;;line numberLINPTR;;ptr to line #CLINE;;current line"ILINE;;increment line i},FLINE;;first line6RLINE;;referenced line@SPTR;;ptr. for seachJSLINE;;search lineTVNTP;;var. n j}ame table^STMTAB;;BASIC statmt.hPROMPT;;flag-BAIC done?rCRITICB;;cirtical I/O|ICCOMB;;commandICBAL k}D;;buff. address ICBAHEICBLLH;;buff. length ICBLHIICAUX1J;;aux. byteHATBAS;;handler tabl l}eLBUF;;input bufferMEMLO;;memloDOSINI ;;disk init.DLISTL0;;display listDLISTH1CIOV m};;cio vectorFASC;;fp to asciiAFP;;ascii to fpIFP;;integer to fpFPI;;fp to integer&FR0;; n}fp register 00 FR1:SETLBFQ;;reset lbufDSETVBV\;;set vert. blnkNSYSVBV_;;system vbiXXITVBVb;;exit o} vbibINBUF;;input buf. ptrlCIX;;char. indexvWARMSTt;;warnstartVVBLKD$;;deferred reg DOSVEC X p}; X;IN1-QDLISTL;;save origPDLS;;display listQDLISTH;;pointerPDLHQDOSINI;;savePSYSRST; q};DOSINIQDOSINIPSYSRST X;X;save immed.vbi vectors X;* QVVBLKD4 PVBLKDS>QVVBLKDHPVBLKDSR r}X;\"X;reset my SYSTEM RESET routinefX;pIN2Q>5SYSRSTzPDOSINI Q>4SYSRST PDOSINIX;X;reset character cou s}nterX;Q> PCHRCNT PQTFLAGPTFLG;;trace flagX;X;find editor vectorsX;search handler for E:X;%> t}E1QHATBAS8R> E$FE2;;got it.383B3L)>!VHE1`:jX;tE23;;point to~Q>4MYEDIT;;my patch PHATBAS8 u}3 Q>5MYEDIT PHATBAS8%>;;copy systemE3Q8;;routinesPMYEDIT8;;to my 3;;patch)>HE3X;X;g v}et byte vectorX; Q>4GETCOM;;point itPMYEDIT;;to myQ>5GETCOM;;wedge(PMYEDIT2,;;put system<Q w};;get byteFO>;;at beginningPPGETCOMZQdO>nPGETCOMxX;X;put byte vectorX;Q;;get vector x},;;vectors areO>;;always -1PPUT1;;add 1Q;;install inO>;;my 'PUTC'PPUT1;;routineQ>5ENDPRG;; y}set LOMEM PMEMLO Q>4ENDPRG PMEMLOX;Q>;;chang colorP"$>;;say we are,B1QBB19;;here!6 PUTC@ z} WAIT;;wait a jiffJ WAIT;;maybe twoT0^IB1h$>;;clear stackrB|!;;jump to BASICX;WAITQ>;;wait a j {}iffyP WITQFWIT:X;X;handle SYSTEM RESET buttonX;SYSRST ;;does DOSINI!IN2;;resetX;#X; |}print Accumulator via put byteX;PUTC&XSAV;;save X, Y 'PYSAV&PUT1 ;;put byte0$XSAV;;restore X,Y: %PYSAVD }}:NX;XX;get bytes from editorbX;lGETCOM ;;get a bytev6;;save status)>;;break key FBRK;;yesR>EOL;;R ~}ETURN?FGOTRT1;;yup&X3;;save X$LSTKEY;;last key(>;;ret? =ffHKOK$>;;reset countr &CHRCNT &LSTKE }YKOK$X3;;get X #CHRCNT!NOBRK;;skip over X;BRKQ>;;on break turn PONOFF;;everything*PQTFLAG;;OFF!4 P }CHRCNT> PENDLINHQ>;;restore vectorsR%VBLKDS;;for VBI\$VBLKDSf SETVBVp SETLBF;;floating pointz!EXIT2; };pointersX;NOBRK8;;restore status :;;doneX;X;BASIC done with lineX;X;PROMPT <> 0 when BASICX;is done }parsing a lineX;endlin =0 means lineX;not completely enteredX;from BASICX;GOTRT1QQTFLAG HBRK QONOFF;;a }utonum? FNOTON;;0= off$ Q>;;VBI timer. PTIMER8 Q>B PENDLINL Q>V PPROMPT;;clear for` PCHRCNT;;BASICj Q>E }OLt 8~ : X; X;autonum not on X; NOTON'Y1;;save regs &X1 $>;;last key &LSTKEY X; X;check command X }; %> 'CY1 GTCM1%CY1 $> QLBUF9;;first char RCOMTAB8;;in table?( HNOMAT2 3< 2F QLBUF9;;try secondP  }RCOMTAB8;;charZ HNOMATd 3n 2x QLBUF9;;try third RCOMTAB8 HNOMAT X; X;got match X; 3 QCOMTAB8 PTAKE }OF;;find addr 3;;of my QCOMTAB8;;routine PTAKEOF %CHRCNT;;stick in Q>EOL;;a RETURN PLBUF8 -  CRUN }CH;;smash spaces" TAKEOF!;;go to it, X;6 X;exit routines@ X;J EXIT2%>;;show BASICT ';;no error^ 'CHRCNTh Q> } .;;REMr PLBUF8| 3 Q>EOL;;and EOL PLBUF8 EXIT1$X1;;restore X,Y %Y1;;make a Q>EOL;;normal exit 8 : X; } X;no match X; NOMATQCY1;;try next ,;;command O> PCY1 R>A;;13 commands HGTCM1;;@ 5 bytes& %CHRCNT;;e }ach0 Q>EOL;;put in RETURN: PLBUF8D HEXIT1;;and exitN X;X X;crunch out spaces in inputb X;l CRUNCH$>;;find thev  }CR1QLBUF9;;length R>EOL FGOTEND;;found it 2 ICR1 GOTEND&ENDPTR;;save end $>;;now collapse SQUISHQLBU }F9;;it and R>EOL;;remove spaces FCR2 R> ;;space? HNOSQSH;;no squish DOSQSHA ?;;copy from SQSHLPQLBUF8 };;back PLBUF8;;to front 3;;next one )ENDPTR;;done yet?* HSQSHLP;;no4 "ENDPTR;;len=len-1> !SQUISH;;moreH NOSQS }H2;;done yetR (ENDPTR\ HSQUISH;;nof CR2:;;finishedp X;z X;command table X; COMTAB ADIRA  DIR AERAA  E }RA APROA LOCK AUNPA UNLOCK ANAMA RENAM ADOSA  DOS ATRAA TRACE AOFFA$ TOFF. A }NUMA8 AUTNUMB ARENAL RENUMV ADECA` DECHEXj AHEXAt HEXDEC~ ALVAA VARLSTX;X;directory routine }X;DIR TURNOF;;trace off CLOSE5;;close iocb 5$>PQ>;;open chan #5 PICCOM9Q>;;directory PICAUX19 }Q>5DIRNAM;;D1:*.* PICBAH9  Q>4DIRNAM PICBAL9 CIO;;openning(INOERR1;;no error2GENDIR;;opps<X;FNOERR }1$>P;;chan 5PQ>;;20 charsZ PICBLL9dQ>;;for inputn PICBLH9xQ>5DIRBUF;;my buffer PICBAH9 Q>4DIRBUF PIC }BAL9Q>;;get bytes PICCOM9 CIO;;get 'emGENDIR;;error-quitX;$>Q> ;;put bytes PICCOMQ>;;20 o }f 'em PICBLL &ICBLHQ>5DIRBUF;;my buffer PICBAH" Q>4DIRBUF, PICBAL6 CIO;;print 'em@INOERR1;;okJENDIR } CLOSE5;;close #5T!EXIT2;;to BASIC^X;hX;close iocb #5rX;|CLOSE5$>PQ>  PICCOM9 CIO:X;X;do XI }Os using CIOX;DOXIO5;;save command CLOSE5;;close chan TURNOF;;trace off 7;;get XIO$>P;;command PICCOM }9Q>;;zero length PICBLH9 PICBLL9&Q>4LBUF;;D:filespec0 PICBAL9:Q>5LBUFD PICBAH9N CIO;;do XIOXC }b IENDIRl !ERRORvX;X;XIO jmp tableX;ERAQ>!;;erase file HDOXIOLOCKQ>#;;lock a file HDOXIOUNLOC }KQ>$;;unlock it HDOXIORENAMQ> ;;rename it HDOXIODOSQSYSRST;;resstorePDOSINI;;DOSINIQSYSRST;;ve }ctorPDOSINI  TURNOF;;trace off!WARMST;;do warm start X;*X;turn trace on4X;special display list>X;from A }NALOG issue 31HX;June 1985 page 74RX;\TRACEQTFLG;;check flagfHAON;;1 = on nowp#TFLG;;set to 1zQDLISTL;;get }displayPDLS;;list and ,;;save itO>PBACK;;put it intoQDLISTH;;my displayPDLH;;listO> PBACK }Q>5NDLIST;;installPDLISTH;;the newQ>4NDLIST;;specialPDLISTL;;display Q>;;list%>4VBI;;turn on$>5VBI; };VBI SETVBV$AON!EXIT2;;out.X;8X;turn off VBIBX;LTOFF TURNOF;;turn NUM offV!EXIT2;;goto BASIC`X;jTUR }NOFQDLH;;restoretPDLISTH;;original~QDLS;;display list PDLISTLQ>;;set flag PTFLG$SYSVBV;;reset VBI }%SYSVBV;;to systemQ>;;vectors SETVBV:X;X;print error messageX;ERROR5;;save error #$> E11 }QERMES9;;get byte PUTC;;print it0(IE1127;;get error<PFR0FQ>PPFR1Z IFP;;convert tod FASC;;ATASCII }n MPRINTx DOCR PRRDY !ENDIRX;X;print "READY"X; PRRDY$>RDYQREAD9 PUTC0IRDY:X; }X;vert blank code for traceX;VBIQCRITIC;;criticalFV3;;section? no"!SYSVBV;;out,V3QDLISTL;;see if specia }l6R>4NDLIST;;display list@HPUTDL;;is presentJQDLISTH;;if not - formTR>5NDLIST;;it^ FV9;;yeshPUTDLQDLISTL;; } save itrPDLS|,O>;;install inPBACK;;new displayQDLISTH;;listPDLHO> PBACK Q>4NDLIST P }DLISTL Q>5NDLIST PDLISTHV9Q;;get executingP;;line pointerQP%>;;get executingQ@7;;line n }o.& PBFR003:Q@7D PBFR1NQ>;;clear out BCDXPBCD;;work spaceb PBCDl PBCDv PBCD<;;decimal mode }%>;;16 bitsV4TBFR0;;2 BCD digitsUBFR1;;per byte$>;;6 BCD digitsV5QBCD9;;total OBCD9 PBCD90 }HV51HV4-;;clear decimal$>;;put digits on %>;;top lineV6QBCD8 5;;high nibble*V?4V?>V?HV }?RL>;;internal code\ PTLINE9f2p7;;get bytezM>;;low nibbleL>;;internal code PTLINE923)>;;done }? HV6;;no!SYSVBV;;goneX;X;convert dec to hexX;DECHEXQ>;;point to #PCIX;;in 'DECdddd' Q>5LBUFP }INBUF;;point FPQ>4LBUF;;to it PINBUF$ AFP;;to FP. DDD2;;ok8!VALERR;;errorBDD2 FPI;;to integerL BNTO }HX;;to hex digitsVQ> =` PUTC;;'=$'jQ> $t PUTC~$>;;print theDD1QN2BUF9;;hex digits PUTC0IDD1 }DOCR SETLBF;;resetQ>;;FP stuffPCIX!EXIT2;;to BASICX;X;do a carriage returnX;DOCRQ>EOL  PUT }C:X;(X;binary to hex converter2X;<BNTOHX%>;;work backwardsF$>;;2 hex numbersP HX1&X3ZQFR09;;get high }d 5;;save itnV?;;move toxV?;;low nibbleV?V?X;>QHEXTAB9;;get hex digitPN2BUF8;;store it1;;move poi }nter 7;;downM>;;now low nibble>QHEXTAB9;;get hexPN2BUF8;;save it1$X3;;next hex numbr0IHX1" : };;done,X;6X;hex to dec converter@X;JHEXDEC%>;;point toTQLBUF8;;hex in^R> $;;'HEX[$]hhhh'hHHD1;;skip '$'r }3|HD1$>;;clear work&FR0;;space &FR0&X2;;digit countrPU1QLBUF8;;get digit$>;;in tableH2RHEXT }AB9FH3;;X = 0-150IH2GH6;;oh! oh!H3&X1;;= 0 <-> 15X;X;convert to binaryX;TFR0;;times 16 UF }R0&TFR00 UFR0:TFR0D UFR0NTFR0X UFR0b-l,vQFR0;;add in valueOX1;; 0<-> 15PFR0 QFR0 }O> PFR03;;next dec digit#X2;;hex counterQX2R>;;got 4 FH6;;yes!PU1;;do moreH6QX2;;# }digitsHH7!VALERR;;error X;X;convert to ATASCII $ print X;* H7 IFP4 FASC;;to ATASCII>Q> =H PUTCR$> }\ H9QLBUF9f 5;;save itpM>;;mask inversez PUTC2 7;;get it IH9;;more DOCR SETLBF;;reset LBUF!E }XIT2;;to BASICX;X;do listing of variablesX;VARLSTQVNTP;;point toPJO;;variableQVNTP;;table PJO }Q>;;first var=$80 PMYTOKENLSBEGQJO$R;;at end of.HLPVAR;;var table?8QJOBRL HLPVARV!EXIT2;;to } BASIC`X;jLPVAR%>;; print variablet Q@JO7~ 5;;save itM>;;mask inverse PUTC;;to screen#JO;;move pntr up }HLV1 #JOLV17;;get byteILPVAR;;more if + DOCR;;do CRQSTMTAB;;get start ofPLO;;BASICQSTMTAB };;lines PLOQ>;;column cntr  PPRFLAG#MYTOKEN;;next variableX;(VV0 GETTOKN;;get line2PLINENO;;numbe }r< GETTOKNFPLINENOPR>;;at 32768?Z DVV1;;nod DOCR;;yes tryn!LSBEG;;next variablexX;VV1 GETTOKN;;of }fsetVN1 GETTOKN;;offset GETTOKN;;tokenR>;;rem /dataEVV2VV3 GETTOKN;;get byteR>EOL;;EOL yetHVV3 };;keep goingFVV0;;next lineX;look for end of statement X;or lineVV2 GETTOKNR>;;statmt end?FVN1;;next s }tmtR>;;THEN?FVN1"R>;;line end?,FVV0;;next line6R>;;num constant?@HVV4;;try stringJ$>;;skip numberT }VV7 GETTOKN;;pull numbr^0hHVV7rFVV2|VV4R>;;a string? HVV6;;no GETTOKN;;length >;;skip itHVV7 }VV6RMYTOKEN;;a variable?HVV2;;nopeQLINENO;;show linePFR0;;numberQLINENO PFR0 IFP;;INT to FP } FASC;;ATASCII#PRFLAG;;screen QPRFLAG;;format R>;;5 per screen HVP2;;line& Q>0 PPRFLAG;;reset: DOCRD  }VP2 MPRINT;;roll pressesN VP4Q> ;;spaceX PUTCb 3;;format withl )>;;spaces sov HVP4;;in columns !VV2;;try mor }e lines X; X;get a token and increment X;the pointer in BASIC X; GETTOKN%> Q@LO7 #LO HNINC #LO }NINC: X; >D:BUPP2.M65!X; ! X;data!X; !ERMES A # RORREA*!BB1 =AegakcaP seitiA4! AlitU CISABA=}>!NDLIST } p=p=B;;newH! TLINE;;disply listR! \!BACK ;;disp.lst flgf!TLINE A EXECUTIAp! AING LINE: Az! } A A!ONOFF ;;auto num flg!TFLG ;;trace flg!DLS ;;save old!DLH ;;disp. list!BCD ;;bcd w }rk area!BFR0 ;;psuedo FP!BFR1 ;;registers!YSAV ;;save y,x! XSAV !PYSAV ;;save y!Y1 ; };more save!X1 ;;x and y! Y2 " X2 "CY1 ;;ysave in cmd"QTFLAG ;;quit num flg$"TOKTAB  = = } = =#=."OFFSET ;;ren-stmt offst8"NXTSTM ;;next st. offstB"PRFLAG ;;print flgL"LSTKEY ;;last keyV" }MYTOKEN ;;save my token`"X3 ;;save xj"DONMES EOL=Aderebmuner At" AmargorPA~"OVRMES =A86723 => eniLA" }READ EOL=AYDAERA"TIMER ;;vbi timer-num"ENDLIN ;;end line-num"CHRCNT ;;char. cnter"VBLKDS ;;sav }e vvblkd"FPMES EOL=Arorre eulaVA"HEXTAB A0123456789ABCDEFA"ENDPTR ;;crunch"MYEDIT ;;ed. vector tab" }DIRBUF ;;for directry"DIRNAM AD:*.*A=EOL"NBUF ;;# buffers-num#N2BUF ;;& ren # ;;for unify#X;#I }(#ENDPRG 2#EI<#F# IN1P#*.*A=EOL"NBUF ;;# buffers-num#N2BUF ;;& ren # ;;for unify#X;#I (R&dX;SAVE#D:BUPP2.M65nX;xX;-----------------;X; ;X; BUP.SYS part II ;X; ;}X; (C) 1989 ;X; by Barry Kolbe ;X; ;X;-----------------;X;X;get line numbersX;R}ENUM GETNBR DOCRX;$>;;set prflag &PRFLAGX;"X;check if line>32768,X;6 GETPTR;;point to@-;;first li}neJNXTLN1%>;;check hi byteTQ@LINPTR7;;of line #^R>;;>=32768?hELINOK;;yes-AOKrQCLINE;;will new line|R>};;be >32768?ELINOVR;;yes-quitQCLINE;;add increment,;;to currentOILINE;;new line PCLINE QCLINE OIL}INE PCLINE3;;add offsetQ@LINPTR7;;to BASIC,;;current line OLINPTR PLINPTRQLINPTRO>PL}INPTR&!NXTLN1;;check more0X;:X; line >32768DX;NLINOVR$> ;;show errorXL1QOVRMES9;;over theb PUTC;;maxl}0vIL1!EXIT2;;to BASICX;GETPTRQSTMTAB;;point toPLINPTR;;BASIC'SQSTMTAB;;first linePLINPTR}:X;FLNCLNQFLINE;;put newPCLINE;;first lineQFLINE;;intoPCLINE;;test line:X; X;renumbered lin}es will allX;be less than 32768 X;*LINOK GETPTR;;reset pntrs4 FLNCLN;;get first line>CKTOK%>;;get low byteH}Q@LINPTR7;;of line no.RPLINENO;;save it\3fQ@LINPTR7;;now highpPLINENO;;bytezR>;;done? DL2;;no!DORE}N;;do renumber!L23Q@LINPTR7;;offset toPOFFSET;;next line3;;offset toQ@LINPTR7;;next stmt PNXTSTML43}Q@LINPTR7;;get token$>;;is it aL3RTOKTAB9;;special?HL5!TOK1;;yes-processL50;;try nextIL3$R>};;IF token.HL78!TOK3;;handle itBL7R>;;ON tokenLHGTNXST;;do next stmtV!TOK2;;handle ON`X;jX;get next stmt} or linetX;~GTNXSTQNXTSTM;;is nxt stmtROFFSET;;= to next line?FNXTLN3;;yes?;;noQ@LINPTR7;;get offset P}NXTSTM!L4;;look for tokenNXTLN3,;;move to nextQOFFSET;;line OLINPTR PLINPTRQLINPTRO>PLINPT}R  ,;;move upQCLINE;;new lineOILINE;;counter( PCLINE2 QCLINE< OILINEF PCLINEP!CKTOK;;do next }lineZX;dX;do the renumberingnX;x!DOREN GETPTR;;pt to 1st line FLNCLN;;new nmbrsDOR2%>;;high byte ofQ@L}INPTR7;;line noR>;;at 32768? HDOR1;;no$>;;yes-say 'done'DORTQDONMES9 PUTC0 IDORT!EXIT2;;to BA}SICX;DOR11;;back up 1 byteQFLINE;;get new lineP@LINPTR7;;numbrQFLINE;;and insert" 3;;it into,P@LINP}TR7;;memory6,@QFLINE;;next new lineJ OILINET PFLINE^ QFLINEh OILINEr PFLINE|3;;next BASICQ@LINP}TR7;;line, OLINPTR PLINPTRQLINPTRO>PLINPTR!DOR2;;more!X;X;handle special tokensX;lik}e GOTO, GO TO, GOSUBX;TRAP, RESTORE, LISTX;which preceed line numbersX;TOK13;;check for Q@LINPTR7&R>;;a n}umber0FGOTN;;constant:VAR!VARREF;;variable referDGOTN'YSAV;;save positionNGOTN1C;;skip 7 bytesX,;;for constan}tbO>l?vQ@LINPTR7;;get tokenR>;;comma? FDONUMR>;;end stmt? FDONUMR>;;end line?HVAR;;variable} refDONUM%YSAV BCDINT;;BCD to integerX;"X;now see if the new line exitsX;QSTMTAB;;point toPSPTR;;lin}e tableQSTMTAB  PSPTRQFLINE;;1st new line PFR0* QFLINE4 PFR0>SEARCH%>;;check if exitsHQ@}SPTR7;;high byteRR>;;at end?\FNOTFND;;yesfRRLINE;;is it new line?pHSNXTLN;;noz1;;maybe-checkQ@SPTR7;;lo}w byte RRLINEHSNXTLN;;nopeX;!X;got match fr0 has new line #X; IFP;;INT to FP INSERT;;put it in3;;ne}xt token Q@LINPTR7R>;;comma?HNOCOM;;no!TOK1;;check for # NOCOM!GTNXST;;next stmt X; SNXTLN%>;;offs}et to$ Q@SPTR7;;next line. ,;;move up to it8 OSPTRB PSPTRL QSPTRV O>` PSPTRj ,;;move upt QFR0;;new lin}e~ OILINE;;to next one PFR0;;in sequence QFR0 OILINE PFR0 !SEARCH;;keep looking X; X;show varia}ble reference msg X; VARREFQ> V;;print 'VR-' PUTC Q> R PUTC Q> - PUTC NF1QCLINE;;at current PFR0;};line nmbr( QCLINE2 PFR0<  IFP;;change to FPF  FASC;;to ATASCIIP  PRNO;;print itZ !GTNXST;;next stmtd X;n }X;show not found msgx X; NOTFNDQ> N;;print 'NF-' PUTC Q> F PUTC Q> - PUTC !NF1;;print line # X; X};check for ON GOTO/GOSUB X; TOK23 Q@LINPTR7 R>;;ON GOTO HTK3;;nope TK4!TOK1;;yup TK3R>;;ON GOSUB" F}TK4;;yes, HTOK2;;try again6 X;@ X;check for IF-THENJ X;T TOK33^ Q@LINPTR7;;get tokenh R>;;THEN?r HTOK3;;not yet}| 3;;get next token Q@LINPTR7 R>;;a constant? HNTNUM 1;;yes !TOK1;;process it NTNUM1;;back up 1 byte !L}4;;find if other token X; X;convert BCD to INTEGER X; BCDINT$>;;copy ATASCII BCD13;;to FR0 Q@LINPTR7 PFR0}9 2 (>;;6 bytes& HBCD10  FPI;;FP to INT: QFR0;;save itD PRLINEN QFR0X PRLINEb :l X;v X;insert new }line X; INSERT%YSAV;;get position $>;;move FP # INS13;;to position QFR09;;in memory P@LINPTR7;;of line 2} (> HINS1 : X; X;print line number X; PRNO MPRINT;;print it Q>  PUTC $PRFLAG* 04 IXR2> DOC}RH $>R XR2&PRFLAG\ :f X;p X;print LBUFz X; MPRINT%> MPT3 Q@INBUF7;;get byte 5;;save it M>;;mask in}verse  PUTC;;put it 7;;last byte IMPT;;is inversed : X; X;ren & num input checker X;also gets first line and} X;increment from input lineX;GETNBR DEFAULT%>$QLBUF8;;no #'s?. R>EOL8 HGETNMSB :;;no #'s!LX;VX;def}ault values are 10,10`X;jDEFAULTQ> tPFLINE;;first line~ PCLINEPILINE;;and incrementQ> PFLINE PIL}INE PCLINE:X;X;find the last program lineX; GLAST DEFAULT;;set defaults GETPTR;;point to%>;};first lineQ@LINPTR7;;get high IGLOK;;< 32768? :;;no!GLOKP;;save line #( 1;;get low2 Q@LINPTR7<P;;save }itF ADDLIN;;next lineP%>;;get high ofZQ@LINPTR7;;linedIGLOK;;< 32768nQx,OILINE;;move upPFLINE;;use} lastPCLINE;;numberQO>;;high byte PFLINE PCLINE:X;X;set up for first time useX; SETN}UM-QFLINE;;back up;;;one incrementSILINE;;from firstPFLINE;;line" QFLINE, SILINE6 PFLINE@:J}X;TX;get numbers from input^X;hGETNMS$>rFNDCOMQLBUF8|R> ,;;comma? FGOTFSTR>EOL;;done yet? FGOTFST}PNBUF9;;copy number2;;out to NBUF(>FFPERR;;error if3;;too many digits!FNDCOM;;loopX; X;got first lin }e #-convert itX;to integer formX;GOTFSTPNBUF9;;, or EOL'Y2;;save positionQ>;;set up FP&PCIX;;stuff0 P }CLINE: DOINBF;;point to NBUFD AFP;;ATASCII to FPN FPI;;FP to INTX EFPERRbQFR0;;is numberlGFPERR;;over 32 }768?v PFLINE PCLINEQFR0 PFLINE PCLINE%Y2;;get positionQLBUF8;;check nextR>EOL;;char. done? }HGETSCN;; get second:X;X;got first line ,now getX;the incrementX;GETSCN$> GT13QLBUF8;;get byte  }R>EOL;;done?*FNUMDON;;yes4PNBUF9;;copy it> 2;;tooH(>;;many digits?RFFPERR;;yes\!GT1;;morefX;pX;initia}lize INBUFzX;DOINBFQ>4NBUF;;point itPINBUF;;to NBUFQ>5NBUF;;where thePINBUF;;number is:X;X;sho}w floating point errorX;FPERR7;;remove return7VALERR$> ;;'ERROR'FPER1QFPMES9;;msg PUTC0 IFPER1} SETLBF;;reset FP$!EXIT2;;to BASIC.X;8X;got parameters soBX;process second numberLX;VNUMDONPNBUF9;;EOL`Q>}jPCIX;;point to NBUFt DOINBF~ AFP;;to FP FPI;;to INTEFPERR;;error!QFR0;;put inPILINE;;increment }QFR0PILINE;;error ifGFPERR;;>=32768 SETLBF;;reset FP:X;X;this is the entry pointX;for the auto} numberingX;some ideas from ANALOG X;issue 29 April 1985X;AUTNUM GLAST;;get params.(Q>2 PONOFF<X;FX;ch}eck for line overwritePX;Z GETPTR;;point todNN1%>;;first linenQ@LINPTR7;;get linenoxPRLINE;;low byte3Q@}LINPTR7;;high bytePRLINE;;is lineGNUMOK;;>=32768 RFLINEFCKLOW;;check lowENUMOK;;AOKNN2 ADDLIN;};next line!NN1;;loopX;CKLOWQRLINE;;check lowRFLINE;;byteFNOAUTO;;exits!ENUMOK;;okDNN2;;check next}NOAUTO!EXIT2"X;,X;parameters ok6X;@NUMOK SETNUM;;back upJQ>;;set VBIT %>4VBNUM^ $>5VBNUMh SETVBVr} SETLBF;;set FP pointrs|Q> ;;VBI timer PTIMERQ>PPROMPT;;for BASIC PCHRCNTQ> PENDLIN PONOFF !}EXIT2X;X;point to next BASIC lineX;ADDLIN'SLINE%>Q@LINPTR7;;get offset-,;;move pointer& OLINPT}R0 PLINPTR:QLINPTRDO>NPLINPTRX %SLINEb:lX;v X;get next basic line for VBIX;INCLIN ADDLIN '}SLINE%>Q@LINPTR7;;get lowPRLINE;;store it3Q@LINPTR7;;high byte PRLINE %SLINE:X;X;verti}cal blank interruptX; VBNUMQENDLIN;;BASIC done?FXITVBI;;no  QPROMPT* FXITVBI;;4QTIMER;;time yet?> FPRNUMH}"TIMER;;count downR !XITVBI\ PRNUMQ>f PENDLINpQFLINE;;get line toz ,;;printOILINE;;add increment PFLINE}PFR0 QFLINE OILINE PFLINE PFR0OVRCHKQFR0;;is itGVBQT;;over 32768?RRLINE;;exist} already?FVCKLO;;maybe DVBOK;;ok INCLIN;;look again!OVRCHK;;check itVCKLOQFR0;;low bytesRRLINE;;match }$FVBQT;;yes-exit. DVBOK;;ok8 INCLIN;;try next lineB!OVRCHK;;check itLVBQT#QTFLAG;;quit-existsVQ> ;;force re!}turn`Pj!XITVBI;;outtX;~X;line # ok print itX;VBOK IFP;;to ATASCII FASC MPRINT;;print itQ> ;;s"}pace PUTC SETLBF;;reset FP ptrsXITVBI!XITVBV;;leaveVBOK IFP;;to ATASCII FASC MPRINT;;print itQ> ;;s@ @*ح0B*1C* $*%* *R*A*E!`ȩȩ*䙨*Ѝ* *i i$} i i *) L` L# K*L* K*L*` ɛ<^*\**\*^*%}*L!@*R***** \ QL!(`R*ڭ@****(`M*N*\*Q*Q*!M轀!C轀!9ȹ!!&}!!* !LÌ*.ȩN*M*(`Q*iQ*AЙ*ߢɛ*ɛ ̧*Χ*L!*'}`DIR1"ERA"PRO"UNP"NAM"DOS"TRA"OFF #NUM)REN%DEC $HEXu$LVA$ &# "PBJ*E̝D V0>PHI*ED(}B V0 BHI*ED V "L!P B V`H " &#hPBIHDE VLC#!ԩ#Щ$̩ ȭ &#)}LtA*-A*0B*i*1C*i**10t# \L! &#L!C*1B*0A*a` \`H) hԩ ' G$ h#*}L"* `BL_01*!0B*i*1C*i*0*1H*ȱI*D*E*F*G*H*.I*D*}D*D*+}آE*HJJJJ *h) *L_ ؐL( M$= $ *  G$ QکL! `^*HJJJJ*,}*h)**^*`$ȢԆՎP*ݗ*00N*&&&&mN*ԥiP*P*L$P*L( ة= -}H) h G$ QL!]*Ņ ńL!H) h G$[*]* % %ɀ G$L$ % % % %.} %  % %]*ԥԥ [*[*[* G$ ' L^%` ( G$[* &ؠ/}ɀFɀeυͥeЅȱe˅˥iL% r* L!˥`ͭ` & &˅ȱ˅ɀL&ȱˍY*ȱˍZ*ȱˢS*L&0}L'L'Z*Y* ˍZ*LF&Y*e˅˥ieυͥeЅL(& & &ɀ_* L!˭ȑeύeЍȱ1}e˅˥iL&ȱLZ'J*iJ* '䥉ԭՠɀ` 'ȱL&Ld&ei2}eυԥeЅL'V R - ͅԥ΅ 'Ld&N F - Li'ȱL&ȱȱL&LF&ȱ˕ ٥ԅ3}`J*ȵԑ` ' [* G$[*`ȱH) h` (ɛX` ͅϩЅ` ( &`˅ \)eύ4}ͥi`ح8ύЍ`,ɛ *TLi(*O* ( ٰ905ΥԍͬO*ɛ`ȹɛ'* 5}L(҅*`hh *  QL!* ( ٰۥԅϥՅ0 Q` #(@* &˅ȱ˅0 \)L)L! T() \6} Qک ***@*L!e˅˥i̤` \)˅ȱ˅`*c_*Ά*L)*eύԭeЍե0 q7})L) q)L)R* L) ' QLb # RORREegakcaP seitilitU CISAB}ppB*%8%#54)).',).%8}S*X* #_**derebmuner margorP86723 => eniLYDAER**rorre eulaV0123456789ABCDEF**D:*.*** .%pIJrMMPLPVTVVV1XYVIMIXCARDTKSIXYC1PV1SSDA4B2<?? B:}$A@ @ @ @ @!@@1@@Aw;}HHd@@%@6@@' @@$ !P"@#AR<}$By $$******************************$$* MEMORY MATCH *$$* by Joe Brzuszek *$$* =} *$$* COPYRIGHT 1989 *$$* BY ANALOG COMPUTING *$$********************>}********** ;AfAC'AgA11#A; AB2w@KB2H&6-?:C:,A}B2x&6-?:C:,6-@TF!A6-AP)(B2w)F:B2R,AB}Z @d 2246-P:?%$+&@T,,%T6-?P$+&@b,%@6-++&,'@%%$+&@C}b,'@$,n\@w6-@:7,,+6-%@$G6-?:C:,6-%D"J6-KF}-@"/(Ҡ PLAYER 2AA@`K @9(PLAYER 1 Ҡ/AAr9 @G}, #67<,.  67<,. 6V A "(-@@6226 @ AV60,60,47,40,47,40,F@;H}-@0 2'6-%+36-%;6-&J#-@@#( TU-A -*( I} 0-?(  U% @$@^9-APA )B2y5B2y9 hM -M(J} IT TOOK YOU ( TURNS. PRESS FOR A NEW GAME.r4 F:B2y,"@Ap* A`4 @:-6K}-6@/2A3 7 :$?-@6?P$2.22 <2?$T-6@L}%-6@P?2@%$@C G Q2T$0E2@-)-@0327 A2M}E : 2$D5-@6@P$2( 225$XP-6?@$2A( 9-N}6?EI2A2M P$l/-@62(2, /$\-@P@`@)2- O}D-@`@06N2R \2$R2@I#2@P7-@A; E2OP}2R$ #A A) "-2 ) A3$391,8,108,8,136,20,108,20,91,20,68,30,0,0,Q}FE-@62&-* 428 B2E$;-@6?P*2@). 82R};$@g""6-F:A,&.Ag;@c,;@ ,;A,;@$,;@,JC+AYS}56-F:A`,%F:Aa,$AVC%A0Tu%@@e.%@ F:A`,E%@!F:Aa,[6-$T}AV%Ai-A(q%u ^FF6.:,S aAc%"6.<~"6. iA@h\}'A @&9AAG-@O-_2@i2J6-P:H:,$+B:,&,,%&6-@:7,]},467,.7%,B67<,.>:,F J RR6.H]^_345678?@ABCDEFGHIJKLMNOPQRSTUV Q?(^}7}MEMORY MATCHҠ PLAYER 20 0QAY@F ' --( #('  fA_}@`!BBy-B2w9A#E6-AQ6-@bW6-]6-c6-f$(#1,2,4,8,10,122#jj`}UUWwwwwwUUwwwwwW<#jj * ?_a} WUUUU@\L( *U@F#jj :?+ < <b}000:::P#jj<(<<?<<<<ݿn#Ve}Vﯯ???"fU?OcUTQ@D@UUUUUUAUUUEDx#''h`H ԍЩ h@f}D:MEMMATCH.BAS"fU?OcUTQ@D@UUUUUUAUUUEDx#''h`H ԍЩ h@ =TFBYTTitle Maker Listing 2Save as TITLMAKR.BAS##Creates binary file tq}}B%DOS SYSB*)DUP SYSBSADDRESS BASBnfBUPP1 M65BOBUPP2 M65B#BUPSYS OBJB.9MEMMATCHBASB gTITLMAK2BASByTITLMAKRM65B',TITLMAKROBJo retain Title screen without READY$$prompt and RUN "D:AUTORUN.BAS"##/Append to Title screen file. %;@r},%6.D1:AUTOBOOT.TM1 +A@41A @BD @ ()(What drive to write @(7@s}, to > D(!! )!@ @ 2Z B/67@<@,.>:%@H,:@W@@t}Z#<AR@((F#-@A "#(P"*@ "(  bytesZ((File u}saved as d5@ AAH2AR5n3389,0,89,0,112,0,4,98,4,173,31,208,41,4,240,10x99169,v}18,141,33,3,169,4,141,34,3,96,251,243,51,246,33::4,163,246,51,246,60,246,76,228,243,0,238,33,4,172,33994,192,39,208,1w}0,169,0,141,33,3,169,228,141,34,3,1855559,4,160,1,96,67,65,82,155,80,79,75,46,56,57,445580,69,69,75,40,53,54,49,41,58x},82,85,46,34,68,586665,85,84,79,82,85,78,46,66,65,83,155,226,2,227,20,4,224,2,225,2,17,4D2:TITLMAKR.BAS,58z W X; X;(c)1989 by Larry BlackX;for A.N.A.L.O.G. Magazine(X;2X;-------------------------<X; !z} Program EquatesFX;P ROWTZ COLUMNUd MSCXnROWHOLDxCOLHOLDCLEARFLGΌ IOTYPEі IOLORS!{}Ҡ DMA/SCRCOLORTXTCOLORBKGCOLORAUTORUNAUTOINIT ICCOMBICBADRDICB!|}LENHICAUX1JICAUX2KBUFADR COPN" CREAD, COPDIR6 CGBINR@ CWRITEJ CPBINR T!}} CCLOSE ^ CHAN0h CHAN1r CHAN2 | CHAN6` CIOVX;#X;------------------------------ X; Data and!~} Reserve text/areaX;WORKLOC MAINLOC HELPLOC @h6KEYTABLE C=E=L=S XJMPTABLE NEW!}FILE EXISTFILE READIOFILE CREATEBINL& EXIT0CURSORTAB ===: =~===D ===NSCRTAB!}LE ===X =bSCREENVECT ===l ====v ==== ===SCRHOLD ===!}SAVEFILNAM D=1=:=f i=l=e=n=a m=e=.=e=x t=DIRNAME D=I=:=* .=*=DLIST `=p=B=!}={ =B=@== ==== ==== ==== ====  ==ADLISTW DLIST !}DLISTM  =*KDEV K=:=4RTOPHOLD >VBIHOLD =HBHEADR ===p=R s\LOADTXT ===f =!}===p ==zBINARYTXT === ==== ==X;$X;-------------------------------X; !} X;STARTQj;; get RamtopR>;;check ramsize ITOPOK!@ :;;not enough mem.TOPOKPRTOPHOLD;;kee!}p rmtopQ  PINITHOLDQ PINITHOLDQ$$ PVBIHOLD.Q%8PVBIHOLDBQ>LPCLEARFLG;;gr. call flagV!} PKEYPROMPT`!RESETINITjINITHERE SAVETHETEXTtSTART2 SWAP;;get main menu~ RESETMAINCOLORS$>;;main menu!} SETAREA;;page setOPENKEY$>CHAN1;;set up for CLOSEIOFILE;; users$>CHAN1;; response %>4KDEV Q>5KDEV !} SETIOADR %>CREAD OPENIOFILE;;open chan.!USERSELECT GETKEY;;get a keyM>R>1  GSETCHECKR>: ISETCH!}ECK(PDIRNAME2!DOS;;directory call<SETCHECKM>_;;lowercase?F$>PCHECKKEYRKEYTABLE9;;checkZFKEYFOUND;; !}for validd0;; key selectionn ICHECKKEYx!USERSELECTKEYFOUNDA;;valid key foundT?>QJMPTABLE9PԴ2Q!}JMPTABLE9P!@:;;ind. zero pageGETKEY$>CHAN1;;get keyQ>CGBINR;; subroutine PICCOM9Q>? SETIOL!}EN!CIO"SETAREA DMAOFF;;set up the,QDLISTW9;; screen area6P0@QDLISTW9JP1T !DMAON^RESETMAINCOLORS!}Q>;;sethPBKGCOLOR;;default mainrPTXTCOLOR;;menu colors|Q>  PSCRCOLORDMAONQ>";;DMA set onDMABOTHP/;;D!}MA set ALL!:DMAOFFQ>;;DMA set off FDMABOTHGRAPHICS0Q>;;my ramtopPj;;in Ramtop addr GR0;;do gr.0 sub!}rout DMAOFFPRQ>@PP:SAVETHETEXTQWORKLOC;;Copy&$>|;; what is in0 SWAPSUB;; editor scre!}en: GRAPHICS0DQ>|N $WORKLOCXSWAPSUBPb&lQ>@vPԀPϊ%>$>L1950Q@7P@73 HL1950!}##0 IL1950%>"" L2060Q@7P@7 1* HL20604:>EXISTFILEQCLEARFLG;;screenHHNEWFI!}LE1;; cleared yet??R!NEWFILE GRAPHICS0;;new scrn.\EXIST1 DEFECOLSfNEWFILE1 SETWORKp QCLEARFLGz HRESET1 #CLE!}ARFLG!RESET1 GETCOLORS;;get colors DMAON;; and screen on!RESET RESETKEYS;; clear keys PUTCOLORSKEYPEEKSQ!};; key hit?R>HGOGETCHARQ;; console key?R>;; option key?FGOSHOWHELPR>;; select key? H!}CHECKSAV !START2 CHECKSAVR>;; start key? HCHECKHELP$ !SAVE. CHECKHELPQ;; help key?8 R>;; (xl/xe only!})B HKEYPEEKS;; nothing!L GOSHOWHELP SHOWHELPV !RESET` !GOGETCHAR CGETCHAR;;what keyj 2;; Color change?t HRESE!}T~  GETKEY;;get the input $> CHECKCURRCURSORTAB9;;check FGONOESC;; for arrow keys 0 ICHECKCUR !CHECKBOT$!}ROW;; check for row (>;; #23 HCHECKRT R>;; check for FCRETURN;;carriage return $COLUMN;; check col!} (>';; for #39 FPLACEINMEM CHECKRT$COLUMN;; check col (>';; for #39 HPRINTCHAR( R>;; check for2 !}FPRINTCHAR;;return char.< XLATF Q>P PRINTCHAR5;;print with ESCZ Q>CHAN0;; subroutined >n ?x SETIOLEN Q>C!}PBINR PICCOM9 Q>;; ESC in acc.  CIO 7;;get char. back GONOESC NOESC;; print it !RESET CRETURN$COLUMN;;!}EOL/return FSROLOVER;; subroutine !WRAPNIL SROLOVERQ>;; down arrow !GONOESC NOESC5;;save character Q>;;!}logic line rout $>;; setup makes LOGLINEP9;;every line" 0;; a logical line, ILOGLINE6 Q>CHAN0@ ?J >T SET!}IOLEN^ Q>CPBINRh PICCOM9r 7| !CIO PLACEINMEM XLAT;; poke WRAPNIL PLACIN00;;character !RESET;; to screen a!}rea PLACIN00 INDIRECT00;;set Q@7;; up for cursor 5;; placement to  POS10;; top left 7 P] , O> !}%> P@7 : INDIRECT00Q>@;;set up for P;; indirect Y& QWORKLOC;; addressing to0 P;; editor screen: %>!};; areaD :N CGETCHAR$>;;color change?X CHECKCHNGSCRRSCRTABLE9b FSCREENCHANGEl 0v ICHECKCHNGSCR;; yes! !}:;;NO color change RESETKEYSQ>;;reset the P;; console keys Q>;; reset the P;; keyboard reg. Q>;; !} reset the P;; HELP reg. : SHOWHELP=;; routine to  CUROFF;; set up HELP Q>@;; screen P P SWAP!} Q PDLIST Q>:* PBKGCOLOR4 PTXTCOLOR> Q>H PSCRCOLORR $>;; X register\  SETAREA;; reflects areaf!} GETKEYp SETWORK CURON;; routine toz $>;; set up Editor  SETAREA;; screen Q>ؘ PDLIST Q> P Q!}>;; VBI setup %>4VBI $>5VBI  \ GETCOLORS$>;; get back L3560QSCRHOLD9;; the PSCRCOLOR9;; colors as !}0;; user had chose IL3560$>;;Get back cursorL3610QROWHOLD9;;position$PROW9;; where it was.08 IL3610B:!}LPUTCOLORS$>;; Put theVL3670QSCRCOLOR9;; colors`PSCRHOLD9;; into a HOLDj0;; for later uset IL3670~$>!}L3720QROW9;; Put thePROWHOLD9;; cursor pos.0;; into HOLD too IL3720:SCREENCHANGEA;; indirectP;; !}screen colorT?;; change,O>QSCREENVECT9P 2QSCREENVECT9P(%>22<QSCREENVECT9F GDE!}CREASEPQ@7Z,dO>;;add 2nANYCREASEP@7;;put thex!RESET;; change to mem.DECREASEQ@7;S>;; subtrac!}t 2!ANYCREASEPOS10Q>;; positionPROW;; cursor to 2ndPCOLUMN;; byte of#COLUMN;; screenBACKSPAC!}EQ>~;;backspace!NOESC;; char. print IOING IOBOTH;; Input/Output!EXITIO;; of Disk filesIOBOTH%>;; read/wri!}teQ>G;; prompt text$>;;for screen poke POKTXT"Q>,P6P@GETNEXTSAV$;;filename getJQ>;; ro!}utineTPE9^(>h FNOSPPOKrQ>|PF9NOSPPOK GETKEY;; get a key$ϚR>;; EOL?HNOTRETURN(>G!}BADFILNAM!OPENSAVFILENOTRETURNM>;; NoninverseR>;; ESC?FBADFILNAM(>;; drive number? HNOTDRIV!}ER>:;; colon? HNOTCOLONQ>1NOTCOLONR>1;; <1?&GGETNEXTSAV0R>;;; >9?:IGETNEXTSAVD INDEXFNAM!}N#XQ>:b INDEXFNAMl#v!GETNEXTSAVBADFILNAM7;; bad filename!7;; pop off return!START2;; goto main me!}nuNOTDRIVER>~;; backspace?HNOTBACKSPACE"ϼQ>  INDEXFNAMQ FCHECK1" CHECK1QR>HGE!}TNEXTSAV "Q>  INDEXFNAM*!GETNEXTSAV4NOTBACKSPACER>.;; period?> HNOTDOTH$R(>\GGETNEXTSAVf$!}pHGETNEXTSAVz INDEXFNAM#ώ#ИGOGETNEXTSAV!GETNEXTSAVNOTDOTR>*;; * wildcard? FWILDCARDR>?;; ? w!}ildcard? FWILDCARDR>1;; :;; >number? INOTNUMB !WILDCARDNOTNUMBM>_;; forc!}e UPPERR>A;; < 'A'?GGOGETNEXTSAVR>[;; > 'Z'?$IGOGETNEXTSAV.WILDCARD$;; wildcarding8(> B HCHECK!}2L$V HCHECK2`5jQ>.t INDEXFNAM~7#ϒCHECK2$;; auto period?(>FGOGETNEXTSAV$к(>FGO!}GETNEXTSAV INDEXFNAM#QFGOGETNEXTSAV#!GETNEXTSAV INDEXFNAM$;; index thePSAVEFILNAM9;;!}filename;;; and poke it to(S> ;; screen mem.2PE9<(> F FNOSPPOK1PQ>ZPF9d NOSPPOK1:nOPENSAVFILEP!}SAVEFILNAM9xQ>;; open the filePE9;; for I/O CUROFFQ> NOESC INDIRECT00Q@75 POS10!}7%>P@7 ZEROHOLDS $>CHAN2 CLOSEIOFILE $>CHAN2%>4SAVEFILNAM"Q>5SAVEFILNAM, SETIOADR6 %IOTY!}PE@ OPENIOFILEJCTGFILEIOERROR^ $>CHAN2h QIOLORSr PICCOM9|%>:Q> SETIOADR%>Q> SETIOLEN!} CIOCGFILEIOERROR $>CHAN2 QIOLORS PICCOM9 R>CPBINR FNOTLOAD%>CHECKTYPEQ:8;; ascii? RBH!}EADR8&HGOASCILOAD01:ICHECKTYPED GNOTLOADN#GOASCILOAD!ASCILOAD;;Yes,asciiXNOTLOAD%>;; TitleMakerbQ>;; fo!}rmat filesl SETIOLENv%>@Q> SETIOADR CIOC ILOADOK!FILEIOERRORLOADOK%>4SCRHOLD;;good I/OQ>!}5SCRHOLD;; get colors $>CHAN2 SETIOADR%>Q> SETIOLEN CIO CGFILEIOERROR  QCLEARFLG* HGOODL!}OAD4 #CLEARFLG> GOODLOAD:H FILEIOERROR FIGERROR;;errorRQ>;;event during I/O\ NOESCf%>4IOERRORpQ>5IOERRORz!}$>˄ POKTXT GETKEY77 Q>CWRITE PIOTYPE!EXITIO$>CHAN2;; exit the I/O CLOSEIOFILE CURON IN!}DIRECT00Q@7P] BACKSPACE QIOTYPE R>CWRITE FGOSTART2$!EXISTFILE."GOSTART2!START2;;jump to MAIN8C!}LOSEIOFILEQ>CCLOSE;;closeBPICCOM9;; the chan,XL!CIOVOPENIOFILEQ>COPN;; open`PICCOM9;; the chan,XjCt P!}ICAUX19~Q> PICAUX29!CIO%SETIOADRPICBADR9;;set addressC;;for CIO to see PICBADR9:$SETIOLENPICBL!}EN9;;set lengthC;; for CIO to see PICBLEN9:POKTXT';; poke the dataP;;to screen memory&;; for pgm.!} flow Q>;; directionP%>(L6440Q@72R>`< FL6530FP@7P3Z HL6440d#n#x !L6440 L6530:!}FIGERROR;;; change theS>d;; error to5;; ascii digits$>;; then to screen;;; data formatSUBTRACT10!}S>  GSUBEND2HSUBTRACT10SUBEND&ERRNUMBQ> TIMES10,O> 0 HTIMES10"PERRNUMB,76;@SER!}RNUMBJPERRNUMBT$>^ADD16QERRNUMB9h,rO>| PERRNUMB90 IADD16'ENDFIGERRORQ>CWRITE;;forced retur!}nPIOTYPE;; to MAIN using:;;the type of I/OREADIOFILEQ>4LOADTXT;;I/O$>5LOADTXT;; set to read%>CREAD;; so r!}eflect the SWAPTXT;; read text data!IOING;; to screenSWAPTXTP;; do the actual&;; text swapC;; fro!}m here PIOTYPE,O>& PIOLORS0%> :SWAPTXT2Q@7DPG8N1X ISWAPTXT2b:lCURON$>;; turns cursorvF!}CURBOTH;; either OFF!CUROFF$>;; or ON!CURBOTH&;;put value in:;;cursor register!EXIT$>CHAN1;;Exit Title!}Maker CLOSEIOFILE;;gotta cleanQ>;;things up firstPRQRTOPHOLD;; like RamtopPj GR0;; Graphics 0Q>!}@P;; UppercaseQ>P;; NonInverse QINITHOLD;; DOS vectorsP ;; restore QINITHOLD*P 4%VBI!}HOLD;; VBI vectors>$VBIHOLD;; restoreHQ>R \\4!@ :;;indirect jump thru DOS init and outa here!fREINIT  ;!};set up SYS RESETp)INITHOLD =;;Old DOS vectors here.z"RESETINITQ>4REINIT;;ReinstateP ;; TitleMakersQ>5REINI!}T;;vectors forP ;;next SYS RESET. !INITHEREZEROHOLDSQ>;; zero outPROWHOLD;; row positionPCOLHOLD;; and!} col pos.:DOSQ>@;;subroutine forP;;a read of theQMAINLOC;;Disk directoryP$>%>CP$CL!}EARDIRP@7;; clear.3;; MAIN menu off8HCLEARDIR;; screenB#L0V ICLEARDIR`Q>jPtQDIRNAME~,O>!}`PDIRHEADR$>(Q>4DIRHEADR? POKDIRTXT $>CHAN2 CLOSEIOFILE $>CHAN2 Q>COPN PICCOM9 Q>CO!}PDIR PICAUX19 %>4DIRNAMEQ>5DIRNAME SETIOADR( CIO2C< INEXTF !DIRERRORPNEXT$>CHAN2;; directoryZQ>!};; GET inputd PICCOM9n %>4BUFADRx Q>5BUFADR SETIOADR%>Q> SETIOLEN CIOC GENDDIRCHEKFREE!}QBUFADR;;check forR>0;; free sectors GSWAP1221 MTEBLK!SANDSFIXDSWAP1221%>|$(> HONCOL0"'!}BUFADR ,ONCOL0'BUFADR6PBUFADR@SANDSFIXD%> JFLIPDATQBUFADR8;;change toTR>a;; screen format^ISTOREFL!}IPh;rS> |STOREFLIPP@7;;put it1;; indirectly IFLIPDAT$> %Ѯ3)> HSAMROW%>2 SAMR!}OW'A,O P DGONEXT #& !GONEXT!NEXT;; more directory0 ENDDIR!DIREND: FINDMARG$;; find leftD F!}NOFILR;; marginN QX ADD13,b O> l Pv DNOPGINC1 #Պ NOPGINC12 (> HADD13 ADD131QԲ , O> P!} DNOFILR # NOFILR: DIREND$>CHAN2;; end of  CLOSEIOFILE;;directory!DIRLEN$>;; 'any key' !Q>(;; !} prompt!%> ! POKDIRTXT*!Q>4!PDIRLEN>! GETKEYH!!START2;;leave directoryR!DIRERROR FINDMARG;;error\! ADD!}40;; found whilef!$>;;doing directoryp!Q>4DIRERRTXT;; readz!%>! POKDIRTXT!Q>! NOESC!Q>!PDIRLEN!!}Q>!P! FINDMARG!Q!;!S>!P! EENDDERR"""ENDDERR!DIREND"POKDIRTXTP;;do the actual$"Q>5DIR!}HEADR;;scrn. poke."P;; of directory8"C;; textB",L"OV"P`"Qj"O>t"P~"%>"MORHEADRQ@7"P@7!}"3"0" HMORHEADR"ADD40Q;;add 40 for next",;;screen display"O>("P" DNOPGINC"#" NOPGINC:#MTEBLK$!};; empty blocks #FNOMTEBLK;; needed?#PUTMTE%>;; block it up#Q>|;; for cleaner(#P@7;;directory lists2#%> <#!}P@7F#QP#,Z#O> d#Pn# DNOPGINC2x##Ղ# NOPGINC22#(># HPUTMTE#$>#&Ѵ# ADD131#NOMTEBLK%> #IN!}VFREQBUFADR8;; inverse#,;; free sectors#O>`;; data# PBUFADR8#1# IINVFRE$:$VBIQ;; VBI routine$R>!};; for timing the"$HVBIOUT;; text in,$Q>;; extra top line6$ RDLIST@$ FPOKB0J$POKVBIPDLISTT$ !VBIDONE^$ P!}OKB0Q>h$ HPOKVBIr$VBIDONEQ>;; reset timer|$P$VBIOUT!b;; exit Vblank$SAVE SWAP;; save what you$$>;; go!}t in the$ SETAREA;; Editor$ PUTCOLORS$ RESETMAINCOLORS$ CREATEBINL%>CWRITE;;reflect$Q>4BINARYTXT;; a SAVE t!}o$$>5BINARYTXT;; the user$ SWAPTXT$HEADRPOK$>;;binary header$PUTBHEADRQBHEADR9;;first$P:9%0%IPUTBHEAD!}R% IOBOTH&%BLOADR$>CHAN2;;save loader0%Q>CPBINR;; with data:% PICCOM9D%%>4LOADROTEN%Q>5LOADROTEX% SETIOADRb%!}%>{l%Q>v% SETIOLEN% CIO%C% GBADBINL% !EXITIO%BADBINL FILEIOERROR% !EXITIO%!ASCILOAD CLOSEIOFILE;;asc!}ii!%$>CHAN2;; get file from%%>4SAVEFILNAM;;byte 0%Q>5SAVEFILNAM% SETIOADR% %>CREAD% OPENIOFILE&C & IASCI!}OK&!FILEIOERROR &ASCIOKQ>};; file IS there*& NOESC4&Q>>&PH&Q>R&P\& GETASCI$>CHAN2;; get a linef&Q>;!}; of textp&PICCOM9;; up to 39z&%>(;;characters long&Q>& 'ICBLEN&PICBLEN& SETIOLEN& %>4BUFADR& Q!}>5BUFADR& 'ICBADR&PICBADR& SETIOADR& CIO&)>& FASCIOK1&ASCIERRCK)>;;error check'GASCIOK1;; for f!}ile end' POSTASCI':$'ASCIOK1Q> ;; no error.'$8' HNOT24THB' $>CHAN2L' QICBLEN9V';`'S>j' FPOSTASCIt' PICBL!}EN~' Q>CPBINR'NOT24TH$>;; not bottom' PICCOM' CIO'NEXTASCI";; go get more'QҺ' IGETASCI'POSTASCI%>;;!} finished!'';; ascii load and''ROW;; place cursor' 'COLUMN'Q>' NOESC("ROW (Q>@(P^( QCLEARFLG(( H!}DEFECOLS2( #CLEARFLG<(DEFECOLSQ>;;set defaultF(PTXTCOLOR;; screen colorsP(Q>Z( PBKGCOLORd(Q> n( PSCRCOLORx(!P!}UTCOLORS(XLAT$>;;translate ascii(R>;; to screen text( GNOTINV(M>(2(NOTINVR>`( INOCHANGE(R> ( GPLU!}S(;(S> ( ENOCHANGE( PLUS,)O>@)NOCHANGE(>) FXLATDONE"),,)O>6)XLATDONEP]@):J) PKEYPROMPT RESETKEYS!};;pressT)Q>;; any key prompt^)P;; and hold theh)RESETPROMPT%>;;screenr)GETPROMPTQENDDIRTXT8|),)O>)P@!}7)1)IGETPROMPT)3)')Q)PGETPROMPT)Q)PGETPROMPT)CHECKFLIPQ;; inverse)R>;; the prompt!})FRESETPROMPT*Q*R>*FCHECKFLIP&*4TOUCHEDONE!RESETKEYS;;key HAS been pressed. GO!0*INIT=;;clears out mem.:*Q!}>;;for screen dataD*PN* QHELPLOCX*Pb*$>Gl*Q>v*?*PLACE0P@7*3* HPLACE0*#ը*0* IPLACE0*.*:* !}AUTOINIT* INIT*@*SWAP=;;routine for swaping*Q>;; the main menu+P;; from hold to +Q>C;; screen area+P!} +Q>@*+P4+ QMAINLOC>+PH+$>R+%>\+SWAP1Q@7f+P@7p+3z+ HSWAP1+#Վ+#И+0+ ISWAP1+"Զ+"+%!}>+SWAP2Q@7+P@7+1+ HSWAP2+.+:,X;,"X;-----------------------------,X; $,X;.,"}@8,HELPMENU ==B, ====L, ====V, =`,@j, ====t, ====~, ==="}=,A, ====Ҝ, ====Ҧ, ====Ұ, ====Һ, ====, ====, "}====, ====, ,WA, ====- ==== - = ===- ====- #=u="}r=s=o(- r==m=o=v2- e=m=e=n=t<-AF- =P-AZ- ====d- ====n- === =x- "}====- #=h=a=n=g- e==s=c=r- e=e=n==c- o=l=o=r=- ====- ====-"} === =- ====- #=h=a=n=g- e==b=o=r- d=e=r==c- o=l=o=r=- . ==="}=. ====. == ==". ====#,. h=a=n=g=e6. =t=e=x=t@. =l=u=m=iJ. n=e=n="}=T. ^.GBh. =r.PB|. ====. ====. =(=%=,=0. =m=e=n=u.oB. =."}xB. ====. ====. =-=a=i=n. =m=e=n=u.B. =.B/ ====/ =" }===/ =3=a=v=e&/ =s=c=r=e0/ e=n:/BD/ =N/BX/ ====b/ ====l/ ==" }==v/ ====Ҁ/ ====Ҋ/ ====Ҕ/ ====מ/ ====Ҩ/ ====/ ==" }=0=2/ %=3=3==!/ .=9==+=%/ 9==4=/=/ #=/=.=4=)/ .=5=%==/=C/ ====0" } ==== 0 ====0 ==== 0 ====*0 ===40X;>0"X;-----------------------------H" }0X;R0X; \0X;f0Dp0MAINSCREEN H==z0 ====0 ====0 ==Ș0QD0"} =c= ==0 ====,0 a=r=r=y=0 "=l=a=c=k0D0 ====0 ====0 ==="}=0 ====0 ====1 ====1 ====1 ====$1 .1D81 ===="}B1 ====L1 #=l=e=a=rV1 =%=d=i=t`1 o=r==m=ej1 m=o=r=yt1 E~1 ====1 =="}==1 %=d=i=t=o1 r==s=c=r1 e=e=n15E1 ====1 ====1 ,=o=a=d=1 a=="}s=c=r1 e=e=n==f1 r=o=m==d1 i=s=k2]E 2 ====2 ====2 3=a=v=e=(2 b="}i=n=a=r22 y==l=o=a<2 d==s=c=rF2 e=e=nP2EZ2 ====d2 ====n2 %=x=i=t=x2 t"}=o==$=/2 32E2 ====2 ====2 $=i=s=k=2 $=i=r=e=c2 t=o=r=y2E2 "}==2E2 ====2 ====2 ====3 ====3 ====3 ===="3 "}====,3 ====63 @3PFJ3 ====T3 ====^3 =h3X;r3"X;-------------------------"}----|3X; 㮠3X;3G3SAVWIND Q=R=R3 R=R=R=R=R3 R=R=R=R=R3 R=R=R=R=E3G3"} |=H===3 ====3 ====3 =J=|3G3 |=$=n==f4 i=l=e=n=a4 m=e==e=x"}4 t==|&4H04 A=R=R=R=R:4 R=R=R=R=RD4 R=R=R=R=RN4 R=R=DX4/Hb4 |=$l4@Hv4 |4WH4 "}Z=R=R=R=R4 R=R=R=R=R4 R=R=R=R=R4 R=R=C=`4H4IOERROR |=H=4 ====4 ===="}4ERRNUMB =4 =J=|4H4 |====5 ==== 5 ====5 ==|=` 5I*5 DIRHEAD"}R45 ====>5 ====H5 ====R5 ====\5 ====f5 ====p5 ===="}z5 ====5ENDDIRTXT ==5 ====5 ====5 ====5 ====5 =="}5 DIRERRTXT5 ====5 ====5 ====5 ====5 ====5 ====6"}X;6"X;-----------------------------6X; $6!X;saved along with screen data.6 LOADROTE86 =;;binar" }y headerB6 STARTBLOAD;;start addr.L6 ENDBLOAD;;end addr.V6STARTBLOAD GR0;;clear it`6=j6%>t6'DMA~6'ˈ6Q>p"!}6P̜6QMSC6Pϰ6 QMSC6P6$>6SWAPLOADQ@7;;screen6P@7;; data636 HSWAPLOAD6#7# 707""}ISWAPLOAD;; more7SWAPLOAD1Q@7;;screen(7P@7;; data273<7)>F7HSWAPLOAD1P7$>Z7SWAPCOLORSQ@7"#};;colorsd7P9;; datan73x727(>7HSWAPCOLORS7Q>"7PDMA7.7:7GR0$>CHAN67 Q>CCLOSE7 PICCOM97"$} CIO7 $>CHAN67 Q>COPN7 PICCOM98Q>8 PICAUX198Q>"8 PICAUX29,8 Q>4SDEV68 PICBADR9@8 Q>5SDEVJ8PICBADR9"%}T8!CIO^8SDEV S=:=;;"S:"h8X;r8!X;----------------------------|8X; 8X;8ENDBLOAD AUTOINIT"&}8 AUTOINIT8 STARTBLOAD8X;8!X;----------------------------8X; ɠ8{8 ====8 ="'}===8 ====8 ====8 ====9 ====9 ====9 ====&9 ="(}===09 ====:9 ====D9 ====N9 ====X9 ====b9 ====l9 =")}===v9X;9!X;----------------------------9X; 9 9 p=p=p=B=@9 ====9"*} ====9 ====9 ====9 ====A9  =9X;9"X;-----------------------------9X; "+}: AUTORUN : START====9 ====A9  =9X;9"X;-----------------------------9X; 'psH瀰NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN&-}NNNNNNNNNNF,arry"lacksGNNNNNNNNNNNYMMMMMMMMMMMMMMMMMMV̀TIUIOـV&.}UUBYUUUUـVIBYــBY&/}ـYBYUUUYـYIJHYI&0}YIHIYIYـYـJHYـYـHــYـVـʀȀYـYــYـVBVـYـY&1}ʀJــʀJBVـYـYـʀJـYـʀJB&2}c HJHJHJHJHJHJHJHJHJHJHJHJHJHJHJHJHJHJHJURRRRRRRRRRRRHNNNNNNNNJRRRRRRRRRRRRRRUMMMMMMMMMMMHNNNNNNNNJMMMM&3}MMMMMMMMMF,/!$).'GFMMMMMMMMMMMMMMMMGfII Ix/˩p̥XϥYТ&4}ˑˑ˝"/X`` B V`BJKҝDIELVS:fI@h6c7CELSX 88;>'<&5}~D1:filename.extDI:*.*`pB{B@A6 K:ps&6}jɈl 6 [< \<$6%6 ?L]< 7 @ 7 7 {;ܩ6 ; ; 7)10 :6Lo<)_d7_8h6LM7 &7}m6m6lB ;LV 76061L7 "/`j I 7R@`ˢ| 7 7|˅ՆЩ@ԅϠԑ&8}ϱԑψ` 7 > )9 C9 7 8 X9"L/7L> 9L8 8 7 w65`8[9T &9}.U'OU' ɛ >H ; B Vh 8L8UL8L8H ; BhLV > 8L8 8H 9h]i`@ԥ˅&:}`݄6`Щ`x !<@ԅ @6: 7 7 < 7؍6= \6T`\9W:&;}6T` eԪ6轊6ՠ轊60 iL88L9TUU~L8 9L];G ;υЦϩEF 7ɛ0*L&<}:)!":110; :ϩ: :L9hhL/7~ϩ :ХНϩ :L9.0Ѕ :L9*?10:L^:)_&=}AX:S;0[ H. :hϦǦ :ϥL9ϝ68 E F`6E !< 8 8H 9h h< {; 6 ;&>} ;0l ҝB: ; ; V0Q ҝB :60LP> ;@ ; VLC;6 ; ; V0` ; 8&?}H ;T;O< 7hhѢ {; < 8ԅ] 9L8L/7 BLVBJKLVED`IH`ԅՆϩР` L;`8d&@}H8 0Hi Hh8HHHiH`6 ( =L= 7L/7 &= =B = 8L= &=8԰LF=ϩIИeԅҥiӠϑi(Ԑ&D}`!|Ԡ ԥi Ԑ := i``ͺ66L>Lb @ 7 X9 76 <6: 9 &E} B`I ;{ ; V0LH>C?]; C;L]; {; 6 ; ;LC;} 8Ң B(HI ;DE ; V0 >` &F} H8H B VҥTU 8T@^Ω LX9ɀ0)` 08 i@i]` 8Ϡ)Ii&G}ψȄύ!?Ѝ"?D?a?L8xԥͅբGX`H?@1@xυԩCթ@ϥ̅ТԑϠԑψX`&H}@@@@݀A0AWAyA #ursormovementA&I}AA B #hangescreencolor #hangebordercolor #hangetextlumine&J}nGBHBPBcB(%,0menuoBpBxBB-ainmenuBBBB3avescreenBBB1C&K}02%33!.9+%94/#/.4).5%=CYCDDHQDdDc ,ar&L}ry"lackDDĀDE#lear%ditormemory E#E%ditorscreen5EUE&M},oadascreenfromdisk]E}E3avebinaryloadscreenEE%xitto$/3EE$isk$irectoryEEE%&N}FPF[FGGQRRRRRRRRRRRRRRRREGG|HJ|GG|$nfilenameext|&O}HHARRRRRRRRRRRRRRRRD/H0H|$@H@H|WHiHZRRRRRRRRRRRRRRRRC`HH|H򀍀J|HH||`II&P}倃뀤󀥲fII Ix/˩p̥XϥYТˑˑ&Q}˝"/X`` B V`BJKҝDIELVS:fI{{뀀&R}󀻯򀨥 ?pppB@A 7{{뀀$J