Don't call Dosvm functions when Dosvm isn't initialized.

diff --git a/msdos/ioports.c b/msdos/ioports.c
index 8047b8a..759dfef 100644
--- a/msdos/ioports.c
+++ b/msdos/ioports.c
@@ -98,7 +98,8 @@
 {
     switch (timer) {
         case 0: /* System timer counter divisor */
-            Dosvm.SetTimer(maxval);
+            if (Dosvm.Current())
+	      Dosvm.SetTimer(maxval);
             break;
         case 1: /* RAM refresh */
             FIXME("RAM refresh counter handling not implemented !\n");
@@ -307,7 +308,10 @@
 	    if (chan == 0) /* System timer counter divisor */
 	    {
 		/* FIXME: Dosvm.GetTimer() returns quite rigid values */
-		tempval = dummy_ctr + (WORD)Dosvm.GetTimer();
+	        if (Dosvm.Current())
+		  tempval = dummy_ctr + (WORD)Dosvm.GetTimer();
+		else
+		  tempval = dummy_ctr;
 	    }
 	    else
 	    {
@@ -415,7 +419,8 @@
     switch (port)
     {
     case 0x20:
-        Dosvm.OutPIC( port, (BYTE)value );
+        if (Dosvm.Current())
+	  Dosvm.OutPIC( port, (BYTE)value );
         break;
     case 0x40:
     case 0x41:
@@ -472,7 +477,10 @@
 	    tmr_8253[chan].latched = TRUE;
 	    dummy_ctr -= 1 + (int)(10.0 * rand() / (RAND_MAX + 1.0));
 	    if (chan == 0) /* System timer divisor */
-		tmr_8253[chan].latch = dummy_ctr + (WORD)Dosvm.GetTimer();
+	        if (Dosvm.Current())
+		  tmr_8253[chan].latch = dummy_ctr + (WORD)Dosvm.GetTimer();
+	        else
+		  tmr_8253[chan].latch = dummy_ctr;
 	    else
 	    {
 		/* FIXME: intelligent hardware timer emulation needed */