¥'É Ð¥+JJJJ À…?©\…>­þmÿþ®ÿ0½M…=Îÿ­þ…'Îþ¦+l>îþîþ ‰þ “þ /û¦+lý   d§°©¨]¶‘@­ÅµLÒ¦­]¶ðî½µÐî¾µ©]¶LF¥¼µ ¨¦ ê¢L}¢ ±BÐÈÀÐ÷ ±B™¤µÈÀÐöL¼¦¢ÿŽ]¶Ðö­æµÐ ­Äµð­Ëµ¸ª­Ìµ¹ª­ÃµËµ­ÄµÌµLô¶L–¬Lo³ ¶°°øîäµÐîåµîĵî̵ε­ÂµÐåLx¶ Žé·Ž÷·©ø·ê·­à·á·©ì·©í·¬ç·ˆŒñ·©ô·ŠJJJJª©øx “·¢ÿšŽë· “þ ‰þL„­ç·8íñ·á·­ç·ñ·Îñ·©ì·©í·©ô· “·­ç·þ¶i ñ·© á·8éÿ¶í· “·`­å·¬ä· µ·¬í·ˆ êêÎì·Œí·Îñ·Îá·Ðß`x ½°(`(8`­¼µñ·©ð·­ùµIÿë·`©¨‘BÈÐû` è·¶`þû··þ`ïò¢ ˆ±>J>¼J>¼™»èàVí¢˜Ðè¢U½¼)?¼Êõ`8†'Žx½À½ŽÀ0|­¼…&©ÿÀŒÀHhê Hh ¹¸ˆÐø©Õ ¸¸©ª ¸¸©­ ¸¸˜ Vй¼Yÿ»ª½)º¦'À½ŒÀˆÐë¥&êY»ª½)º®xÀ½ŒÀ¹»ÈÐꪽ)º¦' »¸©Þ ¸¸©ª ¸¸©ë ¸¸©ÿ ¸¸½ŽÀ½ŒÀ`HhÀŒÀ` ¢VÊ0û¹»^¼*^¼*‘>ÈÄ&Ðë`  ˆða½ŒÀûIÕÐô꽌ÀûɪÐò V½ŒÀûÉ­Ð穈„&¼ŒÀûYº¤&™¼Ðî„&¼ŒÀûYº¤&™»ÈÐÀûٺнŒÀûÉÞР꽌Àûɪð\8` ü„&ÈÐæ&ðó½ŒÀûÉÕÐð꽌ÀûɪÐò ½ŒÀûÉ–Ðç©…'½ŒÀû*…&½ŒÀû%&™,E'ˆç¨Ð·½ŒÀûÉÞЮ꽌ÀûɪФ`†+…*ÍxðS©…&­x…'8å*ð3°IÿîxiþÎxÅ&¥&É °¨8 î¹¹º º¥' ñ¹¹º ºæ&Ðà º­x)*+ª½€À¦+`ª  ¢ÊÐýæFÐæG8éÐð`0($ p,&"–—š›žŸ¦§«¬­®¯²³´µ¶·¹º»¼½¾¿ËÍÎÏÓÖ×ÙÚÛÜÝÞßåæçéêëìíîïòóôõö÷ùúûüýþÿ¢ Jù©…@…A Œ ß¼¥A ãý¥@ Úý  ¹È¿ íýˆ÷L/®Åij°ˆ˜™œ ¡¢£¤¥¨©ª °±¸ÀÁÂÃÄÅÆÇÈÉÊÌÐÑÒÔÕ !Ø"#$%&'(àáâãä)*+è,-./012ðñ345678ø9:;<=>?  9 +* " " ( (9"1 ( ,.(0# 2  /#0/#0 *?'#07#00/0/'#07#0:"4<*55/**5/*%5/)1/)1/)1/)'#0/#0*5/*75/**5/*:5//#0/#0'#07#0:::*::'#07#0.<,<$>>)!)!6$:"48)¡E!‚€B å+!¬¨h(+  ‰1ˆ2P H !D)" EäŠÄ`€  @ $ °C » ` À ƒÊDQ &J€8½À½ŽÀ0^©ÿÀÝŒÀHh ü üÀÝŒÀêˆÐð©Õ Õ¼©ª Õ¼©– Õ¼¥A ļ¥D ļ¥? ļ¥AEDE?HJ>À½ŒÀh ª Ô¼©Þ Õ¼©ª Õ¼©ë Õ¼½ŽÀ½ŒÀ`HJ>ÀÝŒÀhêêê ªêêHhÀÝŒÀ`¹ò³ð ûHø¥@i…@¥Ai…AØhèˆÐá`¤„H…I Œø Œø ±Hª ÑHðŠH±HªhH‘H½ŽÀ ½ŒÀÝŒÀÐöˆÐøhª½ŽÀ½ŒÀ ½ŒÀHhHhŽøÝŒÀЈÐÀ ±H™6ÈÀ Ðö ±<…G ±H ÑHð‘H( j½ŠÀ°½‹Àf5(Ð   ºˆÐú®ø ±H Z¾(ФG  ˆÐýæFÐ÷æGÐó  ±HðZÉðXj° ¸ 0Œx®ø D¹$Îxó­xH©` •¾Îøð(©ø© Z¾h Z¾L¼½¤.Ìxð­xH˜ •¾hÎøÐåðÊh©@(LH¾ð9L¯¾ ±HH¥/ ‘HhðÅ/ð© Ðá ±H¨¹¸¿Å-З( ܸ°Ž(¢†& ¸®ø$8  ‘H½ˆÀ` *¸ð©°îH ± V©…D™ÿ»ˆÐú™»ˆÐú©P •¾©(…E¥D Z¾ ¿©°$©0x8Îxð D¹°õ¥-Ðñ ܸ°ìæD¥DÉ#Ó  ‘H8½ˆÀ`©…? €Ð¤E V¼°k *¸°fæ?¥?Éì „?©0x™¨¿ˆú¤E ‡¿ ‡¿ ‡¿HhêˆÐñ D¹°#¥-ð©ÅE¥Eé…EÉ°8` D¹° ܸÎxÐñ D¹° ¥-ÉÐ ܸŒÎxÐë8`¤-¹¨¿0Ý©ÿ™¨¿Æ?Ê¥DÐ ¥EÉåÆEÆE`ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  ÅÅÒÆ ÓÒÏÔÃÅӠ̵Lضcªpªqª` [§Œ·ª` ~®®›³š £ºŽ›³© L…³Óœž½žuª“ª`ª»µêžŸ"Ÿ.ŸQŸ`ŸpŸN¥¤–£Ð¤ï¤b¢p¢t¢é¢¥Å¥¥Ü¥¢¢—¢€¢m¥2¢<¢(¢-¢P¢y¥¥0£k££|¢ü¤ü¤eØà<ÔòÔ àå¤àààü¤ü¤eØà<ÔòÔ­¸ªËµ­¹ªLÕ¿­é·JJJJjª­ê·hª­àI жª¢ ½aUÊÐ÷L¼©@¶ª¢ ½kUÊÐ÷8°­¶ªÐ© Ð ©L ²¥ Q¨©^ªRª(jQª0l^l\ ¶ª¢ ½wUÊÐ÷¢½“ªuªÊ÷­±ªWª Ô§­³ªð H ¦h ‘@ [§­_ªÐ ¢/½QžÐÊ÷­SžóI¥ô­Ržò©Ð­bªð_ªL€¡`L¿L„LýªLµ·­¬`­Âª¬Áª`LQ¨êêLYúLeÿLXÿLeÿLeÿeÿ Ñž­QªðH­\ª‘(h0L&¦ ê¤$©`‘(­³ªð ‚¦©Rª ºŸ ºž\ªŽZªL³Ÿl8 Ñž­Rª ª½H½H­\ª`\ªŽZªŒ[ªºèèŽYª¢½Sª•6Êø`®·ªðLxŸ®QªðÉ¿ðuÅ3ð'¢ŽRªÍ²ªÐÊŽRªÊŽ]ª®]ªèŽ]ªÉÐuLÍŸÉÐ}¢ŽRªL¤Ÿ¢ŽRªÉ𭳪ðgÐ^H8­³ªÐ ^¦hì®ZªLŸÉЩRª ¦L™ŸÍ²ªð…ÉŠðñ¢ŽRªÐá©Rªð%©·ª Q¨Lܤ­Ͳªð ©¢ŽZª©@ЩЩ -^ªð ºŸ ÅŸ\ªŒ[ªŽZª Q¨®Yªš­\ª¬[ª®Zª8`l6©LÅŸ ÿŒ_ªÈŒbªî_ª¢½ͲªÐèŽ]ª ¤¡)Y„¨È ðhð(𠹄¨ÐÖ­ͲªðL¤Ÿ­ÉÐ [§L•ŸLĦ_ª¬_ª ^¦ ©9 ©ð©LÒ¦ÀЄ3© 9 ©ða •  ¤¡ð 0L jLY  “¡ð ™uªÈÀ<ó “¡Ðû(Ь_ª©9 ©ð  ÐË­“ªÉ ð­uªÉ ÐK¬_ª©À9 ©ð?L  <© ™tªˆÐú`uª© 9 ©ð' ¹¡°¨Ðà°¬_ª©9 ©ðà°Î ŠÐ©LÒ¦LĦ©eªtªfªlªmª Ü¿­]ª ¤¡ÐÉÐ÷®_ª­eª ©] ©Ð“®cªðvcªŽ]ªÐÜ¢ Ý@©ðÊÐøð¶½J©0G eªeªÊŽdª ¹¡°¢­dª ¨¥EÐ ¥DÙU©Œ¥EÙX© Ѓ¥DÙW©Ðõ­cªÐ”˜J¨¥E™gª¥D™fªLè H©€ eªeªh) tªtªÐé𜠀¡LƒŸ [§ ®¡­_ªª½H½H`®]ª½ÉðèŽ]ªÉ¬` “¡ðúÉ ð÷`© ™ºµˆÐú`©…D…E ¤¡ɤð<(LΡ ¤¡Ð¦D¥E`8é°0!É ° þ¡eDª©eE¨ þ¡ þ¡ŠeD…D˜eE…EÏ8`D&E`( ¤¡ðÅ8é°0îÉ é0æɰ⢠þ¡ÊÐúD…DL¢¥DL•þ¥DL‹þ­^ª tª^ª`,tªP ÈŸ©pMtª-^ª^ª`©³ª¥DH £hWªLÔ§© ª¢ d§ ˜‘@`©Ð© ª¢Lꢩ Ðö­½µ­ ¾µ© cª È¢Lê¢ £¢ Œ¦ÐûLq¶©LÕ£©cª­lªÐ ­mªÐ©lª­lª½µ­mª¾µ ꢥEÐLȦ…A¥D…@ C§ N§ §­cª»µL¨¦­uªÉ ð% d§°: ü¢Lê¢ ¯§Ð©³ª ˜‘@ N§©»µL¨¦ ’§Ð š§ð ¯§ðö ª§ðñ ü¢L£`© -eªÉ ðL © Õ£­sª¬rª ࣭mª¬lª ࣭sª¬rªLÿ£Ll£ («L^¯êêêêêê© Õ£ z¤ª­eª)ÐŽrªŒsª z¤®rª¬sªLq¤ l£ Q¨lrª­¶ªð ¥ÖL̦© Õ£8¥¯åg¨¥°åh ࣥh¤gLÿ£© Õ£8¥Låʨ¥MåË à£¥Ë¤ÊLÿ£ÂµH ¨¢hLħŒÁµŒÃµÂµ©»µ©¼µ ¨¦­ÂµÃµL¨¦ŒÃµÄµ©L†¶ ¨¦Lê¢LЦ £ ¨¢©#-µððµ­¶ªð(© ±¤ z¤egª˜ehÅt°p…°…j†¯†i¦g¤h q¤ Q¨l`© ±¤ z¤8¥Lí`ªª¥MíaªE¨ÄK@ð>„ˆʎõŒÄµL ¤­ õ­ ĵ©Âµ©Áµ©»µ©¼µ ¨¦­aªÂµ¨­`ªÁµ` ê¢L̦͵ð®_ªŽbªJðLž¥Lz¥uª“ªÊ÷Lz¥`­¶ªð·ª ¤ ÈŸ Q¨lX¥J…Ì¥K…ÍlV ¤ ÈŸ Q¨lV eÖ…3…ØLÒ× e…3…ØLÔ &¥©RªLƒŸ &¥©QªLƒŸ d§ £¢L4¥ N§­eª)ð¢½nª½µÊ÷© »µ ¨¦`©@-eªð­fªÐ©þfª­ ¼µ© ª¢L—£© ª¢­¿µfª`©L ²¥ð.Ð"¶ª  — ¢ ½·ªtªÊÐ÷©ÀQªLѤ© ²¥ð©LÒ¦©·ªL„Íàð€ÀÍàðÀÍà` £¢­Oª´ª­Pªµª­uª³ªÐ d§ £¢Lë¥ N§­eª)ð­nªÐ®oªðÎoªÎnª Œ¦ð8ÉÐ÷ðå` ^¦°f­\ªÃµ©»µ©¼µL¨¦ ^¦°N©Rª Œ¦Ð ü¢©ÍRªðΩLÒ¦Éà)\ª®Zªð ʽ €L³ŸH­¶ªð¦vèð ¦3àÝðh`¥Ù0ùh8` ü¢ [§L³Ÿ ¦ N§©С©»µ©¼µ ¨¦­Ãµ`­µª…A­´ª…@` «­ÅµÉðL^¶L’¶êêêꢎõ`© Ð © ЩЩ \ª æ¿­¶ªð¥Ø0¢ §®\ª § ÈŸ Q¨ ^¦®\ª©°lZl^½?ªªŽcª½q©H € ÅŸ®cªèhí`­fª¿µ­hªÀµ­jªÁµ­õ­ĵ¥@Oª¥APª` ¹uª‘@ˆø` ±@™©µÈÀ&Ðö` ŒQªŒRª`©…E ’§Ls§ š§ð ª§Ð ¥@…D¥A…EÐì ±@ÙuªÐãˆö`8`­®Ð  %±@𠪈±@†A…@Š` ±@`­³ªð­´ªÅ@ЭµªÅAðÊ`Mµð )ð ê¢LЦ`8­…@­…A­Wªcª ˜‘@ 8¥@é-‘@H¥AéÈ‘@ªÊhHÈ‘@ŠÈ‘@ªÊhHÈ‘@ÈŠ‘@Îcªðªh8é&È‘@HŠéÈ‘@…Ah…@Lå§H©È‘@È‘@­¶ªð h…t…ph…s…o`h…M…Ëh…L…Ê`¥9ÍðVª¥8Uª­…8­…9¥7ÍðTª¥6Sª­…6­…7`INIÔLOAÄSAVÅRUÎCHAIÎDELETÅLOCËUNLOCËCLOSÅREAÄEXEÃWRITÅPOSITIOÎOPEÎAPPENÄRENAMÅCATALOÇMOÎNOMOÎPR£IN£MAXFILEÓFÐINÔBSAVÅBLOAÄBRUÎVERIFÙ!p p¡p p p p p p`" t""#x"p0p@p@€@€@p@!y q q pÖÄÓÌÒÂÁÃÉÏ@ À þÿÿÿÿÿ LANGUAGE NOT AVAILABLÅRANGE ERROÒWRITE PROTECTEÄEND OF DATÁFILE NOT FOUNÄVOLUME MISMATCÈI/O ERROÒDISK FULÌFILE LOCKEÄSYNTAX ERROÒNO BUFFERS AVAILABLÅFILE TYPE MISMATCÈPROGRAM TOO LARGÅNOT DIRECT COMMANÄ$3>L[dmx„˜ª»-˜ðýýô( þÐÈÅÌÌÏ                                                       „@–ÐÌÅÓÏÆÔè·»³»´À~³!«¬W¬o¬*­—­î¬õ¬9¬­®­~³~³‰¬•¬†¬’¬~³~³½¬É¬º¬Æ¬~³àð¢Ž_ªºŽ›³ j®­»µÉ ° ª½ÊªH½ÉªH`Lc³ `£L³ Ü«©ãµ®¾µ­½µÐàÐèèµŽéµ É±^Žœ³®_ª½ ©®œ³J° ­QªÉÀÐL_³Ls³©è´©ç´Žœ³ D²®œ³Ç´ÒµÔµ­ñµÆ´ÑµÓµ­ÂµÈ´ 7° ¯ Ö· :¯®œ³©ŵ½Æ´Ñµ½Ç´Òµ½È´Âµöµ½ç´îµ½è´ïµŽÙµ©ÿàµáµ­â³Úµ`êꩪѵèà-Ðø­¿µIÿùµ­Àµøµ­Áµ ªŽ÷µ©úµ` ¯ 4¯ ò©-Õµð! ÷¯© °8ÎصÐ÷®Ùµ­îµç´­ïµè´ 7°L³ («­öµ0+­½µ…B­¾µ…C®œ³ ² 7°L³­¼µÉ° ª½æªH½åªH`Lg³L{³­öµ0ø­¼µÉ°î ª½òªH½ñªH` ³ ¨¬ÃµL³ ³ µ± ¨¬H ¢± h‘BL³¶ ¶°° ±BH [± ”±h`Lo³ ³­Ãµ Ú¬L³ ³ ¢± ±B Ú¬ µ±LʬH ¶°h‘B©@ ÕµÕµ [±L”±©€ž³Ð©ž³ («®œ³½È´) ž³È´ 7°L³ ³L³ `£ ¶°°ïîäµÐöîåµL­ («®œ³½È´L{³®œ³½Æ´Ñµæ´©ÿÆ´¼Ç´ŒÒµ 7° ^¯°* ¯  Œœ³±B0 ð HȱB¨h ‰­¬œ³ÈÈÐç­Óµ¬Ôµ ‰­8°Ñ û¯L³8 ݲ©¢ðµÊú` Ü«©ÿùµ ÷¯©³ /® /®¢ ½¯³ íýÊ÷†E­ö·…D B® iº /® °°]¢Žœ³½Æ´ðS0J  ½È´ ª˜ íý½È´)  °ˆÐú¹§³ íý©  íý½ç´…D½è´…E B®©  íýèè蠽ƴ íýèˆö /® 0²§°žL³© íýγÐ ý©³` ©H¥DÙ¤³ù¤³…D¥Eé…EhiHLG®h ° íýˆÛ` ¯ ŒÅµ±B™ÑµÈÀ-Ðö` ¯ ¹Ñµ‘BÈÀ-Ðö` Ü«© X°­ùµIÿÁ³©볩ì³¢8©»³èÐú¢ àŒð ¹ ³ó³èˆöàDÐì¢HÐè û¯¢Š»´èÐú E°©¬ð³ˆˆì·¼´Œ½´ÈŒí·© X°¬½´ˆ0Ðì˜ðæ · J·L³¢ð¢Ð¢½Çµ…B½Èµ…C`,Õµp` 䯩 R°©¿-ÕµÕµ`­Õµ0` K¯© R°©-ÕµÕµ`­Éµð·­Êµñ·®Óµ¬Ôµ` 4¯ K¯ ¯(° ®Ñµ¬ÒµLµ¯ ±BðªÈ±B¨Lµ¯­»µÉð8` D² ‘BHˆ­ñµ‘BH :¯ Ö· ­Þµ‘BÈ­ßµ‘Bhªh¨©Ð©ŽÓµŒÔµ R° ±Bܵmڵ޵ȱBݵm۵ߵ` 䯩LR°¬Ëµ­ÌµŒð·ñ·®Öµ¬×µ`©Ð©¬ÃªŒð·¬ÄªŒñ·®úµ LR° E°(°¬½³®¼³Ð ®¼´Ð8`¬½´Ž—³Œ˜³© R°` E°®—³¬˜³©LR°­Åªð·­Æªñ·`Žì·Œí·ô·ÉÐ ÕµÕµ­ùµIÿë·­÷µé·­øµê·­âµò·­ãµó·©è·¬Áª­Âª µ·­ö·¿µ©ÿë·°`­õ· É ð Éð ˜L…³­äµÍàµÐ­åµÍáµðf ¯­åµÍݵЭäµÍܵ­åµÍߵЭäµÍÞµ ^¯×`8­äµíܵ i ¨ ¯±BЭ»µÉð8` 4±L ±ÖµÈ±B×µ ܯ­äµàµ­åµáµ ¯¬æµ`Œ³ D²¬³È‘B×µˆ­ñµ‘BÖµ ¯ Ö·©À ÕµÕµ`®êµŽ½µ®ëµŽ¾µ®ìµ¬íµŽ¿µŒÀµèÐÈÌéµÐìèµÐ ¢ îêµÐî뵎쵌íµ`îæµÐîäµÐîåµ`¬Ãµ®Äµ„B†CîõÐîĵ`¬ÁµÐ®ÂµðεÎÁµ`L³ ÷¯­Ãµ…B­Äµ…C©³©Øµîص °°Q¢Žœ³½Æ´ð0" èèè±BÝÆ´Ð ÈÀÐ󮜳` 0²Û°Ï¬³ÐÁ¬³Ðï èèè±BÆ´ÈÀÐõ®œ³8`­œ³i#ªàõ`©¬³Ð—Lw³­ñµð!Îðµ0¢>ñµÊÐúðîîµÐîïµ­ðµ`©ñµ©ž³ ÷¯­ë³mì³ð ÍﳩÿÐ ­ž³Ð7©ž³ì³ië³ñµ¨ ¨¢¹ö³ñµð8©™ö³ˆÊÐî½ û¯­ð³ðµÐ‰Lw³­ñµÐ`H ÷¯¬ðµh ݲ©ñµLû¯¢ü~ö´èÐúÈÌð³Ðò ¨ð¢½ñµö³™ö³ˆÊÐó`­½µæµêµ­¾µäµëµ©åµ ª­æµJ°Š­åµmèµåµŠméµjnåµnäµn浈ÐÛ­¿µìµmæµæµ­Àµíµmäµäµ©måµåµ`©Ð"©Ð©Ð©Ð©Ð©ÐLí¿ê© Эŵ8ŵ©…H ~®(®›³š` î# €ÿÿ dÔÉÁÂÓÒÐÌ ÅÍÕÌÏÖ ËÓÉÄþz#ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ þuª˜—–`u!¢‡.LISTOFF¬;À -¶;†APPLESOFTVARIABLEXREFÀ;Ê;„APPLEASSEMBLYLINEÔ;†V1N2P2,NOV1980Þ;(ß;CORRECTIONSINV1N10P10,JULY1981à;è;À -ò;†VARIABLECROSSREFERENCEü;†FORAPPLESOFTPROGRAMS;À -ZZ.BEG.EQ$8800‡.OR          1,CLREOLØ ‡.HS64‡INVERSEMODE1â ‡.AS-/FORMENU,FORMORE/ì ‡.HS6300…NORMALMODE,EOMö ;À - MSG3ƒ.HS87878D ‡.AS-/***SYNTAXERROR/  ‡.HS8D006,HTAB14j ‡.AS-/P.O.BOX5537/t ‡.HS460B…VTAB7,HTAB11 ~ ‡.AS-/RICHARDSON,TX75080/ˆ ‡.HS4A‡VTAB11 ’ ‡.HS00œ ;À -,¦ MSG1ƒ.HS490166ƒVTAB10,HTAB1,CLREOP° ‡.AS-/SELECTONE:‚/ º ‡.HS00Ä ;À -,Î MSG2ƒ.HS570165ƒVTAB24,HTAB28ADADƒ2DASHES ‡.HS28ADADƒ2DASHES ‡.HS28ADADƒ2DASHES$ ‡.HS286129AD41DASHES. ‡.HS63‡NORMALMODE8 ‡.HS4205…VTAB3,HTAB5,B ‡.AS-/DEMONSTRATIONOFMESSAGEPRINTER/L ‡.HS440F…VTAB5,HTAB15V ‡.AS-/S-CSOFTWARE/` ‡.HS450E…VTAB„MSG.ADDR.TAB Ž‡.DAMSGO ˜‡.DAMSG1 ¢‡.DAMSG2 ¬‡.DAMSG3¶;À -ÀMSGOƒ.HS60‡HOMESCREEN Ê;CELL1--VOCABULARYCHECKÔ‡.HS64‡INVERSEMODEÞ‡.HS6129ADƒ4ADASHESè‡.HS28ADADƒ2DASHESò‡.HS28ADADü‡.HS28ADADƒ2DASHES ‡.HSBNE.1ЇRTSÚ;À -äLONG.DELAY î‡LDY#12'ø.1…JSRMON.WAIT‚DELAY167309CYCLES‡DEY ‡BNE.1‡RTS ;À -*GET.MSG.CHAR4‡LDYMSG.SCANNER>‡LDA(MSG.PTR),YH‡INCMSG.SCANNER R‡BNE.1\‡INCMSG.PTR+1 f.1…CMP#0p‡RTSz;À -OME-1D‡.DAMSG.REPEAT-1N‡.DALONG.DELAY-1X‡.DAMON.NORMAL-1b‡.DAMON.INVERSE-1l‡.DAMON.CLREOL-1v‡.DAMON.CLREOP-1€;À -ŠMSG.REPEAT”‡JSRGET.MSG.CHARž‡TAXŠNUMBEROFMULTIPLES¨‡JSRGET.MSG.CHAR².1…JSRMON.COUT¼‡DEX ƇS¤‡CMP#7‡$60THROUGH$66®‡BCS.4‡NOTTOKEN,IGNORE¸‡ASLŠMAKEDOUBLEINDEX‡TAX"̇LDA/.4-1„PUTRETURNONSTACKÖ‡PHAà‡LDA#.4-1ê‡PHAô‡LDAMSGTKNTBL+1,Xþ‡PHA‡LDAMSGTKNTBL,X‡PHA‡RTS&;À - 0MSGTKNTBL:‡.DAMON.HNRANGEFORHTAB?"‡BCS.4‡NO,IGNORE,‡STAMON.CH6‡DECMON.CH@‡BCC.4‡...ALWAYSJ;À -"T.6…CMP#$58…INRANGEFORVTAB?^‡BCS.7‡NOh‡AND#$1F…MASKVALUEr‡STAMON.CVƒYES|‡JSRMON.VTAB †‡JMP.4;À - š.7…EOR#$60…CHECKFORTOKENADDR.TAB+1,Y ‡STAMSG.PTR+1 ª‡LDA#0´‡STAMSG.SCANNER¾.1…JSRGET.MSG.CHAR ȇBNE.3Ò‡RTSŠ$00:‚ENDOFMSGÜ.3…BPL.5‡SPECIALACTIONæ‡JSRMON.COUTPRINTCHAR ð.4…JMP.1ú;À -.5…CMP#$40…CHECKFORVTAB‡BCS.6‡YES ‡CMP#$29…I;‹$63…NORMALMODE(;‹$64…INVERSEMODE2;‹$65…CLEARTOENDOFLINE <;‹$66…CLEARTOENDOFSCREENF;‹$80-FF‚PRINTASISP;Z;À -dMESSAGE.PRINTER'n‡ASLŠDOUBLEMSGNUMBERTOGETINDEXx‡TAY‚‡LDAMSG.ADDR.TAB,YŒ‡STAMSG.PTR–‡LDAMSG.SAGEÎ;†2.‚PRINTSONTHESCREEN*Ø;†3.‚INTERPRETSCHARACTERSASFOLLOWS:â;‹$00…ENDOFMESSAGEì;‹$01-28‚HTAB1-40ö;‹$40-57‚VTAB1-24#;‹$60…CLEARSCREEN,HOMECURSOR+ ;‹$61XXYYREPEATCHARACTERYY,XXTIMES;‹$62…DELAYABOUT2SECONDSTƒ.EQ$FDEDBMON.NORMAL.EQ$FE84LMON.INVERSE.EQ$FE80V;À -`MSG.PTR„.EQ$18,19jMSG.SCANNER.EQ$1At;À -~;†MESSAGEPRINTERˆ; ’;ƒCALL:œ;†(A)=MESSAGE#ƒ(0-N)¦;†JSRMESSAGE.PRINTER°; º;ƒACTION: Ä;†1.‚FINDSSPECIFIEDMES´ ¬;À -¶;†MESSAGEPRINTERÀ;Ê;„APPLEASSEMBLYLINEÔ;†V1N1P4,OCT1980Þ;è;À -òMON.CH….EQ$24üMON.CV….EQ$25MON.VTABƒ.EQ$FC22MON.CLREOP.EQ$FC42MON.HOMEƒ.EQ$FC58$MON.CLREOL.EQ$FC9C.MON.WAITƒ.EQ$FCA88MON.COU     T1STCHARTO  ‡LDAVARNAMƒHASHTABLEINDEX " ‡SBC#'A, ‡ASL6 ‡ADC#HSHTBL@ ‡STASTPNTRJ ‡LDA/HSHTBL T ‡ADC#0^ ‡STASTPNTR+1&h ;--ƒFALLINTOCHAINSEARCHROUTINEr ;À -| CHAIN.SEARCH'† .1…LDY#0‡POINTATPOINTERINENTRY ‡LDA(STPNTTIONMARK? È ‡BNE.5*Ê ‡LDAPNTR…BACKUPPNTROVERQUOTEMARK Ë ‡BNE.7Ì ‡DECPNTR+1Í .7…DECPNTRÎ ‡RTS Ò .6…LDAVARNAM+2SETHIGHBITÜ ‡ORA#$80…TOFLAGARRAYæ ‡STAVARNAM+2REFERENCE ð .5…RTSú ;À - SEARCH.VARIABLE.TABLE ‡SECŠCONVEREQ.5‡ENDOFLINEd ‡JSRLTRDIGn ‡BCS.1‡LETTERORDIGITx .2…CMP#'$†DOLLARSIGN?‚ ‡BEQ.3‡YESŒ ‡CMP#'%†PERCENT?– ‡BNE.4‡NO  .3…STAVARNAM+2ª ‡JSRNEXT.CHAR´ ‡BEQ.5‡ENDOFLINE¾ .4…CMP#'(†LEFTPAREN?À ‡BEQ.6‡YES ‡CMP#'"†QUOTA"ö ‡STAVARNAMƒFIRSTCHAROFNAME& ‡LDA#'‡BLANKSFOROTHERTWOCHARS ‡STAVARNAM+1 ‡STAVARNAM+2 ‡JSRNEXT.CHAR( ‡BEQ.5‡ENDOFLINE2 ‡JSRLTRDIG< ‡BCC.2‡NOTLETTERORDIGITF ‡STAVARNAM+1(P .1…JSRNEXT.CHARIGNOREEXCESSCHARSZ ‡BINEV ;IFCHAR<>EOL,` ;“INCREMENTPNTRANDj ;“STATUSZ=0t ;IFCHAR=EOL,~ ;“STATUSZ=1ˆ ;À - ’ NEXT.CHAR œ ‡LDY#0¦ ‡LDA(PNTR),Y° ‡BEQ.1‡EOLº ‡INCPNTR…BUMPPOINTER Ä ‡BNE.1Î ‡INCPNTR+1 Ø .1…RTSâ ;À -ì PACK.VARIABLE.NAME$è‡BEQ.3‡YES,SCANOVERQUOTATIONò.2…RTSŠRETURNü.3…JSRNEXT.CHAR ‡BEQ.2‡EOL,RETURN ‡CMP#'"†TERMINALQUOTE? ‡BNE.3‡NOTYET$ ‡BEQ.1‡...ALWAYS. ;À -8 ;†NEXTCHARACTERFROMLINEB ;ˆCALL:‚JSRNEXT.CHAR L ;†RETURN:‚(A)=CHARFROML p.2…RTS%z;ƒDATA,SOSKIPTONEXTSTATEMENT„.3…JSRNEXT.CHAR.NOT.QUOTEŽ‡BEQ.2‡EOL,RETURN˜‡CMP#':†COLON?¢‡BNE.3‡NOTENDYET¬‡BEQ.1‡...ALWAYS¶;À -ÀNEXT.CHAR.NOT.QUOTEÊ.1…JSRNEXT.CHARÔ‡BEQ.2‡EOL,RETURNÞ‡CMP#'"†QUOTE?ENTRYî‡JSRADD.NEW.ENTRY ø‡JMP.1 .3…RTS ;À -GET.NEXT.VARIABLE .1…JSRNEXT.CHAR.NOT.QUOTE*‡BEQ.2‡ENDOFLINE4‡CMP#TKN.DATA >‡BEQ.3H‡CMP#TKN.REMR‡BEQ.2‡SKIPTONEXTLINE\‡JSRLETTERƒLETTER?f‡BCC.1‡NO,KEEPLOOKINGTOFLINE#CHAIN€‡STASYMBOL+5Š‡LDALINNUM+1MSBFIRST”‡STASYMBOL+6ž‡LDALINNUM¨‡STASYMBOL+7²‡LDA#8‡ADD8BYTEENTRY¼‡JSRADD.NEW.ENTRY ƇJMP.1Ð.2…JSRSEARCH.LINE.CHAIN"Ú‡BCC.1‡FOUNDSAMELINENUMBERä‡LDA#4‡ADD4BYTENTRþ‡LDADATA+1‡STAPNTR+1 ‡BNE.3 .3…RTS&;À -0SCAN.FOR.VARIABLES:.1…JSRGET.NEXT.VARIABLED‡BEQ.3‡ENDOFLINEN‡JSRPACK.VARIABLE.NAMEX‡JSRSEARCH.VARIABLE.TABLEb‡BCC.2‡FOUNDSAMEVARIABLE l‡LDA#0'v‡STASYMBOL+4STARUREPOINTERANDLINE#|.1…LDA(PNTR),Y†‡STADATA,Y‡DEY š‡BPL.1œ‡LDADATA+1ƒTESTFORENDž‡BEQ.3‡YES¤‡CLCŠSKIPOVERDATA ®‡LDAPNTR ¸‡ADC#4 ‡STAPNTR ̇BCC.2Ö‡INCPNTR+1à.2…JSRSCAN.FOR.VARIABLES ê‡LDADATA ô‡STAPÒ‡LDALOMEM ܇STAEOTæ‡LDALOMEM+1ð‡STAEOT+1)ú‡LDX#52†#OFBYTESFORHASHPOINTERS ‡LDA#0.1…STAHSHTBL-1,X‡DEX "‡BNE.1,‡LDAPRGBOT 6‡STAPNTR@‡LDAPRGBOT+1J‡STAPNTR+1T‡RTS^;À -hPROCESS.LINE&r‡LDY#3‡CAPTN.CROUT‚.EQ$FD8En;À -xVCR‚‡JSRINITIALIZATIONŒ.1…JSRPROCESS.LINE –‡BNE.1‡UNTILENDOFPROGRAM ‡JSRPRINT.REPORT,ª‡JSRINITIALIZATION‚ERASEVARIABLETABLE#¬‡LDA#0‡CLEAR$A4FORAPPLESOFT ®‡STA$A4´‡RTS¾;À -ÈINITIALIZATION -*PRGBOT.EQ$67,68ƒBEGINNINGOFPROGRAM0 LOMEM‚.EQ$69,6AƒBEGINNINGOFVARIABLESPACE(EOT„.EQ$6B,6CƒENDOFVARIABLETABLE;À -(TKN.REM„.EQ1782TKN.DATAƒ.EQ131<;À -FMON.CH….EQ$24PMON.PRBL2‚.EQ$F94AZMON.COUTƒ.EQ$FDEDdMO.EQ$1A,1BƒADDRESSOFNEXTLINE$°LINNUM.EQ$1C,1DƒCURRENTLINE#1ºSTPNTR.EQ$1E,1F‚POINTERINTOVARIABLESPACE ÄTPTRƒ.EQ$9B,9CƒTEMPPOINTER#ÎSYMBOL.EQ$9DTHRU$A4‚8BYTESØVARNAM.EQSYMBOL+1âHSHTBL.EQ$280ìENTRY.SIZE.EQ$A5,A6ö;ÀZZ.BEG$‡.TFXREF.OBJ.;À -8‡LDA#$4C…AMPERSANDVECTOR B‡STA$3F5 L‡LDA#VCR V‡STA$3F6 `‡LDA/VCR j‡STA$3F7t‡RTS~;À -)ˆPNTRƒ.EQ$18,119‚POINTERINTOPROGRAM’DATAƒ.EQ$1ATHRU$1D$œLZFLAG.EQ$1A†LEADINGZEROFLAG*¦NEXTLNT.CHAR‡DEX (‡BPL.12‡RTS#<.5…BITLZFLAGƒLEADINGZEROFLAGF‡BMI.4‡NOP‡LDA#'‡BLANKZ‡BNE.4‡...ALWAYSdPLNTBL.DA#1 n‡.DA#10 x‡.DA#100‚‡.DA#1000Œ‡.DA#10000–PLNTBH.DA/1  ‡.DA/10 ª‡.DA/100´‡.DA/1000¾‡.DA‡SBCPLNTBH,X’‡BCC.3‡LESSTHANDIVISORœ‡STALINNUM+1¦‡PLA°‡STALINNUMº‡PLAćADC#0‡INCREMENTDIGIT·BNE.2‡...ALWAYS Ø.3…PLAâ‡PLA ì‡CMP#'0"ö‡BEQ.5‡ZERO,MIGHTBELEADING‡SECŠTURNOFFLZFLAG ‡RORLZFLAG.4…JSRPRINHƒCALCULATE#OFBLANKSü‡TAX‡JSRMON.PRBL2 .4…RTS;À -$PRINT.LINE.NUMBER.‡LDX#4‡PRINT5DIGITS)8‡STXLZFLAGƒTURNONLEADINGZEROFLAGB.1…LDA#'0†DIGIT=0 L.2…PHAV‡SEC`‡LDALINNUMj‡SBCPLNTBL,Xt‡PHA~‡LDALINNUM+1ˆEŽ‡JSRMON.CROUT˜TAB.NEXT.COLUMN¢.1…LDA#7‡FIRSTTABSTOP!¬.2…CMPMON.CHƒCURSORPOSITION¶‡BCS.3‡PERFORMTABÀ‡ADC#6‡NEXTTABSTOPʇCMP#33†ENDOFLINE? Ô‡BCC.2Þ‡BCSTAB.NEW.LINE‚...ALWAYSè.3…BEQ.4‡ALREADYTHERE%ò‡SBCMON.CLINNUM+1ä‡INYî‡LDA(TPTR),Yø‡STALINNUM‡JSRPRINT.LINE.NUMBER ‡LDY#1‡SETUPNEXTPOINTER‡LDA(TPTR),Y ‡BEQ.2*‡PHA4‡DEY>‡LDA(TPTR),Y H‡STATPTRR‡PLA\‡STATPTR+1f‡BNE.1‡...ALWAYS p.2…RTSz;À -„TAB.NEW.LIN),YPOINTERTONEXTVARIABLEN‡BEQ.5‡NOMOREX‡PHAb‡DEYl‡LDA(PNTR),Y v‡STAPNTR€‡PLAŠ‡STAPNTR+1”‡BNE.1‡...ALWAYS ž.5…RTS¨;À -²PRINT.LINNUM.CHAIN¼.1…JSRTAB.NEXT.COLUMNƇLDY#2‡POINTATLINE#ЇLDA(TPTR),YÚ‡STA.2 ¸‡LDA(PNTR),YCHECKIFARRAY ‡BPL.4 ̇LDA#'(Ö‡JSRPRINT.CHAR à.4…CLCŠPOINTATLINE#CHAIN ê‡LDAPNTR ô‡ADC#4 þ‡STATPTR‡LDAPNTR+1 ‡ADC#0‡STATPTR+1&‡JSRPRINT.LINNUM.CHAIN0‡JSRMON.CROUT :‡LDY#1*D‡LDA(PNTRES ‡CLCŠNO LD1„RTS "LD2„SEC,‡RTS6;À -@PRINT.LETTER.CHAINJ.1…LDAVARNAMƒFIRSTLETTERT‡JSRPRINT.CHAR ^‡LDY#1 h.2…INYr‡LDA(PNTR),YRESTOFNAME |‡AND#$7F†‡CMP#'‡BLANK? ‡BEQ.3š‡JSRPRINT.CHAR ¤.3…CPY#3 ®‡BCC.2…INCVARNAMƒNEXTLETTERx‡LDAVARNAM‚‡CMP#'Z+1Œ‡BCC.1‡STILLMORELETTERS–‡RTSŠFINISHED ;À - ªLTRDIG´‡CMP#'0†DIGIT?¾‡BCCLD1†NOȇCMP#'9+1Ò‡BCCLD2†YES ÜLETTERæ‡CMP#'A†LETTER?ð‡BCCLD1†NOú‡CMP#'Z+1‡BCCLD2†Y;À -ìPRINT.REPORTö‡LDA#'A†STARTWITHA'S.1…STAVARNAM ‡SEC$‡SBC#'A†CONVERTTOHSHTBLINDEX‡ASL(‡TAY2‡LDAHSHTBL+1,Y$<‡BEQ.2‡NOENTRYFORTHISLETTERF‡STAPNTR+1P‡LDAHSHTBL,Y Z‡STAPNTRd‡JSRPRINT.LETTER.CHAINnAIN V‡ADC#4`‡STASYMBOLj‡LDASTPNTR+1 t‡ADC#0~‡STASYMBOL+1ˆ‡LDA#SYMBOL’‡STASTPNTRœ‡LDA/SYMBOL¦‡STASTPNTR+1+°‡LDALINNUMƒPUTLINENUMBERINTOSYMBOLº‡STASYMBOL+3ćLDALINNUM+1·STASYMBOL+2؇JMPCHAIN.SEARCHâ .2…LDASYMBOL,YÀ ‡STA(TPTR),YÊ ‡DEY Ô ‡BPL.2 Þ ‡LDATPTRè ‡STASTPNTRò ‡LDATPTR+1ü ‡STASTPNTR+1‡RTS.3…JMPMEM.FULL.ERRMEM.FULL.ERR$‡BRK.;À -8SEARCH.LINE.CHAIN B‡CLCŠADJUSTPOINTERTOSTARTL‡LDASTPNTRƒOFLINE#CHTPTR,Y* ‡ADCENTRY.SIZE,Y4 ‡STAEOT,Y> ‡INYH ‡DEX R ‡BPL.1&\ ;--ƒSEEIFGOINGTOBEENOUGHROOM f ‡LDAEOTp ‡CMP#ZZ.BEGz ‡LDAEOT+1„ ‡SBC/ZZ.BEGŽ ‡BCS.3‡MEMFULLERR&˜ ;--ƒMOVEENTRYINTOVARIABLETABLE¢ ‡LDYENTRY.SIZE¬ ‡DEY¶RŠ ‡LDATPTR+1” ‡STASTPNTR+1ž ‡CLC¨ ‡RTS² ;À -¼ ADD.NEW.ENTRYÆ ‡STAENTRY.SIZEÐ ‡CLCŠSEEIFROOM Ú ‡LDX#1 ä ‡LDY#0î ‡STYENTRY.SIZE+1)ø .1…LDA(STPNTR),YGETCURRENTPOINTER ‡STASYMBOL,Y ‡LDAEOT,Y ‡STA(STPNTR),Y ‡STAGþ ‡BNE.4‡NOTINTHISCHAIN ‡DEX ‡BEQ.5‡NAMEISTHESAME ‡INYŠNEXTBYTEPAIR& ‡BNE.2‡...ALWAYS0 ;À -): .3…JSR.5‡UPDATEPOINTER,CLEARCARRYD ‡BCC.1‡...ALWAYSN ;À -X .4…SECŠDIDNOTFINDb ‡RTSl ;À -v .5…LDATPTR€ ‡STASTPNTR),Y š ‡STATPTR¤ ‡INY® ‡LDA(STPNTR),Y&¸ ‡BEQ.4‡ENDOFCHAIN,NOTINTABLE ‡STATPTR+1"Ì ‡LDX#2‡2MORECHARSINSYMBOL"Ö ‡LDY#2‡POINTATNAMEINENTRY!à .2…LDA(TPTR),YCOMPARENAMESê ‡CMPSYMBOL,Y*ô ‡BCC.3‡NOTTHISONE,BUTKEEPLOOKIN^ ‡SBCPLNTBL,Xh ‡PHAŠSAVEBYTEONSTACKr ‡LDALINNUM+1| ‡SBCPLNTBH,X† ‡BCC.2‡LESSTHANDIVISOR ‡STALINNUM+1š ‡PLA‰GETLOWBYTEOFFSTACK¤ ‡STALINNUM® ‡PLAŠGETDIGITFROMSTACK¸ ‡ADC#0‡INCREMENTDIGIT ‡BNE.1‡...ALWAYS"Ì .2…PLAÜ ‡JSRGNBIæ .1…DECBLANK.COUNTð ‡LDA#'‡BLANKú ‡RTS ;À - ;†PRINTLINENUMBER ;À -" PRINT.LINNUM, ‡LDX#3‡PRINT4DIGITS&6 .3…LDA#'0†SETDIGITTOASCIIZERO@ .1…PHAŠPUSHDIGITONSTACK!J ‡SECŠSUBTRACTCURRENTDIVISORT ‡LDALINNUM2…JMPMON.CROUT2 ;À -< GNB„LDY#0F ‡STYBLANK.COUNTP ‡LDA(SRCP),YZ GNBIƒINCSRCP d ‡BNE.1n ‡INCSRCP+1 x .1…RTS‚ ;À -Œ NEXT.TOKEN – ‡LDY#0  ‡LDABLANK.COUNT ª ‡BNE.1´ ‡LDA(SRCP),Y ¾ ‡BPLGNBI È ‡AND#$7FÒ ‡STABLANK.COUNT œ ;†LISTONESOURCELINE¦ ;À -° ASM.LIST.LINE!º ‡JSRGNB†SKIPOVERBYTECOUNTÄ ‡JSRGNB†GETLINENUMBERÎ ‡STALINNUM Ø ‡JSRGNBâ ‡STALINNUM+1ì ;--ƒJSRPRINT.LINNUMö .1…JSRNEXT.TOKEN ‡CMP#0 ‡BEQ.2 ‡JSRPRINT.CHAR  ‡JMP.1( .è‡JMPPRINT.QUOTEò;À -ü;†LISTSOURCEPROGRAM ;À -  ASM.LIST  ‡LDAPP $ ‡STASRCP . ‡LDAPP+18 ‡STASRCP+1B .1…LDASRCPL ‡CMPHIMEMV ‡LDASRCP+1` ‡SBCHIMEM+1j ‡BCS.2‡FINISHEDt ‡JSRASM.LIST.LINE ~ ‡JMP.1 ˆ .2…RTS’ ;À -QUOTATIONH;À -RPRINT.QUOTE.NEXT\‡INYfPRINT.QUOTEp‡LDAQTS,Yz‡JSRPRINT.CHAR„‡BPLPRINT.QUOTE.NEXTŽ‡RTS˜;À -¢;†CLOSEALLFILES¬;À -¶CLOSE.FILEÀ‡JSRMON.CROUT ʇLDA#$84Ô‡JSRPRINT.CHARCTRL-DÞ‡LDY#QCLOSE-QTSTADOS.BUFFER,Y”.6…LDADOS.BUFFER,Yž‡INY¨‡BNE.5‡...ALWAYS ².7…RTS¼;À -Æ;†PRINTCHARACTERÐ;À -ÚPRINT.CHARä‡PHAî‡STYPC.SAVEY ø‡ORA#$80‡JSRMON.COUT ‡LDYPC.SAVEY‡PLA ‡RTS*PC.SAVEY.BS14;À ->;†PRINTA‡.AS-//ô;À -þ;†ISSUEDOSCOMMAND;À -ISSUE.DOS.COMMAND‡LDA#$84…CTRL-D&‡JSRPRINT.CHAR0‡JSRPRINT.QUOTE :‡LDY#0D‡LDA#'‡PRINTSPACEN.5…JSRPRINT.CHAR X‡CMP#$8D b‡BEQ.7l‡CMP#',†COMMA? v‡BNE.6 €‡LDA#$8DŠ‡SADOS.RUNFLAGT‡JMPWARM.ENTRY^;À -h;†MESSAGETEXTr;À -|QTS†QCLOSE.AS/CLOSE/ ‡.HS8DšQOPEN‚.AS/OPE/ ¤‡.AS-/N/®QDELETE.AS/DELET/ ¸‡.AS-/E/ÂQWRITE.AS/WRIT/ ̇.AS-/E/ÖQFILNAM.HS0Dà‡.AS/TEXTFILENAME:/ ê#QOPEN-QTS´‡JSRISSUE.DOS.COMMAND¾‡LDY#QWRITE-QTSȇJSRISSUE.DOS.COMMANDÒ;À -Ü;†LISTTHESOURCEPROGRAMæ;À -ð‡JSRASM.LISTú;À -;†CLOSETHEFILE;À -‡JSRCLOSE.FILE";À -,;†RETURNTOCALLER6;À - @‡LDA#0J‡STDAMON.BUFFER,Y2‡STADOS.BUFFER,Y<‡DEY F‡BPL.1P;À -Z;†SETUPTHETEXTFILE(d;†(CLOSE,OPEN,DELETE,OPEN,WRITE)n;À -x‡JSRCLOSE.FILE‚‡LDY#QOPEN-QTSŒ‡JSRISSUE.DOS.COMMAND–‡LDY#QDELETE-QTS ‡JSRISSUE.DOS.COMMANDª‡LDYN.SETVID°‡JSRDOS.REHOOK º‡LDA#$FFćSTADOS.RUNFLAG#·LDA#"‡SETPROMPTCHAR=BLANK؇STAMON.PROMPTâ;À -ì;†GETFILENAMEö;À -‡LDY#QFILNAM-QTS ‡JSRPRINT.QUOTE‡JSRMON.GETLN(‡LDY#$7F…MOVEFILENAMETOSEPARATE(.1…L.DOS.BUFFER.EQ$2808MON.GETLN‚.EQ$FD6ABMON.CROUT‚.EQ$FD8ELMON.COUTƒ.EQ$FDEDVMON.SETVID.EQ$FE93`WARM.ENTRY.EQ$E003jDOS.REHOOK.EQ$3EAtBLANK.COUNT.EQ$00~SRCP‡.EQ$01,02ˆLINNUM….EQ$03,04’;À - œTEXT.LIST¦‡JSRMO˜‡.LISTOFF¢;À -¬;†WRITES-CASSEMBLYSOURCE¶;†ONTEXTFILEÀ;Ê;„APPLEASSEMBLYLINEÔ;†V1N2P9,NOV1980Þ;è;À - ò‡.OR$800üMON.PROMPT.EQ$33PP‰.EQ$CA,CBHIMEM†.EQ$4C,4DDOS.RUNFLAG.EQ$D9$MON.BUFFER.EQ$200     /10000È;À -ÒPRINT.CHAR ܇ORA#$80æ‡JSRMON.COUTð‡RTSú;À -ZZ.END.EQ*ZZ.SIZ.EQZZ.END-ZZ.BEG/UNMOLESTEDTOKEN²‡CMP#TOKEN.REM¼‡BEQ.5‡REMƇCMP#TOKEN.QUOTEЇBEQ.5‡QUOTATIONÚ‡BNE.2‡NEITHERä;À -îFIND.TOKENø‡LDX#TOKEN.TABLE ‡STXTKNP ‡LDX/TOKEN.TABLE$‡CMP#$51…SEEIFNEEDOTHERHALF ‡BCC.1‡NOŠTOKENTABLE *‡D‡BITIB.FLAG ‡BMI.9&‡JSR$EFF8+0.9…LDA(TKNP),Y‚GETCHAROFTOKENTABLE :‡BPL.10D‡TAXŠSAVECHARINX N‡AND#$3FX‡STAIB.FLAGb‡CLC l‡ADC#$A0v‡JSRCHAR.OUT€‡DEY Š‡CPX#$C0 ”‡BCC.9ž.10„JSR$E00C&¨‡PLAŠGETORIGINAL‡TAXŠTESTBYTE,SAVEINX-REGš‡BMI.4‡NORMALCHAR¤‡STAIB.FLAG®;À -¸.6…CMP#TOKEN.EOL‡BNE.7‡NOTEOL̇JMPMON.CROUT„EOLÖ.7…CMP#TOKEN.COLON à‡BNE.8ê‡JSRCR.7.BLANKSô‡LDA#TOKEN.COLONþ.8…PHAŠSAVETOKEN‡JSRFIND.TOKENEN"‡ASL!,‡BPL.1‡CONSTANT,GOPRINTIT6‡LDAIB.FLAG@‡BNE.3‡DONOTNOOEABLANK J‡LDA#$A0T‡STAIB.FLAG^‡JSRCHAR.OUTh.3…TXAŠRETRIEVEBYTE r.4…JSRCHAR.OUTANDPRINTIT|.5…LDA#-3†WITHIN3OFEOL †‡JSRCHECK.EOL.GET.NEXT.BYTE!AG!ȇJSRGET.NEXT.BYTEGETLINE#Ò‡TAXŠLOWBYTE ܇JSRGET.NEXT.BYTEHIGHBYTE#æ‡JSRPRINT.DECIMALPRINTLINE#ð.2…LDA#-7†WITHIN7OFEOL ú‡JSRCHECK.EOL.GET.NEXT.BYTE‡STYIB.FILL‚CLEARRJBF!‡TAXŠTESTBYTE,SAVEINX-REG‡BPL.6‡TOK‡FINISHEDP‡JSRPRINT.ONE.LINE Z‡JMP.1d.2…JMPDOS.REENTRYn;À -xPRINT.ONE.LINE ‚‡LDA#0Œ‡STALINE.POSITION+–‡LDA#$A0…SETUPPRINT.DECIMALFORRJBF ‡STAIB.FILL+ª‡JSRGET.NEXT.BYTESKIPOVERBYTECOUNT´‡TYAŠ(A)=0¾.1…STAIB.FL°;À -ºTOKEN.EOL….EQ$01ÄTOKEN.COLONƒ.EQ$03ÎTOKEN.REM….EQ$5DØTOKEN.QUOTEƒ.EQ$28â;À -ìPRETTY.LIST ö‡LDAPP ‡STASRCP ‡LDAPP+1‡STASRCP+1.1…LDASRCP…SEEIFATEND(‡CMPHIMEM2‡LDASRCP+1<‡SBCHIMEM+1F‡BCS.2MON.CHˆ.EQ$248PPŒ.EQ$CA,CBBHIMEM‰.EQ$4C,4DLSRCPŠ.EQ$E2,E3VTKNPŠ.EQ$CE,CF`IB.FLAG‡.EQ$EAjIB.FILL‡.EQ$FAt;À -~DOS.REENTRYƒ.EQ$3D0ˆGET.NEXT.BYTE.EQ$E02A’TOKEN.TABLEƒ.EQ$ED00œMON.COUT†.EQ$FDED¦MON.CROUT….EQ$FD8E˜‡.LISTOFF¢;À -!¬;†INTEGERBASICPRETTYLISTER¶;À;„APPLEASSEMBLYLINEÊ;†V1N3P2,DEC1980Ô;Þ;À -è‡.TFINTBAS.PRETTY.LIST.OBJò;À -ü;;†INTEGERBASICPRETTYLIST;À -LINE.LENGTHƒ.EQ$00$LINE.POSITION.EQ$01.    …RTS.3…LDAALIAS,Y(‡LDYSAVEY2‡RTS<.4…LDATOGGLE F‡EOR#$80P‡STATOGGLEZ‡JMP$FD0Cd;À -nCHRTBL.AS-"/LNM,HJKYUI"xTBLSIZ.EQ=-CHRTBL‚ALIAS‚.HS8DŒ‡.AS-"-0123456789"–;À -…tTOGGLE.BS1~SAVEY‚.BS1ˆ;À -’NKPœ‡JSR$FD1B¦‡CMP#$93…CONTROL-S °‡BEQ.4º‡BITTOGGLEćBMI.2‡NOTINNUMERICMODE·STYSAVEY؇LDY#TBLSIZ-1â.1…CMPCHRTBL,Yì‡BEQ.3‡FOUNDINTABLEö‡DEY ‡BPL.1 ‡LDYSAVEY .2Ò¶‡.LISTOFFÀ;À -Ê;†NUMERICKEYPADFORAPPLEÔ;Þ;„APPLEASSEMBLYLINEè;†V1N2P15,NOV1980ò;ü;À - ‡.OR$300‡.TFNUMPAD.OBJ;À - $‡LDA#1.‡STATOGGLE 8‡LDA#NKP B‡STA$38 L‡LDA/NKP V‡STA$39 `‡JMP$3EAj;À -   100l ‡.DA/1000v ;À -1ŠDISCARDBYTEFROMSTACKÖ ‡PLAŠGETDIGITFROMSTACKà ‡JSRPRINT.CHARê ‡DEXŠNEXTDIGIT ô ‡BPL.3þ ‡LDA#'‡BLANK ‡JSRPRINT.CHAR ‡RTSŠRETURN ;À -& PLNTBL.DA#1 0 ‡.DA#10 : ‡.DA#100D ‡.DA#1000N PLNTBH.DA/1 X ‡.DA/10 b ‡.DA/EQERR1<ERR3ƒJMPMFERFERR4ƒ.EQERR1P;À -ZCOPYd‡JSRSCND…GET3RDPARAMETER n‡CPX#6‡BESUREWEGOTTHREE#x‡BCCERR1…NOTENOUGHPARAMETERS&‚‡LDX#A0L…FINDBEGINNINGOFSOURCEŒ‡JSRSERTXT–‡LDA$E4†SAVEPOINTER  ‡STASS ª‡LDA$E5’A2L„.EQ$3EœA2H„.EQ$3F¦A4L„.EQ$42°A4H„.EQ$43ºLOMEM‚.EQ$4A,4BÄPP….EQ$CA,CBÎ;À -ØSYNXƒ.EQ$105EâMFERƒ.EQ$1128ìSCNDƒ.EQ$112DöSERTXT.EQ$14F6MON.MOVEƒ.EQ$FE2C ;À - ‡JMPCOPY;À -(ERR1ƒJMPSYNX2ERR2ƒ.COPIEDLINES$;À - .ZZ.BGN8;À -'BSS….EQ$00,01ƒSTARTOFSOURCEBLOCK%LSE….EQ$02,03ƒENDOFSOURCEBLOCK(VSL….EQ$04,05ƒLENGTHOFSOURCEBLOCK(`NEWPP‚.EQ$06,07ƒNEWPROGRAMPOINTERjA0L„.EQ$3AtA0H„.EQ$3B~A1L„.EQ$3CˆA1H„.EQ$3D¡ ¢‡.LISTOFF¬;À -¶;†COPYL1,L2,L3À;Ê;„APPLEASSEMBLYLINEÔ;†V1N3P11,DEC1980Þ;è;À -ò;†COPYL1,L2,L3&ü;ŠL1=FIRSTLINEOFRANGETOCOPY%;ŠL2=LASTLINEOFRANGETOCOPY-;ŠL3=LINENUMBERBEFOREWHICHTOINSERT;“THE   OREP‡JMPCMNT…FINISHEDZMOREƒJMPPSDA dLOW.BYTEn‡LDAEXP.VALUEx‡CLC‚‡BCCALL†...ALWAYSŒ;À -OJMP$19B2)ćJMPLOW.BYTE…(JMP$194D)·JMPHIGH.BYTE„(JMP$19D7)Ø;À -â‡.OR$24B0ˆREPLACES:ì;†.TFPATCH.DA.1öBOTH.BYTES‡LDAEXP.VALUE ‡JSREMIT HIGH.BYTE‡LDAEXP.VALUE+1(ALL„JSREMIT 2‡JSRGNC<‡CMP#',†COMMA? F‡BEQM.DA.18;†3.‚BLOADPATCH.DA.2(B;†4.‚BSAVEASMDISK4.1,A$1000,L$14FBL;V;À -`EXP.VALUE‚.EQ$DBj;À -tGNCˆ.EQ$128B~EMIT‡.EQ$19FAˆCMNT‡.EQ$188E’PSDA‡.EQ$20B5œ;À -¦‡.OR$20D4ˆREPLACES:°;†.TFPATCH.DA.1º‡JMPBOTH.BYTESƒ(m˜‡.LISTOFF¢;À -¬;†PATCHSCASM¶;‡.DAWITHCOMMALISTÀ;Ê;„APPLEASSEMBLYLINEÔ;†V1N3P9,DEC1980Þ;è;À -#ò;†PATCHFOR.DAWITHCOMMALISTü;À -;;†TOINSTALLTHISPATCH:;$;†1.‚BRUNASMDISK4.0.;†2.‚BLOADPATCH--YES%– ‡CMP#$B0…NO,SEEIFLEADINGZERO  ‡BEQ.3‡MAYBEª ‡STA$C9†NO)´ .3…BIT$C9†STILLPLUSIFLEADINGZERO¾ ‡BMI.4‡NOTLEADNINGZERO"È ‡LDAIB.FILL‚SEEIFBLANKFILLÒ ‡BEQ.5‡NOÜ .4…JSRCHAR.OUTPRINTCHAR æ .5…DEX ð ‡BPL.7ú ‡RTS ;À C9†LEADINGZEROFLAGö .7…LDA#$B0 ‡STA$F9 .1…LDA$F2 ‡CMP$E563,X  ‡LDA$F3( ‡SBC$E568,X 2 ‡BCC.2 < ‡STA$F3 F ‡LDA$F2P ‡SBC$E563,X Z ‡STA$F2 d ‡INC$F9n ‡BNE.1‡...ALWAYSx .2…LDA$F9‚ ‡CPX#0‡SEEIFLASTDIGITŒ ‡BEQ.4‡. ;À -8 CR.7.BLANKS B ‡LDA#$8D L ‡LDY#7V ‡STYLINE.POSITION` .1…JSRCHAR.OUT j ‡LDA#$A0t ‡DEY ~ ‡BNE.1ˆ ‡RTS’ ;À - œ CHAR.OUT¦ ‡INCLINE.POSITION° ‡JMPMON.COUTº ;À -Ä PRINT.DECIMAL Î ‡STA$F3 Ø ‡STX$F2 â ‡LDX#4ì ‡STA$˜‡CPX#$00…KEEPLOOKING ¢‡BMI.3 ¬.4…TAX¶‡PLAÀ‡SBC#1‡DECREMENTTOKENʇBNE.2‡NOTTHEREYETÔ‡RTSÞ;À -èCHECK.EOL.GET.NEXT.BYTEò‡CLCü‡ADCLINE.LENGTH ‡CMPLINE.POSITION  ‡BCS.1 ‡JSRCR.7.BLANKS$ .1…JMPGET.NEXT.BYTEEXŠYES 4‡SBC#$50>.1…STXTKNP+1'H.2…PHAŠSAVEMODIFIEDTOKENONSTACK$R‡LDA(TKNP),YƒYGOES0,FF,FE,... \.3…TAXf‡DEY(p‡LDA(TKNP),YLOOKFORNEGATIVEBYTE z‡BPL.3*„‡CPX#$C0…IFBYTEBEFORENEGATIVEBYTE"Ž‡BCS.4‡BTWN$C0AND$FF,THEN!¢‡.LISTOFF¬;À -¶;†GENERALMOVESUBROUTINEÀ;Ê;„APPLEASSEMBLYLINEÔ;†V1N4P5,JAN1981Þ;è;À -ò;†GENERALMOVESUBROUTINEü;À -*;†BRUNTHEPROGRAMTOSETUPASCTRL-Y;†MONITORROUTINE;À -'$;†USELIKEMONITORMOVESUB   TOENDOFTHIS256BYTES&Ò‡LDA(HIGHTR),Y‚MOVEONEMOREBYTE܇STA(HIGHDS),Y-æ.4…DECHIGHTR+1„DOWNTONEXTBLOCKOF256ð‡DECHIGHDS+1ú‡DEXŠPAGECOUNT ‡BNE.3‡RTS;À -C <‡SBC$5EF‡STAHIGHTR P‡BCS.1Z‡DECHIGHTR+1d‡SEC2n.1…LDAHIGHDSƒBACKUPHIGHDSBYPARTIALPAGE# x‡SBC$5E‚‡STAHIGHDS Œ‡BCS.3–‡DECHIGHDS+1 ‡BCC.3‡...ALWAYSª.2…LDA(HIGHTR),Y´‡STA(HIGHDS),Y ¾.3…DEY)ȇBNE.2‡LOOPIGHTR·SBCLOWTR%؇STA$5E†SAVEPARTIALPAGEAMOUNTâ‡TAYŠALSOINYì‡LDAHIGHTR+1ö‡SBCLOWTR+1‡TAXŠ#WHOLEPAGESINX ‡INX ‡TYAŠ#BYTESINPARTIALPAGE‡BEQ.4‡NOPARTIALPAGE0(‡LDAHIGHTRƒBACKUPHIGHTRBYPARTIALPAGE#2‡SEOINTER.tLOWTR‚.EQ$9B,9CƒBLTU'SSRCESTARTPOINTER~;À -+ˆREASON.EQ$D3E3„CHECKIFENOUGHMEMORY’;À -*œBLTUƒJSRREASONƒBESURE(Y,A)‡STAA4LH‡LDANEWPP+1 R‡STAPP+1 \‡STAA4H f‡LDA$E5 p‡STAA2H z‡LDA$E4 „‡STAA2L Ž‡BNE.2˜‡DECA2H†A2=A2-L¢ƒTARGETISABOVESOURCEBLOCK,SOWEHAVETO"b;ƒADJUSTSOURCEBLOCKPOINTERSl‡SEC v‡LDASS€‡SBCSL‡SS=SS-SL Š‡STASS ”‡LDASS+1 ž‡SBCSL+1 ¨‡STASS+1²‡SEC ¼‡LDASEƇSBCSL‡SE=SE-SL ЇSTASE Ú‡LDASE+1 ä‡SBCSL+1 î‡FULLERRÖ;À -"à‡LDX#A2L…FINDTARGETLOCATIONê‡JSRSERTXT%ô‡LDASS‡BESURENOTINSIDESOURCE þ‡CMP$E4 ‡LDASS+1 ‡SBC$E5‡BCS.1‡BELOWSOURCEBLOCK &‡LDA$E4 0‡CMPSE :‡LDA$E5 D‡SBCSE+1!N‡BCCERR4…INSIDESOURCEBLOCK1X; @‡LDASLJ‡BEQERR2…NOTHINGTOMOVET;À -$^.4…LDAPP‡COMPUTENEWPPPOINTER h‡SBCSLr‡STANEWPP |‡LDAPP+1 †‡SBCSL+1‡STANEWPP+1š;À -#¤‡LDANEWPP„SEEIFROOMFORTHIS®‡CMPLOMEM¸‡LDANEWPP+1‡SBCLOMEM+1̇BCCERR3…MEM ´‡STASS+1&¾‡LDX#A1L…FINDENDOFSOURCEBLOCKȇJSRSERTXT!Ò‡SECŠSAVEPOINTERANDCOMPUTE܇LDA$E6†LENGTH æ‡STASE ð‡SBCSSú‡STASL‡SOURCELENGTH ‡LDA$E7 ‡STASE+1 ‡SBCSS+1 "‡STASL+1,‡BCCERR2…RANGEBACKWARD 6‡BNE.4B;‚SYSTEMEQUATESL;À -VMON.COUTƒ.EQ$FDED`MON.BELLƒ.EQ$FF3AjMON.RDKEY‚.EQ$FD0CtMON.CLREOP.EQ$FC42~MON.VTABƒ.EQ$FC22ˆCH‰.EQ$24’CV‰.EQ$25œDOS.REENTRY.EQ$3D0¦;À -°;‚ASSEMBLEREQUATESº;À -ÄGNL„.EQ$1026ÎNML„.<¢‡.LISTOFF¬;À -¶;†S-CASMEDITÀ;Ê;„APPLEASSEMBLYLINEÔ;†V1N4P10,JAN1981Þ;è;À -/ò;‚EDITCOMMANDFORS-CASSEMBLER][VER4.0ü;;†WRITTENBYMIKELAUMER;‘DEC6,1980;À - $‡.OR$800.‡.TFS-C.EDIT.OBJ8;À -                 „USEGOTOCODE2‡JMPAS.NEWSTT<;À -„.TXTPTR+1º‡PHASTACKTXTPTRćLDAAS.TXTPTR·PHA'؇LDAAS.LINNUM+1STACKCURR.LINE#â‡PHAì‡LDAAS.LINNUMö‡PHA‡LDA#TKN.GOSUB‚MARKSTACK ‡PHA#‡JSRAS.FRMNUMƒEVALUATEFORMULA%‡JSRAS.GETADRƒCONVERTTOINTEGER(‡JSRAS.GOTO1EQ$50,51BAS.FRMNUM‚.EQ$DD67LAS.GOTO1ƒ.EQ$D941VAS.NEWSTT‚.EQ$D7D2`AS.GETADR‚.EQ$E752j;À - t‡.OR$300~COMPUTED.GOSUB$ˆ‡LDA#TKN.GOSUB‚CHECKIF&GOSUB’‡JSRAS.SYNCHR"œ‡LDA#3ŠCHECKIFROOMONSTACK¦‡JSRAS.MEMCHK°‡LDAAS'¢‡.LISTOFF¬;À -¶;†COMPUTEDGOSUBÀ;Ê;„APPLEASSEMBLYLINEÔ;†V1N4P8,JAN1981Þ;è;À -ò;†&GOSUBü;À -TKN.GOSUB‚.EQ$B0;À -AS.SYNCHR‚.EQ$DEC0$AS.MEMCHK‚.EQ$D3D6.AS.TXTPTR‚.EQ$B8,B98AS.LINNUM‚.    ‡DEX >‡BNE.4 H.5…RTSR;À -EY ²‡BNE.1*¼‡LDA(A2L),Y‚MOVELOWESTBYTEINBLOCKƇSTA(A4L),YÐ.3…DECA2H Ú‡DECA4Hä‡DEXŠANYMOREBLOCKS?î‡BNE.2‡YES"ø;---MOVESHORTBLOCKIFANYÀ-‡LDXBLOCK.SIZE ‡BEQ.5‡NONELEFT .4…DEY ‡LDA(A2L),Y*‡STA(A4L),Y4VE.UP0‡CLCŠCOMPUTEDESTEND+1 :‡LDAA4LD‡ADCBLOCK.SIZE N‡STAA4L X‡LDAA4Hb‡ADCBLOCK.SIZE+1 l‡STAA4H v‡LDY#0€‡BEQ.3‡...ALWAYSŠ;---MOVEAWHOLEBLOCKÀ -1”.1…LDA(A2L),Y‚MOVEBYTES255THRU1INBLOCKž‡STA(A4L),Y ¨.2…DNE.1 ¤‡INCA1H†POINTATNEXTBLOCK ®‡INCA4H¸‡DEXŠANYMOREWHOLEBLOCKS?‡BNE.1‡YES7Ì.2…LDXBLOCK.SIZE‚ANYEXTRABYTESINASHORTBLOCK?Ö‡BEQ.4‡NONELEFTà.3…LDA(A1L),Yê‡STA(A4L),Yô‡INYþ‡DEX ‡BNE.3 .4…RTS;À - &MO1‡TYAH‡ADCNEXT+1R‡STANEXT+1$\‡JSRGNB†GETLINE#FROMDISPLAYf‡STACURRENT.LINE.NUMBER p‡JSRGNBz‡STACURRENT.LINE.NUMBER+1„‡SECŽ‡ROR$F8†STUFFWBUFž‡JSRSERTXT ¨‡LDA$E4 ²‡STASRCP!¼‡STANEXT…SAVENEXTLINEADRS ƇLDA$E5ЇSTASRCP+1Ú‡STANEXT+1 ä.2…RTSî.4…JSR.3‡SEARCHFORLINEø‡BCC.2‡NOTFOUND,EXIT'E.LISTJSRE.POSNƒPOSITIONFOREDIT# ‡JSRMON.CLREOP‚PREPAREDISPLAYEND ‡LDA$E7‡STAEND+1&.1…LDANEXT+10‡STASRCP+1:‡PHA D‡LDANEXT N‡STASRCP X‡CMPENDb‡PLAl‡SBCEND+1„PASTENDLINE?v‡BCS.2‡YES,EXIT€‡JSRE.LISTƒNO,LIST&EDITŠ‡JMP.1‡TRYFORNEXTLINE”.3…LDX#A0L…FINDSTARTPTRFOREDITCOMMANDr;À -|NEXTƒ.DA0 †END„.DA0CHARƒ.DA#0šEDPTR‚.DA#0¤FKEYƒ.DA#0®;À - ¸EDITƒDEX‡DEẊBMI.2‡NOARGUMENTSÖ‡BEQ.4‡1ARGUMENTà‡JSR.3‡2ARGUMENTSê‡LDX#A1L…FINDENDPTRô‡JSRSERNXT þ‡LDA$E6 ‡STA8Ò‡LDA#NEW.NML܇STANML+1æ‡LDA/NEW.NMLð‡STANML+2ú‡JMPDOS.REENTRY;À -";‚PATCHROUTINESFORASSEMBLER;À -"NEW.NMLJSRMY.NML ,‡JMPGNL6MY.NMLLDY#0@‡JSR$128DJ‡JSR$114AT‡JMP$1066^;À -&h;‚LOCALVARIABLES;‚ENTRYPOINTFORBRUN.‚ACTIVATES d;‚THEUSRASSEMBLERCOMMAND.n;À -xENTRY‚LDA#EDIT$‚‡STA$1007„PATCHASMUSRCOMMANDŒ‡LDA/EDIT–‡STA$1008" ‡LDA#$60…PATCHNMLTOMAKEITª‡STA$1125ˆASUBROUTINE ´‡LDA#$4C ¾‡STANMLȇSTA$107EQ$1063ØPLNOƒ.EQ$1779âGNB„.EQ$12C5ìDOITƒ.EQ$1874öSEARCH.EQ$164BSERTXT.EQ$14F6 SERNXT.EQ$14FENTKNƒ.EQ$12AFA0L„.EQ$3A,3B(A1L„.EQ$3C,3D2SRCPƒ.EQ$DD,DE<WBUFƒ.EQ$200"FCURRENT.LINE.NUMBER.EQ$D3,D4P;À -%Z(‡STACNTR!2.2…LDASPEAKER‚TOGGLESPEAKER/<‡LDY$BA00,X‚GETPULSEWITHPSEUDO-RANDOMLY%F.1…DEYŠDELAYLOOPFORPULSEWIDTH P‡BNE.1+Z‡DEXŠGETNEXTPULSEOFTHISNOISEBURST d‡BNE.2"n‡DECCNTR…GETNEXTNOISEBURST x‡BNE.2‚‡RTSŒ;À -0MICROSECS+ćJSRMON.WAITFORHALFCYCLEOF1000HZ·LDASPEAKER‚TOGGLESPEAKER؇DEYŠCOUNTHALFCYCLESâ‡BNEBELL2„NOTFINISHEDì‡RTSö;À -;†MACHINE-GUNNOISE ;À -'NOISE‚LDX#64†LENGTHOFNOISEBURST‡LDA#10†#OFNOISEBURSTS 0‡STARTDELAYCOUNTER!L.1…LDASPEAKER‚TOGGLESPEAKERV.2…DEXŠDELAYLOOP `‡BNE.2j‡DEYŠQUITAFTER128CYCLES t‡BNE.1~‡RTSˆ;À -’;†APPLE"BELL"ROUTINEœ;À - ¦MON.BELL°‡LDY#192…#OFHALFCYCLES0ºBELL2‚LDA#12†SETUPDELAYFOR50¹¢‡.LISTOFF¬;À -¶;†TONEROUTINESÀ;Ê;„APPLEASSEMBLYLINEÔ;†V1N52,FEBR1981Þ;è;À -ò;†SIMPLETONEü;À -SPEAKER„.EQ$C030MON.WAITƒ.EQ$FCA8CNTR‡.EQ$00$;À -.SIMPLE.TONE8‡LDY#0‡STARTCYCLECOUNTERB‡LDX#         E.RIT-1¼‡.DA#$98…^XƇ.DAE.ABORT-1 Ї.DA#0Ú;À -END-1‡.DA#$86…^F&‡.DAE.FIND-10‡.DA#$88…^H:‡.DAE.BKSP-1D‡.DA#$89…^IN‡.DAE.INS-1X‡.DA#$8D…^Mb‡.DAE.RET-1l‡.DA#$8F…^Ov‡.DAE.OVR-1€‡.DA#$91…^QŠ‡.DAE.RETQ-1”‡.DA#$94…^Tž‡.DAE.TAB-1¨‡.DA#$95…^U²‡.DASTACH†‡JSRMON.VTABSETEBASL‡JSRMON.RDKEYINPUTACHAR š‡STACHAR¤‡RTS®;À -¸;‚COMMANDTABLEÂ;À -ÌEDTBƒ.DA#3‡ITEMSIZEÖ‡.DA#1‡KEYSIZEà‡.DA#$82…^Bê‡.DAE.BEG-1ô‡.DA#$84…^Dþ‡.DAE.DEL-1‡.DA#$85…^E‡.DAE.æ‡STAWBUF+6ð‡JSRE.DISPƒSHOWCANCELú‡JMPGNL†GETNEXTCOMMAND;À -E.INPUTLDA#19 ‡STACV"‡TXA‹POSITIONTOCURSOR,‡CLC 6‡ADC#5@.1…CMP#40†THISLINE?J‡BCC.2‡YEST‡SEC ^‡SBC#40h‡INCCV‡ONNEXTLINE r‡BNE.1 |.2…DOFBUFFERd‡BNE.1‡NOn‡STAWBUF+6,Xx‡LDA#$A0…PUTABLANK ‚‡STAWBUF+5,XTOEXTENDLINEŒ‡CPX#256-5-2 –‡BEQ.2 .1…INXŠMOVEAHEADª.2…CLCŠRETURNNODISPLAY´‡RTS¾;À -%ÈE.ABORTLDA#$DC„OUTPUTBACKSLASHÒ‡STAWBUF+5 ܇LDA#0À -âE.TAB‚CPX#20† ;À -H E.OVR‚JSRE.INPUT‚READCHARR ‡JMPE.INS1ƒSKIPCTRLCHECK\ ;À -f E.INS‚JSRE.INPUT‚READCHAR%p ‡CMP#$A0…CTRLCHARPOPSUSEROUTz ‡BCCE.INS2ƒOFINSERT$„ EQ.1‡ENDOFBUFFER¨ ‡CMPFKEY…NO,SEEIFKEY² ‡BNE.3‡NO,GOFORWARD ¼ ‡JSRE.INPUT‚TRYANOTHERKEYÆ ‡CMPFKEY…SAMECHAR?Ð ‡BEQ.3‡YES,SEARCHAGAINÚ ‡PLAä ‡PLA%î ‡STXEDPTR„NO,EXITPOINITNGHERE ø ‡JMPE.2 ;À - E.BKSPTXAŠATBEGINNIBC#$B0d‡TAXn‡LDACODES,Xx‡STAEL.CODE‚‡AND#7‡GETELEMENTCOUNTŒ‡BEQ.4‡NOCODE–‡STAEL.COUNT. .1…ASLEL.CODE‚PUTNEXTELEMENTINTOCARRYª‡BCC.2‡MAKE'DIT'&´‡JSREL.DITƒMAKE'DAH'FROM3DITS¾‡JSREL.DITÈ.2…JSREL.DITƒMAKE$36ćLDA/MORSE ·STA$37 ؇JMP$3EAâ;À -'ìMORSE‚CMP#$B0…SEEIFPRINTINGCHARö‡BCC.1‡NO‡PHAŠSAVECHARONSTACK ‡JSRSEND.CHAR‡PLAŠGETCHAROFFSTACK.1…JMP$FDF0(;À - 2SEND.CHAR<‡STXSAVEXF‡STYSAVEYP‡SEC Z‡SLEL.SPEED.EQ120VEL.PITCH.EQ80`;À -&jCODES‚.HSFD7D3D1D0D0585C5E5F5‚0-9t‡.HS000000000000,~‡.HS004284A4830124C3040274A344C2‚@,A-M'ˆ‡.HS82E364D443038123146394B4C4ƒN-Z’‡.HS000000000000œ;À -¦SETUP.MORSE°‡LDA#MORSE º‡STAµ¢‡.LISTOFF¬;À -¶;†MORSECODEOUTPUTÀ;Ê;„APPLEASSEMBLYLINEÔ;†V1N5P7,FEBR1981Þ;è;À -ò;†MORSECODEOUTPUTü;À -SPEAKER„.EQ$C030DUMMY†.EQ$C000;À -$SAVEX„.BS1.SAVEY„.BS18EL.COUNT.BS1BEL.CODE‚.BS1    ð ;†SIMULATEDDRIVERú ;À - TOUCH.TONES  ‡LDA#0 ‡STABUTTON" .1…JSRTWO.TONES , ‡LDA#06 ‡JSRMON.WAIT@ ‡INCBUTTONJ ‡LDABUTTON T ‡CMP#10 ^ ‡BCC.1h ‡RTSr ;À -ð P .4…RTSZ ;À -d DOWNTIME.TABLEn ‡.HS8E807468514942x ;À -‚ UPTIME.TABLEŒ ‡.HS8E807469514942– ;À -  LENGTH.TABLEª ‡.HS1412100F201D1A´ ;À - ¾ LOW.TONESÈ ‡.HS03000000010101020202Ò HIGH.TONESÜ ‡.HS05040506040506040506æ ;À -œ ‡STAUPTIME¦ ‡LDALENGTH.TABLE,Y° ‡STALENGTHº ;À -Ä PLAYƒLDYUPTIMEÎ ‡LDASPEAKERØ ‡DECLENGTHâ ‡BEQ.4‡FINISHED ì .1…DEY ö ‡BNE.1 ‡BEQ.2 .2…LDYDOWNTIME ‡LDASPEAKER ‡DECLENGTH ( ‡BEQ.4 2 .3…DEY < ‡BNE.3 F ‡BEQPLAY ü‡LDA#10 ‡STACHORD.TIME .3…LDXBUTTON ‡LDALOW.TONES,X$ ‡JSRONE.TONE. ‡LDAHIGH.TONES,X8 ‡JSRONE.TONEB ‡DECCHORD.TIME L ‡BNE.3V ‡RTS` ;À - j ONE.TONEt ‡TAY~ ‡LDADOWNTIME.TABLE,Yˆ ‡STADOWNTIME’ ‡LDAUPTIME.TABLE,YREACHED f‡BNE.1p‡RTSz;À -„;†TOUCHTONESSIMULATORŽ;À -˜DOWNTIMEƒ.EQ$9D¢UPTIME….EQ$9E¬LENGTH….EQ$9F¶CHORD.TIME.EQ$A0À;À -%ÊBUTTON….EQ$E7‚SETBY"SCALE=#"Ô;“USEVALUESFROM0TO9Þ;À -è;†.OR$300 òTWO.TONES1…LDASPEAKER‚TOGGLESPEAKER+‡LDXP.WIDTH‚DELAYLOOPFORPULSEWIDTH .2…PHAŠLONGERDELAYLOOP‡PLA ‡DEXŠENDOFPULSE?*‡BNE.2‡NO#4‡CLCŠCHANGEPULSEWIDTHBYSTEP>‡LDAP.WIDTHH‡ADCP.STEPR‡STAP.WIDTH'\‡CMPP.LIMIT‚UNTILLIMITISUNDSv;À -€P.WIDTH„.EQ$00ŠP.STEP….EQ$01”P.LIMIT„.EQ$02ž;À - ¨INCH.WORM²‡LDA#1‡SETSTEPTO1¼;„(ALSOTRY77,129,179)ƇSTAP.STEP*ЇLDA#176…SETP.WIDTHANDLIMITTO176Ú;„(ALSOTRY88)ä‡STAP.WIDTHî‡STAP.LIMIT!ø.1STPULSE$ô.2…TXAŠSTARTAPULSEWITHASHOTþ.3…DEXŠDELAYFOR1PULSE ‡BNE.3‡TAX‡LDASPEAKER‚TOGGLESPEAKER&‡INX'0‡CPX#192…PULSEWIDTHOFLASTPULSE :‡BNE.2D‡DEYŠFINISHEDSHOOTONG?N‡BNE.1‡NOX‡RTSb;À -l;†INCH-WORMSOZERO^‡RTSh;À -r;†MULTI-SWOOPER|;À -†SWOOP2LDA#10†#OFSWOOPS‡STASWOOP.COUNTš.1…JSRSWOOP¤‡DECSWOOP.COUNT ®‡BNE.1¸‡RTSÂ;À -Ì;†ANOTHERLASERBLASTÖ;À -!àBLAST‚LDY#10†NUMBEROFSHOTS'ê.1…LDX#64†PULSEWIDTHOFPULSE.WIDTH.1…LDYPULSE.COUNT!.2…LDASPEAKER‚TOGGLESPEAKER‡LDXPULSE.WIDTH#".3…DEXŠDELAYLOOPFORONEPULSE ,‡BNE.36‡DEYŠLOOPFOR#OFPULSES@‡BNE.2‡ATEACHPULSEWIDTH'J‡DECPULSE.WIDTH‚SHRINKPULSEWIDTHT‡BNE.1‡TOLIMITOF–;†LASER"SWOOP"SOUND ;À -ªPULSE.COUNT.EQ$00´PULSE.WIDTH.EQ$01¾SWOOP.COUNT.EQ$02È;À -&ÒSWOOP‚LDA#1†1PULSEATEACHWIDTH܇STAPULSE.COUNT#æ‡LDA#200…STARTWITHMAXWIDHT„/ð;‚(ALSOTRYVALUESOF40,80,128AND160.)ú‡STA      R),YŒ‡DEYŠNEXTBYTE –‡BPL.1 ‡RTSŠRETURNª;À -R;À --SWAPƒJSRPTRGETƒGETPOINTERTO1STSTRING‡STAA.PNTR(‡STYA.PNTR+1#2‡JSRSCAN.COMMA‚CHECKFORCOMMA<‡JSRPTRGET#F‡LDY#4‡PREPARETOSWAP5BYTESP.1…LDA(A.PNTR),YZ‡PHAd‡LDA(B.PNTR),Yn‡STA(A.PNTR),Yx‡PLA‚‡STA(B.PNT’;žIFNOT,SYNTAXERROR.œ;À -¦A.PNTR.EQ$85,86°B.PNTR.EQ$83,84º;À -+ÄSETUP‚LDA#SWAP„SETUPAMPERSANDVECTOR·STAAMPERSAND.VECTOR+1؇LDA/SWAPâ‡STAAMPERSAND.VECTOR+2ì‡LDA#$4C…JMPOPCODEö‡STAAMPERSAND.VECTOR‡RTS ‡.TFASOFT.SWAP.OBJ.;À -8AMPERSAND.VECTOR„.EQ$3F5B;À -,LPTRGETŽ.EQ$DFE3‚SCANFORVARIABLENAME,V;žSEARCHFORITSADDRESS.`;žLEAVEADDRESSIN$83,84 j;žANDA,Yt;À -*~SCAN.COMMAŠ.EQ$DEBE‚IFNEXTCHARISAˆ;žCOMMA,SCANOVERIT;7¢‡.LISTOFF¬;À -¶;†STRINGSWAPFORAPPLESOFTÀ;Ê;„APPLEASSEMBLYLINEÔ;†V1N5P14,FEBR1981Þ;è;À -ò;†STRINGSWAPFORAPPLESOFT'ü;†"BRUNBSTRING.SWAP"TOSETITIP;(;†THEN"&A$,B$"MEANSSWAPA$ANDB$;À - ‡.OR$300$‡LDAACLh‡JMP$FDDAr;À -OAUXL,AUXH Ò‡STAAUXL ܇LDA$3F æ‡STAAUXH(ð‡LDA$42†MOVEA4L,A4HTOXTNDL,XTNDHú‡STAXTNDL ‡LDA$43‡STAXTNDH‡JSRRMUL…MULTIPLY""‡LDAXTNDH„PRINT32-BITRESULT,‡JSR$FDDA6‡LDAXTNDL@‡JSR$FDDA J‡LDAACHT‡JSR$FDDA ^À - <SETUP.Y+F‡LDA#$4C…PUT"JMPTESTMPY"IN$358-35A P‡STA$3F8Z‡LDA#TESTMPY d‡STA$3F9n‡LDA/TESTMPY x‡STA$3FA‚‡RTSŒ;À - –TESTMPY$ ‡LDA$3C†MOVEA1L,A1HTOACL,ACH ª‡STAACL ´‡LDA$3D ¾‡STAACH&ȇLDA$3E†MOVEA2L,A2HTTOPARTIALPRODUCTœ‡LDAXTNDL ¦‡ADCAUXL°‡STAXTNDLº‡LDAXTNDH ćADCAUXH·STAXTNDH&Ø.2…RORXTNDH„SHIFTPARTIALPRODUCTâ‡RORXTNDL ì‡RORACH ö‡RORACL‡DEYŠNEXTBIT ‡BNE.1‡RTS;À -(;†TESTROUTINEFORMULTIPLY2;CH„.EQ$518XTNDL‚.EQ$52BXTNDH‚.EQ$53LAUXLƒ.EQ$54VAUXHƒ.EQ$55`;À -"jRMULƒLDY#16†16-BITMULTIPLIER t.1…LDAACL†(AC*AUX)+XTND%~‡LSRŠCHECKNEXTBITOFMULTIPLIER+ˆ‡BCC.2‡IFZERO,DON'TADDMULTIPLICAND,’‡CLCŠADDMULTIPLICAND¢‡.LISTOFF¬;À -¶;†FASTER16X16MULTIPLYÀ;Ê;„APPLEASSEMBLYLINEÔ;†V1N5P11,FEBR1981Þ;è;À -ò;†FASTER16X16MULTIPLYü;†BYBROOKEW.BOERING";†NEARLYASPUBLISHEDINMICRO;†PAGE72,DEC1980.;À -$ACL„.EQ$50.A    |‡LDADUMMY †.2…DEX ‡BNE.2š‡DEY ¤‡BNE.1®‡RTS¸;À - ÂEL.DIṪLDY#EL.SPEEDÖ.1…LDX#EL.PITCHà‡LDASPEAKER ê.2…DEX ô‡BNE.2þ‡DEY ‡BNE.1‡RTS'DIT'Ò‡JSREL.SPACE܇DECEL.COUNT æ‡BNE.1ð.3…JSRCH.SPACEú‡LDXSAVEX‡LDYSAVEY‡RTS.4…JSRCH.SPACE"‡JSRCH.SPACE ,‡JMP.36;À - @CH.SPACEJ‡JSREL.SPACET‡JSREL.SPACE ^EL.SPACEh‡LDY#EL.SPEEDr.1…LDX#EL.PITCHON.PRBYTE‚OUTPUTINHEX Ä ‡INYŠNEXTÎ ‡INXŠDONETHISLINE?Ø ‡BNENXTHEXƒNOâ ‡JSRMON.CROUT„YES,CRì ;‚ADVANCEDUMPADDRESSö ‡SECŠPREPAREFORSUBTRACT! ‡LDAFRADRLƒINCREMENTADDRESS ‡SBCITEMCTƒ-ITEMSPERLINE ‡STAFRADRL ‡BCC.2‡NOCARLL ‡LDAFRADRHV ‡SBCTOADRH` ‡BCCNEXTLNƒFROMNOBLNKLDA#"H‡JSRMON.COUTPRINTABLANKR‡LDA(FRADRL),Y\‡CMP#$20…CTRLCHAR?!f‡BCC.1‡YES,SUBSTITUTEBLANKp‡CMP#$80…CTRLCHAR?z‡BCC.2‡NO,OKTOPRINT„‡CMPMCTƒNOOFBYTESTHISLINE²‡LDY#0‡POINTER&¼‡BEQNOBLNKƒDON'TSPACEFIRSTTIMEÆ;ÐCHKKEYLDAKBD†KEYDOWN?Ú‡BPLCKDONEƒNO#ä‡LDAKBSTRBƒYES,CLEARKEYBOARDî‡SECŠPREPAREFOR!øMDMP2‚BCSMEMDMPƒJMPTOSTART; NXTCHRTYAŠTESTFOR‡ANSETPGLLDA#ITMSPG‚ITEMSPERPAGEN‡STAPGCNTX;$bNEXTLNJSRMON.CROUTƒSKIPALINEl‡LDAITEMCTƒ-ITEMSPERLINE)v‡ANDFRADRLƒSTARTINGADR0MODITEMCT€‡STAFRADRLŠ‡TAX”‡LDYFRADRHƒ..TOPRINT#ž‡JSRMON.PRNTYXƒPRINTITINHEX%¨‡LDXITEPRINTERLINEê‡STAITEMCTƒITEMSPERLINEô‡BNE.1‡GOGET2NDARGþ.2…CMP#".†'.'?‡BEQ.1‡YES,2ARGS‡CMP#",†','?‡BNESETPGLƒONLYONEARG &.1…LDYYSAV…PTRTOINBUFFER 0‡JSRMON.GETNUM‚SCAN2NDARG:‡STYYSAV…PTRTOINBUFFER%DSCREENLINEš‡STAITEMCTƒITEMSPERLINE'¤‡JSRMON.SETMODƒSETTOSCAN2NDARG®‡CMP#"-†ISOPTION='-'?¸‡BNE.2‡NO,CHECKOTHERS‡INCOPTIONƒMAKE'.' ̇LDA#PRSLOT‚PRINTERSLOTNO#Ö‡JSRMON.OUTPOR„SETOUTPUTPORT(à‡LDA#-PRITMS‚BYTESPERTHEXDECODEMODE@‡JSRMON.GETNUM J‡STYYSAV…REMEMBERSCANPOS.T‡CPX#0‡ANYADRSCANNED?^‡BNE.3‡YESh‡RTSŠNO,TERMINATE0r‡.DAMON.MON†MONITORENTRY(INCASEYOUWANT(|;“TOCHANGERETURNTO"JMPMON.MON")†;).3…LDA#-SCITMSBYTESPERPERLINEPRINTERÜITMSPG.EQ8ˆITEMSPERPAGEæPRSLOT.EQ1ˆPRINTERSLOTð;À - ú‡.OR$800;À -"MEMDMPJSRMON.SETVIDƒSETPR#0‡LDA#$BF…'?'FORBOUNDS"‡STAPROMPTƒSETPROMPTCHAR%,‡JSRMON.GTLNZ„CR,THENGETINPUT&6‡JSRMON.ZMODE„SEINBUFFER(‚FRADRL.EQ$3C†STARTINGADRLOORDERŒFRADRH.EQ$3D†..HIORDER&–TOADRL.EQ$3E†ENDINGADRLOORDER TOADRH.EQ$3F†..HIORDERª;À - ´;†USER-CHANGEABLEPARAMETERS¾;À -'ÈSCITMS.EQ16‡BYTESPERLINESCREEN(ÒPRITMS.EQ32‡BYTES%(KBSTRB.EQ$C010„KBDRESETSTROBE2;À -<;†PAGE-ZEROVARIABLESF;À -&PPGCNT‚.EQ$2E†LINESLEFTTHISPAGE!ZITEMCT.EQ$30†ITEMSPERLINE%dOPTION.EQ$31†SAMEASMON"MODE"+nPROMPT.EQ$33†LOCOFGETLNPROMPTCHAR%xYSAVƒ.EQ$34†POINTERTON.PRBL2‚.EQ$F94AÄMON.PRBYTE.EQ$FDDAÎMON.MON„.EQ$FF65ØMON.HOMEƒ.EQ$FC58âMON.SETMOD.EQ$FE184ìMON.OUTPOR.EQ$FE95„SETOUTPUTPORTTOSLOT(A)"öMON.SETVID.EQ$FE93„SETVIDEO;À - ;†I/OADDRESSES;À -KBD„.EQ$C000„KEYBOARD19818; B;†COMMERCIALRIGHTSRESERVEDL;V;À -`;†MONITORROMROUTINESj;À -tMON.COUTƒ.EQ$FDED~MON.RDKEY‚.EQ$FD0CˆMON.GTLNZ‚.EQ$FD67’MON.ZMODE‚.EQ$FFC7œMON.GETNUM.EQ$FFA7¦MON.CROUT‚.EQ$FD8E°MON.PRNTYX.EQ$F940ºMO袇.LISTOFF¬;À -¶;†BEAUTIFULMEMORYDUMPÀ;Ê;„APPLEASSEMBLYLINEÔ;†V1N6P2,MAR1981Þ;è;À -ò;.ü;APPLE][RELOCATABLEMEMORYDUMPPROGRAM;†BYROBERTH.BERNARD;‰35DOGWOODLANE;‰WESTPORT,CT06880$;.;‰JAN17,ROMPT(‡PHA2‡LDA#$87…BELLFORPROMPT<‡STAMON.PROMPT F‡JSRMON.RDLINE‚INPUTALINEP‡PLAZ‡STAMON.PROMPTd‡STXLENGTHƒSAVELENGTHn‡TXA(x‡JSRGETSPAƒGETSPACEINSTRINGAREA#‚‡LDY#0‡MOVEDATAINTOVARIABLEŒ‡STA($83),Y‚LENGTH –¦‡LDA#LINE.INPUT°‡STAAMPERSAND.VECTOR+1º‡LDA/LINE.INPUTćSTAAMPERSAND.VECTOR+2·RTSØ;À -âLINE.INPUTì‡CMP#$84…"INPUT"TOKEN?ö‡BEQ.1‡YES‡JMPSYNTAX.ERROR .1…JSRCHRGET%‡JSRPTRGETƒGETSTRINGDESCRIPTOR‡LDAMON.P$3F5$CHRGETŽ.EQ$B1.LENGTHŽ.EQ$9D8SYNTAX.ERRORˆ.EQ$DEC9BPTRGETŽ.EQ$DFE3LGETSPAŽ.EQ$E452VMOVSTRŽ.EQ$E5E2`;À -jMON.PROMPTŠ.EQ$33tMON.RDLINEŠ.EQ$FD6F~;À - ˆ‡.OR$300’‡LDA#$4C…JUMPINSTRUCTIONœ‡STAAMPERSAND.VECTOR䢇.LISTOFF¬;À -¶;†LINEINPUTFORAPPLESOFTÀ;Ê;„APPLEASSEMBLYLINEÔ;†V1N7P8,APR1981Þ;è;À -ò;†FASTINPUTSTRINGROUTINEü;†&INPUT+;†ACCEPTSANYCHAR,UNLIKENORMALINPUT;À -AMPERSAND.VECTOR„.EQ ̇.HS8D00ÖQREAD‚.HS84‡CTRL-Dà‡.AS-/READTESTFILE/ ê‡.HS8D00ôQCLOSE.HS84‡CTRL-Dþ‡.AS-/CLOSE/ ‡.HS8D00;À -OLD.STACK.PNTR.BS1&;À -0BUFFER….EQ$4000:;À -Ì;À -6;†PRINTAMESSAGE@;†MESSAGESTARTSATQTS,YJ;†MESSAGEENDSWITH00BYTET;À -^QUOTE.PRINTh.1…LDAQTS,Y r‡BEQ.2|‡JSRMON.COUT†‡INY‡BNE.1‡...ALWAYS š.2…RTS¤;À -®QTS¸QOPEN‚.HS84‡CTRL-D‡.AS-/OPENTESTFILE/ TR+1# .1…JSRMON.RDKEYƒREADCHARACTER ª‡LDY#0´‡STA(BUF.PNTR),Y¾‡INCBUF.PNTR ȇBNE.1Ò‡INCBUF.PNTR+1܇BNE.1‰..ALWAYSæ;À -ðEND.OF.DATAú‡LDXOLD.STACK.PNTR‡TXS‡LDY#QCLOSE-QTS‡JSRQUOTE.PRINT"‡JMPDOS.REENTRY,.ONERR.PNTR+1;À - ;†OPENTHEFILE;À -‡LDY#QOPEN-QTS(‡JSRQUOTE.PRINT2‡LDY#QREAD-QTS<‡JSRQUOTE.PRINTF;À -P;†READTHEFILEZ;À -d‡TSXn‡STXOLD.STACK.PNTRx‡LDA#BUFFER‚‡STABUF.PNTRŒ‡LDA/BUFFER–‡STABUF.PNDOSWEAREINAPPLESOFT¦‡STADOS.LANGUAGE.FLAG-°‡STACURRENT.LINE.NO+1‚NOTINDIRECTMODE$º‡STAPROMPT.CHARˆNOTDIRECTMODEćLDA#$FF…TURNON"ONERR"·STAONERR.FLAG؇LDA#END.OF.DATAâ‡STADOS.ONERR.PNTRì‡LDA/END.OF.DATAö‡STADOS.EQ$AAB6.ONERR.FLAGŠ.EQ$D8!8DOS.ONERR.PNTR†.EQ$9D5A,9D5BBDOS.REENTRY‰.EQ$3D0LMON.RDKEY‹.EQ$FD0CVMON.COUTŒ.EQ$FDED`;À -jTEXT.READERt;À -#~;†PATCHDOSSOENDOFFILEWILL ˆ;†BRANCHTOMY"END.OF.DATA"’;À -(œ‡LDA#1‡TELLÁ¢‡.LISTOFF¬;À -¶;†READTEXTFILEÀ;Ê;„APPLEASSEMBLYLINEÔ;†V1N7P2,APR1981Þ;è;À -*ò;†DEMONSTRATIONOFREADINGATEXTFILEü;À -PROMPT.CHAR‰.EQ$33CURRENT.LINE.NO….EQ$75,76BUF.PNTRŒ.EQ$9D,9E$DOS.LANGUAGE.FLAGƒ   G+1*SCITMS‚BACKUP#BYTESð ‡STAFRADRLƒSAVELOORDERú ‡BCS.1‡NOCARRY ‡DECFRADRHƒPROGRATECARRY  .1…JSRMON.HOME„CLEARSCREEN ‡SECŠSIMULATEJMP" ‡BCSSETPL1ƒ..TOSETPGL, ;$6 ZZSIZE.EQ=-MEMDMPPROGRAMSIZE@ ;À -GC?‚ ‡BEQMDMP1„YES,STARTOVERŒ ‡CMP#"B†WASCHARA'B'?– ‡BEQBACKUPƒYES  ‡LDAOPTIONª ‡CMP#",†OPTION=","?´ ‡BEQSETPL1ƒYES"¾ ADVNCEINCPGCNT„ONEMORETIMEÈ ‡BNENXTLN1ƒJMPTONXTLNÒ ;"Ü BACKUPLDAFRADRLƒCARRYISSET(æ ‡SBC#ITMSPRY( ‡INCFRADRHƒPAGEBOUNDARY2 ‡BEQMDMP1„ENDOFMEMORY< .2…LDAOPTIONF ‡CMP#".†'.'?(OPTION1)%P ‡BEQCHKKEYƒNO,CHECKIFKEYDOWNZ CHKPAGDECPGCNT„PAGEEND?d ‡BNECKOPT„NO,CHECKOPTION"n PAUSE‚JSRMON.RDKEYƒGETACHARx ‡CMP#$83…CTRL-þz"#!ÄÉÖÉÄÅ ÂÙ ÔÅΠ                !ÅÖÅΠÆÁÓÔÅÒ ÐÒÉÍÅÓ             "ÒÅÁÄ ÄÁÔÅ ÆÒÏÍ ÃÌÏÃË ÉÉ       "ÒÅÌÏîÂÉΠ                     ÌÉÎÅ ÅÄÉÔ                      ÁÓÏÆÔ ÉÎÐÕÔ ÉÎÔÅÇÅÒ °­¶µµ³µ   ÒÅÌÏÃÁÔÅ                        ÈÓÃÒΠÆÕÎÃÔÉÏΠ×ÉÔÈ ÃÏÌÏÒ      ÐÒÉÎÔÅÒ ÆÉÆÏ ÂÕÆÆÅÒ            ÍØ­¸° ÆÉÆÏ ÂÕÆÆÅÒ             ! ÃÈÁÎÇÅÓ ÔÏ ÅÐÓÏΠÁÐÌ ²·°¸ ÒÏÍ  ÐÒÉÍÅ ÓÉÅÖÅ ÐÒÏÇÒÁÍ           ÆÁÓÔÅÒ ÐÒÉÍÅ ÓÉÅÖÅ ÐÒÏÇÒÁÍ    ÍÏÎÉÔÏÒ ÅØÔÅÎÓÉÏÎÓ              ÁÓÏÆÔ ÌÉÎÅ ÉÎÐÕÔ¯²            ÁÓÏÆÔ ÌÉÎÅ ÉÎÐÕÔ¯³            ÁÒÉÔÈÍÅÔÉàÐÁÃËÁÇÅ            ÍÏÎÉÔÏÒ ÁÓÃÉÉ ÄÕÍР            ‚ÈÉ­ÒÅÓ ÓÃÒΠÄÅÍÏ              „ÈÉÒÅÓ ÓÃÒήÏÂÊ                ÁÓÏÆÔ ÁÍÐÅÒÔÏÎÅÓ               ÓÔÅЭÔÒÁÃÅ ÕÔÉÌÉÔÙ             ÆÉÎÄ ÁÓÏÆÔ ÌÉÎÅ ÎÕÍÂÅÒ         ÒÁÎÄÏÍ £ ÇÅÎÅÒÁÔÏÒ             ÓÃÁÓÍ ÆÁÎÃÙ ®ÁÓ ÄÉÒÅÃÔÉÖÅ        ÆÁÓÔÅÒ ±¶Ø±¶ ÍÕÌÔÉÐÌÙ         ÁÓÏÆÔ Ó×ÁР                   ÐÒÅÔÔÙ ÍÅÍÏÒÙ ÄÕÍР            ÒÅÁÄ ÔÅØÔ ÆÉÌÅ                ÁÓÏÆÔ ÌÉÎÅ ÉÎÐÕÔ               ÁÓÏÆÔ ÓÕÂÓÔÒÉÎÇ ÓÅÁÒÃÈ         ÁÓÏÆÔ ÈÉ­ÒÅÓ ÓÃÒΠÆÕÎÃÔÉÏΠ    ÃÏÐ٠̱®Ì²®Ì³                  ÁÓÏÆÔ ÂÌÔÕ                     ÇÅÎÅÒÁÌ ÍÏÖÅ ÓÕÂÒÏÕÔÉÎÅ        ÃÏÍÐÕÔÅÄ ÇÏÓÕ ÆÏÒ ÁÓÏÆÔ       ӭàÁÓÍ ÐÌÅ                    ÔÏÎÅ ÒÏÕÔÉÎÅÓ                  ÍÏÒÓÅ ÃÏÄÅ                    ‚ÈÅÌÌÏ                         ÍÅÓÓÁÇÅ ÐÒÉÎÔÅÒ               ÁÓÏÆÔ ÖÁÒÉÁÂÌÅ ØÒÅÆ           #×ÒÉÔÅ ÓÒàÔÅØÔ ÆÉÌÅ            ÎÕÍÐÁÄ                         ÉÎÔÂÁÓ ÐÒÅÔÔÙ ÌÉÓÔÅÒ           ÓÃÁÓÍ ®ÄÁ ×ÉÔÈ ÃÏÍÍÁ ÌÉÓÔ          REE.ONE.STRING¶‡RTSÀ;À -RCMO$‡STX=-=,Y„PLUGGEDINFROMABOVE GS2„.EQ=-1*‡DEY 4‡BPLGS1>‡RTSH;À -#R;†FREEUPANYTEMPORARYSTRINGS\;À -fFREE.ONE.STRINGp‡LDATEMPPT+1 z‡LDY#0„‡JSRFRETMPŽFREE.STRINGS˜‡LDATEMPPT¢‡CMP#$56…EMPTY?¬‡BCSFUATEFORMULA&ЇJSRSYNCOMƒREQUIRETRAILINGCOMMAÚ‡JSRCHKSTRƒREQUIRESTRINGä‡LDY#2‡GETSTRINGDATA.î;THENEXTLINEISA"SECRET"6502OPCODE,5ø;WHICHDOESBOTHLDA(FACMO),YANDLDX(FACMO),Y;ATTHESAMETIME GS1„.DA#$B3 ‡.DA#FAREVALUEINVARIABLED.6…INCMAIN N‡BNE.7X‡INCMAIN+1 b.7…INXl‡DECMAIN.LENGTH v‡BNE.2€.8…LDY#0‡RESULTIS0Š‡BEQ.4‡...ALWAYS”;À -ž;†GETSTRINGEXPRESSION¨;À -²GET.STRING¼‡STYGS2†PLUGOUTPUTVECTOR ƇJSRFRMEVLƒEVALš‡CMPKEY.LENGTH¤‡BCC.8‡WILLNOTFIT ®‡LDY#0¸.3…LDA(KEY),Y‡CMP(MAIN),Y ̇BNE.6Ö‡INYà‡CPYKEY.LENGTH ê‡BCC.3ô‡INXŠXISRESULTþ‡TXA‡TAY!.4…JSRSNGFLTƒFLOATBYTEINY ‡LDA$12&‡PHA 0‡LDA$11':‡JMPASSIGNƒSTOET.STRING,‡LDY#KEY.LENGTH6‡JSRGET.STRING'@‡JSRPTRGETƒGETVARIABLEFORRESULT J‡STA$85 T‡STY$86#^‡JSRSYNRPNƒREQUIRERIGHTPARENh;À -r‡JSRFREE.STRINGS|;À -†‡LDX#0‡ANSWEROFFSET..2…LDAMAIN.LENGTHSEEIFITCANSTILLFITLDA#SUB Œ‡STA$3F6 –‡LDA/SUB  ‡STA$3F7ª‡RTS´;À -%¾SUBQT‚.AS"($BUS"‚SUB$(BACKWARDSÈ;À -ÒSUB܇LDX#4‡COMPAREFOR"SUB$("æ.1…LDASUBQT,X"ð‡JSRSYNCHRƒCOMPAREWITHINPUTú‡DEX ‡BPL.1;À -‡LDY#MAIN.LENGTH"‡JSRGCHKSTR.EQ$DD6C„REQUIRESTRING PTRGET.EQ$DFE3„GETPOINTER*(FRETMP.EQ$E604„FREETEMPORARYSTRING2SNGFLT.EQ$E301„FLOAT(Y)<;À - F‡.OR$300P;†.TFSUBSTRINGSEARCH.OBJZ;À -dSETUP.AMPERSANDn‡LDA#$4C…JMPOPCODE x‡STA$3F5 ‚‡INˆ.EQ$19,1AÄKEY.LENGTH‚.EQ$1BÎKEY‰.EQ$1C,1DØ;À -,âASSIGN.EQ$DA5C„STOREVALUEINVARIABLE-ìSYNCHR.EQ$DEC0„REQUIRE(A)ASNEXTCHAR%öFRMEVL.EQ$DD7B„EVALUATEFORMULA"SYNCOM.EQ$DEBE„REQUIRECOMMA SYNRPN.EQ$DEB8„REQUIRE")"#;†B$INA$,PUTSRESULTINIL;$V;†RETURNSI=0IFB$ISNOTINA$`;)j;†(REFERENCE:‚CALLA.P.P.L.E.ARTICLE,t;†INJANUARY1981ISSUEBYLEEREYNOLDS,~;†PAGES26-30.)ˆ;’;À -œFACMO‡.EQ$A0¦TEMPPT†.EQ$52°MAIN.LENGTH.EQ$18ºMA ¬‡.LISTOFF¶;À -$À;†SUBSTRINGSEARCHFORAPPLESOFTÊ;Ô;„APPLEASSEMBLYLINEÞ;†V1N7P18,APR1981è;ò;À -ü;-;†SUBSTRINGSEARCHFUNCTIONFORAPPLESOFT;À -;$;†&SUB$(A$,B$,I).;%8;†SEARCHESFORFIRSTOCCURENCEOF B   ‡LDA$71 ‡INY#ª‡STA($83),Y‚LO-BYTEOFADDRESS ´‡LDA$72¾‡INY#ȇSTA($83),Y‚HI-BYTEOFADDRESS)Ò‡LDY/$200„SETUPTOCOPYSTRINGDATA܇LDX#$200„INTOSTRINGAREAæ‡LDALENGTHð‡JMPMOVSTRƒCOPYITNOWú;À - —ºç(4);"CATALOG" $3F5;À -!(;†INITIALISEAMPERSANDVECTOR2;À -<INITƒLDA#$4C…JMPOPCODEF‡STAAMPERSAND.VECTORP‡LDA#AMPERTONEZ‡STAAMPERSAND.VECTOR+1d‡LDA/AMPERTONEn‡STAAMPERSAND.VECTOR+2x‡RTS‚;À -Œ;†AMPERSANDENTRYPOINT–;À -  AMN$50,51~;ˆ;À -’;†PAGE-ZEROVARIABLESœ;À -¦DURATIONƒ.EQ$50,51°TONE1.CNT‚.EQ$FBºTONE2.CNT‚.EQ$FCÄTONE1†.EQ$FDÎTONE2†.EQ$FEØVOLUME….EQ$FFâ;À -ì;†I/OADDRESSESö;À -SPKRƒ.EQ$C030 ;À -AMPERSAND.VECTOR„.EQLOF.MAY29,1981;À - $‡.OR$300.;†.TFAMPERTONES.OBJ8;À -B;†ROMSUBROUTINESUSEDL;À -#VCHKCOM.EQ$DEBE„MUSTSEECOMMA!`SYNERR.EQ$DEC9„SYNTAXERROR,jGTBYTC.EQ$E6F5„EATCHAR,GETBYTEINX1tGETNUM.EQ$E746„GETTWO-BYTEVALUEIC ¢‡.LISTOFF¬;À -#¶;†DUALTONE,TONEWITHVOLCTRLÀ;Ê;„APPLEASSEMBLYLINEÔ;†V1N9P2,JUNE1981Þ;è;À --ò;†DUALTONE,ANDTONEWITHVOLUMECONTROLü;À -.;†WRITTENBYMARKKRIEGSMANÀ.MAY22,19811;†REVISEDBYBOBSANDER-CEDER     N©Lõ©ö©÷`©H ÀÞ©× ÀÞ ãß……„†©Ð ÀÞ¥H¥H ¹ö ô ·É)Ð ±¥01&𩨠ãL[ÚLÉÞÃ'ºç(4);"BLOAD HIRES SCRN.OBJ":Œ7685 ‘:’3:“0,0AIÐ1Á10YXÐÛ(1)Ê40:YÐÛ(1)Ê40e(“ÁX,Y:‚y<XÐ0Á39:YÐ0Á39F¯H×AÐX,Y): 15ÊAšPX,Y:‚:‚¨Z¹É16298,0Âd¾A$:¹É16297,0:¾A$:«90 .1…TAY*r‡JSRSNGFLTƒCONVERTBYTETOREALVALUE.|‡JMP$DA5B„STOREVARIABLE,ANDKEEPGOING!†;À -.2…JMPSYNTAX.ERRORš;À -.MASK#‡JSRCHRGOTƒCHECKFORFINAL")" "‡CMP#')&,‡BNE.2‡SYNTAXERRORIFNOTTHERE!+6‡JSRCHRGETƒPOSITIONFORNEXTSTATEMENT"@‡LDAHMASK„ISOLATESPOTATX,YJ‡AND(HPNTR),Y$T‡BEQ.1‡SPOTISOFF,RETURNZERO ^‡LDA#1‡SPOTISON,RETURN1 hTR‚SAVEITSPTRADDRESS¾‡STYFORMULA.PNTR+1$ȇLDA#TOKEN.EQUALSCHECKFOR"="Ò‡JSRSYNCHR1܇LDAVALUE.TYPE+1‚SAVEVARIABLETYPEONSTACKæ‡PHAð‡LDAVALUE.TYPEú‡PHA$‡JSRHFNS…SCAN"X,Y"EXPRESSION"+‡JSRHPOSN„SETUPBASE,Y-REG,AND/HSCRNP‡STAAMPERSAND.VECTOR+2Z‡RTSd;À -n;†HSCRNFUNCTIONx;À -#‚HSCRN‚LDA#'H†TESTFOR"HSCRN(" Œ‡JSRSYNCHRƒFIRSTELTTER"H"+–‡LDA#TOKEN.SCRN‚ANDTHENTOKEN"SCRN(" ‡JSRSYNCHR"ª‡JSRPTRGETƒSCANVARIABLENAME*´‡STAFORMULA.PNHPNTR.EQ$26ÎHMASK.EQ$30ØFORMULA.PNTRˆ.EQ$85â;À -ìTOKEN.EQUALSˆ.EQ$D0öTOKEN.SCRNŠ.EQ$D7;À - ;†SETUPAMPERSANDVECTOR;À -SETUP‚LDA#$4C…JMPOPCODE(‡STAAMPERSAND.VECTOR2‡LDA#HSCRN<‡STAAMPERSAND.VECTOR+1F‡LDA.TFHIRESSCRN.OBJB;À -LAMPERSAND.VECTOR„.EQ$3F5V;À -`CHRGETŽ.EQ$B1jCHRGOTŽ.EQ$B7tSYNCHRŽ.EQ$DEC0~SYNTAX.ERRORˆ.EQ$DEC9ˆPTRGETŽ.EQ$DFE3’SNGFLTŽ.EQ$E301œHPOSN.EQ$F411¦HFNS.EQ$F6B9°;À -ºVALUE.TYPEŠ.EQ$11Ä„¢‡.LISTOFF¬;À -(¶;†HI-RESSCRNFUNCTIONFORAPPLESOFTÀ;Ê;„APPLEASSEMBLYLINEÔ;†V1N8P2,MAY1981Þ;è;À -ò;†HI-RESSCRNFUNCTIONü;;†&HSCRN(A=X,Y);†X,YDEFINESTHESPOT;†ARECEIVES0OR1$;À - .‡.OR$3008‡‡STAXQT.AREA+2¸‡LDXSAVE.S‡TXS ̇LDY#0Ö‡LDA(MON.PC),YUSEROPCODEà‡BEQX.BRK„'BRK'OPCODEê‡CMP#$20…'JSR'OPCODEô‡BEQX.JSRþ‡CMP#$40…'RTI'OPCODE‡BEQX.RTI‡CMP#$4C…'JMP'OPCODE‡BEQX.JMP&‡CMP#$60…'RTS'OPCODE$FF…USERGETS6‡TXSŠWHOLESTACK@‡STXSAVE.SJ‡LDA#23†BOTTOMLINET‡STAMON.CV^‡JSRMON.CROUTh;À -rTRACE.LOOP|‡JSRDISPLAY.REGISTERS†‡JSRDISASSM1INSTRUCTION‡JSRWAIT.ON.KEYBOARDš‡LDA#$EA…'NOP'OPCODE¤‡STAXQT.AREA+1®STAY.VECTOR+2 ¯‡LDA#0°‡STASAVE.P´‡RTS¾;À -È;†(Y)ˆSSTATCURR.PCÒ;†ADR(Y)…SSTATADRÜ;À -æSTEP.TRACEð‡TXAŠX=0->NOADRú‡BEQ.1‡NOADDR‡LDAMON.A1ƒ1OR2ADDRS‡STAMON.PC‡LDAMON.A1+1"‡STAMON.PC+1,.1…LDX#(MON.COUT„.EQ$FDED2MON.SETINV‚.EQ$FE80<MON.SETNORM.EQ$FE84F;À -PKEYBOARD„.EQ$C000ZSTROBE†.EQ$C010d;À -nSTEP.TRACE.SETUPx‡LDA#$4C†'JMP'OPCODE‚‡STAY.VECTORŒ‡LDA#STEP.TRACE–‡STAY.VECTOR+1 ‡LDA/STEP.TRACEª‡EQ$F948ºMON.PRBL2ƒ.EQ$F94AÄMNEML‡.EQ$F9C0ÎMNEMH‡.EQ$FA00ØMON.VTAB„.EQ$FC22âMON.CLREOP‚.EQ$FC42ìMON.SCROLL‚.EQ$FC70öMON.CLREOL‚.EQ$FC9CMON.RDKEYƒ.EQ$FD0C MON.CROUTƒ.EQ$FD8EMON.PRYX3ƒ.EQ$FD99MON.PRBYTE‚.EQ$FDDAQ$2EBMON.LENGTH.EQ$2FLMON.PC….EQ$3A,3BVMON.A1….EQ$3C,3D`MON.A2….EQ$3E,3Fj;À -tDOS.REENTRY.EQ$3D0~Y.VECTOR„.EQ$3F8ˆBASE.LINE24.EQ$7D0’MON.INSDS2‚.EQ$F88EœMON.INSTDSP.EQ$F8D0¦MON.PRADDR‚.EQ$F90C°MON.PRBLNK‚.¢‡.LISTOFF¬;À -¶;†STEP-TRACEUTILITYÀ;Ê;„APPLEASSEMBLYLINEÔ;†V1N10P11,JULY1981Þ;è;À -ò;„STEP-TRACEUTILITYü;À -MON.WNDBTM.EQ$23MON.CH….EQ$24MON.CV….EQ$25$LMNEM†.EQ$2C.RMNEM†.EQ$2D8MON.FORMAT.E     SHED. .1…DECDURATION+18 .2…DECDURATIONB ‡CLCL ‡RTSV ;À -SXTONE1¬‡JSRCHKCOM'¶‡JMPGETNUMƒGETDURATIONANDVOLUMEÀ;À -Ê;†DECREMENTDURATION(Ô;†RETURNCARRYCLEARIFNOTFINISHEDÞ;À -èDECREMENT.DURATIONò‡LDADURATIONFINISHEDYET? ü‡BNE.2 ‡LDADURATION+1  ‡BNE.1 ‡SEC$ ‡RTSŠFINI4‡RTS>;À -)H;†GETTHREEPARAMETERSAFTER&TOR&D$R;†1.8-BITVALUE,STOREINTONE1\;†2.COMMA(f;†3.16-BITVALUE,STOREINDURATIONp;†4.COMMA*z;†5.8-BITVALUE,RETURNINX-REGISTER„;À -ŽGET.PARAMS˜‡JSRGTBYTCƒGETTONE¢‡STOUNTERƇSTATONE1.CNTÐ.3…DECTONE2.CNT Ú‡BEQ.4 ä‡LSRVOLUMEƒTOEQUALIZETIME î‡LDAVOLUMEƒTOEQUALIZETIMEø‡BPL.5‡...ALWAYS.4…LDASPKR…TOGGLESPEAKER ‡LDATONE2„RESETCOUNTER‡STATONE2.CNT .5…JSRDECREMENT.DURATION *‡BCC.1STXTONE2X‡LDATONE1b‡STATONE1.CNTl‡LDATONE2v‡STATONE2.CNT€.1…DECTONE1.CNTŠ‡BEQ.2‡TIMETOTOGGLE ”‡LSRVOLUMEƒTOEQUALIZETIME ž‡LDAVOLUMEƒTOEQUALIZETIME¨‡BPL.3‡...ALWAYS².2…LDASPKR…TOGGLESPEAKER¼‡LDATONE1„RESETCƒEQUALIZEVOLUMEDELAY ¸.4…NOP‡INY ̇CPY#16 Ö‡BCC.4%à.5…LDY#10†SHORTADDITIONALDELAY ê.6…DEY ô‡BNE.6þ‡JSRDECREMENT.DURATION ‡BCC.1‡RTS;À -#&;†&D,,0;À -:DUAL.TONESD‡JSRGET.PARAMSN‡-15"‡STAVOLUME,‡LDATONE16‡STATONE1.CNT@.1…DECTONE1.CNT J‡BNE.5T‡LDASPKR…TOGGLESPEAKER^‡LDATONE1„RESETCOUNTERh‡STATONE1.CNTr‡LDYVOLUME |.3…NOP†‡NOP‡DEY š‡BPL.3"¤‡LDASPKR…TOGGLESPEAKERAGAIN%®‡LDYVOLUMEPERTONEª‡CMP#'T†ISITTONE?´‡BEQSINGLE.TONE¾‡CMP#'D†ISITDUAL?ȇBEQDUAL.TONES'Ò‡JMPSYNERRƒNEITHER->SYNTAXERRORÜ;À -#æ;†&T,,ð;À -úSINGLE.TONE‡JSRGET.PARAMS‡TXAŠLIMITVOLUME‡AND#15†TO05BITSOF"‡ROLLMNEM‚CHARINTO,‡ROL6‡DEY @‡BNE.4 J‡ADC#$BFT‡JSRMON.COUT^‡DEX h‡BNE.3r‡LDA#$A0…PRINTBLANK|‡JSRMON.COUT†‡JSRMON.PRADDR‡JSRMON.CLREOLš‡JSRMON.CROUT ¤‡LDY#39®.5…LDABOTTOM.LINE,Y ¸‡AND#$3x‡LDX#1‡PRINT1BLANK‚.2…JSRMON.PRBL2Œ‡CPYMON.LENGTH–‡INY  ‡BCC.1 ª‡LDX#3 ´‡CPY#3 ¾‡BCC.2ȇPLA„GETMNEMTABINDEXÒ‡TAY܇LDAMNEML,Yæ‡STALMNEMð‡LDAMNEMH,Yú‡STARMNEM .3…LDA#0 ‡LDY#5 .4…ASLRMNEMSHIFTT.PCì‡LDXMON.PCö‡LDYMON.PC+1‡JMPMON.PRYX3 ;À -;†DISASSEMBLENEXTOPCODE;À - (DISASSM2‡JSRPRINT.PC <‡LDY#0F‡LDA(MON.PC),YGETOPCODEP‡JSRMON.INSDS2Z‡PHA„SAVEMNEMTABINDEXd.1…LDA(MON.PC),Yn‡JSRMON.PRBYTEB‡STAMON.CH L‡LDX#4 V‡BNE.2`.1…LDA#$A0j‡JSRMON.COUTt.2…LDASAVE.AREA,X~‡JSRMON.PRBYTEˆ‡DEX ’‡BPL.1œ‡RTS¦;À -7°BOTTOM.LINE.AS/=NEXT‚=QUITƒA‚X‚Y‚P‚S/ º‡.HS00Ä;À -Î;†PRINTPCANDDASHØ;À - âPRIN2,29,26˜ ;À -¢ RETURNJSRMON.CLREOP¬ ‡JMPDOS.REENTRY¶ ;À -À ;†ADD(A)TOMON.PCÊ ;À -Ô ADD.A.TO.PCÞ ‡ADCMON.PCè ‡STAMON.PC ò ‡BCC.1ü ‡INCMON.PC+1 .1…RTS;À -;†DISPLAYREGISTERS$;À -.DISPLAY.REGISTERS 8‡LDA#26...ALWAYS .8…LDYREG.INDEX ‡DEY * ‡BPL.3 4 ‡LDY#4> ‡BNE.3‡...ALWAYSH .9…LDA#23R ‡STAMON.WNDBTM\ ‡JSRMON.SCROLLf ‡INCMON.WNDBTMp ‡JMPWAIT.ON.KEYBOARDz REG.NAMES.AS-/SPYXA/„ REG.INDEX.BS1*Ž REG.CH.HS2623201D1Až=38,35,3X ‡CMP#$8D…RETURN?b ‡BEQ.9‡YES l ‡EOR#$B0 v ‡CMP#10€ ‡BCC.6‡DIGIT Š ‡ADC#$88 ” ‡CMP#$FAž ‡BCC.5ƒNODIGIT,IGNORE ¨ .6…LDY#3² ‡ASL¼ ‡ASLÆ ‡ASLÐ ‡ASLÚ ‡LDXREG.INDEX ä .7…ASLî ‡ROLSAVE.AREA,Xø ‡DEY  ‡BPL.7 ‡BMI.4‡EX .4…JSRMON.SETINV Ì ‡LDA#22Ö ‡STAMON.CVà ‡JSRMON.VTABê ‡LDYREG.INDEXô ‡LDAREG.CH,Yþ ‡STAMON.CH ‡LDASAVE.AREA,Y ‡JSRMON.PRBYTE ‡JSRMON.SETNORM& .5…LDAKEYBOARD 0 ‡BPL.5: ‡STASTROBED ‡CMP#$A0…BLANK?N ‡BEQ.8‡YESCV" ‡LDA#26†COLUMN27, ‡STAMON.CH6 ‡JSRMON.VTAB@ ‡JSRMON.RDKEY J ‡CMP#$8DT ‡BEQRETURN ^ ‡CMP#$A0h ‡BNE.1‡REGISTERNAMEr ‡RTS | .1…LDY#4† .2…CMPREG.NAMES,Y ‡BEQ.3š ‡DEY ¤ ‡BPL.2® ‡BMIWAIT.ON.KEYBOARD¸ .3…STYREG.INDŒ ;À -– GET.NEW.PC  ‡LDY#1„GETPCFRINSTRª GET.NEW.PC.0´ ‡LDA(MON.PC),Y¾ ‡TAXŠSAVELO-BYTEÈ ‡INYÒ ‡LDA(MON.PC),YÜ ‡STAMON.PC+1NEWHI-BYTEæ ‡STXMON.PCƒNEWLO-BYTEð ‡RTSú ;À - WAIT.ON.KEYBOARD ‡LDA#22†LINE23 ‡STAMON.â ‡JMPTRACE.LOOPì ;À -ö DID.NOT.BRANCH ‡STASAVE.AƒSAVEREGS ‡STXSAVE.X ‡STYSAVE.Y ‡PHP( ‡PLA2 ‡STASAVE.P< ‡TSXF ‡STXSAVE.SP ‡CLD Z UPDATE.PCd ‡SECŠ0=1,1=2,2=3n ‡LDAMON.LENGTHx ‡JSRADD.A.TO.PC‚ ‡JMPTRACE.LOOPDAMON.PCƒPUSHONSTACK V ‡ADC#2` ‡TAYŠSAVELO-BYTEj ‡LDAMON.PC+1 t ‡ADC#0~ ‡PHAŠPUSHHI-BYTEˆ ‡TYA’ ‡PHAŠPUSHLO-BYTEœ ‡TSX¦ ‡STXSAVE.S° X.JMP‚JSRGET.NEW.PCº ‡JMPTRACE.LOOPÄ X.JMPIJSRGET.NEW.PC Î ‡LDY#0Ø ‡JSRGET.NEW.PC.0‡PLA…SIMULATERTI,GETʇSTASAVE.PSTATUSFRSTACK ÔX.RTS‚TSX Þ‡CPX#$FEè‡BCSRTRN.JMPò‡PLA…SIMULATERTS,GETü‡STAMON.PC‚PCFROMSTACK ‡PLA ‡STAMON.PC+1 ‡TSX$ ‡STXSAVE.S. ‡JMPUPDATE.PC8 ;À -B X.JSR‚CLCŠUPDATEPC,L ‡LY#1‡GETORIGINALH‡LDA(MON.PC),YDISPLACEM.R‡BPL.1‡POSDISPL.\‡DECMON.PC+1IFNEGDECHIf.1…JSRADD.A.TO.PCp‡JMPUPDATE.PCz;À -„X.BRK‚JSRDISPLAY.REGISTERSŽRTRN.JMP‚JMPRETURN˜;À - ¢X.RTI‚TSX ¬‡CPX#$FD¶‡BCSRTRN.JMPÀ ž‡BPL.1¨‡LDASAVE.P‚RESTOREREGS²‡PHA¼‡LDASAVE.AƇLDXSAVE.XЇLDYSAVE.YÚ‡PLPä;À - îXQT.AREAø‡NOPŠUSER'SOPCODE‡NOPŠGOESHERE ‡NOP‡JMPDID.NOT.BRANCH ;À -#*;RELBR:STHATDOBRCOMEHERE/‡CLD4‡CLC>‡LD0‡BEQX.RTS:‡CMP#$6C„'JMP()'CODED‡BEQX.JMPIN‡LDYMON.LENGTHINSTRLENX‡AND#$1FIFRELBR,CHANGEb‡EOR#$14DISPLACEM.TO$04l‡CMP#$04FORXQTAREA v‡BEQ.2 €.1…LDA(MON.PC),YCOPYINSTR!Š.2…STAXQT.AREA,Y->XQTAREA”‡DEY     JSRMON.PRBYTE&‡TYA0‡JSRMON.PRBYTE:‡LDA#"‡PRINTBLANKD‡JSRMON.COUTN‡DECCOUNT X‡BNE.1b‡RTSlCOUNT‚.BS1v;À -JURNRANDOMVALUEMODLIMIT;À -2š.5…LDAVALUE+3‚PICKUPREMAINDERFROMDIVISION¤‡LDYVALUE+2®‡RTS¸;À -ÂLIMIT‚.BS2ÌVALUE‚.BS4Ö;À -àTEST.RANDOM ê‡LDA#160ô‡STACOUNTþ.1…LDY#1000‡LDA/1000‡JSRRANDOMƒRND(1000)‡2‡CMPLIMIT‡LDAVALUE+3"‡SBCLIMIT+1#,‡BCC.4‡PARTALDIVIDENDSIZEANDMODIFYARRAYIFNOT4.02„LDAKVAR…GETKVAR>‡SECŠSETCARRYFORSUBH‡SBC#SIZE„SUBTRACTSIZER‡LDAKVAR+1ƒGETHIBYTE\‡SBC/SIZE„SUBTRACTTOOf‡BCS.03I+3”‡LDAPRIMEž‡ADCINDEX„MAKEP=P+I¨‡STAPRIME²‡LDAPRIME+1¼‡ADCINDEX+1‚ADDHIBYTEƇSTAPRIME+1‚SAVEPÐ2Ú;NOWCALCULATEK=I+PRIMT(CLEARBEYONDPRIME)ä‡LDAINDEX„ADDITOPî‡ADCPRIMEø‡STAKVAR…SAVEINK‡LDAINDEX+1STER"0‡LDA(ARRAY),Y‚GETARRAYVALUE,:‡BEQFORNXTƒGOIFFLAG=0SINCENOTPRIME.D;CALCULATENEXTPRIMENUMBERWITHP=I+I+3N‡LDAINDEX„MAKEP=I+3X‡ADC#$03…ADDTHREEb‡STAPRIMEl‡LDAINDEX+1v‡ADC#00†ADDCARRY€‡STAPRIME+1Š;NOWP=Ö‡BNEFORIN„GOIF<256!à‡INCINDEX+1‚INCREASEHIBYTE&êFORIN‚LDAINDEX„GETINDEXTOARRAYô‡CLCŠREADYADDþ‡STAARRAY„SAVELOWBYTE‡LDAINDEX+1‚GETHIBYTE"‡ADC/BUFF„ADDBUFFERLOCATION‡STAARRAY+1‚SETPOINTER&‡LDY#00†CLEARYREGI#BUFF„SETBUFFERLOCATION#‡STAARRAY„INARRAYPOINTERLOW"š‡LDA/BUFF„SETBUFFERLOCATION!¤‡STAARRAY+1‚INARRAYPOINTER$®‡JMPFORIN„ENTERSIEVEALGORITHM¸0Â;SCANENTIREARRAYANDPROBAGATELASTPRIME%ÌFORNXTINCINDEX„INCRESELOWBYTEd‡JSRMON.LISTn‡CLC x‡LDAPC‚‡SBCEND.ADDR Œ‡LDAPC+1–‡SBCEND.ADDR+1  ‡BCC.1ªRETURNRTS´;À -¾DUMPƒLDAEND.ADDR ȇORA#7‡FINISHLASTROWOF8 Ò‡STAPC܇LDAEND.ADDR+1 æ‡STAPC+1*ð‡LDABGN.ADDRSTARTWITHFULLROWOF8GN? ؇BEQSUBâ‡CMP#"+†PLUSSIGN? ì‡BEQADDö‡CMP#":†COLON?‡BEQRETURN' ‡LDYMON.YSAVLOOKBEYONDCONTROL-Y‡LDAWBUF,Y ‡LDY#0 (‡CMP#"L 2‡BNEDUMP<‡INCMON.YSAVF;À -PDISASMJSRMON.A1PC"Z.1…LDA#1‡DISASSEMBLEONELINETYX.EQ$F940BMON.NXTA1‚.EQ$FCBALMON.XAM8ƒ.EQ$FDA3VMON.COUTƒ.EQ$FDED`MON.LISTƒ.EQ$FE63jMON.A1PCƒ.EQ$FE75t;À - ~‡.OR$300ˆ;À -’SETUP‚LDA#CTRLY œ‡STA$3F9¦‡LDA/CTRLY °‡STA$3FAº‡RTSÄ;À -ÎCTRLY‚CMP#"-†MINUSSIR¢‡.LISTOFF¬;À -¶;†MONITOREXTENSIONSÀ;Ê;„APPLEASSEMBLYLINEÔ;†V2N1P16,OCT1981Þ;è;À -ò;†MONITOREXTENSIONSü;À -MON.YSAVƒ.EQ$34PC‰.EQ$3A,3BBGN.ADDRƒ.EQ$3C,3D$END.ADDRƒ.EQ$3E,3F.WBUF‡.EQ$2008MON.PRN  ;À -;R 8 ‡BNE.7B ‡INCA.PNTR+1L .7…LDAA.PNTR+1V ‡CMP/ARRAY+SIZE ` ‡BCC.2j ‡RTSt ;À -%~ ;OPTIONALPRINTPRIMESUBROUTINEˆ ;À -’ PRINTPLDYPRIME+1‚HIBYTEœ ‡LDXPRIME!¦ ‡JSRPRINTNƒPRINTDECIMALVAL° ‡JSRLINE…VIDEO"-"OUTº ‡RTSÄ INARRAY¬‡STA(B.PNTR),Y¶‡BEQ.4‡...ALWAYSÀ;À -$Ê;NOWCOUNTPRIMESFOUND(C=C+1)Ô;À -Þ.5è;†JSRPRINTPƒPRINTPRIMEò‡INCCOUNT ü‡BNE.6 ‡INCCOUNT+1 ;À -0 ;ADVANCEOUTERPOINTERANDTESTIFFINISHED$ ;À -. .6…INCA.PNTNTR+1 H‡CLCŠBUMPARRAYPOINTERBYP#R.4…LDAB.PNTRƒBUMPTONEXTSLOT\‡ADCPRIMEf‡STAB.PNTRp‡LDAB.PNTR+1z‡ADCPRIME+1„‡STAB.PNTR+1/Ž‡CMP/ARRAY+SIZEƒSEEIFBEYONDENDOFARRAY"˜‡BCS.5‡YES,FINISHEDCLEARING!¢‡TYAŠNO,CLEARENTRYHIGHBYTEÚ‡BNE.5‡PRIME>SQRT(16384) ä‡CPY#127î‡BCS.5‡PRIME>SQRT(16384)ø;À -(;NOWCLEAREVERYP-THENTRYAFTERP ;À - ‡LDY#0- ‡LDAA.PNTRƒUSECURRENTOUTERPOINTERFOR*‡STAB.PNTR…INNERPOINTERS4‡LDAA.PNTR+1>‡STAB.PINDEXD‡TAYN‡TXAŠHI-BYTEOFINDEXX‡ROLb‡TAXl‡TYAŠNOWADD3 v‡ADC#3€‡STAPRIME Š‡BCC.3”‡INXž.3…STXPRIME+1¨;À -1²;FOLLOWING4LINESCHANGEALGORITHMSLIGHTLY,¼;TOSPEEDITUPFROM.93TO.74SECONDSÆ;À -ЇTXAŠTESTNCEPOINTERÌ;À --Ö;CALCULATECURRENTINDEXINTOFLAGARRAYà;À -ê‡SECô‡LDAA.PNTR+1þ‡SBC/ARRAY‡TAXŠSAVEHI-BYTEOFINDEX ‡LDAA.PNTRƒLO-BYTEOFINDEX;À -.&;CALCULATENEXTPRIMENUMBERWITHP=I+I+30;À -:‡ASLŠDOUBLETHEPAGEh‡DEXŠNEXTPAGEr‡BNE.1‡MOREPAGES|;À -,†;SCANENTIREARRAY,LOOKINGFORAPRIME;À --š‡LDA/ARRAYƒSETA.PNTRTOBEGINNINGAGAIN¤‡STAA.PNTR+1®.2…LDY#0‡CLEARINDEX%¸‡LDA(A.PNTR),Y‚LOOKATNEXTFLAG&‡BEQ.6‡NOTPRIME,ADVAú‡LDA/ARRAY‡STAA.PNTR+1‡LDA#1‡LOADWITHONE"‡LDX/SIZE„#PAGESTOSTOREIN";À -&,;SETEACHELEMENTINARRAYTOONE6;À -#@.1…STA(A.PNTR),Y‚SETFLAGTO1J‡INYŠNEXTLOCATIONT‡BNE.1‡GO256TIMES$^‡INCA.PNTR+1POINTATNEXTGETHIBYTEOFCOUNTŒ‡LDXCOUNT"–‡JSRPRINTNƒPRINTPRIMESFOUND ‡RTSª;À -´;†GENERATETHEPRIMES¾;À -ÈGENERATE.PRIMESÒ‡LDY#0‡CLEARINDEX#܇STYCOUNT„CLEARCOUNTVARIABLEæ‡STYCOUNT+1-ð‡STYA.PNTRƒSETUPPOINTERFOROUTERLOOP(‡LDA#100…LOOP100TIMES2‡STATIMES„SETCOUNTER<.1…JSRGENERATE.PRIMES1F‡LDA$400…TOGGLESCREENFORVISIBLEINDICATOR+P‡EOR#$80…THATPROGRAMISSTILLRUNNING Z‡STA$400d‡DECTIMESn‡BNE.1‡LOOPx‡JSRBELL…READWATCH!%‚‡LDYCOUNT+1‚ ¢‡.LISTOFF¬;À -¶;†ARITHMETICPACKAGEÀ;Ê;„APPLEASSEMBLYLINEÔ;†V2N2P2,NOV1981Þ;è;À - ò;†TESTü;À -TESTƒLDY#10†LOOP10TIMES‡JSRFP.LOAD‚VAR1=1.0‡.DAAS.ONE$‡JSRFP.STORE .‡.DAVAR18‡JSRFP.LOAD‚VAR2=          OPYSTRINGDATA!‚‡LDX#BUFFER„INTOSTRINGAREAŒ‡LDALENGTH(–‡JMPAS.MOVSTRCOPYITNOW,ANDEXIT ;À -ONELENGTH‡TXA+‡JSRAS.GETSPAGETSPACEINSTRINGAREA!(‡LDY#0ˆSETUPSTRINGVARPTR2‡STA(PNTR),YƒLENGTH<‡INY F‡LDAADDR#P‡STA(PNTR),Y‚ADDRESS(LO-BYTE)Z‡INYd‡LDAADDR+1 n‡STA(PNTR),Y‚ADDR(HI-BYTE)+x‡LDY/BUFFERƒSETUPTOCQ.1‡YESćJMPAS.SYNERRSORRY..+Î.1…JSRAS.CHRGETSETUPFOLLOWINGCHARS&؇JSRAS.PTRGETFINDSTRINGVARPTR*â‡JSRAS.INLINEREADALINEINTOBUFFER!ì.2…INX‹COMPUTELENGTHOFLINEö‡LDABUFFER,X‡BNE.2ˆNOTATEOLYET ‡STXLENGTH„SAVELIRGET‚.EQ$00B1BAS.SYNERR‚.EQ$DEC9LAS.INLINE‚.EQ$D52CVAS.PTRGET‚.EQ$DFE3`AS.GETSPA‚.EQ$E452jAS.MOVSTR‚.EQ$E5E2t;À -~ADDR‡.EQ$71,72ˆPNTR‡.EQ$83,84’LENGTH….EQ$9DœBUFFER….EQ$200¦;À -°GET„CMP#$BE…"GET"TOKEN?º‡BEn¢‡.LISTOFF¬;À -¶;†FASTSTRINGINPUTROUTINEÀ;Ê;„APPLEASSEMBLYLINEÔ;†V2N3P16,DEC1981Þ;è;À -ò;„FASTSTRINGINPUTROUTINEü;„&GET;„ACCEPTSANYCHAR;À - ‡.OR$300$‡.T0FAST.READ.OBJ.;À -8AS.CHHARSINLINE°‡BEQ.3ŠEMPTYLINE-º.2…LDABUFFER-1,X‚STRIPOFFALLSIGNBITS ćAND#$7F·STABUFFER-1,X؇DEX â‡BNE.2 ì.3…LDA#0ö‡LDX#BUFFER-1‡LDY/BUFFER-1 ‡RTS;À -H$200B;À - LAS.INLINEV‡LDA#$80ˆNULLCHAR#`INLIN2STXMON.PROMPT‚ASPROMPT)j‡JSRMON.RDLINE‚READLINEINTOBUFFER#t‡CPX#239ˆTRUNCATETO239CHARS ~‡BCC.1 ˆ‡LDX#239'’.1…LDA#0ŠMARKENDOFLINEWITH$00œ‡STABUFFER,X¦‡TXAREAL#C¢‡.LISTOFF¬;À -¶;†APPLESOFTLINEINPUTÀ;Ê;„APPLEASSEMBLYLINEÔ;†V2N3P16,DEC1981Þ;è;À -%ò;ƒAPPLESOFTLINEINPUTSUBROUTINEü;À -‡.OR$D52C ‡.TA$82C;À -$MON.PROMPT.EQ$33.MON.RDLINE.EQ$FD6A8BUFFER….EQ  END.ADDR+1 ”AS1„TAYž ¨‡LDA#"=²‡JSRMON.COUT¼‡JMPMON.PRNTYXÆ;À -Ö‡LDABGN.ADDR+1 à‡SBCPC+1ê‡BCC.1‡NO ô‡RTSŠYESþ;À - SUBSEC‡LDABGN.ADDR‡SBCEND.ADDR&‡TAX0‡LDABGN.ADDR+1:‡SBCEND.ADDR+1 D‡JMPAS1N;À - XADD„CLCb‡LDABGN.ADDRl‡ADCEND.ADDRv‡TAX€‡LDABGN.ADDR+1Š‡ADC0…MAKENORMALVIDEO†‡CMP#$A0…SEEIFPRINTABLE‡BCS.4‡YES/š‡EOR#$C0…MAKECONTROLSINTOFLASHINGALPHA¤.4…JSRMON.COUTPRINTIT"®‡JSRMON.NXTA1‚ADVANCEPOINTER¸‡BCC.3‡MOREONTHISROW‡LDABGN.ADDR%̇CMPPC‡SEEIFFINISHEDWITHDUMP ú‡AND#$F8‡STABGN.ADDR.1…JSRMON.XAM8 ‡SECŠBACKUPPOINTERFORROW"‡LDABGN.ADDR ,‡SBC#86‡STABGN.ADDR@‡BCS.2‡NOBORROWJ‡DECBGN.ADDR+1T.2…LDA#$A0…PRINTBLANK^‡JSRMON.COUT h.3…LDY#0r‡LDA(BGN.ADDR),Y|‡ORA#$8MAKEEOSš ‡STA$100,Y"¤ ‡STADˆNEEDNOTRAILINGZEROES® ;À -$¸ ;†PRINTLEADINGBLANKSASNEEDED ;À -Ì .6…JSRLEADING.BLANKSÖ ;À -à ;†PRINTCONVERTEDSTRINGê ;À -ô ;†COMESHEREWITH(Y)=0þ .8…LDA$100,Y  ‡BEQ.9 ‡JSRAS.COUT ‡INEMENTINGD" ;†(PUTEOSAFTERDDIGITS, ;À -6 .3…INYŠNEXTCHAR @ ‡LDAD J ‡BEQ.5‡NOFRACTIONALDIGITS0T .4…LDA$100,YƒCOUNTFRACTIONALDIGITSTOEND^ ‡BEQ.6‡ENDOFSTRINGh ‡INY r ‡DECD"| ‡BNE.4‡STILLNEEDMOREDIGITS† ;À - .5…LDA#0‡ ª ‡DECDˆBACKUPDIFPOSSIBLE´ ‡BPL.1‡TRYAGAIN¾ ‡JMPPRINT.GTOVERFLOWÈ ;À -$Ò ;†APPENDD.P.SINCENONEPRESENTÜ ;À -#æ .2…LDA#'.†PUTD.P.BACKONENDð ‡STA$100,Yú ‡LDA#0‡ENDOFSTRINGCHAR ‡STA$101,Y ;À -! ;†SCANTOEND,DECRND,DECREMENTINGWF ;À -%P .1…LDA$100,YƒSCANTOENDORD.P.Z ‡BEQ.2‡FOUNDEND,NOD.P. d ‡CMP#'.n ‡BEQ.3‡FOUNDD.P.x ‡INYŠCOUNTSTRINGLENGTH ‚ ‡DECW.Œ ‡BPL.1‡..UNLESSTOOMANYDIGITSFORFIELD – ‡LDA#0!  ‡STAWˆNEEDNOLEADINGBLANKSWHOLEFIELDœ ‡STXWD.GT¦ ‡CPYWˆFORCEDFAC*` ‡JSRAS.FOUT‚CONVERTTOSTRINGAT$100j ‡JSRGET.ADDR2‚(X)=W,(Y)=D&t ‡CPX#41†LIMITFIELDWITH40CHARS ~ ‡BCC.14 ˆ ‡LDX#40#’ .14„STXWˆ#CHARSINRAS.MOVAF‚MOVEFACTOARGʇPLAÔ‡TAYÞ‡PLAè‡JSRAS.MOVFMò‡JSRAS.FDIVTü‡JMPFP.EXIT ;À -1 ;†JSRFP.PRINT.WD„PRINTVALIEWITHW.DFORMAT ;†.DA ;†.DA# ;†.DA#$ ;ŠD=#DIGITSAFTERD.P. . ;ŠW=#CHARSFP.MULƒFAC=FAC*VALUE>;†.DAH;À -&RFP.MULJSRGET.ADDRINY,XANDY,A\‡JSRAS.FMULf‡JMPFP.EXITp;À -"z;†JSRFP.DIVƒFAC=FAC/VALUE„;†.DAŽ;À -˜FP.DIVJSRGET.ADDR¢‡PHA¬‡TYA¶‡PHA!À‡JSSRGET.ADDRINY,XANDYMAƇJSRAS.FADD‚FAC=ARG+FACЇJMPFP.EXITÚ;À -"ä;†JSRFP.SUBƒFAC=FAC-VALUEî;†.DAø;À -FP.SUBJSRGET.ADDR ‡JSRAS.FSUB‚FAC=ARG-FAC‡JSRAS.NEGOPFAC=-FAC ‡JMPFP.EXIT*;À -"4;†JSR;À - &FP.PRINT0‡JSRGET.ADDR:‡JSRAS.MOVFMD‡JSRAS.FOUT N‡LDY#0X.1…LDA$100,Y b‡BEQ.2l‡JSRAS.COUTv‡INY€‡BNE.1‡...ALWAYSŠ.2…JMPFP.EXIT”;À -"ž;†JSRFP.ADDƒFAC=FAC+VALUE¨;†.DA²;À -&¼FP.ADDJM¤‡JMPFP.EXIT®;À -¸;†JSRFP.STORE…STOREFACÂ;†.DAÌ;À - ÖFP.STORE à‡JSRGET.ADDRINY,XANDY,Aê‡JSRAS.MOVMFô‡JMPFP.EXITþ;À --;†JSRFP.PRINT…PRINTVALUEINFREEFORMAT";†.DAQ$ED346AS.NEGOPƒ.EQ$EED0FAC=-FAC@;À -'JMON.BLANKS.EQ$F948PRINT3BLANKS"TMON.CROUT‚.EQ$FD8EPRINTCRLF^;À -%h;†JSRFP.LOAD†LOADVALUEINTOFACr;†.DA|;À - †FP.LOAD ‡JSRGET.ADDRINY,XANDY,Aš‡JSRAS.MOVF=ARG-FACÒAS.FADD„.EQ$E7BEÜAS.ONE….EQ$E913CONST1.0æAS.FMUL„.EQ$E97FðAS.TEN….EQ$EA50CONST10.0"úAS.FDIVTƒ.EQ$EA69FAC=ARG/FACAS.MOVFMƒ.EQ$EAF9AS.MOV1Fƒ.EQ$EB21AS.MOVMFƒ.EQ$EB2B"AS.MOVAFƒ.EQ$EB63FAC->ARG,AS.FOUT„.EOP F‡BNE.1P‡RTSŠFINISHEDZVAR1ƒ.BS5ˆMYVARIABLESdVAR2ƒ.BS5n;À -x;†ARITHMETICPACKAGE‚;À -ŒAS.FOUT.E‚.EQ$9A–AS.TEMP1ƒ.EQ$93,97 AS.TXTPTR‚.EQ$B8,B9ª;À -´AS.CHRGET‚.EQ$00B1¾AS.COUT„.EQ$DB5C!ÈAS.FSUB„.EQ$E7A7FACNE؇JSRFP.STORE â‡.DAVAR2ì‡JSRFP.PRINT.WD ö‡.DAVAR1 ø‡.DA#8 ú‡.DA#3‡JSRFP.PRINT.WD ‡.DAVAR1 ‡.DA#19 ‡.DA#4‡JSRMON.BLANKSƒ3SPACES‡JSRFP.PRINT (‡.DAVAR12‡JSRMON.CROUT‚PRINTCR<‡DEYŠNEXTTRIPAROUNDLO10.0B‡.DAAS.TENL‡JSRFP.STORE V‡.DAVAR2%`.1…JSRFP.LOAD‚VAR1=(VAR1+1)/VAR2 j‡.DAVAR1t‡JSRFP.ADD~‡JSRAS.ONEˆ‡JSRFP.DIV ’‡.DAVAR2œ‡JSRFP.STORE ¦‡.DAVAR1°‡JSRFP.LOAD‚VAR2=VAR2-1 º‡.DAVAR2ćJSRFP.SUB·.DAAS.O‡.OR$FDB88‡.TA$0DB8!B‡JSRPATCH„CALLMYPATCHCODEL;À -V‡.OR$FCC9`‡.TA$0CC9 jPATCHt‡JSRCOUT…PRINTASPACE)~‡LDA(A1L),Y‚GETBYTETOBEDISPLAYEDˆ‡PHAŠPUSHIT%’‡LDAA1L†LOWBYTEOFBUMPADDRESSœ‡AND#7‡MASKLINEPOSITION¦–˜‡.LISTOFF¢;À -¬;†PATCHESTOADDASCIIDUMP¶;†TOTHEAPPLEMONITORÀ;Ê;„APPLEASSEMBLYLINEÔ;†V2N3P20,DEC1981Þ;è;À -ò;†PATCHESTOADDASCIIDUMPü;†TOTHEAPPLEMONITOR;À -A1L„.EQ$3CCOUT‚.EQ$FDED$;À -.RTSÀ;À -R SAVE.T.BS2ˆTXTPTR*WD.GT‚.BS14;À - >FP.EXIT"H‡LDAAS.TXTPTR+1‚GETHIGHBYTER‡PHA\‡LDAAS.TXTPTR„GETLOWBYTEf‡PHAp‡LDASAVE.Tz‡STAAS.TXTPTR„‡LDASAVE.T+1Ž‡STAAS.TXTPTR+1˜‡LDASAVE.A¢‡LDXSAVE.X¬‡LDYSAVE.Y¶‡‡PHAv‡TXAŠADDRALSOINY,A€‡RTSŠ;À - ”GET.ADDR2 ž‡JSRAS.CHRGETGETNEXTBYTE¨‡TAX ²‡JSRAS.CHRGETGETNEXTBYTE¼‡TAYƇRTSÐ;À - ÚW†.BS1 äD†.BS1îRETHI‚.BS1øRETLO‚.BS1SAVE.A.BS1 SAVE.X.BS1SAVE.Y.BS1TPTRSAVEASOFTTXTPTRþ‡STASAVE.T‡LDAAS.TXTPTR+1‡STASAVE.T+1/‡PLAŠPOINTATBYTESAFTERJSRFP.&‡STAAS.TXTPTR0‡PLA:‡STAAS.TXTPTR+1*D‡JSRGET.ADDR2‚GETFIRST2BYTESAFTERN‡LDARETHI„RETURNX‡PHAb‡LDARETLOl.YTIMES%h‡BEQ.2‡(Y)IS0,DON'TPRINTANYr.1…JSRAS.COUT|‡DEY †‡BNE.1 .2…RTSš;À - ¤GET.ADDR®‡STASAVE.AƒSAVEA,X,YREGS¸‡STXSAVE.X‡STYSAVE.Y"̇PLAŠSAVEGET.ADDRRETURNADDRÖ‡STARETLOà‡PLAê‡STARETHI$ô‡LDAAS.TX-ÒLEADING.BLANKS܇LDA#'‡BLANKæ‡LDYWˆ#TOPRINTð‡JMPPRINT.ACHAR.YTIMESú;À - ;†OUTPUT(D)TRAILINGZEROES;À -TRAILING.ZEROES "‡LDA#'0 ,‡LDYD6;FALLINTO...@;À -"J;†PRINT(Y)REPETITIONSOF(A)T;À -^PRINT.ACHARD.P.F‡JSRAS.COUTP‡JSRTRAILING.ZEROESZ‡JMPFP.EXITd;À -,n;†PRINT(WD.GT)GREATERTHANSIGNS(">")x;À - ‚PRINT.GTŒ‡LDA#'>†OVERFLOW–‡LDYWD.GT ‡JSRPRINT.ACHAR.YTIMESª‡JMPFP.EXIT´;À -¾;†OUTPUT(W)LEADINGBLANKSÈ;À SIGNIFICANTDIGITS ·BEQ.14؇JSRAS.COUTâ‡DEXì‡INYö‡BNE.13†...ALWAYS$.14„LDADˆSAVETRAILINGZEROCNT ‡PHA#‡STXDˆSETUPZEROESBEFORE"."‡JSRTRAILING.ZEROES'(‡PLAŠRESTOREREALTRAILINGZEROCNT 2‡STAD<‡LDA#'.†PRINT;†E-FORMATWITHEXP>0j;À - t.12„CMPWˆSEEIFENOUGHROOM%~‡BCSPRINT.GTFILLFIELDWITH">"ˆ‡TAX$’‡INXŠ#DIGITSANDTRAILINGZEROESœ‡EOR#$FF…-(EPX+1)#¦‡ADCWˆCOMPUTE#LEADINGBLANKS °‡STAWº‡JSRLEADING.BLANKS+Ä.13„LDA$100,YƒPRINTEZEROESÊ ;À - Ô ‡LDY#0Þ ‡LDADˆHOWMANYDIGITS?è ‡BEQ.9‡NONEò .8…LDA$100,YƒGETADIGITü ‡BEQ.10†OUTOFDIGITS‡JSRAS.COUT‡INY ‡DECD$‡BNE.8‡MORE..9…JMPFP.EXIT8;À -B.10„JSRTRAILING.ZEROESL‡JMPFP.EXITV;À -`ES#4 ‡CMPDˆSEEIFMORETHANWENEED> ‡BCC.4‡NOH ‡LDADˆYES,JUSTUSED R .4…TAX\ ;À -f ‡JSRLEADING.BLANKSp ;À -z ‡LDA#'.†D.P.„ ‡JSRAS.COUTŽ ;À -˜ .7…LDA#'0†ZEROES¢ ‡JSRAS.COUT¬ ‡DECDˆREDUCEDIGITCOUNT¶ ‡DEXÀ ‡BNE.7‡MOR¨ ‡CMP#'E ² ‡BEQ.3$¼ ‡CMP#'.†SHUFFLEDIGITSAFTE"."Æ ‡BEQ.2‡LEFT1POSITIONÐ ‡STA$100,XÚ ‡INX ä .2…INYî ‡BNE.1‡...ALWAYSø .3…LDA#0‡EOS ‡STA$100,X ;À - ‡LDAAS.FOUT.E‚EXPAGAIN ‡BPL.12†EXP>0"* ‡EOR#$FF…-(EXP+1)IS#ZEROY& ‡BNE.8‡...ALWAYS0 ;À -%: ;†PRINTTRAILINGZEROESASNEEDEDD ;À -N .9…JSRTRAILING.ZEROESX ‡JMPFP.EXITb ;À -+l ;†HANDLENUMBERSWHICHCOMEINE-FORMATv ;À - € E.FORMAT Š ‡LDX#0 ” ‡LDY#0,ž .1…LDA$100,YƒSCANTO"E",CHANGETOEOS #$7F…LOCATIONOFKEYWORDINTABLEò‡TAXŠINDEX->Xü‡STYAS.FORPNTHOLDY+ ‡LDY#$D0…KEYWORDTABLESTARTSAS$D0D0 ‡STYAS.DSCTMP  ‡LDY#$CF$ ‡STYAS.DSCTMP+1. ‡LDY#$FF…WHENBUMPED,Y=0$8 .9…DEXŠDECINDEXTOKEYWORDLOC.&B ‡BEQ.11†WHENCOMMANDINPUTf;À -p;GETCHARINKEYWORDTABLEz;À - „.6…INY Ž‡BNE.7˜‡INCAS.DSCTMP+1¢.7…LDA(AS.DSCTMP),Y¬‡RTS¶;À -À;PRINTCHARORKEYWORDÊ;À -$Ô.8…BPL.4‡NON-TOKENISPOSASCII$Þ‡SECŠTOKENMINUS#$7F=INDEXTO*è‡SBC,YGETCHARORTOKEN$‡BNE.8ˆIFNOTEOS(0),GETMORE ;À -&*;TWOENDINGS,ONEHAPPY,ONESADE4;À - >‡LDA#0‡LINEFOUND,ENDWITH(H‡JMPMON.TABVCURSORATROW2,COL2,R.5…JSRMON.BELLLINENOTFOUND.ENDWITH+\‡JMPAS.CRDO‚CURSORBELOWINY)¨‡LDA(AS.LOWTR),YPITLINE#HIINTOA²‡STYAS.FORPNTHOLDY'¼‡JSRAS.LINPRTPRINTDECIMALOFA,XÆ;À -Ð;GETCHARORTOKENÚ;À -ä‡LDA#'‡SPACEî.3…LDYAS.FORPNTRESTOREY#ø.4…JSRAS.OUTDO‚PRINTCHARINA‡INY' ‡LDA(AS.LOWTR)IFLINE#NOTFOUND&;À -*0;CLEARSCREENANDSETTOROW2,COL2:;À -D‡JSRMON.HOMEN‡JSRAS.CRDOX‡JSRAS.OUTSPb;À -l;PRINTLINENUMBERv;À -$€‡LDY#2‡SETINDEXTOLINE#BYTES"Š‡LDA(AS.LOWTR),YPUTLINE#LO”‡TAXŽINTOXž‡SRTS1…FLAGS&RETURNTOCALLES5Ö‡JMPAS.CHRENTIFNOTEOS,RE-ENTERCHRGET/CHRGOTà;À -"ê;FINDLOCATIONIFLINENUMBERô;À -þ.2…JSRAS.FRMEVLLINE#->FAC‡JSRAS.GETADRFAC->LINNUM&‡JSRAS.FNDLINADDROFLINE->LOWTR*‡BCC.5ˆCARRYCLEART‡STAAS.CHREXT+2 ^RTS1ƒRTSh;À -r;CHECKFORVALIDCOMMAND|;À -$†EDITƒCMP#$2F…ISITASLASH(/)?‡BNE.1‡NO,RETURN#š‡INCAS.TXTPTRYES,BUMPTXTPTR¤‡BNE.2ˆ...ALWAYS®;À -¸;À -+Â.1…CMP#$3A…OFCOLON(EOS),SETZANDC&̇BCABTOVALUEINA1æMON.HOMEƒ.EQ$FC58…;HOMECURSOR,CLEARSCREENðMON.BELLƒ.EQ$FF3A…;BEEP!;À --;PUTLINE.EDITVECTORINTOCHRGET/CHRGOT;À -""START‚LDA#$4C…JMP'LINE.EDIT',‡STAAS.CHREXT6‡LDA#EDIT@‡STAAS.CHREXT+1J‡LDA/EDITOUTDOƒ.EQ$DB5C„;OUTPUTCHARACTER< AS.FRMEVL‚.EQ$DD7B„;EVALFORMULAATTXTPTR,RESULT->FAC9ªAS.GETADR‚.EQ$E752„;FACTOINTEGERINLINNUM($50,51)/´AS.LINPRT‚.EQ$ED24„;PRINTDECIMALOF(A,X)¾;À -È;†MONITORROMÒ;À -*ÜMON.TABVƒ.EQ$FB5B…;VTBA…;CHRGET/CHRGOTVECTORTOLINE.EDIT0PAS.CHRENT‚.EQ$BE…;RE-ENTRYTOCHRGET/CHRGOTZ;À -d;†APPLESOFTROMn;À ->xAS.FNDLIN‚.EQ$D61A„;ADDRNMBRINLINNUM($50,51)TOLOWTR‚AS.CRDO„.EQ$DAFB„;LINEFEED$ŒAS.OUTSPƒ.EQ$DB57„;OUTPUTSPACE(–AS.AS.LOWTRƒ.EQ$9B,9C;LOCATIONOFCHARACTERORTOKENINPRGM3 AS.DSCTMP‚.EQ$9D,9E;LOCATIONINKEYWORDTABLE;À -;†APPLESOFTCHRGET/CHRGOT(;À -*2AS.CHRGET‚.EQ$B1…;GETSCHARATTXTPTR&<AS.TXTPTR‚.EQ$B8,B9‚;TEXTPOINTER8FAS.CHREXT‚.EQ$ACKEDLINEATœ;ˆTOPOFSCREEN.5¦;„(C)IFCHRGET/CHRGOTVECTORDETSROYEDBYAPSOFT2°;ˆCOLDSTART(]FP,;E00G,;^B),RESETLINE.EDITº;ˆVECTORBYCALL768Ä;À - ·.OR$300Ø;À -â;†APPLESOFTROUTINESì;À -!öAS.FORPNT‚.EQ$85„;HOLDY-REG?B;;L;2.USESCHRGET/CHRGOTFILTERROUTINENOTEDINAAL9/81V;9`;3.CHARACTEROUTPUTROUTINEMODIFIEDFROMAPSOFTROMj;ƒCODE(LIST,$D6A5-$D765)t;~;4.INSTALLATIONANDUSE:ˆ;„(A)BRUNLINE.EDIT7’;„(B)COMMAND"/LINENUMBER"PRODUCESP¿¢‡.LISTOFF¬;À -¶;†PATCHESTOADDASCIIDUMPÀ;Ê;„APPLEASSEMBLYLINEÔ;†V2N3P20,DEC1981Þ;è;À -ò;ŠLINE.EDITü;;†BYSANDYMOSSBERG; ;‚COMMERCIALRIGHTSRESERVED$;.;À -+8;1.PACKSPROGRAMLINEFOREASYEDITING     ‡CLC&°‡ADC#31†COMPUTEHORIZONTALOFFSETº‡TAYćPLAŠGETBYTEFROMSTACK#·STA($28),Y‚STOREITONSCREEN؇LDY#0‡RESTOREYâ‡RTSì;À -RT-12‡ADC#RELOC-START1 <‡STA$3F9'F‡LDASTACK+1,XHIGHBYTEOFSTART-1P‡ADC/RELOC-START1 Z‡STA$3FAd‡RTSn;À -)xRELOC‚LDYMON.YSAVCMDBUFFERPOINTER"‚‡LDAINBUF,Y‚GETCHARAFTER^YŒ‡CMP#$AA…ISIT'*'?$–‡BNERELOC2ƒNO,RELOCATE1….EQ$02,03ÄR2….EQ$04,05ÎR4….EQ$08,09ØINSTƒ.EQ$0A,0B,0Câ;À -ìSTART‚LDA#$4C…JMPOPCODEö‡STA$3F8…BUILD^YVECTOR'‡JSRMON.RETURN‚FINDOUTWHEREIAM START1TSX‡DEXŠPOINTASLOWBYTE ‡SECŠ+1$(‡LDASTACK,X‚LOWBYTEOFSTAQ$F88E‚DISASSEMBLE(FINDLENGTHOFOPCODE)5jMON.NXTA4‚.EQ$FCB4‚UPDATEPOINTERS,TESTFORENDtMON.RETURN.EQ$FF58 ~STACK‚.EQ$0100„SYSTEMSTACK(ˆINBUF‚.EQ$0200„COMMANDINPUTBUFFER’;À -œA1….EQ$3C,3D¦A2….EQ$3E,3F°A4….EQ$42,43ºRMINPROGR.AID#1'$;†ORIGINALPROGRAMBYWOZ,11-10-77..;†ADAPTEDBYBOBSANDER-CEDERLOF,12-30-81$8;†(ELIMINATEDUSAGEOFSWEET-16)B;À -+LMON.YSAVƒ.EQ$34‚COMMANDBUFFERPOINTER1VMON.LENGTH.EQ$2F‚#BYTESININSTRUCTION-1<`MON.INSDS2.EØ ¢‡.LISTOFF¬;À - ¶;†6502RELOCATIONSUBROUTINEÀ;Ê;„APPLEASSEMBLYLINEÔ;†V2N4P8,JAN1982Þ;è;À - ò;†6502RELOCATIONSUBROUTINEü;À -7;†MAYBELOADEDANYWHERE,ASITISSELF-RELOCATABLE;À -3;†ADAPTEDFROMSIMILARPROGRA   PLACEINLINNUMÖ;À - à‡JSRQINT…CONVERTTOINTEGERê‡LDAFACLOô‡LDYFACMOþ‡STALINNUM‡STYLINNUM+1‡CLCŠSIGNALGOODVALUE .4…RTS&;À -P@;À -!J;‚CHECKIFNUMBERISNEGATIVET;À -^‡LDAFACSGN h‡BPL.3%r.2…SECŠNUMBERTOOLARGE,NEGATIVE|‡RTSŠORHASALETTERINIT.†;À -";‚CHECKIFNUMBERISTOOLARGEš;À -¤.3…LDAFACEXP ®‡CMP#$91¸‡BCS.4‡TOOLARGEÂ;À -Ì;‚Œ‡JSRGDBUFS–‡PLAŠRETRIEVELENGTH  ‡CMP#36 ª‡BCS.2´‡TAX¾‡DEXÈ.1…LDABUFFER,X Ò‡CMP#'A ܇BCS.2æ‡DEX ð‡BPL.1ú;„GETNUMBERINTOFAC‡LDA#BUFFER‡LDY/BUFFER‡STATXTPTR"‡STYTXTPTR+1,‡JSRCHRGOT 6‡JSRFINGET.INTEGER.INTO.LINNUM ‡LDX#0(‡JSRNXTCHR2‡TXAŠCHECKFORNULLENTRY<‡BEQ.2‡NULLF;À -P;†CHECKFORALPHAINPUT'Z;†ANDALSOWEEDOUTENTRIESSUCHAS%d;†"1E99"AND"À9..."WHICHWOULDn;†CAUSEOVERFLOWx;À -‚‡PHAŠSAVELENGTH$9DˆFACMO‚.EQ$A0’FACLO‚.EQ$A1œFACSGN.EQ$A2¦TXTPTR.EQ$B8,B9°BUFFER.EQ$200º;À -ÄCHRGOT.EQ$B7ÎGDBUFS.EQ$D539ØQINTƒ.EQ$EBF2âFIN„.EQ$EC4AìNXTCHR.EQ$FD75ö;À -*‡.OR$300…(BUTMAYBELOADEDANYWHERE) ;À -KNOWLEDGEMENT$;À -'.;†CALL:‚JSRGET.INTEGER.INTO.LINNUM.8;„RETURN:‚INTEGERVALUEINLINNUM($50,51)B;ANDCARRYCLEAR,%L;ORCARRYSETIFVALUENEGATIVE,V;ORTOOLARGE,`;ORHASALETTERINIT.j;À -tLINNUM.EQ$50,51~FACEXP.EQž¢‡.LISTOFF¬;À -¶;†INPUTINTEGER0-65535À;Ê;„APPLEASSEMBLYLINEÔ;†V2N3P12.5,DEC1981Þ;è;À -!ò;†PROGRAMTOINPUTANINTEGER#ü;†0-65535,ANDPUTITIN$50,51;!;†BYPETERMEYER,10OCT1981-;†MATBEFREELYUSEDWITHAC     ‡JSRAS.OUTDOPRINTNON-FINALCHAR(POSASCII)’ ‡BNE.12†...ALWAYS1œ .13„JSRAS.OUTDOPRINTFINALCHAR(NEGASCII)¦ ‡LDA#'‡SPACE° ‡BNE.3‡...ALWAYSº ;À -Ä SIZEƒ.EQ=-STARTÎ ;À - X=0,KEYWORDLOCATED(L .10„JSR.6‡GETCHARINKEYWORDTABLE&V ‡BPL.10†IFPOSASCII,GETANOTHER(` ‡BMI.9‡IFNEGASCII,DECLOC.INDEX j .11„JSRAS.OUTSPPRINTSPACE(t .12„JSR.6‡GETCHARINKEYWORDTABLE+~ ‡BMI.13†IT'STHEFINALCHARINKEYWORD2ˆOR7)ž;À -¨.8…TXAŠCOLORTOA-REG²;À -&¼.9…BITHIBIT„SEEIFHALFDOTSHIFTƇBPL.10†NOЇCLCÚ‡ADC#4‡YESä.10„STAHCOLOR+î‡TAXŠUSECOLOR#(0-7)TOGETCOLORBYTEø‡LDACOLOR.TABLE,X‡STAHCOLOR.BYTE ‡RTS;À - MSKTBL.HS‡NEIGHBORISINSAMEBYTE"0‡CPY#39†ALREADYATRIGHTEND?:‡BCS.8‡YES,NOTWHITETHEND‡INYN‡LDA(HBAS),Y X‡AND#1b‡BNE.7‡WHITE!l‡BEQ.8‡...ALWAYS(NOTWHITE)v.6…AND(HBAS),Y€‡BEQ.8‡NOTWHITEŠ;À -%”.7…LDX#3‡COLOROSWHITE(3INDIFFERENTBYTE$®‡BEQ.5‡NOBYTELEFTOFTHISONE¸‡DEY‡LDA(HBAS),Y ̇AND#$40Ö‡BNE.7‡WHITEà‡INYŠRESTOREYê‡BNE.5‡...ALWAYSô.4…AND(HBAS),Yþ‡BNE.7‡WHITE;À -..5…LDAHMASK„LOOKATNEIGHBORBITONRIGHT‡ASL$&‡BPL.6J‡LDAX0‡NOTBLACK T‡LDX#1^‡LSRŠODDOREVENX-COORD?h‡BCS.3‡ODD,COLOR=1OR5r‡INXŠEVEN,COLOR=2OR6|;À --†.3…LDAHMASK„LOOKATNEIGHBORBITONLEFT#‡LSRŠBITSAREINBYTEBACKWARDS!š‡BCC.4‡NEIGHBORINSAMEBYTE#¤‡TYAŠNEIGHBORISBITPOSITIONð‡LDAMSKTBL-249,Xú‡STAHMASK;À --‡LDA(HBAS),YGETBYTEWHICHHASOURSPOT(‡AND#$80…ISOLATEHALF-DOTSHIFTBIT"‡STAHIBIT ,‡LDA(HBAS),YGETBYTEAGAIN6‡ANDHMASK„ISOLATEOURSPOT#@‡BEQ.9‡COLORISBLACK(0OR4)ONLOOP  ‡LDY#35†YES:256=7*36+4$ª‡ADC#4‡CARRYWASSET,SOADDS5(´;“ALSOCLEARSCARRY,SOSBC#7BELOW¾;“ACTUALLYSUBTRACTS8È.1…INYŠINCRQUOTIENT/Ò.2…SBC#7‡SUBTRACTS7(OR8IFCARRYCLEAR)܇BCS.1‡STILLMORE7'S"æ‡TAXŠREMAINDERRHPAGE2‡ASL ‡ASL‡ASL‡ROLHBAS+1(‡ASL2‡ROLHBAS+1<‡ASL F‡RORHBASP‡LDAHBAS+1 Z‡AND#$1Fd‡ORAHPAGEn‡STAHBAS+1x;À -*‚‡TXAŠDIVIDEX-COORDBY7(7DOTS/BYTE)Œ‡CPY#0‡X-COORD>255?&–‡BEQ.2‡NO,ENTERSUBTRACTIELLEDABCDEFGH(°‡AND#$C0…CALCBASEADDRFORY-COORD#º‡STAHBAS‡INHBASFORACCESSINGćLSRŒSCREENMEMORYVIA·LSRŒ(HBAS),Y؇ORAHBAS…HBAS+1=PPPFGHCDâ‡STAHBAS…HBASƒ=EABAB000"ì‡PLAŠWHEREPPP=001FORHPAGE1'ö‡STAHBAS+1…ANDPPP=010FOSS8HMASK‚.EQ$30†BITMASKB;À -LX0….EQ$320,321X-COORD`Y0….EQ$322…Y-COORDjHCOLOR.BYTE.EQ$324+tHPAGE‚.EQ$326…HI-RESPAGE($20OR$40)~;À -ˆHSCRN‚LDAY0‡GETA=Y-COORD’‡LDXX0‡GETY,X=X-COORD œ‡LDYX0+1'¦‡PHAŠY-COORDBITSLAB| ¢‡.LISTOFF¬;À -¶;†HSCRNFUNCTIONWITHCOLORÀ;Ê;„APPLEASSEMBLYLINEÔ;†V2N4P2,JAN1982Þ;è;À -&ò;†HI-RESHSCRNFUNCTIONWITHCOLORü;&;†BYDAVIDDOUDNA,FERGUSON,MISS.;†NOV30,1981;À - $HBASƒ.EQ$26,27ƒBASEADDRE  CTIONŠ‡STA(A4),Y”‡INX2ž‡JSRMON.NXTA4‚ADVANCEA1ANDA4,TESTFOREND4¨‡DECMON.LENGTHTESTFORENDOFTHISINSTRUCTION$²‡BPL.4‡MOREINTHISINSTRUCTION#¼‡BCCRELOC2ƒENDOFSOURCEBLOCKƇRTSÐ;À -CINST+2 þ‡SBCR1+1‡BCC.3‡ADDRSRCEND)̇SECŠCOMPAREADDRTOBEGINNINGOFSRCÖ‡LDAINST+1 à‡SBCR1ê‡TAYô‡LDAINSTRUCTION2,‡LDXMON.LENGTH0=1BYTE,1=2BYTES,2=3BYTES6‡BEQ.3‡1-BYTEOPCODE@‡DEXJ‡BNE.2‡3-BYTEOPCODET‡LDAINST…2-BYTEOPCODE#^‡AND#$0D…SEEIFZEROPAGEMODE h‡BEQ.3‡NO(X0ORX2OPCODE) r‡AND#$08|‡BNE.3‡NO(80-FFOPCODE)ABLOCK+ ‡INCMON.YSAVYES,GETBLOCKDEFINITION ª‡LDX#7´.1…LDAA1,X ¾‡STAR1,XȇDEX Ò‡BPL.1܇RTSæ;À -.ðRELOC2LDY#2‡COPYNEXT3BYTESFORMYUSEú.1…LDA(A1),Y‡STAINST,Y‡DEY ‡BPL.1-"‡JSRMON.INSDS2GETLENGTHOF.RETURN?ˆBNE.2†NO(ˆLDA#LF…YES2ˆBNE.1†SEND<F.2†PLA‰RESTORECHARPˆRTSZ;À -d;PRINTEROUTPUTSUBROUTINEn;À -xPRINT.FIFO.OUTPUT.1‚ˆLDAPBCC„PRINTBUFFEMPTY?ŒˆBEQ.1†YES– ˆLDYPBOI„NOªˆLDAPBUFF,YGETPRIN’ˆ.ORSTARTœ;À -!¦;PRINTBUFFINPUTSUBROUTINE°;À -ºPRINT.FIFO.INPUTĈPHAΈAND#$7F„CLEARLDA7Øâ.1†LDYPBII)ìˆSTAPBUFF,YSTORECHARINPRINTBUFFöˆINCPBII„INCRINPUTINDEXˆINCPBCC„INCRCHARCOUNT ˆCMP#CR…CARRAUL,MN551058;À -'BPBII„.EQ$CE…PRINTBUFFINPUTINDEX(LPBOI„.EQ$CF…PRINTBUFFOUTPUTINDEX&VPBCC„.EQ$1F…PRINTBUFFCHARCOUNT+`PBUFFƒ.EQ$9400ƒPRINTBUFFBASEADDRESSjCR†.EQ$D†CARR.RETURNtLF†.EQ$A†LINEFEED~;À -ˆSTARTƒ.EQ$800ߢ‡.LISTOFF¬;À -¶;†PRINTERFIFOBUFFERÀ;Ê;„APPLEASSEMBLYLINEÔ;†V2N5P18,FEBR1982Þ;è;À -ò;‡PRINTERHANDLER"ü;USEDSOTHATPROGRAMDOESN'T;HANGWHENPRINTERISBUSY;;‡JIMKASSEL$;…1161GOODRICHAVE.;…ST.P    !!! ENDbSIZE„.EQEND-STARTl;À - v;NOTE:+€;(+):TRADEMARKOFORANGEMICRO,INC.,Š;(++):TRADEMARKOFEPSONAMERICA,INC.”;À -EERSELECTED&NOTBUSY?àˆBNE.1†NO,EXITê ôˆTXA‰YES,RESTOREPRINTCHAR'þˆSTAPREG,Y‚LOADPRINTEROUTPUTREGˆSTAPSTRBL,YSETSTROBEˆSTAPSTRBH,YCLRSTROBEˆCLC‰CLEARCARRY&ˆBCC.2†EXIT0.1†SEC‰SETCARRY: D.2†RTSN;À -XEQ$C081ƒPRINTERDATAREG'†PSTRBL‚.EQ$C082ƒPRINTERSTROBELOW(PSTRBH‚.EQ$C084ƒPRINTERSTROBEHIGHš;À -¤PRINT.FIFO.OUTPUT.2®ˆTAX‰SAVEPRINTCHAR¸ˆLDYPRINT.SLOT.SHIFTED#ˆLDAPSTAT,YGETPRINTERSTATUS̈AND#$A…MASK)ÖˆEOR#$2…PRINT .1†RTS;À -"";‚HANDLERFORTHEGRAPPLER(+),;ŠINTERFACECARD6;‡ANDMX-80PRINTER(++)@%J;PRINTCHARMUSTBEINTHEA-REG T;ƒCARRYSETIFCHARNOTSENT ^;ƒCARRYCLEAREDIFCHARSENTh&rPSTATƒ.EQ$C081ƒPRINTERSTATUSREG#|PREG„.EMPTY? ˆBEQ.1†YESª´ˆLDYPBOI„NO¾ˆLDAPBUFF,YGETPRINTCHARȈJSRPRINT.FIFO.OUTPUT.2"Ò;Œ(SPECIFICINTERFACEHANDLER),܈BCS.1†DON'TUPDATEIFPRINTERWASBUSYæ$ðˆINCPBOI„ELSEINCROUTPUTINDEX!úˆDECPBCC„ANDDECRCHARCOUNT„INCRINPUTINDEXˆINCPBCC„INCRCHARCOUNT(ˆCMP#CR…CARR.RETURN?2ˆBNE.2†NO<ˆLDA#LF…YESFˆBNE.1†SENDPZ.2†PLA‰RESTORECHARdˆRTSn;À -x;PRINTEROUTPUTSUBROUTINE‚;À -ŒPRINT.FIFO.OUTPUT.1–ˆLDAPBCC„PRINTBUFFEQ$D†CARR.RETURNˆLF†.EQ$A†LINEFEED’;À -œSTARTƒ.EQ$800¦ˆ.ORSTART°;À -!º;PRINTBUFFINPUTSUBROUTINEÄ;À -ÎPRINT.FIFO.INPUT؈PHAâˆAND#$7F„CLEARBIT7ìö.1†LDYPBII)ˆSTAPBUFF,YSTORECHARINPRINTBUFF ˆINCPBIIAUL,MN551058;À -BPRINT.SLOT.SHIFTED‚.EQ$10%L;“PRINTERSLOT#SHIFTEDLEFTBY4'VPBII„.EQ$CE…PRINTBUFFINPUTINDEX(`PBOI„.EQ$CF…PRINTBUFFOUTPUTINDEX&jPBCC„.EQ$1F…PRINTBUFFCHARCOUNT+tPBUFFƒ.EQ$9400ƒPRINTBUFFBASEADDRESS~CR†.Š¢‡.LISTOFF¬;À -¶;†PRINTERFIFOBUFFERÀ;Ê;„APPLEASSEMBLYLINEÔ;†V2N5P18,FEBR1982Þ;è;À -ò;‡PRINTERHANDLER"ü;USEDSOTHATPROGRAMDOESN'T;HANGWHENPRINTERISBUSY;;‡JIMKASSEL$;…1161GOODRICHAVE.;…ST.P    01020408102040*;À -$4COLOR.TABLE.HS002A557F80AAD5FF>;À -HHIBIT‚.BS1ˆMSB RHCOLOR.BS1ˆCOLORINDEX0-7\;À -01 ˆSTA.1+2ˆLDA#0†GETAZERO(ˆTAX‰SETINDEX2ˆLDY#$40„#PAGESMODIFIED<.1†STA$FFFF,XASWEGOFˆINX‰EVERYODDLOCATIONPˆINXZˆBNE.1†NOTDONEdˆINC.1+2„NEXTPAGEnˆDEYxˆBNE.1†NOTYET‚ˆRTSŒ;À -–;‡PRIMEROUTINE! ;ARTƒSETSTARTINGVALUEœˆJSRPRIME¦ˆDECCOUNTƒDONE?°ˆBNE.1†NOºˆJSRBEEP„YES,BEEPSPEAKERĈRTSÎ;À -Ø;‡ROUTINESTOZEROMEMORYâ;‡FROM$2000TO$6000ì;#öZERO„LDA#BASE+1STARTAT$2001ˆSTA.1+1„MODIFYOURSTORE ˆLDA/BASE+$2000ƒBASEOFPRIMEARRAY#8BEEP„.EQ$FF3AƒBEEPTHESPEAKERB;À -L;‡MAINCALLINGROUTINEV;0`MAIN„LDA#100„DO100TIMESSOWECANMEASURE jˆSTACOUNTƒTHETIMEITTAKEStˆJSRBEEP„ANNOUNCESTART~.1†JSRZERO„CLEARARRAY ˆˆLDA#3!’ˆSTAST? ¢‡.LISTOFF¬;À -¶;‚EVENFASTERPRIMESÀ;Ê;„APPLEASSEMBLYLINEÔ;†V2N5P24,FEBR1982Þ;è;À -ò;‚EVENFASTERPRIMESü;ƒCHARLESPUTNEY,IRELAND;À - ˆ.OR$8000ƒSAFELYOUTOFWAYˆ.T0PUTNEY'SPRIMES.OBJ$;À -&.BASE„.EQ!!!!""" " " " " QUOTIENT°ˆCPR1‡DIVIDEND>DIVISOR?ºˆBC‚STILL.GREATERĈRTNΈRTSØLENGRT‚.EQ=-GO"â;LOOKIN$00,01FORREMAINDERì;À -QTIENT-SWREG2:$04,05.;$8;-EXAMPLE--DIVIDE65534BY10!B;00:FEFF0A000000N300GL;V;‡JIMCHURCH`;À - jˆ.OR$300tSW16„.EQ$9B89~;À -ˆGO†JSRSW16’STILL.GREATER'œˆSUB1‡DEDUCTDIVISORFROMDIVIDEND¦ˆINR2‡ADD1TO‡¢‡.LISTOFF¬;À -¶;‚DIVIDEBYTENÀ;Ê;„APPLEASSEMBLYLINEÔ;†V2N5P24,FEBR1982Þ;è;À -#ò;DIVIDEANYNUMBERBY10ORBY#ü;ANYTHINGELSEFORTHATMATTER; ;DIVIDEND-SWREG0:$00,01;DIVISOR‚-SWREG1:$02,03 $;QUO!!!ˆAND#$7F‚----STRIPOFBIT7ìˆTAYöˆDEXˆTXS ˆPLAˆPLPˆTAX(ˆBCC$C1522ˆLDA$5B8,X<ˆBPL$C138FˆTYA PˆEOR#$30Z;À -ˆNOWISÀ -$ˆ.OR$C111 .ˆ.TA$8118ˆPLABˆTAYLˆDEXVˆTXS`ˆPLAjˆPLPtˆTAX~ˆBCC$C152ˆˆLDA$5B8,X’ˆBPL$C138œˆTYA!¦ˆAND#$7F‚----STRIPOFBIT7 °ˆEOR#$30º;---ASITNEEDSTOBEĈ.OR$C111 Έ.TA$811؈PLA!┢‡.LISTOFF¬;À -#¶;CHANGESTOEPSONAPL2708ROMÀ;Ê;„APPLEASSEMBLYLINEÔ;†V2N5P11,FEBR1982Þ;è;À -)ò;CHANGESTOEPSONAPLBOARD2708ROMü;TOMAKEITSUPPRESSBIT7%;BYSOFTWAREANDNOTBYHARDWARE;À -;---ASIT! ! ! T.2!†ˆBITPSTATƒGETPRINTERSTATUS ˆBMI.1†EXITIFPRINTERBUSYš%¤ˆSTAPREG„LOADPRINTEROUTPUTREG®ˆCLC‰CLEARCARRY¸ˆBCC.2†EXITÂ.1†SEC‰SETCARRYÌ Ö.2†RTSà;À -êENDôSIZE„.EQEND-STARTþ;À -TCARD";‡ANDMX-80IPRINTER,%6;PRINTCHARMUSTBEINTHEA-REG @;ƒCARRYSETIFCHARNOTSENT J;ƒCARRYCLEAREDIFCHARSENTT.^PSTATƒ.EQ$C1C1ƒPRINTERSTATUSREG,SLOT1+hPREG„.EQ$C090ƒPRINTERDATAREG,SLOT1r;À -|PRINT.FIFO.OUTPUTCHAR´ˆJSRPRINT.FIFO.OUTPUT.2"¾;Œ(SPECIFICINTERFACEHANDLER),ȈBCS.1†DON'TUPDATEIFPRINTERWASBUSYÒ$܈INCPBOI„ELSEINCROUTPUTINDEX!æˆDECPBCC„ANDDECRCHARCOUNTð ú.1†RTS;À -";‚HANDLERFOREPSONAPLTYPEI;ŠINTERFACEHILEHOLDTAKESEFFECT ö†BNE.1†LDY#7ˆMOVE8CHARS# .2…LDAMAP,Y„NEXTBYTEFROMMAP†BMI.3ˆCOPYCHAR†STACLOCK+2†SELECTREG(†LDACLOCK+2†READREG2†ORA#$B0†CONVERTTOASCII/<.3„STA$AA8B,YƒINLAST8CHARSOFPRIM.FNBF†DEY(P†BCMDL†JSRPATCHV;À -`†.OR$A3BEj†.T0B.3‡INSAVECMDt†JSRPATCH~;À -ˆSLOT‚.EQ5’CLOCK.EQSLOT*16+$C080œ;À -¦†.OR$B6B3 °†.T0B.4 ºPATCHĆPHAΆLDA#$10†HOLDCLOCK؆STACLOCK+1â†LDY#32‡DELAY150USEC"ì.1„DEY‹W†©Lø XÿºÊ8½iù½iú`¤4¹ɪРæ4¢µ<•Êù` ±<™ ˆø Žø¦/ð1ÊÐ ¥ ) ð()Ð$… ¥Å ¥å 8¥ 娥 å ª˜e… Še … ¢ µ ‘Bè ´üÆ/ô¬`"STA$C010„YES,CLEARSTROBE (‡JMP$FD8E„LINEFEED&RETURN2;À -2<MAP„.HS2A29AF2827AF2C2BA0A02524BA2322BA212000F;À -PBUFFER.EQ$7D0Z;À -SE.5 °‡LDA#$A0º‡BNE.2‡...ALWAYS"Ä.4…LDACLOCK+2,X‚READREGISTER Î.5…ORA#$B0…CONVERTTOASCIIØ.2…STABUFFER,Yâ‡INYì‡BNE.1‡...ALWAYSö.3…LDA#0‡RELEASECLOCK‡STACLOCK+1,X ‡LDA$C000„KEYPRESS?‡BPLREAD…NO,KEEPREADING ‡‡STACLOCK+1,XL‡LDY#0‡BEGINNINGOFMAP#V.1…LDAMAP,Y„NEXTBYTEFROMMAP`‡BEQ.3‡ENDOFMAPj‡BMI.2‡COPYCHAR"t‡STACLOCK+2,X‚SELECTREGISTER ~‡CMP#$25…ISITHOURS:TENS?ˆ‡BNE.4‡NO’‡LDACLOCK+2,X‚YESœ‡AND#3‡STRIPOFFFLAGS ¦‡BN—¬‡.LISTOFF¶;À -À;†READDATEFROMCLOCKIIÊ;Ô;„APPLEASSEMBLYLINEÞ;†V2N6P19,MARS1982è;ò;À -ü;†READDATEFROMCLOCKII;À -SLOTƒ.EQ$50†SLOT#;16CLOCK‚.EQ$C080$;À -.READƒLDX#SLOT8‡LDA#$10…HOLDCLOCKB""""P„MULT„.BS2‡MULTIPLIER&ŽSHCNTƒ.BS1‡SHIFTCOUNTMULTIPLIERPˆSTAN+1 ˆLDAN+2 ˆADCMULT+1 ˆSTAN+2" .2†CLC‰SHIFTMULT(BOTHBYTES) *ˆROLMULT4ˆROLMULT+1>ˆDEXHˆBNE.1†MOREBITS?RˆRTS\;!fSTARTƒ.BS1‡STARTINGKNOCKOUTpINC….BS1‡INCRFORKNOCKOUT(zCOUNTƒ.BS1‡COUNTFOR100TIMESLOOLEARN ŠˆSTAN+2#”ˆSTAMULT+1‚ANDMULTIPLIERHIGHžˆLDASTART¨ˆSTAMULT„MULTLOW=START²ˆSTASHCNTƒSHIFTCOUNTER¼ˆLDX#8†8SHIFTS%Æ.1†RORSHCNTƒGETLSBITSINCARRYЈBCC.2†DON'TADDTHISTIMEÚˆCLC‰N=N+MULT äˆLDAN+1 îˆADCMULT øME%ˆBNE.1†THISHASBEENKNOCKEDOUTˆSTXSTARTˆBEQPRIMEƒ...ALWAYS &.2†RTS0;À -:;‡SQUAREROUTINED;‡TAKESSQUAREOFNUMBERN;‡INSTART(1BYTE)ANDX;‡PUTSRESULTINN+1(LOW)b;‡ANDN+2(HIGH)l;vSQUARE‚LDA#0€ˆSTAN+1…C+¤ˆBCCLOOP„DON'TBOTHERTOADD,NOCARRY®ˆINY‰INCHIGHORDER ¸ˆSTYN+2ˆCPY/BASE+$4000‚>$6000?̈BCCLOOP„NO,REPEAT$ÖˆLDXSTARTƒGETOURNEXTKNOCKOUT à.1†INXêˆINX‰START=START+2ôˆBMI.2†DINEIFX>$7F$þˆLDABASE,X‚GETAPOSSIBLEPRI1ˆADC#BASE!"ˆTAX‰KEEPLOWORDERPARTINX,ˆLDA#0†N+1TOZERO 6ˆSTAN+1 @ˆLDAN+2JˆADC/BASE TˆSTAN+2^ˆTAY#hLOOP„LDA#$FF„FLAGASNOTPRIME/rN‡STA$FFFF,XREMEMBERTHATNISREALLYN+1|ˆCLC†ˆTXA‰N=N+INC ˆADCINCšˆTAX‡SETSARRAYSTARTINGATBASE#ª;‡TO$FFIFNUMBERISNOTPRIME!´;‡CHECKSONLYODDNUMBERS>3!¾;‡INC=INCREMENTOFKNOCKOUTÈ;‡N=KNOCKOUTVARIABLEÒ;ÜPRIMEƒLDASTARTæˆASL‰INC=START*2 ðˆSTAINCúˆJSRSQUARE‚SETN=N*NˆCLC ˆLDAN+