; HP 25 ROM image from different sources including US Patent ; checked out on real HW ; Project 'Squash' last compiled aug,1975 ; chips 1818-0168 ROM/Anode Driver Addresses 0000-1777o ; 1818-0153 ROM addresses 2000-3777o ; JL 2011 ; This listing is commented and emulated 00000: 1001111011 go to pwo 00001: 0010000010 chs1: a exchange c[p ] 00002: 1010100010 0 - c - 1 -> c[p ] 00003: 0010000010 a exchange c[p ] 00004: 0100010111 go to deeex4 00005: 1000101011 qdedp: go to dedp 00006: 0101101101 dige7: jsb delook 00007: 0011001011 go to dige8 00010: 0110100011 dchs: go to chs 00011: 1110111001 deeex: jsb push 00012: 0111001000 m2 -> c 00013: 1101110110 if 0 # c[m ] 00014: 0000011000 then go to deeex1 00015: 0111000100 deeex2: 1 -> s eex 7 00016: 0000000110 0 -> a[wp] 00017: 1101010110 if 0 # a[m ] 00020: 0001001000 then go to deeex6 00021: 1111011001 jsb demask 00022: 0111111100 p <- 12 00023: 0100011010 0 -> c[w ] 00024: 0111100010 c + 1 -> c[p ] 00025: 0011100010 b exchange c[p ] 00026: 0011000010 b -> c[p ] 00027: 0110001000 m2 exchange c 00030: 1110000101 deeex1: jsb deb 00031: 0001111100 p <- 4 00032: 1011000110 if 0 = b[wp] 00033: 0000001101 then go to deeex2 00034: 0011011011 go to deout 00035: 0111010100 digent: if 1 = s eex 7 00036: 0000111110 then go to deeex3 00037: 1110111001 dige0: jsb push 00040: 0011011010 dige1: b -> c[w ] 00041: 1000111100 p <- 1 00042: 0111100010 dige2: c + 1 -> c[p ] 00043: 1101101011 if n/c go to dige3 00044: 0111011010 shift left a[w ] 00045: 0111010000 p + 1 -> p 00046: 1001101100 if p # 13 00047: 0000100010 then go to dige2 00050: 0110010000 dige5: p - 1 -> p 00051: 0010000110 a exchange c[wp] 00052: 0110010000 dige6: p - 1 -> p 00053: 0010111010 c -> a[w ] 00054: 1001100110 c - 1 -> c[wp] 00055: 0010001110 a exchange c[x ] 00056: 1100001000 decimal 00057: 1101010110 if 0 # a[m ] 00060: 0000000110 then go to dige7 00061: 0000011110 0 -> a[ms] 00062: 0010011110 dige8: a exchange c[ms] 00063: 0110001000 dige9: m2 exchange c 00064: 0001011010 dige10: a exchange b[w ] 00065: 1110000101 deout1: jsb deb 00066: 0001011010 deout: a exchange b[w ] 00067: 0001010100 deout2: if 1 = s stop 1 00070: 1111101100 then go to $go 00071: 0001011010 a exchange b[w ] 00072: 0011011100 $ncode: if 0 = s runpgm 3 00073: 1110111010 then go to $sst4 00074: 0001110100 delayed rom 1 00075: 0111010111 go to $plain 00076: 1100111100 deeex3: p <- 0 00077: 0001000010 a exchange b[p ] 00100: 0001011010 a exchange b[w ] 00101: 1000111100 p <- 1 00102: 0111000110 shift left a[wp] 00103: 1001111100 p <- 3 00104: 0111000110 shift left a[wp] 00105: 0001111100 deeex4: p <- 4 00106: 1110100110 shift right a[wp] 00107: 1110100110 shift right a[wp] 00110: 0111001000 deeex6: m2 -> c 00111: 0010011010 a exchange c[w ] 00112: 0010101110 c -> a[x ] 00113: 1100001000 decimal 00114: 1011101010 if 0 = c[xs] 00115: 0001010000 then go to deeex5 00116: 0100001010 0 -> c[xs] 00117: 1010001110 0 - c -> c[x ] 00120: 0010011110 deeex5: a exchange c[ms] 00121: 1110000001 jsb deb0 00122: 0111000101 jsb $dmeex 00123: 0010011110 a exchange c[ms] 00124: 0101101101 jsb delook 00125: 0010011110 a exchange c[ms] 00126: 1100011001 jsb $over0 00127: 0110001000 m2 exchange c 00130: 1011010100 if 1 = s over 11 00131: 1111101001 then go to $qthr3 00132: 0011011011 go to deout 00133: 0001001110 delook: a exchange b[x ] 00134: 0000001110 0 -> a[x ] 00135: 1110001000 f -> a[x] 00136: 0110001110 a + c -> c[x ] 00137: 0111111100 p <- 12 00140: 1101100010 delok1: if 0 # c[p ] 00141: 0011101011 then go to deb2 00142: 1001101110 c - 1 -> c[x ] 00143: 0110010000 p - 1 -> p 00144: 0111010100 if 1 = s eex 7 00145: 0001100000 then go to delok1 00146: 0111010110 shift left a[m ] 00147: 0110000011 go to delok1 00150: 0001011010 chs: a exchange b[w ] 00151: 0001111100 p <- 4 00152: 0111010100 if 1 = s eex 7 00153: 0000000001 then go to chs1 00154: 1010110010 0 - c - 1 -> c[s ] 00155: 0010110010 c -> a[s ] 00156: 1000011100 if 0 = s firdig 8 00157: 1111100110 then go to $qthr4 00160: 0011001111 go to dige9 00161: 0001111100 $dmeex: p <- 4 00162: 0000000010 0 -> a[p ] 00163: 0110100010 a + 1 -> a[p ] 00164: 0110100010 a + 1 -> a[p ] 00165: 0001100010 a -> b[p ] 00166: 0111000110 shift left a[wp] 00167: 0111000110 shift left a[wp] 00170: 1000010000 return 00171: 0110010100 dige4: if 1 = s dp 6 00172: 0000101000 then go to dige5 00173: 1111001000 f exchange a[x] 00174: 0110101110 a + 1 -> a[x ] 00175: 1111001000 f exchange a[x] 00176: 0010100011 go to dige5 00177: 0000000000 nop 00200: 0100011010 clrpgm: 0 -> c[w ] 00201: 1001110000 c -> data address 00202: 1001101000 c -> register 9 00203: 1010101000 c -> register 10 00204: 1011101000 c -> register 11 00205: 1100101000 c -> register 12 00206: 1101101000 c -> register 13 00207: 1110101000 c -> register 14 00210: 1111101000 c -> register 15 00211: 1000010000 return 00212: 0111011100 dedp: if 0 = s eex 7 00213: 0010001101 then go to dedp1 00214: 0001001000 clear status 00215: 0110000100 dedp1: 1 -> s dp 6 00216: 1000011100 if 0 = s firdig 8 00217: 0000011111 then go to dige0 00220: 0011010111 go to deout1 00221: 0011011100 er/s: if 0 = s runpgm 3 00222: 0111011000 then go to $er/s 00223: 1001010100 if 1 = s f 9 00224: 1111100011 then go to $qthr1 00225: 1010010100 if 1 = s g 10 00226: 1111100011 then go to $qthr1 00227: 0100001100 0 -> s bst 4 00230: 0001000100 1 -> s stop 1 00231: 0011110100 delayed rom 3 00232: 1001110011 go to $er/s2 00233: 1111010110 deb3: shift right b[m ] 00234: 1110100111 go to deb1 00235: 0000000000 nop 00236: 1001110000 pwo: c -> data address 00237: 1010110000 clear data regs 00240: 0111101110 c + 1 -> c[x ] 00241: 0111101010 c + 1 -> c[xs] 00242: 0111110010 c + 1 -> c[s ] 00243: 0101111010 c + c -> c[w] 00244: 0100001000 m1 exchange c 00245: 0100011010 0 -> c[w ] 00246: 0110001000 outpu0: m2 exchange c 00247: 0011001000 $outpu: display off 00250: 1100001000 decimal 00251: 0000111010 0 -> b[w ] 00252: 0000011010 0 -> a[w ] 00253: 1111001000 f exchange a[x] 00254: 1110000101 jsb deb 00255: 0101001000 m1 -> c 00256: 0010101110 c -> a[x ] 00257: 0000001010 0 -> a[xs] 00260: 0010110100 delayed rom 2 00261: 1000001111 go to $outpz 00262: 0111111100 overf2: p <- 12 00263: 0100000110 0 -> c[wp] 00264: 1001100110 c - 1 -> c[wp] 00265: 0100001010 0 -> c[xs] 00266: 1000010000 return 00267: 1011000100 overf1: 1 -> s over 11 00270: 0101101010 c + c -> c[xs] 00271: 1011001011 if n/c go to overf2 00272: 0100011010 overf5: 0 -> c[w ] 00273: 1000010000 return 00274: 0001011100 $pause: if 0 = s stop 1 00275: 0000111010 then go to $ncode 00276: 0010001000 display toggle 00277: 0100011010 0 -> c[w ] 00300: 0111111010 pause2: c + 1 -> c[w ] 00301: 0111111010 c + 1 -> c[w ] 00302: 1011110110 if 0 = c[m ] 00303: 0011000000 then go to pause2 00304: 0011011111 go to deout2 00305: 0111001000 $overf: m2 -> c 00306: 1100001000 $over0: decimal 00307: 1100111100 p <- 0 00310: 1011110110 if 0 = c[m ] 00311: 0010111010 then go to overf5 00312: 1011101010 overf3: if 0 = c[xs] 00313: 0011010001 then go to overf4 00314: 1001101110 c - 1 -> c[x ] 00315: 0111101010 c + 1 -> c[xs] 00316: 1001101010 c - 1 -> c[xs] 00317: 1011011111 if n/c go to overf1 00320: 0111101110 c + 1 -> c[x ] 00321: 1000010000 overf4: return 00322: 1001011100 echs: if 0 = s f 9 00323: 0111010110 then go to $echs1 00324: 0000011010 0 -> a[w ] 00325: 0011010100 if 1 = s runpgm 3 00326: 1101001111 then go to $qgto2 00327: 1000000001 jsb clrpgm 00330: 0011110100 delayed rom 3 00331: 0100111111 go to $qgto2 00332: 1001100010 dige3: c - 1 -> c[p ] 00333: 0111101100 if p # 3 00334: 0001111001 then go to dige4 00335: 0110000100 1 -> s dp 6 00336: 0100001110 0 -> c[x ] 00337: 0010101011 go to dige6 00340: 0001011010 deb0: a exchange b[w ] 00341: 0000011010 deb: 0 -> a[w ] 00342: 0110110010 a + 1 -> a[s ] 00343: 1110111010 shift right a[w ] 00344: 0110110010 a + 1 -> a[s ] 00345: 0110110010 a + 1 -> a[s ] 00346: 0001011110 a exchange b[ms] 00347: 1110001000 f -> a[x] 00350: 1100111100 p <- 0 00351: 1001000010 deb1: a - 1 -> a[p ] 00352: 1001101111 if n/c go to deb3 00353: 0001001110 deb2: a exchange b[x ] 00354: 0000101110 0 -> b[x ] 00355: 1000010000 return 00356: 1000010100 push: if 1 = s firdig 8 00357: 0011111110 then go to push2 00360: 0100011010 0 -> c[w ] 00361: 0110001000 m2 exchange c 00362: 0010011100 if 0 = s push 2 00363: 0011110101 then go to push1 00364: 1011001000 c -> stack 00365: 0010000100 push1: 1 -> s push 2 00366: 0100011010 demask: 0 -> c[w ] 00367: 0100010000 binary 00370: 1001111010 c - 1 -> c[w ] 00371: 1111001000 f exchange a[x] 00372: 0000011010 0 -> a[w ] 00373: 1111001000 f exchange a[x] 00374: 0100010010 0 -> c[s] 00375: 0011111010 b exchange c[w ] 00376: 1000000100 push2: 1 -> s firdig 8 00377: 1000010000 return 00400: 0100010100 esto1: if 1 = s op 4 00401: 0101100101 then go to k-. 00402: 0001011010 a exchange b[w ] 00403: 1100111100 p <- 0 00404: 0010011010 a exchange c[w ] 00405: 1100011000 load constant 12 00406: 1100111100 p <- 0 00407: 0010000010 a exchange c[p ] 00410: 0101000010 a + c -> a[p ] 00411: 1111101101 jsb eshove 00412: 0011010100 if 1 = s runpgm 3 00413: 0101001100 then go to ercl2 00414: 0111011010 shift left a[w ] 00415: 1000111100 p <- 1 00416: 0100011000 load constant 4 00417: 1000111100 p <- 1 00420: 0101000010 a + c -> a[p ] 00421: 0110101110 a + 1 -> a[x ] 00422: 0111011010 shift left a[w ] 00423: 0111011010 shift left a[w ] 00424: 0100110011 go to ercl2 00425: 0111101110 eeng: c + 1 -> c[x ] 00426: 0111101110 $esci: c + 1 -> c[x ] 00427: 0111101110 $efix: c + 1 -> c[x ] 00430: 0001011010 a exchange b[w ] 00431: 0010100010 c -> a[p ] 00432: 1010001001 jsb k4 00433: 1111101001 jsb eshov1 00434: 0011010100 if 1 = s runpgm 3 00435: 0110001000 then go to egto2 00436: 0111011010 shift left a[w ] 00437: 0111011010 shift left a[w ] 00440: 1110101110 shift right a[x ] 00441: 0110101010 a + 1 -> a[xs] 00442: 1000011111 if n/c go to egto1 00443: 0100011010 zap: 0 -> c[w ] 00444: 1001111010 c - 1 -> c[w ] 00445: 1001111100 p <- 3 00446: 1000010000 return 00447: 0100010000 $error: binary 00450: 0100011010 0 -> c[w ] 00451: 0110001000 m2 exchange c 00452: 0111001000 m2 -> c 00453: 1001111010 c - 1 -> c[w ] 00454: 0010001100 0 -> s push 2 00455: 0111111100 p <- 12 00456: 1110011000 load constant 14 00457: 1010011000 load constant 10 00460: 1010011000 load constant 10 00461: 1100011000 load constant 12 00462: 1010011000 load constant 10 00463: 0001001000 $err1: clear status 00464: 0010011010 a exchange c[w ] 00465: 0100011010 0 -> c[w ] 00466: 0000111010 0 -> b[w ] 00467: 0011100000 select rom 3 00470: 1111001100 $wait: 0 -> s key 15 00471: 0010111100 p <- 7 00472: 0110010000 wait1: p - 1 -> p 00473: 1011101100 if p # 0 00474: 0100111010 then go to wait1 00475: 1111010100 if 1 = s key 15 00476: 0100111000 then go to $wait 00477: 1000010000 return 00500: 0100011011 krcl: go to ercl 00501: 1100011011 ksto: go to esto 00502: 0111101110 kroll: c + 1 -> c[x ] 00503: 1010010111 kxexy: if n/c go to kyexy1 00504: 0111101110 ksig+: c + 1 -> c[x ] 00505: 0100001011 if n/c go to kroll 00506: 0010001101 ercl: jsb zap 00507: 0010011000 load constant 2 00510: 0100011000 load constant 4 00511: 1010100101 jsb crap 00512: 1001111100 p <- 3 00513: 1011011000 load constant 11 00514: 1110100001 ercl2: jsb efirst 00515: 1101010100 ercl3: if 1 = s big 13 00516: 0110010101 then go to ercl4 00517: 0010101110 c -> a[x ] 00520: 0111001110 shift left a[x ] 00521: 1111111010 shift right c[w ] 00522: 1000101111 go to egto3 00523: 0010111010 $size: c -> a[w ] 00524: 0111010100 if 1 = s cos 7 00525: 0101011111 then go to size1 00526: 1011101010 if 0 = c[xs] 00527: 0101011111 then go to size1 00530: 0100011010 0 -> c[w ] 00531: 1100111100 p <- 0 00532: 0101011000 load constant 5 00533: 0010011010 a exchange c[w ] 00534: 0101001110 a + c -> a[x ] 00535: 0110100011 if n/c go to size2 00536: 0010111010 c -> a[w ] 00537: 1000010000 size1: return 00540: 0111101110 k9: c + 1 -> c[x ] 00541: 1001110111 k8: if n/c go to k7. 00542: 1001111111 k7: go to k6. 00543: 1110010100 k-: if 1 = s sto 14 00544: 0100000000 then go to esto1 00545: 1000111100 k-.: p <- 1 00546: 1111011000 load constant 15 00547: 1011111011 go to eplai3 00550: 1001011100 size2: if 0 = s f 9 00551: 1111100001 then go to $retu 00552: 0010111010 c -> a[w ] 00553: 0111110100 delayed rom 7 00554: 1000001011 go to $ata31 00555: 0000000100 k5.: 1 -> s small 0 00556: 0111101110 c + 1 -> c[x ] 00557: 0111101110 k3.: c + 1 -> c[x ] 00560: 0111101110 k3: c + 1 -> c[x ] 00561: 0111101110 k2: c + 1 -> c[x ] 00562: 1010011111 k1: if n/c go to k1. 00563: 0111101110 k*: c + 1 -> c[x ] 00564: 1010001111 if n/c go to k+ 00565: 1001001100 $plain: 0 -> s f 9 00566: 1010001100 0 -> s g 10 00567: 1011101011 go to plain 00570: 1001010100 egto: if 1 = s f 9 00571: 0100010101 then go to eeng 00572: 0010001101 jsb zap 00573: 0001011000 load constant 1 00574: 0011011000 load constant 3 00575: 1010100101 jsb crap 00576: 1110100001 jsb efirst 00577: 0000010100 if 1 = s small 0 00600: 0110111100 then go to eplai1 00601: 0001011010 a exchange b[w ] 00602: 0010100010 c -> a[p ] 00603: 1111101001 jsb eshov1 00604: 0011010100 if 1 = s runpgm 3 00605: 0110001000 then go to egto2 00606: 0111011010 shift left a[w ] 00607: 0111011010 egto1: shift left a[w ] 00610: 1110100001 egto2: jsb efirst 00611: 0010001110 a exchange c[x ] 00612: 0100001110 0 -> c[x ] 00613: 1111111010 egto3: shift right c[w ] 00614: 1111101110 shift right c[x ] 00615: 0110001110 a + c -> c[x ] 00616: 0011110100 ethru: delayed rom 3 00617: 0101011011 go to $thru 00620: 0000100000 kr/s: select rom 0 00621: 1101100111 k.: go to k.. 00622: 1000010000 k0: return 00623: 0111101110 k/: c + 1 -> c[x ] 00624: 0111001111 if n/c go to k* 00625: 0001001000 ercl4: clear status 00626: 1011110011 go to eplai1 00627: 0010001101 ef: jsb zap 00630: 0001011000 load constant 1 00631: 0100011000 load constant 4 00632: 0001001000 clear status 00633: 1001000100 1 -> s f 9 00634: 1011100111 go to eg1 00635: 1101000100 k7.: 1 -> s big 13 00636: 0111101110 c + 1 -> c[x ] 00637: 0111101110 k6.: c + 1 -> c[x ] 00640: 0111101110 k6: c + 1 -> c[x ] 00641: 0110110111 k5: if n/c go to k5. 00642: 0110111111 k4: go to k3. 00643: 0111101110 k+: c + 1 -> c[x ] 00644: 0110001111 if n/c go to k- 00645: 0111101110 kyexy1: c + 1 -> c[x ] 00646: 1101010011 if n/c go to kclx 00647: 0111101110 k1.: c + 1 -> c[x ] 00650: 1000010000 return 00651: 0011010100 crap: if 1 = s runpgm 3 00652: 0110101101 then go to crap2 00653: 0011111010 b exchange c[w ] 00654: 0000011010 0 -> a[w ] 00655: 0001011010 crap2: a exchange b[w ] 00656: 0100011010 0 -> c[w ] 00657: 1000010000 return 00660: 1001011111 kf: go to ef 00661: 0111100011 kgto: go to egto 00662: 0011100000 kbst: select rom 3 00663: 0011100000 bsst: select rom 3 00664: 0010001101 kg: jsb zap 00665: 0001011000 load constant 1 00666: 0101011000 load constant 5 00667: 0001001000 clear status 00670: 1010000100 1 -> s g 10 00671: 1010100101 eg1: jsb crap 00672: 1110001100 plain: 0 -> s sto 14 00673: 1110100101 jsb efirs1 00674: 1000111100 eplai1: p <- 1 00675: 1100011000 load constant 12 00676: 1000111100 eplai3: p <- 1 00677: 1010010100 if 1 = s g 10 00700: 0111000100 then go to eplai2 00701: 1001011100 if 0 = s f 9 00702: 0110001110 then go to ethru 00703: 1001100010 c - 1 -> c[p ] 00704: 1001100010 eplai2: c - 1 -> c[p ] 00705: 1000111011 if n/c go to ethru 00706: 0010001101 esto: jsb zap 00707: 0010011000 load constant 2 00710: 0011011000 load constant 3 00711: 1010100101 jsb crap 00712: 0001001000 clear status 00713: 1110000100 1 -> s sto 14 00714: 1001111100 p <- 3 00715: 1010011000 load constant 10 00716: 1110100101 jsb efirs1 00717: 0100110111 go to ercl3 00720: 1101010111 keex: go to eeex 00721: 0000100000 kchs: select rom 0 00722: 0000000000 nop 00723: 1101110011 kenter: go to eenter 00724: 0111101110 kclx: c + 1 -> c[x ] 00725: 0111101110 eeex: c + 1 -> c[x ] 00726: 0111101110 $echs1: c + 1 -> c[x ] 00727: 0111101110 eent1: c + 1 -> c[x ] 00730: 0111101110 $er/s: c + 1 -> c[x ] 00731: 0111101110 k..: c + 1 -> c[x ] 00732: 0100000100 1 -> s op 4 00733: 1001001111 go to k/ 00734: 1001010100 eenter: if 1 = s f 9 00735: 0111100000 then go to eent2 00736: 1010011100 if 0 = s g 10 00737: 0111010111 then go to eent1 00740: 0011010100 eent2: if 1 = s runpgm 3 00741: 1111100011 then go to $qthr1 00742: 0011001100 displ5: 0 -> s runpgm 3 00743: 0011011100 if 0 = s runpgm 3 00744: 1110111010 then go to $sst4 00745: 1111011100 if 0 = s key 15 00746: 0111100010 then go to displ5 00747: 1111001011 go to displ3 00750: 0001001000 efirst: clear status 00751: 0010001000 efirs1: display toggle 00752: 0011100001 displ1: jsb $wait 00753: 1111110000 hi i'm woodstock 00754: 0011010100 if 1 = s runpgm 3 00755: 0111100010 then go to displ5 00756: 0011010100 displ6: if 1 = s runpgm 3 00757: 0010100111 then go to $outpu 00760: 1111011100 if 0 = s key 15 00761: 0111101110 then go to displ6 00762: 0011001000 displ3: display off 00763: 0100010000 binary 00764: 1100111100 p <- 0 00765: 0100001110 0 -> c[x ] 00766: 0001011010 a exchange b[w ] 00767: 1101001100 0 -> s big 13 00770: 0000010000 keys -> rom address 00771: 0000000000 nop 00772: 0010011010 eshov1: a exchange c[w ] 00773: 0111011010 eshove: shift left a[w ] 00774: 0111011010 shift left a[w ] 00775: 0111011010 shift left a[w ] 00776: 0010011010 a exchange c[w ] 00777: 1000010000 return 01000: 0100000111 f0:0: go to fslice 01001: 0100000111 go to fslice 01002: 0100000111 go to fslice 01003: 0100000111 go to fslice 01004: 0100000111 go to fslice 01005: 0110000011 go to ffix 01006: 0101111111 go to fsci 01007: 0101111011 go to feng 01010: 0001110100 fvoid: delayed rom 1 01011: 0010011111 go to $error 01012: 1001000100 1 -> s f 9 01013: 1010000100 1 -> s g 10 01014: 0111111011 go to frow 01015: 1001000100 1 -> s f 9 01016: 1010000100 1 -> s g 10 01017: 0110001111 go to fplain 01020: 0001110011 go to fsto 01021: 0010000011 go to frcl 01022: 0111100010 c + 1 -> c[p ] 01023: 0111100010 c + 1 -> c[p ] 01024: 0111100010 c + 1 -> c[p ] 01025: 1100001000 decimal 01026: 1010100010 0 - c - 1 -> c[p ] 01027: 1001100010 c - 1 -> c[p ] 01030: 1001100010 c - 1 -> c[p ] 01031: 1110111100 p <- 5 01032: 0001011000 load constant 1 01033: 1101111100 p <- 9 01034: 0010011000 fsto: load constant 2 01035: 0011011000 load constant 3 01036: 0010011010 fsto1: a exchange c[w ] 01037: 0101100011 go to fsto2 01040: 0010011000 frcl: load constant 2 01041: 0100011000 load constant 4 01042: 0001111011 go to fsto1 01043: 0111100001 jsb f25 01044: 0111101010 c + 1 -> c[xs] 01045: 0011000111 if n/c go to f21 01046: 0111101010 c + 1 -> c[xs] 01047: 0111101010 c + 1 -> c[xs] 01050: 0111101010 c + 1 -> c[xs] 01051: 0011000011 if n/c go to f31 01052: 0111101010 c + 1 -> c[xs] 01053: 0111100101 jsb f73 01054: 0111100010 c + 1 -> c[p ] 01055: 0111100010 c + 1 -> c[p ] 01056: 0111100010 c + 1 -> c[p ] 01057: 0111100010 c + 1 -> c[p ] 01060: 0111100010 f31: c + 1 -> c[p ] 01061: 0111100010 f21: c + 1 -> c[p ] 01062: 0111101010 f11: c + 1 -> c[xs] 01063: 0111100010 c + 1 -> c[p ] 01064: 0010011010 a exchange c[w ] 01065: 0101101011 go to fthru 01066: 0011001000 $form: display off 01067: 0010101110 c -> a[x ] 01070: 0100011110 0 -> c[ms] 01071: 0100010000 binary 01072: 1001111110 c - 1 -> c[ms] 01073: 1011111100 p <- 6 01074: 1001001100 0 -> s f 9 01075: 1010001100 0 -> s g 10 01076: 1110001100 0 -> s top 14 01077: 0110110001 jsb fgo0 01100: 1110000100 1 -> s top 14 01101: 0111001110 fslice: shift left a[x ] 01102: 0000001010 0 -> a[xs] 01103: 1100001000 decimal 01104: 0110101110 a + 1 -> a[x ] 01105: 0100010000 binary 01106: 1101001010 if 0 # a[xs] 01107: 1001010000 then go to fstoop 01110: 1110010100 fgto: if 1 = s top 14 01111: 1001010010 then go to feng1 01112: 0001011000 load constant 1 01113: 0011011000 load constant 3 01114: 1001111100 p <- 3 01115: 0010011010 a exchange c[w ] 01116: 0111000110 shift left a[wp] 01117: 0101100111 go to fsto3 01120: 0100000010 fstoop: 0 -> c[p ] 01121: 0010010000 a -> rom address 01122: 1111100110 feng1: shift right c[wp] 01123: 0001011000 load constant 1 01124: 1101111100 p <- 9 01125: 0111010001 jsb ff1 01126: 0010011110 a exchange c[ms] 01127: 0000001010 0 -> a[xs] 01130: 1001111100 fsto2: p <- 3 01131: 0111000110 fsto3: shift left a[wp] 01132: 0100010000 fthru: binary 01133: 0101001000 m1 -> c 01134: 0011110100 delayed rom 3 01135: 0010000111 go to $fthr0 01136: 0111100010 feng: c + 1 -> c[p ] 01137: 0111100010 fsci: c + 1 -> c[p ] 01140: 0111100010 ffix: c + 1 -> c[p ] 01141: 0111100010 c + 1 -> c[p ] 01142: 1000010000 return 01143: 0110110101 fplain: jsb ff? 01144: 1010101110 0 - c - 1 -> c[x ] 01145: 0010101110 c -> a[x ] 01146: 0111001110 shift left a[x ] 01147: 0000001010 0 -> a[xs] 01150: 1001111100 p <- 3 01151: 0100000110 0 -> c[wp] 01152: 0110101010 fgo2: a + 1 -> a[xs] 01153: 0110101010 fgo1: a + 1 -> a[xs] 01154: 0010010000 fgo0: a -> rom address 01155: 1010011100 ff?: if 0 = s g 10 01156: 1001110111 then go to ff3 01157: 1001010100 if 1 = s f 9 01160: 1001110100 then go to ff1 01161: 0001011000 fg1: load constant 1 01162: 0101011000 load constant 5 01163: 0111011011 go to ff2 01164: 0001011000 ff1: load constant 1 01165: 0100011000 load constant 4 01166: 1111011000 ff2: load constant 15 01167: 1000010000 ff3: return 01170: 0111101010 f25: c + 1 -> c[xs] 01171: 0111101010 f73: c + 1 -> c[xs] 01172: 0111101010 c + 1 -> c[xs] 01173: 1000010000 return 01174: 0000000000 nop 01175: 0000000000 nop 01176: 0110110101 frow: jsb ff? 01177: 0010011010 a exchange c[w ] 01200: 0111001110 shift left a[x ] 01201: 0000001010 0 -> a[xs] 01202: 0101100011 go to fsto2 01203: 1110001100 $outpz: 0 -> s top 14 01204: 1001101010 c - 1 -> c[xs] 01205: 1000101011 if n/c go to sci0 01206: 1110000100 1 -> s top 14 01207: 0110101110 a + 1 -> a[x ] 01210: 0110101110 a + 1 -> a[x ] 01211: 1000110011 if n/c go to sci0.5 01212: 1001101010 sci0: c - 1 -> c[xs] 01213: 1100010111 if n/c go to fix1 01214: 0111001000 sci0.5: m2 -> c 01215: 1111000101 jsb round 01216: 1001001010 sci1: a - 1 -> a[xs] 01217: 1101001010 if 0 # a[xs] 01220: 1010010011 then go to sci2 01221: 0010111010 c -> a[w] 01222: 1010011011 go to sci4 01223: 1100000001 sci2: jsb zappo 01224: 0001001110 a exchange b[x ] 01225: 1110011100 if 0 = s top 14 01226: 1010100000 then go to sci5 01227: 0001101110 a -> b[x ] 01230: 0011101110 b exchange c[x ] 01231: 1011101010 if 0 = c[xs] 01232: 1010011101 then go to eng1 01233: 0100001010 0 -> c[xs] 01234: 1001101110 c - 1 -> c[x ] 01235: 1001101110 eng1: c - 1 -> c[x ] 01236: 1011011011 if n/c go to eng2 01237: 0011001110 eng5: b -> c[x ] 01240: 0010001110 sci5: a exchange c[x ] 01241: 1011101010 if 0 = c[xs] 01242: 1010100101 then go to sci3 01243: 1010001110 0 - c -> c[x ] 01244: 1001101010 c - 1 -> c[xs] 01245: 0010001110 sci3: a exchange c[x ] 01246: 0000101110 sci4: 0 -> b [x ] 01247: 0000110100 delayed rom 0 01250: 0111000101 jsb $dmeex 01251: 0010110010 outpu2: c -> a[s ] 01252: 0001001000 clear status 01253: 0101001100 0 -> s power 5 01254: 0101010100 if 1 = s power 5 01255: 0010111100 then go to $pause 01256: 0111111100 p <- 12 01257: 0011100010 outpu3: b exchange c[p ] 01260: 1010100010 0 - c - 1 -> c[p ] 01261: 0011100010 b exchange c[p ] 01262: 0110010000 p - 1 -> p 01263: 0000100100 if p = 4 01264: 0010111100 then go to $pause 01265: 1010111111 go to outpu3 01266: 1001101110 eng2: c - 1 -> c[x ] 01267: 1011100111 if n/c go to eng3 01270: 1011110111 go to eng4 01271: 1001101110 eng3: c - 1 -> c[x ] 01272: 1001110111 if n/c go to eng1 01273: 1001001110 a - 1 -> a[x ] 01274: 1111010110 shift right b[m ] 01275: 1001001110 eng4: a - 1 -> a[x ] 01276: 1111010110 shift right b[m ] 01277: 1001111111 go to eng5 01300: 0100010000 zappo: binary 01301: 0000000110 0 -> a[wp] 01302: 1001000110 a - 1 -> a[wp] 01303: 1100001000 decimal 01304: 1000010000 return 01305: 0111001000 fix1: m2 -> c 01306: 0101001110 a + c -> a[x ] 01307: 1101000100 1 -> s big 13 01310: 1111000101 jsb round 01311: 1101001010 if 0 # a[xs] 01312: 1011010111 then go to fix2 01313: 1100000001 jsb zappo 01314: 0001001110 a exchange b[x ] 01315: 1000111100 p <- 1 01316: 1101000010 if 0 # a[p ] 01317: 1011100101 then go to fix8 01320: 1001001110 fix4: a - 1 -> a[x ] 01321: 1101010111 if n/c go to fix5 01322: 0000001110 fix6: 0 -> a[x ] 01323: 0001001110 a exchange b[x ] 01324: 1010100111 go to outpu2 01325: 1111010110 fix5: shift right b[m ] 01326: 1101000011 go to fix4 01327: 1110110110 fix2: shift right a[m ] 01330: 0110101110 a + 1 -> a[x ] 01331: 1101011111 if n/c go to fix2 01332: 0100001000 m1 exchange c 01333: 0010101110 c -> a[x ] 01334: 0100001000 m1 exchange c 01335: 0000001010 0 -> a[xs] 01336: 0111111100 p <- 12 01337: 0110010000 fix3: p - 1 -> p 01340: 1001001110 a - 1 -> a[x ] 01341: 1101111111 if n/c go to fix3 01342: 0000000110 0 -> a[wp] 01343: 1101010110 if 0 # a[m ] 01344: 1011101000 then go to fix9 01345: 0001111100 fix8: p <- 4 01346: 1111010001 jsb round2 01347: 1000111011 go to sci1 01350: 1100000001 fix9: jsb zappo 01351: 0001001110 a exchange b[x ] 01352: 1101001011 go to fix6 01353: 0011100100 round4: if p = 2 01354: 1011110100 then go to round2 01355: 0110010000 round1: p - 1 -> p 01356: 1001001110 rounda: a - 1 -> a[x ] 01357: 1110101111 if n/c go to round4 01360: 1111010011 go to round2 01361: 0111111100 round: p <- 12 01362: 0110101110 a + 1 -> a[x ] 01363: 1110111011 if n/c go to rounda 01364: 0000011010 round2: 0 -> a[w ] 01365: 0010100110 c -> a[wp] 01366: 0101010110 a + c -> a[m ] 01367: 1111111011 if n/c go to round3 01370: 0110110010 a + 1 -> a[s ] 01371: 1110111110 shift right a[ms] 01372: 0110101110 a + 1 -> a[x ] 01373: 1101011100 if 0 = s big 13 01374: 1011111110 then go to round3 01375: 0110010000 p - 1 -> p 01376: 0001101110 round3: a -> b[x ] 01377: 1000010000 return 01400: 0100100011 q3:0: go to qgto 01401: 0100100011 go to qgto 01402: 0100100011 go to qgto 01403: 0100100011 go to qgto 01404: 0100100011 go to qgto 01405: 0100100011 go to qgto 01406: 0100100011 go to qgto 01407: 0100100011 go to qgto 01410: 0100100011 go to qgto 01411: 0100100011 go to qgto 01412: 1010100111 go to qsto 01413: 1000010111 go to qrcl 01414: 0001100011 go to qstoop 01415: 0001100011 go to qstoop 01416: 0001100011 go to qstoop 01417: 0001100011 go to qstoop 01420: 1000111111 q4:0: go to qslice 01421: 1000111111 go to qslice 01422: 1000111111 go to qslice 01423: 1000111111 go to qslice 01424: 1000111111 go to qslice 01425: 0111101010 c + 1 -> c[xs] 01426: 0111101010 c + 1 -> c[xs] 01427: 1010001011 if n/c go to qeng 01430: 0101110100 qstoop: delayed rom 5 01431: 0010000011 go to $vally 01432: 0111101010 c + 1 -> c[xs] 01433: 0101100000 select rom 5 01434: 0000100000 select rom 0 01435: 0111101010 c + 1 -> c[xs] 01436: 0111101010 c + 1 -> c[xs] 01437: 0100110100 delayed rom 4 01440: 0011000011 go to $qplan 01441: 1101110110 $fthr0: if 0 # c[m ] 01442: 1100100101 then go to fthru1 01443: 0000011010 0 -> a[w ] 01444: 1001011010 a - 1 -> a[w ] 01445: 0101111100 fthru1: p <- 2 01446: 0010011010 a exchange c[w ] 01447: 0111010000 fthru2: p + 1 -> p 01450: 0111011010 shift left a[w ] 01451: 1100101100 if p # 11 01452: 1100100111 then go to fthru2 01453: 0010000110 a exchange c[wp] 01454: 0100011010 0 -> c[w ] 01455: 0011111010 b exchange c[w ] 01456: 0011011100 if 0 = s runpgm 3 01457: 0101110101 then go to $plain 01460: 0010001000 display toggle 01461: 0001110100 delayed rom 1 01462: 0011100001 jsb $wait 01463: 0011001000 display off 01464: 0100010100 if 1 = s bst 4 01465: 0010100111 then go to $outpu 01466: 0011111010 b exchange c[w ] 01467: 1110110011 go to $go 01470: 1000101001 erro9: jsb errtst 01471: 0000100000 select rom 0 01472: 0101001000 fetch: m1 -> c 01473: 0010111010 c -> a[w ] 01474: 0100011010 0 -> c[w ] 01475: 1100111100 p <- 0 01476: 1000011000 load constant 8 01477: 1001111100 p <- 3 01500: 0111011000 load constant 7 01501: 1100111100 p <- 0 01502: 1100001000 decimal 01503: 1001010110 a - 1 -> a[m ] 01504: 1100000111 if n/c go to fetch1 01505: 0001001100 0 -> s stop 1 01506: 1001111000 register -> c 9 01507: 1000010000 return 01510: 1001100100 qgto: if p = 13 01511: 1110010110 then go to qeng1 01512: 0001011010 a exchange b[w ] 01513: 0111011010 shift left a[w ] 01514: 0000011110 0 -> a[ms] 01515: 0111011010 shift left a[w ] 01516: 0111011010 shift left a[w ] 01517: 0101001000 $qgto2: m1 -> c 01520: 0010010110 a exchange c[m ] 01521: 1101110110 if 0 # c[m ] 01522: 1101010100 then go to qgto1 01523: 0001001100 0 -> s stop 1 01524: 0100001000 qgto1: m1 exchange c 01525: 1110001111 go to $qthr1 01526: 0011010100 $thru: if 1 = s runpgm 3 01527: 1111110110 then go to execut 01530: 0011111010 b exchange c[w ] 01531: 1111101001 jsb $inc 01532: 0011101001 jsb fetch 01533: 0001011010 a exchange b[w ] 01534: 0111110110 thru1: c + 1 -> c[m ] 01535: 1010011011 if n/c go to thru2 01536: 0000111000 data -> c 01537: 0010000010 a exchange c[p ] 01540: 0111010000 p + 1 -> p 01541: 0010000010 a exchange c[p ] 01542: 0110010000 p - 1 -> p 01543: 1011110000 c -> data 01544: 1011101111 go to sst1 01545: 1100001000 fetch2: decimal 01546: 1110010110 a - c -> a[m ] 01547: 1100000111 if n/c go to fetch1 01550: 1001110000 c -> data address 01551: 0010011010 a exchange c[w ] 01552: 0010111010 c -> a[w ] 01553: 0110110110 fetch3: a + 1 -> a[m ] 01554: 1010110011 if n/c go to fetch4 01555: 1000010000 return 01556: 0000111010 mlop: 0 -> b[w ] 01557: 0001000110 mlp0: a exchange b[wp] 01560: 1111011010 shift right b[w ] 01561: 0110111100 mlp2: p <- 10 01562: 0100111010 mlp3: a + b -> a[w ] 01563: 0110010000 p - 1 -> p 01564: 0000101100 if p # 4 01565: 1101110010 then go to mlp3 01566: 1000010000 return 01567: 1100001000 dec: decimal 01570: 0101001000 m1 -> c 01571: 1011110110 if 0 = c[m ] 01572: 1111111101 then go to inc1 01573: 1001110110 c - 1 -> c[m ] 01574: 1111110111 if n/c go to inc1 01575: 1111111010 go3: shift right c[w ] 01576: 0110010000 p - 1 -> p 01577: 1111001011 go to go2 01600: 1001010100 ebst: if 1 = s f 9 01601: 0100010110 then go to $esci 01602: 0111011101 jsb dec 01603: 0100000100 1 -> s bst 4 01604: 1011101011 go to $sst4 01605: 0110001000 qrcl: m2 exchange c 01606: 0010011100 if 0 = s push 2 01607: 1110001001 then go to qrcl1 01610: 1011001000 c -> stack 01611: 1110001011 qrcl1: go to qthru 01612: 0001011100 errtst: if 0 = s stop 1 01613: 1110001101 then go to erro1 01614: 0111011101 jsb dec 01615: 0001001100 erro1: 0 ->s stop 1 01616: 1000010000 return 01617: 0001101110 qslice: a -> b[x ] 01620: 1111101110 qslic1: shift right c[x ] 01621: 1001110000 c -> data address 01622: 0000111000 data -> c 01623: 0111001110 shift left a[x ] 01624: 0000001010 0 -> a[xs] 01625: 0010010000 a -> rom address 01626: 0101001000 qeng1: m1 -> c 01627: 1110101110 shift right a[x ] 01630: 0001001010 a exchange b[xs] 01631: 0010001110 a exchange c[x ] 01632: 0100001000 m1 exchange c 01633: 1110001111 go to $qthr1 01634: 0101001000 $er/s2: m1 -> c 01635: 1101110110 if 0 # c[m ] 01636: 1110100001 then go to er/s3 01637: 0111110110 c + 1 -> c[m ] 01640: 0100001000 m1 exchange c 01641: 1011101011 er/s3: go to $sst4 01642: 1010111100 qeng: p <- 13 01643: 0011101010 b exchange c[xs] 01644: 0100001010 0 -> c[xs] 01645: 1001000011 go to qslic1 01646: 0111011010 thru2: shift left a[w ] 01647: 0111011010 shift left a[w ] 01650: 0101110011 go to thru1 01651: 0111001000 qsto: m2 -> c 01652: 1011110000 c -> data 01653: 1110001011 go to qthru 01654: 0111010000 fetch4: p + 1 -> p 01655: 0111010000 p + 1 -> p 01656: 0110101111 go to fetch3 01657: 1111111010 sst2: shift right c[w ] 01660: 0110010000 p - 1 -> p 01661: 1011110011 go to sst3 01662: 0000000000 nop 01663: 1000000011 kbst1: go to ebst 01664: 1001010100 esst: if 1 = s f 9 01665: 0100010111 then go to $efix 01666: 0100001100 0 -> s bst 4 01667: 0011010100 if 1 = s runpgm 3 01670: 1110011100 then go to $er/s2 01671: 1111101001 jsb $inc 01672: 0011101001 $sst4: jsb fetch 01673: 0000111000 sst1: data -> c 01674: 1011101100 sst3: if p # 0 01675: 1110101111 then go to sst2 01676: 0100001010 0 -> c[xs] 01677: 0010110100 delayed rom 2 01700: 0011011011 go to $form 01701: 0100010000 fetch1: binary 01702: 0111100010 c + 1 -> c[p ] 01703: 0110010111 if n/c go to fetch2 01704: 0101001000 m1 -> c 01705: 0100010110 0 -> c[m ] 01706: 0100001000 m1 exchange c 01707: 0001001100 fetch5: 0 -> s stop 1 01710: 1110001111 go to $qthr1 01711: 0100110100 $h.ms: delayed rom 4 01712: 1110001101 jsb $dms10 01713: 0001011010 a exchange b[w ] 01714: 0110111001 jsb mlop 01715: 0110111001 jsb mlop 01716: 0110110100 delayed rom 6 01717: 1100010101 jsb $norm 01720: 1110000111 go to $retu 01721: 0100110100 h: delayed rom 4 01722: 1110001101 jsb $dms10 01723: 0110111101 jsb mlp0 01724: 0000111010 0 -> b[w ] 01725: 0001000110 a exchange b[wp] 01726: 0001011010 a exchange b[w ] 01727: 0111011010 shift left a[w ] 01730: 0111000101 jsb mlp2 01731: 0110110100 delayed rom 6 01732: 1100010101 jsb $norm 01733: 0100011010 0 -> c[w ] 01734: 0011011000 load constant 3 01735: 0110011000 load constant 6 01736: 0111111100 p <- 12 01737: 0101110100 delayed rom 5 01740: 1101110001 jsb $divid 01741: 0110001000 $retu: m2 exchange c 01742: 0010000100 qthru: 1 -> s push 2 01743: 0001001000 $qthr1: clear status 01744: 0000110100 delayed rom 0 01745: 1100010101 jsb $overf 01746: 0110001000 $qthr4: m2 exchange c 01747: 0010101100 if p # 12 01750: 1111101010 then go to qthru2 01751: 1000101001 $qthr3: jsb errtst 01752: 0001011100 qthru2: if 0 = s stop 1 01753: 0010100111 then go to $outpu 01754: 1111010100 $go: if 1 = s key 15 01755: 1111000111 then go to fetch5 01756: 0010001000 display toggle 01757: 0011101001 jsb fetch 01760: 1111101001 jsb $inc 01761: 0000111000 data -> c 01762: 1011101100 go2: if p # 0 01763: 1101111101 then go to go3 01764: 0100011110 0 -> c[ms] 01765: 0011001000 display off 01766: 0100001010 execut: 0 -> c[xs] 01767: 0010101110 c -> a[x ] 01770: 0110101010 a + 1 -> a[xs] 01771: 0010010000 a -> rom address 01772: 1100001000 $inc: decimal 01773: 0101001000 m1 -> c 01774: 0111110110 c + 1 -> c[m ] 01775: 0100001000 inc1: m1 exchange c 01776: 0100010000 binary 01777: 1000010000 return 02000: 0111011111 q0:0: go to minus 02001: 1000011111 go to plus 02002: 0111110011 go to time 02003: 1100101011 go to div0 02004: 0000100000 select rom 0 02005: 1000010111 go to qr/s 02006: 0001110111 go to qenter 02007: 0000100000 select rom 0 02010: 0000100000 select rom 0 02011: 1101000011 go to qclx 02012: 1101011011 go to qxexy 02013: 1101110011 go to qroll 02014: 1010101011 go to sig+ 02015: 1110101111 go to erro 02016: 1110101111 go to erro 02017: 1110101111 go to erro 02020: 1001000100 q1:0: 1 -> s f 9 02021: 1100010111 go to x>=0 02022: 1001000100 1 -> s f 9 02023: 1001111011 go to x=0 02024: 1010011111 go to pi 02025: 1110001011 go to qthru1 02026: 1110101111 go to erro 02027: 0110110010 a + 1 -> a[s ] 02030: 0110110010 a + 1 -> a[s ] 02031: 1111100011 if n/c go to rad 02032: 0101101111 go to percen 02033: 0010110111 go to 1/x 02034: 1110001011 go to qthru1 02035: 1011001000 qenter: c -> stack 02036: 0010001100 qent1: 0 -> s push 2 02037: 1110001011 go to qthru1 02040: 1001000100 q2:0: 1 -> s f 9 02041: 1100001011 go to x>=y 02042: 1001000100 1 -> s f 9 02043: 1001110011 go to x=y 02044: 1101111011 go to lastx 02045: 1010010111 go to pause 02046: 1110101111 go to erro 02047: 1110101111 go to erro 02050: 1110110111 go to qclrrg 02051: 1100111111 go to qclr 02052: 1001010111 go to mean 02053: 0011100011 go to stddev 02054: 1000100111 go to sig- 02055: 0000011010 1/x: 0 -> a[w ] 02056: 0110100010 a + 1 -> a[p ] 02057: 1100101111 if n/c go to div1 02060: 0111001110 $qplan: shift left a[x ] 02061: 0010001010 a exchange c[xs] 02062: 0111001000 m2 -> c 02063: 0111111100 p <- 12 02064: 1100001000 decimal 02065: 0000010010 0 -> a[s ] 02066: 1001001100 0 -> s f 9 02067: 0010010000 a -> rom address 02070: 1111110001 stddev: jsb shove 02071: 0111111000 register -> c 7 02072: 0010111010 c -> a[w ] 02073: 1101101001 jsb mpy 02074: 1001000001 jsb overf4 02075: 0011111000 register -> c 3 02076: 1000000100 1 -> s err 8 02077: 0111111100 p <- 12 02100: 1101101101 jsb div 02101: 1001000001 jsb overf4 02102: 0110111000 register -> c 6 02103: 0010011010 a exchange c[w ] 02104: 1101001101 jsb sub 02105: 0110001000 m2 exchange c 02106: 0011111000 register -> c 3 02107: 0010111010 c -> a[w ] 02110: 0100011010 0 -> c[w ] 02111: 0111100010 c + 1 -> c[p ] 02112: 1101001101 jsb sub 02113: 0000011010 0 -> a[w ] 02114: 0110100010 a + 1 -> a[p ] 02115: 1101101101 jsb div 02116: 0111001000 m2 -> c 02117: 1101101001 jsb mpy 02120: 1001000001 jsb overf4 02121: 0100010010 0 -> c[s ] 02122: 0111110100 delayed rom 7 02123: 0101000101 jsb $sqrt 02124: 1110000011 go to qrcl 02125: 1111011010 dms11: shift right b[w ] 02126: 0110101110 a + 1 -> a[x ] 02127: 0101010111 if n/c go to dms11 02130: 0000011010 0 -> a[w ] 02131: 1011111100 p <- 6 02132: 1000010000 return 02133: 1010001000 percen: y -> a 02134: 1000101000 c -> register 8 02135: 1001101110 c - 1 -> c[x ] 02136: 1001101110 c - 1 -> c[x ] 02137: 1101101001 perce1: jsb mpy 02140: 1001101111 go to ret 02141: 0000011010 part: 0 -> a[w ] 02142: 1101101010 if 0 # c[xs] 02143: 0001110011 then go to part2 02144: 0010011010 a exchange c[w ] 02145: 0001101110 a -> b[x ] 02146: 0110010000 part1: p - 1 -> p 02147: 0011100100 if p = 2 02150: 0001101100 then go to part3 02151: 1001001110 a - 1 -> a[x ] 02152: 0110011011 if n/c go to part1 02153: 0010000110 a exchange c[wp] 02154: 0011001110 part3: b -> c[x ] 02155: 0000001110 0 -> a[x ] 02156: 0010011110 a exchange c[ms] 02157: 1001011100 if 0 = s f 9 02160: 0010011011 then go to ret 02161: 0110110100 delayed rom 6 02162: 1100010101 jsb $norm 02163: 1001010100 part2: if 1 = s f 9 02164: 0010011011 then go to ret 02165: 0100011010 0 -> c[w ] 02166: 1001101111 go to ret 02167: 1000101000 minus: c -> register 8 02170: 1010110010 0 - c - 1 -> c[s ] 02171: 1000001000 minus1: stack -> a 02172: 1101010001 jsb add 02173: 1110000011 go to qrcl 02174: 1000001000 time: stack -> a 02175: 1000101000 time1: c -> register 8 02176: 1101101001 jsb mpy 02177: 1110000011 go to qrcl 02200: 0000000000 nop 02201: 0000000000 nop 02202: 0000000000 nop 02203: 0000000000 nop 02204: 0000000000 nop 02205: 0001001100 qr/s: 0 -> s stop 1 02206: 1110001011 go to qthru1 02207: 1000101000 plus: c -> register 8 02210: 0111100111 go to minus1 02211: 0010111010 sig-: c -> a[w ] 02212: 1000101000 c -> register 8 02213: 1010110010 0 - c - 1 -> c[s ] 02214: 0110001000 m2 exchange c 02215: 0111001000 m2 -> c 02216: 1010000100 1 -> s g 10 02217: 1010110111 go to sig+2 02220: 0000110100 overf4: delayed rom 0 02221: 1100011001 jsb $over0 02222: 0010100100 if p = 12 02223: 0011100000 then go to qrcl 02224: 1000010000 return 02225: 1111110001 mean: jsb shove 02226: 0111111000 register -> c 7 02227: 0010011010 a exchange c[w ] 02230: 0011111000 register -> c 3 02231: 1000000100 mean1: 1 -> s err 8 02232: 1101101101 jsb div 02233: 1110000011 ret: go to qrcl 02234: 1010001000 x=y: y -> a 02235: 1101001101 jsb sub 02236: 1101110110 x=0: if 0 # c[m ] 02237: 0011000111 then go to no 02240: 1001011100 yes: if 0 = s f 9 02241: 0011100010 then go to qthru1 02242: 0011110100 yes1: delayed rom 3 02243: 1111101001 jsb $inc 02244: 1110001011 go to qthru1 02245: 0001001000 pause: clear status 02246: 0000100000 select rom 0 02247: 1111110001 pi: jsb shove 02250: 0101110100 delayed rom 5 02251: 1101010011 go to $pikey 02252: 0010111010 sig+: c -> a[w ] 02253: 1000101000 c -> register 8 02254: 1010001100 0 -> s g 10 02255: 1101101001 sig+2: jsb mpy 02256: 1001000100 1 -> s f 9 02257: 0110111000 register -> c 6 02260: 0101110100 delayed rom 5 02261: 1110000101 jsb $qsto1 02262: 0111111000 register -> c 7 02263: 0101110100 delayed rom 5 02264: 0100110101 jsb $qsto+ 02265: 0111001000 m2 -> c 02266: 1010001000 y -> a 02267: 1101101001 jsb mpy 02270: 0101111000 register -> c 5 02271: 0101110100 delayed rom 5 02272: 1110000101 jsb $qsto1 02273: 1010001000 y -> a 02274: 0010011010 a exchange c[w ] 02275: 0010111010 c -> a[w ] 02276: 1010011100 if 0 = s g 10 02277: 0011000001 then go to sig+1 02300: 1010110010 0 - c - 1 -> c[s ] 02301: 0101100000 sig+1: select rom 5 02302: 1010001000 x>=y: y -> a 02303: 0010011010 a exchange c[w ] 02304: 1101001101 jsb sub 02305: 1011110010 x>=0: if 0 = c[s ] 02306: 0010100000 then go to yes 02307: 1001011100 no: if 0 = s f 9 02310: 0010100010 then go to yes1 02311: 1110001011 go to qthru1 02312: 1000001000 div0: stack -> a 02313: 1000101000 div1: c -> register 8 02314: 1000000100 1 -> s firdig 8 02315: 1101101101 jsb div 02316: 1110000011 go to qrcl 02317: 0000001000 qclr: clear registers 02320: 0100011010 qclx: 0 -> c[w ] 02321: 0110001000 $qclx1: m2 exchange c 02322: 0001111011 go to qent1 02323: 1010110010 sub: 0 - c - 1 -> c[s ] 02324: 0101110100 add: delayed rom 5 02325: 0010101011 go to $add3 02326: 1000001000 qxexy: stack -> a 02327: 1011001000 c -> stack 02330: 0010011010 a exchange c[w ] 02331: 1110000011 go to qrcl 02332: 0101100000 mpy: select rom 5 02333: 0101100000 div: select rom 5 02334: 1001001000 qroll: down rotate 02335: 1110000011 go to qrcl 02336: 1111110001 lastx: jsb shove 02337: 1000111000 register -> c 8 02340: 0110001000 qrcl: m2 exchange c 02341: 0010000100 $qthr: 1 -> s push 2 02342: 0011100000 qthru1: select rom 3 02343: 0010111010 $dms10: c -> a[w ] 02344: 0011110110 b exchange c[m ] 02345: 0100001110 0 -> c[x ] 02346: 1100111100 p <- 0 02347: 0101011000 load constant 5 02350: 1110011010 a - c -> a[w ] 02351: 1101001010 if 0 # a[xs] 02352: 0001010101 then go to dms11 02353: 0001110100 erro: delayed rom 1 02354: 0010011111 go to $error 02355: 0100011010 qclrrg: 0 -> c[w ] 02356: 1001110000 c -> data address 02357: 0000101000 c -> register 0 02360: 0001101000 c -> register 1 02361: 0010101000 c -> register 2 02362: 0011101000 c -> register 3 02363: 0100101000 c -> register 4 02364: 0101101000 c -> register 5 02365: 0110101000 c -> register 6 02366: 0111101000 c -> register 7 02367: 1110001011 go to qthru1 02370: 0100001000 rad: m1 exchange c 02371: 0010010010 a exchange c[s ] 02372: 0100001000 m1 exchange c 02373: 1110001011 go to qthru1 02374: 0010011100 shove: if 0 = s push 2 02375: 0011111111 then go to shove1 02376: 1011001000 c -> stack 02377: 1000010000 shove1: return 02400: 1101000011 z0:0: go to h1 02401: 0101111111 go to frac 02402: 1101000111 go to x**2 02403: 1101001011 go to abs 02404: 0111001011 go to asin 02405: 0111000111 go to acos 02406: 0111001111 go to atan 02407: 0100101111 go to exp 02410: 0100100111 go to e10tox 02411: 1010100011 go to polar 02412: 0011110100 h.ms1: delayed rom 3 02413: 1100100111 go to $h.ms 02414: 1101111011 go to qsto- 02415: 0100110111 go to $qsto+ 02416: 0110001111 go to qsto* 02417: 0110011111 go to qsto/ 02420: 0000101011 z1:0: go to h.ms1 02421: 0110000011 go to int 02422: 1000101111 go to polar2 02423: 1111100111 go to ytox 02424: 1001010011 go to sin 02425: 1001001111 go to cos 02426: 1001010111 go to tan 02427: 1111110111 go to ln 02430: 1111110011 go to log 02431: 1001000111 go to rect 02432: 0000110100 overfz: delayed rom 0 02433: 1100011011 go to $over0 02434: 0111001110 valley: shift left a[x ] 02435: 0010001010 a exchange c[xs] 02436: 0111001000 m2 -> c 02437: 1000101000 c -> register 8 02440: 0000111010 $vally: 0 -> b[w ] 02441: 0111111100 p <- 12 02442: 0001001000 clear status 02443: 1100001000 decimal 02444: 0010010000 a -> rom address 02445: 0000000000 nop 02446: 0001100000 $err5: select rom 1 02447: 1001011100 qsto-3: if 0 = s f 9 02450: 0111011000 then go to retur5 02451: 1000010000 return 02452: 0111111100 $add3: p <- 12 02453: 0000111010 0 -> b[w ] 02454: 0110101010 a + 1 -> a[xs] 02455: 0110101010 a + 1 -> a[xs] 02456: 0111101010 c + 1 -> c[xs] 02457: 0111101010 c + 1 -> c[xs] 02460: 1100001110 if a >= c[x ] 02461: 0100110011 then go to add4 02462: 0010011010 a exchange c[w ] 02463: 0010010110 add4: a exchange c[m ] 02464: 1011110110 if 0 = c[m ] 02465: 0100110111 then go to add5 02466: 0010011010 a exchange c[w ] 02467: 0011110110 add5: b exchange c[m ] 02470: 1100001110 add6: if a >= c[x ] 02471: 1110111000 then go to $add1 02472: 1111011010 shift right b[w ] 02473: 0110101110 a + 1 -> a[x ] 02474: 1011011010 if 0 = b[w ] 02475: 1110111000 then go to $add1 02476: 0011100011 go to add6 02477: 0100001000 $what: m1 exchange c 02500: 0010110010 c -> a[s ] 02501: 0100001000 m1 exchange c 02502: 0111111100 p <- 12 02503: 1001010010 a - 1 -> a[s ] 02504: 0110110111 if n/c go to what1 02505: 0000011010 0 -> a[w ] 02506: 0110100010 a + 1 -> a[p ] 02507: 0110101110 a + 1 -> a[x ] 02510: 1010001011 if n/c go to what4 02511: 1000000100 e10tox: 1 -> s err 8 02512: 0110100000 select rom 6 02513: 1000000100 exp: 1 -> s err 8 02514: 0110100000 select rom 6 02515: 0010111010 $qsto+: c -> a[w ] 02516: 0111001000 m2 -> c 02517: 1110000111 go to $qsto1 02520: 0111100000 sqrt: select rom 7 02521: 0100011010 atc11: 0 -> c[w ] 02522: 0100111100 p <- 11 02523: 0111011000 load constant 7 02524: 1000011000 load constant 8 02525: 0101011000 load constant 5 02526: 0011011000 load constant 3 02527: 1001011000 load constant 9 02530: 1000011000 load constant 8 02531: 0001011000 load constant 1 02532: 0110011000 load constant 6 02533: 0011011000 load constant 3 02534: 0101011000 load constant 5 02535: 0111111100 p <- 12 02536: 1000010000 return 02537: 1001000100 frac: 1 -> s f 9 02540: 0100100000 int: select rom 4 02541: 0000000000 nop 02542: 0000000000 nop 02543: 0010111010 qsto*: c -> a[w ] 02544: 0111001000 m2 -> c 02545: 1101101101 jsb mpy11z 02546: 1110001011 go to qsto-2 02547: 0010111010 qsto/: c -> a[w ] 02550: 0111001000 m2 -> c 02551: 0111111100 p <- 12 02552: 1000000100 1 -> s err 8 02553: 1101110001 jsb $divid 02554: 1110001011 go to qsto-2 02555: 1001010010 what1: a - 1 -> a[s ] 02556: 1010000011 if n/c go to what2 02557: 1101000100 1 -> s rad 13 02560: 1000010000 return 02561: 0111000100 acos: 1 -> s cos 7 02562: 1110000100 asin: 1 -> s ntan 14 02563: 0011111101 atan: jsb $what 02564: 1001000100 1 -> s f 9 02565: 0001110100 delayed rom 1 02566: 0101001101 jsb $size 02567: 0111111100 p <- 12 02570: 1110011100 if 0 = s ntan 14 02571: 1100010111 then go to $atan 02572: 1010110010 0 - c - 1 -> c[s ] 02573: 0010010010 a exchange c[s ] 02574: 0111110100 delayed rom 7 02575: 0000111111 go to $asin 02576: 0110001000 trig5: m2 exchange c 02577: 0010011010 a exchange c[w ] 02600: 1010001000 trig6: y -> a 02601: 1101101101 jsb mpy11z 02602: 0001101001 jsb overfz 02603: 1100011100 if 0 = s correc 12 02604: 0110000110 then go to trig4 02605: 1010110010 0 - c - 1 -> c[s ] 02606: 1000001000 trig4: stack -> a 02607: 1011001000 c -> stack 02610: 0111001000 m2 -> c 02611: 1101101101 jsb mpy11z 02612: 1101011111 go to $retrn 02613: 0101000001 polar2: jsb sqrt 02614: 1010011100 if 0 = s polar 10 02615: 0111010111 then go to $retrn 02616: 1011001000 polar3: c -> stack 02617: 0110001000 m2 exchange c 02620: 0111001111 go to atan 02621: 1010000100 rect: 1 -> s polar 10 02622: 1010010001 jsb xexy 02623: 0111000100 cos: 1 -> s cos 7 02624: 1110000100 sin: 1 -> s ntan 14 02625: 0011111101 tan: jsb $what 02626: 1101010100 if 1 = s rad 13 02627: 0110011101 then go to piq 02630: 0010011010 a exchange c[w ] 02631: 1101110001 jsb $divid 02632: 0101000101 jsb atc11 02633: 0101111010 c + c -> c[w ] 02634: 1101101101 jsb mpy11z 02635: 0001110100 piq: delayed rom 1 02636: 0101001101 jsb $size 02637: 0111100000 select rom 7 02640: 0000011010 what2: 0 -> a[w ] 02641: 1001000010 a - 1 -> a[p ] 02642: 0110101110 what4: a + 1 -> a[x ] 02643: 1000010000 return 02644: 1000001000 xexy: stack -> a 02645: 1011001000 c -> stack 02646: 0010011010 a exchange c[w ] 02647: 1000010000 return 02650: 1010000100 polar: 1 -> s polar 10 02651: 1011110010 if 0 = c[s ] 02652: 0110101100 then go to polar1 02653: 1100000100 1 -> s correc 12 02654: 0110001000 polar1: m2 exchange c 02655: 0111001000 m2 -> c 02656: 1010001000 y -> a 02657: 1101010110 if 0 # a[m ] 02660: 0110110011 then go to polar4 02661: 1011110110 if 0 = c[m ] 02662: 0111010111 then go to $retrn 02663: 0111111100 polar4: p <- 12 02664: 1101110001 jsb $divid 02665: 0001101001 jsb overfz 02666: 0110001000 m2 exchange c 02667: 1101101001 jsb mpy11q 02670: 1010010001 jsb xexy 02671: 1101101001 jsb mpy11q 02672: 1000001000 stack -> a 02673: 0010101001 jsb $add3 02674: 1001001010 a - 1 -> a[xs] 02675: 1001001010 a - 1 -> a[xs] 02676: 1101001010 if 0 # a[xs] 02677: 0110001011 then go to polar2 02700: 0001101001 jsb overfz 02701: 1000111011 go to polar3 02702: 0010011010 sig++: a exchange c[w ] 02703: 0100111000 register -> c 4 02704: 1110000101 jsb $qsto1 02705: 0111111100 p <- 12 02706: 0100011010 0 -> c[w ] 02707: 0111100010 c + 1 -> c[p ] 02710: 1010011100 if 0 = s g 10 02711: 0111001011 then go to sig+3 02712: 1010110010 0 - c - 1 -> c[s ] 02713: 0010011010 sig+3: a exchange c[w ] 02714: 0011111000 register -> c 3 02715: 1110000101 jsb $qsto1 02716: 0100110100 delayed rom 4 02717: 1101000111 go to $qclx1 02720: 0011100000 h1: select rom 3 02721: 1101101001 x**2: jsb mpy11q 02722: 0100010010 abs: 0 -> c[s ] 02723: 1101011111 go to $retrn 02724: 0101000101 $pikey: jsb atc11 02725: 0101111010 c + c -> c[w ] 02726: 0101111010 c + c -> c[w ] 02727: 0110001000 $retrn: m2 exchange c 02730: 0100110100 retur5: delayed rom 4 02731: 1110000111 go to $qthr 02732: 0010111010 mpy11q: c -> a[w ] 02733: 0110100000 mpy11z: select rom 6 02734: 1000101110 $divid: a - c -> c[x ] 02735: 0110100000 select rom 6 02736: 0010111010 qsto-: c -> a[w ] 02737: 0111001000 m2 -> c 02740: 1010110010 0 - c - 1 -> c[s ] 02741: 0010101001 $qsto1: jsb $add3 02742: 0001101001 qsto-2: jsb overfz 02743: 1011110000 c -> data 02744: 0010101100 if p # 12 02745: 0100100111 then go to qsto-3 02746: 0100011010 0 -> c[w ] 02747: 0100010000 binary 02750: 1001111010 c - 1 -> c[w ] 02751: 0000011000 load constant 0 02752: 1011011000 load constant 11 02753: 0001110100 delayed rom 1 02754: 0011001111 go to $err1 02755: 1010011100 $trig3: if 0 = s polar 10 02756: 0111010111 then go to $retrn 02757: 0000011010 0 -> a[w ] 02760: 0110100010 a + 1 -> a[p ] 02761: 1011110110 if 0 = c[m ] 02762: 0101111110 then go to trig5 02763: 0110001000 m2 exchange c 02764: 1101110001 jsb $divid 02765: 0111001000 m2 -> c 02766: 1101101101 jsb mpy11z 02767: 0001101001 jsb overfz 02770: 1000000011 go to trig6 02771: 1000001000 ytox: stack -> a 02772: 0010011010 a exchange c[w ] 02773: 1011000100 1 -> s ytox 11 02774: 0110000100 log: 1 -> s log 6 02775: 1000000100 ln: 1 -> s err 8 02776: 0000011010 0 -> a[w ] 02777: 1110010110 a - c -> a[m ] 03000: 1110100011 if n/c go to err 03001: 1110111010 shift right a[w ] 03002: 1001110010 c - 1 -> c[s ] 03003: 1110100011 if n/c go to err 03004: 0111111100 p <- 12 03005: 0111110010 ln25: c + 1 -> c[s ] 03006: 0001111010 ln26: a -> b[w ] 03007: 1111101101 jsb eca22 03010: 1001000010 a - 1 -> a[p ] 03011: 0000010111 if n/c go to ln25 03012: 0001000110 a exchange b[wp] 03013: 0100110010 a + b -> a[s ] 03014: 0111101111 if n/c go to ln24 03015: 0010111100 p <- 7 03016: 1010111101 jsb pqo23 03017: 0011111100 p <- 8 03020: 0011100001 jsb pmu22 03021: 1101111100 p <- 9 03022: 0011011101 jsb pmu21 03023: 1101100001 jsb lncd3 03024: 0110111100 p <- 10 03025: 0011011101 jsb pmu21 03026: 1000000001 jsb lncd2 03027: 0100111100 p <- 11 03030: 0011011101 jsb pmu21 03031: 0110010001 jsb lncd1 03032: 0011011101 jsb pmu21 03033: 1111000001 jsb lnc2 03034: 0011011101 jsb pmu21 03035: 0111001101 jsb lnc10 03036: 0010011010 a exchange c[w ] 03037: 1000111010 a - c -> c[w ] 03040: 1011001010 if 0 = b[xs] 03041: 1000100011 then go to ln27 03042: 1000111010 a - c -> c[w ] 03043: 0001011010 ln27: a exchange b[w ] 03044: 0110010000 ln28: p - 1 -> p 03045: 0111011010 shift left a[w ] 03046: 0101101100 if p # 1 03047: 1000100100 then go to ln28 03050: 0010011010 a exchange c[w ] 03051: 1011110010 if 0 = c[s ] 03052: 1000101100 then go to ln29 03053: 1010110110 0 - c - 1 -> c[m ] 03054: 0111101110 ln29: c + 1 -> c[x ] 03055: 0100111100 p <- 11 03056: 1011111001 jsb mpy27 03057: 1011010100 if 1 = s ytox 11 03060: 1011011010 then go to xty22 03061: 0110011100 if 0 = s log 6 03062: 0111010111 then go to $retrn 03063: 0111001101 jsb lnc10 03064: 1101110101 jsb mpy22 03065: 1001101011 go to retur2 03066: 0111100000 pqo21: select rom 7 03067: 1110111010 pmu21: shift right a[w ] 03070: 0011111010 pmu22: b exchange c[w ] 03071: 0011101111 go to pmu24 03072: 0100111010 pmu23: a + b -> a[w ] 03073: 1001110010 pmu24: c - 1 -> c[s ] 03074: 0011101011 if n/c go to pmu23 03075: 0010011010 a exchange c[w ] 03076: 0111011110 shift left a[ms] 03077: 0010011010 a exchange c[w ] 03100: 1010111111 go to pqo23 03101: 0010011010 pre21: a exchange c[w ] 03102: 0001111010 a -> b[w ] 03103: 0010110110 c -> a[m ] 03104: 0101101010 c + c -> c[xs] 03105: 1010000011 if n/c go to pre24 03106: 0111101010 c + 1 -> c[xs] 03107: 1110111010 pre22: shift right a[w ] 03110: 0111101110 c + 1 -> c[x ] 03111: 0100011111 if n/c go to pre22 03112: 1010100111 go to pre26 03113: 0111001001 10tox: jsb ln10b 03114: 1101110001 ytox29: jsb mpy21 03115: 0111001001 exp21: jsb ln10b 03116: 0100000101 jsb pre21 03117: 1111000001 jsb lnc2 03120: 0100111100 p <- 11 03121: 0011011001 jsb pqo21 03122: 0110010001 jsb lncd1 03123: 0110111100 p <- 10 03124: 0011011001 jsb pqo21 03125: 1000000001 jsb lncd2 03126: 1101111100 p <- 9 03127: 0011011001 jsb pqo21 03130: 1101100001 jsb lncd3 03131: 0011111100 p <- 8 03132: 0011011001 jsb pqo21 03133: 0011011001 jsb pqo21 03134: 0011011001 jsb pqo21 03135: 1011111100 p <- 6 03136: 0000000110 0 -> a[wp] 03137: 1010111100 p <- 13 03140: 0011111010 b exchange c[w ] 03141: 0010011010 a exchange c[w ] 03142: 0110011000 load constant 6 03143: 1001010011 go to exp23 03144: 1101111100 lncd1: p <- 9 03145: 0011011000 load constant 3 03146: 0001011000 load constant 1 03147: 0000011000 load constant 0 03150: 0001011000 load constant 1 03151: 0111011000 load constant 7 03152: 1001011000 load constant 9 03153: 1000011000 lnc8: load constant 8 03154: 0000011000 load constant 0 03155: 0101011000 load constant 5 03156: 0101011000 load constant 5 03157: 1011100100 if p = 0 03160: 1010001010 then go to lncb 03161: 1101011011 go to nrm27 03162: 0010111010 ln10b: c -> a[w ] 03163: 0100011010 lnc10: 0 -> c[w ] 03164: 0111111100 p <- 12 03165: 0010011000 load constant 2 03166: 0011011000 load constant 3 03167: 0000011000 load constant 0 03170: 0010011000 load constant 2 03171: 0101011000 load constant 5 03172: 1000010011 go to lnc7 03173: 0001010010 ln24: a exchange b[s ] 03174: 0110110010 a + 1 -> a[s ] 03175: 1111111110 shift right c[ms] ; bug corrected 15 10 2010 03176: 0111000110 shift left a[wp] 03177: 0000011011 go to ln26 03200: 0010111100 lncd2: p <- 7 03201: 0011011000 lnc6: load constant 3 03202: 0011011000 load constant 3 03203: 0000011000 load constant 0 03204: 1000011000 lnc7: load constant 8 03205: 0101011000 load constant 5 03206: 0000011000 load constant 0 03207: 1001100100 if p = 13 03210: 1010001011 then go to lncret 03211: 1001011000 lnca: load constant 9 03212: 0011011000 lncb: load constant 3 03213: 1101011011 lncret: go to nrm27 11..111111 03214: 1111101101 exp29: jsb eca22 03215: 0110100010 a + 1 -> a[p ] 03216: 0001111010 exp22: a -> b[w ] 03217: 1001110010 c - 1 -> c[s ] 03220: 1000110011 if n/c go to exp29 03221: 1110100110 shift right a[wp] 03222: 0010011010 a exchange c[w ] 03223: 0111011110 shift left a[ms] 03224: 0010011010 exp23: a exchange c[w ] 03225: 1001010010 a - 1 -> a[s ] 03226: 1000111011 if n/c go to exp22 03227: 0001011010 a exchange b[w ] 03230: 0110100010 a + 1 -> a[p ] 03231: 1100010101 jsb $norm 03232: 0100100000 retur2: select rom 4 03233: 1000011100 pre23: if 0 = s err 8 03234: 1010100000 then go to pre24 03235: 0110101110 a + 1 -> a[x ] 03236: 1101001010 pre29: if 0 # a[xs] 03237: 1011111000 then go to pre27 03240: 1000011110 pre24: a - b -> a[ms] 03241: 1001101111 if n/c go to pre23 03242: 0100111110 a + b -> a[ms] 03243: 0111011010 shift left a[w ] 03244: 1001101110 c - 1 -> c[x ] 03245: 1001111011 if n/c go to pre29 03246: 1110111010 pre25: shift right a[w ] 03247: 0100000110 0 -> c[wp] 03250: 0010001110 a exchange c[x ] 03251: 1011110010 pre26: if 0 = c[s ] 03252: 1010101110 then go to pre28 03253: 0001011010 a exchange b[w ] 03254: 1000011010 a - b -> a[w ] 03255: 1010111010 0 - c - 1 -> c[w ] 03256: 1110111010 pre28: shift right a[w ] 03257: 0011111010 pqo23: b exchange c[w ] 03260: 0100011010 0 -> c[w ] 03261: 1001110110 c - 1 -> c[m ] 03262: 1000011100 if 0 = s err 8 03263: 1010111000 then go to pqo28 03264: 0100011000 load constant 4 03265: 0111110110 c + 1 -> c[m ] 03266: 1011101111 if n/c go to pqo24 03267: 0110011000 pqo27: load constant 6 03270: 0101101100 pqo28: if p # 1 03271: 1010110111 then go to pqo27 03272: 1111111010 shift right c[w ] 03273: 1111111010 pqo24: shift right c[w ] 03274: 1000010000 return 03275: 0100111010 mpy26: a + b -> a[w ] 03276: 1001100010 mpy27: c - 1 -> c[p ] 03277: 1011110111 if n/c go to mpy26 03300: 1110111010 mpy28: shift right a[w ] 03301: 0111010000 p + 1 -> p 03302: 1001101100 if p # 13 03303: 1010111110 then go to mpy27 03304: 0111101110 c + 1 -> c[x ] 03305: 0000010010 $norm: 0 -> a[s ] 03306: 0111111100 p <- 12 03307: 0000111010 0 -> b[w ] 03310: 1101000010 nrm23: if 0 # a[p ] 03311: 1011001111 then go to nrm24 03312: 0111011010 shift left a[w ] 03313: 1001101110 c - 1 -> c[x ] 03314: 1101011010 if 0 # a[w ] 03315: 1011001000 then go to nrm23 03316: 0100011010 0 -> c[w ] 03317: 0001101110 nrm24: a -> b[x ] 03320: 0100111010 a + b -> a[w ] 03321: 1101010010 if 0 # a[s ] 03322: 1011000000 then go to mpy28 03323: 0010010110 a exchange c[m ] 03324: 0010111010 nrm25: c -> a[w ] 03325: 0000111010 0 -> b[w ] 03326: 0111111100 nrm27: p <- 12 03327: 1000010000 nrm26: return 03330: 1110111100 lncd3: p <- 5 03331: 1000000111 go to lnc6 03332: 0111001000 xty22: m2 -> c 03333: 0100110011 go to ytox29 03334: 1001111100 mpy21: p <- 3 03335: 0110001110 mpy22: a + c -> c[x ] 03336: 1000110010 div21: a - c -> c[s ] 03337: 1110000111 if n/c go to div22 03340: 1010010010 0 - c -> c[s ] 03341: 0000111010 div22: 0 -> b[w ] 03342: 0001010110 a exchange b[m ] 03343: 0000011010 0 -> a[w ] 03344: 0010101100 if p # 12 03345: 1010111110 then go to mpy27 03346: 1101110110 if 0 # c[m ] 03347: 1011101101 then go to div23 03350: 1000010100 err: if 1 = s err 8 03351: 0100100110 then go to $err5 03352: 0011000110 b -> c[wp] 03353: 1001010110 a - 1 -> a[m ] 03354: 0111101010 c + 1 -> c[xs] 03355: 0011100110 div23: b exchange c[wp] 03356: 0010010110 a exchange c[m ] 03357: 0111100000 select rom 7 03360: 0110011000 lnc2: load constant 6 03361: 1001011000 load constant 9 03362: 0011011000 load constant 3 03363: 0001011000 load constant 1 03364: 0100011000 load constant 4 03365: 0111011000 load constant 7 03366: 0001011000 load constant 1 03367: 0110101111 go to lnc8 03370: 0110110110 pre27: a + 1 -> a[m ] 03371: 1010011011 if n/c go to pre25 03372: 1110100110 eca21: shift right a[wp] 03373: 1001010010 eca22: a - 1 -> a[s ] 03374: 1111101011 if n/c go to eca21 03375: 0000010010 0 -> a[s ] 03376: 0100111010 a + b -> a[w ] 03377: 1000010000 return 03400: 0001011010 tan15: a exchange b[w ] 03401: 0010111001 jsb tnm11 03402: 0100110001 jsb stacka 03403: 0010111001 jsb tnm11 03404: 0100110001 jsb stacka 03405: 0111011100 if 0 = s cos 7 03406: 1100001000 then go to tan31 03407: 0010011010 a exchange c[w ] 03410: 1110011100 tan31: if 0 = s ntan 14 03411: 1100010100 then go to asn12 03412: 1011110010 if 0 = c[s ] 03413: 1100001101 then go to tan32 03414: 1100000100 1 -> s correc 12 03415: 0100010010 tan32: 0 -> c[s ] 03416: 1101101101 jsb div11 03417: 1110110001 $asin: jsb cstack 03420: 1101101001 jsb mpy11 03421: 0010011101 jsb add10 03422: 0101000101 jsb $sqrt 03423: 0100110001 jsb stacka 03424: 1101101101 asn12: jsb div11 03425: 1001011100 if 0 = s f 9 03426: 0111101101 then go to $trig3 03427: 0000011010 $atan: 0 -> a[w ] 03430: 0110100010 a + 1 -> a[p ] 03431: 0001110110 a -> b[m ] 03432: 0010010110 a exchange c[m ] 03433: 1001101110 atn12: c - 1 -> c[x ] 03434: 1111000110 shift right b[wp] 03435: 1011101010 if 0 = c[xs] 03436: 1100011011 then go to atn12 03437: 1110100110 atn13: shift right a[wp] 03440: 0111101110 c + 1 -> c[x ] 03441: 0001111111 if n/c go to atn13 03442: 1110111010 shift right a[w ] 03443: 1111011010 shift right b[w ] 03444: 1110110001 jsb cstack 03445: 0011111010 atn14: b exchange c[w ] 03446: 0101111011 go to atn18 03447: 0000011010 add10: 0 -> a[w ] 03450: 0110100010 a + 1 -> a[p ] 03451: 0101100000 add11: select rom 5 03452: 1000001000 polarq: stack -> a 03453: 1011001000 c -> stack 03454: 0010011010 a exchange c[w ] 03455: 1001101011 go to retur3 03456: 1110110001 tnm11: jsb cstack 03457: 0010011010 a exchange c[w ] 03460: 1011100010 if 0 = c[p ] 03461: 1100110011 then go to tnm12 03462: 1010011010 0 - c -> c[w ] 03463: 0010111010 tnm12: c -> a[w ] 03464: 0011001110 b -> c[x ] 03465: 1100010011 go to add15 03466: 0110100000 pmu11: select rom 6 03467: 0111011010 pqo11: shift left a[w ] 03470: 1111011110 pqo12: shift right b[ms] 03471: 0011111010 b exchange c[w ] 03472: 0011110011 go to pqo16 03473: 0111110010 pqo15: c + 1 -> c[s ] 03474: 1000011010 pqo16: a - b -> a[w ] 03475: 0011101111 if n/c go to pqo15 03476: 0100111010 a + b -> a[w ] 03477: 0110100000 pqo13: select rom 6 03500: 0110100000 pre11: select rom 6 03501: 0111100010 sqt15: c + 1 -> c[p ] 03502: 1110011010 sqt16: a - c -> a[w ] 03503: 0100000111 if n/c go to sqt15 03504: 0101011010 a + c -> a[w ] 03505: 0111011010 shift left a[w ] 03506: 0110010000 p - 1 -> p 03507: 1111100110 sqt17: shift right c[wp] 03510: 1011101100 if p # 0 03511: 1101000010 then go to sqt16 03512: 0100000010 0 -> c[p ] 03513: 0011001111 go to tnm12 03514: 0010011010 stacka: a exchange c[w ] 03515: 0111001000 m2 -> c 03516: 0010011010 a exchange c[w ] 03517: 1000010000 return 03520: 0101100000 atc1: select rom 5 03521: 0010111010 $sqrt: c -> a[w ] 03522: 0000111010 0 -> b[w ] 03523: 0011111010 b exchange c[w ] 03524: 0001111100 p <- 4 03525: 1101111111 go to sqt14 03526: 0000000000 nop 03527: 1111000110 atn15: shift right b[wp] 03530: 1001010010 atn16: a - 1 -> a[s ] 03531: 0101011111 if n/c go to atn15 03532: 0111110010 c + 1 -> c[s ] 03533: 0001000110 a exchange b[wp] 03534: 0110000110 a + c -> c[wp] 03535: 0001011010 a exchange b[w ] 03536: 0001111010 atn18: a -> b[w ] 03537: 1110000110 a - c -> a[wp] 03540: 0101100011 if n/c go to atn16 03541: 0100110001 jsb stacka 03542: 1110111010 shift right a[w ] 03543: 0010000110 a exchange c[wp] 03544: 0001011010 a exchange b[w ] 03545: 0111000110 shift left a[wp] 03546: 1110110001 jsb cstack 03547: 0110110010 a + 1 -> a[s ] 03550: 0110110010 a + 1 -> a[s ] 03551: 0010010111 if n/c go to atn14 03552: 0100011010 0 -> c[w ] 03553: 0000101110 0 -> b[x ] 03554: 1110111110 shift right a[ms] 03555: 1110111101 jsb div14 03556: 1001100010 c - 1 -> c[p ] 03557: 0100110001 jsb stacka 03560: 0010011010 a exchange c[w ] 03561: 0001111100 p <- 4 03562: 0011111101 atn17: jsb pqo13 03563: 1011111100 p <- 6 03564: 0011011001 jsb pmu11 03565: 0011111100 p <- 8 03566: 0011011001 jsb pmu11 03567: 0101111100 p <- 2 03570: 1000011000 load constant 8 03571: 0110111100 p <- 10 03572: 0011011001 jsb pmu11 03573: 1111100001 jsb atcd1 03574: 0011011001 jsb pmu11 03575: 0101000001 jsb atc1 03576: 0111011010 shift left a[w ] 03577: 0011011001 jsb pmu11 03600: 0011011010 b -> c[w ] 03601: 1100010001 atn19: jsb add15 03602: 0101000001 $ata31: jsb atc1 03603: 0101111010 c + c -> c[w ] 03604: 0111010100 if 1 = s cos 7 03605: 1110001011 then go to atan1 03606: 1100011100 if 0 = s correc 12 03607: 1110010000 then go to atan2 03610: 0101111010 c + c -> c[w ] 03611: 0010011010 a exchange c[w ] 03612: 0010110010 c -> a[s ] 03613: 0010011010 atan1: a exchange c[w ] 03614: 1010110010 0 - c - 1 -> c[s ] 03615: 0010100101 jsb add11 03616: 0101000001 $atan9: jsb atc1 03617: 0101111010 c + c -> c[w ] 03620: 0010011010 atan2: a exchange c[w ] 03621: 1101010100 if 1 = s rad 13 03622: 1110011000 then go to atan34 03623: 0010011010 a exchange c[w ] 03624: 1101101101 jsb div11 03625: 0101110100 delayed rom 5 03626: 0011111101 jsb $what 03627: 1101101001 jsb mpy11 03630: 1010010100 atan34: if 1 = s polar 10 03631: 1100101010 then go to polarq 03632: 0100100000 retur3: select rom 4 03633: 0110010000 sqt12: p - 1 -> p 03634: 0100111110 a + b -> a[ms] 03635: 1101110011 if n/c go to sqt18 03636: 0001110100 delayed rom 1 03637: 0010011111 go to $error 03640: 0010111010 $piq: c -> a[w ] 03641: 0101000001 jsb atc1 03642: 0101111010 c + c -> c[w ] 03643: 0101111010 c + c -> c[w ] 03644: 0101111010 c + c -> c[w ] 03645: 0100000001 jsb pre11 03646: 0101000001 jsb atc1 03647: 0110111100 p <- 10 03650: 0011011101 jsb pqo11 03651: 1111100001 jsb atcd1 03652: 0011111100 p <- 8 03653: 0011100001 jsb pqo12 03654: 0101111100 p <- 2 03655: 1000011000 load constant 8 03656: 1011111100 p <- 6 03657: 0011011101 jsb pqo11 03660: 0001111100 p <- 4 03661: 0011011101 jsb pqo11 03662: 0011011101 jsb pqo11 03663: 0001011010 a exchange b[w ] 03664: 1111111010 shift right c[w ] 03665: 1010111100 p <- 13 03666: 0101011000 load constant 5 03667: 1101010011 go to tan14 03670: 1001101010 $add1: c - 1 -> c[xs] 03671: 1001101010 c - 1 -> c[xs] 03672: 0000001110 0 -> a[x ] 03673: 1110010010 a - c -> a[s ] 03674: 1101010010 if 0 # a[s ] 03675: 1110111111 then go to add13 03676: 0110100000 select rom 6 03677: 1100110110 add13: if a >= b[m ] 03700: 1111000011 then go to add14 03701: 1010110010 0 - c - 1 -> c[s ] 03702: 0001011010 a exchange b[w ] 03703: 1000011010 add14: a - b -> a[w ] 03704: 0110100000 add15: select rom 6 03705: 1111000110 tan18: shift right b[wp] 03706: 1111000110 shift right b[wp] 03707: 1001110010 tan19: c - 1 -> c[s ] 03710: 1100010111 if n/c go to tan18 03711: 0110000110 a + c -> c[wp] 03712: 1000000110 a - b -> a[wp] 03713: 0011100110 b exchange c[wp] 03714: 0011011010 tan13: b -> c[w ] 03715: 1001010010 a - 1 -> a[s ] 03716: 1100011111 if n/c go to tan19 03717: 0010000110 a exchange c[wp] 03720: 0100110001 jsb stacka 03721: 1011010010 if 0 = b[s ] 03722: 1100000000 then go to tan15 03723: 0111011010 shift left a[w ] 03724: 0010000110 tan14: a exchange c[wp] 03725: 1110110001 jsb cstack 03726: 1111000110 shift right b[wp] 03727: 1001110010 c - 1 -> c[s ] 03730: 0011110010 b exchange c[s ] 03731: 1100110011 go to tan13 03732: 0101100000 mpy11: select rom 5 03733: 0101100000 div11: select rom 5 03734: 0100101110 sqt18: a + b -> a[x ] 03735: 1101111111 if n/c go to sqt14 03736: 1001100010 c - 1 -> c[p ] 03737: 0111110010 sqt14: c + 1 -> c[s ] 03740: 1011101100 if p # 0 03741: 1110011011 then go to sqt12 03742: 0010001110 a exchange c[x ] 03743: 0000001110 0 -> a[x ] 03744: 1101100010 if 0 # c[p ] 03745: 1111100111 then go to sqt13 03746: 1110111010 shift right a[w ] 03747: 1111111010 sqt13: shift right c[w ] 03750: 0011101110 b exchange c[x ] 03751: 0100001110 0 -> c[x ] 03752: 0111111100 p <- 12 03753: 0100011111 go to sqt17 03754: 0110001000 cstack: m2 exchange c 03755: 0111001000 m2 -> c 03756: 1000010000 return 03757: 0111100010 div14: c + 1 -> c[p ] 03760: 1000011110 div15: a - b -> a[ms] 03761: 1110111111 if n/c go to div14 03762: 0100111110 a + b -> a[ms] 03763: 0111011110 shift left a[ms] 03764: 0110010000 div16: p - 1 -> p 03765: 1011101100 if p # 0 03766: 1111110000 then go to div15 03767: 0011001111 go to tnm12 03770: 1011111100 atcd1: p <- 6 03771: 1000011000 load constant 8 03772: 0110011000 load constant 6 03773: 0101011000 load constant 5 03774: 0010011000 load constant 2 03775: 0100011000 load constant 4 03776: 1001011000 load constant 9 03777: 1000010000 return