ÇÅÏÐÁÉÎÔ ÆÉÌÅ ÆÏÒÍÁÔ ÃARDS AND COLOR ON THE C64 (BACKGROUND). ÔHE GRAPHICS MODE USED BY ÇÅÏÓ ON THE C64 SUPPORTS 320 BY 200 RESOLUTION, ORGANIZED AS A 40 BY 25 MATRIX OF 8 BY 8 PIXEL CARDS. ÔHESE CARDS ARE STORED IN THE FRAME BUFFER FROM LEFT TO RIGHT, TOP TO BOTTOM. ÔHE DIAGRAM BELOW BETTER ILLUSTRATES THIS FORMAT. ÏÎ ÓÃÒÅÅÎ: CARD0 CARD1 CARD2 ... CARD39 CARD40 CARD41 CARD42 ... CARD79 . . CARD960 CARD961 CARD962 ... CARD999 ÅÁÃÈ ÃÁÒÄ: BYTE0 BYTE1 ... BYTE6 BYTE7 ÅACH BYTE CONTAINS 8 BITS, 1 PER PIXEL ON THE SCREEN. ÔHESE EIGHT BYTES MAKE UP AN 8 BY 8 PIXEL IMAGE. ÉÎ ÆÒÁÍÅ ÂÕÆÆÅÒ: ÃÁÒÄ0 ÃÁÒÄ1 ÃÁÒÄ2 ÃÁÒÄ ÒÏ× 0 -> BYTE0 BYTE8 BYTE 16 ... ... ... BYTE7 BYTE15 BYTE23 ÃÁÒÄ40 ÃÁÒÄ41 ÃÁÒÄ42 ÃÁÒÄ ÒÏ× 1 -> BYTE320 BYTE328 BYTE336 ... ... ... BYTE327 BYTE335 BYTE443 ÔHIS GRAPHICS MODE SUPPORTS 16 COLORS, BUT THE COLOR RESOLUTION IS LIMITED TO CARD BOUNDARIES. ÔHAT IS, TWO COLORS CAN BE SPECIFIED FOR EACH CARD ON THE SCREEN -- A BACKGROUND COLOR (BITS SET TO 0 IN THE CARD) AND A FOREGROUND COLOR (BITS SET TO 1 IN THE CARD). ÔHIS COLOR INFORMATION IS STORED SEPARATELY FROM THE FRAME BUFFER, ONE BYTE PER CARD. ÔHE HIGH 4 BITS IN THE BYTE SPECIFY ONE OF 16 COLORS TO BE USED FOR THE FOREGROUND, AND THE LOW FOUR BITS SPECIFY THE BACKGROUND COLOR. ÇÅÏÐÁÉÎÔ ÆÉÌÅ ÆÏÒÍÁÔ -------- ---- ------ Á GEOÐAINT DATA FILE IS A ÖÌÉÒ FILE WITH 45 RECORDS. (ÆOR INFO ON WHAT A ÖÌÉÒ FILE IS, SEE THE ÇÅÏÓ ÐROGRAMMER'S ÒEFERENCE ÍANUAL). ÅACH RECORD HOLDS THE IMAGE AND COLOR DATA FOR AN AREA OF THE PAGE 16 LINES HIGH BY 640 PIXELS WIDE. Á GEOÐAINT DOCUMENT IS 720 LINES HIGH BY 640 PIXELS WIDE, SO EACH RECORD REPRESENTS TWO CARD ROWS OF THE ENTIRE DOCUMENT. ÔHE IMAGE DATA IS STORED IN THE SAME CARD FORMAT USED BY THE 320 BY 200 GRAPHICS MODE ON THE C64, DISCUSSED ABOVE. ×HEN A GEOÐAINT FILE IS CREATED, ALL 45 RECORDS ARE MARKED AS USED IN THE INDEX TABLE OF THE ÖÌÉÒ FILE. ÔHE TRACK AND SECTOR POINTERS ARE SET TO $00,$ÆÆ TO INDICATE AN EMPTY RECORD; INSTEAD OF $00,$00 WHICH INDICATES AN UNUSED RECORD. ÔHE 45 RECORDS ARE ASSIGNED TO ALTERNATE CARD ROWS, FROM TOP TO BOTTOM ON THE DOCUMENT. ÔHAT IS, RECORD 0 CONTAINS THE IMAGE AND COLOR DATA FOR CARD ROWS 0 AND 1; RECORD 1 FOR CARD ROWS 2 AND 3, ETC. ÔHE IMAGE AND COLOR INFO IS COMPACTED BEFORE BEING WRITTEN TO THE RECORD. ÔHE PRE-COMPACTED LAYOUT OF THE DATA IS: #BYTES START/END ($) DESCRIPTION ------ ------------- ----------- 640 000 - 27Æ IMAGE DATA FOR 1ST CARD ROW 640 280 - 4ÆÆ IMAGE DATA FOR 2ND CARD ROW 8 500 - 507 ALL ZEROES. 80 508 - 557 COLOR INFO FOR FIRST CARD ROW 80 558 - 5Á7 COLOR INFO FOR 2ND CARD ROW ÔHE EIGHT BYTES OF ZERO WERE INCLUDED IN GEOÐAINT 1.0 FILES THROUGH AN OVERSIGHT, AND RETAINED AFTER THAT FOR COMPATABILITY. ÃÏÍÐÁÃÔÉÏÎ ÆÏÒÍÁÔ ---------- ------ ÔHE COMPACTION ROUTINE OPERATES ON THE ENTIRE 1448 BYTES AT ONCE, RESULTING IN A STRING OF BYTES IN THE FOLLOWING FORMAT. --------------------- ! COMMAND/COUNT ! DATA ! ! BYTE ! BYTE ! --------------------- ...... ×HERE THERE IS ONE COMMAND/COUNT BYTE, AND FROM 1 TO 63 DATA BYTES. ÔHIS PATTERN IS REPEATED UNTIL ALL 1448 BYTES ARE REPRESENTED. ÔHE COMMAND/COUNT BYTE IS INTERPRETED AS FOLLOWS: HEX VALUE INTERPRETATION --------- -------------- $00 ÅND OF RECORD $01 - $3Æ ÕSE COMMAND BYTE AS ÃÏÕÎÔ. ÔHE FOLLOWING ÃÏÕÎÔ DATA BYTES ARE UNCOMPACTED. $40 ÉNVALID COMMAND BYTE. $41 - $7Æ ÓUBTRACT $40 FROM THE COMMAND BYTE, USE THE RESULT AS ÃÏÕÎÔ. ÔHE NEXT 8 DATA BYTES COMPRISE A CARD TO REPEAT ÃÏÕÎÔ TIMES. ÔHESE 8 DATA BYTES EXPAND TO 8*ÃÏÕÎÔ IMAGE BYTES. $80 ÉNVALID COMMAND BYTE. $81 - $ÆÆ ÓUBTRACT $80 FROM THE COMMAND BYTE, USE THE RESULT AS ÃÏÕÎÔ. ÒEPEAT THE SINGLE DATA BYTE THAT FOLLOWS ÃÏÕÎÔ TIMES. ÔHIS SINGLE BYTE EXPANDS TO ÃÏÕÎÔ IMAGE BYTES.