diff -uNr uisp-20040311/src/DAPA.C uisp-20040311.dasa3/src/DAPA.C --- uisp-20040311/src/DAPA.C 2004-02-07 19:54:06.000000000 +0100 +++ uisp-20040311.dasa3/src/DAPA.C 2004-05-10 08:37:23.000000000 +0200 @@ -491,7 +491,16 @@ #if defined(TIOCMGET) && defined(TIOCCBRK) ioctl(ppdev_fd, b ? TIOCCBRK : TIOCSBRK, 0); #endif /* TIOCMGET */ + break; + case PAT_DASA3: +#if defined(TIOCMGET) + if (!b) ser_ctrl |= TIOCM_DTR; else ser_ctrl &= ~TIOCM_DTR; + SerialWriteCtrl(); +#endif /* TIOCMGET */ + + break; + } Delay_usec(b ? reset_high_time : RESET_LOW_TIME ); } @@ -564,6 +573,7 @@ break; case PAT_DASA2: + case PAT_DASA3: #if defined(TIOCMGET) if (b) ser_ctrl |= TIOCM_RTS; else ser_ctrl &= ~TIOCM_RTS; SerialWriteCtrl(); @@ -679,6 +689,7 @@ case PAT_DASA: case PAT_DASA2: + case PAT_DASA3: break; } } @@ -706,6 +717,7 @@ case PAT_XIL: case PAT_DASA: case PAT_DASA2: + case PAT_DASA3: /* no separate enable for SCK nad MOSI */ break; } @@ -798,7 +810,15 @@ if (b) ser_ctrl |= TIOCM_DTR; else ser_ctrl &= ~TIOCM_DTR; SerialWriteCtrl(); #endif /* TIOCMGET */ + + break; + case PAT_DASA3: +#if defined(TIOCMGET) && defined(TIOCCBRK) + ioctl(ppdev_fd, (!b) ? TIOCCBRK : TIOCSBRK, 0); +#endif /* TIOCMGET */ + break; + } } @@ -832,6 +852,7 @@ break; case PAT_DASA: case PAT_DASA2: + case PAT_DASA3: #ifdef TIOCMGET SerialReadCtrl(); #ifdef DEBUG1 @@ -900,6 +921,7 @@ case PAT_DASA: case PAT_DASA2: + case PAT_DASA3: break; } @@ -1006,10 +1028,12 @@ pa_type = PAT_DASA; else if (val && strcmp(val, "dasa2") == 0) pa_type = PAT_DASA2; + else if (val && strcmp(val, "dasa3") == 0) + pa_type = PAT_DASA3; else { throw Error_Device("Direct Parallel Access not defined."); } - pa_type_is_serial = (pa_type == PAT_DASA || pa_type == PAT_DASA2); + pa_type_is_serial = (pa_type == PAT_DASA || pa_type == PAT_DASA2 || pa_type == PAT_DASA3); /* Parse Command Line Switches */ #ifndef NO_DIRECT_IO if ((val = GetCmdParam("-dlpt")) != NULL) { diff -uNr uisp-20040311/src/DAPA.h uisp-20040311.dasa3/src/DAPA.h --- uisp-20040311/src/DAPA.h 2004-02-07 19:54:06.000000000 +0100 +++ uisp-20040311.dasa3/src/DAPA.h 2004-05-10 08:37:23.000000000 +0200 @@ -45,7 +45,7 @@ public: enum TPaType{ PAT_DAPA, PAT_STK200, PAT_ABB, PAT_PARAVRISP, PAT_BSD, PAT_FBPRG, PAT_DT006, PAT_ETT, PAT_MAXI, PAT_XIL, - PAT_DASA, PAT_DASA2 }; + PAT_DASA, PAT_DASA2, PAT_DASA3 }; private: int mosi_invert; diff -uNr uisp-20040311/src/Main.C uisp-20040311.dasa3/src/Main.C --- uisp-20040311/src/Main.C 2004-02-07 19:54:06.000000000 +0100 +++ uisp-20040311.dasa3/src/Main.C 2004-05-10 08:37:23.000000000 +0200 @@ -87,7 +87,7 @@ " avrisp Atmel AVRISP (uses stk500 protocol, but can only perform\n" " serial programming using SPI)\n" #ifndef NO_DAPA -" -dprog=dapa|stk200|abb|avrisp|bsd|fbprg|dt006|maxi|xil|dasa|dasa2\n" +" -dprog=dapa|stk200|abb|avrisp|bsd|fbprg|dt006|maxi|xil|dasa|dasa2|dasa3\n" " Programmer type:\n" " dapa Direct AVR Parallel Access\n" " stk200 Parallel Starter Kit STK200, STK300\n" @@ -101,6 +101,7 @@ " ett ETT AVR Programmer V2.0 [from Futurlec] (parallel)\n" " dasa serial (RESET=RTS SCK=DTR MOSI=TXD MISO=CTS)\n" " dasa2 serial (RESET=!TXD SCK=RTS MOSI=DTR MISO=CTS)\n" +" dasa3 serial (RESET=!DTR SCK=RTS MOSI=TXD MISO=CTS)\n" "\n" "Target Device Selection:\n" " -dpart Set target abbreviated name or number. For some programmers, if\n"