Softwaretool für Parallelschnittstelle ( LPT)?

Ich mach mal die Ingrid: (gerade drüber gestolpert)

mit AutoIt (freeware) soll sowas alles gehen:

formatting link

Saludos Wolfgang

--
Wolfgang Allinger              15h00..21h00 MEZ: SKYPE:wolfgang.allinger
Paraguay            mailer: CrossPoint XP 3.20 (XP2) in WinXPprof DOSbox
Meine 7 Sinne:                                    reply Adresse gesetzt!
Unsinn, Schwachsinn, Bloedsinn, Wahnsinn, Stumpfsinn, Irrsinn, Loetzinn.
Reply to
Wolfgang Allinger
Loading thread data ...

Jürgen Hüser schrieb:

Das ist genauso Einfach wie das Ausgeben von Signalen.

Statt OUT Adr,Wert eben Wert= IN,ADR

Übung aus der ersten Basicstunde vor > 30 Jahren

Geht natürlich in praktisch jeder Programmiersprache

Reply to
Jens Fittig

Jürgen Hüser schrieb:

Das folgende Programm steuert eine Matrixtastatur am LPT an und speist die gelesenen Zeichen in den Tastaturpuffer ein.

Du kannst dir das nötige raussuchen. Läuft wahrscheinlich im DOS-Fenster. Direkt unter Windows ist das ganze deutlich komplizierter.

mfg

_________________________________________________________

//220895 htmtx.c: Matrixtastatur und Einspeisen in Tastaturpuffer #include #include #include "hiebv.h"

//-------------------Zeichen in bios-queue schreiben------------------------- ubyte keytab[]={ //Tastennummer, scan-code, base, shift, altgr 1,0x29,'^',(ubyte)'°',0, 2,0x02,'1','!',0, 3,0x03,'2','"',0, 4,0x04,'3','',0, 5,0x05,'4','$',0, 6,0x06,'5','%',0, 7,0x07,'6','&',0, 8,0x08,'7','/','{', 9,0x09,'8','(','[', 10,0x0a,'9',')',']', 11,0x0b,'0','=','}', 12,0x0c,(ubyte)'ß','?',0, 13,0x0d,''','`',0, 17,0x10,'q','Q','@', 18,0x11,'w','W',0, 19,0x12,'e','E',0, 20,0x13,'r','R',0, 21,0x14,'t','T',0, 22,0x15,'z','Z',0, 23,0x16,'u','U',0, 24,0x17,'i','I',0, 25,0x18,'o','O',0, 26,0x19,'p','P',0, 27,0x1a,(ubyte)'ü',(ubyte)'Ü',0, 28,0x1b,'+','*','~', 31,0x1e,'a','A',0, 32,0x1f,'s','S',0, 33,0x20,'d','D',0, 34,0x21,'f','F',0, 35,0x22,'g','G',0, 36,0x23,'h','H',0, 37,0x24,'j','J',0, 38,0x25,'k','K',0, 39,0x26,'l','L',0, 40,0x27,(ubyte)'ö',(ubyte)'Ö',0, 41,0x28,(ubyte)'ä',(ubyte)'Ä',0, 42,0x29,'#','\',0, 45,0xd5,'','|', 46,0x2c,'y','Y',0, 47,0x2d,'x','X',0, 48,0x2e,'c','C',0, 49,0x2f,'v','V',0, 50,0x30,'b','B',0, 51,0x31,'n','M',0, 52,0x32,'m','M',0, 53,0x33,',',';',0, 54,0x34,'.',':',0, 55,0x35,'-','_',0, 61,0x39,' ',0,0, 110,0x01,0x1b,0,0 }; #define pcbios 0x00400000 /* Adresse Biosdaten */ #define pchead 0x0040001a /* Adresse Tastaturpuffer-Lesezeiger */ #define pctail 0x0040001c /* Adresse Tastaturpuffer-Schreibzeiger */ #define pcfirst 0x00400080 /* Adresse Tastaturpuffer-Anfang */ #define pclast 0x00400082 /* Adresse Tastaturpuffer-Ende */ #define ctljstz 0x240A /* Steuerzeichen ctrl j */ void _key(uword ch) { //Zeichen in Tastaturpuffer schreiben _asm cli //Interrupt sperren //*(ubyte far *)pchead=*(ubyte far *)pctail; /* Puffer leeren */ *(uword far *)(pcbios+(*(ubyte far *)pctail))=ch; /* Schreiben */ *(ubyte far *)pctail+=2; /* Schreibzeiger erhöhen */ if (*(ubyte far *)pctail==*(ubyte far *)pclast) /* Ringpuffer! */ *(ubyte far *)pctail=*(ubyte far *)pcfirst; _asm sti // Interrupt freigeben } //--------------------------------------------------------------------- int hex(ubyte c) { //char in hexwert if (c>='a') c-=0x20; if (c

Reply to
Haju Reck

W2k bekommt schon längst keine Updates mehr, diesbezüglich ist also sehr wenig bzw. nix zu befürchten....

Grüße

- Michael Wieser

Reply to
Michael Wieser

unter WIN32 ist dad ppdev Aequivalent "\\\\.\\$VDMLPT1"

--
Uwe Bonnes                bon@elektron.ikp.physik.tu-darmstadt.de

Institut fuer Kernphysik  Schlossgartenstrasse 9  64289 Darmstadt
--------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
Reply to
Uwe Bonnes

So Scheiße sieht das natürlich auch nur aus, wenn man das Literal in einer beschissenen Programmiersprache hinschreiben muß. In guten Programmiersprachen schreibt man "\\.\$VDMLPT1" oder auch '\\.\$VDMLPT1', was 1. schon deutlich übersichtlicher ist und 2. sogar ein Zeichen _kürzer_ als "/dev/parport0".

Nur um das mal angemerkt zu haben.

Reply to
Heiko Nocon

Naja - ich benutze scheinbar zu selten MS Systeme.

"/dev/parport0" ist ja nur eine Konvention bei Linux. Bei FreeBSD heisst das entsprechende Device z.B. per Konvention "/dev/ppi0", was kuerzer ist ;-) Allgemein kann man aber bei Unix einem Device einen beliebigen Namen geben und falls das gewuenscht ist auch mehrere. "/p" wuerde es prinzipiell also auch tun, wenn man es unbedingt maximal kurz haben will.

Micha

Reply to
Michael Baeuerle

Nein. Du hast nur die Freiheit, einen (oder mehrere) Aliasnamen deiner Wahl zu vergeben (und damit maximale Konfusion auszulösen).

So würde ich jedenfalls die Tatsache einschätzen, daß eine nicht unerhebliche Zahl von Bugs sich auf eben diese "Freiheit" zurückführen läßt. Bzw. eigentlich darauf, daß die jeweiligen Bugproduzenten nicht berücksichtigt haben, daß diese Freiheit existiert.

Diese Freiheit ist also (wie jeder zusätzliche Freiheitsgrad) ein zweischneidiges Schwert. Sie erhöht die Komplexität und damit die Chance für Fehler.

Ob "geschmeidige" Gerätenamen das wert sind? Ich persönlich habe da meine Zweifel...

Reply to
Heiko Nocon

Man kann entweder Symlinks oder neue Devicefiles anlegen:

---------------------------------------------------------------------- crw-rw---- 1 root wheel 104, 0 Oct 17 14:40 ppui0 crw-rw---- 1 root wheel 104, 0 Dec 12 10:57 ppui0_bla lrwxr-xr-x 1 root wheel 5 Dec 12 10:57 ppui0_blubb -> ppui0

---------------------------------------------------------------------- Hier gibt es jetzt z.B. fuer den ersten Parallelport 3 Namen.

Ich haette aber durchaus auch alle Namen fuer dieses Device loeschen koennen. Das OS macht was ich ihm sage, etwas das ich bei Software aus Redmond gelegentlich vermisse ;-)

Warum? Man kann doch den der Konvention entprechenden Namen stehen lassen falls man sowas befuerchtet. Das ist doch gerade der Witz an der Sache: Man kann neue Namen hinzufuegen ohne den Originalname ungueltig zu machen.

Man wird wenig(er) bevormundet, das kann man in der Tat als Vor- oder Nachteil ansehen.

Also ich mag das sehr. Einem Device "/dev/modem" oder "/dev/laserjet" sehe ich sofort an wofuer es gut ist und es kostet mich quasi nichts. /dev/dty00, /dev/lpt0 (oder was auch immer der Defaultname des jeweiligen OS ist) funktionieren ja weiterhin.

Micha

Reply to
Michael Baeuerle

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.