--- uae/src/serial.c 2018/04/24 16:39:50 1.1.1.3 +++ uae/src/serial.c 2018/04/24 17:05:26 1.1.1.7 @@ -16,7 +16,6 @@ #include "uae.h" #include "memory.h" #include "custom.h" -#include "readcpu.h" #include "newcpu.h" #include "cia.h" @@ -100,7 +99,7 @@ void SERPER (uae_u16 w) serper=w; if (w&0x8000) - fprintf (stdout, "SERPER: 9bit transmission not implemented.\n"); + write_log ("SERPER: 9bit transmission not implemented.\n"); switch (w & 0x7fff) { /* These values should be calculated by the current @@ -126,28 +125,28 @@ void SERPER (uae_u16 w) case 0x001e: baud=115200; pspeed=B115200; break; case 0x000f: baud=230400; pspeed=B230400; break; default: - fprintf (stdout,"SERPER: unsupported baudrate (0x%04x) %d\n",w&0x7fff, + write_log ("SERPER: unsupported baudrate (0x%04x) %d\n",w&0x7fff, (unsigned int)(3579546.471/(double)((w&0x7fff)+1))); return; } /* Only access hardware when we own it */ if (serdev == 1) { if (tcgetattr (sd, &tios) < 0) { - fprintf (stderr, "SERPER: TCGETATTR failed\n"); + write_log ("SERPER: TCGETATTR failed\n"); return; } if (cfsetispeed (&tios, pspeed) < 0) { /* set serial input speed */ - fprintf (stderr, "SERPER: CFSETISPEED (%d bps) failed\n", baud); + write_log ("SERPER: CFSETISPEED (%d bps) failed\n", baud); return; } if (cfsetospeed (&tios, pspeed) < 0) { /* set serial output speed */ - fprintf (stderr, "SERPER: CFSETOSPEED (%d bps) failed\n", baud); + write_log ("SERPER: CFSETOSPEED (%d bps) failed\n", baud); return; } if (tcsetattr (sd, TCSADRAIN, &tios) < 0) { - fprintf (stderr, "SERPER: TCSETATTR failed\n"); + write_log ("SERPER: TCSETATTR failed\n"); return; } } @@ -155,7 +154,7 @@ void SERPER (uae_u16 w) #if SERIALDEBUG > 0 if (serdev == 1) - fprintf (stdout, "SERPER: baudrate set to %d bit/sec\n", baud); + write_log ("SERPER: baudrate set to %d bit/sec\n", baud); #endif } @@ -186,7 +185,7 @@ void SERDAT (uae_u16 w) if (currprefs.serial_demand && !dtr) { if (!isbaeh) { - fprintf(stdout,"SERDAT: Baeh.. Your software needs SERIAL_ALWAYS to work properly.\n"); + write_log("SERDAT: Baeh.. Your software needs SERIAL_ALWAYS to work properly.\n"); isbaeh=1; } return; @@ -197,7 +196,7 @@ void SERDAT (uae_u16 w) } #if SERIALDEBUG > 2 - fprintf (stderr, "SERDAT: wrote 0x%04x\n", w); + write_log ("SERDAT: wrote 0x%04x\n", w); #endif serdat|=0x2000; /* Set TBE in the SERDATR ... */ @@ -210,7 +209,7 @@ uae_u16 SERDATR (void) if (!currprefs.use_serial) return 0; #if SERIALDEBUG > 2 - fprintf (stdout, "SERDATR: read 0x%04x\n", serdat); + write_log ("SERDATR: read 0x%04x\n", serdat); #endif waitqueue = 0; return serdat; @@ -235,7 +234,7 @@ int SERDATS (void) intreq |= 0x0800; /* Set RBF flag (Receive Buffer full) */ #if SERIALDEBUG > 1 - fprintf (stdout, "SERDATS: received 0x%02x --> serdat==0x%04x\n", + write_log ("SERDATS: received 0x%02x --> serdat==0x%04x\n", (unsigned int)z, (unsigned int)serdat); #endif return 1; @@ -246,7 +245,7 @@ int SERDATS (void) void serial_dtr_on(void) { #if SERIALDEBUG > 0 - fprintf (stdout, "DTR on.\n"); + write_log ("DTR on.\n"); #endif dtr=1; @@ -257,7 +256,7 @@ void serial_dtr_on(void) void serial_dtr_off(void) { #if SERIALDEBUG > 0 - fprintf (stdout, "DTR off.\n"); + write_log ("DTR off.\n"); #endif dtr=0; if (currprefs.serial_demand) @@ -311,7 +310,7 @@ int serial_readstatus(void) ciabpra |= 0x20; /* Push up Carrier Detect line */ carrier = 1; #if SERIALDEBUG > 0 - fprintf (stdout, "Carrier detect.\n"); + write_log ("Carrier detect.\n"); #endif } } else { @@ -319,7 +318,7 @@ int serial_readstatus(void) ciabpra &= ~0x20; carrier = 0; #if SERIALDEBUG > 0 - fprintf (stdout, "Carrier lost.\n"); + write_log ("Carrier lost.\n"); #endif } } @@ -347,10 +346,10 @@ uae_u16 serial_writestatus (int old, int serial_dtr_off(); if ((old & 0x40) != (nw & 0x40)) - fprintf (stdout, "RTS %s.\n", ((nw & 0x40) == 0x40) ? "set" : "cleared"); + write_log ("RTS %s.\n", ((nw & 0x40) == 0x40) ? "set" : "cleared"); if ((old & 0x10) != (nw & 0x10)) - fprintf (stdout, "CTS %s.\n", ((nw & 0x10) == 0x10) ? "set" : "cleared"); + write_log ("CTS %s.\n", ((nw & 0x10) == 0x10) ? "set" : "cleared"); return nw; /* This value could also be changed here */ } @@ -360,8 +359,8 @@ void serial_open(void) if (serdev == 1) return; - if ((sd = open (sername, O_RDWR|O_NONBLOCK|O_BINARY, 0)) < 0) { - fprintf (stdout, "Error: Could not open Device %s\n", sername); + if ((sd = open (currprefs.sername, O_RDWR|O_NONBLOCK|O_BINARY, 0)) < 0) { + write_log ("Error: Could not open Device %s\n", currprefs.sername); return; } @@ -369,7 +368,7 @@ void serial_open(void) #ifdef POSIX_SERIAL if (tcgetattr (sd, &tios) < 0) { /* Initialize Serial tty */ - fprintf (stderr, "Serial: TCGETATTR failed\n"); + write_log ("Serial: TCGETATTR failed\n"); return; } cfmakeraw (&tios); @@ -381,7 +380,7 @@ void serial_open(void) #endif if (tcsetattr (sd, TCSADRAIN, &tios) < 0) { - fprintf (stderr,"Serial: TCSETATTR failed\n"); + write_log ("Serial: TCSETATTR failed\n"); return; } #endif @@ -389,8 +388,8 @@ void serial_open(void) void serial_close (void) { - if (sd != 0) - close(sd); + if (sd >= 0) + close (sd); serdev = 0; }