Re: [FUG-BR] acesso ao hardware (via gcc) - complementando

2006-03-29 Por tôpico [EMAIL PROTECTED]
(resposta entre parágrafos do original)

Original Message:
-
From: Antonio Torres [EMAIL PROTECTED]
Date: Tue, 28 Mar 2006 21:56:12 -0300


 O objetivo do programa (pelo que eu entendi) é meramente manter o disco 
 rodando e mover a cabeça da trilha 0 até a 79.. 

exatamente isso :)

 em DOS é bico fazer... um programinha em assembler usando as INTs da 
 BIOS 

pois é.. o programa original é em dos mesmo, usando os INT(xx). Mas isso
não existe nos *nix :(


---
saudações,
irado furioso com tudo
FreeBSD BSD50853/Linux User 179402
As pessoas fazem coisas horríveis por dinheiro, até trabalhar.



mail2web - Check your email from the web at
http://mail2web.com/ .


___
freebsd mailing list
freebsd@fug.com.br
http://lists.fug.com.br/listinfo.cgi/freebsd-fug.com.br


Re: [FUG-BR] acesso ao hardware (via gcc) - complementando

2006-03-29 Por tôpico [EMAIL PROTECTED]
hmm... nem preciso que se escreva mesmo - afinal, não se consegue escrever
nada (ou ler) em floppy de limpeza. Mas vou experimentar o fdformat -
vagamente lembra-me que vai de trilha em trilha mesmo, e o (V)erify é
posterior.


Original Message:
-
From: Paulo Pires [EMAIL PROTECTED]
Date: Tue, 28 Mar 2006 22:58:37 -0300


Alguém pode preferir operações de escrita, ao invés de leitura.  Mas
talvez melhor ainda seja uma operação de formatação do disquete de
limpeza, já que o fdformat(8) vai em trilha por trilha,
independentemente de se a trilha anterior formatou corretamente.

---
saudações,
irado furioso com tudo
FreeBSD BSD50853/Linux User 179402
As pessoas fazem coisas horríveis por dinheiro, até trabalhar.


mail2web - Check your email from the web at
http://mail2web.com/ .


___
freebsd mailing list
freebsd@fug.com.br
http://lists.fug.com.br/listinfo.cgi/freebsd-fug.com.br


Re: [FUG-BR] acesso ao hardware (via gcc) - complementando

2006-03-28 Por tôpico Celso Viana
Irado,

O que significa ... um skeleton...?

Celso

Em 27/03/06, [EMAIL PROTECTED][EMAIL PROTECTED] escreveu:
 bem.. um 'skeleton' de função que acesse diretamente o floppy na função
 leitura ou gravação, ou seja, qualquer coisa assim como:
 track == 0;
 { while track  79
   read track++; (ou write)
  }

 (atenção: minha memória, após 15 anos sem programar em 'c', tá meio
 combalida - risos)

 abraços,

 irado
 Original Message:
 -
 From: Eder [EMAIL PROTECTED]
 Date: Mon, 27 Mar 2006 20:46:32 -0300

 A resposta é sim o FreeBSD possui vários (header's) para fazer
 acesso direto ao hadware da máquina.

 Mais o que você quer precissamente.



 
 mail2web - Check your email from the web at
 http://mail2web.com/ .


 ___
 freebsd mailing list
 freebsd@fug.com.br
 http://lists.fug.com.br/listinfo.cgi/freebsd-fug.com.br



--
Celso Vianna
BSD User: 51318
http://www.bsdcounter.org

Palmas/TO
___
freebsd mailing list
freebsd@fug.com.br
http://lists.fug.com.br/listinfo.cgi/freebsd-fug.com.br


Re: [FUG-BR] acesso ao hardware (via gcc) - complementando

2006-03-28 Por tôpico [EMAIL PROTECTED]
amostra de função, um padrão qualquer, que mostra a ´montagem´ da
verdadeira função, onde trocaríamos os parâmetros e/ou variáveis.

mais ou menos:

void nome-de-função(void)
{
conteúdo
conteúdo
conteúdo
} 

Original Message:
-
From: Celso Viana [EMAIL PROTECTED]

O que significa ... um skeleton...?




mail2web - Check your email from the web at
http://mail2web.com/ .


___
freebsd mailing list
freebsd@fug.com.br
http://lists.fug.com.br/listinfo.cgi/freebsd-fug.com.br


Re: [FUG-BR] acesso ao hardware (via gcc) - complementando

2006-03-28 Por tôpico Paulo Pires
On 3/27/06, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote:
 bem.. um 'skeleton' de função que acesse diretamente o floppy na função
 leitura ou gravação, ou seja, qualquer coisa assim como:
 track == 0;
 { while track  79
   read track++; (ou write)
  }

Que mal lhes pergunte, se se fizer um simples

dd if=/dev/fd0 of=/dev/null bs=36b skip=N count=1

o driver de floppy, em resposta ao lseek(2) condicionado ao parâmetro
skip, não vai levar o cabeçote para a trilha N?
--
Um abraço.
Paulo A. P. Pires

... Qui habet aurem audiat quid Spiritus dicat ecclesiis.
___
freebsd mailing list
freebsd@fug.com.br
http://lists.fug.com.br/listinfo.cgi/freebsd-fug.com.br


Re: [FUG-BR] acesso ao hardware (via gcc) - complementando

2006-03-28 Por tôpico Antonio Torres
Paulo Pires wrote:
 On 3/27/06, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote:
 bem.. um 'skeleton' de função que acesse diretamente o floppy na função
 leitura ou gravação, ou seja, qualquer coisa assim como:
 track == 0;
 { while track  79
   read track++; (ou write)
  }
 
 Que mal lhes pergunte, se se fizer um simples
 
 dd if=/dev/fd0 of=/dev/null bs=36b skip=N count=1
 
...

não vai sair da trilha 0 setor 0: o `dd` tem um monte de verificações 
de erros... vai dar erro de leitura logo de cara

O objetivo do programa (pelo que eu entendi) é meramente manter o disco 
rodando e mover a cabeça da trilha 0 até a 79..


em DOS é bico fazer... um programinha em assembler usando as INTs da 
BIOS


[]s

Antonio Torres
___
freebsd mailing list
freebsd@fug.com.br
http://lists.fug.com.br/listinfo.cgi/freebsd-fug.com.br


Re: [FUG-BR] acesso ao hardware (via gcc) - complementando

2006-03-28 Por tôpico Paulo Pires
On 3/28/06, Antonio Torres [EMAIL PROTECTED] wrote:
 Paulo Pires wrote:
  On 3/27/06, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote:
  bem.. um 'skeleton' de função que acesse diretamente o floppy na função
  leitura ou gravação, ou seja, qualquer coisa assim como:
  track == 0;
  { while track  79
read track++; (ou write)
   }
 
  Que mal lhes pergunte, se se fizer um simples
 
  dd if=/dev/fd0 of=/dev/null bs=36b skip=N count=1
 
 ...

 não vai sair da trilha 0 setor 0: o `dd` tem um monte de verificações
 de erros... vai dar erro de leitura logo de cara

Então vejamos.  O dd não vai ser mais esperto do que as chamadas que
ele faz para realizar o I/O.  Fiz um teste e vi que não dá erro no
open(2) nem no lseek(2), só no read(2).  Resta saber se o movimento da
cabeça realmente ocorre no momento do read(2), ou se ele tenta ler
alguma coisa antes de movimentá-la.  Se não depender de um estado
anterior, o seguinte script se presta muito bem (embora seja
miseravelmente ineficiente).

#!/bin/sh
a=0
while [ $a -lt 80 ]; do
dd if=/dev/fd0 of=/dev/null bs=36b skip=$a count=1 2 /dev/null
a=`expr $a + 1`
done


Vai aparecer uma montanha de erros no console, mas não se está
tentando ler um disquete de verdade.  (A julgar pelo barulho de seek
de cabeçote no meu drive, mesmo vazio (para (mal-)simular um disquete
que vai dar erro de todo jeito), acho que funciona.)

Alguém pode preferir operações de escrita, ao invés de leitura.  Mas
talvez melhor ainda seja uma operação de formatação do disquete de
limpeza, já que o fdformat(8) vai em trilha por trilha,
independentemente de se a trilha anterior formatou corretamente.

 O objetivo do programa (pelo que eu entendi) é meramente manter o disco
 rodando e mover a cabeça da trilha 0 até a 79..


 em DOS é bico fazer... um programinha em assembler usando as INTs da
 BIOS


 []s

 Antonio Torres
 ___
 freebsd mailing list
 freebsd@fug.com.br
 http://lists.fug.com.br/listinfo.cgi/freebsd-fug.com.br



--
Um abraço.
Paulo A. P. Pires

... Qui habet aurem audiat quid Spiritus dicat ecclesiis.
___
freebsd mailing list
freebsd@fug.com.br
http://lists.fug.com.br/listinfo.cgi/freebsd-fug.com.br


[FUG-BR] acesso ao hardware (via gcc) - complementando

2006-03-27 Por tôpico [EMAIL PROTECTED]
bem, complementando:

muitos séculos atrás eu cometi um pequeno programa em turbo-c o qual,
acessando o hardware (floppy) diretamente, fazia uma ´leitura´ das trilhas
0 a 79, trilha a trilha. Bem, não havia leitura alguma, apenas o
deslocamento da cabeça por essas trilhas, sendo que o diskette era o
conhecido(?) dispositivo para limpeza de cabeças. Com isso, eu evitava
ficar digitando insaciávelmente ´dir´ (era dos, não esqueçam) além de
evitar o desgaste apenas da trilha 0 do diskette de limpeza.

A idéia agora é (re)fazer o programa para funcionar em FreeBSD, mas eu
precisaria saber os int(errupts) correspondentes. Com certeza deve haver um
´#include.h´ pra isso e, possívelmente, não seja visível no fonte do
kernel. Mas - seguramente - vou olhar o fonte sim, mas só no fim de semana.

Ah, em asm eu creio que é imraticável, pra mim pelo menos, que já nem vejo
isso desde.. hmmm.. ´79/80..

se alguém tiver alguma idéia de onde procurar, a semântica empregada
(pragma, inline, int-xx, etc), já ajudará bastante :)

obrigado.




mail2web - Check your email from the web at
http://mail2web.com/ .


___
freebsd mailing list
freebsd@fug.com.br
http://lists.fug.com.br/listinfo.cgi/freebsd-fug.com.br


Re: [FUG-BR] acesso ao hardware (via gcc) - complementando

2006-03-27 Por tôpico Antonio Torres
[EMAIL PROTECTED] wrote:
 bem, complementando:
 
 muitos séculos atrás eu cometi um pequeno programa em turbo-c o qual,
 acessando o hardware (floppy) diretamente, fazia uma ´leitura´ das trilhas
 0 a 79, trilha a trilha. Bem, não havia leitura alguma, apenas o
 deslocamento da cabeça por essas trilhas, sendo que o diskette era o
 conhecido(?) dispositivo para limpeza de cabeças. Com isso, eu evitava
 ficar digitando insaciávelmente ´dir´ (era dos, não esqueçam) além de
 evitar o desgaste apenas da trilha 0 do diskette de limpeza.
 
...


no FreeBSD 6 (cvsup  1 semana), de uma olhada em

/usr/src/lib/libdisk/test01.c

é um programinha com diversos acessos diretos a trilhas e setores de fd.

Não sei se é o que voce precisa, mas pode ser um excelente ponto de partida.


[]s

Antonio Torres
___
freebsd mailing list
freebsd@fug.com.br
http://lists.fug.com.br/listinfo.cgi/freebsd-fug.com.br


Re: [FUG-BR] acesso ao hardware (via gcc) - complementando

2006-03-27 Por tôpico Nilton Jose Rizzo
On Mon, 27 Mar 2006 09:49:00 -0500, [EMAIL PROTECTED] wrote
 bem, complementando:
 
 muitos séculos atrás eu cometi um pequeno programa em turbo-c o qual,
 acessando o hardware (floppy) diretamente, fazia uma ´leitura´ das trilhas
 0 a 79, trilha a trilha. Bem, não havia leitura alguma, apenas o
 deslocamento da cabeça por essas trilhas, sendo que o diskette era o
 conhecido(?) dispositivo para limpeza de cabeças. Com isso, eu 
 evitava ficar digitando insaciávelmente ´dir´ (era dos, não esqueçam)
  além de evitar o desgaste apenas da trilha 0 do diskette de limpeza.

   Irado,
 
   Da uma olhada em man -k device (device_get*, device_set*)
veja se com isso voce consegue fazer o que precisa ser feito.

   Partindo do principio que o  nosso sistema é multitarefa
os acessos *devem* ser feitos através de API do kernel, *acho*
(quase certeza absoluta) que não tem como fazer isso em userland
direto e nem é preciso usar assembler, pos tbm não tem acesso
direto aos dispositivos.

  Rizzo
 
 A idéia agora é (re)fazer o programa para funcionar em FreeBSD, mas 
 eu precisaria saber os int(errupts) correspondentes. Com certeza 
 deve haver um ´#include.h´ pra isso e, possívelmente, não seja 
 visível no fonte do kernel. Mas - seguramente - vou olhar o fonte 
 sim, mas só no fim de semana.
 
 Ah, em asm eu creio que é imraticável, pra mim pelo menos, que já 
 nem vejo isso desde.. hmmm.. ´79/80..
 
 se alguém tiver alguma idéia de onde procurar, a semântica empregada
 (pragma, inline, int-xx, etc), já ajudará bastante :)
 
 obrigado.
 
 
 mail2web - Check your email from the web at
 http://mail2web.com/ .
 
 ___
 freebsd mailing list
 freebsd@fug.com.br
 http://lists.fug.com.br/listinfo.cgi/freebsd-fug.com.br


--
Nilton José Rizzo
805 Informatica
021 2413 9786

___
freebsd mailing list
freebsd@fug.com.br
http://lists.fug.com.br/listinfo.cgi/freebsd-fug.com.br


Re: [FUG-BR] acesso ao hardware (via gcc) - complementando

2006-03-27 Por tôpico Marcelo Vilela
Olá,

O uso de __asm é igual para todas as plataformas, existem muitos sites que
falam a respeito, além da maioria de bons livros de C.

Quanto as int, o FreeBSD (como os outros UNIX) usa apenas a int 80 para
acesso ao sistema, tem alguma documentação no Architecture Handbook do
FreeBSD e algo no site http://www.int80h.org.

Abraços.

Em 27/03/06, Nilton Jose Rizzo [EMAIL PROTECTED] escreveu:

 On Mon, 27 Mar 2006 09:49:00 -0500, [EMAIL PROTECTED] wrote
  bem, complementando:
 
  muitos séculos atrás eu cometi um pequeno programa em turbo-c o qual,
  acessando o hardware (floppy) diretamente, fazia uma ´leitura´ das
 trilhas
  0 a 79, trilha a trilha. Bem, não havia leitura alguma, apenas o
  deslocamento da cabeça por essas trilhas, sendo que o diskette era o
  conhecido(?) dispositivo para limpeza de cabeças. Com isso, eu
  evitava ficar digitando insaciávelmente ´dir´ (era dos, não esqueçam)
   além de evitar o desgaste apenas da trilha 0 do diskette de limpeza.

Irado,

Da uma olhada em man -k device (device_get*, device_set*)
 veja se com isso voce consegue fazer o que precisa ser feito.

Partindo do principio que o  nosso sistema é multitarefa
 os acessos *devem* ser feitos através de API do kernel, *acho*
 (quase certeza absoluta) que não tem como fazer isso em userland
 direto e nem é preciso usar assembler, pos tbm não tem acesso
 direto aos dispositivos.

   Rizzo
 
  A idéia agora é (re)fazer o programa para funcionar em FreeBSD, mas
  eu precisaria saber os int(errupts) correspondentes. Com certeza
  deve haver um ´#include.h´ pra isso e, possívelmente, não seja
  visível no fonte do kernel. Mas - seguramente - vou olhar o fonte
  sim, mas só no fim de semana.
 
  Ah, em asm eu creio que é imraticável, pra mim pelo menos, que já
  nem vejo isso desde.. hmmm.. ´79/80..
 
  se alguém tiver alguma idéia de onde procurar, a semântica empregada
  (pragma, inline, int-xx, etc), já ajudará bastante :)
 
  obrigado.
 
  
  mail2web - Check your email from the web at
  http://mail2web.com/ .
 
  ___
  freebsd mailing list
  freebsd@fug.com.br
  http://lists.fug.com.br/listinfo.cgi/freebsd-fug.com.br


 --
 Nilton José Rizzo
 805 Informatica
 021 2413 9786

 ___
 freebsd mailing list
 freebsd@fug.com.br
 http://lists.fug.com.br/listinfo.cgi/freebsd-fug.com.br

___
freebsd mailing list
freebsd@fug.com.br
http://lists.fug.com.br/listinfo.cgi/freebsd-fug.com.br


Re: [FUG-BR] acesso ao hardware (via gcc) - complementando

2006-03-27 Por tôpico [EMAIL PROTECTED]
bem.. um 'skeleton' de função que acesse diretamente o floppy na função
leitura ou gravação, ou seja, qualquer coisa assim como:
track == 0;
{ while track  79
  read track++; (ou write)
 }

(atenção: minha memória, após 15 anos sem programar em 'c', tá meio
combalida - risos)

abraços,

irado
Original Message:
-
From: Eder [EMAIL PROTECTED]
Date: Mon, 27 Mar 2006 20:46:32 -0300

A resposta é sim o FreeBSD possui vários (header's) para fazer
acesso direto ao hadware da máquina.

Mais o que você quer precissamente.




mail2web - Check your email from the web at
http://mail2web.com/ .


___
freebsd mailing list
freebsd@fug.com.br
http://lists.fug.com.br/listinfo.cgi/freebsd-fug.com.br