A large commit.
[pdp8.git] / sw / src / life / config.pa
CommitLineData
81e70d48
PH
1
2/********************************************************************
3/********************************************************************
4/
5/ GAME CONFIGURATION PARAMETERS
6/ CHANGE ONLY IF YOU KNOW WHAT YOU'RE DOING!
7
8/ SIZE OF THE PLAYING FIELD
9/ =========================
10
11/ THE PLAYING FIELD HAS A MAXIMUM SIZE OF 32 ROWS BY 64 COLUMNS.
12/
13/ THE DATA IS ORGANIZED AS FOLLOWS:
14/ EVERY CELL OCCUPIES ONE BIT. THE CELLS OF EACH ROW ARE STORED IN
15/ A CONTIGUOUS PIECE OF MEMORY. BUT ONLY THE LOWER 8 BITS OF A WORD
16/ ARE USED!
17/ THE WHOLE GAME BUFFER CONSISTS OF 32 ROWS OF 8 WORDS EACH. THIS
18/ LEADS TO A MEMORY FOOTPRINT OF 256 WORDS.
19/ THERE'S ONE RESTRICTION: THE LAST COLUMN IS NOT USABLE DUE TO
20/ BORDER DETECTION. THAT MEANS THAT THE MAXIMUM SIZE OF THE ACTUAL
21/ CELL ROW IS ONLY 63!!!
22/ THE FOLLOWIN PARAMETERS DEFINE THE DIMENSIONS OF THE ACTUAL
23/ SIZE OF THE CELL ARRAY. KEEP IN MIND THAT THIS WILL NOT CHANGE
24/ THE MEMORY FOOTPRINT!
25 PCOLS=76
26 PROWS=23
27
28/ CELL ADDRESS CODING:
29/
30/ 0RR RRR CCC CCC <- AS USED THROUGHOUT THE PROGRAM
31/
32/ WHERE
33/ R - ROW ADDRESS BIT
34/ C - COLUMN ADDRESS BIT
35
36/ COLUMN ADDRESS IS SPLIT INTO
37/
38/ WWW BBB
39/ WHERE
40/ W - WORD ADDRESS
41/ B - BIT IN WORD ADDRESS
42/
43/ A CELL ADDRESS CAN BE TRANSLATED INTO A MEMORY OFFSET BY SIMPLY
44/ SHIFTING THREE BITS TO THE RIGHT AND MASKING WITH 0377:
45/
46/ 000 0RR RRR CCC
47/
48/ HERE THE LOWER 3 COLUMN ADDRESS BITS WHICH SPECIFY THE BIT ADDRESS
49/ IN A WORD ARE DISCARDED.
50
51/ HAS THE FIELD LIMITS OR IS IT ENDLESS? (CURRENTLY UNSUPPORTED!)
52
53/ ENDLESS=1
54
55
56/ BORDER BEHAVIOUR FOR LIMITED FIELD
57/ 0 - OFF FIELD POSITIONS ARE ASSUMED TO BE ALWAYS DEAD
58/ 1 - OFF FIELD POSITIONS ARE ASSUMED TO BE ALWAYS ALIFE
59
60 BORDER=0
61
62/ CHARACTER CODES TO USE FOR CELL DISPLAY OUTPUT
63/ 55:-
64/ 52:*
65/ DEAD=55
66 DEAD=40
67 ALIVE=52
68