STATIC_INLINE decide_fetch_ce (int hpos)
{
- if (ddf_change == vpos)
+ if (ddf_change == vpos && vpos < maxvpos)
decide_fetch (hpos);
}
last_redraw_point = 0;
interlace_seen = 0;
- if (framecnt == 0) {
+ if (framecnt == 0)
finish_drawing_frame ();
-#ifdef AVIOUTPUT
- frame_drawn ();
- } else if (picasso_on) {
- frame_drawn ();
-#endif
- }
/* At this point, we have finished both the hardware and the
* drawing frame. Essentially, we are outside of all loops and
}
gui_hd_led (0);
gui_cd_led (0);
+#ifdef AVIOUTPUT
+ frame_drawn ();
+#endif
}
void hsync_record_line_state (int lineno, enum nln_how how, int changed)
return 0; /* Simply ignore this one... */
}
-static void getchs (struct hardfiledata *hfd, int *cyl, int *cylsec, int *head, int *tracksec)
+static void getchs2 (struct hardfiledata *hfd, int *cyl, int *cylsec, int *head, int *tracksec)
{
unsigned int total = (unsigned int)(hfd->size / 1024);
int heads;
*head = heads;
}
+static void getchs (struct hardfiledata *hfd, int *cyl, int *cylsec, int *head, int *tracksec)
+{
+ getchs2 (hfd, cyl, cylsec, head, tracksec);
+ hf_log ("CHS: %08.8X-%08.8X %d %d %d %d %d\n",
+ (uae_u32)(hfd->size >> 32),(uae_u32)hfd->size,
+ *cyl, *cylsec, *head, *tracksec);
+}
+
static void outofbounds (int cmd, uae_u64 offset, uae_u64 len, uae_u64 max)
{
write_log ("cmd %d: out of bounds, %08.8X-%08.8X + %08.8X-%08.8X > %08.8X-%08.8X\n", cmd,
break;
bad_command:
+ error = -5; /* IOERR_BADADDRESS */
break;
case NSCMD_DEVICEQUERY:
default:
/* Command not understood. */
- error = -3; /* io_Error */
+ error = -3; /* IOERR_NOCMD */
break;
}
put_long (request + 32, actual);
static int ahisndbufsize,oldpos,*ahisndbufpt,ahitweak;;
static unsigned int dwBytes,dwBytes1,dwBytes2,espstore;
static LPVOID dwData1,dwData2;
-int ahi_pollrate;
+int ahi_pollrate = 40;
int sound_freq_ahi;
void frame_drawn(void)
{
double diff, skipmode;
+ static int frame;
if (!avioutput_video || !avioutput_enabled)
return;
#define WIN32_LEAN_AND_MEAN
+#define _WIN32_WINNT 0x500
#include "sysconfig.h"
#include "sysdeps.h"
i, j;
DRIVE_LAYOUT_INFORMATION *dli;
DISK_GEOMETRY dg;
+ GET_LENGTH_INFORMATION gli;
+ int gli_ok;
int ret = -1;
struct uae_driveinfo *udi;
char orgname[1024];
ret = 1;
goto end;
}
+ gli_ok = 1;
+ if (!DeviceIoControl (hDevice, IOCTL_DISK_GET_LENGTH_INFO, NULL, 0, (void*)&gli, sizeof (gli), &returnedLength, NULL)) {
+ write_log ("IOCTL_DISK_GET_LENGTH_INFO failed with error code %d.\n", GetLastError());
+ gli_ok = 0;
+ write_log ("IOCTL_DISK_GET_LENGTH_INFO not supported, detected disk size may not be correct.\n");
+ }
udi->bytespersector = dg.BytesPerSector;
if (dg.BytesPerSector < 512) {
write_log ("unsupported blocksize < 512 (%d)\n", dg.BytesPerSector);
goto end;
}
udi->offset = udi->offset2 = 0;
- udi->size = udi->size2 = (uae_u64)dg.BytesPerSector * (uae_u64)dg.Cylinders.QuadPart * (uae_u64)dg.TracksPerCylinder * (uae_u64)dg.SectorsPerTrack;
- write_log ("device size %I64d bytes\n", udi->size);
+ write_log ("BytesPerSector=%d Cyls=%I64d TracksPerCyl=%d SecsPerTrack=%d\n",
+ dg.BytesPerSector, dg.Cylinders.QuadPart, dg.TracksPerCylinder, dg.SectorsPerTrack);
+ udi->size = udi->size2 = (uae_u64)dg.BytesPerSector * (uae_u64)dg.Cylinders.QuadPart *
+ (uae_u64)dg.TracksPerCylinder * (uae_u64)dg.SectorsPerTrack;
+ if (gli_ok)
+ udi->size = udi->size2 = gli.Length.QuadPart;
+ write_log ("device size %I64d (0x%I64x) bytes\n", udi->size, udi->size);
memset (outBuf, 0, sizeof (outBuf));
status = DeviceIoControl(hDevice, IOCTL_DISK_GET_DRIVE_LAYOUT, NULL, 0,
struct RenderInfo ri;
uae_u32 result = 0;
+ if (Width * Height <= 2500)
+ return 0;
special_mem|=picasso_is_special_read|picasso_is_special;
#ifdef LOCK_UNLOCK_MADNESS
uae_u8 *tmpl_base;
uae_u32 result = 0;
+ if (W * H <= 2500)
+ return 0;
special_mem|=picasso_is_special_read|picasso_is_special;
#ifdef LOCK_UNLOCK_MADNESS
extern int mouseactive, focus;
extern int ignore_messages_all;
#define WINUAEBETA 1
-#define WINUAEBETASTR " Beta 6"
+#define WINUAEBETASTR " Beta 7"
extern void my_kbd_handler (int, int, int);
extern void clearallkeys(void);
char init_path[MAX_DPATH] = "";
BOOL result = FALSE;
char *amiga_path = NULL;
- char description[ CFG_DESCRIPTION_LENGTH ] = "";
+ char description[CFG_DESCRIPTION_LENGTH] = "";
char *p, *nextp;
int all = 1;
int next;
- char szTitle[ MAX_DPATH ];
- char szFormat[ MAX_DPATH ];
- char szFilter[ MAX_DPATH ] = { 0 };
+ char szTitle[MAX_DPATH];
+ char szFormat[MAX_DPATH];
+ char szFilter[MAX_DPATH] = { 0 };
memset (&openFileName, 0, sizeof (OPENFILENAME));
- strncpy( init_path, start_path, MAX_DPATH );
- switch( flag )
+ strncpy (init_path, start_path, MAX_DPATH);
+ switch (flag)
{
case 0:
case 1:
PORTS_ID = init_page (IDD_PORTS, IDI_PORTS, IDS_PORTS, PortsDlgProc, NULL, "gui/ports.htm");
INPUT_ID = init_page (IDD_INPUT, IDI_INPUT, IDS_INPUT, InputDlgProc, NULL, "gui/input.htm");
MISC1_ID = init_page (IDD_MISC1, IDI_MISC1, IDS_MISC1, MiscDlgProc1, NULL, "gui/misc.htm");
- MISC2_ID = init_page (IDD_MISC2, IDI_MISC2, IDS_MISC2, MiscDlgProc2, NULL, "gui/misc.htm");
+ MISC2_ID = init_page (IDD_MISC2, IDI_MISC2, IDS_MISC2, MiscDlgProc2, NULL, "gui/misc2.htm");
#ifdef AVIOUTPUT
AVIOUTPUT_ID = init_page (IDD_AVIOUTPUT, IDI_AVIOUTPUT, IDS_AVIOUTPUT, AVIOutputDlgProc, NULL, "gui/output.htm");
#endif