A large commit.
[pdp8.git] / sw / src / life / config.pa
diff --git a/sw/src/life/config.pa b/sw/src/life/config.pa
new file mode 100644 (file)
index 0000000..b147841
--- /dev/null
@@ -0,0 +1,68 @@
+
+/********************************************************************
+/********************************************************************
+/
+/ GAME CONFIGURATION PARAMETERS
+/ CHANGE ONLY IF YOU KNOW WHAT YOU'RE DOING!
+
+/ SIZE OF THE PLAYING FIELD
+/ =========================
+
+/ THE PLAYING FIELD HAS A MAXIMUM SIZE OF 32 ROWS BY 64 COLUMNS.
+/ 
+/ THE DATA IS ORGANIZED AS FOLLOWS:
+/ EVERY CELL OCCUPIES ONE BIT. THE CELLS OF EACH ROW ARE STORED IN
+/ A CONTIGUOUS PIECE OF MEMORY. BUT ONLY THE LOWER 8 BITS OF A WORD
+/ ARE USED!
+/ THE WHOLE GAME BUFFER CONSISTS OF 32 ROWS OF 8 WORDS EACH. THIS
+/ LEADS TO A MEMORY FOOTPRINT OF 256 WORDS.
+/ THERE'S ONE RESTRICTION: THE LAST COLUMN IS NOT USABLE DUE TO
+/ BORDER DETECTION. THAT MEANS THAT THE MAXIMUM SIZE OF THE ACTUAL
+/ CELL ROW IS ONLY 63!!!
+/ THE FOLLOWIN PARAMETERS DEFINE THE DIMENSIONS OF THE ACTUAL
+/ SIZE OF THE CELL ARRAY. KEEP IN MIND THAT THIS WILL NOT CHANGE
+/ THE MEMORY FOOTPRINT!
+       PCOLS=76
+       PROWS=23
+
+/ CELL ADDRESS CODING:
+/
+/      0RR RRR CCC CCC  <- AS USED THROUGHOUT THE PROGRAM
+/
+/      WHERE
+/              R - ROW ADDRESS BIT
+/              C - COLUMN ADDRESS BIT
+
+/ COLUMN ADDRESS IS SPLIT INTO 
+/
+/              WWW BBB 
+/      WHERE
+/              W - WORD ADDRESS
+/              B - BIT IN WORD ADDRESS
+/
+/ A CELL ADDRESS CAN BE TRANSLATED INTO A MEMORY OFFSET BY SIMPLY
+/ SHIFTING THREE BITS TO THE RIGHT AND MASKING WITH 0377:
+/
+/      000 0RR RRR CCC 
+/
+/ HERE THE LOWER 3 COLUMN ADDRESS BITS WHICH SPECIFY THE BIT ADDRESS
+/ IN A WORD ARE DISCARDED.
+
+/ HAS THE FIELD LIMITS OR IS IT ENDLESS? (CURRENTLY UNSUPPORTED!)
+
+/      ENDLESS=1
+
+
+/ BORDER BEHAVIOUR FOR LIMITED FIELD
+/ 0 - OFF FIELD POSITIONS ARE ASSUMED TO BE ALWAYS DEAD
+/ 1 - OFF FIELD POSITIONS ARE ASSUMED TO BE ALWAYS ALIFE
+
+       BORDER=0
+
+/ CHARACTER CODES TO USE FOR CELL DISPLAY OUTPUT
+/ 55:-
+/ 52:*
+/      DEAD=55
+       DEAD=40
+       ALIVE=52
+