Re: Okay sollst du haben


[ Antworten ] [ Ihre Antwort ] [ Forum iconsoft.de ]

Abgeschickt von A.K. am 05 Maerz, 2004 um 17:10:59

Antwort auf: Okay sollst du haben von Sebastian Langer am 05 Maerz, 2004 um 15:01:56:

Hi,

hm, meine LIB benutzt ja auch 16Bit Modi (65536 Farben). Aber schick mir mal die Liste zu. Es kann ja auch sein, das meine LIB den falschen Ansatz an.

Port&Interrupts:
Also wenn du mit Interruptscannen meinst, wie du die Speicheradressen der Interruptroutinen rausbekommst, dann kannst du das so machen:
1. Möglichkeit:
Du benutzt dafür Interrupte.
INT &H21 AH = &H25/&H35. Der eine liest, der andere schreibt eine Interruptadresse. Für genauere angaben sag Bescheid.
2. Möglichkeit:
Du liest die Adressen direkt aus dem Speicher.
Für alle Interruptadressen steht eine Tabelle im Speicher bereit. Sie ist 1024 Byte lang, enthält 256 Adressen mit jeweils 4 Byte.
Die Tabelle selber liegt ganz vorne im Speicher, an Adresse 0000:0000.
Unter QB kannst du PEEK verwenden um sie rauszufinden:
hier z.B. INT 0
DEF SEG = 0
segment% = PEEK(0)+PEEK(1)*256
offset% = PEEK(2)+PEEK(3)*256
DEF SEG
Wenn du es so programmierst kann es bei der Berechnung zu einem Überlauf kommen, wegen INTEGER und so. Das kann man aber mit LONG-Variablen nachbessern.
Zum schreiben der Adressen,zum z.B. für TSR's nimmst du anstatt PEEK->POKE.

Ports:
Ja, man kann bestimmte Bereiche scannen.
Die Soundkarte z.B. müßte sich bei den Basisadressen &H220,&H240,&H260 oder &H280 befinden, dort sind die Gameports.
Um rauszufinden wo die Soundkarte sitzt, kannst du:
1. Die ENVIRON$-Variable "BLASTER" abfragen, dort steht der Basisport mit bei.
2. Oder versuchen an einem bestimmten Port etwas mit INP einzulesen. Wenn es dann was ganz bestimmtes ist, dann kann man davon ausgehen das es die Soundkarte ist. Aber was genau man wo rauslesen muß, kann ich dir leider noch nicht sagen.

MFG A.K.



Antworten:



Ihre Antwort

Name:
E-Mail:

Subject:

Text:

Optionale URL:
Link Titel:
Optionale Bild-URL:


[ Antworten ] [ Ihre Antwort ] [ Forum iconsoft.de ]