Frage deutsch
~~~~~~~~~~~~~~~~
Wie öffne und schließe ich das CD-Laufwerk?
 

Question English
~~~~~~~~~~~~~~~~
How to open and close the CD drive?
How to open and close the CD-ROM tray?
 

Antwort 1
~~~~~~~~~~~~~~~~
[ von Fatal im QB-Forum, 2.3.2003 ]
Lade Dir den "Mega CD PLayer" von Davey T. von
www.qbasic.de herunter (unter "QBasic -> Doenload -> Sound"). Da ist alles schön in Funktionen gepackt.
 
 

Antwort 2
~~~~~~~~~~~~~~~~
[ von Andre Klein ("A.K.;
webmaster*iconsoft.de ) im QB-Forum, 2.3.03]
 
Aus QuickBASIC (nicht QBasic) heraus ist dies über INTERRUPTX möglich.
 
 
Dim shared reg as regtypex
'
reg.ax =&H1510
reg.cx = Laufwerk (0=A,1=B,2=C,3=D...)
reg.es = Varseg(requestheader)
reg.bx = Varptr(requestheader)
'call INTERRUPTX(&H2F,reg,reg) 'zur Sicherheit auskommentiert
'
'WICHTIG!!! Der Requestheader gibt das an was
' gemacht werden soll.
'WICHTIG2!!!Wie der Requestheader aufgebaut ist
' weis ich im Moment nicht.
' Das beste ist Du lädst dir einen
' CD-Audio-Player runter der in Basic
' geschrieben wurde. Dort findest du
' dann die nötigen Informationen. Oder
' suchst im WWW.
'
'Wegen der Verwendung des CALL INTERRUPTX-Befehls
' musst Du QuickBASIC mit "QB /L" starten
'
'Für evtl. Schäden übernehme ich keine Haftung!
':-)
 
 

Answer 3
~~~~~~~~~~
[ from the QB-Forum-FAQ at
www.network54.com/Forum/ ]
 
*** Deutsche Beschreibung
(von Thomas Antoni)
Das untenstehende Programm öffnet und schließt die Schublade des CD-Laufwerks. Unter meinem Windows 95A funktoniert es problemlos.
Weil das Programm den INTERRUPTX-Befehl verwendet, ist es nur unter QuickBASIC, nicht jedoch unter QBaic ablauffähig. Aus demselben Grund muss QuickBASIC mit der Option /L" gestartet werden, also z.B. mit dem Kommando
QB.EXE /L cdopen.bas
 
*** English Description
Opening and closing the CD-ROM tray (for QB4.5 or higher) works a follows:

'*****************************************************
' CDOPEN.BAS = Closes and opens the CD-ROM tray
' ========== Oeffnet und schliesst die Schublade
' des CD-ROM-Laufwerks
'
' *** Deutsche Beschreibung
' (von Thomas Antoni)
' Dieses QuickBASIC-Programm öffnet und schließt
' die Schublade des CD-Laufwerks. Unter meinem Windows
' 95A funktoniert es problemlos.
'
' Weil das Programm den INTERRUPTX-Befehl verwendet,
' ist es nur unter QuickBASIC, nicht jedoch unter
' QBasic ablauffähig. Aus demselben Grund muss
' QuickBASIC mit der Option /L" gestartet werden,
' also z.B. mit dem Kommando
'
' QB.EXE /L cdopen.bas
'
' *** English Description
' This QuickBASICprogram opens and closes the
' CD-ROM tray (for QB4.5 or higher)
'
'*****************************************************
'
DECLARE FUNCTION lowbyte% (word%)
DECLARE FUNCTION highbyte% (word%)
DECLARE SUB door (switch%)
'
CONST openIt = 0
CONST closeIt = 5
'
TYPE RegTypeX
ax AS INTEGER
bx AS INTEGER
cx AS INTEGER
dx AS INTEGER
bp AS INTEGER
si AS INTEGER
di AS INTEGER
flags AS INTEGER
ds AS INTEGER
es AS INTEGER
END TYPE
'
DIM SHARED inregsx AS RegTypeX
DIM SHARED outregsx AS RegTypeX
DIM SHARED drive AS INTEGER
DIM SHARED control AS STRING * 1
DIM SHARED request(1 TO 20) AS STRING * 1
'
request(1) = CHR$(26)
request(2) = CHR$(0)
request(3) = CHR$(12)
request(19) = CHR$(lowbyte(1))
request(20) = CHR$(highbyte(1))
'
inregsx.ax = &H1500
inregsx.bx = &H0
inregsx.cx = &H0
CALL INTERRUPTX(&H2F, inregsx, outregsx)
drive = outregsx.cx
'
CLS
door openIt
LOCATE 1, 1: PRINT "Press any key to close it again."
SLEEP
door closeIt
END
'
SUB door (switch%)
control = CHR$(switch%)
request(15) = CHR$(lowbyte(VARPTR(control)))
request(16) = CHR$(highbyte(VARPTR(control)))
request(17) = CHR$(lowbyte(VARSEG(control)))
request(18) = CHR$(highbyte(VARSEG(control)))
inregsx.ax = &H1510
inregsx.cx = drive
inregsx.es = VARSEG(request(1))
inregsx.bx = VARPTR(request(1))
CALL INTERRUPTX(&H2F, inregsx, outregsx)
END SUB
'
FUNCTION highbyte% (word%)
IF word% >= 0 THEN
highbyte% = word% \ 256
ELSE
highbyte% = (65536 + word%) \ 256
END IF
END FUNCTION
'
FUNCTION lowbyte% (word%)
IF word% >= 0 THEN
lowbyte% = word% MOD 256
ELSE
lowbyte% = (65536 + word%) MOD 256
END IF
END FUNCTION
 
Das obige Programm steht im Verzeichnis Progs\ zur Verfügung sowie online unter www.antonis.de/faq/progs/cdopen.bas .
 

[ The QBasic-MonsterFAQ --- Start Page: www.antonis.de/faq ]