X-Git-Url: http://gitweb.hachti.de/?a=blobdiff_plain;f=sw%2Fsrc%2Flife%2Fconfig.pa;fp=sw%2Fsrc%2Flife%2Fconfig.pa;h=b147841c5c93feb47a6ae6f44b2b2ff6dc26fa8b;hb=81e70d488b71bf995c459ca3a02c025993460ffa;hp=0000000000000000000000000000000000000000;hpb=07ec0278333ed187ac242dedcff13c56cf1b0b91;p=pdp8.git diff --git a/sw/src/life/config.pa b/sw/src/life/config.pa new file mode 100644 index 0000000..b147841 --- /dev/null +++ b/sw/src/life/config.pa @@ -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 +