First post, by llm
this is disassembled from a game
mov dx, 3C4hmov ax, 0F02hout dx, axmov dl, 0CEhmov ax, 3out dx, axmov ax, 205hout dx, axmov al, 8out dx, al
ported to C with some infos i've found
https://fd.lod.bz/rbil/ports/other/p03c403c5.html
03C4 -W EGA TS index register
https://fd.lod.bz/rbil/ports/video/p03ce03cf.html
03CE -W EGA GDC index register
the above assembler is to my understanding this:
p: 0x3C5 p:0x3C4outw(0x3C4, 0xF02); // 0b00001111_00000010 -> writes also 0x3C50xF 0x02| || Map mask register|Write enable display memory plane 0..3https://fd.lod.bz/rbil/ports/video/p03ce03cf.html#table-P0700p:0x3CF p:0x3CEoutw(0x3CE, 3); // 0b00000000_00000011 -> writes also 0x3CF (3 = data rotate register, rotate-count=0, CPU-data overwrites) https://fd.lod.bz/rbil/ports/video/p03ce03cf.html#table-P0703outw(0x3CE, 0x205); // 0b00000010_00000101 -> writes also 0x3CF (5 = mode register, mode2, plane source is CPU as set/reset) https://fd.lod.bz/rbil/ports/video/p03ce03cf.html#table-P0704outb(0x3CE, 8); // 0b 00001000 -> writes only 0x3CE (8 = bit mask register, ???)Index00000010
is that correctly interpreted?