AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

SERIELLE SCHNITTSTELLE "Mühlespiel"

Ein Thema von Skorpio · begonnen am 15. Okt 2003 · letzter Beitrag vom 30. Dez 2003
 
Benutzerbild von mika
mika

Registriert seit: 25. Okt 2002
176 Beiträge
 
Delphi 6 Professional
 
#15

Re: SERIELLE SCHNITTSTELLE "Mühlespiel"

  Alt 20. Okt 2003, 20:42
also wenn du jeden pin einzeln setzen willst dann kannst du das unter win98 (unter nt/2000) geht das nur mit
nem treiber den status eines einzelnen pins mittels assembler abfragen.

erstmal die pins in einer übersicht
##########################################

DataRegister, 0, Out printerdata
StatusRegister, 1, IN printerstatus
ControlRegister, 2, Control printerfunctions.

(Dataregister (offset = 0))
----------------------------------
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
----------------------------------
..|...|...|...|...|...|...|...|_____ D0 Out.
..|...|...|...|...|...|...|________D1 Out.
..|...|...|...|...|...|__________ D2 Out.
..|...|...|...|...|____________ D3 Out.
..|...|...|...|_______________ D4 Out.
..|...|...|__________________D5 Out.
..|...|____________________ D6 Out.
..|_______________________D7 Out.



(Statusregister (offset = 1))
----------------------------------
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | (all read)
----------------------------------
..|...|...|...|...|____________ Error.
..|...|...|...|_______________ Select.
..|...|...|__________________PE.
..|...|____________________ ACK.
..|_______________________Busy (inverted)



(Controlregister (offset = 2))
----------------------------------
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | (OUT AND IN.)
----------------------------------
..........|...|...|...|...|...|
..........|...|...|...|...|...|
..........|...|...|...|...|...|____ Strobe (inverted.)
..........|...|...|...|...|_______ Auto Feed.
..........|...|...|...|_________ Init (inverted.)
..........|...|...|____________ SLCT IN (inverted.)
tech60....|...|_______________ IRQ Enable
tech60....|__________________ Direction, PS2 or later AT Devices, 0 = write, 1 = read
*)



asm geht dann ungefähr so
#############################
Delphi-Quellcode:
Const
  lptport = $378;
  DataRegister = $00;
  StateRegister = $01;
  ControlRegister = $02;


    // lesen
    port := lptport + gewünschtes register
    asm
      mov dx, Port
      in al, dx
      Mov Value, AL
    end;
    Value beinhaltet den aktuellen wert deines registers

    
    // schreiben
    port := lptport + gewünschtes register
    value hat den wert den du in das register schreiben willst
    asm
      mov al, Value
      mov dx, Port
      out dx, al
    end;


wenn dir das ungefähr weiterhilft sag bescheid dann poste ich mal kompletten code hier.


mfg, mika
:: don't Panic ::
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz