Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > Vice Monitor
2010-06-08 00:27
Voltage
Account closed

Registered: Jul 2008
Posts: 14
Vice Monitor

Howdy all,

I've been toying with some vic timing tricks and I've read that when entering the monitor from vice, that I should see the current raster line and cycle.

I only ever get LIN 000 and CYC 000.

I'm using winvice 2.2, but I've also tried with winvice 2.1 with the same results.

Anyone have any advice?

Cheers

Voltage
 
... 10 posts hidden. Click here to view all posts....
 
2010-06-09 13:40
Mr. SID

Registered: Jan 2003
Posts: 424
This just proofs that the io command in VICE is utterly useless. Even for the VIC, I'd want to see both the read and the write state of $d012. Or for timers of a CIA. Currently it's far from useful.
2010-06-09 20:53
iAN CooG

Registered: May 2002
Posts: 3177
Enthusi: cheers, would be nice. But beware of the check for $1000/$9000, also $1800/$9800 should see $d800. Also, machine type can be checked.
--- 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);
2010-06-10 04:54
chatGPZ

Registered: Dec 2001
Posts: 11293
i have added the needed mechanisms to dump states of any io devices.... try "io d000" in recent trunk, it will give output very similar to what mr.sid suggested :) (and ofcourse its now easily possible to extend and to add whatever fancy info from the internal structures)
2010-06-10 08:42
enthusi

Registered: May 2004
Posts: 675
the above posted patch is not complete obviously.
You will have to declare v_bank etc. first.
And the bitmap address need not be displayed in text-mode, etc...
But I guess if someone adds a "are we in c64-mode?"-check it could be formed into a real patch.
2010-06-10 19:08
iAN CooG

Registered: May 2002
Posts: 3177
Quote: i have added the needed mechanisms to dump states of any io devices.... try "io d000" in recent trunk, it will give output very similar to what mr.sid suggested :) (and ofcourse its now easily possible to extend and to add whatever fancy info from the internal structures)

Nice, Groepaz! I've applied this change and it works for me
--- 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);



too bad it has to be duplicated in viciinew\ aswell
Previous - 1 | 2 - Next
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
kbs/Pht/Lxt
zscs
JEZ
Guests online: 124
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Coma Light 13  (9.7)
4 Edge of Disgrace  (9.6)
5 Mojo  (9.6)
6 Uncensored  (9.6)
7 Wonderland XIV  (9.6)
8 Comaland 100%  (9.6)
9 No Bounds  (9.6)
10 Unboxed  (9.6)
Top onefile Demos
1 Layers  (9.6)
2 Party Elk 2  (9.6)
3 Cubic Dream  (9.6)
4 Copper Booze  (9.6)
5 Rainbow Connection  (9.5)
6 It's More Fun to Com..  (9.5)
7 Morph  (9.5)
8 Dawnfall V1.1  (9.5)
9 Onscreen 5k  (9.5)
10 Daah, Those Acid Pil..  (9.5)
Top Groups
1 Booze Design  (9.3)
2 Oxyron  (9.3)
3 Nostalgia  (9.3)
4 Censor Design  (9.3)
5 Triad  (9.2)
Top Organizers
1 Burglar  (9.9)
2 Sixx  (9.8)
3 hedning  (9.7)
4 Irata  (9.7)
5 Tim  (9.7)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.041 sec.