Home » Personal collection » Acorn tapes » Own_Work » box02_tape03a_c15_acorn_maths.wav » M.C.PRIMES
M.C.PRIMES
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Personal collection » Acorn tapes » Own_Work » box02_tape03a_c15_acorn_maths.wav |
Filename: | M.C.PRIMES |
Read OK: | ✔ |
File size: | 040C bytes |
Load address: | FFFF0E00 |
Exec address: | FFFF8023 |
File contents
10 REM Machine code prime numbers (7/7/93) 20 HIMEM=&17FF 30 !&70=3 40 !&1800=3:!&7B=&1803 50 FOR pass=0 TO 2 STEP 2:P%=&A00 60 [OPT pass 70 .code LDA#0:STA&74:LDA#&18:STA&75 80 .product LDA#0:STA&76:STA&77:STA&78 90 .quotient STA&79:STA&7A 100 .addloop CLC:LDA&76:LDY#0:ADC(&74),Y:STA&76:BCCendadd1:INC&77:BNEendadd1:INC&78:BNEendadd1:JMPnotfactor 110 .endadd1 LDA&77:CLC:LDY#1:ADC(&74),Y:STA&77:BCCendadd2:INC&78:BNEendadd2:JMPnotfactor 120 .endadd2 INC&79:BNEendadd3:INC&7A 130 .endadd3 LDX#3:.checkloop LDA&75,X:CMP&6F,X:BCCaddloop:BNEnotfactor:DEX:BNEcheckloop 140 .notprime CLC:LDA&70:ADC#2:STA&70:BCCnext:INC&71:BNEnext:INC&72:BNEnext:INC&73:RTS:.next JMPcode 150 .notfactor LDA&7A:CMP(&74),Y:BCCprime:LDA&79:LDY#0:CMP(&74),Y:BCCprime 160 CLC:LDA&74:ADC#3:STA&74:BCCnextfactor:INC&75:.nextfactor JMPproduct 170 .prime LDY#0:LDX#3:.store LDA&70,Y:STA(&7B),Y:INY:DEX:BNEstore:LDA&7B:CLC:ADC#3:STA&7B:BCCend:INC&7C:LDA&7C:CMP#&60:BNEend:DEC&7C:.end RTS:] 180 NEXT pass 190 IF ?&73>0 THEN PRINT"END" ELSE PRINT !&70:CALLnotprime:GOTO190
> � Machine code prime numbers (7/7/93) �=&17FF !&70=3 ( !&1800=3:!&7B=&1803 2 � pass=0 � 2 � 2:P%=&A00 < [OPT pass F& .code LDA#0:STA&74:LDA#&18:STA&75 P( .product LDA#0:STA&76:STA&77:STA&78 Z .quotient STA&79:STA&7A dl .addloop CLC:LDA&76:LDY#0:ADC(&74),Y:STA&76:BCCendadd1:INC&77:BNEendadd1:INC&78:BNEendadd1:JMPnotfactor nZ .endadd1 LDA&77:CLC:LDY#1:ADC(&74),Y:STA&77:BCCendadd2:INC&78:BNEendadd2:JMPnotfactor x& .endadd2 INC&79:BNEendadd3:INC&7A �Y .endadd3 LDX#3:.checkloop LDA&75,X:CMP&6F,X:BCCaddloop:BNEnotfactor:DEX:BNEcheckloop �e .notprime CLC:LDA&70:ADC#2:STA&70:BCCnext:INC&71:BNEnext:INC&72:BNEnext:INC&73:RTS:.next JMPcode �K .notfactor LDA&7A:CMP(&74),Y:BCCprime:LDA&79:LDY#0:CMP(&74),Y:BCCprime �H CLC:LDA&74:ADC#3:STA&74:BCCnextfactor:INC&75:.nextfactor JMPproduct �� .prime LDY#0:LDX#3:.store LDA&70,Y:STA(&7B),Y:INY:DEX:BNEstore:LDA&7B:CLC:ADC#3:STA&7B:BCCend:INC&7C:LDA&7C:CMP#&60:BNEend:DEC&7C:.end RTS:] � � pass �/ � ?&73>0 � �"END" � � !&70:�notprime:�t~@ �
00000000 0d 00 0a 3e 20 f4 20 4d 61 63 68 69 6e 65 20 63 |...> . Machine c| 00000010 6f 64 65 20 70 72 69 6d 65 20 6e 75 6d 62 65 72 |ode prime number| 00000020 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |s | 00000030 20 20 20 20 20 20 28 37 2f 37 2f 39 33 29 0d 00 | (7/7/93)..| 00000040 14 0c 20 d3 3d 26 31 37 46 46 0d 00 1e 0b 20 21 |.. .=&17FF.... !| 00000050 26 37 30 3d 33 0d 00 28 18 20 21 26 31 38 30 30 |&70=3..(. !&1800| 00000060 3d 33 3a 21 26 37 42 3d 26 31 38 30 33 0d 00 32 |=3:!&7B=&1803..2| 00000070 1d 20 e3 20 70 61 73 73 3d 30 20 b8 20 32 20 88 |. . pass=0 . 2 .| 00000080 20 32 3a 50 25 3d 26 41 30 30 0d 00 3c 0e 20 5b | 2:P%=&A00..<. [| 00000090 4f 50 54 20 70 61 73 73 0d 00 46 26 20 2e 63 6f |OPT pass..F& .co| 000000a0 64 65 20 4c 44 41 23 30 3a 53 54 41 26 37 34 3a |de LDA#0:STA&74:| 000000b0 4c 44 41 23 26 31 38 3a 53 54 41 26 37 35 0d 00 |LDA#&18:STA&75..| 000000c0 50 28 20 2e 70 72 6f 64 75 63 74 20 4c 44 41 23 |P( .product LDA#| 000000d0 30 3a 53 54 41 26 37 36 3a 53 54 41 26 37 37 3a |0:STA&76:STA&77:| 000000e0 53 54 41 26 37 38 0d 00 5a 1c 20 2e 71 75 6f 74 |STA&78..Z. .quot| 000000f0 69 65 6e 74 20 53 54 41 26 37 39 3a 53 54 41 26 |ient STA&79:STA&| 00000100 37 41 0d 00 64 6c 20 2e 61 64 64 6c 6f 6f 70 20 |7A..dl .addloop | 00000110 43 4c 43 3a 4c 44 41 26 37 36 3a 4c 44 59 23 30 |CLC:LDA&76:LDY#0| 00000120 3a 41 44 43 28 26 37 34 29 2c 59 3a 53 54 41 26 |:ADC(&74),Y:STA&| 00000130 37 36 3a 42 43 43 65 6e 64 61 64 64 31 3a 49 4e |76:BCCendadd1:IN| 00000140 43 26 37 37 3a 42 4e 45 65 6e 64 61 64 64 31 3a |C&77:BNEendadd1:| 00000150 49 4e 43 26 37 38 3a 42 4e 45 65 6e 64 61 64 64 |INC&78:BNEendadd| 00000160 31 3a 4a 4d 50 6e 6f 74 66 61 63 74 6f 72 0d 00 |1:JMPnotfactor..| 00000170 6e 5a 20 2e 65 6e 64 61 64 64 31 20 4c 44 41 26 |nZ .endadd1 LDA&| 00000180 37 37 3a 43 4c 43 3a 4c 44 59 23 31 3a 41 44 43 |77:CLC:LDY#1:ADC| 00000190 28 26 37 34 29 2c 59 3a 53 54 41 26 37 37 3a 42 |(&74),Y:STA&77:B| 000001a0 43 43 65 6e 64 61 64 64 32 3a 49 4e 43 26 37 38 |CCendadd2:INC&78| 000001b0 3a 42 4e 45 65 6e 64 61 64 64 32 3a 4a 4d 50 6e |:BNEendadd2:JMPn| 000001c0 6f 74 66 61 63 74 6f 72 0d 00 78 26 20 2e 65 6e |otfactor..x& .en| 000001d0 64 61 64 64 32 20 49 4e 43 26 37 39 3a 42 4e 45 |dadd2 INC&79:BNE| 000001e0 65 6e 64 61 64 64 33 3a 49 4e 43 26 37 41 0d 00 |endadd3:INC&7A..| 000001f0 82 59 20 2e 65 6e 64 61 64 64 33 20 4c 44 58 23 |.Y .endadd3 LDX#| 00000200 33 3a 2e 63 68 65 63 6b 6c 6f 6f 70 20 4c 44 41 |3:.checkloop LDA| 00000210 26 37 35 2c 58 3a 43 4d 50 26 36 46 2c 58 3a 42 |&75,X:CMP&6F,X:B| 00000220 43 43 61 64 64 6c 6f 6f 70 3a 42 4e 45 6e 6f 74 |CCaddloop:BNEnot| 00000230 66 61 63 74 6f 72 3a 44 45 58 3a 42 4e 45 63 68 |factor:DEX:BNEch| 00000240 65 63 6b 6c 6f 6f 70 0d 00 8c 65 20 2e 6e 6f 74 |eckloop...e .not| 00000250 70 72 69 6d 65 20 43 4c 43 3a 4c 44 41 26 37 30 |prime CLC:LDA&70| 00000260 3a 41 44 43 23 32 3a 53 54 41 26 37 30 3a 42 43 |:ADC#2:STA&70:BC| 00000270 43 6e 65 78 74 3a 49 4e 43 26 37 31 3a 42 4e 45 |Cnext:INC&71:BNE| 00000280 6e 65 78 74 3a 49 4e 43 26 37 32 3a 42 4e 45 6e |next:INC&72:BNEn| 00000290 65 78 74 3a 49 4e 43 26 37 33 3a 52 54 53 3a 2e |ext:INC&73:RTS:.| 000002a0 6e 65 78 74 20 4a 4d 50 63 6f 64 65 0d 00 96 4b |next JMPcode...K| 000002b0 20 2e 6e 6f 74 66 61 63 74 6f 72 20 4c 44 41 26 | .notfactor LDA&| 000002c0 37 41 3a 43 4d 50 28 26 37 34 29 2c 59 3a 42 43 |7A:CMP(&74),Y:BC| 000002d0 43 70 72 69 6d 65 3a 4c 44 41 26 37 39 3a 4c 44 |Cprime:LDA&79:LD| 000002e0 59 23 30 3a 43 4d 50 28 26 37 34 29 2c 59 3a 42 |Y#0:CMP(&74),Y:B| 000002f0 43 43 70 72 69 6d 65 0d 00 a0 48 20 43 4c 43 3a |CCprime...H CLC:| 00000300 4c 44 41 26 37 34 3a 41 44 43 23 33 3a 53 54 41 |LDA&74:ADC#3:STA| 00000310 26 37 34 3a 42 43 43 6e 65 78 74 66 61 63 74 6f |&74:BCCnextfacto| 00000320 72 3a 49 4e 43 26 37 35 3a 2e 6e 65 78 74 66 61 |r:INC&75:.nextfa| 00000330 63 74 6f 72 20 4a 4d 50 70 72 6f 64 75 63 74 0d |ctor JMPproduct.| 00000340 00 aa 91 20 2e 70 72 69 6d 65 20 4c 44 59 23 30 |... .prime LDY#0| 00000350 3a 4c 44 58 23 33 3a 2e 73 74 6f 72 65 20 4c 44 |:LDX#3:.store LD| 00000360 41 26 37 30 2c 59 3a 53 54 41 28 26 37 42 29 2c |A&70,Y:STA(&7B),| 00000370 59 3a 49 4e 59 3a 44 45 58 3a 42 4e 45 73 74 6f |Y:INY:DEX:BNEsto| 00000380 72 65 3a 4c 44 41 26 37 42 3a 43 4c 43 3a 41 44 |re:LDA&7B:CLC:AD| 00000390 43 23 33 3a 53 54 41 26 37 42 3a 42 43 43 65 6e |C#3:STA&7B:BCCen| 000003a0 64 3a 49 4e 43 26 37 43 3a 4c 44 41 26 37 43 3a |d:INC&7C:LDA&7C:| 000003b0 43 4d 50 23 26 36 30 3a 42 4e 45 65 6e 64 3a 44 |CMP#&60:BNEend:D| 000003c0 45 43 26 37 43 3a 2e 65 6e 64 20 52 54 53 3a 5d |EC&7C:.end RTS:]| 000003d0 0d 00 b4 0b 20 ed 20 70 61 73 73 0d 00 be 2f 20 |.... . pass.../ | 000003e0 e7 20 3f 26 37 33 3e 30 20 8c 20 f1 22 45 4e 44 |. ?&73>0 . ."END| 000003f0 22 20 8b 20 f1 20 21 26 37 30 3a d6 6e 6f 74 70 |" . . !&70:.notp| 00000400 72 69 6d 65 3a e5 8d 74 7e 40 0d ff |rime:..t~@..| 0000040c