Forum: PC Hard- und Software ISA Bus per LPT steuern


von Stefan H. (kolbenfresser)


Lesenswert?

Hallo,
da ich meine alten ISA Mess u. I/O Karten nicht in die Tonne schmeißen 
will, habe ich mir einen Adapter gebaut um den
ISA Bus über die LPT Schnittstelle mit einen modernen Rechner Steuern zu 
können.
Der ISA Adressbus wir über 2 Latch angesteuert, der ISA Datenbus ist 
direkt mit D0 – D7 der LPT verbunden, außer dem werden
Noch von ISA Bus /IOW und /IOR über die LPT Angesteuert. Die Karten sind 
ganz einfache I/O Karten ohne IRQ, nur 8 Bit

Lesevorgang:
-  es wird die Adresse in die beiden Latchbausteine geschrieben
-  das LPT Register ( D0 - D7) wir auf lesen geschaltet
-  /IOR wird auf low gesetzt

Leider werden von den ISA Karten keine Daten gesendet, muss noch was 
vorher auf den ISA Bus gemacht werden?

Wie lang werden eigentlich die Daten auf dem ISA Bus zum Lesen gehalten? 
Solange wie /IOR auf low ist ?

Vielen Dank für die Hilfe !!

von (prx) A. K. (prx)


Lesenswert?

Diverse Karten verwenden ein Taktsignal vom ISA-Bus.

von Stefan H. (kolbenfresser)


Lesenswert?

Ja genau, aber an meinen Karten ist dieser Pin nicht belegt.

von (prx) A. K. (prx)


Lesenswert?

Fangen wir doch mal andersrum an mit raten: Welche Signale werden denn 
benutzt, d.h. ist belegt? Welche ausser den o.A. Signalen steuerst du 
noch an? Reset wär beispielsweise so ein Kandidat.

Hast du AEN auf der Rechnung? Kannst du festnageln, aber nicht 
ignorieren.

von Stefan H. (kolbenfresser)


Lesenswert?

AEN ist auf GND gelegt
/MEMW u. /MEMR auf +5V
Reset DRV auf GND kann mit Taster auf +5V geschaltet werden
/DACK 1, 2 und 3 auf +5V
ALE auf +5V

benutzt von den Karten werden eigentlich nur der Adress Bus und der 
Datenbus
so wie /IOR, /IOW und AEN

von (prx) A. K. (prx)


Lesenswert?

Dann sollte es eigentlich funktionieren.

> Wie lang werden eigentlich die Daten auf dem ISA Bus zum Lesen gehalten?
> Solange wie /IOR auf low ist ?

Es dauert nur wenige Sekunden, um Tante Gugel das ISA Timing zu 
entlocken. Zur Not suchst du nach PC104.

von Stefan H. (kolbenfresser)


Lesenswert?

das hab ich auch schon an ein paar Abenden gemacht aber die Frage konnte 
ich nicht ganz klären, ob die Daten so lang auf den Bus bleiben bis /IOR 
wieder auf 5V geht z.B. einige Sekunden.

von (prx) A. K. (prx)


Lesenswert?

Ok, das kann sein. Niemand hatte beim ISA Bus jemals Zeiträume von 
mehreren Sekunden pro Buszyklus im Auge.

von Stefan H. (kolbenfresser)


Lesenswert?

also in meinen Fall sind es ein ms aber trotz dem ist halt die Frage wie 
lang die Daten auf den Bus gehalten werden oder ob ich noch was anderes 
beachten muss.

In Netz findet man nur immer die min Zeiten der Impulse des ISA Bus.

Hat vielleicht schon jemant mit einen Mikrocontroller den ISA bau 
angesteuert der helfen Kann ?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Stefan H. schrieb:
> In Netz findet man nur immer die min Zeiten der Impulse des ISA Bus.

Die Maximalwerte sind oft aus dem Takt ableitbar, mit dem der ISA-Bus 
üblicherweise betrieben wird - nämlich 4.77 MHz oder mehr. Langsamer 
aber nicht.

von Stefan H. (kolbenfresser)


Lesenswert?

ah, ja da wird mein Problem liegen mit meinen 2ms bin ich da etwas zu 
langsam.
Dann muss ich wohl zum lesen und schreiben des Datenbuses auch noch ein 
Latch verwenden.

Danke !

von Christian R. (supachris)


Lesenswert?

Es gibt auch ferige USB-ISA Adapter mit dem Cypress FX2. VIelleicht wäre 
das was. Oder mit dem halt selber machen, das GPIF kannst du dafür ganz 
sicher verwenden und sehr frei programmieren.

von Wolfram K. (wolees)


Lesenswert?

Hallo Stefan,
hat das bei dir geklappt ? Ich wollte mir auch mal so einen ISA Adapter 
bauen.
Ich hatte hier schon mal eine Suche gestartet.
Beitrag "[S] USB to ISA Adapter"
Dabei ist ein ganz brauchbarer Ansatz herausgekommen.
Ich muss mich da noch etwas tiefer einlesen. Aber ich denke ich werde 
mir mal diesen EPP to ISA Adapter bauen.
http://www-user.tu-chemnitz.de/~heha/bastelecke/Rund%20um%20den%20PC/LPTISA/

Gruss,
Wole aus ES

von s.hansmersmann@gmx.de (Gast)


Lesenswert?

Hallo Wolfgang,
nein bei mir funktionirt das Ding noch nicht.
Ich habe das Projekt erstmal zurück gestellt.
Über den EPP to ISA Adapter bin ich auch später gestolpert, habe ich 
aber noch nicht nachgebaut.

Vielleicht kannst du mich auf dem laufenen halten, sobald der Adapter 
funktioniert.
Würde mich sehr interessieren.

Gruß
RCD

von Stefan H. (kolbenfresser)


Lesenswert?

Hallo Wolfgang,
So der Login geht wieder, jetzt nochmal richtig.

> nein bei mir funktionirt das Ding noch nicht.
> Ich habe das Projekt erstmal zurück gestellt.
> Über den EPP to ISA Adapter bin ich auch später gestolpert, habe ich
> aber noch nicht nachgebaut.
>
> Vielleicht kannst du mich auf dem laufenen halten, sobald der Adapter
> funktioniert.
> Würde mich sehr interessieren.

Gru?
Stefan

von Wolfram K. (wolees)


Lesenswert?

Hallo Stefan,
ich versuche mal ob ich noch den EPP Treiber bekomme.
Den SCP Treiber kannst du dir ja runterladen. Ich denke aber der ist für 
meinen Fall etwas zu lahm.

Ich würde dann auch beim Jakob Kleinen eine Platine machen, da könntest 
du eine von haben.
Die sind echt gut und günstig.

Ich halte dich auf dem laufenden.

Gruss,
Wolfram

von Frank K. (fchk)


Lesenswert?

Warum benutzt Ihr denn nicht eine PCI-ISA Bridge? Das ist bewährt und 
millionenfach verbaut, Ihr habt die Original-Geschwindigkeit und könnt 
ggf. sogar die Original Software für die ISA-Karten verwenden.

fchk

von A. $. (mikronom)


Lesenswert?

Frank K. schrieb:
> Warum benutzt Ihr denn nicht eine PCI-ISA Bridge? Das ist bewährt und
> millionenfach verbaut, Ihr habt die Original-Geschwindigkeit und könnt
> ggf. sogar die Original Software für die ISA-Karten verwenden.

Oder ein Mainboard mit ISA-Bus kaufen. Gibt es im Industrie-Bereich wie 
Sand am Meer:

http://www.adek.com/ATX-motherboards.html
http://www.alptech.de/Angebote_isa.htm
http://www.ibase.com.tw/2009/MB945.html

von Reinhard Kern (Gast)


Lesenswert?

Frank K. schrieb:
> Das ist bewährt und
> millionenfach verbaut

Bei genauerem Studium der Datenblätter ergibt sich leider, dass das 
keineswegs so einfach ist - einige verweisen z.B. darauf, dass die 
Bridge nur für die Integration in ein PC-Motherboard geeignet ist und 
wegen fehlender Signale auf dem PCI-Bus keine 100%ige Adapterkarte für 
ISA gebaut werden kann.

Gruss Reinhard

von Frank K. (fchk)


Lesenswert?

Reinhard Kern schrieb:
> Frank K. schrieb:
>> Das ist bewährt und
>> millionenfach verbaut
>
> Bei genauerem Studium der Datenblätter ergibt sich leider, dass das
> keineswegs so einfach ist - einige verweisen z.B. darauf, dass die
> Bridge nur für die Integration in ein PC-Motherboard geeignet ist und
> wegen fehlender Signale auf dem PCI-Bus keine 100%ige Adapterkarte für
> ISA gebaut werden kann.

... was aber im Wesentlichen Legacy DMA (das wird nur für den 
Diskettencontroller und ggf den ECP-Port benötigt) und ggf noch 
Busmaster DMA betrifft. Beides wird hier nicht benötigt.

fchk

von Wolfram K. (wolees)


Lesenswert?

Hallo,
ja sowas hab ich auch schon gesehen. Ich hab aber nix gefunden wo ich 
sowas kaufen kann.
Der Nachteil dabei ist das ich das nur in einem Desktop rein bekomme. 
Beim Laptop wird das schon schwierig.
http://www.diytrade.com/china/pd/3108380/PCI_to_ISA_Convertor_Module_PCM_9004.html

Gruss,
Wolfram

von Wolfram K. (wolees)


Lesenswert?

Hallo Stefan,
ich habe mich jetzt mal etwas mit dem Treiber beschäftigt. Ohne den 
macht das ganze eh keine Sinn.

Ich habe die EPP Logik etwas entwirt, würde ich gerne in ein GAL packen 
da mir nicht kar ist ob das wirklich so tut.
Ich habe auch zusammengeschrieben was für einen Treiber alles benötigt 
wird. Wie daraus mal eine DLL (VDD Treiber) werden soll ist mir noch 
nicht klar.
Da bei mir nur auf 8 Adr. gelesen und geschrieben wird sollte eine Lese 
und Schreib Funktion schon reichen.

http://www.kaissers.de/embedded/EPP2ISA/LPT2ISA_Logic.pdf
http://www.kaissers.de/embedded/EPP2ISA/Lpt2IsaVDDsrc.txt

Gruss,
Wolfram

von Frank K. (fchk)


Lesenswert?

Wolfram Kaisser schrieb:
> Hallo,
> ja sowas hab ich auch schon gesehen. Ich hab aber nix gefunden wo ich
> sowas kaufen kann.

Das kann man ja auch selber machen.

> Der Nachteil dabei ist das ich das nur in einem Desktop rein bekomme.
> Beim Laptop wird das schon schwierig.
> 
http://www.diytrade.com/china/pd/3108380/PCI_to_ISA_Convertor_Module_PCM_9004.html

Das waren doch auch Desktop-Karten, oder?

LPT-Spielereien würde ich lassen. Dein nächstes Notebook wird kein LPT 
mehr haben. Das stirbt auch aus.

Schau Dir mal das hier an:

http://www.ftdichip.com/Support/SoftwareExamples/MPSSE/FT2232C-Proj04.pdf

Sollte auch für Deine Karten funktionieren. Anstelle des FT2232C würde 
ich einen FT2232H und Levelshifter (der H ist ein reiner 1.8V/3.3V Chip, 
hat aber USB 2.0 High Speed, der C kann nur Full Speed, kann aber auch 
noch mit 5V-Pegeln arbeiten) verwenden.

fchk

von Wolfram K. (wolees)


Lesenswert?

Hallo Frank,
na das ist doch mal was feines. Genau sowas hatte ich schon bei Cypress 
gesucht aber nicht gefunden.

Wie ist das mit dem Treiber. Meine alte Anwendung läuft unter XP in der 
DOSbox. Was benötige ich den dann für einen Treiber. Einen VxD (.386) 
oder einen VDD für NT ?

Ja die alte Karte ist auch im Desktop. Aber wenn ich mir schon den 
Aufwand mache soll es auch einen Vorteil haben.

Ich dachte die EPP2ISA Lsg ist recht einfach und schnell. Einen 
DruckerPort bekommt man doch noch über die DockingStation oder sind die 
da auch schon weg.

Gruss,
Wolfram

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Wolfram Kaisser schrieb:
> Einen
> DruckerPort bekommt man doch noch über die DockingStation oder sind die
> da auch schon weg.

Sind da auch schon lange nicht mehr vorhanden, bzw. wenn vorhanden, dann 
per USB angebunden und wirklich nur noch als Druckerschnittstellen 
nutzbar.

Dein Projekt hätte mehr Chancen, wenn Du einen etwas leistungsfähigeren 
µC (z.B. irgendein einfach verarbeitbarer ARM mit USB-Device-Interface) 
verwenden würdest, an den die ISA-Karte(n) anschließen würdest und den 
µC mit einem noch zu definierenden Protokoll über USB mit dem PC 
kommunizieren lässt.

Wenn die Programme auf dem PC auch noch steinalte DOS-Programme sein 
müssen, könntest Du Dich an dem Devicetreiber von Henrik Haftmann 
orientieren, der I/O-Zugriffe auf die I/O-Adressen des Druckerports 
abfängt (Du müsstest stattdessen die Deiner ISA-Karten verwenden) und 
auf sein USB-Protokoll umbiegt.

Sinnvoller aber dürfte es sein, auch mal loslassen zu können und die 
steinalte DOS-Software aufzugeben -- und für die per USB angebundenen 
ISA-Karten beispielsweise LabView- oder sonstwas-Treiber zu entwickeln.

Je nachdem, was das für Karten sind und was damit geschehen soll, ließe 
sich ja auch ein Teil der "Intelligenz" in den oben erwähnten µC 
verlagern, so daß auf dem PC bereits "vorverdaute" Daten ankommen.

von Frank K. (fchk)


Lesenswert?

Wolfram Kaisser schrieb:

> Wie ist das mit dem Treiber. Meine alte Anwendung läuft unter XP in der
> DOSbox. Was benötige ich den dann für einen Treiber. Einen VxD (.386)
> oder einen VDD für NT ?

VxD gibts nur bei Win 9x. Den VDD musst Du Dir selber schreiben. Viel 
Spaß dabei. Der Aufwand ist erheblich.

> Ja die alte Karte ist auch im Desktop. Aber wenn ich mir schon den
> Aufwand mache soll es auch einen Vorteil haben.

Wie gesagt, bei einer PCI-ISA-Bridge oder einer PCIe-ISA-Bridge 
bräuchtest Du keine Treiber, und wenn Du mal einen geschrieben hättest, 
würdest Du diesen Vorteil zu würdigen wissen.

> Ich dachte die EPP2ISA Lsg ist recht einfach und schnell.

USB ist schneller.

> Einen
> DruckerPort bekommt man doch noch über die DockingStation oder sind die
> da auch schon weg.

Oft nur noch über USB angebunden, und damit wirklich nur noch für 
Drucker verwendbar.

fchk

von MCUA (Gast)


Lesenswert?

>Wie lang werden eigentlich die Daten auf dem ISA Bus zum Lesen gehalten?
>Solange wie /IOR auf low ist ?
Ja, (bzw wie /MEMR low ist). (Dafür braucht man auch kein Taktsignal , 
könnte aber sein dass die Karte intern das braucht)
Aber das kannst du wahrsch. an der Karte direkt sehen, wenn die noch 
diskret TTL-ICs hat, wird irgentwie auf '245 gehen.
Ich würde aber zum Ansteuern einen uC nehmen. Zur Not kann das auch ein 
AVR 'von Hand zu Fuss' machen.

von Wolfram K. (wolees)


Lesenswert?

Hallo zusammen,
so jetzt hab ich für das alte Teil auch noch ein Platinchen gemacht.
Jetzt will ich mal hoffen das es irgendwie doch mit dem Treiber klappt. 
Sonst war das ganze hier für die Tonne ;-))

Das mit dem Treiber kapiere ich noch nicht so ganz.
Die Anwendung läuft doch unter XP in der DOSbox. Da kann die doch gar 
nicht mehr auf die PC HW zugreifen. Ich brauche doch irgendeinen Treiber 
der die ISA R/W Befehle aus der DOSbox in die XP Welt auf den LPT oder 
meinetwegen auch USB umlenkt.

Was mir jetzt noch nicht ganz klar ist.
Reicht es einen Treiber in der DOSbox zu installieren, also etwas mit 
xyz.386 bwz VxD.
Oder muss ich in XP einen Treiber installieren, also einen VDD.

http://www.kaissers.de/embedded/EPP2ISA/EPP2ISA_brd.pdf
http://www.kaissers.de/embedded/EPP2ISA/LPT2ISA_Logic.pdf

Gruss,
Wolfram

von Frank K. (fchk)


Lesenswert?

Wolfram Kaisser schrieb:

> Reicht es einen Treiber in der DOSbox zu installieren, also etwas mit
> xyz.386 bwz VxD.
> Oder muss ich in XP einen Treiber installieren, also einen VDD.

Nochmal zum Mitmeißeln: Unter NT gibt es keine VxDs. Die gibt es nur und 
ausschließlich unter Windows 3.x und 95/98/ME.

Du brauchst einen Physical Device Driver - aber hier hast Du ja den 
Parallelporttreiber von NT, den Du eventuell verwenden kannst, und einen 
VDD für die Dosbox, die dann aus den Registerzugriffen IRPs für den PDD 
erzeugt.

Wenn es darum geht, Zugriffe auf IO-Ports zu ermöglichen, gibt es solche 
Sachen wie giveio.sys etc, die einfach die IO-Permissions passend 
setzen. Eventuell passt das dann auch für die DOS-Boxen - das habe ich 
nie probiert, ich habe keine 16-Bit Software mehr.

Mit 64 Bit Windows hat sich die ganze DOS-Geschichte ohnehin erledigt. 
Das kann keinen 16 Bit Code mehr ausführen. Das solltest Du wissen.

fchk

von Reinhard Kern (Gast)


Lesenswert?

Wolfram Kaisser schrieb:
> Ich brauche doch irgendeinen Treiber
> der die ISA R/W Befehle aus der DOSbox in die XP Welt auf den LPT oder
> meinetwegen auch USB umlenkt.

Die gibt es garnicht, Dosbox emuliert per Software einen typischen IBM 
PC mit S3 Grafikkarte, Sound, ev. Netzwerk, hat aber mit Hardware für 
den ISA-Bus garnichts zu tun. Also du gibst Sound aus an die emulierte 
Soundkarte und Dosbox gibt diesen Sound auf dem aktuellen PC wieder - da 
steckt eben keine Soundkarte im ISA-Bus!  Und wenn du eine Bridge hast, 
ist keineswegs gesagt, dass die Register deiner Karte im Adressraum da 
liegen wo sie dein DOS-Treiber erwartet, ich denke das ist eher sehr 
unwahrscheinlich. Dazu müsste die Bridge den Memory- und I/O-Bereich 
eines alten PC nachbilden, insbesondere das 1. MByte, und ich schätze 
das kollidiert mit allem was da heute so drin ist. Der I/O-Bereich z.B. 
wird per PCI-Konfiguration irgendwo eingeblendet, wo das Betriebssystem 
meint,  wahrscheinlich an Adressen, die dein DOS-Programm primzipiell 
nicht ansprechen kann. Vergleiche mal die Resourcen deiner PCI-Karten 
mit den Adressräumen des ISA-Bus.

Möglicherweise kann man einer PCI-Karte eine DOS-kompatible Adresse fest 
zuweisen, aber von selbst geht das auch nicht. Manche seriellen Karten 
lassen sich auf "alte" Adressen für COM-Ports einstellen - per 
Windows-Treiber, nicht per Jumper.

Gruss Reinhard

von Frank K. (fchk)


Lesenswert?

Äh ... reden wir jetzt von der in XP eingebauten NTVDM oder der Freeware 
DosBox.EXE (http://www.dosbox.com/)?

fchk

von Reinhard Kern (Gast)


Lesenswert?

Frank K. schrieb:
> Äh ... reden wir jetzt von der in XP eingebauten NTVDM oder der Freeware
> DosBox.EXE (http://www.dosbox.com/)?
>
> fchk

Dosbox ist Dosbox.exe, das andere heisst Eingabeaufforderung. Aber 
vielleicht hat das ja schon der TO verwechselt, bloss hilft das nicht 
weiter, weil sich alte DOS-Treiber auch in einer aktuellen 
Eingabeaufforderung nicht verwenden lassen - es handelt sich ja auch 
keineswegs um ein Fenster, in dem Dos 6.22 oder was auch immer läuft 
(sondern ein 32 oder 64bit-cmd.exe).

Gruss Reinhard

von Michael_ (Gast)


Lesenswert?

Reinhard Kern schrieb:
> Dosbox ist Dosbox.exe, das andere heisst Eingabeaufforderung.

Das meinst aber auch blos du! Die haben den Begriff nur gekapert.
Ich kenne den Begriff DOS-BOX seit W95 und OS/2.

von Reinhard Kern (Gast)


Lesenswert?

Michael_ schrieb:
> Ich kenne den Begriff DOS-BOX seit W95 und OS/2.

Du hättest zu Ende lesen sollen (ja ich weiss, das ist ja so mühsam). 
Von DOS ist da wo du meinst schon lange keine Rede mehr. Versuch doch 
mal in deiner angeblichen DOS-BOX einen cd-Treiber und MSCDEX zu laden.

Gruss Reinhard

von Wolfram K. (wolees)


Lesenswert?

Hallo zusammen,
ja mit DOSbox meine ich schon die ComandShell (cmd) von XP.

Ich hab in meinem Platinen Design noch einige Bugs gefunden und das 
ganze aktualisiert.
Die Logik vom GAL hab ich mal angefangen, bin mir aber noch nicht ganz 
klar wie das mit dem D-FF (Reset) wirklich geht.
http://www.kaissers.de/embedded/EPP2ISA/EPP2ISA.gal

Jetzt muss ich mir erst mal auf einer Lochrasterkarte eine TestHW fädeln 
damit ich am LPT was rausschreiben und einlesen kann.

Ein kleines Testprogram hab ich schon womit ich was auf den ISA Bus 
rausschreiben und lesen kann.
Wenn das mit dem Treiber irgendwann mal tut müsste das ja auf dem LPT 
rauskommen.

Morgen geht das mit dem geschaffe wieder los. Dann ist es vorbei mit der 
schönen alten Zeit ;-)

PS:
Wenn nur eine ISA Karte drann ist dann ist das H-AdrByte fix 
(Mäuseklavier).
Damit sind es bei ECP nur noch 2 Schreibzyklen (L-AdrByte, Data).

Gruss,
Wolfram

von Michael_ (Gast)


Lesenswert?

Reinhard Kern schrieb:
> Michael_ schrieb:
>> Ich kenne den Begriff DOS-BOX seit W95 und OS/2.
>
> Du hättest zu Ende lesen sollen (ja ich weiss, das ist ja so mühsam).
> Von DOS ist da wo du meinst schon lange keine Rede mehr. Versuch doch
> mal in deiner angeblichen DOS-BOX einen cd-Treiber und MSCDEX zu laden.

Damals wurde das, was du "Eingabeaufforderung" nennst, schon Dosbox oder 
Dosfenster genannt. Von dosbox.exe war da am Horizont noch nichts 
gesehen.
Außerdem wurde unter W95/98 das mit der Config.dos und autoexec.dos das 
mit den Treibern geregelt.

von Max (Gast)


Lesenswert?

Gibt es eigentlich keine IBM kompatiblen im FPGA ?

von Michael_ (Gast)


Lesenswert?

Wozu?

von Max (Gast)


Lesenswert?

Damit man legacy-HW günstig nutzen kann, alle möglichen Vintage-Computer 
gibt es doch mittlerweile auf FPGAs, warum also keine alten PCs ?

von Sam P. (Gast)


Lesenswert?

Nur um noch eine andere Idee in den Raum zu werfen:

DOSBox (http://www.dosbox.org) ist ja Open Source. Dort ein paar 
I/O-Ports anzufangen ist leicht, wenn du C++ kannst. Die bereits 
integrierte Hardware kann als Beispielcode genutzt werden. Das ist 
wirklich ganz logisch gestaltet, du brauchst nur eine Funktion zu 
schreiben, die das Lesen eines Ports behandelt und eine die das 
Schreiben behandelt. Dazu noch etwas Initialisierungscode, und fertsch.

Schreib dir also deine eigenen Funktionen, die die Port-Zugriffe einfach 
an deine ISA-Bridge weiterleiten. Da brauchst du dann keine weiteren 
Treiber mehr, du musst nur wissen, wie man deine Bridge anspricht. 
Zusätzlicher Bonus: Du hast weniger Probleme mit Latenzen, weil für das 
DOS-Programm die Zeit anhält, während du dich mit USB/LPT abmühst. Das 
DOS-Programm merkt nicht, dass die Zugriffe langsamer sind.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Sam P. schrieb:
> DOSBox (http://www.dosbox.org) ist ja Open Source.

Bist Du Dir mit der URL sicher? Das ist ein Blog.

Du meinst www.dosbox.com bzw. http://sourceforge.net/projects/dosbox/

von Heinz (Gast)


Lesenswert?

> Gibt es eigentlich keine IBM kompatiblen im FPGA ?

http://www.ht-lab.com/freecores/cpu8086/cpu86.html

Gruss Heinz

von Franz N. (abnoname)


Lesenswert?

Eher: http://zet.aluzina.org/index.php/Zet_processor

Das funktioniert nämlich schon zum Booten von Dos / Win 3.0 :)

von Wolfram K. (wolees)


Lesenswert?

Hallo zusammen,
das mit der DOSbox.com ist ne super Idee. Hab ich mir gleich mal 
installiert und ausprobiert.
Nach dem ich etwas im Forum gelesen habe musste ich leider feststellen 
das die gar kein LPT unterstützt. Dazu gibt es ein MegaBuild das einige 
extra Features hat.
http://home.arcor.de/h-a-l-9000/megabuild.html
Da gibt es auch schon etwas vergleichbares
http://vogons.zetafleet.com/viewtopic.php?t=34038

Na ja wenn das so einfach währe gäb es den Thread hier wohl nicht.

Gruss,
WoleES

von Wolfram K. (wolees)


Lesenswert?

Hallo zusammen,
das Megabuild bringt mich jetzt doch einen grossen Schritt weiter. Auch 
wenn ich es wohl gar nicht brauche. Die verwenden das PortTalk.
http://retired.beyondlogic.org/porttalk/porttalk.htm
Da gibt es noch einige coole Tools und Sourcen zu finden.
http://retired.beyondlogic.org

Mit dem AllowIO kann ich die ISA Ports in der DOSbox freischalten, damit 
komme ich raus zu Windows.
Jetzt muss ich noch raus bekommen wie ich das PortTalk nutzen kann um in 
Windows die ISA R/W zum EPP umzuleiten.

Gruss,
WoleES

von Henrik Haftmann (Gast)


Lesenswert?

PortTalk ist ein Sammelsurium von Portzugriffs-Freigaben und für den 
physikalischen Speicherzugriff. Die wesentliche Komponente ist, per 
IOPM-Modifikation (Input Output Permission Map, eine 
80386-Prozessordatenstruktur) Portzugriffe aus Ring 3 (User Mode) direkt 
zu erlauben. Dies läuft am schnellsten, ist aber auch am unportabelsten. 
Sicherlich verwenden Sie genau diese Funktionalität. Daher ist das 
Abfangen und Umleiten von Portzugriffen, zumindest mit PortTalk, nicht 
möglich.

Mir ist kein Programm bekannt, dass dies tut, solange Portzugriffe hart 
kodiert im (Win32-)Anwenderprogramm oder Treiber vorliegen.

Anders sieht die Sache für Win16- und DOS-Programme aus; hier hilft 
(nur) ein selbst zu schreibender VDD (Virtual Device Driver) für 
NT-basierte Systeme bzw. ein VxD für Win9x.
Die Dokumentation ist da inzwischen ziemlich dünn. Da sollte man alte 
MSDN-Ausgaben (CDs) aus der Zeit von NT 3.51 oder 4.0 bemühen; neuere 
Ausgaben schweigen sich darüber nahezu komplett aus. Von Vorteil für 
VDDs ist, dass diese im User Mode laufen und man sich nicht mit 
Kernel-Mode abärgern muss. Nachteil: Mit Win64 ist damit (offiziell) 
Schluss.
Logischerweise beißt sich der Einsatz von PortTalk mit diesem VDD. 
(PortTalk hat Vorrang.)
Auch kann es sein, dass bestimmte Portadressen (eben des Druckerports) 
von einem System-VDD bereits abgedeckt sind; diesen müssten Sie erst mal 
deaktivieren oder umgehen.
Echte NT-Treiber haben mit Ihrem Problem nichts zu tun; wenn Ihnen 
jemand derartige Beispiele andreht, ignorieren.

Anders sieht es mit Win32-Anwenderprogrammen aus, die eine DLL für 
Portzugriffe benutzen. (Ich favorisiere InpOut32.dll, da diese ohne jede 
Installationsprozedur läuft, auch unter Win64.) Hier fällt es leicht, 
eine zugeschnittene Ersatz-DLL zu schreiben, da die Schnittstelle mit 
den beiden Funktionen Inp32() und Outp32() denkbar simpel ist.

Das Umlenken von Portzugriffen via USB klingt zwar verlockend, durch die 
Paketisierung in 125-µs-Takt (High-Speed) werden jedoch Portzugriffe 
deutlich verlangsamt (ISA: 1 µs). Dann kommt es auf Ihr Problem drauf 
an, ob's stört oder nicht. Mit FireWire ist's das gleiche.
Deshalb ist es IMMER besser, die Low-Level-Kommunikation in einem 
USB-Mikrocontroller ablaufen zu lassen und via USB nur bereits 
vorgefertigte Daten zu schicken. Klar, dass eine derartige Modifikation 
den Zugriff zum Quelltext erfordert (deshalb ist ja open-source so 
WICHTIG für Zukunftssicherheit).
In manchen Fällen kann man mit einer Emulationsschicht das Latenzproblem 
ohne Quelltextzugriff erschlagen; dann bleibt das Programm aber 
altbacken und wacklig.
In manchen anderen Fällen ist das Programm bereits genügend modular 
aufgebaut, dass eine DLL mit einer klaren Schnittstelle vorliegt, die 
genau das macht, was man in den USB-Mikrocontroller verfrachten kann. 
Eine Ersatz-DLL leitet dann auf USB um.

Das Problem mit der 125-µs-Latenzzeit lässt sich mit anderen Bussystemen 
oder Lösungen umgehen:
* PCI-zu-ISA-Brücke
* PCIexpress-zu-ISA-Brücke
* eSATA (?)
* direkte Programmierung des USB-Hostcontrollers
Alles das erfordert Investitionen im >10000-€-Bereich. Wird sich für die 
allermeisten ISA-Karten nicht lohnen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.