remove data direction from iec2.IECBus (why does it need it in the first place?) write your own assembler/disassembler? write your own mini-emulator which finds out which registers a routine changes. C128 support Z80 support keyboard capture VIC $D011 bit 4: 0=screen off, just show border. bit 3: screen height: 0=24, 1=25 bit 0-2: vertical raster scroll bit 5: 1=bitmap mode bit 6: 1=extended background mode bit 7: current raster line, BIT 8!!! ANC *** ANC ANDs the contents of the A register with an immediate value and then moves bit 7 of A into the Carry flag. This opcode works basically identically to AND #immed. except that the Carry flag is set to the same state that the Negative flag is set to. One supported mode: ANC #ab ;2B ab ;No. Cycles= 2 ANC #ab ;0B ab (Sub-instructions: AND, ROL) RRA RRA *** RRA RORs the contents of a memory location and then ADCs the result with the accumulator. Supported modes: RRA abcd ;6F cd ab ;No. Cycles= 6 RRA abcd,X ;7F cd ab ; 7 RRA abcd,Y ;7B cd ab ; 7 RRA ab ;67 ab ; 5 RRA ab,X ;77 ab ; 6 RRA (ab,X) ;63 ab ; 8 RRA (ab),Y ;73 ab ; 8 (Sub-instructions: ADC, ROR) Example: RRA $030C ;6F 0C 03 Equivalent instructions: ROR $030C ADC $030C aspect ratio: Note that the images seem distorted a little bit because 320x200 images have an aspect ratio of 0.82 instead of 1.0, like 640x480 or 800x600. To avoid this you would have to view them in 320x200 (VGA) full-screen mode. S20-RAM snapshot file: http://www.classicgaming.com/pfauzeh/s20spec.htm c64.formats.t64 from Nullege. recalculate multicolor sprites when the VIC sprite multicolor color changes. EOI is set 1 BIT before the end!