_  __   _  _         _ _     _      _           _           
  __| |/ /_ | || |     __| (_)___| | __ (_)_ __   __| | _____  __
 / _` | '_ \| || |_   / _` | / __| |/ / | | '_ \ / _` |/ _ \ \/ /
| (_| | (_) |__   _| | (_| | \__ \   <  | | | | | (_| |  __/>  < 
 \__,_|\___/   |_|    \__,_|_|___/_|\_\ |_|_| |_|\__,_|\___/_/\_\
                                                                 
            

LOG.LOGO

FILE INFORMATION

FILENAME(S): LOG.LOGO

FILE TYPE(S): PRG

FILE SIZE: 1.1K

FIRST SEEN: 2025-11-30 21:09:48

APPEARS ON: 1 disk(s)

FILE HASH

5d9a3c80785a11d11c099bc0e9dc176fc5d160abc2c48139966cd6c475ea9666

FOUND ON DISKS (1 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
SIMONS BASIC PRO LOG.LOGO PRG DuncanTwain 33 0 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

00000000: 00 20 54 4F 20 48 45 4C  50 0D 20 50 52 20 5B 54  |. TO HELP. PR [T|
00000010: 48 45 20 50 52 4F 43 45  44 55 52 45 53 20 4C 4F  |HE PROCEDURES LO|
00000020: 47 2C 20 45 58 50 2C 20  41 4E 44 20 4C 4F 47 31  |G, EXP, AND LOG1|
00000030: 30 20 41 52 45 5D 0D 20  50 52 20 5B 41 43 43 55  |0 ARE]. PR [ACCU|
00000040: 52 41 54 45 20 54 4F 20  33 20 4F 52 20 34 20 53  |RATE TO 3 OR 4 S|
00000050: 49 47 4E 49 46 49 43 41  4E 54 20 44 49 47 49 54  |IGNIFICANT DIGIT|
00000060: 53 5D 0D 45 4E 44 0D 0D  54 4F 20 45 58 50 20 3A  |S].END..TO EXP :|
00000070: 4E 0D 20 45 58 50 41 55  58 20 3A 4E 20 2A 20 31  |N. EXPAUX :N * 1|
00000080: 2E 34 34 32 36 35 0D 20  4F 50 20 3A 4E 0D 45 4E  |.44265. OP :N.EN|
00000090: 44 0D 0D 54 4F 20 4C 4F  47 31 30 20 3A 4E 0D 20  |D..TO LOG10 :N. |
000000A0: 4F 50 20 28 20 4C 4F 47  20 3A 4E 20 29 20 2F 20  |OP ( LOG :N ) / |
000000B0: 32 2E 33 30 32 35 32 0D  45 4E 44 0D 0D 54 4F 20  |2.30252.END..TO |
000000C0: 4C 4F 47 41 55 58 32 0D  20 49 46 20 4E 4F 54 20  |LOGAUX2. IF NOT |
000000D0: 3A 4E 20 3C 20 31 20 53  54 4F 50 0D 20 4D 41 4B  |:N < 1 STOP. MAK|
000000E0: 45 20 22 4E 20 3A 4E 20  2A 20 32 0D 20 4D 41 4B  |E "N :N * 2. MAK|
000000F0: 45 20 22 4A 20 3A 4A 20  2D 20 31 0D 20 4C 4F 47  |E "J :J - 1. LOG|
00000100: 41 55 58 32 0D 45 4E 44  0D 0D 54 4F 20 4C 4F 47  |AUX2.END..TO LOG|
00000110: 41 55 58 31 0D 20 49 46  20 3A 4E 20 3C 20 32 20  |AUX1. IF :N < 2 |
00000120: 53 54 4F 50 0D 20 4D 41  4B 45 20 22 4E 20 3A 4E  |STOP. MAKE "N :N|
00000130: 20 2A 20 30 2E 35 0D 20  4D 41 4B 45 20 22 4A 20  | * 0.5. MAKE "J |
00000140: 3A 4A 20 2B 20 31 0D 20  4C 4F 47 41 55 58 31 0D  |:J + 1. LOGAUX1.|
00000150: 45 4E 44 0D 0D 54 4F 20  4C 4F 47 41 55 58 20 3A  |END..TO LOGAUX :|
00000160: 4A 20 3A 54 0D 20 49 46  20 4E 4F 54 20 3A 4E 20  |J :T. IF NOT :N |
00000170: 3E 20 30 20 50 52 20 5B  4E 45 47 20 4C 4F 47 5D  |> 0 PR [NEG LOG]|
00000180: 20 54 4F 50 4C 45 56 45  4C 0D 20 49 46 20 3A 4E  | TOPLEVEL. IF :N|
00000190: 20 3E 20 31 20 4C 4F 47  41 55 58 31 20 45 4C 53  | > 1 LOGAUX1 ELS|
000001A0: 45 20 4C 4F 47 41 55 58  32 0D 20 4D 41 4B 45 20  |E LOGAUX2. MAKE |
000001B0: 22 4E 20 28 20 3A 4E 20  2D 20 31 2E 34 31 34 32  |"N ( :N - 1.4142|
000001C0: 20 29 20 2F 20 28 20 31  2E 34 31 34 32 20 2B 20  | ) / ( 1.4142 + |
000001D0: 3A 4E 20 29 0D 20 4D 41  4B 45 20 22 54 20 3A 4E  |:N ). MAKE "T :N|
000001E0: 20 2A 20 3A 4E 0D 20 4D  41 4B 45 20 22 4E 20 30  | * :N. MAKE "N 0|
000001F0: 2E 35 20 2B 20 3A 4E 20  2A 20 28 20 32 2E 38 38  |.5 + :N * ( 2.88|
00000200: 35 33 34 20 2B 20 3A 54  20 2A 20 28 20 30 2E 39  |534 + :T * ( 0.9|
00000210: 36 31 37 39 35 20 2B 20  3A 54 20 2A 20 28 20 30  |61795 + :T * ( 0|
00000220: 2E 35 37 36 35 38 33 20  2B 20 3A 54 20 2A 20 30  |.576583 + :T * 0|
00000230: 2E 34 33 34 32 35 35 20  29 20 29 20 29 0D 20 4D  |.434255 ) ) ). M|
00000240: 41 4B 45 20 22 4E 20 30  2E 36 39 33 31 32 39 20  |AKE "N 0.693129 |
00000250: 2A 20 28 20 3A 4A 20 2B  20 3A 4E 20 29 0D 45 4E  |* ( :J + :N ).EN|
00000260: 44 0D 0D 54 4F 20 45 58  50 41 55 58 20 3A 46 0D  |D..TO EXPAUX :F.|
00000270: 20 49 46 20 3A 46 20 3C  20 30 20 4D 41 4B 45 20  | IF :F < 0 MAKE |
00000280: 22 4E 20 28 20 49 4E 54  45 47 45 52 20 3A 46 20  |"N ( INTEGER :F |
00000290: 29 20 2D 20 31 20 45 4C  53 45 20 4D 41 4B 45 20  |) - 1 ELSE MAKE |
000002A0: 22 4E 20 49 4E 54 45 47  45 52 20 3A 46 0D 20 4D  |"N INTEGER :F. M|
000002B0: 41 4B 45 20 22 46 20 3A  46 20 2D 20 3A 4E 0D 20  |AKE "F :F - :N. |
000002C0: 4D 41 4B 45 20 22 46 20  30 2E 35 20 2B 20 3A 46  |MAKE "F 0.5 + :F|
000002D0: 20 2F 20 28 20 39 2E 39  35 34 35 39 20 2B 20 30  | / ( 9.95459 + 0|
000002E0: 2E 30 33 34 36 35 36 39  20 2A 20 3A 46 20 2A 20  |.0346569 * :F * |
000002F0: 3A 46 20 2D 20 3A 46 20  2D 20 36 31 37 2E 39 37  |:F - :F - 617.97|
00000300: 32 20 2F 20 28 20 3A 46  20 2A 20 3A 46 20 2B 20  |2 / ( :F * :F + |
00000310: 38 37 2E 34 31 37 34 20  29 20 29 0D 20 4D 41 4B  |87.4174 ) ). MAK|
00000320: 45 20 22 4E 20 3A 4E 20  2B 20 31 0D 20 49 46 20  |E "N :N + 1. IF |
00000330: 3A 4E 20 3E 20 30 20 45  58 50 41 55 58 31 20 45  |:N > 0 EXPAUX1 E|
00000340: 4C 53 45 20 45 58 50 41  55 58 32 0D 20 4D 41 4B  |LSE EXPAUX2. MAK|
00000350: 45 20 22 4E 20 3A 46 0D  45 4E 44 0D 0D 54 4F 20  |E "N :F.END..TO |
00000360: 45 58 50 41 55 58 31 0D  20 49 46 20 3A 4E 20 3D  |EXPAUX1. IF :N =|
00000370: 20 30 20 53 54 4F 50 0D  20 4D 41 4B 45 20 22 4E  | 0 STOP. MAKE "N|
00000380: 20 3A 4E 20 2D 20 31 0D  20 4D 41 4B 45 20 22 46  | :N - 1. MAKE "F|
00000390: 20 3A 46 20 2A 20 32 0D  20 45 58 50 41 55 58 31  | :F * 2. EXPAUX1|
000003A0: 0D 45 4E 44 0D 0D 54 4F  20 45 58 50 41 55 58 32  |.END..TO EXPAUX2|
000003B0: 0D 20 49 46 20 3A 4E 20  3D 20 30 20 53 54 4F 50  |. IF :N = 0 STOP|
000003C0: 0D 20 4D 41 4B 45 20 22  4E 20 3A 4E 20 2B 20 31  |. MAKE "N :N + 1|
000003D0: 0D 20 4D 41 4B 45 20 22  46 20 3A 46 20 2A 20 30  |. MAKE "F :F * 0|
000003E0: 2E 35 0D 20 45 58 50 41  55 58 32 0D 45 4E 44 0D  |.5. EXPAUX2.END.|
000003F0: 0D 54 4F 20 4C 4F 47 20  3A 4E 0D 20 49 46 20 3A  |.TO LOG :N. IF :|
00000400: 4E 20 3D 20 31 20 4F 50  20 30 0D 20 4C 4F 47 41  |N = 1 OP 0. LOGA|
00000410: 55 58 20 30 20 30 0D 20  4F 50 20 3A 4E 0D 45 4E  |UX 0 0. OP :N.EN|
00000420: 44 0D 0D 4D 41 4B 45 20  22 4E 20 28 31 2E 32 36  |D..MAKE "N (1.26|
00000430: 37 35 39 45 33 30 29 0D  FF                       |759E30)..       |
. TO HELP. PR [THE PROCEDURES LOG, EXP, 
AND LOG10 ARE]. PR [ACCURATE TO 3 OR 4 S
IGNIFICANT DIGITS].END..TO EXP :N. EXPAU
X :N * 1.44265. OP :N.END..TO LOG10 :N. 
OP ( LOG :N ) / 2.30252.END..TO LOGAUX2.
 IF NOT :N < 1 STOP. MAKE "N :N * 2. MAK
E "J :J - 1. LOGAUX2.END..TO LOGAUX1. IF
 :N < 2 STOP. MAKE "N :N * 0.5. MAKE "J 
:J + 1. LOGAUX1.END..TO LOGAUX :J :T. IF
 NOT :N > 0 PR [NEG LOG] TOPLEVEL. IF :N
 > 1 LOGAUX1 ELSE LOGAUX2. MAKE "N ( :N 
- 1.4142 ) / ( 1.4142 + :N ). MAKE "T :N
 * :N. MAKE "N 0.5 + :N * ( 2.88534 + :T
 * ( 0.961795 + :T * ( 0.576583 + :T * 0
.434255 ) ) ). MAKE "N 0.693129 * ( :J +
 :N ).END..TO EXPAUX :F. IF :F < 0 MAKE 
"N ( INTEGER :F ) - 1 ELSE MAKE "N INTEG
ER :F. MAKE "F :F - :N. MAKE "F 0.5 + :F
 / ( 9.95459 + 0.0346569 * :F * :F - :F 
- 617.972 / ( :F * :F + 87.4174 ) ). MAK
E "N :N + 1. IF :N > 0 EXPAUX1 ELSE EXPA
UX2. MAKE "N :F.END..TO EXPAUX1. IF :N =
 0 STOP. MAKE "N :N - 1. MAKE "F :F * 2.
 EXPAUX1.END..TO EXPAUX2. IF :N = 0 STOP
. MAKE "N :N + 1. MAKE "F :F * 0.5. EXPA
UX2.END..TO LOG :N. IF :N = 1 OP 0. LOGA
UX 0 0. OP :N.END..MAKE "N (1.26759E30).
.
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL