[patch][rfa] Configure mappings and memory sizes in hex

Dave Brolley <[email protected]> Thu, 14 Sep 2006 15:39:16 -0400
Newsgroups gmane.comp.emulators.sid.devel
Message-ID <[email protected]>
Hi,

I'm growing weary of seeing mappings and memory sizes in decimal in the 
config files generated by --save-temps. Does anyone have a problem with 
this patch which makes them appear in hex? The difference is something like

connect-bus basic-0/main-map [0=0-32767] basic-0/extra-mem-0 read-write-port
set basic-0/extra-mem-0 size 32768

becomes

connect-bus basic-0/main-map [0x0=0x0-0xffff] basic-0/extra-mem-0 
read-write-port
set basic-0/extra-mem-0 size 0x10000

Dave
sid-conf-hex.ChangeLog (text/plain, 167 B)
2006-09-14  Dave Brolley  <[email protected]>

	* commonCfg.cxx (MemCfg::set_size): Use make_numeric_attribute and pass
	std::ios::hex.
	(MapperCfg::map): Likewise.
sid-conf-hex.patch.txt (text/plain, 2.7 KB)
Index: sid/main/dynamic/commonCfg.cxx
===================================================================
RCS file: /cvs/src/src/sid/main/dynamic/commonCfg.cxx,v
retrieving revision 1.16
diff -c -p -r1.16 commonCfg.cxx
*** sid/main/dynamic/commonCfg.cxx	14 Jul 2006 19:45:51 -0000	1.16
--- sid/main/dynamic/commonCfg.cxx	14 Sep 2006 19:27:03 -0000
*************** void MemCfg::set_write_latency (sid::hos
*** 86,92 ****
  void MemCfg::set_size (sid::host_int_4 sz)
  {
    my_size = sz;
!   set (this, "size", sidutil::make_attribute(sz));
  }
  
  sid::host_int_4 MemCfg::size()
--- 86,92 ----
  void MemCfg::set_size (sid::host_int_4 sz)
  {
    my_size = sz;
!   set (this, "size", "0x" + sidutil::make_numeric_attribute(sz, std::ios::hex));
  }
  
  sid::host_int_4 MemCfg::size()
*************** void MapperCfg::map (const Mapping &m) 
*** 506,531 ****
    
    string map_accessor = "[";
    if (m._wordsz.specified)
!     map_accessor += sidutil::make_attribute(m._wordsz.val) + "*";
  
    if (m._base.specified)
!     map_accessor += sidutil::make_attribute(m._base.val) + "=";
  
    // always include a low and a high. default to 0 if not specified.
    // FIXME: perhaps issuing a warning here would be better?
!   map_accessor += 
!     sidutil::make_attribute(m._low.specified ? 
! 			    m._low.val : 0) 
!     + "-"
!     + sidutil::make_attribute(m._high.specified ? 
! 			      m._high.val : 0);
  
    // Both stride and width must be specified for either to make sense.
    if (m._stride.specified && m._width.specified)
!     map_accessor += "," 
!       + sidutil::make_attribute(m._stride.val) 
!       + ","
!       + sidutil::make_attribute(m._width.val);
    
    map_accessor += "]";
  
--- 506,531 ----
    
    string map_accessor = "[";
    if (m._wordsz.specified)
!     map_accessor += "0x" + sidutil::make_numeric_attribute(m._wordsz.val, std::ios::hex) + "*";
  
    if (m._base.specified)
!     map_accessor += "0x" + sidutil::make_numeric_attribute(m._base.val, std::ios::hex) + "=";
  
    // always include a low and a high. default to 0 if not specified.
    // FIXME: perhaps issuing a warning here would be better?
!   map_accessor += "0x" + 
!     sidutil::make_numeric_attribute(m._low.specified ? 
! 				    m._low.val : 0, std::ios::hex) 
!     + "-0x"
!     + sidutil::make_numeric_attribute(m._high.specified ? 
! 				      m._high.val : 0, std::ios::hex);
  
    // Both stride and width must be specified for either to make sense.
    if (m._stride.specified && m._width.specified)
!     map_accessor += ",0x" 
!       + sidutil::make_numeric_attribute(m._stride.val, std::ios::hex) 
!       + ",0x"
!       + sidutil::make_numeric_attribute(m._width.val, std::ios::hex);
    
    map_accessor += "]";
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.