home *** CD-ROM | disk | FTP | other *** search
- TITLE 'DEMOPNUM - FIXED POINT PRIME NUMBER BENCHMARK'
- *
- * AUTHOR. DON HIGGINS.
- * DATE. 04/27/85.
- * REMARKS. PC/370 PRIME NUMBER DEMO PROGRAM.
- *
- * THIS PROGRAM USES PREVIOUSLY FOUND PRIMES AS TRIAL DIVISORS
- * TO FIND THE FIRST 100 PRIME NUMBERS AND PRINT THEM.
- *
- * THE FOLLOWING BASIC PROGRAM WAS RUN USING INTERPRETATIVE BASIC
- * FROM MICROSOFT WITH THE FOLLOWING RESULTS:
- *
- * 1. IT TOOK 60 SECONDS ON TANDY MODEL II 4MHZ Z80 SYSTEM:
- * 2. iT TOOK 67 SECONDS ON IBM PC 4.77 MHZ 8088 SYSTEM.
- *
- * DEFINT A-Z
- * MT=100
- * DIM T(MT)
- * NT=1
- * T(NT)=1
- * PRINT NT,T(NT)
- * NT=2
- * T(NT)=2
- * PRINT NT,T(NT)
- * NT=3
- * T(NT)=3
- * PRINT NT,T(NT)
- * N=3
- * 150 N=N+2
- * FOR I=3 TO NT
- * J=N/T(I)
- * IF J*T(I)=N GOTO 150
- * NEXT I
- * NT=NT+1
- * T(NT)=N
- * PRINT NT,N
- * IF NT<MT GOTO 150
- * STOP
- * END
- *
- *
- * THE 370 ASSEMBLER BENCHMARK RESULTS ARE AS FOLLOWS:
- *
- * 1. ON A 4 MHZ Z80 CP/M VERSION OF PC/370, THIS PROGRAM RAN
- * IN 25 SECONDS.
- *
- * 2. ON A 4.77 MHZ 8086 MSDOS VERSION OF PC/370, THIS PROGRAM
- * RNA IN 25 SECONDS.
- *
- *
- *
- DEMOPNUM CSECT
- LR R12,R15
- USING DEMOPNUM,R12
- L R15,=V(PET)
- BALR R14,R15
- LA R2,=C' 1 1$'
- SVC 209
- LA R2,=C' 2 2$'
- SVC 209
- LA R2,=C' 3 3$'
- SVC 209 PRINT FIRST 3 PRIMES TO INITIALIZE
- LA MT,100 MAXIMUM NUMBER OF PRIMES TO PRINT
- LA NT,3 CURRENT NUMBER OF PRIMES IN TABLE
- LA N,3 CURRENT NUMBER TO TEST FOR PRIME
- L150 EQU *
- LA N,2(N) NEXT ODD NUMBER
- LA I,3 REST TABLE INDEX TO START WITH 3
- L160 EQU *
- LA I4,0(I,I)
- LA I4,0(I4,I4)
- L TI,T-4(I4) TI=T(I) LOAD CURRENT TABLE ENTRY
- LR J,N
- SR J-1,J-1
- DR J-1,TI J = N / T(I)
- MR J-1,TI J = J * T(I)
- CLR J,N IF J = N THEN NOT PRIME
- BE L150
- LA I,1(I) NEXT TABLE ENTRY INDEX
- CLR I,NT IF NORE ENTRIES, THEN TRY THEM
- BNH L160
- LA NT,1(NT)
- LA I4,0(NT,NT)
- LA I4,0(I4,I4)
- ST N,T-4(I4) T(NT)=N STORE NEW PRIME IN TABLE
- CVD N,PN
- CVD NT,PNT
- MVC DNT,=X'40202020'
- ED DNT,PNT+6 EDIT PRIME COUNTER
- MVC DN,=X'40202020'
- ED DN,PN+6 EDIT PRIME NUMBER
- LA R2,PLINE
- SVC 209 PRINT NEW PRIME
- CLR NT,MT
- BL L150
- L R15,=V(PET)
- BALR R14,R15 PRINT BENCHMARK STATISTICS
- SVC 0
- R0 EQU 0
- R1 EQU 1
- J EQU 1 0-1 USED FOR D AND M WORK
- R2 EQU 2 SVC ARG. REG.
- N EQU 3 CURRENT TRIAL PRIME
- NT EQU 4 SEQ. NUMBER OF PRIMES
- MT EQU 5 MAX PRIMES IN TABLE
- I EQU 6 TABLE SUBSCRIPT
- I4 EQU 7 I * 4 TO INDEX FULL WORD ENTRIES
- TI EQU 8 DIVISOR HOLD
- R12 EQU 12 BASE
- R14 EQU 14 LINK
- R15 EQU 15 ENTRY
- PWORK DC D'0' PACKED DECIMAL CONVERT WORK AREA
- PLINE EQU * PRINT LINE
- DNT DC CL4' '
- DN DC CL4' '
- DC C'$'
- PNT DC PL8'0' PRIME COUNTER
- PN DC PL8'0' PRIME NUMBER
- T DC F'1,2,3' TABLE OF PRIMES
- DS 97F
- END DEMOPNUM