source: thomson/code/3rdparty/sources4-divers/ASCINEWS/CRIBLE.ASM@ ceffc47

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
5LIMITE EQU 28 jusqu'a 1 000 000
6*LIMITE EQU 60 TO8sans ext.256Ko
7*LIMITE EQU 124 TO8+256ko ou TO9+
8
9MAXI 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
18G 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
27NEWBNK LDX #$A000
28NULL 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
46NEWNBR 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
76DECAL0 LSLA
77 DECB
78 BNE DECAL0
79ZERO0 ANDA ,Y
80 BNE NEWNBR sinon autre nombre
81
82*si oui on marque tous ses multiples
83
84POINTR LDX #0
85AJOUTE 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
95PASRET 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
115DECAL1 LSLA
116 DECB
117 BNE DECAL1
118ZERO1 ORA ,Y
119 STA ,Y
120 BRA AJOUTE
121FIN PULS A,B,CC,DP,X,Y,U,PC
122
123
124RETENU FCB 0
125
126 END
Note: See TracBrowser for help on using the repository browser.