BBS: Inland Empire Archive Date: 06-16-92 (08:43) Number: 565 From: STEVE HALKO Refer#: NONE To: MARC JOHNSON Recvd: NO Subj: Help with dos messages Conf: (2) Quik_Bas
MJ>Hello, i want to know how can i bypas the dos message frome QuickBasic? MJ>I have only one disk drive(A:), and when i want to use drive B: MJ>the DOS prompt the user to insert a diskette in drive B: and MJ>then strike a key. I'd like to know if there is a way to bypass MJ>this procedure because i have written a program using popup MJ>windows in it. The problem is how can i trap the routine for a MJ>diskette prompt. You can't really trap the drive B: prompt from QB. What you must do is detect that situation before DOS even tries to access drive B. This function will detect how many floppy drives are on your system: FUNCTION OneFloppy% 'This function returns TRUE (-1) on a one floppy system, and FALSE (0) 'otherwise. DEF SEG = &H40 OneFloppy% = ((PEEK(&H10) AND &HC1) = 1) END FUNCTION Next, there's a flag at 0050:0004 which indicates whether drive A: or drive B: is the current floppy drive in a one floppy system: FUNCTION CurrentFloppy% 'This function returns: 0 if the current floppy drive is A: ' 1 if the current floppy drive is B: DEF SEG =&H50 CurrentFloppy% = PEEK(&H4) END FUNCTION And here's an example using the above functions. Here, the task is to ask the user for a disk drive, and then open a file (MYFILE.DAT) on that drive: DEFINT A-Z DECLARE FUNCTION OneFloppy() DECLARE FUNCTION CurrentFloppy() PRINT "Enter Drive Letter (A-Z): "; DO 'Wait for a valid drive letter Drive$ = UCASE$(INKEY$) LOOP UNTIL (Drive$ > = "A") AND (Drive$ < = "Z") PRINT Drive$ 'If drive A or B in a one floppy system: IF (Drive$ < = "B") AND OneFloppy THEN IF (ASC(Drive$) - 65) XOR CurrentFloppy THEN 'If drive change PRINT "Insert diskette in drive "; Drive$; " and press any key." BEEP DO LOOP UNTIL LEN(INKEY$) 'Wait for a key press DEF SEG = &H50 POKE &H4, ASC(Drive$) - 65 'Update current floppy flag END IF END IF FileNr = FREEFILE OPEN Drive$ + ":" + "MYFILE.DAT" FOR BINARY AS FileNr ' Do what you want here CLOSE END * SLMR 2.1a * If at first you don't succeed, skydiving is not for you! ## --- DB B1073/002487 * Origin: Gulf Coast BBS -QuickSHARE #2- (904)563-2547 HST/V.32bis (1:365/12)
Books at Amazon:
Back to BASIC: The History, Corruption, and Future of the Language
Hackers: Heroes of the Computer Revolution (including Tiny BASIC)
Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution
The Advent of the Algorithm: The Idea that Rules the World
Moths in the Machine: The Power and Perils of Programming
Mastering Visual Basic .NET