main
Last change
on this file since ceffc47 was ceffc47, checked in by Adrien Destugues <pulkomandy@…>, 10 years ago |
Add that collection of 3rdparty source I had lying on my disk for some time...
git-svn-id: svn://localhost/thomson@51 85ae3b6b-dc8f-4344-a89d-598714f2e4e5
|
-
Property mode
set to
100644
|
File size:
2.3 KB
|
Line | |
---|
1 | *NOMBRES PREMIERS
|
---|
2 | *ASCINEWS 4 juin 1993 / ASCI (c)
|
---|
3 | *par Michel SAINT-BRIANT
|
---|
4 |
|
---|
5 | LIMITE EQU 28 jusqu'a 1 000 000
|
---|
6 | *LIMITE EQU 60 TO8sans ext.256Ko
|
---|
7 | *LIMITE EQU 124 TO8+256ko ou TO9+
|
---|
8 |
|
---|
9 | MAXI EQU 1024 jusqu'a 1 000 000
|
---|
10 | *MAXI EQU 1846 TO8sans ext.256ko
|
---|
11 | *MAXI EQU 2757 TO8+256ko ou TO9+
|
---|
12 |
|
---|
13 | ORG $8000
|
---|
14 |
|
---|
15 | *remise à zero sur toutes les banks
|
---|
16 |
|
---|
17 | PSHS A,B,DP,CC,X,Y,U
|
---|
18 | G ORCC #$50
|
---|
19 | LDU #0
|
---|
20 | LDD #$0307
|
---|
21 | STA $E7E5
|
---|
22 | STB $60CE
|
---|
23 | LDA #LIMITE
|
---|
24 | LSRA
|
---|
25 | LSRA division par 4
|
---|
26 | SUBA #3 =13 banks pour TO8
|
---|
27 | NEWBNK LDX #$A000
|
---|
28 | NULL STU ,X++
|
---|
29 | CMPX #$E000
|
---|
30 | BLO NULL
|
---|
31 | INC $E7E5
|
---|
32 | DECA
|
---|
33 | BNE NEWBNK
|
---|
34 |
|
---|
35 | *algorithme du crible d'Eratosthene
|
---|
36 |
|
---|
37 | LDD #$0301
|
---|
38 | STA $E7E5
|
---|
39 | STB >$A000 (1 pas premier)
|
---|
40 | LDU #RETENU+1
|
---|
41 | LDD #$0001
|
---|
42 | STD POINTR+1
|
---|
43 |
|
---|
44 | *nombre suivant
|
---|
45 |
|
---|
46 | NEWNBR LDD #$0C03
|
---|
47 | STA RETENU
|
---|
48 | STB $E7E5
|
---|
49 | LDD POINTR+1
|
---|
50 | ADDD #2 impair de 2 en 2
|
---|
51 | STD POINTR+1
|
---|
52 | CMPD #MAXI est-ce le dernier?
|
---|
53 | BHI FIN
|
---|
54 | ADDD POINTR+1
|
---|
55 | STD AJOUTE+2 multiples impairs
|
---|
56 |
|
---|
57 | *le nombre est-il premier?
|
---|
58 |
|
---|
59 | LSRA
|
---|
60 | RORB
|
---|
61 | LSRA
|
---|
62 | RORB
|
---|
63 | PSHS B
|
---|
64 | LSRA
|
---|
65 | RORB
|
---|
66 | LSRA
|
---|
67 | RORB
|
---|
68 | LSRA
|
---|
69 | RORB
|
---|
70 | ADDA #$A0
|
---|
71 | TFR D,Y
|
---|
72 | PULS B
|
---|
73 | LDA #1
|
---|
74 | ANDB #7
|
---|
75 | BEQ ZERO0
|
---|
76 | DECAL0 LSLA
|
---|
77 | DECB
|
---|
78 | BNE DECAL0
|
---|
79 | ZERO0 ANDA ,Y
|
---|
80 | BNE NEWNBR sinon autre nombre
|
---|
81 |
|
---|
82 | *si oui on marque tous ses multiples
|
---|
83 |
|
---|
84 | POINTR LDX #0
|
---|
85 | AJOUTE LEAX >$FFFF,X
|
---|
86 | CMPX AJOUTE+2
|
---|
87 | BHS PASRET si pas debordement
|
---|
88 | INC RETENU
|
---|
89 | LDA RETENU
|
---|
90 | CMPA #LIMITE
|
---|
91 | BHS NEWNBR
|
---|
92 | LSRA
|
---|
93 | LSRA
|
---|
94 | STA $E7E5
|
---|
95 | PASRET LDA RETENU
|
---|
96 | STA ,U
|
---|
97 | TFR X,D
|
---|
98 | LSR ,U
|
---|
99 | RORA
|
---|
100 | RORB
|
---|
101 | PSHS B
|
---|
102 | LSR ,U
|
---|
103 | RORA
|
---|
104 | RORB
|
---|
105 | LSRA
|
---|
106 | RORB
|
---|
107 | LSRA
|
---|
108 | RORB
|
---|
109 | ADDA #$A0
|
---|
110 | TFR D,Y
|
---|
111 | PULS B
|
---|
112 | LDA #1
|
---|
113 | ANDB #7
|
---|
114 | BEQ ZERO1
|
---|
115 | DECAL1 LSLA
|
---|
116 | DECB
|
---|
117 | BNE DECAL1
|
---|
118 | ZERO1 ORA ,Y
|
---|
119 | STA ,Y
|
---|
120 | BRA AJOUTE
|
---|
121 | FIN PULS A,B,CC,DP,X,Y,U,PC
|
---|
122 |
|
---|
123 |
|
---|
124 | RETENU FCB 0
|
---|
125 |
|
---|
126 | END
|
---|
Note:
See
TracBrowser
for help on using the repository browser.