16 unsigned char C: 1; // Carry flag
17 unsigned char V: 1; // oVerflow flag
18 unsigned char Z: 1; // Zero flag
19 unsigned char N: 1; // Negative flag
20 unsigned char I: 1; // IRQ flag
21 unsigned char H: 1; // Half carry flag
22 unsigned char F: 1; // Fast IRQ flag
23 unsigned char E: 1; // Entire flag
25 unsigned char byte; } cc;
29 unsigned char b0: 1; unsigned char b1: 1; unsigned char b2: 1;
30 unsigned char b3: 1; unsigned char b4: 1; unsigned char b5: 1;
31 unsigned char b6: 1; unsigned char b7: 1;
33 unsigned char byte; };
36 struct { unsigned char lo: 8; unsigned char hi: 8; } b;
37 unsigned int word; } hilo;
40 int main(int, char * [])
42 for(int i=0; i<256; i++)
45 cout << (cc.flag.E ? "1" : ".") << " " << (cc.flag.F ? "1" : ".") << " "
46 << (cc.flag.H ? "1" : ".") << " " << (cc.flag.I ? "1" : ".") << " "
47 << (cc.flag.N ? "1" : ".") << " " << (cc.flag.Z ? "1" : ".") << " "
48 << (cc.flag.V ? "1" : ".") << " " << (cc.flag.C ? "1" : ".") << endl;
52 cout << hex << hilo.word << " "
53 << (int) hilo.b.lo << " " << (int) hilo.b.hi << endl;
56 b.byte = (unsigned char)0xA5;
57 cout << "Byte = " << hex << (int)b.byte << ", bits = "
58 << (b.bit.b7 ? "1" : "0")
59 << (b.bit.b6 ? "1" : "0")
60 << (b.bit.b5 ? "1" : "0")
61 << (b.bit.b4 ? "1" : "0")
62 << (b.bit.b3 ? "1" : "0")
63 << (b.bit.b2 ? "1" : "0")
64 << (b.bit.b1 ? "1" : "0")
65 << (b.bit.b0 ? "1" : "0")
69 cout << "Byte = " << hex << (int)b.byte << ", bits = "
70 << (b.bit.b7 ? "1" : "0")
71 << (b.bit.b6 ? "1" : "0")
72 << (b.bit.b5 ? "1" : "0")
73 << (b.bit.b4 ? "1" : "0")
74 << (b.bit.b3 ? "1" : "0")
75 << (b.bit.b2 ? "1" : "0")
76 << (b.bit.b1 ? "1" : "0")
77 << (b.bit.b0 ? "1" : "0")