|
|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 2432 (0x980)
Types: TextFile
Names: »PI.CBL«
└─⟦1b6e6286b⟧ Bits:30003265 CIS COBOL version 4.4 til CP/M-80 (BG/0000/BL)
└─⟦this⟧ »PI.CBL«
IDENTIFICATION DIVISION.
PROGRAM-ID. PI-CALC.
AUTHOR. PF/TR.
*
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
OBJECT-COMPUTER. APPLE-II.
SPECIAL-NAMES. CONSOLE IS CRT.
*
DATA DIVISION.
WORKING-STORAGE SECTION.
*
01 SCREEN PIC X(1920).
*
01 DI-1 REDEFINES SCREEN.
02 FILLER PIC X(160).
02 DI-TX1 PIC X(160).
02 DI-TX2 PIC X(13).
02 DI-TERM PIC X(15).
02 FILLER PIC X(136).
02 DI-TX3 PIC X(6).
02 DI-PI PIC X(15).
02 FILLER PIC X(1415).
*
01 DI-2 REDEFINES SCREEN.
02 FILLER PIC X(333).
02 DI-TERM2 PIC X(15).
02 FILLER PIC X(142).
02 DI-PI2 PIC X(15).
02 FILLER PIC X(1415).
*
01 WORK-AREA.
02 PI PIC S9V9(14).
02 TERM PIC S9V9(14).
02 W PIC S9V9(14).
02 N PIC 9999.
02 N1 PIC 9999.
02 N2 PIC 9999.
02 ED PIC -9.9(12).
*
01 CONSTANTS.
02 TX1 PIC X(17) VALUE "CALCULATION OF PI".
02 TX2 PIC X(12) VALUE "NEXT TERM IS".
02 TX3 PIC X(5) VALUE "PI IS".
*
PROCEDURE DIVISION.
LA-START.
DISPLAY SPACE.
MOVE SPACE TO SCREEN.
MOVE TX1 TO DI-TX1.
MOVE TX2 TO DI-TX2.
MOVE TX3 TO DI-TX3.
MOVE 0.5 TO ED.
MOVE ED TO DI-TERM.
MOVE 3 TO ED.
MOVE ED TO DI-PI.
DISPLAY DI-1.
MOVE 0.5 TO PI.
MOVE 0.5 TO TERM.
MOVE 3 TO N.
LOOP.
MOVE N TO N2.
SUBTRACT 2 FROM N2.
MULTIPLY N2 BY N2.
MULTIPLY N2 BY TERM.
MOVE N TO N1.
SUBTRACT 1 FROM N1.
MULTIPLY N BY N1.
MULTIPLY 4 BY N1.
DIVIDE N1 INTO TERM.
IF TERM < 0.0000000000001 THEN GO TO HALT.
ADD TERM TO PI.
MOVE PI TO W.
MULTIPLY 6 BY W.
MOVE W TO ED.
MOVE ED TO DI-PI2.
MOVE TERM TO ED.
MOVE ED TO DI-TERM2.
DISPLAY DI-2.
ADD 2 TO N.
IF N < 100 GO TO LOOP.
HALT.
STOP RUN.
«eof»