(C:$dd10) io VIC-II: >C:d000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1b 00 00 00 00 c8 00 ........................ >C:d018 15 71 f0 00 00 00 00 00 fe f6 f1 f2 f3 f4 f0 f1 f2 f3 f4 f5 f6 f7 fc .q..................... SID: >C:d400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........................ >C:d418 00 ff ff 00 00 00 00 00 ........ CIA1: >C:dc00 7f ff ff 00 65 3f ff ff 00 00 00 01 00 00 01 08 ....M?.......... CIA2: >C:dd00 97 ff 3f 00 ff ff ff ff 00 00 00 01 00 00 08 08 ..?.............
if (mem_ioreg_list_base) { while (1) { if (n==0) { v_d016 = mon_get_mem_val(default_memspace,0xd016); v_d011 = mon_get_mem_val(default_memspace,0xd011); v_dd00 = mon_get_mem_val(default_memspace,0xdd00); v_d018 = mon_get_mem_val(default_memspace,0xd018); v_bmflag = ((v_d011&0x20)>>5); /* 0 text, 1 gfx */ v_hmflag = (v_d016&0x10)>>4; /* 0 hires, 1 multi */ v_bank = 0xc000 - (v_dd00 & 3) * 0x4000; v_bitmap = ((v_d018 >> 3) & 1) * 0x2000 + v_bank; v_map = (v_d018 >> 4) * 0x0400 + v_bank; v_font = ((v_d018 >> 1) & 0x7)*0x800 + v_bank; /* $1000 and $9000 mapped to $d000 */ if ((v_font==0x1000)||(v_font==0x9000)) v_font=0xd000; if (v_bmflag) mon_out("Display Mode: Bitmap gfx\n"); else mon_out("Display Mode: Standard Text\n"); if (v_hmflag) mon_out("GFX Mode: multi color\n"); else mon_out("GFX Mode: hires color\n"); mon_out("VIC Memory Bank: $%04x - $%04x\n",v_bank,v_bank+0x3fff); mon_out("Video Memory: $%04x\n",v_map); if (!v_bmflag) mon_out("Character Set: $%04x\n",v_font); mon_out("Bitmap Memory: $%04x\n\n",v_bitmap); }
--- monitor.c 2010-06-09 09:14:09 +0000 +++ monitor.c 2010-06-09 09:20:37 +0000 @@ -1288,4 +1288,45 @@ if (mem_ioreg_list_base) { while (1) { + /* Enthusi/ONS, fix by iAN CooG - display vic regs verbosely - start */ + if (n==0) { + if (machine_class == VICE_MACHINE_C64 || + machine_class == VICE_MACHINE_C128 || + machine_class == VICE_MACHINE_C64DTV|| + machine_class == VICE_MACHINE_C64SC ) { + int v_d016,v_d011,v_d018,v_dd00,v_bank,v_bitmap,v_map,v_font,v_bmflag,v_hmflag; + v_d016 = mon_get_mem_val(default_memspace, 0xd016); + v_d011 = mon_get_mem_val(default_memspace, 0xd011); + v_dd00 = mon_get_mem_val(default_memspace, 0xdd00); + v_d018 = mon_get_mem_val(default_memspace, 0xd018); + v_bmflag = ((v_d011 & 0x20) >> 5); /* 0 text, 1 gfx */ + v_hmflag = (v_d016 & 0x10) >> 4; /* 0 hires, 1 multi */ + v_bank = 0xc000 - (v_dd00 & 3) * 0x4000; + v_bitmap = ((v_d018 >> 3) & 1) * 0x2000 + v_bank; + v_map = (v_d018 >> 4) * 0x0400 + v_bank; + v_font = ((v_d018 >> 1) & 7) * 0x0800 + v_bank; + /* $1x00 and $9x00 mapped to $dx00 */ + if ( (( v_font >> 12) == 1 ) || + (( v_font >> 12) == 9 ) ) { + v_font = 0xd000 | (v_font & 0x0f00); + } + if (v_bmflag) { + mon_out("Display Mode: Bitmap gfx\n"); + } else { + mon_out("Display Mode: Standard Text\n"); + } + if (v_hmflag) { + mon_out("GFX Mode: multi color\n"); + } else { + mon_out("GFX Mode: hires color\n"); + } + mon_out("VIC Memory Bank: $%04x - $%04x\n", v_bank, v_bank + 0x3fff); + mon_out("Video Memory: $%04x\n",v_map); + if (!v_bmflag) { + mon_out("Character Set: $%04x\n", v_font); + } + mon_out("Bitmap Memory: $%04x\n\n", v_bitmap); + } + } + /* Enthusi/ONS, fix by iAN CooG - display vic regs verbosely - end */ mon_out("%s:\n", mem_ioreg_list_base[n].name); start = new_addr(default_memspace, mem_ioreg_list_base[n].start);
--- vicii.c 2010-06-09 17:16:40 +0000 +++ vicii.c 2010-06-10 09:39:16 +0000 @@ -1372,5 +1372,5 @@ m_disp = ((vic->regs[0x11] & 0x20) >> 5); /* 0 text, 1 bitmap */ - v_bank = 0; /* FIXME */ + v_bank = vic->vbank_phi2; /* FIXME: using either vbank_phi1 is the same or not? */ mon_out("Display Mode:"); @@ -1389,5 +1389,10 @@ mon_out("\nVIC Memory Bank: $%04x - $%04x\n", v_bank, v_bank+0x3fff); mon_out("\nVideo Memory: $%04x\n", ((vic->regs[0x18] >> 4) * 0x0400) + v_bank); - mon_out("Character Set: $%04x\n", (((vic->regs[0x18] >> 1) & 0x7) * 0x800) + v_bank); + i=(((vic->regs[0x18] >> 1) & 0x7) * 0x800) + v_bank; + /* $1x00 and $9x00 mapped to $dx00 */ + if ( (( i >> 12) == 1 ) || (( i >> 12) == 9 ) ) { + i = 0xd000 | (i & 0x0f00); + } + mon_out("Character Set: $%04x\n", i); mon_out("Bitmap Memory: $%04x\n", (((vic->regs[0x18] >> 3) & 1) * 0x2000) + v_bank);