--- /dev/null
+\r
+NUMERI AUREI: Somma divisori(x)=x\r
+ Fino a 0xFFFF sono 6/28/496/8128\r
+\r
+static unsigned int result[16]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 };\r
+ -> { 6, 28, 496, 8128 ... }\r
+\r
+void main(void)\r
+{\r
+unsigned int res_pos=0,tested_num=0,divisor=0;\r
+unsigned long int acc=0;\r
+\r
+for(tested_num=1;tested_num<2;tested_num++)\r
+ {\r
+ for(acc=0,divisor=1;divisor<tested_num;divisor++)\r
+ {\r
+ if(!(tested_num%divisor))\r
+ { acc+=divisor; }\r
+ }\r
+ \r
+ if(acc==tested_num)\r
+ { result[res_pos++]=tested_num; }\r
+ }\r
+}\r
+\r
+*************************************\r
+\r
+A: 0x00 HX: 0x1A00 PC: 0x18BE SP: 0x016F Z:1 (I:1)\r
+A: 0x00 HX: num PC: 0x1950 SP: 0x016F Z:1 (I:1)\r
+\r
+T(n) = 80+65*sum[i=1,n]{sum[k=1,i]{k}}\r
+cioe'\r
+T(n) = 80+(65*n*(n+1)*(n+2))/6\r
+\r
+ n clocki clockf clocktot T(n)\r
+1000: 543 -> 156.302.031 | 156.301.488 | 10.865.855.080\r
+ 900: 543 -> 121.788.732 | 121.788.189 | 7.923.844.580\r
+ 800: 543 -> 91.818.647 | 91.818.104 | 5.567.484.080\r
+ 700: 543 -> 66.162.370 | 66.161.827 | 3.731.773.580\r
+ 600: 543 -> 44.814.748 | 44.814.205 | 2.351.713.080\r
+ 500: 543 -> 27.866.608 | 27.866.065 | 1.362.302.580\r
+*497: 543 -> 27.430.121 | 27.429.578 | 1.337.976.265\r
+ 496: 543 -> 27.284.097 | 27.283.554 | 1.329.932.320\r
+ 400: 543 -> 15.384.865 | 15.384.322 | 698.542.080\r
+ 300: 543 -> 7.308.541 | 7.307.998 | 295.431.580\r
+ 200: 543 -> 3.178.553 | 3.178.010 | 87.971.080\r
+ 100: 543 -> 826.875 | 826.332 | 11.160.580\r
+ 50: 543 -> 218.618 | 218.075 | 1.436.580 \r
+ *29: 543 -> 77.875 | 77.332 | 292.255\r
+ 28: 543 -> 72.452 | 71.909 | 263.980\r
+ 20: 543 -> 38.104 | 37.561 | 100.180\r
+ 10: 543 -> 10.307 | 9.764 | 14.380\r
+ *7: 543 -> 5.411 | 4.868 | 5.540\r
+ 6: 543 -> 3.778 | 3.235 | 3.720\r
+ 5: 543 -> 2.849 | 2.306 | 2.355\r
+ 4: 543 -> 1.813 | 1.270 | 1.380\r
+ 3: 543 -> 1.182 | 639 | 730\r
+ 2: 543 -> 700 | 157 | 340\r
+ 1: 543 -> 623 | 80 | 145\r
+\r
+quindi tempo di esecuzione e T(n), cioe' o(n^3)\r
+\r
+*********************************************\r
+\r
+static unsigned int result[16]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 };\r
+word result[16] = 0x0100\r
+\r
+void main(void)\r
+{\r
+unsigned int res_pos=0,tested_num=0,divisor=0;\r
+unsigned long int acc=0;\r
+\r
+18BE A7 F6 AIS #-10 <----------- INGRESSO MAIN\r
+18C0 95 TSX\r
+18C1 6F 09 CLR 9,X\r
+18C3 6F 08 CLR 8,X\r
+18C5 6F 01 CLR 1,X\r
+18C7 7F CLR ,X\r
+18C8 6F 03 CLR 3,X\r
+18CA 6F 02 CLR 2,X\r
+18CC CD 19 51 JSR 0x1951 ; 0x1951\r
+\r
+for(tested_num=1;tested_num<2;tested_num++)\r
+ {\r
+\r
+18CF 9E FF 01 STHX 1,SP\r
+18D2 20 72 BRA *+116 ; 0x1946\r
+18D4 AD 7B BSR *+125 ; 0x1951\r
+18D6 9E FF 03 STHX 3,SP\r
+\r
+ for(acc=0,divisor=1;divisor<tested_num;divisor++)\r
+ {\r
+ if(!(tested_num%divisor))\r
+ { acc+=divisor; }\r
+ }\r
+\r
+18D9 20 3B BRA *+61 ; 0x1916\r
+18DB 9E FE 01 LDHX 1,SP\r
+18DE 89 PSHX\r
+18DF 8B PSHH\r
+18E0 9E FE 05 LDHX 5,SP\r
+18E3 CD 1A 1A JSR 0x1A1A ; 0x1A1A\r
+18E6 A7 02 AIS #2\r
+18E8 65 00 00 CPHX #0x0000\r
+18EB 26 1F BNE *+33 ; 0x190C\r
+18ED 95 TSX\r
+18EE E6 03 LDA 3,X\r
+18F0 EE 02 LDX 2,X\r
+18F2 87 PSHA\r
+18F3 89 PSHX\r
+18F4 4F CLRA\r
+18F5 87 PSHA\r
+18F6 87 PSHA\r
+18F7 95 TSX\r
+18F8 89 PSHX\r
+19F9 8B PSHH\r
+18FA AF 08 AIX #8\r
+18FC 89 PSHX\r
+18FD 8B PSHH\r
+18FE 9E FE 03 LDHX 3,SP\r
+1901 CD 1A 2A JSR 0x1A2A ; 0x1A2A\r
+1904 95 TSX\r
+1905 AF 0E AIX #14\r
+1907 CD 1A 30 JSR 0x1A30 ; 0x1A30\r
+190A A7 06 AIS #6\r
+190C C7 18 00 STA 0x1800 ; <----------- WATCHDOG\r
+190F 95 TSX\r
+1910 6C 03 INC 3,X\r
+1912 26 02 BNE *+4 ; 0x1916\r
+1914 6C 02 INC 2,X\r
+1916 9E FE 01 LDHX 1,SP\r
+1919 9E F3 03 CPHX 3,SP\r
+191C 22 BD BHI *-65 ; 0x18DB\r
+\r
+ if(acc==tested_num)\r
+ { result[res_pos++]=tested_num; }\r
+ }\r
+}\r
+\r
+191E 9E F3 07 CPHX 7,SP\r
+1921 26 1D BNE *+31 ; 0x1940\r
+1923 9E FE 05 LDHX 5,SP\r
+1926 26 18 BNE *+26 ; 0x1940\r
+1928 9E FE 09 LDHX 9,SP\r
+192B 89 PSHX\r
+192C AF 01 AIX #1\r
+192E 9E FF 0A STHX 10,SP\r
+1931 88 PULX\r
+1932 58 LSLX\r
+1933 9E E6 02 LDA 2,SP\r
+1936 8C CLRH\r
+1937 D7 01 01 STA 257,X\r
+193A 9E E6 01 LDA 1,SP\r
+193D D7 01 00 STA 256,X\r
+1940 95 TSX\r
+1941 6C 01 INC 1,X\r
+1943 26 01 BNE *+3 ; 0x1946\r
+1945 7C INC ,X\r
+1946 9E FE 01 LDHX 1,SP\r
+1949 65 00 01 CPHX #0x0001 <----------------- END_NUM\r
+194C 25 86 BCS *-120 ; 0x18D4\r
+194E A7 0A AIS #10\r
+1950 81 RTS <------------- USCITA MAIN\r
+\r
+1951 5F CLRX\r
+1952 8C CLRH\r
+1953 9E FF 09 STHX 9,SP\r
+1956 8C CLRH\r
+1957 9E FF 07 STHX 7,SP\r
+195A 5C INCX\r
+195B 81 RTS <----------- FINE MAIN\r
+\r
+static void _PUSH_ARGS_L(void) { ... }\r
+195C E6 03 LDA 3,X\r
+195E 87 PSHA\r
+195F E6 02 LDA 2,X\r
+1961 87 PSHA\r
+1962 9E AE LDHX ,X\r
+1964 89 PSHX\r
+1965 8B PSHH\r
+1966 9E FE 07 LDHX 7,SP\r
+1969 E6 03 LDA 3,X\r
+196B 9E E7 11 STA 17,SP\r
+196E E6 02 LDA 2,X\r
+1970 9E E7 10 STA 16,SP\r
+1973 9E AE LDHX ,X\r
+1975 9E FF 0E STHX 14,SP\r
+1978 9E FE 05 LDHX 5,SP\r
+197B FC JMP ,X\r
+\r
+static void _ENTER_BINARY_L(void) { ... }\r
+197C 87 PSHA\r
+197D 89 PSHX\r
+197E 8B PSHH\r
+197F 89 PSHX\r
+1980 8B PSHH\r
+1981 9E FE 06 LDHX 6,SP\r
+1984 89 PSHX\r
+1985 8B PSHH\r
+1986 9E FE 0A LDHX 10,SP\r
+1989 9E FF 08 STHX 8,SP\r
+198C 9E FE 0C LDHX 12,SP\r
+198F CC 19 5C JMP 0x195C\r
+\r
+static void _IDIVMOD (char dummy_sgn, int j, int dummy, int i, ...) { ... }\r
+1992 9E 6D 04 TST 4,SP\r
+1995 26 1A BNE *+28 ; 0x19B1\r
+1997 95 TSX\r
+1998 E6 07 LDA 7,X\r
+199A EE 04 LDX 4,X\r
+199C 8C CLRH\r
+199D 52 DIV\r
+199E 9E E7 04 STA 4,SP\r
+19A1 9E E6 09 LDA 9,SP\r
+19A4 52 DIV\r
+19A5 9E E7 05 STA 5,SP\r
+19A8 9E 6F 08 CLR 8,SP\r
+19AB 8B PSHH\r
+19AC 86 PULA\r
+19AD 9E E7 09 STA 9,SP\r
+19B0 81 RTS\r
+19B1 4F CLRA\r
+19B2 87 PSHA\r
+19B3 AE 08 LDX #0x08\r
+19B5 98 CLC\r
+19B6 9E 69 0A ROL 10,SP\r
+19B9 9E 69 09 ROL 9,SP\r
+19BC 9E 69 01 ROL 1,SP\r
+19BF 9E E6 05 LDA 5,SP\r
+19C2 9E E1 01 CMP 1,SP\r
+19C5 22 1D BHI *+31 ; 0x19E4\r
+19C7 26 08 BNE *+10 ; 0x19D1\r
+19C9 9E E6 0E LDA 6,SP\r
+19CC 9E E1 09 CMP 9,SP\r
+19CF 22 13 BHI *+21 ; 0x19E4\r
+19D1 9E E6 09 LDA 9,SP\r
+19D4 9E E0 06 SUB 6,SP\r
+19D7 9E E7 09 STA 9,SP\r
+19DA 9E E6 01 LDA 1,SP\r
+19DD 9E E2 05 SBC 5,SP\r
+19E0 9E E7 01 STA 1,SP\r
+19E3 99 SEC\r
+19E4 5B D0 DBNZX *-46 ; 0x19B6\r
+19E6 9E E6 0A LDA 10,SP\r
+19E9 49 ROLA\r
+19EA 9E E7 06 STA 6,SP\r
+19ED 9E E6 09 LDA 9,SP\r
+19F0 9E E7 0A STA 10,SP\r
+19F3 86 PULA\r
+19F4 9E E7 08 STA 8,SP\r
+19F7 9E 6F 04 CLR 4,SP\r
+19FA 81 RTS\r
+\r
+static void _LADD_k_is_k_plus_j(_PARAM_BINARY_L) { ... }\r
+19FB 95 TSX\r
+19FC E6 12 LDA 18,X\r
+19FE EB 05 ADD 5,X\r
+1A00 E7 12 STA 18,X\r
+1A02 E6 11 LDA 17,X\r
+1A04 E9 04 ADC 4,X\r
+1A06 E7 11 STA 17,X\r
+1A08 E6 10 LDA 16,X\r
+1A0A E9 03 ADC 3,X\r
+1A0C E7 10 STA 16,X\r
+1A0E E6 0F LDA 15,X\r
+1A10 E9 02 ADC 2,X\r
+1A12 E7 0F STA 15,X\r
+1A14 A7 0A AIS #10\r
+1A16 8A PULH\r
+1A17 88 PULX\r
+1A18 86 PULA\r
+1A19 81 RTS\r
+\r
+void _IMODU_STAR08(int i, ...) { ... }\r
+1A1A A7 FE AIS #-2\r
+1A1C 9E FF 01 STHX 1,SP\r
+1A1F 87 PSHA\r
+1A20 CD 19 92 JSR 0x1992 ; 0x1992\r
+1A23 86 PULA\r
+1A24 A7 02 AIS #2\r
+1A26 9E FE 03 LDHX 3,SP\r
+1A29 81 RTS\r
+\r
+void _LADD(void) { ... }\r
+1A2A CD 19 7C JSR 0x197C ; 0x197C\r
+1A2D CD 19 FB JSR 0x19FB ; 0x19FB\r
+\r
+void _POP32(void) { ... }\r
+1A30 87 PSHA\r
+1A31 9E E6 04 LDA 4,SP\r
+1A34 F7 STA ,X\r
+1A35 9E E6 05 LDA 5,SP\r
+1A38 E7 01 STA 1,X\r
+1A3A 9E E6 06 LDA 6,SP\r
+1A3D E7 02 STA 2,X\r
+1A3F 9E E6 07 LDA 7,SP\r
+1A42 E7 03 STA 3,X\r
+1A44 86 PULA\r
+1A45 8A PULH\r
+1A46 88 PULX\r
+1A47 A7 04 AIS #4\r
+1A49 FC JMP ,X
\ No newline at end of file