Support IDE hard drives up to 127 GB.
This commit is contained in:
parent
b7193df5ac
commit
59aad3eaaf
2 changed files with 14 additions and 5 deletions
|
|
@ -164,7 +164,10 @@ static void ide_identify(IDE *ide)
|
||||||
|
|
||||||
//ide->buffer[1] = 101; /* Cylinders */
|
//ide->buffer[1] = 101; /* Cylinders */
|
||||||
|
|
||||||
ide->buffer[1] = hdc[cur_ide[ide->board]].tracks; /* Cylinders */
|
if ((hdc[cur_ide[ide->board]].tracks * hdc[cur_ide[ide->board]].hpc * hdc[cur_ide[ide->board]].spt) >= 16514064)
|
||||||
|
ide->buffer[1] = 16383;
|
||||||
|
else
|
||||||
|
ide->buffer[1] = hdc[cur_ide[ide->board]].tracks; /* Cylinders */
|
||||||
ide->buffer[3] = hdc[cur_ide[ide->board]].hpc; /* Heads */
|
ide->buffer[3] = hdc[cur_ide[ide->board]].hpc; /* Heads */
|
||||||
ide->buffer[6] = hdc[cur_ide[ide->board]].spt; /* Sectors */
|
ide->buffer[6] = hdc[cur_ide[ide->board]].spt; /* Sectors */
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,8 @@
|
||||||
#include "video.h"
|
#include "video.h"
|
||||||
#include "vid_voodoo.h"
|
#include "vid_voodoo.h"
|
||||||
|
|
||||||
|
//#define MAX_CYLINDERS ((((1 << 28)-1) / 16) / 63)
|
||||||
|
#define MAX_CYLINDERS 265264 /*Award 430VX won't POST with a larger drive*/
|
||||||
extern int pause;
|
extern int pause;
|
||||||
|
|
||||||
extern int is486;
|
extern int is486;
|
||||||
|
|
@ -1435,9 +1437,11 @@ static int hdnew_dlgproc(void* hdlg, int message, INT_PARAM wParam, LONG_PARAM l
|
||||||
wx_messagebox(hdlg, "Drive has too many heads (maximum is 16)", "PCem error", WX_MB_OK);
|
wx_messagebox(hdlg, "Drive has too many heads (maximum is 16)", "PCem error", WX_MB_OK);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
if (hd_new_cyl > 16383)
|
if (hd_new_cyl > MAX_CYLINDERS)
|
||||||
{
|
{
|
||||||
wx_messagebox(hdlg, "Drive has too many cylinders (maximum is 16383)", "PCem error", WX_MB_OK);
|
char s[256];
|
||||||
|
sprintf(s, "Drive has too many cylinders (maximum is %i)", MAX_CYLINDERS);
|
||||||
|
wx_messagebox(hdlg, s, "PCem error", WX_MB_OK);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1577,9 +1581,11 @@ static int hdsize_dlgproc(void* hdlg, int message, INT_PARAM wParam, LONG_PARAM
|
||||||
wx_messagebox(hdlg,"Drive has too many heads (maximum is 16)","PCem error",WX_MB_OK);
|
wx_messagebox(hdlg,"Drive has too many heads (maximum is 16)","PCem error",WX_MB_OK);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
if (hd_new_cyl > 16383)
|
if (hd_new_cyl > MAX_CYLINDERS)
|
||||||
{
|
{
|
||||||
wx_messagebox(hdlg,"Drive has too many cylinders (maximum is 16383)","PCem error",WX_MB_OK);
|
char s[256];
|
||||||
|
sprintf(s, "Drive has too many cylinders (maximum is %i)", MAX_CYLINDERS);
|
||||||
|
wx_messagebox(hdlg,s,"PCem error",WX_MB_OK);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue