2 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
3 SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO
4 END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
5 ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
6 IN USING, DISPLAYING, AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
7 SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
8 FREE PURPOSES. IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
9 CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES. THE END-USER UNDERSTANDS
10 AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.
11 COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
14 #pragma off (unreferenced)
15 static char rcsid[] = "$Id: cdrom.c,v 1.1.1.1 2001-01-19 03:30:14 bradleyb Exp $";
16 #pragma on (unreferenced)
31 typedef struct _Dev_Hdr {
32 unsigned int dev_next;
33 unsigned short dev_att;
46 // Get dos memory for call...
50 unsigned cdrive, cur_drive, cdrom_drive;
52 memset(&rregs,0,sizeof(dpmi_real_regs));
55 dpmi_real_int386x( 0x2f, &rregs );
56 if ((rregs.ebx & 0xffff) == 0) {
57 return -1; // No cdrom
59 num_drives = rregs.ebx;
61 buf = (dev_list *)dpmi_get_temp_low_buffer( sizeof(dev_list)*26 );
63 return -2; // Error getting memory!
66 memset(&rregs,0,sizeof(dpmi_real_regs));
67 rregs.es = DPMI_real_segment(buf);
68 rregs.ebx = DPMI_real_offset(buf);
70 dpmi_real_int386x( 0x2f, &rregs );
72 _dos_getdrive(&cdrive);
73 for (i = 0; i < num_drives; i++) {
74 device = (dev_header *)((buf[i].dev_segment<<4)+ buf[i].dev_offset);
75 _dos_setdrive(device->dev_letr,&cur_drive);
76 _dos_getdrive(&cur_drive);
77 if (cur_drive == device->dev_letr) {
78 if (!chdir("\\descent")) {
80 fp = fopen( "saturn.hog", "rb" );
82 cdrom_drive = device->dev_letr;
89 _dos_setdrive(cdrive,&cur_drive);