You can subscribe to this list here.
2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(132) |
Oct
(228) |
Nov
(108) |
Dec
(69) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2001 |
Jan
(52) |
Feb
(27) |
Mar
(3) |
Apr
(1) |
May
(2) |
Jun
|
Jul
|
Aug
(1) |
Sep
(1) |
Oct
(4) |
Nov
|
Dec
|
From: C. <dig...@us...> - 2000-11-22 03:02:54
|
Eae coders ? Num mail anterior que eu mandei prá lista, pedi o auxílio de vcs com o timeout no gtk... :) BOm, não precisa mais... hehehe acabei achando a solução aki... vejam este trecho do manual do gtk sobre o timeout: ---------------->8----- [corta] You may be wondering how you make GTK do useful work when in gtk_main. Well, you have several options. Using the following function you can create a timeout function that will be called every "interval" milliseconds. gint gtk_timeout_add( guint32 interval, GtkFunction function, gpointer data ); The first argument is the number of milliseconds between calls to your function. The second argument is the function you wish to have called, and the third, the data passed to this callback function. The return value is an integer "tag" which may be used to stop the timeout by calling: void gtk_timeout_remove( gint tag ); You may also stop the timeout function by returning zero or FALSE from your callback function. Obviously this means if you want your function to continue to be called, it should return a non-zero value, i.e., TRUE. The declaration of your callback should look something like this: gint timeout_callback( gpointer data ); ---------------------->8----- [corta] Interessante, não ? Os parâmetros não são como eu havia suposto... já corrigi isso e estou fazendo testes agora... Acredito que na quarta-feira estarei disponibilizando o primeiro beta _funcional_ da interface em gtk... []'s -- André Casteliano Analista de Sistemas +-=-=[ dig...@us...]=-=-+ [ Linux User: # 178853 Machine: # 79923 ] [ Linux Heavy User - Powered by Slackware 7.1 ] [ http://www.geocities.com/andre_casteliano/ ] +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+ [ LinuxCall - The Linux Dialer ] [ http://linuxcall.sourceforge.net ] +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+ |
From: Marcelo B. <md...@ma...> - 2000-11-21 01:48:37
|
Oi amigos Coders, beleza? Bom, vocês lembram daquele primeiro programinha modem que eu tinha mandado? Funcionou sem problemas né? Ai estava eu a implementar o resto das funções. (vão vendo o fonte, modem.c, em anexo) Comecei mudando a função openport, para torná-la mais genérica. Antes estava: int openport(char port) Mudei para: int openport(char *port) Assim, ela pode receber um parametro de porta mais abrangente que apenas o numero da ttyS, podendo receber por exemplo "/dev/modem". Beleza né? Bom, aqui no meu sistema, tenho permissão pra abrir as ttyS 1 e 3. Se voces compilarem e rodarem gcc -Wall modem.c -o modem verão que ocorre algo estranho... Tipo, quando o programa consegue abrir a primeira porta, tudo corre normal, até a hora da instrução close(canal); em main() Tipo, o programa parece que trava na hora de dar o close, e fica preso. Aqui, por exemplo, dá nisso: [marcelo@arise modem]$ ./modem Modem Seek and Destroy - versão 0.2 Seek modem at /dev/ttyS0: unable to open port Seek modem at /dev/ttyS1: (0)(1)(2) ...nothing :( fechando canal E fica parado nisso: o primeiro fd que ele abre ele não consegue fechar. Pois bem, encontrei duas soluções para isso: 1) Vejam na função main(), a seguinte linha (comentada): int main (int argc, char **argv) { char serial; int canal; int status; char device[15]; printf("Modem Seek and Destroy - versão %s\n\n", VERSION); for (serial = 0; serial < 4; serial++) { sprintf(device, "/dev/ttyS%d", serial); printf("Seek modem at %s: ", device); /* fflush(stdout); */ ^^^^^^^^^^^^^^^^^ Se voces descomentarem essa linha, e recompilarem/rodarem de novo, verão que o problema some! Ai executa normalmente aqui: [marcelo@arise modem]$ ./modem Modem Seek and Destroy - versão 0.3 Seek modem at /dev/ttyS0: unable to open port Seek modem at /dev/ttyS1: (0)(1)(2) ...nothing :( fechando canal Seek modem at /dev/ttyS2: unable to open port Seek modem at /dev/ttyS3: (0)[9] ...modem found!!! :) fechando canal Beleza não? 2) Outra mudança que faz o programa misteriosamente funcionar, é a seguinte: Vejam na função openport(): int openport(char *port) { int fd; <----------------- int status; struct termios options, optionsold; speed_t BaudRate; tcflag_t Control; Notem a posição da declaração de int fd; Pois bem, se voces mudarem a posição da declaração, por exemplo para: int openport(char *port) { int status; int fd; <--------------- struct termios options, optionsold; speed_t BaudRate; tcflag_t Control; E recompilarem/rodarem, verão que dessa forma também dá o problema (pelo menos aqui continuou dando :( Bom, mas agora, se vocês alterarem para: int openport(char *port) { int status; struct termios options, optionsold; speed_t BaudRate; tcflag_t Control; int fd; E recompilarem/rodarem, verão que... funciona!!! [marcelo@arise modem]$ ./modem Modem Seek and Destroy - versão 0.3 Seek modem at /dev/ttyS0: unable to open port Seek modem at /dev/ttyS1: (0)(1)(2) ...nothing :( <--- abriu canal fechando canal <--- fechou canal Seek modem at /dev/ttyS2: unable to open port Seek modem at /dev/ttyS3: (0)[9] ...modem found!!! :) fechando canal ------8<------------- Bom, esses mesmos testes eu fiz tb no 386, com CL3.0 Guarani, kernel 2.0.36, e tb ocorreu o mesmo comportamento... Tá, consegui resolver o problema e fazer funcionar... Mas, qual era o problema exatamente? Isso é que eu não consegui entender? Como é que a colocação daquele fflush() no main, ou a alteração da ordem de declaração de int fd; em openport() faz com que dê ou não dê esse problema no fechamento do canal ( instrução close(canal); em main() ) Isso me deixou muito intrigado... Será que eu estou fazendo alguma besteira com algum ponteiro ou vetor ? Eu dei uma olhada de novo nos fontes, mas não consegui identificar algum problema desse tipo. Seria algum problema do gcc? Quanto a instrução fflush em main(): o que é que um fflush feito em stdout tem a ver com o file descriptor aberto na comunicação serial?? Bom, em anexo vão dois fontes no tarball: modem.c : o programa mais novo, no qual foram detectados esse problemas "malucos" modem-1.c: o programa original que eu havia enviado antes pra lista, o qual funciona corretamente, diferindo do mais novo apenas na implementação/mudanças em openport() Bom, por enquanto é isso ai, se souberem ou desconfiarem de algo que possa estar causando esse problema fico muito grato. Abraçao, -- #=-=[ ser...@us... ]=-=+=#=--------------=# | Marcelo D. Beckmann --user[]="#173935"-- | | CL5 2.2.14 | md...@ma... UIN [53189692]----+ | Slack 7 2.2.13 # - =-#--=[ http://marcelobeckmann.cjb.net ]=--#-==-==-==-==-==-# + .~. | 233MMX 32MB 8.4+3.2GB Quantum Fireball ] /V\ #------------------466.94----[ OPL3SAx TGUI9680 2MB 33600 ] /(.)\ "Estamos de volta aos tempos em que os homens eram homens ] ^`~´^ e programavam seus próprios drivers de dispositivo."L.T. ] #-====-#----=[ serialcoder ]=- + -=[ http://wm.themes.org ]=-----' RTS-[CTS]-DLE-STX-17-39-35-CRC-F6-66-DLE-ETX-/RTS-[/CTS-RTS]-CTS-[ACK] |
From: C. <dig...@us...> - 2000-11-20 21:42:41
|
Eae pessoal, tudo jóia ??? Pessoal, nesse fim de semana dei uma adiantada boa nos trecos do LinuxCall... a coisa ainda tá feia pro meu lado aki, mas já deu prá implementar um monte de coisa... :) Estou mandando uns screens dessa interface em gtk procês verem como tá ficando e poderem opinar... ;-) O BETA da interafce em gtk está quase lá... as telas já estão prontas, e agora estou trabalhando na interligação com os scripts (muda completamente a maneira, em relação à interface em XSTEP.) Gostaria, inclusive, de uma opinião dos coders... ;-) Coders, em aplicativos gráficos, não é possível a utilização de loops infinitos, whiles demorados, etc. Pq o toolkit precisa estar o tempo todo no controle, para que possa redesenhar a janela na tela, interagir com o window manager, etc... Quando abrimos o pipe que interliga os scripts (popen(comando...)) precisamos ler as saídas dele ... fgets(....)... o problema, é que esse loop de leitura pára o toolkit... Com a ajuda do Marcelo Samsoniuk (autor da xstep), consegui implementar isso na interface XSTEP da seguinte forma: Criei um rotina que recebe os dados do pipe (com o fgets, tal) e associei-a ao evento broadcast da xstep. Esse evento broadcast, seria o evento de redesenho da tela. Setando animate=1 no programa, o toolkit gera esses eventos permanentemente... Ou seja, fiz com que o toolkit chamasse de tempos em tempos (coisa de milissegundos) a func que recebe as saídas do pipe. Preciso implementar a mesma coisa no GTK, mas ele não possui o broadcast como o da Xstep... :) Pensei em usar threads, mas adicionaríamos uma complexidade enorme para algo simples... Olhando alguns programas feitos em GTK que trabalham em tempo real, observei que eles fazem o seguinte: Através da função gtk_timeout_add, eles especificam uma determinada função para que seja executada de tempos em tempos (se não me engano, uma vez por segundo)... Bem, essa seria a solução, mas ao implementar a seguinte rotina, tenho obtido seguidos "SegFaults".... com broken pipes.... static void dial_to_isp(GtkWidget *widget, gpointer data) { pipe_ptr = popen(comando, "r"); if (!pipe_ptr) g_print("Problemas com o pipe de discagem!!!\n"); else { zera_buffers(); /* Limpa os labels */ g_print("Labels limpos...\n"); gtk_widget_show(fix_disca); /* Modifica a janela */ g_print("Tela de discagem exibida...\n"); tmp_timer = gtk_timeout_add(T_MAX, get_messages, janela_principal); g_print("Timer ativado...\n"); } } Ok. Na timeout_add, eu passo como parâmetros: T_MAX ... definido no começo do arkivo com o valor 100000 ... trata-se do número de vezes que o timeout irá rodar... chutei alto ??? :P get_messages ... função que recebe a saída do pipe e manda prá tela (nos labels)... janela_principal ... widget ao qual o timeout está associado... se destruirmos ela, o timeout vai junto (pelo que eu entendi... ;-))) Ok. Pessoal, alguém aí poderia me ajudar ??? ;-) Ah! ... depois que o pipe encerra (o script termina), devemos remover o timer, com a função gtk_timeout_remove (timer)... É isso ae coders, falta muito pouco prá que o BETA gtk esteja tão funcional quanto o feito em XSTEP... :) vamos lá, não desanimem... []'s -- André Casteliano Analista de Sistemas +-=-=[ dig...@us...]=-=-+ [ Linux User: # 178853 Machine: # 79923 ] [ Linux Heavy User - Powered by Slackware 7.1 ] [ http://www.geocities.com/andre_casteliano/ ] +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+ [ LinuxCall - The Linux Dialer ] [ http://linuxcall.sourceforge.net ] +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+ |
From: Marcelo B. <md...@ma...> - 2000-11-19 01:44:09
|
Tava dando uma olhada nos bookmarks do nerdscape, e acabei encontrando isso ai: Text-Terminal-HOWTO http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html_single/Text-Terminal-HOWTO.html Pra quem ta afim de manjar de operações com terminais, parece uma boa pedida. []s -- #=-=[ ser...@us... ]=-=+=#=--------------=# | Marcelo D. Beckmann --user[]="#173935"-- | | CL5 2.2.14 | md...@ma... UIN [53189692]----+ | Slack 7 2.2.13 # - =-#--=[ http://marcelobeckmann.cjb.net ]=--#-==-==-==-==-==-# + .~. | 233MMX 32MB 8.4+3.2GB Quantum Fireball ] /V\ #------------------466.94----[ OPL3SAx TGUI9680 2MB 33600 ] /(.)\ "Estamos de volta aos tempos em que os homens eram homens ] ^`~´^ e programavam seus próprios drivers de dispositivo."L.T. ] #-====-#----=[ serialcoder ]=- + -=[ http://wm.themes.org ]=-----' RTS-[CTS]-DLE-STX-17-39-35-CRC-F6-66-DLE-ETX-/RTS-[/CTS-RTS]-CTS-[ACK] |
From: C. <dig...@us...> - 2000-11-18 02:54:30
|
Djames Suhanko wrote: > > ééééé ! Ficou d+ ! ;-) > > Jefferson Limeira wrote: > > > > > Parabéns, o banner ficou animal!! Arrasou!!! Valeu Davi, mandou bem manow... ;-) Tou mudando o lay-out do meu site sobre os trecos onboard, e o banner já vai junto... ;-) []'s -- André Casteliano Analista de Sistemas +-=-=[ dig...@us...]=-=-+ [ Linux User: # 178853 Machine: # 79923 ] [ Linux Heavy User - Powered by Slackware 7.1 ] [ http://www.geocities.com/andre_casteliano/ ] +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+ [ LinuxCall - The Linux Dialer ] [ http://linuxcall.sourceforge.net ] +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+ |
From: Djames S. <su...@uo...> - 2000-11-18 00:22:01
|
ééééé ! Ficou d+ ! ;-) Jefferson Limeira wrote: > > Parabéns, o banner ficou animal!! -- ¨°¨ ¨°¨ ¨°¨ * Linux User 158760 * http://djames.suhanko.vila.bol.com.br/ ¨°¨ <<<°>>> |
From: Jefferson L. <hip...@wn...> - 2000-11-17 16:53:17
|
Davi Ferreira wrote: > > Fala galera! > Tudo certo? > > Fiz esse banner aí baseado nas idéias do André! > > Já coloquei ele na Gimp.br e sugiro que vocês coloquem em seus sites (caso > tenham), ou divulguem o banner para seus amigos que possuem um site de > Linux etc. =) > > Abraços, > -- > Davi Tavares Ferreira > Parabéns, o banner ficou animal!! []'s Jefferson Limeira http://www.deathmetal.com.br |
From: Davi F. <da...@li...> - 2000-11-17 16:16:12
|
Fala galera! Tudo certo? Fiz esse banner aí baseado nas idéias do André! Já coloquei ele na Gimp.br e sugiro que vocês coloquem em seus sites (caso tenham), ou divulguem o banner para seus amigos que possuem um site de Linux etc. =) Abraços, -- Davi Tavares Ferreira |
From: C. <dig...@us...> - 2000-11-17 10:56:28
|
Marcelo Beckmann wrote: > > tava revendo os mails aqui, e pintou mais ideias: > --------8<------------ > # char **modem_ati(char *device) > # > # A gente passa como parâmetro a saída da função anterior e recebe um > # vetor com as ATI's do modem... > > Exatamente, o parâmetro anterior seria retornado como parâmetro, sem > o uso de uma variável global. A partir daí, faço a leitura dos ATI's > e escrevo a resposta no vetor, retornando o ponteiro pro mesmo. > --------8<----------- > > Que tal o seguinte: Essa me pareceu mais interessante... > int modem_ati(int fd, char **modem_ati) > Quanto aos parâmetros: > char device: passaria o número da porta, ttyS[device] > int fd: passaria o file descriptor, retornado por uma função, por > exemplo, int openport(char port); > > Tudo é possivel, não há problema algum em implementar de uma forma ou > outra, digam ai o que voces acham melhor. > > Alex e interface texto, seja em C ou script: > Acham valido um executavelzinho pra resetar o modem, ou localizar o > modem? Esse executavel retornaria 0 (sucesso) ou outros valores para > codigos de erros. O valor de retorno pode ser aproveitado por um > script ou um prog em C. Com certeza... se puder fazer, vai ser uma boa... :) > Nesse caso, achariam legal que fosse?: > resetmodem [x] > > sendo x a porta do modem. Essa mais simples parece ser melhor... > Em anexo, estou enviando o modem.c > Ele vasculha as portas ttyS0 a ttyS3 em busca de algum modem. > > O retorno dele é algo parecido com: digitalcoder [alcs]$ sudo ./modem Modem Seek and Destroy - versão 0.2 Seek modem at ttyS0: (0)(1)(2) ...nothing :( Seek modem at ttyS1: unable to open port Seek modem at ttyS2: unable to open port Seek modem at ttyS3: (0)[9] ...modem found!!! digitalcoder [alcs]$ Só é uma pena que não esteja funcionando como usuário comum... Talvez tenhamos que usar akele lance do fork como root (UID 0) para que o user comum possa usar essas funções... > Entre []'s, o numero de bytes recebidos do modem. hehehhe... mexa o mouse durante o scan da tttS0... ;-) > Aqui, se rodar como root, abro e escrevo a ttyS0, mas nela esta > rodando tb o gpm, entao, tenho que dar um restart no gpm apos rodar o > 'modem'. Estejam preparados para isso, de preferencia rodem no > terminal, já que pode travar o mouse. :( Curioso, testei aki no X, com mouse pendurado no gpm (no XF86Config, o device do mouse é o /dev/gpmdata) e não teve nada demais... mouse na boa... :) > Aqui testei em dois modems: > * boca SRS33600, em ttyS3 > * microcom deskporte 14400, externo, ligado em ttyS1 Aki eu testei com um Trellis, 28.8 ISA, funcionou sem problemas tb. Marcelo, quanto à akele lance do winmodem cara, o f*da é que se o driver dele não estiver carregado, não rola. Tipo, no caso do HSP por exemplo: se vc não carregar o pctel.o, o /dev/ttyS15 fica "NULL". Nesses casos, o mais correto seria um scan no link simbólico (o kppp faz isso) em /dev/modem... dá prá implementar ? > Se puderem testar ai, eu agradeço. Se encontrarem algum problema, > ou se não funcionar muito bem, me avisem pra eu poder corrigir. Aki funcionou sem problemas... > Na sequencia, estarei mandando as funcoes preparadas > especificamente para o Andre e o Alex usarem na interface/scripts. Opa. Maravilha mano... valeu aí o gaz que vc tá dando na coisa... Eu tava todo empolgado tb, mas de uma hora prá outra apareceu um monte de trampo aki.... puts, é bom e é ruim. :) Ainda não tive tempo de implementar as funcs de acesso ao arkivo, mas se Deus quiser ainda nesse fim de semana a coisa sai... :) Ps: Eae Amauri, bem vindo de volta cara !!! :P Peguei uns trecos legais sobre o GTK e pasmem !!! Ainda nesse fim de semana deve sair um BETA _funcional_ da interface em gtk (mesmas funcionalidades do atual BETA da XSTEP. :))) []'s -- André Casteliano Analista de Sistemas +-=-=[ dig...@us...]=-=-+ [ Linux User: # 178853 Machine: # 79923 ] [ Linux Heavy User - Powered by Slackware 7.1 ] [ http://www.geocities.com/andre_casteliano/ ] +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+ [ LinuxCall - The Linux Dialer ] [ http://linuxcall.sourceforge.net ] +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+ |
From: Marcelo B. <md...@ma...> - 2000-11-17 01:07:56
|
---[ printf("Em ter, 14 nov 2000, aal...@am... escreveu"); ]--- # Olá moçada !!!! Fala Amauri, blz? # Coders, voltei de férias e estou bem animado. Também arrumei um modem que # fala no linux em casa, assim dá pra acompanhar as discussões on-line. Férias rlz! E o modem melhor ainda. Eu tou sempre online no icq (53189692), e procuro estar tb no canal do irc. Qualquer coisa tamos na area, se derrubar é penalti :) # Essas funções eu fiquei de fazer e vou trabalhar nelas, também tô estudando # GTK, logo já já eu te alcanço André. Vou tentar implementar essas funções # essa semana. Beleza Amauri, é bom saber que voce está de volta dando uma força. # Qualquer sugestão contra ou a favor podem mandar. Por mim, só a favor :) # Abraços # Abração ai, -- #=-=[ ser...@us... ]=-=+=#=--------------=# | Marcelo D. Beckmann --user[]="#173935"-- | | CL5 2.2.14 | md...@ma... UIN [53189692]----+ | Slack 7 2.2.13 # - =-#--=[ http://marcelobeckmann.cjb.net ]=--#-==-==-==-==-==-# + .~. | 233MMX 32MB 8.4+3.2GB Quantum Fireball ] /V\ #------------------466.94----[ OPL3SAx TGUI9680 2MB 33600 ] /(.)\ "Estamos de volta aos tempos em que os homens eram homens ] ^`~´^ e programavam seus próprios drivers de dispositivo."L.T. ] #-====-#----=[ serialcoder ]=- + -=[ http://wm.themes.org ]=-----' RTS-[CTS]-DLE-STX-17-39-35-CRC-F6-66-DLE-ETX-/RTS-[/CTS-RTS]-CTS-[ACK] |
From: Marcelo B. <md...@ma...> - 2000-11-17 01:01:43
|
tava revendo os mails aqui, e pintou mais ideias: --------8<------------ # char **modem_ati(char *device) # # A gente passa como parâmetro a saída da função anterior e recebe um # vetor com as ATI's do modem... Exatamente, o parâmetro anterior seria retornado como parâmetro, sem o uso de uma variável global. A partir daí, faço a leitura dos ATI's e escrevo a resposta no vetor, retornando o ponteiro pro mesmo. --------8<----------- Que tal o seguinte: int modem_ati(char device, char **modem_ati) ou int modem_ati(int fd, char **modem_ati) Valores de retorno: 0 - OK 1 - Erro: não leu nada 2 - Erro: leu apenas alguns ATIs, falhou em outros Quanto aos parâmetros: char device: passaria o número da porta, ttyS[device] int fd: passaria o file descriptor, retornado por uma função, por exemplo, int openport(char port); Tudo é possivel, não há problema algum em implementar de uma forma ou outra, digam ai o que voces acham melhor. Alex e interface texto, seja em C ou script: Acham valido um executavelzinho pra resetar o modem, ou localizar o modem? Esse executavel retornaria 0 (sucesso) ou outros valores para codigos de erros. O valor de retorno pode ser aproveitado por um script ou um prog em C. Nesse caso, achariam legal que fosse?: resetmodem [x] sendo x a porta do modem. Poderia ser feito tb um: atimodem x [output-file] Retornaria as respostas dos ATI's, em stdout (caso não seja passado o segundo parametro), ou escreveria em um arquivo. x, novamente, é a porta ttyS[x] do modem. A saida tb poderia ser redirecionada para um pipe, outro comando, etc. Em anexo, estou enviando o modem.c Ele vasculha as portas ttyS0 a ttyS3 em busca de algum modem. O retorno dele é algo parecido com: [marcelo@arise linuxcall]$ ./modem.exe Modem Seek and Destroy - versão 0.2 Seek modem at ttyS0: unable to open port * ver mais adiante Seek modem at ttyS1: (0)(1)(2) ...nothing :( Seek modem at ttyS2: unable to open port * ver mais adiante Seek modem at ttyS3: (0)[9] ...modem found!!! O que significa isso? unable to open port: Estou rodando como usuario comum. [marcelo@arise linuxcall]$ l /dev/ttyS* crw------- 1 root tty 4, 64 Nov 16 20:38 /dev/ttyS0 crw----rw- 1 root tty 4, 65 Nov 16 22:43 /dev/ttyS1 crw------- 1 root tty 4, 66 May 5 1998 /dev/ttyS2 crw----rw- 1 root tty 4, 67 Nov 16 22:43 /dev/ttyS3 Tenho poder de escrita/leitura só em ttyS1 e ttyS3, por isso o unable na 0 e 2. Entre parenteses, esta o numero de tentativas de envio de AT para o modem. O programa faz 3 tentativas. Entre []'s, o numero de bytes recebidos do modem. Aqui, se rodar como root, abro e escrevo a ttyS0, mas nela esta rodando tb o gpm, entao, tenho que dar um restart no gpm apos rodar o 'modem'. Estejam preparados para isso, de preferencia rodem no terminal, já que pode travar o mouse. :( Aqui testei em dois modems: * boca SRS33600, em ttyS3 * microcom deskporte 14400, externo, ligado em ttyS1 Ambos foram detectados sem problemas. Para compilar o programa, executem: gcc modem.c -o modem e rodem com: ./modem Se puderem testar ai, eu agradeço. Se encontrarem algum problema, ou se não funcionar muito bem, me avisem pra eu poder corrigir. Na sequencia, estarei mandando as funcoes preparadas especificamente para o Andre e o Alex usarem na interface/scripts. Quanto a internacionalização da interface, acabou ficando de lado, eu não estava prevendo que trabalharia tanto nos ultimos dias, acabei dando um trampo no final de semana/feriado, o que não estava previsto :( Bom, por enquanto é isso pessoal, na medida do possivel vou mandando mais coisa ai. []s -- #=-=[ ser...@us... ]=-=+=#=--------------=# | Marcelo D. Beckmann --user[]="#173935"-- | | CL5 2.2.14 | md...@ma... UIN [53189692]----+ | Slack 7 2.2.13 # - =-#--=[ http://marcelobeckmann.cjb.net ]=--#-==-==-==-==-==-# + .~. | 233MMX 32MB 8.4+3.2GB Quantum Fireball ] /V\ #------------------466.94----[ OPL3SAx TGUI9680 2MB 33600 ] /(.)\ "Estamos de volta aos tempos em que os homens eram homens ] ^`~´^ e programavam seus próprios drivers de dispositivo."L.T. ] #-====-#----=[ serialcoder ]=- + -=[ http://wm.themes.org ]=-----' RTS-[CTS]-DLE-STX-17-39-35-CRC-F6-66-DLE-ETX-/RTS-[/CTS-RTS]-CTS-[ACK] |
From: Davi F. <da...@li...> - 2000-11-14 11:09:37
|
On Seg, 13 Nov 2000 22:27:09 Marcelo Beckmann wrote: > Eu só queria aproveitar pra pedir pra mudar o meu email pra > ser...@us..., tanto na interface quanto na HP, > pode ser? Beleza, a noita vou alterar os screenshots e mudo seu e-mail tambem, ok? Abracos, -- Davi Tavares Ferreira |
From: Davi F. <da...@li...> - 2000-11-14 11:08:39
|
On Seg, 13 Nov 2000 21:25:28 André Casteliano wrote: > Eae pessoal, tudo jóia ? > > Davi, a page em english ficou massa mano... valeu aí por corrigir os > erros que eu tinha cometido no texto :) > > Bom, vc usou a mesma imagem na home page em inglês, ou seja, usou os > screens da versão em português... ;-) > > Tou mandando esses screens da versão em inglês procê por lá, ok ? Beleza =) Eu ia falar isso mesmo com voce! Vendo os shots, seguem ai algumas sugestoes: - coloca "Hang up" no botao de desconectar, acho que deve caber la ne, pra nao precisar abreviar. =) - na tela de sobre, nao da pra colocar a URL da pagina, "clicavel" de preferencia =) E isso... abracao! -- Davi Tavares Ferreira |
From: Marcelo B. <md...@ma...> - 2000-11-14 04:29:50
|
---[ printf("Em seg, 13 nov 2000, André Casteliano escreveu"); ]--- # Eae pessoal tudo beleza ? # # Marcelo, tava dando uma olhadinha nakeles fontes que vc me mandou # mano... essa newt é legal prá caramba, hein ??? # # É tipo a xstep, facinha de mexer... É, eu bem que falei :) Pra fazer interfaces de configuradores com ela é o que há, fácil e rápido de implementar. # Cara, acho que amanhã já vou ter terminado de retirar os bugs da lista # encadeada e concluído as funções de leitura/gravação do arkivo de # config, então, acho que vou assumir tb a parte da interface em modo # texto... ;-) Ok André. Se precisar fazer telinhas de configuração, manda pra mim ai o que precisa que eu faço (em newt, claro :) Mas se você for fazer algo em curses, ai deixo contigo, acho que você mexeu mais com ncurses do que eu. # Só uma coisa: onde acho mais informações sobre essa lib ??? Uma tutorial # ou howto viria a calhar... ;-) No pacote devel dela tem um tutorial em sgml. Eu tenho ele aqui já 'compilado' em html, tou te mandando em pvt. Com esse tutorial eu consegui me virar e fazer tudo que eu precisava. Se alguém mais tiver afim é só dizer que eu mando tb. PS.: "Beginning Linux Programming" a caminho, em uns 20 dias deve chegar, hurruuuuu []s -- #=-=[ ser...@us... ]=-=+=#=--------------=# | Marcelo D. Beckmann --user[]="#173935"-- | | CL5 2.2.14 | md...@ma... UIN [53189692]----+ | Slack 7 2.2.13 # - =-#--=[ http://marcelobeckmann.cjb.net ]=--#-==-==-==-==-==-# + .~. | 233MMX 32MB 8.4+3.2GB Quantum Fireball ] /V\ #------------------466.94----[ OPL3SAx TGUI9680 2MB 33600 ] /(.)\ "Estamos de volta aos tempos em que os homens eram homens ] ^`~´^ e programavam seus próprios drivers de dispositivo."L.T. ] #-====-#----=[ serialcoder ]=- + -=[ http://wm.themes.org ]=-----' RTS-[CTS]-DLE-STX-17-39-35-CRC-F6-66-DLE-ETX-/RTS-[/CTS-RTS]-CTS-[ACK] |
From: Marcelo B. <md...@ma...> - 2000-11-14 04:29:47
|
---[ printf("Em seg, 13 nov 2000, André Casteliano escreveu"); ]--- # serialcoder wrote: # > # > Falar nisso, se você (André) e o Alex já tiverem algumas necessidades # > em mente ai, tipo "função pra resetar modem", "função pra ler ATI's # > do modem", me passem ai o que voces precisam quanto a parametros de # > entrada e saida, coisa e tal, que ai já vou caminhando nesse sentido. # # Hum... que tal: # # int modem_found(void) # # Retorna verdadeiro (1) ou falso (0). Se achou o modem retorna # verdadeiro, se não achou retorna falso... # # char *device(void) # # Essa a gente só usaria caso a func acima retornasse verdadeiro, ou seja, # indicando que tem um modem instalado. Aí a gente usa essa prá saber em # qual ttyS* esse modem está... Ok André. Só queria colocar algumas considerações: * no caso da int modem(void), você gostaria que procurasse modem em quais portas? Apenas as padrões (ttyS0 a ttyS3) ? Ou seria interessante procurar em outras? Eu nunca usei winmodens, e não sei bem como eles se comportam, já vi por ai que alguns winmodens usam ttyS15, por exemplo. Alguma informação nesse sentido poderia me ser útil. * Valores de retorno: poderia ser feito da seguinte forma: 0 = achou modem 1 = não conseguiu abrir porta 2 = abriu porta, mas estourou timeout pra receber resposta Acha válido isso, ou não? Poderia também ser feito da seguinte forma: int modem_found(char *ttyS) Além de retornar se achou modem ou não, poderia retornar em ttyS qual das seriais foi encontrado o modem. A passagem do parâmetro 'ttyS' evitaria o uso de alguma variável global. # char **modem_ati(char *device) # # A gente passa como parâmetro a saída da função anterior e recebe um # vetor com as ATI's do modem... Exatamente, o parâmetro anterior seria retornado como parâmetro, sem o uso de uma variável global. A partir daí, faço a leitura dos ATI's e escrevo a resposta no vetor, retornando o ponteiro pro mesmo. # char *ati(char *device, int ati) # # Vc passa como parâmetro além do device do modem, também a ati que vc # quer como resposta (ati 1, ati 2, etc). E a func retorna... se vc # especificar um ati inválido, a função retorna NULL... Ok, tranquilo. Nesse caso, ati pode ser um char, que já dá conta do recado. # ------------------------- [corta] # # Agora se vc tiver com mais tempo e paciência, pode aprofundar mais... :) # # char *speed(char *device) # # Retorna a velocidade do modem. # # char *model(char *device) # # Retorna o modelo do modem (USR 33.6, etc, etc, etc) A velocidade e o modelo, se não me engano, estão em um dos ATI's. Vou dar uma consultada nos comandos de modem, e ver se tem mais alguma característica interessante que possa ser usada. # int reset_modem(char *device) # # Retorna verdadeiro caso tenha resetado com sucesso o modem e falso caso # contrário Tranquilo de ser implementado tb. # ------------------------ [corta] # # É isso aí mano, se tiver mais alguma idéia ou os demais coders quiserem # complementar a minha, sintam-se à vontade... :) Beleza, vamos nessa. []s -- #=-=[ ser...@us... ]=-=+=#=--------------=# | Marcelo D. Beckmann --user[]="#173935"-- | | CL5 2.2.14 | md...@ma... UIN [53189692]----+ | Slack 7 2.2.13 # - =-#--=[ http://marcelobeckmann.cjb.net ]=--#-==-==-==-==-==-# + .~. | 233MMX 32MB 8.4+3.2GB Quantum Fireball ] /V\ #------------------466.94----[ OPL3SAx TGUI9680 2MB 33600 ] /(.)\ "Estamos de volta aos tempos em que os homens eram homens ] ^`~´^ e programavam seus próprios drivers de dispositivo."L.T. ] #-====-#----=[ serialcoder ]=- + -=[ http://wm.themes.org ]=-----' RTS-[CTS]-DLE-STX-17-39-35-CRC-F6-66-DLE-ETX-/RTS-[/CTS-RTS]-CTS-[ACK] |
From: Marcelo B. <md...@ma...> - 2000-11-14 04:29:46
|
---[ printf("Em seg, 13 nov 2000, André Casteliano escreveu"); ]--- # # Eae pessoal, tudo jóia ? # # Davi, a page em english ficou massa mano... valeu aí por corrigir os # erros que eu tinha cometido no texto :) # # Bom, vc usou a mesma imagem na home page em inglês, ou seja, usou os # screens da versão em português... ;-) # # Tou mandando esses screens da versão em inglês procê por lá, ok ? # Massa André, legal. Eu só queria aproveitar pra pedir pra mudar o meu email pra ser...@us..., tanto na interface quanto na HP, pode ser? No mais, abraços e parabéns ai pra todo o pessoal. []s -- #=-=[ ser...@us... ]=-=+=#=--------------=# | Marcelo D. Beckmann --user[]="#173935"-- | | CL5 2.2.14 | md...@ma... UIN [53189692]----+ | Slack 7 2.2.13 # - =-#--=[ http://marcelobeckmann.cjb.net ]=--#-==-==-==-==-==-# + .~. | 233MMX 32MB 8.4+3.2GB Quantum Fireball ] /V\ #------------------466.94----[ OPL3SAx TGUI9680 2MB 33600 ] /(.)\ "Estamos de volta aos tempos em que os homens eram homens ] ^`~´^ e programavam seus próprios drivers de dispositivo."L.T. ] #-====-#----=[ serialcoder ]=- + -=[ http://wm.themes.org ]=-----' RTS-[CTS]-DLE-STX-17-39-35-CRC-F6-66-DLE-ETX-/RTS-[/CTS-RTS]-CTS-[ACK] |
From: Alex B. <ne...@za...> - 2000-11-14 02:59:45
|
serialcoder wrote: > Falar nisso, se você (André) e o Alex já tiverem algumas necessidades > em mente ai, tipo "função pra resetar modem", "função pra ler ATI's > do modem", me passem ai o que voces precisam quanto a parametros de > entrada e saida, coisa e tal, que ai já vou caminhando nesse sentido. > Cara, eu quero uma que somente reseta o modem, independente do estado atual dele.. se está discando, esperando, parado..etc.. se for possivel. só isso... té mais... -- /------------------------------ \ ____ | Alex Borro - Neo-Linux_Inside | \ \ | Faculdade de Engenharia | |\ >>\ \> | Mecatrônica - UNICAMP |----| \_____\ \_______ >-------------------------------< | L I N U X \ | Powered By LINUX SLACKWARE 7.1|----|________ _______/ | Kernel 2.2.16 User: 164956 | / / | e-mail: ne...@ya... | >>/ /> \-------------------------------/ /___/ The box said "Requeries Windows 9x, Windows NT 4, or better", so I installed Linux. |
From: C. <dig...@us...> - 2000-11-13 23:22:31
|
Eae pessoal, tudo jóia ? Davi, a page em english ficou massa mano... valeu aí por corrigir os erros que eu tinha cometido no texto :) Bom, vc usou a mesma imagem na home page em inglês, ou seja, usou os screens da versão em português... ;-) Tou mandando esses screens da versão em inglês procê por lá, ok ? []'s -- André Casteliano Analista de Sistemas +-=-=[ dig...@us...]=-=-+ [ Linux User: # 178853 Machine: # 79923 ] [ Linux Heavy User - Powered by Slackware 7.1 ] [ http://www.geocities.com/andre_casteliano/ ] +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+ [ LinuxCall - The Linux Dialer ] [ http://linuxcall.sourceforge.net ] +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+ |
From: C. <dig...@us...> - 2000-11-13 23:00:05
|
Eae pessoal tudo beleza ? Marcelo, tava dando uma olhadinha nakeles fontes que vc me mandou mano... essa newt é legal prá caramba, hein ??? É tipo a xstep, facinha de mexer... Cara, acho que amanhã já vou ter terminado de retirar os bugs da lista encadeada e concluído as funções de leitura/gravação do arkivo de config, então, acho que vou assumir tb a parte da interface em modo texto... ;-) Só uma coisa: onde acho mais informações sobre essa lib ??? Uma tutorial ou howto viria a calhar... ;-) []'s -- André Casteliano Analista de Sistemas +-=-=[ dig...@us...]=-=-+ [ Linux User: # 178853 Machine: # 79923 ] [ Linux Heavy User - Powered by Slackware 7.1 ] [ http://www.geocities.com/andre_casteliano/ ] +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+ [ LinuxCall - The Linux Dialer ] [ http://linuxcall.sourceforge.net ] +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+ |
From: C. <dig...@us...> - 2000-11-13 22:59:49
|
serialcoder wrote: > > Falar nisso, se você (André) e o Alex já tiverem algumas necessidades > em mente ai, tipo "função pra resetar modem", "função pra ler ATI's > do modem", me passem ai o que voces precisam quanto a parametros de > entrada e saida, coisa e tal, que ai já vou caminhando nesse sentido. Hum... que tal: int modem_found(void) Retorna verdadeiro (1) ou falso (0). Se achou o modem retorna verdadeiro, se não achou retorna falso... char *device(void) Essa a gente só usaria caso a func acima retornasse verdadeiro, ou seja, indicando que tem um modem instalado. Aí a gente usa essa prá saber em qual ttyS* esse modem está... char **modem_ati(char *device) A gente passa como parâmetro a saída da função anterior e recebe um vetor com as ATI's do modem... Retorna um ponteiro prá ponteiro (um vetor char de duas dimensões), com os retornos do modem. Ou algo mais específico: char *ati(char *device, int ati) Vc passa como parâmetro além do device do modem, também a ati que vc quer como resposta (ati 1, ati 2, etc). E a func retorna... se vc especificar um ati inválido, a função retorna NULL... ------------------------- [corta] Agora se vc tiver com mais tempo e paciência, pode aprofundar mais... :) char *speed(char *device) Retorna a velocidade do modem. char *model(char *device) Retorna o modelo do modem (USR 33.6, etc, etc, etc) int reset_modem(char *device) Retorna verdadeiro caso tenha resetado com sucesso o modem e falso caso contrário ------------------------ [corta] É isso aí mano, se tiver mais alguma idéia ou os demais coders quiserem complementar a minha, sintam-se à vontade... :) []'s -- André Casteliano Analista de Sistemas +-=-=[ dig...@us...]=-=-+ [ Linux User: # 178853 Machine: # 79923 ] [ Linux Heavy User - Powered by Slackware 7.1 ] [ http://www.geocities.com/andre_casteliano/ ] +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+ [ LinuxCall - The Linux Dialer ] [ http://linuxcall.sourceforge.net ] +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+ |
From: Nelson C. de T. F. <nf...@in...> - 2000-11-13 16:54:04
|
> > > Seria algo como inserir a documentação em forma de comentários no > > > meio do código? Se for isso, legal, acho que isso quebra um galhão. > > > > Eh isso e muito mais. A ideia eh que voce organize o programa como se > > estivesse escrevendo um artigo, misturando texto e codigo, de modo que > > voce nao precisa ordenar o programa segundo a logica do computador. > > Interessante mesmo... > Eu ainda não li os links que vc passou prá aprender mais sobre isso e > poder opinar, mas, parece interessante. Apesar de que eu _no momento_ > apóie a idéia do CVS antigão... Na verdade, Literate Programming não está diretamente relacionada com o uso ou não de CVS; aliás, seria ótimo usar os dois simultaneamente! Aqui vão alguns trechos de um artigo de Mark Jason Dominus, que explica porque o método de documentação de Perl, chamado POD, não é Literate Programming: --- The first idea is that good program documentation shouldn't be squeezed into little `comments'. It should be structured more like a technical article for a journal, and it should have all the support that a journal article usually gets, including good typesetting. The programmer should have the opportunity to annotate each section of the code with as much explanation as is necessary and appropriate. So far this sounds just like POD. Where POD comes up short is in the other important idea. Knuth's other idea was that the best order to explain the parts of the program in a journal article is not going to be the same as the order that the computer needs to see the code. When you write a computer program, you have to present the code to the computer in a certain order, or else it doesn't work. This order might not be a good order for explaining the way the program works. For example, you might have unless (open(F, "< $file")) { # 55 lines of error handling here ... } $line = <F>; When you're explaining the program to someone else, you want to talk about opening the file and reading a line. You don't want to have to interrupt yourself with a huge digression about the error handling just because the computer language you're using requires that you put the error handling in between the open and the read; you'd might prefer to talk about the main logic first, and return to discuss the error-handling part much later. For the same reason, having the error handling code in the middle there is no just an impediment to you when you try to explain the code, it's also an impediment to another programmer trying to understand the code. One frequent criticism of C is that it's too hard to follow the flow of logic because it is visually dominated by block after block of error handling code. --- Para maiores detalhes, leiam o artigo! "POD is Not Literate Programming" http://www.perl.com/pub/tchrist/litprog.html []s Nelson __________________________________________________________________ Nelson Ferraz Insite - Solucoes Internet e-mail: nf...@in... http://www.insite.com.br/ |
From: C. <dig...@us...> - 2000-11-12 11:44:05
|
Davi, o link pro meu mail tb tá errado mano... Corrige lá: dig...@us... []'s -- André Casteliano Analista de Sistemas +-=-=[ dig...@us...]=-=-+ [ Linux User: # 178853 Machine: # 79923 ] [ Linux Heavy User - Powered by Slackware 7.1 ] [ http://www.geocities.com/andre_casteliano/ ] +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+ [ LinuxCall - The Linux Dialer ] [ http://linuxcall.sourceforge.net ] +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+ |
From: C. <dig...@us...> - 2000-11-12 11:36:46
|
Eae pessoal ? Davi, na seção links da nova page mano, o link prá o site que eu fiz sobre os winmodems tá errado... :) O correto é: www.geocities.com/andre_casteliano (vc esqueceu o '_' underscore)... ;-) []'s -- André Casteliano Analista de Sistemas +-=-=[ dig...@us...]=-=-+ [ Linux User: # 178853 Machine: # 79923 ] [ Linux Heavy User - Powered by Slackware 7.1 ] [ http://www.geocities.com/andre_casteliano/ ] +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+ [ LinuxCall - The Linux Dialer ] [ http://linuxcall.sourceforge.net ] +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+ |
From: C. <dig...@us...> - 2000-11-12 11:04:59
|
Davi Ferreira wrote: > > Fala galera, > tudo bom? Tudo jóia manow... > O site novo tá no ar já, podem acessá-lo via http://linuxcall.sourceforge.net, TODAS as páginas em português estão feitas. A versão em inglês se der eu faço amanhã. Maravilha cara... é isso ae... :) > Algumas observações: > > - mandem nome, e-mail e função para colocar nos créditos, coloquei quem estava na janela sobre do último screenshot, mas quem for beta-tester, ou estiver envolvido com o projeto de alguma outra forma me fale pra eu colocar lá ok? É pessoal, o Davi precisa dessas infos prá colocar lá... :) > - no contato o formulário está indo para meu e-mail. Existe um e-mail para o LinuxCall? O e-mail da lista recebe e-mail externos? Pra onde devo redirecionar o formulário? Redireciona pro mail da lista mano... a mensagem passa pelo owner da lista prá ser aprovada... nada grave... :) > - confiram a seção de links e vejam se devo retirar/adicionar algum. A mesma coisa para os screenshots. Vou olhar lá e depois comento... :P > - na parte de documentação eu coloquei os READMEs do script. Depois vou colocar o da interface XStep. Seria interessante a gente colocar algum material sobre configuração de modems etc. como havia sido discutido antes. Se alguém tiver alguma coisa aí, ou algum link, me envie. Pois é... desde o início que isso tava programado... tipo, vamos ver melhor isso ae... Depois eu vou te mandar uns docs procê por na page... :P > - retirei do menu o botão "english version", pois achei que estava meio fora de contexto ali. No entanto, agora tem uma página principal, onde a pessoa escolhe o idioma. A página está simpleszinha, mas pretendo incrementá-la mais tarde, quando tiver tempo, beleza? É... tá bem simplezinha mesmo... :))) Mas tá massa, tipow, podia colocar uns enfeites (o ideal seria o logo, mas o Djames ainda naum teve tempo de fazer... :-))))... > - quando colocarem as novas versões para download no SourceForge me avisem para eu alterar os links. Pode deixar mano... sempre que sair novo beta, a gente põe na sourceforge e te passa o link... ;-) > Acho que é isso, se repararem algum erro me avisem, alguma mudança etc. Pode deixar > Tô mandando anexado também um banner, digam o que vocês acham. Maneiro... legal mesmo... adorei. Podia ter mais... ;-) Vários banners, poderíamos ter um animado (gif). "À procura de um discador para o Linux?" "Conheça o revolucionário LinuxCall" "Clique aqui" heheheheh... é só uma idéia gente, calma... :) []'s -- André Casteliano Analista de Sistemas +-=-=[ dig...@us...]=-=-+ [ Linux User: # 178853 Machine: # 79923 ] [ Linux Heavy User - Powered by Slackware 7.1 ] [ http://www.geocities.com/andre_casteliano/ ] +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+ [ LinuxCall - The Linux Dialer ] [ http://linuxcall.sourceforge.net ] +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+ |
From: Marcelo B. <md...@ma...> - 2000-11-12 06:18:01
|
Já está na sourceforge o novo release do linuxcall. O link é: http://download.sourceforge.net/linuxcall/linuxcall-beta-0.7.12.tar.bz2 []s -- #=-=[ ser...@us... ]=-=+=#=--------------=# | Marcelo D. Beckmann --user[]="#173935"-- | | CL5 2.2.14 | md...@ma... UIN [53189692]----+ | Slack 7 2.2.13 # - =-#--=[ http://marcelobeckmann.cjb.net ]=--#-==-==-==-==-==-# + .~. | 233MMX 32MB 8.4+3.2GB Quantum Fireball ] /V\ #------------------466.94----[ OPL3SAx TGUI9680 2MB 33600 ] /(.)\ "Estamos de volta aos tempos em que os homens eram homens ] ^`~´^ e programavam seus próprios drivers de dispositivo."L.T. ] #-====-#----=[ serialcoder ]=- + -=[ http://wm.themes.org ]=-----' RTS-[CTS]-DLE-STX-17-39-35-CRC-F6-66-DLE-ETX-/RTS-[/CTS-RTS]-CTS-[ACK] |