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: 425
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: 3235
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: 11510
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: 679
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: 3235
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
A3/AFL
REBEL 1/HF
Chesser/Blazon
The Phantom
Guests online: 222
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Codeboys & Endians  (9.7)
4 Mojo  (9.6)
5 Coma Light 13  (9.6)
6 Edge of Disgrace  (9.6)
7 Signal Carnival  (9.6)
8 Uncensored  (9.5)
9 Wonderland XIV  (9.5)
10 No Bounds  (9.5)
Top onefile Demos
1 Nine  (9.7)
2 Layers  (9.6)
3 Cubic Dream  (9.6)
4 Party Elk 2  (9.6)
5 Copper Booze  (9.5)
6 Scan and Spin  (9.5)
7 Onscreen 5k  (9.5)
8 Grey  (9.5)
9 Dawnfall V1.1  (9.5)
10 Rainbow Connection  (9.5)
Top Groups
1 Artline Designs  (9.3)
2 Booze Design  (9.3)
3 Oxyron  (9.3)
4 Performers  (9.3)
5 Censor Design  (9.3)
Top Diskmag Editors
1 Magic  (10)
2 Jazzcat  (9.5)
3 hedning  (9.2)
4 Elwix  (9.1)
5 Peter  (9.0)

Home - Disclaimer
Copyright © No Name 2001-2025
Page generated in: 0.045 sec.