Newsgroup: it.hobby.elettronica.digitale
Titolo: gestione bidirezionale LTP1

CERCO descrizione della modalità d'uso bidirezioale della porta
parallela sfruttando il registro dati (D0 - D7) sia per l'input che per
l'output e non le linee del registro di controllo.
GRAZIE

Jarod <"...."@....i t> wrote in message
news:8bqoea$ic0$1...@nslave2.tin.it...

Gia` da diversi anni (piu` o meno dai 486 in poi, e nei PS/2 anche da
prima) le parallele Centronics gestiscono la modalita` bidirezionale col
bit 5 dell'output register (BASE+2). Quando setti questo bit, i pin
D0..7 (che puoi accedere da BASE) vanno in alta impedenza e puoi leggere
i dati in ingresso.
Per settare in lettura la parallela (LPT_ADDR e` ovviamente l'indirizzo
di base della parallela, di solito 0x378 per LPT1):
mov dx,LPT_ADDR+2
in al,dx
or al,0x20
out dx,al
Per tornare a settarla in scrittura:
mov dx,LPT_ADDR+2
in al,dx
and al,0xDF
out dx,al
---
Bye! Lorenzo Lutti
http://www.geocities.com/SiliconValley/Peaks/6258/


Riesci a gestire la direzione dati anche da windows ?
Io invece di AND e OR, preferisco usare :
mov dx, porta_base+2 ; Registro controllo.
in al, dx                  ; Preleva il registro per modificarlo.
btr oppure bts al, 5 ; set o reset del bit direzione dati
out dx, al                ;Aggiorna il registro.
ma forse è proprio qui che sbaglio... in Dos riesco agestire la direzione
dati.
Sotto windows invece non riesco a farlo funzionare.
Potresti chiarire le idee anche a me ? perchè in WIN non funziona ?
Grazie anticipatamente.
Massimo Rosellini

 out dx, al                ;Aggiorna il registro.
BTR/BTS/BT funzionano su registri o locazioni a 16 bits e su processori
superiori al 386, quindi ho sbagliato nello scrivere : btr al, 5. Deve
essere BTR AX,5 o BTS AX,5.
Scusate....   sono un novizio.
Oltre a voler fare questa precisazione, volevo sapere dove poter prendere
informazioni per poter utilizzare direttamente i bus del Pc per "chiamare"
eventuali schede autocostruite montate sugli slosts.
E' fantascienza ?  Qualcuno di Voi è già in grado di fare queste magie ?
 Massimo Rosellini

 Riesci a gestire la direzione dati anche da windows ?
Puo` darsi che Windows 9x "intercetti" l'OUT e di fatto non ti permetta
di impostare la direzione. Io l'ho sempre fatto sotto a NT, installando
al volo un driver che mi permette di fare gli IN/OUT in user space. E`
una tecnica "sporchissima", ma c'e` il vantaggio che NT (non
aspettandosi ovviamente che qualcuno possa fare degli OUT in user space)
non trappa le istruzioni e si possono fare delle schifezze mica
indifferenti (riprogrammare il DMA, scrivere direttamente nei registri
IDE... :-)).


 E' fantascienza ?
Tutt'altro, io stesso ho costruito diverse schede su ISA. Ma direi che
anche il bus PCI sia quasi alla portata di un hobbista, ormai.


Che cosa usi ?
Io ho un problema (sotto NT ma anche sotto WIn9x): le prestazioni mi
crollanano (diciamo di un fattore 1:10 ripetto al DOS)
PS: il mio driverino arriva da National_Instruments, con LW/CVI
--
VincenzoVilla (at) iname (dot) com
http://VincenzoV.freeweb.org
http://auditoriumcasatenovo.freeweb.org
Lorenzo Lutti <lorenz...@DOHtiscalinet.it> wrote in message
8c0cms$275$6...@pegasus.tiscalinet.it...


 crollanano (diciamo di un fattore 1:10 ripetto al DOS)
Non l'ho mai dovuto usare in applicazioni dove le prestazioni sono
importanti.
BTW, se ti interessa lo puoi trovare nei sorgenti di PICProg sulla mia
home page; c'e` anche una classe MFC (Visual C++) per
installarlo/deinstallarlo al volo.
