out call to ports with inline asm + c variables
[swan-dev] / src / main.c
index 502d63c..dc651f1 100644 (file)
@@ -18,13 +18,27 @@ unsigned char bgtile_pal[] = {
 unsigned char lol[5] = { 0xAA, 0x2, 0x3, 0x4, 0x5};
 unsigned char lol2[5] = { 0x1, 0x2, 0x3, 0x4, 0x5};
 unsigned char lol3[5] = { 0x1, 0x2, 0x3, 0x4, 0x5};
-#define PALETTE (*(volatile unsigned *)0xFE00)
 #define PALETTE_T (volatile unsigned *)0xFE00
 #define SPRITE_T (volatile unsigned *)0x4000
 
 /* bss */
 static unsigned char blaat[100];
 
+void outport(unsigned char portnr, unsigned char val)
+{
+       __asm__(
+               "mov %1, %%dl\n\t"
+               "out %0, (%%dx)"
+               :
+               :"r"(val), "r"(portnr)
+               :);
+}
+
+void init_video(void)
+{
+
+}
+
 int main(void)
 {
        lol[0] = 0xDD;
@@ -33,6 +47,10 @@ int main(void)
        blaat[0] = 0xEE;
        blaat[1] = 0xEE;
        blaat[32] = 0xEE;
+
+       init_video();
+       outport(0x15, 0xEE);
+       while(1);
        
        unsigned char * ptr = PALETTE_T;
        for (int i = 0; i < sizeof(bgtile_pal); ++i) {