Anonymous user
Category:FOCAL: Difference between revisions
no edit summary
(Added language template) |
No edit summary |
||
(6 intermediate revisions by 2 users not shown) | |||
Line 1:
{{language}}
FOCAL
Like JOSS and BASIC, FOCAL was not intended to be used for developing large applications; the manual said it was "designed to help scientists, engineers, and students solve numerical problems." The design goals thus emphasize simplicity and accessibility.
FOCAL could also be used satisfactorily on quite small computers: its interpreter runs on a PDP-8 with only 4k words (6k bytes) of storage and still leaves some space for user programs. During startup, the FOCAL interpreter asks if the built-in sine, cosine, log, exp, and arctangent functions should be kept in memory. If the user answers NO to one (or both) of these questions, memory occupied by these functions is freed and can be used for FOCAL programs instead.
==FOCAL commands==
To conserve memory, FOCAL commands are often abbreviated by using their first character only, e.g. "T" for TYPE or "I" for IF.
The first two letters of variable names must be unique. E.g. variables named TEST1 and TEST2 would both refer to the same variable "TE" as far as FOCAL is concerned.
Function names start with the letter F, e.g. FSIN() and FCOS(). Appendix D of the FOCAL manual shows how to compute trigonometric functions that are not directly available.
FOCAL always computes a maximum of six significant digits, although more digits can be displayed depending on the output format: "%x.y", x=total digits, y=digits after decimal point.
A program is started with the go (or simply "g") command.
{| class="wikitable"
! Command !! Abbreviation !! Function
Line 24 ⟶ 33:
| GO/GOTO || G || Start a program, optionally at a certain line
|-
| IF || I || IF statement, go to the 1st/2nd/3rd line given,
|-
| LOCATIONS || L || Show FOCAL memory usage
Line 42 ⟶ 51:
==Running FOCAL in a PDP emulator==
There is a tiny [https://jeelabs.org/2016/09/tfoc---pdp-8-in-256-lines-of-c/ PDP-8 emulator in C] which also includes a binary dump of the FOCAL-69
To exit the emulator, use Ctrl-Backslash. The emulator will quit and dump the RAM zero page in octal.
Line 48 ⟶ 57:
Compiling and running the emulator on Linux (should also work on macOS):
<pre>
$ git clone https://
$ cd embello/explore/1638-pdp8
$ make
|