$OpenBSD: patch-pc_system_cc,v 1.1 2001/02/02 16:59:12 todd Exp $
--- pc_system.cc.orig	Sat Mar 25 21:24:35 2000
+++ pc_system.cc	Fri Oct 20 14:39:22 2000
@@ -76,7 +76,7 @@ bx_pc_system_c::init_ips(Bit32u ips)
 {
   // parameter 'ips' is the processor speed in Instructions-Per-Second
   m_ips = double(ips) / 1000000.0L;
-  bx_printf("ips = %u\n", (unsigned) ips);
+  bio->printf("[SYS] ips = %u\n", (unsigned) ips);
 }
 
   void
@@ -91,7 +91,7 @@ bx_pc_system_c::raise_HLDA(void)
 bx_pc_system_c::set_DRQ(unsigned channel, Boolean val)
 {
   if (channel > 7)
-    bx_panic("set_DRQ() channel > 7\n");
+    bio->panic("set_DRQ() channel > 7\n");
   DRQ[channel] = val;
   bx_devices.drq(channel, val);
 }
@@ -187,7 +187,7 @@ bx_pc_system_c::outp(Bit16u addr, Bit32u
 bx_pc_system_c::set_enable_a20(Bit8u value)
 {
 #if BX_CPU_LEVEL < 2
-    bx_panic("set_enable_a20() called: 8086 emulation\n");
+    bio->panic("set_enable_a20() called: 8086 emulation\n");
 #else
 
 #if BX_SUPPORT_A20
@@ -206,10 +206,10 @@ bx_pc_system_c::set_enable_a20(Bit8u val
 
   BX_DBG_A20_REPORT(value);
 
-  if (bx_dbg.a20)
-    bx_printf("A20: set() = %u\n", (unsigned) enable_a20);
+  if (bio->getdbg().a20)
+    bio->printf("[SYS] A20: set() = %u\n", (unsigned) enable_a20);
 #else
-  bx_printf("set_enable_a20: ignoring: SUPPORT_A20 = 0\n");
+  bio->printf("[SYS] set_enable_a20: ignoring: SUPPORT_A20 = 0\n");
 #endif  // #if BX_SUPPORT_A20
 
 #endif
@@ -219,13 +219,13 @@ bx_pc_system_c::set_enable_a20(Bit8u val
 bx_pc_system_c::get_enable_a20(void)
 {
 #if BX_SUPPORT_A20
-  if (bx_dbg.a20)
-    bx_printf("A20: get() = %u\n", (unsigned) enable_a20);
+  if (bio->getdbg().a20)
+    bio->printf("[SYS] A20: get() = %u\n", (unsigned) enable_a20);
 
   if (enable_a20) return(1);
   else return(0);
 #else
-  bx_printf("get_enable_a20: ignoring: SUPPORT_A20 = 0\n");
+  bio->printf("[SYS] get_enable_a20: ignoring: SUPPORT_A20 = 0\n");
   return(1);
 #endif  // #if BX_SUPPORT_A20
 }
@@ -236,8 +236,8 @@ bx_pc_system_c::ResetSignal( PCS_OP oper
   UNUSED( operation );
   // Reset the processor.
 
-  fprintf(stderr, "# bx_pc_system_c::ResetSignal() called\n");
-  bx_panic("pc_system.resetsignal() called\n");
+  bio->printf("[SYS] bx_pc_system_c::ResetSignal() called\n");
+  BX_CPU.reset(BX_RESET_SOFTWARE);
   return(0);
 }
 
@@ -253,7 +253,7 @@ bx_pc_system_c::exit(void)
 {
   if (bx_devices.hard_drive)
     bx_devices.hard_drive->close_harddrive();
-  bx_printf("Last time is %d\n", BX_CMOS_THIS s.timeval);
+  bio->printf("[SYS] Last time is %d\n", BX_CMOS_THIS s.timeval);
   bx_gui.exit();
 }
 
@@ -270,12 +270,12 @@ bx_pc_system_c::timer_handler(void)
   unsigned i;
   Bit64u delta;
 
-  //  fprintf(stderr, "Time handler ptime = %d\n", bx_pc_system.time_ticks());
+  //  bio->printf("Time handler ptime = %d\n", bx_pc_system.time_ticks());
 
   delta = num_cpu_ticks_in_period - num_cpu_ticks_left;
 #if BX_TIMER_DEBUG
   if (num_cpu_ticks_left != 0)
-    bx_panic("timer_handler: ticks_left!=0\n");
+    bio->panic("timer_handler: ticks_left!=0\n");
 #endif
 
   for (i=0; i < num_timers; i++) {
@@ -283,7 +283,7 @@ bx_pc_system_c::timer_handler(void)
     if (timer[i].active) {
 #if BX_TIMER_DEBUG
       if (timer[i].remaining < delta) {
-        bx_panic("timer_handler: remain < delta\n");
+        bio->panic("timer_handler: remain < delta\n");
         }
 #endif
       timer[i].remaining -= delta;
@@ -328,11 +328,11 @@ bx_pc_system_c::expire_ticks(void)
 #if BX_TIMER_DEBUG
       if (timer[i].remaining <= ticks_delta) {
 for (unsigned j=0; j<num_timers; j++) {
-  bx_printf("^^^timer[%u]\n", j);
-  bx_printf("^^^remaining = %u, period = %u\n",
+  bio->printf("[SYS] ^^^timer[%u]\n", j);
+  bio->printf("[SYS] ^^^remaining = %u, period = %u\n",
     timer[j].remaining, timer[j].period);
   }
-        bx_panic("expire_ticks: i=%u, remain(%u) <= delta(%u)\n",
+        bio->panic("expire_ticks: i=%u, remain(%u) <= delta(%u)\n",
           i, timer[i].remaining, (unsigned) ticks_delta);
         }
 #endif
@@ -351,13 +351,13 @@ bx_pc_system_c::register_timer( void *th
   Bit64u instructions;
 
   if (num_timers >= BX_MAX_TIMERS) {
-    bx_panic("register_timer: too many registered timers.");
+    bio->panic("register_timer: too many registered timers.");
     }
 
   if (this_ptr == NULL)
-    bx_panic("register_timer: this_ptr is NULL\n");
+    bio->panic("register_timer: this_ptr is NULL\n");
   if (funct == NULL)
-    bx_panic("register_timer: funct is NULL\n");
+    bio->panic("register_timer: funct is NULL\n");
 
   // account for ticks up to now
   expire_ticks();
@@ -374,13 +374,13 @@ bx_pc_system_c::register_timer_ticks(voi
   unsigned i;
 
   if (num_timers >= BX_MAX_TIMERS) {
-    bx_panic("register_timer: too many registered timers.");
+    bio->panic("register_timer: too many registered timers.");
     }
 
   if (this_ptr == NULL)
-    bx_panic("register_timer: this_ptr is NULL\n");
+    bio->panic("register_timer: this_ptr is NULL\n");
   if (funct == NULL)
-    bx_panic("register_timer: funct is NULL\n");
+    bio->panic("register_timer: funct is NULL\n");
 
   i = num_timers;
   num_timers++;
@@ -422,7 +422,7 @@ bx_pc_system_c::counter_timer_handler(vo
 bx_pc_system_c::timebp_handler(void* this_ptr)
 {
       BX_CPU_THIS_PTR break_point = BREAK_POINT_TIME;
-      fprintf(stderr, "Time breakpoint triggered\n");
+      bio->printf("[SYS] Time breakpoint triggered\n");
 
       if (timebp_queue_size > 1) {
 	    long long new_diff = timebp_queue[1] - bx_pc_system.time_ticks();
@@ -472,7 +472,7 @@ bx_pc_system_c::start_timers(void)
 bx_pc_system_c::activate_timer_ticks (unsigned timer_index, Bit64u instructions, Boolean continuous)
 {
   if (timer_index >= num_timers)
-    bx_panic("activate_timer(): bad timer index given\n");
+    bio->panic("activate_timer(): bad timer index given\n");
 
   // set timer continuity to new value (1=continuous, 0=one-shot)
   timer[timer_index].continuous = continuous;
@@ -500,7 +500,7 @@ bx_pc_system_c::activate_timer( unsigned
   Bit64u instructions;
 
   if (timer_index >= num_timers)
-    bx_panic("activate_timer(): bad timer index given\n");
+    bio->panic("activate_timer(): bad timer index given\n");
 
   // account for ticks up to now
   expire_ticks();
@@ -538,7 +538,7 @@ bx_pc_system_c::activate_timer( unsigned
 bx_pc_system_c::deactivate_timer( unsigned timer_index )
 {
   if (timer_index >= num_timers)
-    bx_panic("deactivate_timer(): bad timer index given\n");
+    bio->panic("deactivate_timer(): bad timer index given\n");
 
   timer[timer_index].active = 0;
 }
