mirror of
https://github.com/cc65/cc65.git
synced 2026-01-22 17:16:21 +00:00
Improved display list instruction definition for more comfortable use within void data definition.
This commit is contained in:
69
testcode/lib/atari/displaylist.c
Normal file
69
testcode/lib/atari/displaylist.c
Normal file
@@ -0,0 +1,69 @@
|
||||
/*
|
||||
** testprogram for ANTIC instructions as defined in "_antic.h"
|
||||
**
|
||||
** 23-Feb-2017, Christian Krueger
|
||||
*/
|
||||
|
||||
#include <conio.h>
|
||||
#include <atari.h>
|
||||
#include <peekpoke.h>
|
||||
#include <string.h>
|
||||
|
||||
// code is only for testing purposes, as screen and display list are not aligned
|
||||
// and jumps not set!
|
||||
|
||||
unsigned char DummyScreen[400];
|
||||
|
||||
void DisplayList = {
|
||||
DL_BLK1,
|
||||
DL_BLK2,
|
||||
DL_BLK3,
|
||||
DL_BLK4,
|
||||
DL_BLK5,
|
||||
DL_BLK6,
|
||||
DL_BLK7,
|
||||
DL_DLI(DL_BLK8),
|
||||
DL_LMS(DL_CHR40x8x1),
|
||||
DummyScreen,
|
||||
DL_HSCROL(DL_CHR40x10x1),
|
||||
DL_VSCROL(DL_CHR40x8x4),
|
||||
DL_CHR40x16x4,
|
||||
DL_LMS(DL_HSCROL(DL_VSCROL(DL_DLI(DL_CHR20x8x2)))),
|
||||
DummyScreen+120,
|
||||
DL_CHR20x16x2,
|
||||
DL_MAP40x8x4,
|
||||
DL_MAP80x4x2,
|
||||
DL_MAP80x4x4,
|
||||
DL_MAP160x2x2,
|
||||
DL_MAP160x1x2,
|
||||
DL_MAP160x2x4,
|
||||
DL_MAP160x1x4,
|
||||
DL_MAP320x1x1,
|
||||
DL_JVB,
|
||||
DL_JMP
|
||||
};
|
||||
|
||||
unsigned char dlend = 0;
|
||||
|
||||
|
||||
int
|
||||
main(void)
|
||||
{
|
||||
// unfortunately "sizeof()" doesn't work with void data
|
||||
// (Error: Size of data type is unknown)
|
||||
// so we trick with the adresses at front and behind...
|
||||
|
||||
int returnValue = (((unsigned int)&dlend-(unsigned int)&DisplayList) != 28); // assure only one byte per instruction!
|
||||
|
||||
clrscr();
|
||||
if (returnValue)
|
||||
cputs("Test FAILED!");
|
||||
else
|
||||
cputs("Test passed.");
|
||||
|
||||
cputs("\n\rHit any key to exit...");
|
||||
cgetc();
|
||||
|
||||
return returnValue;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user