Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Pygments / examplefiles / output / ca65_example
Size: Mime:
€]q(cpygments.token
_TokenType
qXCommentqXSingleq†q…qq}q(Xsubtypesqcbuiltins
set
q	]q
…qRqXparentq
hh…q…qq}q(hh	]q(hhXPreprocq†q…qq}q(hh	]q…qRqh
hubhhXMultiq†q…qq}q(hh	]q …q!Rq"h
hubhhXHashbangq#†q$…q%q&}q'(hh	]q(…q)Rq*h
hubhhhX
SingleLineq+†q,…q-q.}q/(hh	]q0…q1Rq2h
hubhhXDocq3†q4…q5q6}q7(hh	]q8…q9Rq:h
hubhhX	Directiveq;†q<…q=q>}q?(hh	]q@…qARqBh
hubhhX	MultilineqC†qD…qEqF}qG(hh	]qH…qIRqJh
hubhhX
SinglelineqK†qL…qMqN}qO(hh	]qP…qQRqRh
hubhhXPreprocFileqS†qT…qUqV}qW(hh	]qX…qYRqZh
hubhhXSpecialq[†q\…q]q^}q_(hh	]q`…qaRqbh
hube…qcRqdh
h)…qeqf}qg(hh	]qh(hXEscapeqi…qj…qkql}qm(hh	]qn…qoRqph
hfubhXOperatorqq…qr…qsqt}qu(hh	]qv(hhqXDBSqw†qx…qyqz}q{(hh	]q|…q}Rq~h
htubhhqXWordq†q€…qq‚}qƒ(hh	]q„…q…Rq†h
htube…q‡Rqˆh
hfhh‚hwhzubhXNameq‰…qŠ…q‹qŒ}q(hh	]qŽ(hh‰XTagq†q…q‘q’}q“(hh	]q”…q•Rq–h
hŒubhh‰XEntityq—†q˜…q™qš}q›(hh	]qœhh‰h—hw‡q…qžqŸ}q (hh	]q¡…q¢Rq£h
hšuba…q¤Rq¥h
hŒhwhŸubhh‰X	Exceptionq¦†q§…q¨q©}qª(hh	]q«…q¬Rq­h
hŒubhh‰X	Decoratorq®†q¯…q°q±}q²(hh	]q³…q´Rqµh
hŒubhh‰XClassq¶†q·…q¸q¹}qº(hh	]q»(hh‰h¶hw‡q¼…q½q¾}q¿(hh	]qqÁRqÂh
h¹ubhh‰h¶XStartqÇqąqŁqÆ}qÇ(hh	]qȅqÉRqÊh
h¹ube…qËRqÌh
hŒhÃhÆhwh¾ubhh‰XVariableq͆q΅qρqÐ}qÑ(hh	]qÒ(hh‰hÍX	AnonymousqӇqԅqՁqÖ}q×(hh	]q؅qÙRqÚh
hÐubhh‰hÍh¶‡qۅq܁qÝ}qÞ(hh	]q߅qàRqáh
hÐubhh‰hÍXMagicqâ‡qã…qäqå}qæ(hh	]qç…qèRqéh
hÐubhh‰hÍXGlobalqê‡që…qìqí}qî(hh	]qï…qðRqñh
hÐubhh‰hÍXInstanceqò‡qó…qôqõ}qö(hh	]q÷…qøRqùh
hÐube…qúRqûh
hŒh¶hÝhêhíhòhõhâhåhÓhÖubhh‰X	Attributeqü†qý…qþqÿ}r(hh	]rhh‰hüh͇r…rr}r(hh	]r…rRrh
hÿuba…r	Rr
h
hŒhÍjubhh‰X	Namespacer†r…r
r}r(hh	]r…rRrh
hŒubhh‰XPropertyr†r…rr}r(hh	]r…rRrh
hŒubhh‰XSymbolr†r…rr}r(hh	]r …r!Rr"h
hŒubhh‰XClassesr#†r$…r%r&}r'(hh	]r(…r)Rr*h
hŒubhh‰XPseudor+†r,…r-r.}r/(hh	]r0…r1Rr2h
hŒubhh‰XLabelr3†r4…r5r6}r7(hh	]r8…r9Rr:h
hŒubhh‰hq†r;…r<r=}r>(hh	]r?…r@RrAh
hŒubhh‰XBuiltinrB†rC…rDrE}rF(hh	]rG(hh‰jBj+‡rH…rIrJ}rK(hh	]rL…rMRrNh
jEubhh‰jBXTyperO‡rP…rQrR}rS(hh	]rT…rURrVh
jEube…rWRrXh
hŒj+jJjOjRubhh‰XFieldrY†rZ…r[r\}r](hh	]r^…r_Rr`h
hŒubhh‰XOtherra†rb…rcrd}re(hh	]rfhh‰jaXMemberrg‡rh…rirj}rk(hh	]rl…rmRrnh
jduba…roRrph
hŒjgjjubhh‰XFunctionrq†rr…rsrt}ru(hh	]rvhh‰jqhâ‡rw…rxry}rz(hh	]r{…r|Rr}h
jtuba…r~Rrh
hŒhâjyubhh‰jO†r€…rr‚}rƒ(hh	]r„…r…Rr†h
hŒubhh‰XConstantr‡†rˆ…r‰rŠ}r‹(hh	]rŒ…rRrŽh
hŒube…rRrh
hfhühÿjBjEh¶h¹j‡jŠh®h±h—hšh¦h©jqjtjjj3j6jjjajdhh’hÍhÐjYj\jjj+j.hqj=j#j&jOj‚ubhXLiteralr‘…r’…r“r”}r•(hh	]r–(hj‘ja†r—…r˜r™}rš(hh	]r›…rœRrh
j”ubhj‘XCharrž†rŸ…r r¡}r¢(hh	]r£…r¤Rr¥h
j”ubhj‘XDater¦†r§…r¨r©}rª(hh	]r«…r¬Rr­h
j”ubhj‘XScalarr®†r¯…r°r±}r²(hh	]r³hj‘j®XPlainr´‡rµ…r¶r·}r¸(hh	]r¹…rºRr»h
j±uba…r¼Rr½h
j”j´j·ubhj‘XStringr¾†r¿…rÀrÁ}rÂ(hh	]rÃ(hj‘j¾XInterpolrćrÅ…rƁrÇ}rÈ(hh	]rÉ…rÊRrËh
jÁubhj‘j¾X	DelimeterṙrÍ…r΁rÏ}rÐ(hh	]rÑ…rÒRrÓh
jÁubhj‘j¾jž‡rÔ…rՁrÖ}r×(hh	]rØ…rÙRrÚh
jÁubhj‘j¾j‡rÛ…r܁rÝ}rÞ(hh	]rß…ràRráh
jÁubhj‘j¾h‡râ…rãrä}rå(hh	]ræ…rçRrèh
jÁubhj‘j¾ja‡ré…rêrë}rì(hh	]rí…rîRrïh
jÁubhj‘j¾XBacktickrð‡rñ…ròró}rô(hh	]rõ…röRr÷h
jÁubhj‘j¾hi‡rø…rùrú}rû(hh	]rü…rýRrþh
jÁubhj‘j¾XRegexrÿ‡r…rr}r(hh	]r…rRrh
jÁubhj‘j¾XMomentr‡r…r	r
}r(hh	]r…r
Rrh
jÁubhj‘j¾XBooleanr‡r…rr}r(hh	]r…rRrh
jÁubhj‘j¾X	Characterr‡r…rr}r(hh	]r…rRrh
jÁubhj‘j¾X	Delimiterr‡r …r!r"}r#(hh	]r$…r%Rr&h
jÁubhj‘j¾h3‡r'…r(r)}r*(hh	]r+…r,Rr-h
jÁubhj‘j¾h‰‡r.…r/r0}r1(hh	]r2…r3Rr4h
jÁubhj‘j¾XAffixr5‡r6…r7r8}r9(hh	]r:…r;Rr<h
jÁubhj‘j¾XHeredocr=‡r>…r?r@}rA(hh	]rB…rCRrDh
jÁubhj‘j¾XDoublerE‡rF…rGrH}rI(hh	]rJ…rKRrLh
jÁubhj‘j¾XInterprM‡rN…rOrP}rQ(hh	]rR…rSRrTh
jÁubhj‘j¾XAtomrU‡rV…rWrX}rY(hh	]rZ…r[Rr\h
jÁube…r]Rr^h
j”j5j8jðjójžjÖjj"h3j)jEjHhijúj=j@jÄjÇjajëjÿjhjäjjÝjjjj
jMjPjjjÌjÏjUjXh‰j0ubhj‘XNumberr_†r`…rarb}rc(hh	]rd(hj‘j_XFloatre‡rf…rgrh}ri(hh	]rj…rkRrlh
jbubhj‘j_XDecrm‡rn…rorp}rq(hh	]rr…rsRrth
jbubhj‘j_XRadixru‡rv…rwrx}ry(hh	]rz…r{Rr|h
jbubhj‘j_XOctr}‡r~…rr€}r(hh	]r‚…rƒRr„h
jbubhj‘j_XBinr…‡r†…r‡rˆ}r‰(hh	]rŠ…r‹RrŒh
jbubhj‘j_hü‡r…rށr}r(hh	]r‘…r’Rr“h
jbubhj‘j_XHexr”‡r•…r–r—}r˜(hh	]r™…ršRr›h
jbubhj‘j_XIntegerrœ‡r…ržrŸ}r (hh	]r¡h(j‘j_jœXLongr¢tr£…r¤r¥}r¦(hh	]r§…r¨Rr©h
jŸuba…rªRr«h
jbj¢j¥ubhj‘j_XDecimalr¬‡r­…r®r¯}r°(hh	]r±…r²Rr³h
jbube…r´Rrµh
j”j…jˆjejhj”j—jœjŸj}j€jujxhüjj¬j¯jmjpube…r¶Rr·h
hfj¾jÁj_jbj¦j©j®j±jaj™jžj¡ubhXGenericr¸…r¹…rºr»}r¼(hh	]r½(hj¸XErrorr¾†r¿…rÀrÁ}rÂ(hh	]rÃ…rÄRrÅh
j»ubhj¸X
SubheadingrƆrÇ…rȁrÉ}rÊ(hh	]rË…rÌRrÍh
j»ubhj¸X	TracebackrΆrÏ…rЁrÑ}rÒ(hh	]rÓ…rÔRrÕh
j»ubhj¸XOutputrÖ†r×…r؁rÙ}rÚ(hh	]rÛ…rÜRrÝh
j»ubhj¸XPromptrÞ†rß…ràrá}râ(hh	]rã…räRråh
j»ubhj¸XDeletedræ†rç…rèré}rê(hh	]rë…rìRríh
j»ubhj¸XInsertedrî†rï…rðrñ}rò(hh	]ró…rôRrõh
j»ubhj¸XHeadingrö†r÷…rørù}rú(hh	]rû…rüRrýh
j»ubhj¸XStrongrþ†rÿ…rr}r(hh	]r…rRrh
j»ubhj¸XEmphr†r…rr	}r
(hh	]r…rRr
h
j»ube…rRrh
hfjæjéjj	j¾jÁjöjùjîjñjÖjÙjÞjájþjjÆjÉjÎjÑubhj¾…r…rr}r(hh	]r…rRrh
hfubhXKeywordr…r…rr}r(hh	]r(hjh†r…rr}r (hh	]r!…r"Rr#h
jubhjj†r$…r%r&}r'(hh	]r(…r)Rr*h
jubhjjO†r+…r,r-}r.(hh	]r/…r0Rr1h
jubhjXPreProcr2†r3…r4r5}r6(hh	]r7…r8Rr9h
jubhjXControlr:†r;…r<r=}r>(hh	]r?…r@RrAh
jubhjj‡†rB…rCrD}rE(hh	]rF…rGRrHh
jubhjj†rI…rJrK}rL(hh	]rM…rNRrOh
jubhjj+†rP…rQrR}rS(hh	]rT…rURrVh
jubhjXDeclarationrW†rX…rYrZ}r[(hh	]r\…r]Rr^h
jubhjXReservedr_†r`…rarb}rc(hh	]rd…reRrfh
jube…rgRrhh
hfj‡jDjWjZjjKj+jRj_jbjOj-j:j=jj&j2j5hjubhja…ri…rjrk}rl(hh	]rm…rnRroh
hfubhXTextrp…rq…rrrs}rt(hh	]ru(hjpXRootrv†rw…rxry}rz(hh	]r{…r|Rr}h
jsubhjpj†r~…rr€}r(hh	]r‚…rƒRr„h
jsubhjpXRagr…†r†…r‡rˆ}r‰(hh	]rŠ…r‹RrŒh
jsubhjpX
Whitespacer†rŽ…rr}r‘(hh	]r’…r“Rr”h
jsubhjpXBeerr•†r–…r—r˜}r™(hh	]rš…r›Rrœh
jsubhjpXPunctuationr†rž…rŸr }r¡(hh	]r¢…r£Rr¤h
jsube…r¥Rr¦h
hfjjjj€jj jvjyj•j˜j…jˆubhhj…r§…r¨r©}rª(hh	]r«hjX	Indicatorr¬†r­…r®r¯}r°(hh	]r±…r²Rr³h
j©uba…r´Rrµh
hfj¬j¯ube…r¶Rr·jpjshihlj¾jjajkjjh‰hŒj‘j”jj©hqhthhj¸j»XTokenr¸hfj¾jÁj_jbubh#h&hChFhhhShVhhh[h^h;h>h+h.h3h6hhhKhNububX';--------------------------------------r¹†rºjsX
r»†r¼hX; Lychrel numbers.r½†r¾jsj»†r¿hX; rÀ†rÁjsj»†rÂhX#; :author: Marc 'BlackJack' RintschrÆrÄjsj»†rÅhX; :date: 2008-03-07rƆrÇjsj»†rÈhX; :version: 0.1rɆrÊjsj»†rËhX; r̆rÍjsj»†rÎhX5; Prints all `Lychrel numbers`_ between 1 and 100000.rφrÐjsj»†rÑhX; rÒ†rÓjsj»†rÔhX>; The numbers are stored as array of "digits" in little endianrÕ†rÖjsj»†r×hX<; order.  Each digit is a byte with a value between 0 and 9.r؆rÙjsj»†rÚhX; rÛ†rÜjsj»†rÝhX; Runtime on C64: 00:21:01rÞ†rßjsj»†ràhX; rá†râjsj»†rãhXB; .. _Lychrel numbers: http://en.wikipedia.org/wiki/Lychrel_numberrä†råjsj»†ræhX; rç†rèjsj»†réhX:; .. cl65 -l -tnone -C simple.cfg lychrel.s -o lychrel.prgrê†rëjsj»†rìhX';--------------------------------------rí†rîjsX

rï†rðhX';--------------------------------------rñ†ròjsj»†róhX; External addresses.rô†rõjsj»†röhX';--------------------------------------r÷†røjsX
	rù†rúhŒXchroutrû†rüjsX	rý†rþhtX=rÿ†rjsX r†rj—X$ffd2r†rjsX

r†rhX';--------------------------------------r†rjsj»†r	hX; Constants.r
†rjsj»†rhX';--------------------------------------r
†rjsX
	r†rhŒXTOr†rjsX		r†rhtjÿ†rjsj†rjŸX100000r†rjsX
	r†rhŒX	TO_DIGITSr†rjsjý†rhtjÿ†rjsj†rjŸX10r †r!jsX
	r"†r#hŒX
ITERATIONSr$†r%jsjý†r&htjÿ†r'jsj†r(jŸX100r)†r*jsX
	r+†r,hŒX
MAX_DIGITSr-†r.jsjý†r/htjÿ†r0jsj†r1hŒX	TO_DIGITSr2†r3jsj†r4htX+r5†r6jsj†r7hŒX
ITERATIONSr8†r9jsX

r:†r;hX';--------------------------------------r<†r=jsj»†r>hX; Global variables.r?†r@jsj»†rAhX';--------------------------------------rB†rCjsj»†rDjRX	.zeropagerE†rFjsj»†rGhX; rH†rIjsj»†rJhX/; Length of the currently tested `n` in digits.rK†rLjsj»†rMhX; rN†rOjsj»†rPj6X	n_length:rQ†rRjsX
	rS†rTjRX.resrU†rVjsj†rWjŸX1rX†rYjsj»†rZhX; r[†r\jsj»†r]hX6; Length of the number(s) `xa` and `xb` while testing.r^†r_jsj»†r`hX; ra†rbjsj»†rcj6Xlength:rd†rejsX
	rf†rgjRX.resrh†rijsj†rjjŸjX†rkjsX

rl†rmjRX.bssrn†rojsj»†rphX; rq†rrjsj»†rshX>; Number to be tested as digits i.e. bytes with values betweenrt†rujsj»†rvhX/; 0 and 9.  The length is stored in `n_length`.rw†rxjsj»†ryhX; rz†r{jsj»†r|j6Xn:r}†r~jsX
	r†r€jRX.resr†r‚jsj†rƒhŒX	TO_DIGITSr„†r…jsj»†r†hX; r‡†rˆjsj»†r‰hX6; Space for calculating the reversed and added values.rІr‹jsj»†rŒhX;; In the `main` code the current number is copied into `xa`r†rŽjsj»†rhX9; and then repeatedly `reverse_add`\ed to itself with ther†r‘jsj»†r’hX'; result of that adding stored in `xb`.r“†r”jsj»†r•hX; r–†r—jsj»†r˜j6Xxa:r™†ršjsX
	r›†rœjRX.resr†ržjsj†rŸhŒX
MAX_DIGITSr †r¡jsj»†r¢j6Xxb:r£†r¤jsX
	r¥†r¦jRX.resr§†r¨jsj†r©hŒX
MAX_DIGITSrª†r«jsX

r¬†r­hX';--------------------------------------r®†r¯jsj»†r°hX; BASIC header.r±†r²jsj»†r³hX';--------------------------------------r´†rµjsj»†r¶jRX.coder·†r¸jsX
	r¹†rºjRX.wordr»†r¼jsj†r½j—X0800hr¾†r¿jsX		rÀ†rÁhX; Load address.r†rÃjsX
	rĆrÅjRX.byterƆrÇjsj†rÈjŸX0rɆrÊjsX
	rˆrÌjRX.wordr͆rÎjsj†rÏhŒX	@line_endrІrÑjsX
	rÒ†rÓjRX.wordrÔ†rÕjsj†rÖjŸX2008r׆rØjsX		rÙ†rÚhX; Line number.rÛ†rÜjsX
	r݆rÞjRX.byter߆ràjsj†ráj—X$9erâ†rãjsX		rä†råhX; SYS token.ræ†rçjsX
	rè†réjRX.byterê†rëjsj†rìjÁX"2080 "rí†rîjsX		rï†rðhX; SYS argument.rñ†ròjsX
	ró†rôjRX.byterõ†röjsj†r÷jÁX"LYCHREL NUMBERS/BJ"rø†rùjsj»†rúj6X
@line_end:rû†rüjsX
	rý†rþjRX.byterÿ†rjsj†rjŸjɆrj©X,r†rjsj†rjŸjɆrj©j†rjsj†rjŸjɆr	jsX		r
†rhX; Line and program end marker.r†r
jsX

r†rhX';--------------------------------------r†rjsj»†rhX; Main program.r†rjsj»†rhX';--------------------------------------r†rjsj»†rjRX.procr†rjsj†rhŒXmainr†rjsX

r†rjRX	.zeropager †r!jsj»†r"hX; r#†r$jsj»†r%hX<; Three byte counter for `TO` iterations (100000 = $0186a0).r&†r'jsj»†r(hX; r)†r*jsj»†r+j6Xi:r,†r-jsX
	r.†r/jRX.resr0†r1jsj†r2jŸX3r3†r4jsX

r5†r6jRX.coder7†r8jsj»†r9hX; r:†r;jsj»†r<hX!; Clear and set `n` and `i` to 1.r=†r>jsj»†r?hX; r@†rAjsX
	rB†rCjXldarD†rEjsj†rFj©X#rG†rHjŸjɆrIjsX		rJ†rKhX; n := 0; n := 1; i := 1rL†rMjsX
	rN†rOjXstarP†rQjsj†rRhŒXirS†rThtj5†rUjŸjX†rVjsX
	rW†rXjXstarY†rZjsj†r[hŒjS†r\htj5†r]jŸX2r^†r_jsX
	r`†rajXldxrb†rcjsj†rdj©jG†rehŒX	TO_DIGITSrf†rgjsj»†rhj6Xclear_n:ri†rjjsX
	rk†rljXstarm†rnjsj†rohŒXnrp†rqhtX-rr†rsjŸjX†rtj©j†ruhŒXxrv†rwjsX
	rx†ryjXdexrz†r{jsX
	r|†r}jXbner~†rjsj†r€hŒXclear_nr†r‚jsX
	rƒ†r„jXinxr…†r†jsX
	r‡†rˆjXstxr‰†rŠjsj†r‹hŒjS†rŒjsX
	r†rŽjXstxr†rjsj†r‘hŒjp†r’jsX
	r“†r”jXstxr•†r–jsj†r—hŒXn_lengthr˜†r™jsX
	
rš†r›j6X	mainloop:rœ†rjsX
	rž†rŸjXjsrr †r¡jsj†r¢hŒX
is_lychrelr£†r¤jsX
	r¥†r¦jXbccr§†r¨jsj†r©hŒX
no_lychrelrª†r«jsX
	r¬†r­jXjsrr®†r¯jsj†r°hŒXprint_nr±†r²jsj»†r³j6Xno_lychrel:r´†rµjsX
	r¶†r·jXjsrr¸†r¹jsj†rºhŒX
increase_nr»†r¼jsX
	
	r½†r¾jXincr¿†rÀjsj†rÁhŒjS†rÂjsX		rÆrÄhX; INC(i)rņrÆjsX
	rdžrÈjXbnerɆrÊjsj†rËhŒXskipr̆rÍjsX
	rΆrÏjXincrІrÑjsj†rÒhŒjS†rÓhtj5†rÔjŸjX†rÕjsX
	rÖ†r×jXbner؆rÙjsj†rÚhŒXskiprÛ†rÜjsX
	r݆rÞjXincr߆ràjsj†ráhŒjS†râhtj5†rãjŸj^†räjsj»†råj6Xskip:ræ†rçjsX
	rè†réjXldarê†rëjsj†rìhŒjS†ríjsX
	rî†rïjXcmprð†rñjsj†ròj©jG†róhtX<rô†rõhŒXTOrö†r÷jsX
	rø†rùjXbnerú†rûjsj†rühŒXmainlooprý†rþjsX
	rÿ†rjXldar†rjsj†rhŒjS†rhtj5†rjŸjX†rjsX
	r†rjXcmpr	†r
jsj†rj©jG†rhtX>r
†rhŒXTOr†rjsX
	r†rjXbner†rjsj†rhŒXmainloopr†rjsX
	r†rjXldar†rjsj†rhŒjS†rhtj5†rjŸj^†rjsX
	r †r!jXcmpr"†r#jsj†r$j©jG†r%htX^r&†r'hŒXTOr(†r)jsX
	r*†r+jXbner,†r-jsj†r.hŒXmainloopr/†r0jsX
	
	r1†r2jXrtsr3†r4jsj»†r5jRX.endprocr6†r7jsX

r8†r9hX';--------------------------------------r:†r;jsj»†r<hX#; Print `n` and a trailing newline.r=†r>jsj»†r?hX;r@†rAjsj»†rBhX; :in: `n_length`, `n`rC†rDjsj»†rEhX';--------------------------------------rF†rGjsj»†rHjRX.procrI†rJjsj†rKhŒXprint_nrL†rMjsX
	rN†rOjXldyrP†rQjsj†rRhŒXn_lengthrS†rTjsj»†rUj6XL1:rV†rWjsX
	rX†rYjXldarZ†r[jsj†r\hŒjp†r]htjr†r^jŸjX†r_j©j†r`hŒXyra†rbjsX
	rc†rdjXorare†rfjsj†rgj©jG†rhjˆX%110000ri†rjjsX    rk†rlhX; = '0'rm†rnjsX
	ro†rpjXjsrrq†rrjsj†rshŒXchroutrt†rujsX
	rv†rwjXdeyrx†ryjsX
	rz†r{jXbner|†r}jsj†r~hŒXL1r†r€jsX
	
	r†r‚jXldarƒ†r„jsj†r…j©jG†r†jŸX13r‡†rˆjsX
	r‰†rŠjXjmpr‹†rŒjsj†rhŒXchroutrކrjsj»†rjRX.endprocr‘†r’jsX

r“†r”hX';--------------------------------------r•†r–jsj»†r—hX; Increase `n` by one.r˜†r™jsj»†ršhX; r›†rœjsj»†rhXA; This procedure expects n[n_length] == 0 in case the number getsrž†rŸjsj»†r hX; one digit longer.r¡†r¢jsj»†r£hX; r¤†r¥jsj»†r¦hX; :in: `n`, `n_length`r§†r¨jsj»†r©hX; :out: `n`, `n_length`rª†r«jsj»†r¬hX';--------------------------------------r­†r®jsj»†r¯jRX.procr°†r±jsj†r²hŒX
increase_nr³†r´jsX
	rµ†r¶jXldxr·†r¸jsj†r¹j©jG†rºjŸjɆr»jsj»†r¼j6XL1:r½†r¾jsX
	r¿†rÀjXincrÁ†rÂjsj†rÃhŒjp†rÄj©j†rÅhŒjv†rÆjsX		rdžrÈhX; Increase digit.rɆrÊjsX
	rˆrÌjXldar͆rÎjsj†rÏhŒjp†rÐj©j†rÑhŒjv†rÒjsX
	rÓ†rÔjXcmprÕ†rÖjsj†r×j©jG†rØjŸX10rÙ†rÚjsX		rÛ†rÜhX+; If "carry", store 0 and go to next digit.r݆rÞjsX
	r߆ràjXbnerá†râjsj†rãhŒXreturnrä†råjsX
	ræ†rçjXldarè†réjsj†rêj©jG†rëjŸjɆrìjsX
	rí†rîjXstarï†rðjsj†rñhŒjp†ròj©j†róhŒjv†rôjsX
	rõ†röjXinxr÷†røjsX
	rù†rújXbnerû†rüjsj†rýhŒXL1rþ†rÿjsj»†rj6Xreturn:r†rjsX
	r†rjXcpxr†rjsj†rhŒXn_lengthr†r	jsjý†r
hX/; If "carry" after last digit, increase length.r†rjsX
	r
†rjXbccr†rjsj†rhŒXskipr†rjsX
	r†rjXincr†rjsj†rhŒXn_lengthr†rjsj»†rj6Xskip:r†rjsX
	r†rjXrtsr †r!jsj»†r"jRX.endprocr#†r$jsX

r%†r&hX';--------------------------------------r'†r(jsj»†r)hX#; Tests if `n` is a Lychrel number.r*†r+jsj»†r,hX; r-†r.jsj»†r/hX; :in: `n`, `n_length`r0†r1jsj»†r2hX+; :out: C is set if yes, cleared otherwise.r3†r4jsj»†r5hX; :uses: `length`, `xa`, `xb`r6†r7jsj»†r8hX';--------------------------------------r9†r:jsj»†r;jRX.procr<†r=jsj†r>hŒX
is_lychrelr?†r@jsj»†rAjRX	.zeropagerB†rCjsj»†rDj6Xi:rE†rFjsX
	rG†rHjRX.resrI†rJjsj†rKjŸjX†rLjsX

rM†rNjRX.coderO†rPjsX
	rQ†rRjXldxrS†rTjsj†rUhŒXn_lengthrV†rWjsX		rX†rYhX; xa := n; length := n_lengthrZ†r[jsX
	r\†r]jXstxr^†r_jsj†r`hŒXlengthra†rbjsj»†rcj6XL1:rd†rejsX
	rf†rgjXldarh†rijsj†rjhŒjp†rkhtjr†rljŸjX†rmj©j†rnhŒjv†rojsX
	rp†rqjXstarr†rsjsj†rthŒXxaru†rvhtjr†rwjŸjX†rxj©j†ryhŒjv†rzjsX
	r{†r|jXdexr}†r~jsX
	r†r€jXbner†r‚jsj†rƒhŒXL1r„†r…jsX
	
	r††r‡jXldarˆ†r‰jsj†rŠj©jG†r‹hŒX
ITERATIONSrŒ†rjsX		rކrhX; i := ITERATIONSr†r‘jsX
	r’†r“jXstar”†r•jsj†r–hŒjS†r—jsj»†r˜j6XL2:r™†ršjsX
	r›†rœjXjsrr†ržjsj†rŸhŒXreverse_addr †r¡jsX
	r¢†r£jXjsrr¤†r¥jsj†r¦hŒX
is_palindromer§†r¨jsX
	r©†rªjXbner«†r¬jsj†r­hŒX
no_palindromer®†r¯jsX
	r°†r±jXclcr²†r³jsX
	r´†rµjXrtsr¶†r·jsj»†r¸j6Xno_palindrome:r¹†rºjsX
	r»†r¼jXldxr½†r¾jsj†r¿hŒXlengthrÀ†rÁjsX		r†rÃhX; a := brĆrÅjsj»†rÆj6XL3:rdžrÈjsX
	rɆrÊjXldarˆrÌjsj†rÍhŒXxbrΆrÏhtjr†rÐjŸjX†rÑj©j†rÒhŒjv†rÓjsX
	rÔ†rÕjXstarÖ†r×jsj†rØhŒXxarÙ†rÚhtjr†rÛjŸjX†rÜj©j†rÝhŒjv†rÞjsX
	r߆ràjXdexrá†râjsX
	rã†räjXbnerå†ræjsj†rçhŒXL3rè†réjsX
	
	rê†rëjXdecrì†ríjsj†rîhŒjS†rïjsX			rð†rñhX; Loop body end.rò†rójsX
	rô†rõjXbnerö†r÷jsj†røhŒXL2rù†rújsX
	
	rû†rüjXsecrý†rþjsX
	rÿ†rjXrtsr†rjsj»†rjRX.endprocr†rjsX

r†rhX';--------------------------------------r†r	jsj»†r
hXA; Add the reverse to `xa` to itself and store the result in `xb`.r†rjsj»†r
hX; r†rjsj»†rhX; :in: `length`, `xa`r†rjsj»†rhX; :out: `length`, `xb`r†rjsj»†rhX';--------------------------------------r†rjsj»†rjRX.procr†rjsj†rhŒXreverse_addr†rjsj»†rjRX.coder †r!jsX
	r"†r#jXldxr$†r%jsj†r&j©jG†r'jŸjɆr(jsX
	r)†r*jXldyr+†r,jsj†r-hŒXlengthr.†r/jsX
	r0†r1jXclcr2†r3jsj»†r4j6XL1:r5†r6jsX
	r7†r8jXldar9†r:jsj†r;hŒXxar<†r=j©j†r>hŒjv†r?jsX
	r@†rAjXadcrB†rCjsj†rDhŒXxarE†rFhtjr†rGjŸjX†rHj©j†rIhŒja†rJjsX
	
	rK†rLjXcmprM†rNjsj†rOj©jG†rPjŸX10rQ†rRjsX
	rS†rTjXbccrU†rVjsj†rWhŒX	no_adjustrX†rYjsX
	rZ†r[jXsbcr\†r]jsj†r^j©jG†r_jŸX10r`†rajsj»†rbj6X
no_adjust:rc†rdjsX
	re†rfjXstarg†rhjsj†rihŒXxbrj†rkj©j†rlhŒjv†rmjsX
	
	rn†rojXdeyrp†rqjsX
	rr†rsjXinxrt†rujsX
	rv†rwjXtxarx†ryjsX		rz†r{hX3; ``eor`` instead of ``cpx`` to keep the carry flagr|†r}jsX
	r~†rjXeorr€†rjsj†r‚hŒXlengthrƒ†r„jsjý†r…hX; of the addition above.r††r‡jsX
	rˆ†r‰jXbnerІr‹jsj†rŒhŒXL1r†rŽjsX
	
	r†rjXbccr‘†r’jsj†r“hŒXno_carryr”†r•jsX
	r–†r—jXldar˜†r™jsj†ršj©jG†r›jŸjX†rœjsX
	r†ržjXstarŸ†r jsj†r¡hŒXxbr¢†r£j©j†r¤hŒjv†r¥jsX
	r¦†r§jXincr¨†r©jsj†rªhŒXlengthr«†r¬jsj»†r­j6X	no_carry:r®†r¯jsX
	r°†r±jXrtsr²†r³jsj»†r´jRX.endprocrµ†r¶jsX

r·†r¸hX';--------------------------------------r¹†rºjsj»†r»hX!; Checks if `xb` is a palindrome.r¼†r½jsj»†r¾hX; r¿†rÀjsj»†rÁhX; :in: `length`, `xb`r†rÃjsj»†rÄhX>; :out: Z flag set if `xb` is a palindrome, cleared otherwise.rņrÆjsj»†rÇhX';--------------------------------------rȆrÉjsj»†rÊjRX.procrˆrÌjsj†rÍhŒX
is_palindromerΆrÏjsj»†rÐjRX.coderцrÒjsX
	rÓ†rÔjXldxrÕ†rÖjsj†r×j©jG†rØjŸjɆrÙjsX
	rÚ†rÛjXldar܆rÝjsj†rÞhŒXlengthr߆ràjsX
	rá†râjXtayrã†räjsX
	rå†ræjXlsrrç†rèjsX
	ré†rêjXstarë†rìjsj†ríhŒXL1rî†rïhtj5†rðjŸjX†rñjsjý†ròhX; Self modifying code!ró†rôjsj»†rõj6XL1:rö†r÷jsX
	rø†rùjXcpxrú†rûjsj†rüj©jG†rýjŸjɆrþjsX		rÿ†r	hX#; <<< 0 replaced by (`length` / 2).r	†r	jsX
	r	†r	jXbeqr	†r	jsj†r	hŒXreturnr	†r		jsX
	r
	†r	jXldar	†r
	jsj†r	hŒXxbr	†r	j©j†r	hŒjv†r	jsX
	r	†r	jXcmpr	†r	jsj†r	hŒXxbr	†r	htjr†r	jŸjX†r	j©j†r	hŒja†r	jsX
	r	†r	jXbner 	†r!	jsj†r"	hŒXreturnr#	†r$	jsX
	r%	†r&	jXdeyr'	†r(	jsX
	r)	†r*	jXinxr+	†r,	jsX
	r-	†r.	jXbner/	†r0	jsj†r1	hŒXL1r2	†r3	jsj»†r4	j6Xreturn:r5	†r6	jsX
	r7	†r8	jXrtsr9	†r:	jsj»†r;	jRX.endprocr<	†r=	jsj»†r>	e.