@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@P!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr SC" *ENVISIONCOURCECODEPART16AUTOEDITJSRCLICK (LDAMAPX 2STATEMP <LDAMAPYFSTATEMP+1PJ}SRXY2ADR ZLDY#$00dLDA(ULCADR),Y iAND#$7FnSTACURCHAR xLDXMAPYLDAFONTSET,XSTAPIKDFONTJS}RSWITCHFONTSLDAPIKDFONTSTACRNTFONT LDA#$00TAX.1STA$3600,XINX BNE.1STA$D008J}SRINITRSJSRRESWNDWJMPCHAREDFGTOGGLJSRCLICK"INCFGTIANDX,LDAFGTIANDX 6CMP#$03 @BNE.1 }JLDA#$00TSTAFGTIANDX ^.1TAXhLDAGTIATABL,X rORA$26F|STAFGTIASETJMPKEYSCANCLRFONTJSRCL }ICKJSRCLRWNDW LDA#$CESTASCRNXY LDA#$40STASCRNXY+1 LDX#CAC LDY/CACJSRPMESS LDA }#$FASTASCRNXY LDX#ITF LDY/ITFJSRPMESS &LDA#$4A0STASCRNXY:LDX#RUSUREDLDY/RUSUREN }JSRPMESS XLDA#$74bSTASCRNXYlLDX#YORNvLDY/YORNJSRPMESS.1JSRGETKEY CMP#$1B BNE.2. }3JSRCLICK.5JSRRESWNDWJSRDISPCHARJMPKEYSCAN.2CMP#'N BEQ.3 CMP#'Y BNE.1JSRCLICK } LDX#$00 TXA.4STA$3C00,X STA$3D00,X*STA$3E00,X4STA$3F00,X>INX HBNE.4 RBEQ.5\fF}INDMAXLDX#$7F pLDA#$FFzSTAMAXWIDTHSTAMAXHITE.1LDAMAXCOLSSECSBCULXTAB,XCMPMAXWIDTH }BCS.2STAMAXWIDTH.2LDAMAXROWSSECSBCULYTAB,XCMPMAXHITE BCS.3STAMAXHITE .3DEX }BPL.1INCMAXWIDTH$INCMAXHITE.RTS8BFIXFRMSLDX#$7FLDECFWIDTHVDECFHEIGHT`.1LDAULYTAB,Xj}CLCtADCFHEIGHT~CMPMAXROWS BEQ.2 BCS.4.2LDAULXTAB,XCLCADCFWIDTHCMPMAXCOLS BEQ}.3 BCS.4 .3DEX BPL.1INCFWIDTHINCFHEIGHTRTS .4LDA#$00STAULXTAB,XSTAULYTAB,X (}BEQ.32<XCOPYA.AS"XCOPYa" F.HS9BPCHRCTR.AS-"C"Z.AS"haracter" d.HS9BnOARO.AS"ora" x.AS}-"R".AS"angeof" .HS9BCHRCTRS.AS"characters?" .HS9BC2C.AS'(""to"")' .HS9BSCS.AS"St}artcharsourc" .AS"e?" .HS9BSSQ.AS'Startsrce""' .AS"" .HS9BECS.AS"Endcharsource?" }.HS9BESQ.AS'Endsrce""' .AS"" ".HS9B,SCD.AS"Startchardest?" 6.HS9B@SDQ.AS'Startdest"}"' J.AS"" T.HS9B^DFAP.AS"Destfont(A-P)?" h.HS9BrDFL.AS"Destfont<>" |.AS"" .HS9B#FON}TASGN.AS"FontAssignment:".AS"n)nnnnnnnnGT".AS"IA:OFF" .HS9BA2POCR.AS"(".AS-"A-P".AS"}or" .AS-"R".AS"forROM)" .HS9BNPYA.AS"Nowplaceyoura".AS"nimationsequenc".AS"eon" }.HS9B TMWTB.AS"themapwiththe"&.AS"box&pushtrig"0.AS"ger." :.HS9BDCAC.AS"CLEARALLCHARAC"}N.AS"TERS" X.HS9BbITF.AS"INTHISFONT" l.HS9BvFTEXT.AS"Font"ROMTEXT.AS"ROMSet"GTIATEXT.AS}"OFF911"GTIATABL.HS0040C0ANDTABL.HSFFF00FDLTEMP.DA#$41,DLTEMP PROGEND.AS"ROMSet"GTIATEXT.AS]SC" *FONTASIZERSOURCECODEPART1(ZTEMP.EQ$F02ZTEMP1.EQ$F2<CHOFF.EQ$F4FSCRNXY.EQ$F6PBUF}.EQ$F8ZLINENO.EQ$FAdULCADR.EQ$FCnVBZTEMP.EQ$FExSCREEN.EQ$2000UNDOBUFR.EQ$A000BUFFER.EQ$B000}ATASCII.EQ$4039CDSPLST.EQ$4000FONTSET.EQ$3000BASEADDR.EQFONTSET+204FONTSUNDO.EQBASEADDR+204 }BASEAUNDO.EQFONTSUNDO+204FNTNAMES.EQBASEAUNDO+204ANALTABL.EQFNTNAMES+144ORAMSK.EQ$1D01GRFLAG.!}EQ$1D02WRAPFLG.EQ$1D03SCRNDFLG.EQ$1D04"MXDIGITS.EQ$1D05,STRTCHAR.EQ$1D066ENDCHAR.EQ$1D07@RITEF"}LAG.EQ$1D08JRITETYPE.EQ$1D09TCOUNT.EQ$1D0A^INVFLAG.EQ$1D0BhSAVEFLAG.EQ$1D0CrNOMOVE.EQ$1D0D|TRIG#}FLAG.EQ$1D0EBIT.HS10BYTE.HS03DLIC2X.EQ$1D0FBINVAL.EQ$1D10HEXVAL.EQ$1D11OLDC1Y.EQ$1D12$}OLDC2Y.EQ$1D13SETOGGL.HS3CCURCHAR.HS21CLRCNTR.EQ$1D14C2COLR.HSAAC1X.HS7BC1Y.HS2DC%}2X.EQ$1D15C2Y.HS03C1FLAG.EQ$1D16&SHFTCTRL.EQ$1D170SELFLAG.EQ$1D18:PIKDCHAR.EQ$1D19DINC.EQ$1&}D1ANVBITEMP.EQ$1D1CXTEMP.EQ$1D1EbTEMP1.EQ$1D20lTEMP2.EQ$1D22vTEMP3.EQ$1D24TEMP4.EQ$1D26RUS'}URE.AS"AREYOUSURE" .HS9BUWANT.AS"YOUWANT" .HS9BTOREST.AS"TORESTART" .HS9BYORN.AS"(Yo(}rN)" .HS9BPCOPYTO.AS"copyto." .HS9BPXEROX.AS"xcopy." .HS9BPOVRLAY.AS"overlay." .HS9)}BERR.EQ$634 SELECT.AS"Select" *.HS9B4REDSET.AS"FontA" >.HS9BHROMSET.AS"ROMSet" R.HS9B*}!\KBDASC.HS4C4A3A00004B2B2A4Ff.HS0050559B492D3D5600p.HS43000042585A340033z.HS361B3532312C202E4E.HS004+}D2F00520045597F.HS545751390030377E38.HS3C3E46484400004753 .HS41CHARBUF.EQ$1D27CURMAP0.HSFC848484,}84FCHEXSTRG.EQ$1D2FBINSTRG.EQ$1D32DECSTRG.EQ$1D3F!HEXTAB.HS101112131415161718.HS19212223242526-}ADDTAB.HS640A01REG.AS"Register"REGCOL.HS009BCOLBAK.AS"COL-BAK" .HS9B!$NTRVLU4.AS"Entervalue.}for" ..HS9B8PRMPT.AS"<>" B.HS9BLP0123B.AS"(0,1,2,3,orB)" V.HS9B `PCOLREG.AS"ColorRegister" j./}HS9BtPLZTYPE.AS"Pleasetype"~ .HS9BTHECHAR.AS"thecharacter" .HS9BUWISH2.AS"youwishto" .0}HS9BPEDIT.AS"edit." .HS9BCANTFIND.AS"Can'tfind" .HS9BPERROR.AS"Error" .HS9BFILENAME.1}AS"D:" .HS9B NTRFNME.AS"EnterFilename" .HS9BFORLOAD.AS"forLoad" (.HS9B2FORSAVE.AS"forSave"2} <.HS9BFFNPRMPT.AS"<>" P.HS9BZDOTSET.AS".FNT" d.HS9BnPENTER.AS-"Enter" x.HS9BVALUE.AS-"3}value" .HS9BFOR.AS-"for" .HS9BPLINE.AS-"row" .HS9BPGTLT.AS-"<>" .HS9BSTARSET4}.AS"D:*.FNT" .HS9BDECSTRG2.EQ$1D42ADDTAB2L.HS10E8640A01ADDTAB2H.HS2703000000SYNASM.AS".HS"5}EASMD.AS".BYTE"BASIC.AS"DATA""WICHTYPE.AS"Whichtype?" ,.HS9B6SYN.AS"SYNASSEMBLER"@.AS"(.HS6})" J.HS9BTEAS.AS"MAC/65(.BYTE)" ^.HS9BhBAS.AS"BASIC(DATA)" r.HS9B|STCHAR.AS"StartChar" .HS7}9BNDCHAR.AS"EndChar" .HS9BSTLINE.AS"StartLine#" .HS9BLINEINC.AS"Line#Inc." .HS9BPRM8}PT4.AS"<" .AS-"0".AS"010>" .HS9BPRMPT5.AS"<" .AS-"0".AS"2000>" .HS9BCORRECT.AS"9}Correct?"&.AS"(Y/N/ESC)" 0.HS9B:DOTSYN.AS".SYN" D.HS9BNDOTEAS.AS".M65" X.HS9BbDOTBAS.AS".BAS:}" l.HS9BvFORITE.AS"forwrite." .HS9BPRESS.AS"Press" .HS9BANY.AS"any" .HS9BKEY.AS"ke;}y" .HS9BFREE.AS"XXXFree" .HS9BNOSTFLS.AS"NoFNTfiles" .HS9BONDISK.AS"ondisk." .HS9B<}CHARBUF2.EQ$1D47 COLTAB.HS28CA944600NA.AS"N/A" .HS9B*MAXVALS.HS2E0E174GRPHC.AS"Graphic" >=}.HS9B"HKBD2ASC.HS6C6A3B80806B2B2A6FR.HS8070759B692D3D7680\.HS63808062787A348033f.HS361B3532312C202E6Ep>}.HS806D2F81728065797Fz.HS747771398030377E38.HS3C3E66686480826773.HS614C4A3A80804B5C5E.HS4F8050559B49?}5F7C56.HS8043808042585A2480.HS23261B2522215B205D.HS4E804D3F8152804559.HS9F545751288029279C.HS40@}7D9D464844808347.HS53410C0A7B80800B1E.HS1F0F8010159B091C1D.HS168003808002181A80.HS8085801B80FD800020A}.HS600E800D8081128005 .HS199E14171180808080 .HSFE807DFF0608048084 .HS0713010.HS8085801B80FD800020`SCv" *FONTASIZERSOURCECODEPART2(2STARTJSRNUKEDMA <LDX#$00FTXAP.1STA$1D00,XZSTA$1E00C},XdSTA$1F00,XnINX xBNE.1JSRMEMTESTJSRSCNDINIT LDA#$01STASVBIFLAGSTART2JSRNUKEDMAD}JSRCLRFONTS LDA#$00 STA$22FSTAORAMSKSTAGRFLAGSTAWRAPFLGSTAFGTIANDXSTAFGTIASET E}LDA#$03STAMXDIGITS LDX#$04"LOOP00TYA,LDACOLTAB,X6STA$600,X@INYJDEXTBPLLOOP00 ^LDX#F}$00h.9LDA#$00rSTA$3600,X|STA$3700,XLDA$E000,XSTA$3C00,XLDA$E100,XSTA$3D00,XLDA$EG}200,XSTA$3E00,XLDA$E300,XSTA$3F00,XINX BNE.9 LDA#$06 STA$2C8LDA#DLI1 STA$200H}LDA/DLI1 STA$201 &LDY#$070.1LDA#$00:STA$3800,YDLDA$E108,YNSTA$3808,YXSTACHARBUF2,YbI}DEY lBPL.1 vLDA#$C4 STA$2C2 LDA#$C6 STA$2C3 LDX/VBI LDY#VBI LDA#$07JSR$E45C J}LDA#$C0STA$D40ELDASVBIFLAGBEQCHAREDJMPSCRNEDCHAREDLDY#$07 LDA#$AA LDX#$1FLOOP03K}PHA LDA#$04 *STA$6FF4PLA>LOOP02EOR#$FFHSTA$371D,X REOR#$FF\STA$379D,XfDEX pDEC$6FFL}zBNELOOP02 EOR#$FFDEYBPLLOOP03 LDA#$00STASVBIFLAG LDA#$34STA$D407 LDA#$70SM}TA$D001STA$D002STA$D003 LDA#$03STA$D009STA$D00ASTA$D00BSTA$D01D $LDA#$72 .STN}A$2C0 8LDA#$CC BSTA$2C1 LLDA#$00 VSTA$2C6`JSRRESWNDWjJSRPCOLORStJSRDISPCHAR~LDA#CDSPLSTO} STA$230LDA/CDSPLST STA$231LDA$D301 AND#$C3 ORA#$30STA$D301.58LDASCONSOL CMP#P}$07 BNE.58 LDA#$2E STA$22FJMPKEYSCAN DLI1PHATXAPHA(TYA2PHA <LDA#$2DFLDXDLQ}IC2XPLDYC2COLRZSTA$D400dNOPnNOPxNOPNOPNOPNOPSTY$D012NOPNOPNOPNR}OPNOPNOPSTX$D000LDAGTIACOLRLDXSETOGGLLDYFGTIASETSTA$D40ASTA$D01A"STY$D01BS},STX$D4096LDA#DLI2 @STA$200JLDA/DLI2 TSTA$201^PLAhTAYrPLA|TAXPLARTI DLI2PT}HATXAPHATYAPHA LDA#$2ELDXFHOLD2C8 LDY#$38STA$D40ASTA$D400STX$D01ASU}TY$D409 LDX#$03LOOP01LDA$600,X&STA$D016,X0DEX:BPLLOOP01DPLANTAYXPLAbTAXlPLAvV}RTIVBILDA$D01FSTASCONSOLLDASVBIFLAG BEQVBJMPDLCONVBIVBLDA#DLI1 STA$200LDA/DLI1W} STA$201 LDA$604LDXFGTIANDXANDANDTABL,XSTAFHOLD2C8 LDA#$06 LDXFGTIANDX BEQVB1 X}LDA#$00*VB1STAGTIACOLR 4LDAC1X>LDXC1FLAG HBEQ.1 RLDA#$00\.1STA$D000 fLDX#$05 pLDAC2YzY}STAVBITEMP+1 LDAC1YSTAVBITEMP LDA#$00.3LDYOLDC1YSTA$3600,YDECOLDC1YLDYOLDC2YSTAZ}$3600,YDECOLDC2YDEX BPL.3 LDX#$05.2LDYVBITEMP LDACURMAP0,X STA$3600,Y LDYVBITEMP+1[}$ STA$3600,Y. DECVBITEMP8 DECVBITEMP+1B DEX L BPL.2 V LDAC1Y` STAOLDC1Y j LDAC2Yt STAOLDC2Y\}~ LDACLRCNTR BEQ.4 DECCLRCNTR JMP.9 .4LDAC2COLR EOR#$0F STAC2COLR LDA#$10 STACLRCNT]}R .9LDAC2X STADLIC2X JMP$E462 BINHEXSTATEMP4 LSR LSR LSR LSR( TAX2 LDAHEXTAB,X< ^}STAHEXSTRGF LDATEMP4 P AND#$0FZ TAXd LDAHEXTAB,Xn STAHEXSTRG+1x RTS BINDECLDY#$00 .1LDX#$FF_} SEC .2INX SBCADDTAB,Y BCS.2 ADCADDTAB,Y PHA TXA ORA#$10 STADECSTRG,Y PLA INY`}  CPY#$03  BNE.1 RTS" DECBINLDA#$00 , STATEMP 6 LDY#$02@ LOP3LDADECSTRG,YJ SEC T SBC#$10^ a}TAXh BEQSKIPADD r LDA#$00 | LOP4CLC ADCADDTAB,Y DEX BNELOP4 SKIPADDCLC ADCTEMP STATEMPb} DEY BPLLOP3 RTS HEXBINLDAHEXSTRG SEC SBC#$30 CMP#$0A  BMI.1  SBC#$07  .1ASL& ASLc}0 ASL: ASL D STATEMPN LDAHEXSTRG+1X SEC b SBC#$30 l CMP#$0A v BMI.2 SBC#$07 .2CLC ADCTd}EMP STATEMP RTS ENLARGELDA#$36 STAZTEMP+1 LDA#$B9 STAZTEMP LDY#$07 LOOP06LDA(CHOFF),Ye} STA$3808,Y STYTEMP  LDY#$03 LOOP07STA(ZTEMP),Y DEY BPLLOOP07* LDAZTEMP4 SEC > SBC#$04f}H STAZTEMP R LDYTEMP\ DEYf BPLLOOP06p RTSz ASCINTPHA LDA#$00 STAINVFLAG PLA CMP#$80 g}BMI.3 INCINVFLAG AND#$7F .3CMP#$20 BPL.1 CLC ADC#$40 JMP.2 .1CMP#$60 BPL.2Sh}EC SBC#$20 $.2PHA.LDAINVFLAG 8BEQ.4BPLA LORA#$80VRTS `.4PLAjRTStDISPCHARLDACURCHARi}~JSRINTASCJSRBINDECLDX#ATASCIILDY/ATASCII JSRPDECLDACURCHARSTAATASCII+5DISPENT2JSRj}CALCOFF LDY#$07.1LDA(CHOFF),YSTA$3808,YDEY BPL.1JSRENLARGE JSRSETC2XYRTSCALCOk}FFLDA#$00(STACHOFF2STACHOFF+1 <LDY#$07F.1LDACHOFFPCLCZADCCURCHARdSTACHOFF nBCC.2xIl}NCCHOFF+1 .2DEY BPL.1LDACHOFF+1 ORA#$3CSTACHOFF+1RTSINTASCCMP#$40 BPL.1CLC m}ADC#$20 JMP.2.1CMP#$60 BPL.2SEC SBC#$40 .2RTS"PDECSTXZTEMP,STYZTEMP+1 6LDY#$02n}@.1LDADECSTRG,YJSTA(ZTEMP),YTDEY ^BPL.1hRTSrSETC2XYLDACURCHAR |LDX#$FFSEC .1INX So}BC#$20 BCS.1 ADC#$20ASLASLCLC ADC#$3F STAC2XTXAASLASLCLC ADC#$43p} STAC2Y&RTS0PHEXSTXZTEMP:STYZTEMP+1 DLDY#$02 NLDX#$01X.1LDAHEXSTRG,XbSTA(ZTEMP),YlDEq}XvDEY BNE.1 LDY#$00 LDA#$04STA(ZTEMP),YRTSGETKEYLDX$2FCINXBEQGETKEYDEX r}LDA#$00STASHFTCTRL LDA#$FF STA$2FCTXA ASLRORSHFTCTRL ASL*RORSHFTCTRL4LSR>Ls}SRHTAXRLDAKBDASC,X \BNE.1fJMPGETKEY p.1RTS zPAUSEDEXBNEPAUSEDEYBNEPAUSERTS Ct}LICKPHATXAPHATYAPHA LDX#$3F.1LDA$D40B.2CMP$D40B BEQ.2STX$D01FDEX BPu}L.1$PLA.TAY8PLABTAXLPLAVRTS`KEYSCANLDX$2FCjINX tBNE.1~LDA$D01F CMP#$07 BNv}E.97JMPCHKSTIK.97JMPCHKCONS.1JSRGETKEYTAX .99TXALDXSHFTCTRLCMP#$2DUPARROW BNE.w}2 CPX#$40 BNE.50JMPSCROLUP .50JSRC2UPJSRDISPCHARJMPKEYSCAN(.2CMP#$3DDOWNARROW 2BNEx}.3 <CPX#$40 FBNE.51PJMPSCROLDNZ.51JSRC2DOWNdJSRDISPCHARnJMPKEYSCANx.3CMP#$2BLEFTARROW y}BNE.4 CPX#$40 BNE.52JMPSCROLFT.52JSRC2LEFTJSRDISPCHARJMPKEYSCAN.4CMP#$2ARIGHTARROz}W BNE.98 CPX#$40 BNE.53JMPSCROLRT.53JSRC2RITEJSRDISPCHARJMPKEYSCAN .5TXA".98LD{}X#$15,.19CMPCHCMNDS,X 6BEQ.20@DEX JBPL.19 TJMPP21^.20LDACCMDSL,XhSTAZTEMPrLDACCMDSH,X||}STAZTEMP+1JMP(ZTEMP)"CHCMNDS.HS204142434445464749.HS4C4D4F505253545556.HS57589B3CCCMDSL.DA#FL}}IP,#ATARI.DA#BLANK,#COPYTO.DA#DRECTRY,#EDIT.DA#FONTSLCT,#FGTOGGL.DA#INVERSE.DA#LOAD,#MIRROR~}.DA#OVERLAY,#POKE.DA#ROTATE,#SAVE.DA#TYPE,#UNDO.DA#VALUES,#WRITE.DA#XCOPY,#WRAP.DA#CLRFONT&}CCMDSH.DA/FLIP,/ATARI0.DA/BLANK,/COPYTO:.DA/DRECTRY,/EDITD.DA/FONTSLCT,/FGTOGGLN.DA/INVERSEX.DA/L}OAD,/MIRRORb.DA/OVERLAY,/POKEl.DA/ROTATE,/SAVEv.DA/TYPE,/UNDO.DA/VALUES,/WRITE.DA/XCOPY,/WRAP}.DA/CLRFONTP21CMP#$7FBNECHKCONSJSRTABC2JSRDISPCHARJMPKEYSCANCHKCONSJSRCHKSLEKT.24LD}A$D01F CMP#$06 BNE.25JMPRESTART.25CMP#$03 BNE.26JSRCLICK JMPSCRNED*.26JMPKEYSCAN}4ATARIJSRCLICK>LDACHOFFHSTAZTEMPRLDACHOFF+1 \AND#$03 fORA#$E0pSTAZTEMP+1 zLDY#$07.1L}DA(ZTEMP),YSTA(CHOFF),YDEY BPL.1JSRENLARGEJMPKEYSCANBLANKJSRCLICK LDY#$07 LDA#$0}0.1STA(CHOFF),YDEY BPL.1JSRENLARGEJMPKEYSCANINVERSEJSRCLICK LDY#$07$.1LDA(CHOFF),}Y .EOR#$FF8STA(CHOFF),YBDEY LBPL.1VJSRENLARGE`JMPKEYSCANjMIRRORJSRCLICK tLDY#$07~.1LD}A(CHOFF),Y LDX#$07 .2ASL RORTEMPDEX BPL.2 LDATEMPSTA(CHOFF),YDEY BPL.1JSR}ENLARGEJMPKEYSCANROTATEJSRCLICK LDY#$07 .1LDA(CHOFF),YSTACHARBUF,YDEY (BPL.1 2LDY#$0}7<.2LDX#$07F.3LSRCHARBUF,X PROLTEMPZDEX dBPL.3 nLDATEMPxSTA(CHOFF),YDEY BPL.2JS}RENLARGEJMPKEYSCANC2UPJSRCLICKLDACURCHARSEC SBC#$20 AND#$7FSTACURCHARJMPSAVECHA}RC2DOWNJSRCLICKLDACURCHARCLC ADC#$20 AND#$7F"STACURCHAR,JMPSAVECHAR6C2LEFTJSRCLICK}@LDACURCHARJSEC TSBC#$01 ^AND#$7FhSTACURCHARrJMPSAVECHAR|C2RITEJSRCLICKLDACURCHARCL}C ADC#$01 AND#$7FSTACURCHARJMPSAVECHARTABC2JSRCLICKLDACURCHARCLC ADC#$04 AND}#$7FSTACURCHARJMPSAVECHARRCHARJMPSAVECHARTABC2JSRCLICKLDACURCHARCLC ADC#$04 AND&SCx" *FONTASIZERSOURCECODEPART3(PMESSSTXZTEMP2STYZTEMP+1 <LDY#$00F.3LDA(ZTEMP),Y PCMP# }$9B ZBEQ.1dJSRASCINTnSTA(SCRNXY),YxINCZTEMP BNE.2INCZTEMP+1.2INCSCRNXY BNE.4INC }SCRNXY+1 .4JMP.3 .1RTSCLRWNDWLDA#$7ESTAZTEMP LDA#$40STAZTEMP+1 LDX#$07.1LDY#$13 }LDA#$00.2STA(ZTEMP),YDEY "BPL.2,LDAZTEMP6CLC @ADC#$28JSTAZTEMP TBCC.3^INCZTEMP+ }1 h.3DEX rBPL.1 |LDA#$00 LDX#$02.4STA$D001,XDEX BPL.4 LDA#$01STAC1FLAGRTS }RESWNDWJSRCLRWNDW LDA#$70 LDX#$02.1STA$D001,XDEX BPL.1INXSTXC1FLAGRTS&COPYTOJ }SRCLICK0JSRCLRWNDW:JSRPSELECTDLDX#PCOPYTONLDY/PCOPYTOXJSRPCOMNDbJSRKGETCHlJSRCLICKvST }APIKDCHAR JSRSWAP LDY#$07.2LDA(ZTEMP),YSTA(CHOFF),YDEY BPL.2JSRRESWNDWJSRDISPCHA }RJMPKEYSCANXCOPYCJSRCLICKJSRCLRWNDWJSRPSELECTLDX#PXEROXLDY/PXEROX JSRPCOMNDJSR }KGETCH JSRCLICK*STAPIKDCHAR 4JSRSWAP >LDY#$07H.2LDA(CHOFF),YRSTA(ZTEMP),Y\DEY fBPL.2p }JSRRESWNDWzJSRDISPCHARJMPKEYSCANOVERLAYJSRCLICKJSRCLRWNDWJSRPSELECTLDX#POVRLAYLDY/P }OVRLAYJSRPCOMNDJSRKGETCHJSRCLICKSTAPIKDCHAR JSRSWAP LDY#$07.2LDA(CHOFF),YORA(ZT }EMP),YSTA(ZTEMP),YDEY $BPL.2.JSRRESWNDW8JSRDISPCHARBJMPKEYSCANLSWAPLDACHOFFVSTAZTEMP }`LDACHOFF+1jSTAZTEMP+1tLDACURCHAR~PHALDAPIKDCHARSTACURCHARJSRCALCOFFPLASTACURC }HARRTSPCOMNDLDA#$4CSTASCRNXY LDA#$41STASCRNXY+1JSRPMESSRTSCHKSLEKTLDX#$10 LD }Y#$10JSRPAUSELDA$D01F(CMP#$05SELECT? 2BEQ.24 <LDA#$00FSTASELFLAGPRTSZ.24LDASELFLAG }dBEQ.23nRTSx.23LDASETOGGL EOR#$DCSTASETOGGLJSRCLICK LDA#$01STASELFLAG LDA#$05 }STA$D01FCHKSEL2LDA#$24STASCRNXY LDA#$40STASCRNXY+1LDASETOGGL AND#$0C BEQ.95LDX }#REDSETLDY/REDSET"JSRPMESS ,JMP.946.95LDX#ROMSET@LDY/ROMSETJJSRPMESS T.94RTS^VALUESJSR }CLICK hLDA#$99 rSTATEMP |LDA#$41STATEMP+1 LDY#$07.1STYTEMP3LDA(CHOFF),YJSRBINDEC  }LDXTEMPLDYTEMP+1 JSRPDEC LDATEMPSEC SBC#$28 STATEMP BCS.2DECTEMP+1.2LDYTEMP }3DEY &BPL.1 0LDA#$A4 :STATEMP DLDA#$41NSTATEMP+1 XLDY#$07b.3LDA(CHOFF),YlJSRBINHEXv }TYAPHA LDXTEMPLDYTEMP+1 JSRPHEXPLATAY LDATEMPSEC SBC#$28 STATEMP BCS }.4DECTEMP+1 .4DEY BPL.3 .5LDX$2FCINX BNE.99*LDA$D01F 4CMP#$05 >BEQ.99 HCMP#$0 }6 RBEQ.5 \CMP#$03 fBNE.5p.99JSRRESWNDWzJMPKEYSCANSCROLUPJSRCLICK LDY#$00LDA(CHOFF),Y }STATEMPINY.1LDA(CHOFF),YDEYSTA(CHOFF),YINYINY CPY#$08 BNE.1 LDY#$07  LD }ATEMP STA(CHOFF),Y JSRDISPCHAR$ JMPKEYSCAN. SCROLDNJSRCLICK 8 LDY#$07B LDA(CHOFF),Y L STATEMPV } DEY` .1LDA(CHOFF),Yj INYt STA(CHOFF),Y~ DEY DEY BPL.1 LDY#$00 LDATEMP STA(CHOFF),Y } JSRDISPCHAR JMPKEYSCAN SCROLFTJSRCLICK LDY#$07 .1LDA(CHOFF),Y STATEMP ASL ROLTEMP LD }ATEMP STA(CHOFF),Y DEY ( BPL.12 JSRDISPCHAR< JMPKEYSCANF SCROLRTJSRCLICK P LDY#$07Z .1LDA(CHO }FF),Y d STATEMPn LSR x RORTEMP LDATEMP STA(CHOFF),Y DEY BPL.1 JSRDISPCHAR JMPKEYSCAN } RESTARTJSRCLICK JSRCLRWNDW LDA#$AA STASCRNXY LDA#$40 STASCRNXY+1 LDX#RUSURE LDY/RUSURE } JSRPMESS  LDA#$D4" STASCRNXY, LDX#UWANT6 LDY/UWANT@ JSRPMESS J LDA#$FBT STASCRNXY^ LDX#TO }RESTh LDY/TORESTr JSRPMESS | LDA#$4C STASCRNXY LDX#YORN LDY/YORN JSRPMESS .3JSRGETKEY }CMP#'N BNE.1 JSRCLICK JSRRESWNDW JMPKEYSCAN .1CMP#'Y BNE.3 JSRCLICK  LDA#$21 STA }CURCHAR JSRRESWNDW & LDA#$010 STACRNTFONT : LDA#$3CD STASETOGGL N LDX#$06 X LDA#$00b .2STA$4042 },Xl DEX v BPL.2 JMPSTART2 PCOLORSLDA#$51 STATEMP LDA#$40 STATEMP+1 LDX#$00 .1LDA$600 },X STXTEMP3 JSRBINDEC LDXTEMP LDYTEMP+1 JSRPDEC LDXTEMP3  LDATEMP CLC  ADC#$08 }STATEMP* INX 4 CPX#$04 > BNE.1 H LDA$604R JSRBINDEC \ LDXTEMPf DEXp LDYTEMP+1 z JSRPDEC RTS } GETDECVAL LDA#$00 STAERR LDX#$02 LDA#$10 .1STACHARBUF,X STADECSTRG,X DEX BPL.1 }LDX#$04 LDA#$30 .2STADECSTRG2,XDEX BPL.2 LDA#$30$STAHEXSTRG.STAHEXSTRG+1 8LDY#$00 B }LDA#$80LSTA(ZTEMP),YVDECLOOPJSRGETKEY`LDXRITEFLAG jBNE.8tLDXSHFTCTRL ~CPX#$80 BNE.8 C }MP#$34 BNE.8 CPY#$00 BNE.8JSRCLICK LDA#$04STA(ZTEMP),YLDAZTEMPCLC ADC#$01 }STAZTEMP BCC.7 INCZTEMP+1.7LDA#$02 STAERR (LDA#$802STA(ZTEMP),Y<JMPGETHEXVALF.8CMP }#$1B PBNE.9ZLDARITEFLAG dBEQ.38nJMPDECLOOPx.38JSRCLICK LDA#$01.43STAERR LDA#$03ST }AMXDIGITS LDA#$00STARITEFLAGSTATYPEFLAGRTS.9CMP#$7E BNE.1 CPY#$00 BNE.2JMPD }ECLOOP.2JSRCLICKLDA(ZTEMP),Y AND#$7F"STA(ZTEMP),Y,DEY 6LDA#$80@STA(ZTEMP),Y JLDA#$10 }TLDXRITEFLAG ^BEQ.22 hLDA#$30r.22STACHARBUF,Y|.42JMPDECLOOP.1CMP#$9B BNE.4 CPY#$00 B }NE.44LDATYPEFLAG BEQ.42JSRCLICK LDA#$03 JMP.43.44JSRCLICKLDARITEFLAG BEQ.23  }LDX#$04DEY.24LDACHARBUF,YSTADECSTRG2,X&DEX0DEY :BPL.24 DLDA#$03NSTAMXDIGITS XLDA#$ }00bSTARITEFLAGlSTATYPEFLAGvRTS.23LDX#$02DEY.57LDACHARBUF,YSTADECSTRG,XDEXDEY }BPL.57 LDA#$03STAMXDIGITS LDA#$00STARITEFLAGRTS.4CPYMXDIGITS BEQ.29 CMP#$30  }BMI.29 CMP#$3A *BMI.694.29JMPDECLOOP>.69JSRCLICKHLDXRITEFLAG RBEQ.25\STACHARBUF,YfJSR }ASCINT pJMP.26z.25JSRASCINTSTACHARBUF,Y.26STA(ZTEMP),YINYLDA(ZTEMP),Y ORA#$80STA( }ZTEMP),YJMPDECLOOP GETHEXVALJSRGETKEY CMP#$7E BNE.1JSRCLICK CPY#$00 BEQ.2LDA(Z }TEMP),Y AND#$7F$STA(ZTEMP),Y.DEY 8LDA#$80BSTA(ZTEMP),Y LLDA#$00VSTAHEXSTRG,Y`JMPGETHEXVA }Lj.2LDA#$00tSTA(ZTEMP),Y~LDAZTEMPSEC SBC#$01STAZTEMP BCS.3DECZTEMP+1.3LDA#$80 }STA(ZTEMP),YJMPGETDECVAL.1CMP#$9B BNE.4 CPY#$00BEQGETHEXVALJSRCLICK CPY#$01  }BNE.91LDAHEXSTRG(STAHEXSTRG+1 2LDA#$30<STAHEXSTRGF.90LDA#$03PSTAMXDIGITS ZLDA#$00dSTA }RITEFLAG n.91RTSx.4CMP#$1B BNE.86JSRCLICK LDA#$01 STAERR JMP.90.9JMPGETHEXVAL.86 }CPY#$02 BEQ.9 CMP#$30 BMI.9 CMP#$3A BMI.7 CMP#$41 BMI.9 CMP#$47 BPL.9".7JSR }CLICK,STAHEXSTRG,Y6JSRASCINT@STA(ZTEMP),YJINYTLDA(ZTEMP),Y ^ORA#$80hSTA(ZTEMP),YrJMPGE }THEXVAL|POKEJSRCLICKJSRCLRWNDW LDA#$D5STASCRNXY LDA#$40STASCRNXY+1LDX#SELECTLDY/ }SELECTJSRPMESS LDA#$F9STASCRNXYLDX#PCOLREGLDY/PCOLREGJSRPMESS LDA#$21STASCRNXY }LDX#P0123B&LDY/P0123B0JSRPMESS:.9JSRGETKEY DCMP#$1B NBNE.1XJSRCLICKbJSRDISPCHARlJSR }RESWNDWvJMPKEYSCAN JMPPOKE.1CMP#'B BNE.2 LDA#$34 JMP.23.2CMP#$30 BMI.9 CMP#$3 }4 BPL.9.23JSRCLICKPHAJSRCLRWNDW LDA#$D0STASCRNXY LDA#$40STASCRNXY+1 LDX#NTRV }LU4*LDY/NTRVLU44JSRPMESS>PLAHPHA RCMP#$34 \BNE.10 fLDA#$FCpSTASCRNXYzLDX#COLBAKL }DY/COLBAKJSRPMESS JMP.11.10LDA#$FBSTASCRNXYPLAPHASTAREGCOL LDX#REG LDY/REG }JSRPMESS.11LDA#$4DSTASCRNXYLDX#PRMPTLDY/PRMPTJSRPMESS $LDA#$4E.STAZTEMP 8LDA# }$41BSTAZTEMP+1LJSRGETDECVAL VLDAERR `BEQ.13 jCMP#$01 tBNE.14~PLAJMPPOKE+3.14JSRHEXB }IN JMP.15.13JSRCHK255 LDAERR BEQ.16JSRHONK2 JMP.11.16JSRDECBIN .15PLA AND#$0F }TAX LDATEMP STA$600,XJSRPCOLORSJSRRESWNDW(JMPKEYSCAN.16JSRDECBIN .15PLA AND#$0F TSC" *FONTASIZERSOURCECODEPART4(EDITJSRCLICK2JSRCLRWNDW<JSRPSELECTFLDX#PEDITPLDY/PED}ITZJSRPCOMNDdJSRKGETCHnJSRCLICKxSTACURCHAREDIT2JSRCALCOFF LDY#$07.1LDA(CHOFF),YSTA}CHARBUF2,YDEY BPL.1JSRDISPCHARJSRRESWNDWJMPKEYSCANCHKSTIKLDA#$00STANOMOVE LDA$27}8 BEQ.1 CMP#$0F BEQ.1 LDX#$00"STX$4DATTRACT ,JMP.26.1LDA#$01@STANOMOVEJJMPCHKTRI}G T.2TAY ^AND#$08hBNEC1LEFT rLSRBIT|CLC LDAC1X ADC#$04 CMP#$8F BNE.3 LDA#$80 }STABITLDAWRAPFLG BEQ.4TYAPHAJSRC2RITEJSRDISPCHARPLATAY.4LDA#$6F.3STA}C1X &JMPC1UP0C1LEFTTYA :AND#$04 DBNEC1UP NASLBITXSEC bLDAC1X lSBC#$04 vCMP#$6B BNE.4} LDA#$01 STABITLDAWRAPFLG BEQ.5TYAPHAJSRC2LEFTJSRDISPCHARPLATAY.5LD}A#$8B.4STAC1X C1UPTYA AND#$01BNEC1DOWN DECBYTE*SEC 4LDAC1Y >SBC#$04 HCMP#$1E RB}PL.5 \LDA#$07 fSTABYTEpLDAWRAPFLG zBEQ.6TYAPHA JSRC2UPJSRDISPCHARPLATAY.}6LDA#$3D.5STAC1YJMPSOUNDC1DOWNTYA AND#$02BNESOUND INCBYTECLC LDAC1Y ADC#$04} $CMP#$40 .BMI.6 8LDA#$00 BSTABYTELLDAWRAPFLG VBEQ.7`JSRC2DOWNjJSRDISPCHARt.7LDA#$21}~.6STAC1YSOUNDLDA#$A6STA$D201 LDA#$10STA$D200 LDY#$04JSRPAUSE LDA#$00STA$D20}0STA$D201CHKTRIGLDA$284 BEQ.3 LDA#$00STATRIGFLAG LDANOMOVE BEQ.1JMPKEYSCAN(.1}JMPHOLDON2.3LDA#$00<STX$4DATTRACTFLDXNOMOVE PBEQ.4ZLDATRIGFLAG dBEQ.4nJMPCHKSTIKx.4LDA}#$01STATRIGFLAG LDYBYTELDA(CHOFF),Y EORBITSTA(CHOFF),YSTA$D808,YJSRENLARGE LDA#}$A6STA$D201 LDA#$30STA$D200 LDX#$FF LDY#$07JSRPAUSE LDA#$00STA$D200"STA$D201},LDANOMOVE6BEQHOLDON@JMPCHKSTIKJHOLDONLDY#$90 TLDX#$FF^JSRPAUSEhJMPCHKSTIKrGETFNAMELDX}#$07|.1LDA#$20STAFILENAME+2,X LDA#$00STACHARBUF,XDEX BPL.1 STAERR LDY#$00 LDA#}$80STA(ZTEMP),YFLOOPJSRGETKEY CMP#$7E BNE.1 CPY#$00BEQFLOOPJSRCLICKLDA(ZTEMP),Y} &AND#$7F0STA(ZTEMP),Y:DEY DLDA#$00NSTACHARBUF,Y XLDA#$80bSTA(ZTEMP),YlJMPFLOOPv.1CMP}#$1B BNE.2JSRCLICK LDA#$01 STAERRRTS.2CMP#$9B BNE.3 CPY#$00BEQFLOOPJSRC}LICK LDX#$00 STYTEMP LDY#$00.4LDACHARBUF,Y STAFILENAME+2,XINX INY *CPYTEMP 4BNE.4} >LDY#$00HINXRINX\.11LDA(ZTEMP1),YfSTAFILENAME,XpINXzINY CPY#$05 BNE.11RTS.3}CPY#$08 BNE.9JMPFLOOP.9CMP#$30BMIFLOOP CMP#$5BBPLFLOOP CMP#$41 BPL.6 CPY#$0}0  BNE.7 .8JMPFLOOP .7CMP#$3A $ BPL.8. .6JSRCLICK8 STACHARBUF,YB JSRASCINTL STA(ZTEMP),YV }INY` LDA(ZTEMP),Y j ORA#$80t STA(ZTEMP),Y~ JMPFLOOP LOADSAVEJSRCLICK JSRCLRWNDW LDX#$03 .96}LDADOTSET,X STAFNPRMPT+9,X DEX BPL.96 LDA#$A9 STASCRNXY LDA#$40 STASCRNXY+1 LDX#NTRF}NME LDY/NTRFNME JSRPMESS  LDA#$D4 STASCRNXY( LDX#FORLOAD2 LDY/FORLOAD< LDASAVEFLAG F BEQ.97}P LDX#FORSAVEZ LDY/FORSAVEd .97JSRPMESS n LDA#$21x STASCRNXY INCSCRNXY+1 LDX#FNPRMPT LDY/FN}PRMPT JSRPMESS LDA#$22 STAZTEMP LDA#$41 STAZTEMP+1 LDA#DOTSET STAZTEMP1 LDA/DOTSET} STAZTEMP1+1 JSRGETFNAME  LDAERR  BEQ.1 JSRRESWNDW" JMPKEYSCAN, .1LDA#$00 6 STA$22F @ LDX#$}0D J LDY#$0DT JSRPAUSE^ JSRCLRWNDW h LDX#$10 r LDA#$0C| STA$342,X JSR$E456 LDX#$10 LDA#$0}3 STA$342,X LDA#$04 LDYSAVEFLAG BEQ.95 LDA#$08 .95STA$34A,X LDA#FILENAME STA$344,X} LDA/FILENAME STA$345,X JSR$E456  BPL.46 JMPPROCERR& .46LDX#$10 0 LDA#$00: STA$344,XD STA}$348,X N LDA#$3CX STA$345,X b LDA#$04l STA$349,X v LDA#$07 LDYSAVEFLAG BEQ.94 LDA#$0B .94}STA$342,X JSR$E456 BPL.47 JMPPROCERR .47LDX#$10 LDA#$0C STA$342,X JSR$E456 LDA#$C0} STA$D40E .27JSRDISPCHAR JSRRESWNDW  LDY#$07 LS99LDA(CHOFF),Y* STACHARBUF2,Y4 DEY > BPLLS99}H LDACRNTFONTR ASL\ ASLf ASLp TAX z LDY#$00 LS89LDAFILENAME+$02,Y CMP#'. BEQ.1 STAREDSET}+$03,Y STAFNTNAMES,X INX INY CPY#$08 BNELS89 BEQLS90 .1LDA#$20 .2STAREDSET+$03,Y ST}AFNTNAMES,XINXINY CPY#$08 $BNE.2.LS90LDA#$2E 8STA$22FBLDASETOGGL LCMP#$E0 VBEQ.1`}JSRPWICHSETj.1JMPKEYSCANtLOADLDA#$00~DARRENSTASAVEFLAGJMPLOADSAVESAVELDA#$01BNEDARREN}PROCERRSTYTEMP3JSRCLRWNDW LDA#$FBSTASCRNXY LDA#$40STASCRNXY+1LDYTEMP3TYAJSRBIN}DEC LDX#$02 LDY#$41 JSRPDECLDX#PERROR(LDY/PERROR2JSRPMESS<HONKLDA#$0C FLDX#$10PST}A$342,XZJSR$E456 dLDA#$C0nSTA$D40E xLDA#$2E STA$22F LDX#$0A.1JSRCLICKDEX BPL.1 }LDA#$00 STA$14 STA$13.2LDA$13 BNE.3 LDX$2FCINX BEQ.2.3JSRRESWNDWJMPKEYSCA}NKGETCHLDASVBIFLAG "BNE.1,JSRCHKSLEKT6.1LDX$2FC@INXJBEQKGETCH TLDA#$FF ^STA$2FChDEX}rTXA |AND#$C0 CMP#$C0BEQKGETCHLDAKBD2ASC,X CMP#$80BPLKGETCHJSRASCINTRTSPSEL}ECTLDA#$D2STASCRNXY LDA#$40STASCRNXY+1LDX#PLZTYPELDY/PLZTYPEJSRPMESS LDA#$F9ST }ASCRNXY&LDX#THECHAR0LDY/THECHAR:JSRPMESS DLDA#$22NSTASCRNXYXLDX#UWISH2bLDY/UWISH2lJSR }PMESSvRTSUNDOJSRCLICK LDY#$07.1LDACHARBUF2,YSTA(CHOFF),YDEY BPL.1JSRDISPCHARJ }MPKEYSCANSAVECHARJSRCALCOFF LDY#$07.1LDA(CHOFF),YSTACHARBUF2,YDEY BPL.1 RTSFLIPJSR }CLICK LDAGRFLAG *BEQ.1 4LDA#$00>STAGRFLAG HLDX#$06 RLDA#$00\.2STA$4042,XfDEX pBPL.2  }zLDX#$CB.3LDABASEADDR,X AND#$FCSTABASEADDR,XLDABASEAUNDO,X AND#$FCSTABASEAUNDO,XDEX} CPX#$FF BNE.3JMPKEYSCAN.1LDA#$42STASCRNXY LDA#$40STASCRNXY+1LDX#GRPHCLDY/}GRPHC$JSRPMESS .LDA#$018STAGRFLAG BLDX#$CBL.4LDABASEADDR,X VORA#$02`STABASEADDR,XjLDABAS}EAUNDO,X tORA#$02~STABASEAUNDO,XDEX CPX#$FF BNE.4JMPKEYSCANWRAPJSRCLICKLDAWRAPFLG }EOR#$01STAWRAPFLG BEQ.1 LDA#$84 LDX#$86 BNE.2.1LDA#$C4 LDX#$C6.2STA$2C2 ST}X$2C3(JMPKEYSCANPFLG BEQ.1 LDA#$84 LDX#$86 BNE.2.1LDA#$C4 LDX#$C6.2STA$2C2 STSC2v" *FONTASIZERSOURCECODEPART5(WRITEJSRCLICK2P4JSRCLRWNDW <LDA#$ABFSTASCRNXY PLDA#$40}ZSTASCRNXY+1dLDX#WICHTYPEnLDY/WICHTYPExJSRPMESS LDA#$F7STASCRNXY LDX#SYN LDY/SYN}JSRPMESS LDA#$21STASCRNXY LDX#EAS LDY/EASJSRPMESS LDA#$4ASTASCRNXY LDX#BAS L}DY/BASJSRPMESSLDA#'S+$60"STA$40F7,LDA#'M+$606STA$4121@LDA#'B+$60JSTA$414ATP2JSRGET}KEY ^LDX#$00 hCMP#'S rBEQPP1|INX CMP#'M BEQPP1INX CMP#'B BEQPP1 CMP#$1B BNE}P2JSRCLICKJSRRESWNDW LDA#$00STARITEFLAGJMPKEYSCANPP1STXRITETYPEPPP1LDXRITETYPE}JSRCLICKJSRPHEDR2&JSRCLRWNDW0JSRPHEDR :LDA#$D1DSTASCRNXY NLDA#$40XSTASCRNXY+1bLDX#NTR}FNMElLDY/NTRFNMEvJSRPMESS LDA#$FBSTASCRNXYLDX#FORITELDY/FORITEJSRPMESS LDA#$49}STASCRNXYLDX#FNPRMPTLDY/FNPRMPTJSRPMESS LDA#$4ASTAZTEMP LDA#$41STAZTEMP+1 LDX}RITETYPELDADOTABL,X STAZTEMP1*LDADOTABH,X4STAZTEMP1+1>JSRGETFNAME HLDAERR RBEQP3 \JMPP4}fP3JSRCLRWNDWpJSRPHEDR zLDA#$D0STASCRNXY LDA#$40STASCRNXY+1LDX#STCHARLDY/STCHAR}JSRPMESS LDA#$FASTASCRNXYLDX#NDCHARLDY/NDCHARJSRPMESS LDA#$1ESTASCRNXYLDX#ST}LINELDY/STLINEJSRPMESS $LDA#$47.STASCRNXY8LDX#LINEINCBLDY/LINEINCLJSRPMESS VLDA#$DD }`STASCRNXY jLDA#$40tSTASCRNXY+1 ~LDY#$00 LDA#$80STA(SCRNXY),YJSRKGETCHJSRCLICKSTA!}STRTCHAR LDX#$DDSTXSCRNXY LDX#$40STXSCRNXY+1 LDY#$00STA(SCRNXY),Y LDA#$05STASCRN"}XY INCSCRNXY+1 LDA#$80STA(SCRNXY),Y(.90JSRKGETCH2CMPSTRTCHAR <BMI.90FJSRCLICKPSTAENDC#}HAR ZLDX#$05dSTXSCRNXY nLDX#$41xSTXSCRNXY+1 LDY#$00STA(SCRNXY),Y.66LDA#$2BSTASCRNXY$}LDX#PRMPT5LDY/PRMPT5JSRPMESS LDA#$2CSTAZTEMPSTASCRNXY LDA#$41STAZTEMP+1STA%}SCRNXY+1 LDA#$01STARITEFLAGSTATYPEFLAG "LDA#$05,STAMXDIGITS6.1LDX$2FC@INX JBEQ.1 TC&}PX#$0D ^BNE.2hJSRCLICK rJMP.3|.2LDA#$00 LDX#$04.4STA$412C,XDEX BPL.4JSRGETDECVA'}LJSRCHK65535 LDAERR BEQ.96 CMP#$03 BNE.5.3LDX#$04 LDA#'0.6STADECSTRG2,XDEX (}BPL.6 LDA#'2&STADECSTRG2+1 0LDA#$FF :STA$2FC DBNE.96N.5JSRHONK2 XJMP.66b.96JSRDECBIN2)} lLDATEMPvSTALINENOLDATEMP+1STALINENO+1DECSCRNXY LDY#$06 LDA#$00P6STA(SCRNXY),Y*}DEY BPLP6LDXLINENOLDYLINENO+1JSRBINDEC2 LDA#$01STARITEFLAGJSRPDEC2 LDA#$00+}STARITEFLAG .34LDA#$53*STASCRNXY4LDX#PRMPT4>LDY/PRMPT4HJSRPMESS RLDA#$54\STAZTEMPfSTA,}SCRNXY pLDA#$41zSTAZTEMP+1STASCRNXY+1LDASTRTCHARCMPENDCHAR BNE.36DECSCRNXY LDX#NA-} LDY/NAJSRPMESS JMP.37.36LDA#$01STARITEFLAGSTATYPEFLAG LDA#$04 STAMXDIGITS .1L.}DX$2FC INX $ BEQ.1 . CPX#$0D 8 BNE.2 B LDA#$FF L STA$2FCV JSRCLICK` .3LDA#$0A j STATEMP t LD/}A#$00~ STATEMP+1 BEQ.35 .2LDA#$00 LDX#$04 .4STA$4154,X DEX BPL.4 JSRGETDECVAL LDA0}ERR CMP#$03 BEQ.3 JSRDECBIN2 LDATEMP ORATEMP+1 BNE.35 JSRHONK2  JMP.34( .35LDATEMP1} 2 STAINC< LDATEMP+1F STAINC+1P DECSCRNXYZ DECSCRNXY d LDY#$05 n LDA#$00x .7STA(SCRNXY),Y DE2}Y BPL.7 INCSCRNXY LDXINC LDYINC+1 JSRBINDEC2 JSRPDEC2 .37LDA#$00 STARITEFLAG STA3}TYPEFLAG LDA#$97 STASCRNXY LDX#CORRECT LDY/CORRECT JSRPMESS .9JSRGETKEY " CMP#'N , BNE.84}6 JSRCLICK @ JMPP3J .8CMP#'YT BEQOPENIT ^ CMP#$1B h BNE.9 r JMPPPP1| OPENITJSRCLICK LDA#$00 5} STA$22F LDX#$10 LDY#$10 JSRPAUSE LDX#$10 LDA#$0C STA$342,X JSR$E456 BPL.88 JM6}PPROCERR .88LDA#$03 STA$342,X LDA#FILENAME STA$344,X LDA/FILENAME& STA$345,X 0 LDA#$08: S7}TA$34A,X D LDA#$00N STA$34B,XX JSR$E456 b BPL.39l JMPPROCERRv .39LDA#$00 STARITEFLAG INCENDC8}HAR .1LDACURCHAR PHA LDASTRTCHAR STACURCHAR JSRCALCOFF PLA STACURCHAR JSRBILDREC LD9}X#$10 LDA#$09 STA$342,X  LDA#$00 STA$344,X STA$349,X LDA/BUFFER* STA$345,X4 STA$348,X:}> JSR$E456 H BPL.2 R STYTEMP \ LDA#$0Cf STA$342,Xp JSR$E456 z LDYTEMP .47JMPPROCERR .2LDARITE;}FLAG BNE.19 LDA#$01 STARITEFLAG JMP.1 .19LDALINENO CLC ADCINC STALINENO LDALINENO<}+1 ADCINC+1 STALINENO+1INCSTRTCHARLDASTRTCHARCMPENDCHAR $BEQ.3 .JMP.18.3LDX#$10 B=}LDA#$0CLSTA$342,XVJSR$E456 `BPL.4jJMPPROCERRt.4JSRDISPCHAR~JSRRESWNDW LDA#$C0STA$D40>}E LDA#$2E STA$22F LDA#$00STARITEFLAGJMPKEYSCANBILDRECLDA#$00 STABUFLDA/BUFFER?}STABUF+1LDARITETYPE CMP#$00 BEQ.79 LDA#$01STARITEFLAG (JMP.782.79LDARITEFLAG <BNE.7@}8 FJMP.5P.78LDXLINENOZLDYLINENO+1dJSRBINDEC2 nLDY#$04x.1LDADECSTRG2,YSTA(BUF),YDEY A}BPL.1 LDABUFCLC ADC#$05 STABUF BCC.2INCBUF+1.2LDARITETYPE BEQ.3 CMP#$01 B}BNE.4JSRCONEAC JMP.5.4JSRCONBAS "JMP.5,.3JSRCONSYN6.5LDY#$00 @LDA#$9BJSTA(BUF),YTC}RTS^CONSYNLDY#$07h.1LDASYNASM,YrSTA(BUF),Y|DEY BPL.1 LDABUFCLC ADC#$08 STABUF D}BCC.2INCBUF+1.2LDA#$00STACOUNT.4LDYCOUNTLDA(CHOFF),YJSRBINHEX LDY#$00LDAHEXE}STRGCLC ADC#$20&STA(BUF),Y0INY:LDAHEXSTRG+1DCLC NADC#$20XSTA(BUF),Y bLDABUFlCLCF} vADC#$02 STABUF BCC.3INCBUF+1.3INCCOUNTLDACOUNT CMP#$08 BNE.4RTSCONBASLDYG}#$07.1LDABASIC,YSTA(BUF),YDEY BPL.1 LDABUF CLC ADC#$08 STABUF *BCC.24INCBUH}F+1>.2LDA#$00HSTACOUNTR.6LDYCOUNT\LDA(CHOFF),YfJSRBINDEC pLDY#$00 zLDX#$00.3LDADECSTRGI},X BEQ.79 ORA#$20STA(BUF),YINY .79INX CPX#$03 BNE.3STYTEMP2 LDABUFCLCJ}ADCTEMP2 STABUF BCC.4INCBUF+1.4INCCOUNT$LDACOUNT .CMP#$08 8BEQ.7 BLDY#$00 LLDA#',K}VSTA(BUF),Y `LDABUFjCLC tADC#$01 ~STABUF BCC.5INCBUF+1 .5JMP.6 .7RTSCONEACLDY#L}$07.1LDAEASMD,YSTA(BUF),YDEY BPL.1 LDABUFCLC ADC#$08 STABUF BCC.2INCBUF+M}1.2LDA#$00(STACOUNT2.4LDYCOUNT<LDA(CHOFF),YFJSRBINHEX PLDY#$00 ZLDA#'$dSTA(BUF),YnN}INYxLDAHEXSTRGCLC ADC#$20STA(BUF),YINYLDAHEXSTRG+1CLC ADC#$20STA(BUF),Y LO}DABUFCLC ADC#$03 STABUF BCC.3INCBUF+1.3INCCOUNTLDACOUNT "CMP#$08 ,BEQ.6 6LDP}Y#$00 @LDA#',JSTA(BUF),Y TLDABUF^CLC hADC#$01 rSTABUF |BCC.4INCBUF+1 JMP.4 .6RTSQ}PHEDRLDA#$40STASCRNXY+1LDARITETYPE BEQ.2 CMP#$01 BNE.1 LDX#EAS LDY/EAS LDA#$8R}1STASCRNXYJSRPMESSRTS.1LDA#$82&STASCRNXY 0LDX#BAS :LDY/BASDJSRPMESSNRTSX.2LDS}A#$7FbSTASCRNXY lLDX#SYN vLDY/SYNJSRPMESSRTSPDEC2LDARITEFLAG CMP#$01 BNE.1 LDY#T}$04.2LDADECSTRG2,YJSRASCINTSTA(SCRNXY),YDEY BPL.2DECRITEFLAGRTS.1LDY#$03 .3LU}DADECSTRG2+1,YJSRASCINT STA(SCRNXY),Y*DEY 4BPL.3>RTSHDECBIN2LDA#$00 RSTATEMP\STATEMP+1V} fLDX#$00p.1LDADECSTRG2,XzSEC SBC#$30TAY CPY#$00 BEQ.2.3LDATEMPCLCADCADDTAB2W}L,X STATEMPLDATEMP+1ADCADDTAB2H,XSTATEMP+1DEY BNE.3 .2INX CPX#$05 BNE.1$RTX}S.BINDEC2STXTEMP8STYTEMP+1 BLDY#$00L.1LDX#$FF V.2INX `LDATEMPjSECtSBCADDTAB2L,Y ~STATEY}MPLDATEMP+1SBCADDTAB2H,YSTATEMP+1 BCS.2 LDATEMPCLCADCADDTAB2L,Y STATEMPLDATZ}EMP+1ADCADDTAB2H,YSTATEMP+1TXA ORA#$30 STADECSTRG2,YINY CPY#$05 (BNE.12RTS<CH[}K255LDA#$00 FSTAERRPLDADECSTRG ZBEQ.9 dCMP#$12 nBMI.9 xBNE.8LDADECSTRG+1 CMP#$15 BM\}I.9 BNE.8LDADECSTRG+2 CMP#$15 BMI.9 BNE.8 .9RTS.8LDA#$01 STAERRRTSCHK65535]}LDA#$00 STAERRLDADECSTRG2 CMP#$30 "BEQ.9 ,CMP#$33 6BMI.9 @BNE.8JLDADECSTRG2+1 TCMP^}#$32 ^BMI.9 hBNE.8rLDADECSTRG2+2 |CMP#$30 BEQ.9 BNE.8LDADECSTRG2+3 CMP#$30 BEQ.9 _}BNE.8LDADECSTRG2+4 CMP#$30 BEQ.9 BNE.8 LDA#$00RTS.8LDA#$01 STAERR .9RTS`}HONK2LDY#$1A&.1JSRCLICK0DEY :BPL.1DRTSNE.8 LDA#$00RTS.8LDA#$01 STAERR .9RTS:SCJ" *FONTASIZERSOURCECODEPART6(2TYPEJSRCLICK <LDA#$A6FSTASCRNXY PLDA#$40ZSTASCRNXYb}+1dLDX#PENTERnLDY/PENTERxJSRPMESS LDA#$CESTASCRNXYLDX#VALUELDY/VALUEJSRPMESS c}LDA#$F6STASCRNXY LDX#FOR LDY/FORJSRPMESS LDA#$1ESTASCRNXYINCSCRNXY+1LDX#PLINEd}LDY/PLINEJSRPMESS "LDA#$46,STASCRNXY6LDX#PGTLT@LDY/PGTLTJJSRPMESS TLDA#$8C^STAZTEMe}P1 hLDA#$40rSTAZTEMP1+1 |LDY#$00TYPELOOPTYACLC ADC#$91STA$4148.43LDAZTEMP1STASCf}RNXYLDAZTEMP1+1STASCRNXY+1STYTEMP3LDX#PRMPTLDY/PRMPTJSRPMESSLDAZTEMP1STAZTEMPg}INCZTEMPLDAZTEMP1+1&STAZTEMP+1 0LDA#$01:STATYPEFLAGDJSRGETDECVAL NLDAERR XBEQ.1 bCMq}BFNTSZR16SRCB%FNTSZR1 SRCBMBFNTSZR2 SRCBIFNTSZR3 SRCB;FNTSZR4 SRCBNFNTSZR5 SRCB#aFNTSZR6 SRCBAFNTSZR7 SRCBWFNTSZR8 SRCBh%FNTSZR9 SRCWFNTSZR10SRCFNTSZR11SRCdFNTSZR12SRCbfFNTSZR13SRCP#$02 lBEQ.2 vCMP#$03 BNE.98LDYTEMP3LDA(CHOFF),Y JMP.97.98JMP.5.1JSRCHK255 LDAr}ERR BEQ.44JSRHONK2LDYTEMP3 JMP.43.44JSRDECBIN JMP.3.2JSRHEXBIN .3LDATEMPLDYs}TEMP3 .97STA(CHOFF),Y*STA$D808,Y4JSRERASE>JSRENLARGEHLDAZTEMP1RCLC \ADC#$28fSTAZTEMP1t} pBCC.4zINCZTEMP1+1.4LDYTEMP3INY CPY#$08 BNE.94.99JSRRESWNDWJMPKEYSCAN.5JSRERAu}SELDYTEMP3 BEQ.99LDAZTEMP1SEC SBC#$28STAZTEMP1 BCS.6DECZTEMP1+1 .6DEY$.94v}JMPTYPELOOP.ERASELDY#$04 8LDA#$00B.1STA(ZTEMP1),YLDEY VBPL.1`RTSjDRECTRYJSRCLICK tLDA#$00w} ~STA$22F LDY#$10JSRPAUSE LDA#$00 STABUFSTACOUNTLDA/BUFFERSTABUF+1JSRCLRWNDWx} LDX#$10 LDA#$0CSTA$342,XJSR$E456 LDX#$10 LDA#$03STA$342,X LDA#$06(STA$34A,Xy} 2LDA#$00<STA$34B,XFLDA#STARSETPSTA$344,XZLDA/STARSETdSTA$345,XnJSR$E456xBPLREADIRz}JMPPROCERRREADIRLDX#$10 LDA#$05STA$342,X LDABUFSTA$344,XLDABUF+1STA$345,X LDA#${}12STA$348,X LDA#$00STA$349,XJSR$E456 BPL.1JMPPROCERR.1LDY#$00"LDA(BUF),Y ,CMP|}#$3A 6BPL.44 @CMP#$30JBPLREADDONET.44LDABUF^CLC hADC#$11 rSTABUF |BCC.2INCBUF+1.}}2INCCOUNTJMPREADIRREADDONELDX#$10 LDA#$0CSTA$342,XJSR$E456 BPL.1JMPPROCERR.1JS~}RCLRWNDW LDA#$C0STA$D40E LDA#$2E STA$22FLDACOUNT BNE.2&JMPNOFILES0.2LDA#$86:ST}ASCRNXY DLDA#$40NSTASCRNXY+1 XLDA#$00bSTATEMP3 lSTABUFvLDA/BUFFERSTABUF+1PNT3LDY#$0A} LDA#$9BSTA(BUF),YLDATEMP3 CMP#$07 BNE.98 LDA#$9ESTASCRNXY LDA#$41STASCRNXY+1}.98LDXBUFLDYBUF+1JSRPMESS LDABUFCLC ADC#$11 *STABUF 4BCC.4>INCBUF+1H.4LDY#}$10RLDA(BUF),Y \CMP#$9B fBNE.5pJMPPRNTFREEz.5LDATEMP3 CMP#$07 BNEPNT6JSRPRSNEKEYJ}SRGETKEYJSRCLICK CMP#$1BBEQLIBBYJSRDISPUP JMPPNT3PNT6LDASCRNXYCLC ADC#$1EST}ASCRNXY  BCC.1 INCSCRNXY+1 .1INCTEMP3 $ JMPPNT3. PRNTFREELDY#$028 .1LDA(BUF),YB STAFREE,YL D}EY V BPL.1` LDATEMP3 j CMP#$07 t BNE.97~ JSRPRSNEKEY JSRGETKEY JSRCLICK CMP#$1B BEQLIBBY} JSRDISPUP LDA#$A0 STASCRNXY LDA#$41 STASCRNXY+1 JMP.99 .97LDASCRNXY CLC ADC#$20} STASCRNXY  BCC.99 INCSCRNXY+1( .99LDX#FREE2 LDY/FREE< JSRPMESSF JSRPRSNEKEYP JSRGETKEYZ }JSRCLICKd LIBBYJSRRESWNDWn JMPKEYSCANx NOFILESJSRCLRWNDW LDA#$FA STASCRNXY LDA#$40 STASCRNXY}+1 LDX#NOSTFLS LDY/NOSTFLS JSRPMESS LDA#$24 STASCRNXY LDX#ONDISK LDY/ONDISK JSRPMESS} LDY#$10 .1JSRCLICK DEY  BPL.1 " LDX#$FF , STX$2FC6 INX @ STA$14 J LDX$13T INX^ INXh }TXAr .8CMP$13 | BEQ.9 LDX$2FC INX BNE.9 LDX$D01F CPX#$05 BEQ.9 CPX#$06 BNE.8} .9JSRRESWNDW JMPKEYSCANLDX$2FC INX BNE.9 LDX$D01F CPX#$05 BEQ.9 CPX#$06 BNE.8!SCx|" *FONTASIZERSOURCECODEPART7(2MODE.EQ$1D50<MAPX.EQ$1D51FMAPY.EQ$1D52PCURTYPE.EQ$1D5}3ZDRAWCHAR.EQ$1D54dSTIKSPD.EQ$1D55nMAXCOLS.EQ$1D56xMAXROWS.EQ$1D57ULX.EQ$1D58ULY.EQ$1D59S}TKFLAG.EQ$1D5ATYPEFLAG.EQ$1D5BCURX.EQ$1D5CCURY.EQ$1D5DOLDCURY.EQ$1D5EDLCONFLG.EQ$1D5FLRX}.EQ$1D60LRY.EQ$1D61NULX.EQ$1D62NULY.EQ$1D63NLRX.EQ$1D64NLRY.EQ$1D65FILLCHAR.EQ$1D66R}EPCHAR.EQ$1D67"RNDMFLAG.EQ$1D68,HORZS.EQ$1D696ESCFLAG.EQ$1D6A@KB.EQ$1D6BJCURSPD.EQ$1D6CTSVBIFLA}G.EQ$1D6D^SAFE.EQ$1D6EhASHOLD.EQ$1D6FrHOLD.EQ$1D70|HOLD1.EQ$1D71EOLFLAG.EQ$1D72BOXFLG.EQ$1D}73SCONSOL.EQ$1D74NOKEY.EQ$1D75TULX.EQ$1D76TULY.EQ$1D77ABSMAX.EQ$1D78OVRFLAG.EQ$1D79IN}VFLG.EQ$1D7AFHOLD.EQ$1D7BMAPSTRT.DA/SCREENMBUFSTRT.DA/UNDOBUFRDMSTART.DA/SCREENCURINCX.HS0404}04040808CURINCY.HS040504080408CFLRX.HS131313130909&CFTBY.HS0A070A050A050SCRNCOLS.HS272727271313:SCRN}ROWS.HS130E13091309DCT1.HSFC84848484N.HSFC00000000XCT2.HSFC84848484b.HS84FC000000lCT3.HSFC84848484}v.HS84848484FCCURLO.DA#CT1,#CT2,#CT1.DA#CT3,#CT1,#CT3CURHI.DA/CT1,/CT2,/CT1.DA/CT3,/CT1,/CT3}BXFL.AS-"Fill" .HS9BSULC.AS"Selectupper-".AS"leftcorner" .HS9BOFBOXTO.AS"ofboxto" .HS}9BFORFILL.AS"for"FLL.AS"fill" .HS9B! PSHTRIG.AS"&pushtrigger" .HS9B SLRC.AS"Selectlower-"}*.AS"rightcorner" 4.HS9B>PTTCHAR.AS"Pleasetype"H.AS"thecharacter" R.HS9B\BXMR.AS""f.AS}-"Mirror" p.HS9BzMIROR.AS"mirror" .HS9BHORV.AS-"H".AS"orizontalor" .AS-"V".AS"ertical}mirror?" .HS9BBXREP.AS-"Replace" .HS9BOFBOX4.AS"ofboxfor" .HS9BTORPLCE.AS"to"RPLCE.}AS"replace" .HS9BNTTCHAR.AS"Nowtypethe".AS"character" .HS9B$QUOTES.AS"''" ..HS9B"8REP}RAND.AS"Replacerandomly"B.AS"(Y/N)?" L.HS9BVBXTRNS.AS-"BoxTransfer" `.HS9BjTRNSFR.AS"transfer" t}.HS9B ~NMBTDO.AS"Nowmoveboxto".AS"destinationof" .HS9BBXROX.AS-"BoxXcopy" .HS9BXROX.A}S"xcopy" .HS9BSTARSCR.AS"D:*.MAP" .HS9BGTOXY.AS-"GotoX,Y" .HS9BNTRX.AS"EnterX".AS"}coordinate".AS"(1-nnn)<>" .HS9BNTRY.AS"EnterY".AS"coordinate"(.AS"(1-nnn)<>" 2.HS9B}<SPKE.AS-"PokeColor" F.HS9BPWCR.AS"Whichcolor"Z.AS"register(0,1,"d.AS"2,3,orB)?" n.HS9BxEV}R.AS"Entervaluefor".AS"registern<>" .HS9BEVC.AS"Entervaluefor".AS"COLBAK<>" .HS9B}CHNGE.AS-"Change".AS-"Parameters" .HS9BMRCS.AS-"M".AS"ode" .AS-"R".AS"ows" .AS-"}C".AS"olumns" .AS-"S".AS"peed" ".HS9B,PESC.AS"(PressESC"6.AS"toexit)" @.HS9BJENM.A}S"Enternewmode"T.AS"(n-7)" ^.HS9BhCM.AS"(Currentmode"r.AS"isn)" |.HS9BENSPD.AS"Enternew}speed".AS"(1-3)" .HS9BCS.AS"(Currentspeed".AS"isn)" .HS9BCNOR.AS-"ChangeRows".AS}"-Current#of".AS"rowsisnnn." .HS9BENOR.AS"Enter#ofrows".AS"(5-nnn)<>" .HS9BSFRNGE}.AS"(Saferangeis".AS"nn-nnn)" .HS9B!&DECROWS.AS"Decreasing#of"0.AS"rowscauses" :.HS9BDLOSD}ATA.AS"lossofmap"N.AS"data" X.HS9BbDNOCC.AS"Decreasing#of"l.AS"columnscauses" v.HS9BVEBSR}.AS"Valueentered".AS"isbeyondsafe".AS"range" .HS9B!DECOLS.AS"Columnsmustbe".AS"decrease}dtonnn" .HS9BENOC.AS"Enter#of".AS"columns(nn-255)".AS"<>" .HS9BCNOC.AS-"ChangeCols}".AS"-Current#of".AS"colsisnnn." .HS9B"CDECROWS.AS"Rowsmustbede" .AS"creasedtonnn" *.}HS9B4SRSTRT.AS-"RestartMap">.AS-"Editor" H.HS9BRLDSCR.AS-"LoadMap" \.HS9BfSVSCR.AS-"SaveMap"} p.HS9BzEFFL.AS"Enterfilename".AS"forload" .HS9BEFFS.AS"Enterfilename".AS"forsave" }.HS9BWDS.AS-"WriteData".AS-"Statements" .HS9BSDST.AS"Selectdata".AS"statementtype" .HS}9BEFFW.AS"Enterfilename".AS"forwrite"  .HS9B ESLN.AS"Enterstartline" .AS"#<" $ .AS-"0"}. .AS"2000>" 8 .HS9BB ELNI.AS"Enterline#"L .AS"increment" V .HS9B` SNDC.AS-"SelectNew"j .AS-"Dra}wCharacter" t .HS9B ~ PTNDC.AS"Pleasetypeane" .AS"wdrawcharacter" .HS9B KBS.AT"LCUCCC" DRCTVEL}.DA#SYNASM,#EASMD .DA#BASIC DRCTVEH.DA/SYNASM,/EASMD .DA/BASIC CONSTL.DA#CONSYNS,#CONEACS .DA#CONBA}SS CONSTH.DA/CONSYNS,/CONEACS .DA/CONBASS DOTSCR.AS".MAP" .HS9B DOTABL.DA#DOTSYN,#DOTEAS .DA#DO}TBAS,#DOTSCR DOTABH.DA/DOTSYN,/DOTEAS( .DA/DOTBAS,/DOTSCR2 GLBLBX.AS-"G"< .AS"lobalor" F .AS-"B"P .A}S"ox?" Z .HS9Bd CMNDS.AS"Commands:"n .AS-"SELECT"x .AS"+" .AS-"ACDEFGLMNPRSTUW" .AS-"X*" .HS}9B NOSCR.AS"NoMAPfiles" .AS"ondisk" .HS9B SOLID.AS-"S" .AS"olid" .HS9B OROVR.AS"or}" .AS-"O" .AS"verlay?" .HS9B EASA.AS"MAC/65"  .HS9B SYNA.AS"SynAssembler" " .HS9B, BASA.AS}"BASIC" 6 .HS9B@ J T *EXTRAVARAIBLESANDTEXT^ *FORTHEANIMATIONROUTINEh r ENFW.AS"EnternewFrame"}| .AS"Width(1-20Char" .AS"s.)" .HS9B ENFH.AS"EnternewFrame" .AS"Height(1-nnCha" .AS"rs.)" } .HS9B! ENOFTG.AS"Enter#ofFrame" .AS"toGoto(1-128)" .HS9B" ENOFTBD.AS"Enter#ofFrame" .AS"}tobeDefined(" .AS"1-128)" .HS9B  EFFOS.AS"EnterFirstFram" .AS"eofSequence(1" .AS"-127)" & .}HS9B 0 ELFOS.AS"EnterLastFrame": .AS"ofSequence(nn"D .AS"n-128)" N .HS9B X EISOA.AS"EnterInitialSp"}b .AS"eedofAnimation"l .AS"(0-9)" v .HS9B MBOA.AS"Moveboxoverar" .AS"ea" .HS9B! TITBFN.AS"}thatistobeFr" .AS"ame#nnn" .HS9B GF.AS-"GotoFrame" .HS9B ANIMNU.AS-"AnimationMenu" .HS9B} CAF.AS-"ClearALLFrame" .AS-"s" .HS9B! ANIFRMS.AS-"AnimateFrames" .HS9B DEFRMS.AS-"DefineFra}me" .HS9B* SFS.AS-"SetFrameSize" 4 .HS9B> ANICMDS.AS-"A"H .AS"nimate" R .AS-"C"\ .AS"lear" f }.AS-"D"p .AS"efine" z .AS-"G" .AS"oto" .AS-"S" .AS"ize" .AS-"ESC" .AS"ape" .HS9B"} ANISTATS.AS"Frame#nnnSize" .AS":nnWidebynn" .AS"High" .HS9B AFN2N.AS"AnimatingFrames" .AS}"nnntonnnatS" .AS"peedn" .HS9BNCSEQ.AS-"0-9".AS"changesspeed,"$.AS-"ESC"..AS"quits"} 8.HS9BBFWIDTH.EQ$1D7CLFHEIGHT.EQ$1D7DVFRAMENUM.EQ$1D7E`HOLDMAPX.EQ$1D7FjHOLDMAPY.EQ$1D80tSFR}AME.EQ$1D81~EFRAME.EQ$1D82ASPEED.EQ$1D83AZRESET.EQ$1D84FRMENM.EQ$1D86VBITIMER.EQ$1D87LINEC}NTR.EQ$1D88ANIFLAG.EQ$1D89COUNTER.EQ$1D8APIKDFONT.EQ$1D8BCRNTFONT.EQ$1D8CCTINDEX.EQ$1D8DC}TRESET.EQ$1D8ECTRHOLD.EQ$1D8FSTARTS.EQ$1D90 ENDS.EQ$1D91STARTD.EQ$1D92MAXCHAR.EQ$1D93(DESTF}ONT.EQ$1D942GTIAINDX.EQ$1D95<GTIAMODE.EQ$1D96FULXTAB.EQ$1D97128BYTESPULYTAB.EQ$1E17128BYTESZWIND}OW.EQ$1E97128BYTESdHOLD2C8.EQ$1F17nFYCOUNT.EQ$1F18xVTEMP.EQ$1F1AVTEMP1.EQ$1F1DANIMULC.EQ$1F1F}FRAMEY.EQ$1F21FGTIANDX.EQ$1F22FGTIASET.EQ$1F23FHOLD2C8.EQ$1F24CALCFLAG.EQ$1F25GTIACOLR.EQ$}1F26MAXWIDTH.EQ$1F27MAXHITE.EQ$1F28NEWFRAME.EQ$1F291BYTEEQ$1F24CALCFLAG.EQ$1F25GTIACOLR.EQ$MSCq" *FONTASIZERSOURCECODEPART8(2STIKSUBLDX#$00<STXSTKFLAG FLDX$2FCPINXZBEQSTKSBd!}RTSnSTKSBLDA$278 xLDX#$00STXSTKFLAGTAY AND#$01 BNE.1 LDAMAPY BEQ.2SEC SBC!}#$01 STAMAPYINCSTKFLAG JMP.2 .1TYA AND#$02 BNE.2 LDAMAPYCMPMAXROWS "BEQ.2,CL!}C 6ADC#$01 @STAMAPYJINCSTKFLAG T.2TYA ^AND#$04 hBNE.3 rLDAMAPX |BEQ.4SEC SBC#$01 !}STAMAPXINCSTKFLAG JMP.4 .3TYA AND#$08 BNE.4 LDAMAPXCMPMAXCOLS BEQ.4CLC A!}DC#$01 STAMAPXINCSTKFLAG .4TYA &BEQ.6 0CMP#$0F :BEQ.6DLDASTKFLAG NBEQ.6XJSRSETULC !}bJSRTIClLDXCURSPDvLDYCURSPDJSRMULT8BITLDATEMP1 LDY#$00 STY$14.5CMP$14 BEQ.6 !}LDX$2FCINX BEQ.5 .6RTSSETULCLDXMODE LDAMAPXSECSBCCFLRX,X STAULX LDAMAPY S!}EC*SBCCFTBY,X 4STAULY >LDAMAPXHCMPCFLRX,X RBEQ.1 \BCS.2f.1LDA#$00 pSTAULXz.2LDAMAPY!}CMPCFTBY,X BEQ.3 BCS.4.3LDA#$00 STAULY.4LDAMAXCOLSSEC SBCMAPXCMPCFLRX,X BE!}Q.5 BCS.6.5LDAMAXCOLSSECSBCSCRNCOLS,X STAULX.6LDAMAXROWS$SEC .SBCMAPY8CMPCFTBY!},X BBCS.8L.7LDAMAXROWSVSEC`SBCSCRNROWS,X jSTAULYt.8LDAMAPX~SEC SBCULXTAYLDACUR!}INCX,XTAXJSRMULT8BITLDATEMP1CLC ADC#$2F STACURX LDXMODELDAMAXROWSCMPSCRNROWS!},X BCS.9 LDA#$00 STAULY.9LDAMAPY(SEC 2SBCULY<TAY FLDXMODEPLDACURINCY,XZTAXd!}JSRMULT8BITnLDATEMP1xCLC ADC#$21 STACURY LDAULX STATEMP LDAULYSTATEMP+1STACTRE!}SETJSRXY2ADRINCDLCONFLG.11LDADLCONFLG BNE.11JSRSPSTATSRTSXY2ADRLDA#$00STAULCADR!}STAULCADR+1"INCMAXCOLS,LDYTEMP+1 6BEQ.4@.1LDAULCADRJCLCTADCMAXCOLS^STAULCADR hBCC.!}2rINCULCADR+1 |.2DEY BNE.1.4LDAULCADRCLC ADCTEMPSTAULCADR BCC.3INCULCADR+1.!}3LDADMSTARTCLCADCULCADR+1STAULCADR+1DECMAXCOLSRTSADR2XYLDATEMP1SECSBCDMSTART!}&STATEMP+10STATEMP1+1 :LDATEMPDSTATEMP1 NLDX#$FF X.1INX bLDATEMPlSECvSBCMAXCOLS STA!}TEMPLDATEMP+1 SBC#$00STATEMP+1 BCS.1 LDATEMPCLCADCMAXCOLS STATEMPLDATEMP+1 !}ADC#$00STATEMP+1TXAPHA LDA#$00 STATEMP STATEMP+1*.2LDATEMP4CLC>ADCMAXCOLS H!}STATEMP RBCC.3\INCTEMP+1 f.3DEX pCPX#$FF zBNE.2LDATEMP1SEC SBCTEMP STATEMPPL!}ASTATEMP+1RTSBOXFLLDALRXSEC SBCULXPHA.1LDAULX STATEMP  LDAULY STATEMP+1!} JSRXY2ADR$ PLA. PHA8 TAYB .2LDAFILLCHARL STA(ULCADR),YV DEY ` CPY#$FF j BNE.2 t INCULY ~ L!}DALRY CMPULY BCS.1 PLA RTS BOXMIRHLDALRX SEC SBCULX PHA .1LDAULX STATEMP L!}DAULY STATEMP+1 JSRXY2ADR LDA#$00 STATEMP+1 PLA( PHA2 TAY< .2LDA(ULCADR),YF PHA P STY!}TEMPZ LDYTEMP+1d LDA(ULCADR),Y n LDYTEMPx STA(ULCADR),Y LDYTEMP+1 PLA STA(ULCADR),Y LDYTEM!}P DEY INCTEMP+1 CPYTEMP+1 BCS.2 INCULY LDALRY CMPULY BCS.1 PLA RTS BOXMIRV!}LDALRX SEC " SBCULX, PHA6 .1LDAULX @ STATEMP J LDAULYT STATEMP+1^ JSRXY2ADRh LDAULCADRr S!}TAZTEMP| LDAULCADR+1 STAZTEMP+1 LDAULX STATEMP LDALRY STATEMP+1 JSRXY2ADR PLA PHA!} TAY .2LDA(ULCADR),Y PHA LDA(ZTEMP),Y STA(ULCADR),Y PLA STA(ZTEMP),Y DEY & CPY#$FF 0 !}BNE.2 : INCULY D DECLRY N LDALRY X CMPULY b BCS.1l PLAv RTS BOXRPLCELDALRX SEC SBCULX !}PHA .1LDAULX STATEMP LDAULY STATEMP+1 JSRXY2ADR PLA PHA TAY .2LDA(ULCADR),Y CM!}PREPCHAR BNE.4 LDARNDMFLAG BEQ.3* LDA$D20A4 ASL > BCS.4H .3LDAFILLCHARR STA(ULCADR),Y \ .4!}DEY f CPY#$FF p BNE.2 z INCULY LDALRY CMPULY BCS.1 PLA RTS BXTRNSFRLDA#BUFFER STAB!}UF LDA/BUFFER STABUF+1 LDAULY PHA LDALRX SEC SBCULXSTATEMP2.1LDAULX $STATEMP!} .LDAULY8STATEMP+1BJSRXY2ADRLLDYTEMP2V.2LDA(ULCADR),Y`STA(BUF),YjDEY tCPY#$FF ~BNE.2!}INCTEMP2 LDABUFCLCADCTEMP2 STABUF BCC.3INCBUF+1.3DECTEMP2 INCULY LDALRY!} CMPULY BCS.1PLA STAULY.4LDAULX STATEMP (LDAULY2STATEMP+1<JSRXY2ADRFLDYTEMP!}2 PLDA#$00Z.5STA(ULCADR),YdDEY nCPY#$FF xBNE.5 INCULY LDALRY CMPULY BCS.4LDA#B!}UFFER STABUFLDA/BUFFERSTABUF+1.6LDANULX STATEMP LDANULYSTATEMP+1JSRXY2ADRLD!}YTEMP2.7LDA(BUF),YLDXOVRFLAG "BEQ.88 ,CMP#$00 6BEQ.89@.88STA(ULCADR),Y J.89DEY TCPY#$FF!} ^BNE.7hINCTEMP2 rLDABUF|CLCADCTEMP2 STABUF BCC.8INCBUF+1.8DECTEMP2 INCNULY!} LDANLRY CMPNULY BCS.6RTSBXEROXLDA#BUFFER STABUFLDA/BUFFERSTABUF+1 LDALRX!}SEC &SBCULX0STATEMP2:.1LDAULX DSTATEMP NLDAULYXSTATEMP+1bJSRXY2ADRlLDYTEMP2v.2LDA(U!}LCADR),YSTA(BUF),YDEY CPY#$FF BNE.2INCTEMP2 LDABUFCLCADCTEMP2 STABUF BCC!}.3INCBUF+1.3DECTEMP2 INCULY LDALRY CMPULY BCS.1 LDA#BUFFER *STABUF4LDA/BUFFER!}>STABUF+1H.4LDANULX RSTATEMP \LDANULYfSTATEMP+1pJSRXY2ADRzLDYTEMP2.5LDA(BUF),YLDXO!}VRFLAG BEQ.88 CMP#$00 BEQ.89.88STA(ULCADR),Y .89DEY CPY#$FF BNE.5INCTEMP2 LDABU"}FCLCADCTEMP2 STABUF BCC.6INCBUF+1$.6DECTEMP2 .INCNULY 8LDANLRY BCMPNULY LBCS."}4VRTS`SCR2BUFRLDY#$00j.1LDASCREEN,YtSTAUNDOBUFR,Y~LDASCREEN+$100,YSTAUNDOBUFR+$100,YLDASC"}REEN+$200,YSTAUNDOBUFR+$200,YLDASCREEN+$300,YSTAUNDOBUFR+$300,YLDASCREEN+$400,YSTAUNDOBUFR+$400"},YLDASCREEN+$500,YSTAUNDOBUFR+$500,YLDASCREEN+$600,YSTAUNDOBUFR+$600,YLDASCREEN+$700,YSTA"}UNDOBUFR+$700,Y LDASCREEN+$800,YSTAUNDOBUFR+$800,YLDASCREEN+$900,Y(STAUNDOBUFR+$900,Y2LDASCREEN+$A"}00,Y<STAUNDOBUFR+$A00,YFLDASCREEN+$B00,YPSTAUNDOBUFR+$B00,YZLDASCREEN+$C00,YdSTAUNDOBUFR+$C00,Yn"}LDASCREEN+$D00,YxSTAUNDOBUFR+$D00,YLDASCREEN+$E00,YSTAUNDOBUFR+$E00,YLDASCREEN+$F00,YSTAUNDOBUF"}R+$F00,YINY BNE.1 LDY#203.2LDAFONTSET,YSTAFONTSUNDO,YLDABASEADDR,YSTABASEAUNDO,YD"}EY CPY#$FF BNE.2RTSBUFR2SCRLDY#$00".1LDAUNDOBUFR,Y,STASCREEN,Y6LDAUNDOBUFR+$100,Y@STA" }SCREEN+$100,YJLDAUNDOBUFR+$200,YTSTASCREEN+$200,Y^LDAUNDOBUFR+$300,YhSTASCREEN+$300,YrLDAUNDOBUFR+$" }400,Y|STASCREEN+$400,YLDAUNDOBUFR+$500,YSTASCREEN+$500,YLDAUNDOBUFR+$600,YSTASCREEN+$600,YL" }DAUNDOBUFR+$700,YSTASCREEN+$700,YLDAUNDOBUFR+$800,YSTASCREEN+$800,YLDAUNDOBUFR+$900,YSTASCREEN" }+$900,YLDAUNDOBUFR+$A00,YSTASCREEN+$A00,YLDAUNDOBUFR+$B00,YSTASCREEN+$B00,YLDAUNDOBUFR+$C00,Y" }STASCREEN+$C00,Y&LDAUNDOBUFR+$D00,Y0STASCREEN+$D00,Y:LDAUNDOBUFR+$E00,YDSTASCREEN+$E00,YNLDAUNDO"}BUFR+$F00,YXSTASCREEN+$F00,YbINY lBNE.1 vLDY#203.2LDAFONTSUNDO,YSTAFONTSET,YLDABASEAUNDO,Y"}STABASEADDR,YDEY CPY#$FF BNE.2RTSGETULXYLDA#$00 STAERRGETU1LDX$2FCINX BEQ"}.1 LDA#$FF STA$2FC CPX#$1D BNE.1*JSRCLICK 4LDA#$01 >STAERRHRTSR.1JSRSTIKSUB \LD"}A$284fBNEGETU1pJSRCLICKzJSRSCR2BUFR.2LDA$284 BEQ.2 LDAMAPX STATULX STATEMP LDA"}MAPY STATULYSTATEMP+1JSRXY2ADR LDY#$00LDA(ULCADR),Y EOR#$80STA(ULCADR),YRTSGE"}TLRXYLDX#$00 STXERR $LDX$2FC.INX 8BNE.1BJMPGTLRXYL.1LDY#$FF VSTY$2FC `CPX#$1DjBNEGT"}LRXY tLDX#$01 ~STXERRJSRCLICKRTSGTLRXYLDA$278BEQGETLRXY CMP#$0F BNE.79 JMPXXX "}.79TAY AND#$01 BNE.2 LDAMAPY CMPTULYBEQGETLRXY BCCGETLRXY LDY#$0E .2TYA (AND#$"}04 2BNE.3 <LDAMAPX FCMPTULXPBEQGETLRXYZBCCGETLRXY dLDY#$0B n.3TYA xAND#$02 BNE.13 L"}DAMAPYCMPMAXROWS BEQ.44 LDY#$0D BNE.13 .44TYA ORA#$02TAY .13TYA AND#$08 BNE"}.18 LDAMAPXCMPMAXCOLS BEQ.45 LDY#$07 "BNE.18 ,.45TYA 6ORA#$08@TAY J.18TYATSTYTEMP"}2^JSRSTKSB+3hLDASTKFLAG rBNE.81 |JMPXXX.81LDA#$00STASTKFLAGLDATEMP2 AND#$01 BNE"}.5 LDXMAPYINXSTXTEMP+1 LDATULX STATEMPJSRXY2ADR LDAMAPXSEC SBCTULXTAY"}.4LDA(ULCADR),Y &EOR#$800STA(ULCADR),Y:DEY DCPY#$FF NBNE.4XINCSTKFLAG bJMPXXXl.5LDATEMP2"} vAND#$02 BNE.7 LDATULX STATEMP LDAMAPYSTATEMP+1JSRXY2ADR LDAMAPXSEC SBCTU"}LXTAY.6LDA(ULCADR),Y EOR#$80STA(ULCADR),YDEY CPY#$FF BNE.6 INCSTKFLAG *JMPXXX"}4.7LDATEMP2 >AND#$04 HBNEP9 RLDXMAPX\INX fSTXTEMP pLDATULYzSTATEMP+1.8JSRXY2ADR LDY"}#$00LDA(ULCADR),Y EOR#$80STA(ULCADR),YINCTEMP+1 LDAMAPYCMPTEMP+1 BCS.8INCSTKFLA" }G JMPXXXP9LDATEMP2 AND#$08 BNEXXX LDAMAPX STATEMP $LDATULY.STATEMP+18.10JSRXY2AD"!}R BLDY#$00LLDA(ULCADR),Y VEOR#$80`STA(ULCADR),YjINCTEMP+1 tLDAMAPY~CMPTEMP+1 BCS.10""}LDASTKFLAG BEQXXX LDAMAPX STATEMP LDAMAPYSTATEMP+1JSRXY2ADR LDY#$00LDA(ULCADR),Y"#} EOR#$80STA(ULCADR),YXXXLDA$284 BEQP12JMPGETLRXYP12JSRCLICK(.1LDA$284 2BEQ.1 <LD"$}AMAPX FSTALRX PLDAMAPY ZSTALRY dLDATULX nSTAULX xLDATULY STAULYRTS$284 2BEQ.1 <LD fSCxi" *FONTASIZERSOURCECODEPART9(2DLCONVBILDADLCONFLG <BNE.1 FJMPSVBIP.1LDY#$00ZSTYC&&}OUNTd.2LDXMODEnINXxINXTXA ORA#$C0STADMAPST,YINYLDAULCADRSTADMAPST,YINY&'}LDAULCADR+1STADMAPST,YINYINCMAXCOLSLDAULCADRCLCADCMAXCOLSSTAULCADR BCC.9"I&(}NCULCADR+1,.9DECMAXCOLS6INCCOUNT@LDACOUNTJCMPMAXROWS TBEQ.11 ^BCS.10h.11LDXMODErCMPSCR&)}NROWS,X |BEQ.2 BCC.2.10LDA#$41STADMAPST,YINYLDA#SDSPLSTSTADMAPST,YINYLDA/SDS&*}PLSTSTADMAPST,Y LDY#$0A LDA#$00LDXOLDCURY.3STA$3600,XINXDEY BPL.3 &LDXMODE0&+}LDACURLO,X:STAVBZTEMPDLDACURHI,XNSTAVBZTEMP+1 XLDY#$00 bLDXCURYl.4LDA(VBZTEMP),YvSTA$3600,&,}XINXINY CPY#$0A BNE.4 LDACURYSTAOLDCURY LDYCURX LDX#$00 LDAMODE CMP#$04 &-}BCC.5DEYINX.5STY$D000 STX$D008 LDA#$00 STADLCONFLG *JMPSVBI4FILLJSRCLICK>JSRC&.}LRWNDWSHLDA#WINDOW+$12RSTASCRNXY\LDA/WINDOW+$12fSTASCRNXY+1pLDX#BXFLzLDY/BXFLJSRPMESS&/}JSRGLBLBOX LDAERR BEQ.67JMPKEYSCANS.67LDABOXFLG BNE.1 LDA#$00 STAULX STAULYL&0}DAMAXCOLS STALRXLDAMAXROWS STALRYJSRSCR2BUFR JMPPT1$.1LDA#WINDOW+$30.STASCRNXY8LDA&1}/WINDOW+$30BSTASCRNXY+1LLDX#SULCVLDY/SULC`JSRPMESSjLDA#WINDOW+$55tSTASCRNXY~LDA/WINDOW+$55&2}STASCRNXY+1LDX#OFBOXTOLDY/OFBOXTOJSRPMESS LDX#FLL LDY/FLLJSRPMESSLDX#PSHTRIG&3}LDY/PSHTRIGJSRPMESSJSRGETULXY LDAERR BEQ.58 JMPKEYSCANS.58LDA#WINDOW+$2FSTASCRNXY&4}(LDA/WINDOW+$2F2STASCRNXY+1<LDX#SLRCFLDY/SLRCPJSRPMESSZJSRGETLRXY dLDAERR nBEQPT1xJSR&5}BUFR2SCRJMPKEYSCANSPT1JSRCLRWNDW2LDA#WINDOW+$2BSTASCRNXYLDA/WINDOW+$2BSTASCRNXY+1LD&6}X#PTTCHARLDY/PTTCHARJSRPMESSLDX#FORFILLLDY/FORFILLJSRPMESS.1JSRKGETCH2LDXNOKEY &7}CPX#$FF BEQ.1"JSRCLICK,JSRASCINT6STAFILLCHAR@JSRBOXFLJJMPKEYSCANSTSMIRRORJSRCLICK^JS&8}RCLRWNDWShLDA#WINDOW+$0FrSTASCRNXY|LDA/WINDOW+$0FSTASCRNXY+1LDX#BXMRLDY/BXMRJSRPMESS&9}JSRGLBLBOX LDAERR BEQ.68JMPKEYSCANS.68LDABOXFLG BNE.1 LDA#$00 STAULX STAULY&:}LDAMAXCOLS STALRXLDAMAXROWS &STALRY0JSRSCR2BUFR :JMPPT2D.1LDA#WINDOW+$30NSTASCRNXYXL&;}DA/WINDOW+$30bSTASCRNXY+1lLDX#SULCvLDY/SULCJSRPMESSLDA#WINDOW+$55STASCRNXYLDA/WINDOW+&<}$55STASCRNXY+1LDX#OFBOXTOLDY/OFBOXTOJSRPMESSLDX#MIRORLDY/MIRORJSRPMESSLDX#PSH&=}TRIGLDY/PSHTRIGJSRPMESS JSRGETULXY LDAERR BEQ.58*JMPKEYSCANS4.58LDA#WINDOW+$30>STAS&>}CRNXYHLDA/WINDOW+$30RSTASCRNXY+1\LDX#SLRCfLDY/SLRCpJSRPMESSzJSRGETLRXY LDAERR BEQPT2&?}JSRBUFR2SCRJMPKEYSCANSPT2JSRCLRWNDW2LDA#WINDOW+$2DSTASCRNXYLDA/WINDOW+$2DSTASCRNXY+1&@}LDX#HORVLDY/HORVJSRPMESS.2JSRGETKEY  CMP#$1B  BNE.1 JSRCLICK$ JSRBUFR2SCR. JMPKE&A}YSCANS8 .1CMP#'H B BNE.3L JSRCLICKV JSRBUFR2SCR` JSRBOXMIRH j JMP.4t .3CMP#'V ~ BNE.2 JSRCL&B}ICK JSRBUFR2SCR JSRBOXMIRV .4JMPKEYSCANS REPLACEJSRCLICK JSRCLRWNDWS LDA#WINDOW+$10 STASCR&C}NXY LDA/WINDOW+$10 STASCRNXY+1 LDX#BXREP LDY/BXREP JSRPMESS JSRGLBLBOX  LDAERR  BEQ.69&D}( JMPKEYSCANS2 .69LDABOXFLG < BNE.1 F LDA#$00 P STAULX Z STAULYd LDAMAXCOLS n STALRXx LDAMAXROW&E}S STALRY JSRSCR2BUFR JMPPT3 .1LDA#WINDOW+$30 STASCRNXY LDA/WINDOW+$30 STASCRNXY+1 LDX&F}#SULC LDY/SULC JSRPMESS LDA#WINDOW+$53 STASCRNXY LDA/WINDOW+$53 STASCRNXY+1 LDX#OFBOX4 &G}LDY/OFBOX4" JSRPMESS, LDX#RPLCE6 LDY/RPLCE@ JSRPMESSJ LDX#PSHTRIGT LDY/PSHTRIG^ JSRPMESSh JS&H}RGETULXY r LDAERR | BEQ.58 JMPKEYSCANS .58LDA#WINDOW+$30 STASCRNXY LDA/WINDOW+$30 STASCRNXY+1&I} LDX#SLRC LDY/SLRC JSRPMESS JSRGETLRXY LDAERR BEQPT3 JSRBUFR2SCR JMPKEYSCANS PT3J&J}SRCLRWNDW2 LDA#WINDOW+$2A STASCRNXY& LDA/WINDOW+$2A0 STASCRNXY+1: LDX#PTTCHARD LDY/PTTCHARN JSR&K}PMESSX LDX#TORPLCEb LDY/TORPLCEl JSRPMESSv .1JSRKGETCH2 LDXNOKEY CPX#$FF BEQ.1 JSRCLICK&L} JSRASCINT STAREPCHAR JSRCLRWNDW2 LDA#WINDOW+$2A STASCRNXY LDA/WINDOW+$2A STASCRNXY+1 L&M}DX#NTTCHAR LDY/NTTCHAR JSRPMESS LDX#TORPLCE LDY/TORPLCE JSRPMESS* LDX#QUOTES4 LDY/QUOTES>&N} JSRPMESSH LDAREPCHARR STAWINDOW+$4D\ .2JSRKGETCH2f LDXNOKEY p CPX#$FF z BEQ.2 JSRCLICK JSR&O}ASCINT STAFILLCHAR JSRCLRWNDW2 LDA#WINDOW+$31 STASCRNXY LDA/WINDOW+$31 STASCRNXY+1 LDX#REP&P}RAND LDY/REPRAND JSRPMESS .3JSRGETKEY CMP#$1B BNE.4JSRCLICKJSRBUFR2SCR$JMPKEYSCANS&Q}..4CMP#'Y 8BNE.5 BLDA#$01LSTARNDMFLAG VJMP.6`.5CMP#'N jBNE.3 tLDA#$00~STARNDMFLAG.&R}6JSRCLICKJSRBUFR2SCRJSRBOXRPLCEJMPKEYSCANSTRANSFERJSRCLICKJSRCLRWNDWSLDA#WINDOW+$0E&S}STASCRNXYLDA/WINDOW+$0ESTASCRNXY+1LDX#BXTRNSLDY/BXTRNSJSRPMESS LDA#WINDOW+$30STASC&T}RNXYLDA/WINDOW+$30(STASCRNXY+12LDX#SULC<LDY/SULCFJSRPMESSPLDA#WINDOW+$54ZSTASCRNXYdLD&U}A/WINDOW+$54nSTASCRNXY+1xLDX#OFBOXTOLDY/OFBOXTOJSRPMESSLDX#TRNSFRLDY/TRNSFRJSRPMESS&V}LDX#PSHTRIGLDY/PSHTRIGJSRPMESSJSRGETULXY LDAERR BEQ.58JMPKEYSCANS.58LDA#WINDOW+$&W}30STASCRNXYLDA/WINDOW+$30STASCRNXY+1"LDX#SLRC,LDY/SLRC6JSRPMESS@JSRGETLRXY JLDAERR&X} TBEQ.47^JSRBUFR2SCRhJMPKEYSCANSr.47JSRCLRWNDW2|LDA#WINDOW+$2DSTASCRNXYLDA/WINDOW+$2D&Y}STASCRNXY+1LDX#NMBTDOLDY/NMBTDOJSRPMESSLDA#WINDOW+$58STASCRNXYLDA/WINDOW+$58STASCR&Z}NXY+1LDX#TRNSFRLDY/TRNSFRJSRPMESSLDX#PSHTRIGLDY/PSHTRIGJSRPMESS&JSRGETNULRXY0JSR&[}CLRWNDW2:LDA#WINDOW+$2FDSTASCRNXYNLDA/WINDOW+$2FXSTASCRNXY+1bLDX#SOLIDlLDY/SOLIDvJSRPMESS&\}LDX#TRNSFRLDY/TRNSFRJSRPMESSLDX#OROVRLDY/OROVRJSRPMESSZ11JSRGETKEY CMP#$1B &]}BNE.1JSRCLICKJSRBUFR2SCRJMPKEYSCANS.1CMP#'S BNE.2 JSRCLICK LDA#$00 STAOVRFLAG &^}*JMP.34.2CMP#'O >BNEZ11HJSRCLICK RLDA#$01\STAOVRFLAGf.3JSRBUFR2SCRpJSRBXTRNSFRzJMPKE&_}YSCANSSXEROXJSRCLICKJSRCLRWNDWSLDA#WINDOW+$0FSTASCRNXYLDA/WINDOW+$0FSTASCRNXY+1LDX#&`}BXROXLDY/BXROXJSRPMESSLDA#WINDOW+$30STASCRNXYLDA/WINDOW+$30STASCRNXY+1LDX#SULC&a}LDY/SULCJSRPMESS$LDA#WINDOW+$55.STASCRNXY8LDA/WINDOW+$55BSTASCRNXY+1LLDX#OFBOXTOVLDY/OFB&b}OXTO`JSRPMESSjLDX#XROXtLDY/XROX~JSRPMESSLDX#PSHTRIGLDY/PSHTRIGJSRPMESSJSRGETULXY&c} LDAERR BEQ.58JMPKEYSCANS.58LDA#WINDOW+$30STASCRNXYLDA/WINDOW+$30STASCRNXY+1LDX#&d}SLRCLDY/SLRC JSRPMESSJSRGETLRXY LDAERR (BEQ.472JSRBUFR2SCR<JMPKEYSCANSF.47JSRCLRWNDW&e}2PLDA#WINDOW+$2DZSTASCRNXYdLDA/WINDOW+$2DnSTASCRNXY+1xLDX#NMBTDOLDY/NMBTDOJSRPMESSL&f}DA#WINDOW+$59STASCRNXYLDA/WINDOW+$59STASCRNXY+1LDX#XROXLDY/XROXJSRPMESSLDX#PSHTRIG&g}LDY/PSHTRIGJSRPMESSJSRGETNULRXYJSRCLRWNDW2LDA#WINDOW+$30STASCRNXY"LDA/WINDOW+$30,&h}STASCRNXY+16LDX#SOLID@LDY/SOLIDJJSRPMESSTLDX#XROX^LDY/XROXhJSRPMESSrLDX#OROVR|LDY/O&i}ROVRJSRPMESSZ12JSRGETKEY CMP#$1B BNE.1JSRCLICKJSRBUFR2SCRJMPKEYSCANS.1CMP#'S &j}BNE.2JSRCLICK LDA#$00STAOVRFLAG JMP.3.2CMP#'O BNEZ12JSRCLICK &LDA#$010STAO&k}VRFLAG:.3JSRBUFR2SCRDJSRBXEROXNJMPKEYSCANSXKEYSCANSJSRCLRWNDWSbLDA#WINDOW+$02lSTASCRNXYvLDA&l}/WINDOW+$02STASCRNXY+1LDX#CMNDSLDY/CMNDSJSRPMESSKEY99JSRSPSTATSJSRPROWFONTP99LDX$2&m}FCINX BNE.1LDASCONSOL CMP#$03 BNE.2 LDA#$00TAX .99STA$3600,XINX BNE.99*&n}JSRCLICK 4LDA#$00>STA$D008HJMPCHAREDR.2CMP#$06 \BNE.3fJMPSRESTRTp.3JMPSTIKCHKz.1LDASC&o}ONSOL CMP#$05BEQCHKCMNDJSRKGETCH2LDXNOKEY BEQ.77 JMPP99.77LDXESCFLAG BEQ.4JM&p}PPRINTIT.4CMP#$1B BNE.9INCESCFLAGJSRCLICK JMPP99.9LDX#$0A.5CMPEDITKEYS,X $BEQ.6&q}.DEX 8BPL.5BJMPPRINTITL.6LDAEDTCMDL,XVSTAZTEMP`LDAEDTCMDH,XjSTAZTEMP+1 tLDA#$00~STAE&r}SCFLAGJMP(ZTEMP)'EDITKEYS.HS9B1C1D1E1F7F9DFF9CFE7EkEDTCMDL.DA#RET,#CURSUP,#CURSDN,#CURSLFT,#CURSRT,#CURSTAB,#&s}INSRTLN,#INSRTCHR,#DELTLN,#DELTCHR,#BACKSPCkEDTCMDH.DA/RET,/CURSUP,/CURSDN,/CURSLFT,/CURSRT,/CURSTAB,/INSRTLN,/INSRTCHR,&t}/DELTLN,/DELTCHR,/BACKSPCCHKCMNDDEXTXA LDX#$FF STX$2FC AND#$3F LDX#$10.2CMPCMDKEYS,X &u}BEQ.3DEX BPL.2 JMPP99.3LDACMDSLO,X(STAZTEMP2LDACMDSHI,X<STAZTEMP+1 FLDA#$00PSTA&v}ESCFLAGZJMP(ZTEMP)"dCMDKEYS.HS3F123A2A383D002523n.HS0A283E2D0B2E1607xCMDSLO.DA#ASSIGN,#CHANGE.DA#SDI&w}R,#AUTOEDIT,#FILL.DA#GTIATOGL,#SLOAD.DA#SMIRROR,#NEWDRAW.DA#SPOKE,#REPLACE.DA#SSAVE,#TRANSFER.DA&x}#SUNDO,#SWRITE.DA#SXEROX,#ANIMENUCMDSHI.DA/ASSIGN,/CHANGE.DA/SDIR,/AUTOEDIT,/FILL.DA/GTIATOGL,/SLOAD&y}.DA/SMIRROR,/NEWDRAW.DA/SPOKE,/REPLACE.DA/SSAVE,/TRANSFER.DA/SUNDO,/SWRITE.DA/SXEROX,/ANIMENU&z}PRINTITPHA "LDAMAPX ,STATEMP 6LDAMAPY@STATEMP+1JJSRXY2ADR TLDY#$00^PLAhJSRASCINTrST&{}A(ULCADR),Y |LDA#$00STAESCFLAG LDAMAPXCMPMAXCOLS BEQ.1 INCMAPXJSRCLICKJSRSETULC &|}JMPP99.1JMPRETSTIKCHKJSRSTIKSUBJSRPROWFONT LDA$284 BNE.1 LDAMAPX STATEMP LDAMA&}}PY&STATEMP+10JSRXY2ADR :LDY#$00DLDADRAWCHARNJSRASCINTXSTA(ULCADR),YbJSRCLICKlJSRSPSTAT&~}Sv.1LDA$278 BEQ.2 CMP#$0F BEQ.2JMPSTIKCHK.2LDA$284 BEQ.1 JMPP99RETJSRCLICK &}LDA#$00 STAMAPX LDAMAPYCMPMAXROWS BEQ.1 INCMAPY JMPP98.1JSRDING LDA#$00 *STA&}MAPY4P98JSRSETULC>JSRPROWFONT HJMPP99RCURSUPJSRCLICK \LDAMAPY fBEQ.1 pDECMAPY zJMP.2.1&}LDAMAXROWS STAMAPY.2JMPP98CURSDNJSRCLICK LDAMAPYCMPMAXROWS BEQ.1 INCMAPY JMP.2&}.1LDA#$00 STAMAPY.2JMPP98CURSLFTJSRCLICK LDAMAPX BEQ.1 DECMAPX $JMP.2..1LDAMAXCO&}LS 8STAMAPXB.2JMPP98LCURSRTJSRCLICK VLDAMAPX`CMPMAXCOLS jBEQ.1 tINCMAPX ~JMP.2.1LDA#&}$00 STAMAPX.2JMPP98CURSTABJSRCLICK LDAMAPXCLC ADC#$06 CMPMAPX BCC.2 STAMAPX&}CMPMAXCOLS BEQ.1 BCC.1 .2LDA#$00 STAMAPX INCMAPY (LDAMAPY2CMPMAXROWS <BEQ.1 FBCC&}.1 PJSRDING ZLDA#$00 dSTAMAPYn.1JMPP98xINSRTLNJSRCLICKLDAMAXROWS STAULY CMPMAPY BEQ&}.2.3LDA#$00 STATEMP LDAULYSTATEMP+1JSRXY2ADRLDAULCADRSTAZTEMPLDAULCADR+1S&}TAZTEMP+1 LDA#$00 STATEMP LDXULY"DEX,STXTEMP+16JSRXY2ADR@LDYMAXCOLSJ.1LDA(ULCADR),Y&}TSTA(ZTEMP),Y^DEY hCPY#$FF rBNE.1 |LDYULYLDAFONTSET-1,YSTAFONTSET,YLDABASEADDR-1,YS&}TABASEADDR,Y DECULY LDAULY CMPMAPY BEQ.2 JMP.3.2LDA#$00 STATEMP LDAMAPYSTATEM&}P+1 JSRXY2ADR LDYMAXCOLS  LDA#$00& .4STA(ULCADR),Y0 DEY : CPY#$FF D BNE.4 N LDYMAPY X LDA#$0&}1b STAFONTSET,Y l LDA#$40v STABASEADDR,Y JMPKEY99,Y0 DEY : CPY#$FF D BNE.4 N LDYMAPY X LDA#$0$BSCq# *FONTASIZERSOURCECODEPART10(2INSRTCHRJSRCLICK <LDA#$00 FSTATEMP PLDAMAPYZSTATEM*}P+1dJSRXY2ADR nLDAMAPXxCMPMAXCOLS BEQ.2LDYMAXCOLS .1DEYLDA(ULCADR),YINYSTA(ULCA*}DR),YDEY CPYMAPX BNE.1.2LDYMAPX LDA#$00STA(ULCADR),YJMPKEY99DELTLNJSRCLICKLD*}AMAXROWS CMPMAPY "BEQ.2 ,LDAMAPY 6STAULY@.3LDA#$00 JSTATEMP TLDAULY^STATEMP+1hJSRXY2*}ADRrLDAULCADR|STAZTEMPLDAULCADR+1STAZTEMP+1 LDA#$00 STATEMP LDXULYINXSTXTEMP+*}1JSRXY2ADRLDYMAXCOLS.1LDA(ULCADR),YSTA(ZTEMP),YDEY CPY#$FF BNE.1 LDYULYLDAF*}ONTSET+1,Y&STAFONTSET,Y0LDABASEADDR+1,Y:STABASEADDR,Y DINCULY NLDAULYXCMPMAXROWS bBEQ.2 lJ*}MP.3v.2LDA#$00 STATEMPLDAMAXROWSSTATEMP+1JSRXY2ADRLDYMAXCOLS LDA#$00.4STA(ULCAD*}R),YDEY CPY#$FF BNE.4LDYMAXROWS LDA#$01STAFONTSET,Y LDA#$40 STABASEADDR,YJMPK*}EY99 DELTCHRJSRCLICK *LDA#$00 4STATEMP >LDAMAPYHSTATEMP+1RJSRXY2ADR \LDAMAPXfCMPMAXCOLS *}pBEQ.2 zLDYMAPX .1INYLDA(ULCADR),YDEYSTA(ULCADR),YINYCPYMAXCOLS BNE.1.2LDYM*}AXCOLS LDA#$00STA(ULCADR),YJMPKEY99BACKSPCJSRCLICK LDAMAPX BNE.3LDAMAXCOLS STAMAP*}X $LDAMAPY .BEQ.2 8DECMAPY BJMP.1L.2JSRDINGVLDAMAXROWS `STAMAPY jJMP.1t.3DECMAPX~.1*}JSRSETULC LDAMAPX STATEMP LDAMAPYSTATEMP+1JSRXY2ADR LDA#$00TAYSTA(ULCADR),Y*}JSRSPSTATSJMPKEY99 DINGPHATYAPHA TXAPHA LDA#$10(STA$D200 2LDA#$AF<STACOUNT*}F.1LDACOUNTPSTA$D201 ZLDX#$FF dLDY#$10nJSRPAUSExDECCOUNTLDACOUNT CMP#$9F BNE.1 *}LDA#$00STA$D200STA$D201PLATAXPLATAYPLARTSCLRWNDWSLDA#WINDOWSTAZTEMP*}LDA/WINDOWSTAZTEMP+1 "LDA#$00 ,LDY#$776.1STA(ZTEMP),Y@DEY JBPL.1TRTS^CLRWNDW2LDA#WINDO*}W+$28hSTAZTEMPrLDA/WINDOW+$28|STAZTEMP+1 LDA#$00 LDY#$4F.1STA(ZTEMP),YDEY BPL.1*}RTS GETNULRXY LDATULX STANULX LDATULY STANULY LDAMAPX STANLRX LDAMAPY STANLRYG*}ETN1LDA#$00&STASTKFLAG 0LDA$278:BEQGETN1 DCMP#$0F NBNE.12 XJMPXX11 b.12TAY lAND#$01 vBN*}E.1 LDANULY BEQ.44 LDY#$0E BNE.2 .44TYA ORA#$01TAY JMP.1.2INCSTKFLAG .1TYA*} AND#$02 BNE.3 LDAMAPYCMPMAXROWS BEQ.45 LDY#$0D BNE.4 *.45TYA 4ORA#$02>TAY H*}JMP.3R.4INCSTKFLAG \.3TYA fAND#$04 pBNE.5 zLDANULX BEQ.46 LDY#$0B BNE.6 .46TYA OR*}A#$04TAY JMP.5.6INCSTKFLAG .5TYA AND#$08 BNE.7 LDAMAPXCMPMAXCOLS  BEQ.47  LD*}Y#$07  BNE.8 $ .47TYA . ORA#$088 TAY B JMP.7L .8INCSTKFLAGV .7LDASTKFLAG ` BNEPPP9j XX11LDA$28*}4 t BEQ.10~ JMPGETN1 .10JSRCLICK .13LDA$284 BEQ.13 LDATULX STAULX LDATULY STAULY *} LDAMAPX STANLRX LDAMAPY STANLRY RTS PPP9TYA PHA JSRSTKSB+3  LDA#$FF ( STA$2FC2 P*}LA< STATEMP2 F AND#$01 P BNE.1 Z DECNULY d LDANULYn STATEMP+1 x LDANULX STATEMP JSRXY2ADR*} LDAULCADR STAZTEMP LDAULCADR+1 STAZTEMP+1 LDXMAPY INX STXTEMP+1 LDANULX STATEMP *}JSRXY2ADR LDAMAPX SEC  SBCNULX TAY" .2LDA(ZTEMP),Y , EOR#$806 STA(ZTEMP),Y@ LDA(ULCADR),Y *}J EOR#$80T STA(ULCADR),Y^ DEY h CPY#$FF r BNE.2 | JMPXX11 .1LDATEMP2 AND#$02 BNE.3 LDAM*}APY STATEMP+1 LDANULX STATEMP JSRXY2ADR LDAULCADR STAZTEMP LDAULCADR+1 STAZTEMP+1 *}LDANULY  INCNULY STATEMP+1  LDANULX & STATEMP0 JSRXY2ADR : LDAMAPXD SEC N SBCNULXX TAYb .*}4LDA(ZTEMP),Y l EOR#$80v STA(ZTEMP),Y LDA(ULCADR),Y EOR#$80 STA(ULCADR),Y DEY CPY#$FF BN*}E.4 JMPXX11 .3LDATEMP2 AND#$04 BNEPP5 LDAMAPY PHA STATEMP+1  LDXMAPX INX  STXT*}EMP JSRXY2ADR* LDAULCADR4 STAZTEMP> LDAULCADR+1H STAZTEMP+1 R LDAMAPY\ STATEMP+1 f DECNULX p *}LDANULX z STATEMP JSRXY2ADR .9LDY#$00 LDA(ZTEMP),Y EOR#$80 STA(ZTEMP),Y LDA(ULCADR),Y *}EOR#$80 STA(ULCADR),Y INCMAXCOLS LDAULCADR SEC SBCMAXCOLS STAULCADR BCS.6DECULCADR+1*}.6LDAZTEMP$SEC.SBCMAXCOLS8STAZTEMP BBCS.7LDECZTEMP+1V.7DECMAXCOLS `DECMAPY jLDAMAPY*} tCMPNULY ~BMIPP8 JMP.9 PP8PLA STAMAPYPP5LDATEMP2 AND#$08 BEQ.14JMPGETN1.14L*}DANULX STATEMP INCNULX LDAMAPYPHASTATEMP+1 JSRXY2ADRLDAULCADRSTAZTEMP(LDAULC*}ADR+12STAZTEMP+1 <LDAMAPX FSTATEMP PLDAMAPYZSTATEMP+1dJSRXY2ADRn.13LDY#$00xLDA(ZTEMP),Y*} EOR#$80STA(ZTEMP),YLDA(ULCADR),Y EOR#$80STA(ULCADR),YINCMAXCOLSLDAZTEMPSECS*}BCMAXCOLSSTAZTEMP BCS.10DECZTEMP+1.10LDAULCADRSECSBCMAXCOLSSTAULCADR "BCS.11,*}DECULCADR+16.11DECMAXCOLS @DECMAPY JLDAMAPY TCMPNULY ^BMI.12 hJMP.13 r.12PLA |STAMAPYJ*}MPGETN1SDIRJSRCLICK LDA#$00 STA$22F STABUFSTACOUNTLDA/BUFFERSTABUF+1JSRCLRWNDWS*} LDA#$10TAYTAXJSRPAUSETAX LDA#$0CSTA$342,X&JSR$E456 0BPL.1:.2JMPPROCERRS*}D.1LDX#$10 NLDA#$03XSTA$342,XbLDA#STARSCRlSTA$344,XvLDA/STARSCRSTA$345,X LDA#$06ST*}A$34A,X LDA#$00STA$34B,XJSR$E456 BMI.2READIRSLDX#$10 LDA#$05STA$342,X LDABUF*}STA$344,XLDABUF+1STA$345,X LDA#$12STA$348,X LDA#$00*STA$349,X4JSR$E456 >BPL.1H*}JMPPROCERRSR.1LDY#$00\LDA(BUF),Y fCMP#$3A pBPL.44 zCMP#$30BPLREADONES.44LDABUFCLC *}ADC#$11 STABUF BCC.2INCBUF+1.2INCCOUNTJMPREADIRSREADONESLDX#$10 LDA#$0CSTA$34*}2,XJSR$E456 BPL.1JMPPROCERRS.1LDA#$C0$STA$D40E .LDA#$2E 8STA$22FBLDACOUNT LBNE.2*}VJMPNOFILESS`.2LDA#WINDOW+$0FjSTASCRNXYtLDA/WINDOW+$0F~STASCRNXY+1 LDA#$00STATEMP3 ST*}ATEMP STABUFLDA/BUFFERSTABUF+1.3LDY#$0A LDA#$9BSTA(BUF),Y LDXBUFLDYBUF+1JS*}RPMESS LDABUF CLC ADC#$11 STABUF (BCC.42INCBUF+1<.4LDY#$10FLDA(BUF),Y PCMP#$9B Z*}BNE.5dJMPSPFREEn.5LDATEMP3 xCMP#$05 BNE.6LDASCRNXYPHALDASCRNXY+1PHA JSRPAK*}PLASTASCRNXY+1PLASTASCRNXYJSRGETKEYJSRCLICK CMP#$1B BNE.9JMPKEYSCANS.9JSR*}SDISPUP "JMP.3,.6LDA#$026STATEMP1 @LDATEMP JBEQ.7 TDECTEMP ^LDA#$12hSTATEMP1 rJMP.8*}|.7INCTEMP.8LDASCRNXYCLCADCTEMP1STASCRNXYINCTEMP3 JMP.3SPFREELDY#$02.1LDA(BU*}F),YSTAFREE,YDEY BPL.1LDATEMP3 CMP#$05 BNE.3LDASCRNXYPHA&LDASCRNXY+10PHA*} :JSRPAKDPLANSTASCRNXY+1XPLAbSTASCRNXYlJSRGETKEYvJSRCLICK CMP#$1B BNE.10JMPKEY*}SCANS.10JSRSDISPUPINCSCRNXYINCSCRNXY JMP.2.3LDA#$04STATEMP1 LDATEMP BEQ.4 DE*}CTEMP LDA#$14STATEMP1 JMP.5.4INCTEMP .5LDASCRNXY*CLC4ADCTEMP1>STASCRNXYH.2LDX#*}FREERLDY/FREE\JSRPMESS fJSRPAKpJSRGETKEYzJSRCLICKJMPKEYSCANSNOFILESSJSRCLRWNDWSLDA#*}WINDOW+$32STASCRNXYLDA/WINDOW+$32STASCRNXY+1LDX#NOSCRLDY/NOSCRJSRPMESSJSRHONK2 *}LDA#$00 STA$14 STA$13.1CMP$13 BNE.2 LDX$2FC$INX .BEQ.18.2JMPKEYSCANSBSCNDINITLDA*}#$00 LSTA$22F VSTAMAPX `STAMAPY jSTAMODEtSTAFRAMENUM~STAGTIAMODESTAGTIAINDX LDX#$7F.*}10STAULXTAB,XSTAULYTAB,XDEX CPX#$FF BNE.10 LDA#$40 STAKB LDA#$C0STA$D40E LDA*}#'ASTADRAWCHAR LDA#$02STACURSPD LDA#39(STAMAXCOLS 2LDA#23<STAMAXROWSFJSRSPSTATS P*}LDA#$00ZSTAZTEMP dSTABUFnSTASCRNXYxLDA/SCREENSTAZTEMP+1LDA/UNDOBUFRSTABUF+1LDA/BU*}FFERSTASCRNXY+1.1LDY#$00 LDA#$00.2STA(ZTEMP),YSTA(BUF),YSTA(SCRNXY),YINY BNE.2*}INCZTEMP+1INCBUF+1INCSCRNXY+1LDA/BUFFER"CMPBUF+1 ,BNE.1 6LDA#$05@STAFWIDTHJSTAFH*}EIGHT TLDY#203^.3LDA#$01hSTAFONTSET,YrSTAFONTSUNDO,Y |LDA#$40LDXGRFLAG BEQ.44 LDA#$42*}.44STABASEADDR,YSTABASEAUNDO,YDEY CPY#$FF BNE.3RTSSCRNEDLDX#$00 STX$22F LDA$14*}.9CMP$14 BEQ.9 LDA#$01STASVBIFLAG &LDA#$340STA$D407 :LDX#$00DTXAN.1STA$3600,XX*}STA$3700,XbINX lBNE.1 vLDA#$03STA$D01DJSRSETULC LDA#$82 STA$2C6LDA#SDSPLST STA*}$230LDA/SDSPLST STA$231LDACRNTFONTSTAPIKDFONTJSRSWITCHFONTSLDA$D301 AND#$C3 ORA#*}$10 STA$D301.2LDASCONSOL CMP#$03 *BEQ.2 4LDA#$2E >STA$22FHJMPKEYSCANSRSDISPUPLDA#WINDOW*}+$0F\STAULCADRfLDA/WINDOW+$0FpSTAULCADR+1zLDA/WINDOW+$37STAZTEMP1+1LDA/WINDOW+$5FSTAZTE*}MP+1LDA#WINDOW+$37STAZTEMP1LDA#WINDOW+$5FSTAZTEMP LDY#$15.1LDA(ZTEMP1),YSTA(ULCADR),*}YLDA(ZTEMP),YSTA(ZTEMP1),Y LDA#$00STA(ZTEMP),YDEY BPL.1$LDA#WINDOW+$5F.STASCRNXY*}8LDA/WINDOW+$5FBSTASCRNXY+1 LLDA#$00 VSTATEMP `LDA#$04jSTATEMP3tRTS~PAKLDA#WINDOW+$05S*}TASCRNXYLDA/WINDOW+$05STASCRNXY+1LDX#PRESSLDY/PRESSJSRPMESSLDA#WINDOW+$2ESTASCRNXY*}LDA/WINDOW+$2ESTASCRNXY+1 LDX#ANY LDY/ANYJSRPMESS LDA#WINDOW+$56STASCRNXYLDA/WIN*}DOW+$56(STASCRNXY+1 2LDX#KEY <LDY/KEYFJSRPMESSPRTSMESS LDA#WINDOW+$56STASCRNXYLDA/WIN(ISC# *FONTASIZERSOURCECODEPART11(2SPOKEJSRCLICK<JSRCLRWNDWSFLDA#WINDOW+$0FPSTASCRNXY.}ZLDA/WINDOW+$0FdSTASCRNXY+1nLDX#SPKExLDY/SPKEJSRPMESS.8LDA#WINDOW+$2ASTASCRNXYLDA/W.}INDOW+$2ASTASCRNXY+1 LDX#WCR LDY/WCRJSRPMESS.1JSRGETKEY CMP#$1B BNE.2JSRCLICK.}JMPKEYSCANS.2CMP#'B BNE.3 LDA#$04 "JMP.4,.3CMP#'0 6BCC.1 @CMP#'4 JBCS.1T.4JSRCLIC.}K^STAEVR+$19 hAND#$0FrSTATEMP3|JSRCLRWNDW2.99LDATEMP3 CMP#$04 BEQ.9LDA#WINDOW+$2C.}STASCRNXYLDA/WINDOW+$2CSTASCRNXY+1 LDX#EVR LDY/EVRJSRPMESSLDA#WINDOW+$48STAZTEMP.}LDA/WINDOW+$48 JMP.5.9LDA#WINDOW+$2ESTASCRNXY&LDA/WINDOW+$2E0STASCRNXY+1 :LDX#EVC DLDY.}/EVCNJSRPMESSXLDA#WINDOW+$46bSTAZTEMPlLDA/WINDOW+$46v.5STAZTEMP+1JSRGETDECVAL LDAERR .}BEQ.6 CMP#$01 BEQ.98JSRHEXBIN JMP.97.98JSRCLRWNDW2 JMP.8.6JSRCHK255 LDAERR BE.}Q.7JSRHONK2LDATEMP3 JMP.99.7JSRDECBIN .97LDATEMP*LDXTEMP34STA$600,X>JMPKEYSCANS.}HCHANGEJSRCLICKRJSRCLRWNDWS\LDA#WINDOW+$0BfSTASCRNXYpLDA/WINDOW+$0BzSTASCRNXY+1LDX#CHNGE.}LDY/CHNGEJSRPMESSLDA#WINDOW+$30STASCRNXYLDA/WINDOW+$30STASCRNXY+1LDX#MRCSLDY/MRC.}SJSRPMESSLDA#WINDOW+$5ASTASCRNXYLDA/WINDOW+$5ASTASCRNXY+1LDX#PESCLDY/PESC$JSRP.}MESS..1JSRGETKEY 8CMP#$1B BBNE.2LJSRCLICKVJMPKEYSCANS`.2CMP#'M jBNE.3tJMPCMODE~.3CMP.}#'S BNE.4JMPCSPEED.4CMP#'R BNE.5JMPCROWS.5CMP#'C BNE.1JMPCCOLSCMODEJSRCLI.}CKJSRCLRWNDW2LDA#WINDOW+$32STASCRNXYLDA/WINDOW+$32 STASCRNXY+1 LDA#$32STAENM+$10 (.}STATEMP2LDAMAXCOLS <CMP#$27 FBCS.99 PLDA#$36ZSTAENM+$10 dSTATEMPn.99LDX#ENM xLDY/ENM.}JSRPMESS LDXMODEINXINXTXA ORA#$30STACM+$11LDA#WINDOW+$5ASTASCRNXYLDA/WINDOW.}+$5ASTASCRNXY+1 LDX#CM LDY/CMJSRPMESS.1JSRGETKEY CMP#$1B "BNE.2,JMPCHANGE6.2CMP.}TEMP @BCC.1 JCMP#'8 TBCS.1 ^AND#$0FhTAXrDEX|DEX STXMODEJSRCLICKJSRSETULCJS.}RSPSTATSJMPCHANGE+3CSPEEDJSRCLICKJSRCLRWNDW2LDA#WINDOW+$31STASCRNXYLDA/WINDOW+$31ST.}ASCRNXY+1LDX#ENSPDLDY/ENSPDJSRPMESSLDACURSPD ORA#$30&STACS+$120LDA#WINDOW+$5A:STA.}SCRNXYDLDA/WINDOW+$5ANSTASCRNXY+1 XLDX#CS bLDY/CSlJSRPMESSv.1JSRGETKEY CMP#$1B BNE.2.}JMPCHANGE.2CMP#'1 BCC.1 CMP#'4 BCS.1 AND#$0FSTACURSPDJMPCHANGEDIV16BY8STXTEMP.}STYTEMP+1TXAORATEMP+1 BEQ.2 LDA#$00 STA$685 *LDX#$FF4.1LDA$685 >BEQ.3 HCPX#$.}FF RBEQ.2 \.3INX fLDA#$01 pSTA$685 zLDATEMPSECSBCTEMP1 STATEMPLDATEMP+1SBCTEMP.}1+1STATEMP+1 BCS.1.2STXTEMPRTSMULT8BITSTXTEMPSTYTEMP+1CPXTEMP+1 BCC.3 STXTE/}MP+1  STYTEMP .3LDA#$00$ STATEMP1. STATEMP1+1 8 LDATEMP B BEQ.4L LDATEMP+1 V BEQ.4 ` LDXTEMP/}j .1LDATEMP1t CLC~ ADCTEMP+1 STATEMP1 BCC.2 INCTEMP1+1 .2DEX BNE.1 .4RTS ` LDXTEMP,pSCk# *FONTASIZERSOURCECODEPART12(2SRESTRTJSRCLICK<JSRCLRWNDWSFLDA#WINDOW+$0BPSTASCRNXY3}ZLDA/WINDOW+$0BdSTASCRNXY+1nLDX#SRSTRTxLDY/SRSTRTJSRPMESSLDA#WINDOW+$32STASCRNXYLD3}A/WINDOW+$32STASCRNXY+1LDX#RUSURELDY/RUSUREJSRPMESSLDX#YORNLDY/YORNJSRPMESS.13}JSRGETKEY CMP#'N BNE.2JSRCLICKJMPKEYSCANS".2CMP#'Y ,BNE.16JSRCLICK@JSRSCNDINITJ3}JSRINITRS TLDA#$2E ^STA$22FhJMPSCRNEDrSLOADJSRCLICK|JSRCLRWNDWSLDA#WINDOW+$10STASCRNXY3}LDA/WINDOW+$10STASCRNXY+1LDX#LDSCRLDY/LDSCRJSRPMESSLDA#WINDOW+$29STASCRNXYLDA/WI3}NDOW+$29STASCRNXY+1LDX#EFFLLDY/EFFLJSRPMESSLDA#WINDOW+$41STASCRNXY&LDA/WINDOW+$4103 }STASCRNXY+1 :LDA#$03DSTARITETYPENJSRPHEDR2XLDX#FNPRMPTbLDY/FNPRMPTlJSRPMESSvLDA#WINDOW+$3 }42STAZTEMPLDA/WINDOW+$42STAZTEMP+1LDA#DOTSCRSTAZTEMP1LDA/DOTSCRSTAZTEMP1+1JSR3 }GETFNAME LDAERR BEQ.1JMPKEYSCANS.1LDA#$00 STA$22F LDX#$10 LDY#$10JSRPAUSE LDA3 }#$04*JSRRWOPEN 4BPL.2>JMPPROCERRSH.2LDA#$07RJSRRWSTATS \BPL.3fJMPPROCERRSp.3LDABUFFER3 }zTAY AND#$60LSRLSRLSRLSRLSRSTAGTIAINDXTAXLDAGTIATABL,XSTAGTIAMODE3}TYA AND#$0FTAYDEYDEY STYMODE$LDABUFFER+1.STAMAXCOLS8LDABUFFER+2BSTAMAXROWS LL3}DX#$04V.4LDABUFFER+3,X`STA$600,XjDEX tBPL.4~LDXMAXCOLSLDYMAXROWSINXINYJSRMULT8B3}IT LDA#$07JSRRWSCRN BPL.5.6JMPPROCERRS.5LDA#$07JSRRWULXY BMI.6 LDA#$07JSRRW3}FONTAB BMI.6 LDA#$07JSRRWBYTE (BMI.62STAFWIDTH <LDA#$07FJSRRWBYTE PBMI.6ZSTAFHEIGH3}TdJSRREADXLE nLDAERR xBNE.6.7LDA#$0C LDX#$10STA$342,XJSR$E456 BMI.6JSRSCR2BUFR3} LDA#$C0STA$D40E LDA#$2E STA$22F LDAMAPXCMPMAXCOLS BEQXX1 BCCXX1LDAMAXCOLS 3}STAMAPX"XX1LDAMAPY,CMPMAXROWS 6BEQ.78 @BCC.78JLDAMAXROWS TSTAMAPY^.78JSRSPSTATShJSRSE3}TULCrJMPKEYSCANS|SSAVEJSRCLICKJSRCLRWNDWSLDA#WINDOW+$10STASCRNXYLDA/WINDOW+$10STASCRN3}XY+1LDX#SVSCRLDY/SVSCRJSRPMESSLDA#WINDOW+$29STASCRNXYLDA/WINDOW+$29STASCRNXY+13}LDX#EFFSLDY/EFFSJSRPMESSLDA#WINDOW+$41&STASCRNXY0LDA/WINDOW+$41:STASCRNXY+1 DLDA#$03N3}STARITETYPEXJSRPHEDR2bLDX#FNPRMPTlLDY/FNPRMPTvJSRPMESSLDA#WINDOW+$42STAZTEMPLDA/WIND3}OW+$42STAZTEMP+1LDA#DOTSCRSTAZTEMP1LDA/DOTSCRSTAZTEMP1+1JSRGETFNAME LDAERR BEQ.3}1JMPKEYSCANS.1LDA#$00 STA$22F LDA#$10TAX TAY*JSRPAUSE 4LDA#$08>JSRRWOPEN HBPL3}.2RJMPPROCERRS\.2LDX#$CB fLDA#$01p.91STAFONTSET,XzDEXCPXMAXROWS BNE.91JSRANALYZE 3}LDXMODEINXINXLDACOUNTER CMP#$02 BMI.80TXA ORA#$80TAX.80STXTEMP LDAGTIAI3}NDX ASL ASL$ ASL. ASL8 ASL B ORATEMPL TAXV STXBUFFER` LDXMAXCOLSj LDYMAXROWSt STXBUFFE3}R+1~ STYBUFFER+2 INX INY JSRMULT8BIT LDX#$04 .3LDA$600,X STABUFFER+3,X DEX BPL.3 3}LDA#$9B STABUFFER+8 LDA#$0B JSRRWSTATS BPL.4 JMPPROCERRS .4LDA#$0B JSRRWSCRN ( BPL.53 }2 .6JMPPROCERRS< .5LDA#$0BF JSRRWULXY P BMI.6 Z LDA#$0Bd JSRRWFONTAB n BMI.6 x LDA#$0B LDYFWI3!}DTH JSRRWBYTE BMI.6 LDA#$0B LDYFHEIGHT JSRRWBYTE BMI.6 JSRWRITEXLE LDAERR BNE.63"} LDA#$0C LDX#$10 STA$342,X JSR$E456  BMI.6  LDA#$C0" STA$D40E , LDA#$2E 6 STA$22F@ JM3#}PKEYSCANSJ SPSTATSLDXMAPXT INX^ TXAh JSRBINDECr LDX#STATS+$03| LDY/STATS+$03 JSRPDEC LDXMAPY3$} INX TXA JSRBINDEC LDX#STATS+$09 LDY/STATS+$09 JSRPDEC LDAMAPX STATEMP LDAMAPY 3%}STATEMP+1 JSRXY2ADR  LDY#$00 LDA(ULCADR),Y STASTATS+$12& LDADRAWCHAR0 JSRASCINT: STASTATS+$13&}9 D LDAKBN LSRX LSRb LSRl LSRv LSR TAY LDAKBS,Y ORAINVFLG STASTATS+$1E INY LDAK3'}BS,Y ORAINVFLG STASTATS+$1F LDXMODE INX INX TXA ORA#$10 STASTATS+$26 RTS SWRITEJ3(}SRCLICK JSRCLRWNDWS* LDA#WINDOW+$094 STASCRNXY> LDA/WINDOW+$09H STASCRNXY+1 R LDX#WDS \ LDY/WDS3)}f JSRPMESSp LDA#WINDOW+$2Fz STASCRNXY LDA/WINDOW+$2F STASCRNXY+1 LDX#SDST LDY/SDST JSRPMES3*}S LDA#WINDOW+$54 STASCRNXY LDA/WINDOW+$54 STASCRNXY+1 LDX#EASA LDY/EASA JSRPMESS LDA#3+}'M+$60STAWINDOW+$54LDA#WINDOW+$5FSTASCRNXY$LDA/WINDOW+$5F.STASCRNXY+18LDX#SYNABLDY/SYNA3,}LJSRPMESSVLDA#'S+$60`STAWINDOW+$5FjLDA#WINDOW+$6FtSTASCRNXY~LDA/WINDOW+$6FSTASCRNXY+13-}LDX#BASALDY/BASAJSRPMESSLDA#'B+$60STAWINDOW+$6FPP3JSRGETKEY CMP#$1B BNE.1JSRC3.}LICKJMPKEYSCANS.1LDX#$00 CMP#'S BEQ.6INX CMP#'M (BEQ.62INX <CMP#'B FBNEPP3P3/}.6STXRITETYPEZ.2JSRCLICKdJSRCLRWNDW2nJSRPHEDR2xLDA#WINDOW+$28STASCRNXYLDA/WINDOW+$28S30}TASCRNXY+1LDX#EFFWLDY/EFFWJSRPMESSLDA#WINDOW+$41STASCRNXYLDA/WINDOW+$41STASCRNXY+131}LDX#FNPRMPTLDY/FNPRMPTJSRPMESSLDA#WINDOW+$42STAZTEMPLDA/WINDOW+$42"STAZTEMP+1,LD32}XRITETYPE6LDADOTABL,X@STAZTEMP1JLDADOTABH,XTSTAZTEMP1+1^JSRGETFNAME hLDAERR rBEQPP4|JMP33}SWRITE+3PP4JSRCLRWNDW2JSRPHEDR2LDA#WINDOW+$2FSTASCRNXYLDA/WINDOW+$2FSTASCRNXY+1LDX34}#ESLNLDY/ESLNJSRPMESS LDA#$05STAMXDIGITS LDA#$01STARITEFLAGSTATYPEFLAGLDA#WINDO35}W+$43STAZTEMP&LDA/WINDOW+$430STAZTEMP+1:.52LDX$2FCDINX NBEQ.52 XCPX#$0D bBNE.50lJSR36}CLICK vLDA#$FF STA$2FC JMP.54.50LDA#$00 LDX#$04.51STAWINDOW+$43,XDEX BPL.51JSR37}GETDECVAL LDAERR BEQ.5 CMP#$03 BNE.9.54LDA#'0 LDX#$04 .53STADECSTRG2,XDEX BPL.538}3 *LDA#'24STADECSTRG2+1 >BNE.5H.9JMPSWRITE+3R.5JSRCHK65535 \LDAERR fBEQ.7p.8JSRHONK2 z39}JMPPP4.7JSRDECBIN2 LDATEMPORATEMP+1 BEQ.8 LDATEMPSTALINENOLDATEMP+1STALINENO+13:}PNT88JSRCLRWNDW2LDA#WINDOW+$2DSTASCRNXYLDA/WINDOW+$2DSTASCRNXY+1LDX#ELNILDY/ELNI3;}JSRPMESS$LDA#WINDOW+$44.STASCRNXY8LDA/WINDOW+$44BSTASCRNXY+1LLDX#PRMPT4VLDY/PRMPT4`JSRPM3<}ESSjLDA#WINDOW+$45tSTAZTEMP~LDA/WINDOW+$45STAZTEMP+1 LDA#$04STAMXDIGITS LDA#$01STA3=}RITEFLAGSTATYPEFLAGCHKEYLDX$2FCINXBEQCHKEY CPX#$0D BNE.61JSRCLICK LDA#$FF STA3>}$2FC JMP.62.61LDA#$00 (LDX#$032.63STAWINDOW+$45,X<DEX FBPL.63PJSRGETDECVAL ZLDAERR d3?}BEQ.22 nCMP#$03 xBNE.15.62LDA#$0A STAINC LDA#$00STAINC+1 BEQ.11.15JMPPP4.22JSR3@}CHK65535 LDAERR BEQ.10.66JSRHONK2JMPPNT88.10JSRDECBIN2LDATEMP+1 CMP#$04 BCC.97 3A}JMP.66".97STAINC+1 ,LDATEMP 6CMP#$E9 @BCC.96 JJMP.66T.96STAINC ^LDATEMPhORATEMP+1 r3B}BNE.11 |JMP.66.11JSRCLRWNDW2LDA#WINDOW+$33STASCRNXYLDA/WINDOW+$33STASCRNXY+1LDX#CORR3C}ECTLDY/CORRECTJSRPMESS.12JSRGETKEY CMP#$1B BNE.13JSRCLICKJMPKEYSCANS.13CMP#'Y 3D}BNE.14JSRCLICK&JMPSOPENIT0.14CMP#'N :BNE.12DJSRCLICKNJMPSWRITE+3XSOPENITLDA#$00 bST3E}A$22F lLDA#$10vTAXTAYJSRPAUSETAX LDA#$03STA$342,XLDA#FILENAMESTA$344,XLD3F}A/FILENAMESTA$345,X LDA#$08STA$34A,X LDA#$00STA$34B,XJSR$E456 BPL.1JMPPROCERRS3G} .1LDAMAXROWS *STALRY 4LDA#$00 >STAULY HSTABUFRLDA/BUFFER\STABUF+1 fLDA#$00pSTATEMP33H}zRITE16LDATEMP3 STATEMP LDAULYSTATEMP+1JSRXY2ADRLDXLINENOLDYLINENO+1JSRBINDEC2 3I}LDY#$04.2LDADECSTRG2,YSTA(BUF),YDEY BPL.2 LDABUFCLC ADC#$05 STABUF$LDXRITETY3J}PE.LDADRCTVEL,X8STAZTEMPBLDADRCTVEH,XLSTAZTEMP+1 VLDY#$07`.3LDA(ZTEMP),YjSTA(BUF),YtDEY3K} ~BPL.3 LDABUFCLC ADC#$08 STABUFLDAMAXCOLSLDXRITETYPESECSBCTEMP3CMPMAXVA3L}LS,X BCS.4STATEMP2 LDA#$01STAEOLFLAG JMP.5.4LDA#$00STAEOLFLAG(LDAMAXVALS,X2TA3M}X<DEXFSTXTEMP2P.5LDXRITETYPEZLDACONSTL,XdSTAZTEMPnLDACONSTH,XxSTAZTEMP+1JMP(ZTEMP)3N}RETRNLDX#$10 LDA#$09STA$342,X LDA#$00STA$344,XLDA/BUFFERSTA$345,X LDA#$79STA$3O}348,X LDA#$00STA$349,XJSR$E456 BPL.2JMPPROCERRS.2LDALINENO"CLC ,ADCINC6STALINE3P}NO@LDALINENO+1JADCINC+1TSTALINENO+1^LDAEOLFLAG hBNE.1rLDXRITETYPE|LDATEMP3CLCADC3Q}MAXVALS,XSTATEMP3 LDA#$00 STABUFJMPRITE16.1LDA#$00STATEMP3 STABUF INCULY LDA3R}LRY CMPULYBCCCLOSEITSJMPRITE16CLOSEITSLDX#$10 LDA#$0C&STA$342,X0JSR$E456 :BPL.1D3S}JMPPROCERRSN.1LDA#$2E XSTA$22FbJMPKEYSCANSlCONSYNSLDA#$00vSTACOUNT.1LDYCOUNTLDA(ULCADR)3T},YJSRBINHEX LDY#$00LDAHEXSTRGCLC ADC#$20STA(BUF),Y INCBUFLDAHEXSTRG+1CLC 3U}ADC#$20STA(BUF),Y INCBUF INCCOUNTLDACOUNT CMPTEMP2 *BEQ.1 4BCC.1 >LDA#$9BHSTA(B3V}UF),YRJMPRETRN\CONEACSLDA#$00fSTACOUNTp.1LDYCOUNTzLDA(ULCADR),YJSRBINHEX LDY#$00 LDA3W}#'$STA(BUF),Y INCBUFLDAHEXSTRGCLC ADC#$20STA(BUF),Y INCBUFLDAHEXSTRG+1CLC 3X}ADC#$20STA(BUF),Y INCBUFINCCOUNT$LDACOUNT.CMPTEMP2 8BEQ.3 BBCS.2L.3LDA#',VSTA3Y}(BUF),Y `INCBUF jJMP.1t.2LDA#$9B~STA(BUF),YJMPRETRNCONBASSLDA#$00STACOUNT.1LDYCOUNT3Z}LDA(ULCADR),YJSRBINDEC LDX#$00 LDY#$00.2LDADECSTRG,X BEQ.3 ORA#$20STA(BUF),Y 3[}INCBUF .3INX CPX#$03 BNE.2(INCCOUNT2LDACOUNT<CMPTEMP2 FBEQ.5 PBCS.4Z.5LDA#',dS3\}TA(BUF),Y nINCBUF xJMP.1.4LDA#$9BSTA(BUF),YJMPRETRNNEWDRAWJSRCLICKJSRCLRWNDWSLDA3]}#WINDOW+$07STASCRNXYLDA/WINDOW+$07STASCRNXY+1LDX#SNDCLDY/SNDCJSRPMESSLDA#WINDOW+$2C3^}STASCRNXYLDA/WINDOW+$2CSTASCRNXY+1"LDX#PTNDC,LDY/PTNDC6JSRPMESS@.1JSRKGETCH2JLDXNO3_}KEY TBNE.1^JSRCLICKhSTADRAWCHARrJSRSPSTATS|JMPKEYSCANSRWOPENLDX#$10STA$34A,X LDA3`}#$03STA$342,XLDA#FILENAMESTA$344,XLDA/FILENAMESTA$345,X LDA#$00STA$34B,XJMP$E43a}56RWSTATSLDX#$10 STA$342,X  LDA#$00 STA$344,X& LDA/BUFFER0 STA$345,X : LDA#$08D STA$348,X3b} N LDA#$00X STA$349,Xb JMP$E456l RWSCRNLDX#$10v STA$342,X LDA#SCREEN STA$344,X LDA/SCREEN3c} STA$345,X LDATEMP1 STA$348,X LDATEMP1+1 STA$349,X JMP$E456 RWULXYLDX#$10 STA$342,X 3d}LDA#ULXTAB STA$344,X!LDA/ULXTAB !STA$345,X !LDA#$00 !STA$348,X *!LDA#$014!STA$349,X>!JMP$E43e}56#ULXTAB STA$344,X!LDA/ULXTAB !STA$345,X !LDA#$00 !STA$348,X *!LDA#$014!STA$349,X>!JMP$E40SCl# *FONTASIZERSOURCECODEPART13(2SVBILDA#SDLI1 <STA$200FLDA/SDLI1 PSTA$201ZLDACTRE7g}SETdSTACTINDEX nLDA$604xLDXGTIAINDXANDANDTABL,XSTAHOLD2C8 LDA$681 BEQ.1 DEC$681 7h}JMP.3.1LDA#$0B STA$681 INC$683 LDA$680 EOR#$0F STA$680 ORA$683 STA$2C0.3LDAAN7i}IFLAG BEQ.2"JMPANIMVBI,.2JMP$E462 6SDLI1PHA @LDA#$00JSTA$D40ATSTA$D018^LDA#SDLI2 hSTA7j}$200rLDA/SDLI2 |STA$201PLARTI SDLI2PHATXAPHA LDX#$00STX$D40A.1LDA$600,X7k}STA$D016,XINX CPX#$03 BNE.1LDXCTINDEXLDABASEADDR,XSTA$D409INCCTINDEX&LDA#SDLI37l} 0STA$200:LDA/SDLI3 DSTA$201NPLAXTAXbPLAlRTI vSDLI3PHATXAPHATYAPHA LD7m}A$603LDXHOLD2C8LDYGTIAMODESTA$D40ASTX$D01ASTA$D019STY$D01BLDA#DLI4 STA$2007n}LDA/DLI4 STA$201PLA TAY*PLA4TAX>PLAHRTI RDLI4PHA\TXAfPHApLDXCTINDEXzLDA7o}BASEADDR,XSTA$D40ASTA$D409INCCTINDEXPLATAXPLARTITICLDA#$A6STA$D201 LDA7p}#$20STA$D200 LDX#$FF LDY#$10JSRPAUSE LDA#$00STA$D200$STA$D201.RTS8KGETCH2LDA#$7q}00BSTANOKEY LLDA$2FC VCMP#$FF`BEQKGETCH2 jLDX#$FF tSTX$2FC~TAX CMP#$C0BCSKGETCH27r}LDAKBD2ASC,XSTAHOLD1 CMP#$1B BEQ.6 CMP#$9E BEQ.6 CMP#$9F BEQ.6 CMP#$80BEQKGE7s}TCH2 CMP#$81 BNE.1LDAINVFLG EOR#$80(STAINVFLG2.99JSRCLICK<JSRSPSTATS FLDA#$FFPSTA7t}NOKEYZRTSd.1CMP#$82 nBNE.2 xLDA#$00 STAKB BEQ.99.2CMP#$83 BNE.3 LDA#$40 STAK7u}B BNE.99.3CMP#$84 BNE.4 LDA#$80 STAKB BNE.99.4LDX#$0A.5CMPEDITKEYS,X BEQ.67v}DEX "BPL.5 ,CMP#$806BCSKGETCH2 @.7LDXKB JCPX#$40 TBNE.8 ^CMP#$61 hBCC.55 rCMP#$7B |7w}BCS.55SEC SBC#$20 BNE.55.8CPX#$80 BNE.55 CMP#$61 BCC.55 CMP#$7B BCS.55SEC7x} SBC#$60.55CMP#$1B BEQ.6ORAINVFLG .6RTSPHEDR2LDXRITETYPE&LDADOTABL,X0STAZTEMP:L7y}DADOTABH,XDSTAZTEMP+1 NLDY#$03X.1LDA(ZTEMP),YbSTAFNPRMPT+$09,YlDEY vBPL.1RTSPROCERRSSTY7z}TEMP3JSRCLRWNDWSLDA#WINDOW+$36STASCRNXYLDA/WINDOW+$36STASCRNXY+1LDYTEMP3TYAJSR7{}BINDECLDX#WINDOW+$3FLDY/WINDOW+$3F JSRPDECLDX#PERROR LDY/PERRORJSRPMESS LDX#$10 *L7|}DA#$0C4STA$342,X>JSR$E456 HLDA#$C0RSTA$D40E \LDA#$2E fSTA$22FpJSRHONK2 zLDA#$00 STA7}}$13 STA$14.2CMP$13 BNE.3 LDX$2FCINX BEQ.2.3JMPKEYSCANSGLBLBOXLDA#WINDOW+$35ST7~}ASCRNXYLDA/WINDOW+$35STASCRNXY+1LDX#GLBLBX LDY/GLBLBX JSRPMESS  LDA#$00 $ STAERR. .1JS7}RGETKEY 8 CMP#$1B B BNE.2L JSRCLICK V LDA#$01 ` STAERRj RTSt .2CMP#'G ~ BNE.3 JSRCLICK LD7}A#$00 STABOXFLG JSRCLRWNDW2 RTS .3CMP#'B BNE.1 JSRCLICK LDA#$01 STABOXFLG JSRCLR7}WNDW2 RTS SUNDOJSRCLICK JSRBUFR2SCR JSRSPSTATS JMPKEYSCANS( PAYSLDA#WINDOW+$592 STASCRNXY< 7}LDA/WINDOW+$59F STASCRNXY+1P LDX#RUSUREZ LDY/RUSUREd JSRPMESSn LDX#YORNx LDY/YORN JSRPMESS 7}RTS CROWSJSRCLICK JSRCLRWNDWS LDXMAXROWS INX TXA JSRBINDEC LDX#$02 .1LDADECSTRG,X 7}JSRINTASC STACNOR+$21,X DEX  BPL.1  LDA#102  LDXMODE " CPX#$04 , BCC.2 6 LDA#204@ .2STAABS7}MAXJ JSRBINDEC T LDX#$02^ .3LDADECSTRG,Xh JSRINTASCr STAENOR+$13,X| DEX BPL.3 LDA#$20 STA7}SFRNGE+$0F LDA#$35 STASFRNGE+$10 LDXMAXCOLS INX STXTEMP1 LDA#$00 STATEMP1+1 LDX#$00 7} LDY#$10 JSRDIV16BY8  LDATEMP CMPABSMAX  BEQ.37 & BCC.370 LDAABSMAX: .37STASAFED JSRBINDE7}C N LDX#$02X .4LDADECSTRG,Xb JSRINTASCl STASFRNGE+$12,Xv DEX BPL.4 LDA#WINDOW+$02 STASCRNXY7} LDA/WINDOW+$02 STASCRNXY+1 LDX#CNOR LDY/CNOR JSRPMESS CR1LDA#WINDOW+$2D STASCRNXY LDA7}/WINDOW+$2D STASCRNXY+1 LDX#ENOR LDY/ENOR JSRPMESS LDA#WINDOW+$59 STASCRNXY* LDA/WINDOW+$597}4 STASCRNXY+1> LDX#SFRNGEH LDY/SFRNGER JSRPMESS \ LDA#$00f STARITETYPE p LDA#$03z STAMXDIGITS7} LDA#WINDOW+$46 STAZTEMP LDA/WINDOW+$46 STAZTEMP+1 JSRGETDECVAL LDXERR BEQ.1 CPX#$01 7} BEQ.2 JSRHEXBIN JMP.3 .2JMPCHANGE+3 .1JSRCHK255 LDXERR BEQ.4.6JSRHONK2 $JMPCR1.7}.4JSRDECBIN8.3LDATEMP BCMP#$05 LBCC.6VCMPABSMAX `BCC.5jCMPABSMAX tBEQ.5 ~BCS.6.5CMP7}SAFE BCC.7 CMPSAFE BEQ.7JMPGTSAFE .7TAXDEXCPXMAXROWS BEQ.8 BCS.9 STXHOLD7} JMPCR2.8JMPXITCHNGE .9STXLRYLDXMAXROWSINX (STXULY2.10LDA#$00 <STATEMP FLDAULYP7}STATEMP+1ZJSRXY2ADR dLDYULY nLDA#$01xSTAFONTSET,YSTAFONTSUNDO,Y LDA#$40STABASEADDR,Y7}STABASEAUNDO,Y LDA#$00LDYMAXCOLS.11STA(ULCADR),YDEY CPY#$FF BNE.11 INCULY LDALRY7} CMPULY BCS.10STAMAXROWSJSRSETULC"JSRSPSTATS,JMPXITCHNGE6CR2JSRCLRWNDWS@LDA#WINDOW+$7}06JSTASCRNXYTLDA/WINDOW+$06^STASCRNXY+1hLDX#DECROWSrLDY/DECROWS|JSRPMESSLDA#WINDOW+$347}STASCRNXYLDA/WINDOW+$34STASCRNXY+1LDX#LOSDATALDY/LOSDATAJSRPMESS JSRPAYS.3JSRGETK7}EY CMP#$1B BNE.1JMPCHANGE.1CMP#'N BNE.2JMPCROWS.2CMP#'Y &BNE.30JSRCLICK :L7}DAHOLDDSTAMAXROWS NLDAMAPYXCMPMAXROWS bBEQ.4 lBCC.4vLDAMAXROWS STAMAPY.4JSRSETULC7}JSRSPSTATSJMPXITCHNGEGTSAFESTAHOLDJSRCLRWNDWS LDX#$00 LDY#$10 LDAHOLDSTATEMP1 LDA7}#$00STATEMP1+1JSRDIV16BY8 LDATEMP STAHOLD1JSRBINDEC LDX#$02*.1LDADECSTRG,X4JSRINT7}ASC>STADECOLS+$1D,XHDEX RBPL.1\LDA#WINDOW+$03fSTASCRNXYpLDA/WINDOW+$03zSTASCRNXY+1LDX#7}VEBSRLDY/VEBSRJSRPMESSLDA#WINDOW+$2CSTASCRNXYLDA/WINDOW+$2CSTASCRNXY+1LDX#DECOLS7}LDY/DECOLSJSRPMESS JSRPAYS.2JSRGETKEY CMP#$1B BNE.3JMPCHANGE.3CMP#'N $BNE.4.7}JMPCROWS8.4CMP#'Y BBNE.2LJSRCLICK VDECHOLD`DECHOLD1jJSRSHRINKXtJSRSPSTATS~JMPXITCHNGE7}CCOLSJSRCLICKJSRCLRWNDWSLDXMAXCOLSINXTXAJSRBINDEC LDX#$02.1LDADECSTRG,XJSR7}INTASCSTACNOC+$21,XDEX BPL.1LDXMAXROWS INXSTXTEMP1 LDA#$00(STATEMP1+12TAX <L7}DY#$10FJSRDIV16BY8 PLDATEMP ZSTASAFEdJSRBINDEC nLDX#$02x.2LDADECSTRG,XJSRINTASCSTASFR7}NGE+$12,XDEX BPL.2 LDA#$14 LDXMODE CPX#$04 BCS.3 LDA#$28.3STAABSMAXJSRBINDEC 7}LDX#$02.4LDADECSTRG,XJSRINTASCSTASFRNGE+$0E,XSTAENOC+$13,X"DEX ,BNE.46CC1LDA#WINDOW+7}$02@STASCRNXYJLDA/WINDOW+$02TSTASCRNXY+1^LDX#CNOChLDY/CNOCrJSRPMESS|LDA#WINDOW+$2BSTA7}SCRNXYLDA/WINDOW+$2BSTASCRNXY+1LDX#ENOCLDY/ENOCJSRPMESSLDA#WINDOW+$59STASCRNXY7}LDA/WINDOW+$59STASCRNXY+1LDX#SFRNGELDY/SFRNGEJSRPMESSLDA#WINDOW+$48STAZTEMPLDA/WI7}NDOW+$48&STAZTEMP+10JSRGETDECVAL :LDXERR DBEQ.1 NCPX#$01 XBEQ.2bJSRHEXBIN lJMP.3v.2JMP7}CHANGE+3.1JSRCHK255 LDXERR BEQ.4.6JSRHONK2 JMPCC1.4JSRDECBIN.3LDATEMPCMPABSMAX7} BCC.6 CMPSAFE BEQ.9 BCS.8 JMP.9.8JMPCGTSAFE .9TAXDEX CPXMAXCOLS *BEQ.11 47}BCS.10 >JMPCC2H.11JMPCHANGE+3R.10STXHOLD\INXfSTXTEMP3pLDAMAXROWSzSTAHOLD1JSREXPANDX7}JSRSETULCJMPCHANGE+3CC2STXHOLD1JSRCLRWNDWSLDA#WINDOW+$05STASCRNXYLDA/WINDOW+$05S7}TASCRNXY+1LDX#DNOCCLDY/DNOCCJSRPMESSLDA#WINDOW+$34STASCRNXYLDA/WINDOW+$34STASCRNXY7}+1$LDX#LOSDATA.LDY/LOSDATA8JSRPMESS BJSRPAYSL.3JSRGETKEY VCMP#$1B `BNE.1jJMPCHANGEt.17}CMP#'N ~BNE.2JSRCLICK JMPCC1.2CMP#'Y BNE.3JSRCLICKLDAMAXROWS STAHOLD LDAMAP7}XCMPHOLD1 BCC.4LDAHOLD1 STAMAPX.4JSRSHRINKX JSRSPSTATSJMPCHANGE+3CGTSAFESTAHOLD7}(JSRCLRWNDWS 2LDAHOLD<STATEMP1 FLDA#$00PSTATEMP1+1ZTAX dLDY#$10nJSRDIV16BY8 xLDATEMP7}STAHOLD1JSRBINDEC LDX#$02.1LDADECSTRG,XJSRINTASCSTACDECROWS+$1A,XDEX BPL.1LDA7}#WINDOW+$03STASCRNXYLDA/WINDOW+$03STASCRNXY+1LDX#VEBSRLDY/VEBSRJSRPMESSLDA#WINDOW+7}$2D"STASCRNXY,LDA/WINDOW+$2D6STASCRNXY+1@LDX#CDECROWSJLDY/CDECROWSTJSRPMESS ^JSRPAYSh.47}JSRGETKEY rCMP#$1B |BNE.2JMPCHANGE.2CMP#'N BNE.3JSRCLICK JMPCC1.3CMP#'Y BNE.47}JSRCLICK LDXHOLDSTXTEMP3DEX STXHOLDDECHOLD1LDAHOLD1STAMAXROWS LDAMAPY&C7}MPMAXROWS 0BCC.5:LDAMAXROWS DSTAMAPYN.5JSREXPANDXXJSRSPSTATSbJMPCHANGE+3lXITCHNGEJSRSCR2BUF7}RvJMPCHANGE+3EXPANDXLDA#$00 STATEMPSTACOUNTSTATEMP+1JSRXY2ADRLDA#UNDOBUFRSTAZTE7}MPLDA/UNDOBUFRSTAZTEMP+1.5LDY#$00.1LDA(ULCADR),YSTA(ZTEMP),YINYCPYMAXCOLS BEQ.17} BCC.1 LDA#$00*.2STA(ZTEMP),Y4INY>CPYTEMP3 HBCC.2RINCMAXCOLS\LDAULCADRfCLCpADC7}MAXCOLSzSTAULCADR BCC.3INCULCADR+1.3DECMAXCOLSLDAZTEMPCLCADCTEMP3STAZTEMP BC7}C.4INCZTEMP+1.4INCCOUNTLDACOUNTCMPMAXROWS BEQ.5 BCC.5LDAHOLD1STAMAXROWS $LD7}AHOLD.STAMAXCOLS8JSRCHKBNDSBJSRBUFR2SCRLJSRSETULCVRTS`SHRINKXJSRCLRUNDO jLDA#$00 tSTATE7}MP~STATEMP+1STACOUNTJSRXY2ADRLDA#UNDOBUFRSTAZTEMPLDA/UNDOBUFRSTAZTEMP+1LDAHOLD7}1STATEMP3.4LDYTEMP3.1LDA(ULCADR),YSTA(ZTEMP),YDEY CPY#$FF BNE.1LDAULCADRSEC7}(ADCMAXCOLS2STAULCADR <BCC.2FINCULCADR+1P.2INCTEMP3ZLDAZTEMPdCLCnADCTEMP3xSTAZTEMP7} BCC.3INCZTEMP+1.3DECTEMP3INCCOUNTLDACOUNTCMPMAXROWS BEQ.4 BCC.4LDATEMP37}STAMAXCOLS LDAHOLDSTAMAXROWSJSRCHKBNDSJSRBUFR2SCRJSRSETULCRTS"DISPUPLDA#$40,ST7}ASCRNXY+16STAZTEMP+1 @LDA#$86JSTAZTEMP TLDA#$AE^STASCRNXY hLDX#$06r.1LDY#$09|.2LDA(SCRN7}XY),YSTA(ZTEMP),YDEY BPL.2LDAZTEMPCLC ADC#$28STAZTEMP BCC.3INCZTEMP+1.37}LDASCRNXYCLC ADC#$28STASCRNXY  BCC.4 INCSCRNXY+1  .4DEX & BPL.10 RTS: PRSNEKEYLDA#$CF7}D STASCRNXY N LDA#$40X STASCRNXY+1b LDX#PRESSl LDY/PRESSv JSRPMESS LDA#$F8 STASCRNXY LDX7}#ANY LDY/ANY JSRPMESS LDA#$20 STASCRNXY LDA#$41 STASCRNXY+1 LDX#KEY LDY/KEY JSRP7}MESS RTS!CHKBNDSLDAMAXCOLS !CMPMAPX !BCS.1 !STAMAPX*!.1LDAMAXROWS 4!CMPMAPY >!BCS.2 H!STAMA7}PY R!.2RTS!CHKBNDSLDAMAXCOLS !CMPMAPX !BCS.1 !STAMAPX*!.1LDAMAXROWS 4!CMPMAPY >!BCS.2 H!STAMA4 ULYTAB,X> DEX H CPX#$FF R BNE.4 \ LDA#$05f STAFWIDTHp STAFHEIGHTz .5JSRBUFR2SCR JMPANIMENU 7} PRTPRMPTLDA#WINDOW+$61 STASCRNXY LDA/WINDOW+$61 STASCRNXY+1 LDX#PRMPT LDY/PRMPT JSRPMESS7} LDA#WINDOW+$62 STAZTEMP LDA/WINDOW+$62 STAZTEMP+1 LDA#$00STARITEFLAG LDA#$03$STAMXDIG7}ITS.JMPGETDECVAL8BFDEFINEJSRCLICKLJSRBUFR2SCRVJSRCLRWNDWS`LDA#WINDOW+$0EjSTASCRNXYtLDA/7}WINDOW+$0E~STASCRNXY+1LDX#DEFRMSLDY/DEFRMSJSRPMESSLDA#WINDOW+$29STASCRNXYLDA/WINDOW+7}$29STASCRNXY+1LDX#ENOFTBDLDY/ENOFTBDJSRPMESSJSRPRTPRMPT LDAERR BEQ.1 CMP#$01 7}BEQ.2JSRHEXBIN (JMP.32.2JMPANIMENU+3<.1JSRCHK255 FLDAERR PBEQ.4Z.5JSRHONK2dJMPFDEFINE7}n.4JSRDECBIN x.3TAX BEQ.5 CMP#$81 BCS.5TAXDEXSTXFRAMENUMINXTXAJSRBINDE7}C LDX#$02.6LDADECSTRG,XJSRINTASCSTATITBFN+$15,XDEX BPL.6JSRCLRWNDW2"LDA#WINDOW+$37}3,STASCRNXY6LDA/WINDOW+$33@STASCRNXY+1JLDX#MBOATLDY/MBOA^JSRPMESShLDA#WINDOW+$58rSTAS7}CRNXY|LDA/WINDOW+$58STASCRNXY+1LDX#TITBFNLDY/TITBFNJSRPMESSLDXFHEIGHT CPXMAPY BEQ7}.10 BCC.10DEX STXMAPY.10LDXFWIDTH CPXMAPX BEQ.11 BCC.11DEX STXMAPX&.11JSR7}SETULC 0LDAMAPY:SECDSBCFHEIGHTNTAXXINXbLDYMAXCOLSlINYvJSRMULT8BITLDATEMP1CLC7}ADC#SCREENSTALINENOLDATEMP1+1ADC/SCREENSTALINENO+1 LDAMAPXSECSBCFWIDTHCLC 7}ADC#$01CLCADCLINENO STALINENO BCC.9 INCLINENO+1*.9LDX#$004.8LDY#$00>.7LDA(LINENO),7}Y HEOR#$80RSTA(LINENO),Y\INYfCPYFWIDTH pBNE.7zLDALINENOSECADCMAXCOLSSTALINENO 7}BCC.12INCLINENO+1 .12INXCPXFHEIGHT BNE.8 LDAMAPXSECSBCFWIDTH STATULX LDAMAPY7}SECSBCFHEIGHT STATULY $INCTULX .INCTULY8JSRGETNULRXY BLDA#$FF LSTA$2FCVLDXFRAMENUM7} `LDANULXjSTAULXTAB,X tLDANULY~STAULYTAB,XJSRBUFR2SCRJMPANIMENUGOTOFRMJSRCLICKJSR7}CLRWNDWSLDA#WINDOW+$0FSTASCRNXYLDA/WINDOW+$0FSTASCRNXY+1 LDX#GF LDY/GFJSRPMESSL7}DA#WINDOW+$2C STASCRNXYLDA/WINDOW+$2CSTASCRNXY+1(LDX#ENOFTG2LDY/ENOFTG<JSRPMESSFJSRPRTP7}RMPT PLDAERR ZBEQ.1 dCMP#$01 nBEQ.2xJSRHEXBIN JMP.3.2JSRBUFR2SCRJMPANIMENU+3.1JSR7}CHK255 LDAERR BEQ.4.5JSRHONK2JMPGOTOFRM.4JSRDECBIN .3TAX BEQ.5 CMP#$81 BCS.57}TAXDEXSTXFRAMENUM"JSRBUFR2SCR,JSRHILITE6JMPGOTOFRM+3@JSETSIZEJSRCLICKTJSRCLRWNDWS7}^LDA#WINDOW+$0DhSTASCRNXYrLDA/WINDOW+$0D|STASCRNXY+1 LDX#SFS LDY/SFSJSRPMESSLDA#WINDO7}W+$2BSTASCRNXYLDA/WINDOW+$2BSTASCRNXY+1LDX#ENFWLDY/ENFWJSRPMESSJSRPRTPRMPT LDA7}ERR BEQ.1 CMP#$01 BEQ.2JSRHEXBIN &JMP.30.2JMP.14:.1JSRCHK255 DLDAERR NBEQ.4X.57}JSRHONK2bJMPSETSIZEl.4JSRDECBIN v.3TAX BEQ.5 CMP#$15 BCS.5STAFWIDTH.13JSRCLRWNDW2 7}LDA#$0ACMPMAXROWS BCC.6LDYMAXROWSINYTYA.6STAHOLD INCHOLDJSRBINDEC LDX#$027}.7LDADECSTRG,X JSRINTASC*STAENFH+$19,X4DEX >BNE.7HLDA#WINDOW+$2ARSTASCRNXY\LDA/WINDOW+7}$2AfSTASCRNXY+1pLDX#ENFHzLDY/ENFHJSRPMESSJSRPRTPRMPT LDAERR BEQ.8 CMP#$01 BEQ.7}9JSRHEXBIN JMP.10.9JMPSETSIZE+3.8JSRCHK255 LDAERR BEQ.11.12JSRHONK2 JMP.13.117}JSRDECBIN .10TAX $BEQ.12 .CMPHOLD 8BCS.12BSTAFHEIGHTL.14JSRBUFR2SCRVJMPANIMENU+3 `PANISTAT7}SjLDXFRAMENUMtINX~TXAJSRBINDEC LDX#$02.1LDADECSTRG,XJSRINTASCSTAANISTATS+$07,X7}DEX BPL.1LDA#WINDOW+$52STASCRNXYLDA/WINDOW+$52STASCRNXY+1LDX#ANISTATSLDY/ANISTATS 7}JSRPMESSRTSHILITELDXFRAMENUM(LDAULXTAB,X2CLC<ADCFWIDTH FSTAMAPXPLDAULYTAB,XZCLCd7}ADCFHEIGHT nSTAMAPY xDECMAPX DECMAPYJSRSETULCLDXFRAMENUMLDAULYTAB,XTAXLDYMAXCOLS7}INYJSRMULT8BITLDXFRAMENUMLDATEMP1CLCADCULXTAB,XSTALINENOLDATEMP1+1 ADC#$007}STALINENO+1"LDALINENO,CLC6ADC#SCREEN@STALINENOJLDALINENO+1TADC/SCREEN^STALINENO+1 hL7}DX#$00r.8LDY#$00|.7LDA(LINENO),Y EOR#$80STA(LINENO),YINYCPYFWIDTH BNE.7LDALINENO7}SECADCMAXCOLSSTALINENO BCC.9INCLINENO+1 .9INXCPXFHEIGHT BNE.8RTS&PASPEE7}DLDASFRAME0JSRBINDEC :LDX#$02D.1LDADECSTRG,XNJSRINTASCXSTAAFN2N+$11,XbDEX lBPL.1vLDAEF7}RAMEJSRBINDEC LDX#$02.2LDADECSTRG,XJSRINTASCSTAAFN2N+$18,XDEX BPL.2LDAASHOLD7}STAAFN2N+$25JSRCLRWNDW2LDA#WINDOW+$01STASCRNXYLDA/WINDOW+$01STASCRNXY+1 LDX#AFN2NLD7}Y/AFN2N JSRPMESS*LDA#WINDOW+$2E4STASCRNXY>LDA/WINDOW+$2EHSTASCRNXY+1RLDX#NCSEQ\LDY/NCSEQ7}fJSRPMESSpJMPPANISTATSzCLRAREALDX#$00TXA.1STASCREEN,XSTASCREEN+$100,XSTASCREEN+$200,7}XSTASCREEN+$300,XINX BNE.1RTSTXA.1STASCREEN,XSTASCREEN+$100,XSTASCREEN+$200,47SC" *SOURCECODE-THEFONTASIZER*DESIGNEDANDWRITTEN (*BYDARRENSCHEBEK05/24/84 2*LASTCOMPILATION:;}03/28/86< F.LIOFFP.OR$3810Z.TF"D8:FONTSIZR.VAR"d.IN"D1:FNTSZR1.SRC"n.OR$4300x.TF"D8:FONTSIZR.;}CHR".IN"D1:FNTSZR2.SRC".IN"D1:FNTSZR3.SRC".IN"D1:FNTSZR4.SRC".IN"D1:FNTSZR5.SRC".IN"D1:FNTSZR6.;}SRC".TF"D8:FONTSIZR.OBJ".IN"D1:FNTSZR7.SRC".IN"D1:FNTSZR8.SRC".IN"D1:FNTSZR9.SRC".IN"D1:FNTSZR1;}0.SRC".IN"D1:FNTSZR11.SRC".IN"D1:FNTSZR12.SRC".IN"D1:FNTSZR13.SRC".IN"D1:FNTSZR14.SRC".IN"D8:FN;}TSZR15.SRC".ENNTSZR11.SRC".IN"D1:FNTSZR12.SRC".IN"D1:FNTSZR13.SRC".IN"D1:FNTSZR14.SRC".IN"D8:FN88