mirror of
https://github.com/LIV2/WinUAE.git
synced 2025-12-06 00:12:52 +00:00
3300b10
This commit is contained in:
parent
9070761970
commit
1205c909aa
90
autoconf.cpp
90
autoconf.cpp
@ -24,6 +24,7 @@
|
||||
#include "threaddep/thread.h"
|
||||
#include "native2amiga.h"
|
||||
#include "inputdevice.h"
|
||||
#include "uae/ppc.h"
|
||||
|
||||
/* Commonly used autoconfig strings */
|
||||
|
||||
@ -38,6 +39,7 @@ uae_sem_t hardware_trap_event[RTAREA_TRAP_DATA_SIZE / RTAREA_TRAP_DATA_SLOT_SIZE
|
||||
uae_sem_t hardware_trap_event2[RTAREA_TRAP_DATA_SIZE / RTAREA_TRAP_DATA_SLOT_SIZE];
|
||||
|
||||
static uaecptr rt_trampoline_ptr, trap_entry;
|
||||
static bool rtarea_write_enabled;
|
||||
extern volatile uae_atomic hwtrap_waiting;
|
||||
extern volatile int trap_mode;
|
||||
|
||||
@ -181,6 +183,8 @@ static uae_u32 REGPARAM2 rtarea_bget (uaecptr addr)
|
||||
|
||||
static bool rtarea_write(uaecptr addr)
|
||||
{
|
||||
if (rtarea_write_enabled)
|
||||
return true;
|
||||
if (addr >= RTAREA_WRITEOFFSET)
|
||||
return true;
|
||||
if (addr >= RTAREA_SYSBASE && addr < RTAREA_SYSBASE + 4)
|
||||
@ -268,6 +272,7 @@ static void REGPARAM2 rtarea_wput (uaecptr addr, uae_u32 value)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void REGPARAM2 rtarea_lput (uaecptr addr, uae_u32 value)
|
||||
{
|
||||
addr &= 0xffff;
|
||||
@ -374,17 +379,96 @@ uae_u32 ds_bstr_ansi (const uae_char *str)
|
||||
return addr (rt_straddr) >> 2;
|
||||
}
|
||||
|
||||
#define MAX_ABSOLUTE_ROM_ADDRESS 1024
|
||||
|
||||
static int absolute_rom_address;
|
||||
static uaecptr absolute_rom_addresses[MAX_ABSOLUTE_ROM_ADDRESS];
|
||||
static uaecptr rombase_new;
|
||||
|
||||
void save_rom_absolute(uaecptr addr)
|
||||
{
|
||||
if (rombase_new)
|
||||
return;
|
||||
if (absolute_rom_address >= MAX_ABSOLUTE_ROM_ADDRESS) {
|
||||
write_log(_T("MAX_ABSOLUTE_ROM_ADDRESS is too low!"));
|
||||
abort();
|
||||
}
|
||||
for (int i = 0; i < absolute_rom_address; i++) {
|
||||
if (absolute_rom_addresses[i] == addr) {
|
||||
write_log(_T("Address %08x already added\n"), addr);
|
||||
return;
|
||||
}
|
||||
}
|
||||
absolute_rom_addresses[absolute_rom_address++] = addr;
|
||||
}
|
||||
|
||||
void add_rom_absolute(uaecptr addr)
|
||||
{
|
||||
uaecptr h = here();
|
||||
dl(addr);
|
||||
save_rom_absolute(h);
|
||||
}
|
||||
|
||||
uae_u32 boot_rom_copy(TrapContext *ctx, uaecptr rombase, int mode)
|
||||
{
|
||||
uaecptr reloc = 0;
|
||||
if (currprefs.uaeboard < 3)
|
||||
return 0;
|
||||
if (!mode) {
|
||||
rtarea_write_enabled = true;
|
||||
protect_roms(false);
|
||||
rombase_new = rombase;
|
||||
int size = 4 + 2 + 4;
|
||||
for (int i = 0; i < absolute_rom_address; i++) {
|
||||
uae_u32 a = absolute_rom_addresses[i];
|
||||
if (a >= rtarea_base && a < rtarea_base + 0x10000) {
|
||||
size += 2;
|
||||
} else {
|
||||
size += 4;
|
||||
}
|
||||
}
|
||||
reloc = uaeboard_alloc_ram(size);
|
||||
uae_u8 *p = uaeboard_map_ram(reloc);
|
||||
put_long_host(p, rtarea_base);
|
||||
p += 4;
|
||||
for (int i = 0; i < absolute_rom_address; i++) {
|
||||
uae_u32 a = absolute_rom_addresses[i];
|
||||
if (a >= rtarea_base && a < rtarea_base + 0x10000) {
|
||||
put_word_host(p, a & 0xffff);
|
||||
p += 2;
|
||||
}
|
||||
}
|
||||
put_word_host(p, 0);
|
||||
p += 2;
|
||||
for (int i = 0; i < absolute_rom_address; i++) {
|
||||
uae_u32 a = absolute_rom_addresses[i];
|
||||
if (a < rtarea_base || a >= rtarea_base + 0x10000) {
|
||||
put_long_host(p, a);
|
||||
p += 4;
|
||||
}
|
||||
}
|
||||
put_long_host(p, 0);
|
||||
write_log(_T("ROMBASE %08x RAMBASE %08x RELOC %08x (%d)\n"), rtarea_base, rombase, reloc, absolute_rom_address);
|
||||
} else {
|
||||
rtarea_write_enabled = false;
|
||||
protect_roms(true);
|
||||
write_log(_T("ROMBASE changed.\n"), absolute_rom_address);
|
||||
reloc = 1;
|
||||
}
|
||||
return reloc;
|
||||
}
|
||||
|
||||
void calltrap (uae_u32 n)
|
||||
{
|
||||
if (currprefs.uaeboard > 2) {
|
||||
dw(0x4eb9); // JSR rt_trampoline_ptr
|
||||
dl(rt_trampoline_ptr);
|
||||
add_rom_absolute(rt_trampoline_ptr);
|
||||
uaecptr a = here();
|
||||
org(rt_trampoline_ptr);
|
||||
dw(0x3f3c); // MOVE.W #n,-(SP)
|
||||
dw(n);
|
||||
dw(0x4ef9); // JMP rt_trampoline_entry
|
||||
dl(trap_entry);
|
||||
add_rom_absolute(trap_entry);
|
||||
org(a);
|
||||
rt_trampoline_ptr += 3 * 2 + 1 * 4;
|
||||
} else {
|
||||
@ -462,6 +546,8 @@ void rtarea_init(void)
|
||||
|
||||
rt_trampoline_ptr = rtarea_base + RTAREA_TRAMPOLINE;
|
||||
trap_entry = 0;
|
||||
absolute_rom_address = 0;
|
||||
rombase_new = 0;
|
||||
|
||||
init_traps ();
|
||||
|
||||
|
||||
14
cfgfile.cpp
14
cfgfile.cpp
@ -196,7 +196,7 @@ static const TCHAR *joyportmodes[] = { _T(""), _T("mouse"), _T("mousenowheel"),
|
||||
static const TCHAR *joyaf[] = { _T("none"), _T("normal"), _T("toggle"), _T("always"), 0 };
|
||||
static const TCHAR *epsonprinter[] = { _T("none"), _T("ascii"), _T("epson_matrix_9pin"), _T("epson_matrix_24pin"), _T("epson_matrix_48pin"), 0 };
|
||||
static const TCHAR *aspects[] = { _T("none"), _T("vga"), _T("tv"), 0 };
|
||||
static const TCHAR *vsyncmodes[] = { _T("false"), _T("true"), _T("autoswitch"), 0 };
|
||||
static const TCHAR *vsyncmodes[] = { _T("adaptive"), _T("false"), _T("true"), _T("autoswitch"), 0 };
|
||||
static const TCHAR *vsyncmodes2[] = { _T("normal"), _T("busywait"), 0 };
|
||||
static const TCHAR *filterapi[] = { _T("directdraw"), _T("direct3d"), 0 };
|
||||
static const TCHAR *dongles[] =
|
||||
@ -1571,9 +1571,9 @@ void cfgfile_save_options (struct zfile *f, struct uae_prefs *p, int type)
|
||||
cfgfile_write (f, _T("gfx_backbuffers_rtg"), _T("%d"), p->gfx_apmode[1].gfx_backbuffers);
|
||||
if (p->gfx_apmode[APMODE_NATIVE].gfx_interlaced)
|
||||
cfgfile_write_bool (f, _T("gfx_interlace"), p->gfx_apmode[APMODE_NATIVE].gfx_interlaced);
|
||||
cfgfile_write_str (f, _T("gfx_vsync"), vsyncmodes[p->gfx_apmode[0].gfx_vsync]);
|
||||
cfgfile_write_str (f, _T("gfx_vsync"), vsyncmodes[p->gfx_apmode[0].gfx_vsync + 1]);
|
||||
cfgfile_write_str (f, _T("gfx_vsyncmode"), vsyncmodes2[p->gfx_apmode[0].gfx_vsyncmode]);
|
||||
cfgfile_write_str (f, _T("gfx_vsync_picasso"), vsyncmodes[p->gfx_apmode[1].gfx_vsync]);
|
||||
cfgfile_write_str (f, _T("gfx_vsync_picasso"), vsyncmodes[p->gfx_apmode[1].gfx_vsync + 1]);
|
||||
cfgfile_write_str (f, _T("gfx_vsyncmode_picasso"), vsyncmodes2[p->gfx_apmode[1].gfx_vsyncmode]);
|
||||
cfgfile_write_bool (f, _T("gfx_lores"), p->gfx_resolution == 0);
|
||||
cfgfile_write_str (f, _T("gfx_resolution"), lorestype1[p->gfx_resolution]);
|
||||
@ -2813,13 +2813,17 @@ static int cfgfile_parse_host (struct uae_prefs *p, TCHAR *option, TCHAR *value)
|
||||
return 1;
|
||||
}
|
||||
if (_tcscmp (option, _T("gfx_vsync")) == 0) {
|
||||
if (cfgfile_strval (option, value, _T("gfx_vsync"), &p->gfx_apmode[APMODE_NATIVE].gfx_vsync, vsyncmodes, 0) >= 0)
|
||||
if (cfgfile_strval (option, value, _T("gfx_vsync"), &p->gfx_apmode[APMODE_NATIVE].gfx_vsync, vsyncmodes, 0) >= 0) {
|
||||
p->gfx_apmode[APMODE_NATIVE].gfx_vsync--;
|
||||
return 1;
|
||||
}
|
||||
return cfgfile_yesno (option, value, _T("gfx_vsync"), &p->gfx_apmode[APMODE_NATIVE].gfx_vsync);
|
||||
}
|
||||
if (_tcscmp (option, _T("gfx_vsync_picasso")) == 0) {
|
||||
if (cfgfile_strval (option, value, _T("gfx_vsync_picasso"), &p->gfx_apmode[APMODE_RTG].gfx_vsync, vsyncmodes, 0) >= 0)
|
||||
if (cfgfile_strval (option, value, _T("gfx_vsync_picasso"), &p->gfx_apmode[APMODE_RTG].gfx_vsync, vsyncmodes, 0) >= 0) {
|
||||
p->gfx_apmode[APMODE_RTG].gfx_vsync--;
|
||||
return 1;
|
||||
}
|
||||
return cfgfile_yesno (option, value, _T("gfx_vsync_picasso"), &p->gfx_apmode[APMODE_RTG].gfx_vsync);
|
||||
}
|
||||
if (cfgfile_strval (option, value, _T("gfx_vsyncmode"), &p->gfx_apmode[APMODE_NATIVE].gfx_vsyncmode, vsyncmodes2, 0))
|
||||
|
||||
20
drawing.cpp
20
drawing.cpp
@ -1743,7 +1743,7 @@ static void pfield_set_linetoscr (void)
|
||||
switch (gfxvidinfo.drawbuffer.pixbytes) {
|
||||
case 2:
|
||||
pfield_do_linetoscr_normal = need_genlock_data ? linetoscr_16_stretch2_aga_genlock : linetoscr_16_stretch2_aga;
|
||||
pfield_do_linetoscr_sprite = need_genlock_data ? linetoscr_16_stretch2_aga_spr_genlock : linetoscr_16_stretch2_aga_spr_genlock;
|
||||
pfield_do_linetoscr_sprite = need_genlock_data ? linetoscr_16_stretch2_aga_spr_genlock : linetoscr_16_stretch2_aga_spr;
|
||||
pfield_do_linetoscr_spriteonly = linetoscr_16_stretch2_aga_spronly;
|
||||
break;
|
||||
case 4:
|
||||
@ -2012,12 +2012,13 @@ static void init_ham_decoding (void)
|
||||
} else { /* AGA mode HAM6 */
|
||||
while (unpainted_amiga-- > 0) {
|
||||
int pv = pixdata.apixels[ham_decode_pixel++] ^ bplxor;
|
||||
uae_u32 pc = ((pv & 0xf) << 0) | ((pv & 0xf) << 4);
|
||||
switch (pv & 0x30)
|
||||
{
|
||||
case 0x00: ham_lastcolor = colors_for_drawing.color_regs_aga[pv] & 0xffffff; break;
|
||||
case 0x10: ham_lastcolor &= 0xFFFF00; ham_lastcolor |= (pv & 0xF) << 4; break;
|
||||
case 0x20: ham_lastcolor &= 0x00FFFF; ham_lastcolor |= (pv & 0xF) << 20; break;
|
||||
case 0x30: ham_lastcolor &= 0xFF00FF; ham_lastcolor |= (pv & 0xF) << 12; break;
|
||||
case 0x10: ham_lastcolor &= 0xFFFF00; ham_lastcolor |= pc << 0; break;
|
||||
case 0x20: ham_lastcolor &= 0x00FFFF; ham_lastcolor |= pc << 16; break;
|
||||
case 0x30: ham_lastcolor &= 0xFF00FF; ham_lastcolor |= pc << 8; break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2071,12 +2072,13 @@ static void decode_ham (int pix, int stoppos, bool blank)
|
||||
} else { /* AGA mode HAM6 */
|
||||
while (todraw_amiga-- > 0) {
|
||||
int pv = pixdata.apixels[ham_decode_pixel] ^ bplxor;
|
||||
uae_u32 pc = ((pv & 0xf) << 0) | ((pv & 0xf) << 4);
|
||||
switch (pv & 0x30)
|
||||
{
|
||||
case 0x00: ham_lastcolor = colors_for_drawing.color_regs_aga[pv] & 0xffffff; break;
|
||||
case 0x10: ham_lastcolor &= 0xFFFF00; ham_lastcolor |= (pv & 0xF) << 4; break;
|
||||
case 0x20: ham_lastcolor &= 0x00FFFF; ham_lastcolor |= (pv & 0xF) << 20; break;
|
||||
case 0x30: ham_lastcolor &= 0xFF00FF; ham_lastcolor |= (pv & 0xF) << 12; break;
|
||||
case 0x10: ham_lastcolor &= 0xFFFF00; ham_lastcolor |= pc << 0; break;
|
||||
case 0x20: ham_lastcolor &= 0x00FFFF; ham_lastcolor |= pc << 16; break;
|
||||
case 0x30: ham_lastcolor &= 0xFF00FF; ham_lastcolor |= pc << 8; break;
|
||||
}
|
||||
ham_linebuf[ham_decode_pixel++] = ham_lastcolor;
|
||||
}
|
||||
@ -4162,7 +4164,7 @@ void drawing_init (void)
|
||||
|
||||
int isvsync_chipset (void)
|
||||
{
|
||||
if (picasso_on || !currprefs.gfx_apmode[0].gfx_vsync || (currprefs.gfx_apmode[0].gfx_vsync == 0 && !currprefs.gfx_apmode[0].gfx_fullscreen))
|
||||
if (picasso_on || currprefs.gfx_apmode[0].gfx_vsync <= 0 || (currprefs.gfx_apmode[0].gfx_vsync <= 0 && !currprefs.gfx_apmode[0].gfx_fullscreen))
|
||||
return 0;
|
||||
if (currprefs.gfx_apmode[0].gfx_vsyncmode == 0)
|
||||
return 1;
|
||||
@ -4173,7 +4175,7 @@ int isvsync_chipset (void)
|
||||
|
||||
int isvsync_rtg (void)
|
||||
{
|
||||
if (!picasso_on || !currprefs.gfx_apmode[1].gfx_vsync || (currprefs.gfx_apmode[1].gfx_vsync == 0 && !currprefs.gfx_apmode[1].gfx_fullscreen))
|
||||
if (!picasso_on || currprefs.gfx_apmode[1].gfx_vsync <= 0 || (currprefs.gfx_apmode[1].gfx_vsync <= 0 && !currprefs.gfx_apmode[1].gfx_fullscreen))
|
||||
return 0;
|
||||
if (currprefs.gfx_apmode[1].gfx_vsyncmode == 0)
|
||||
return 1;
|
||||
|
||||
@ -1221,9 +1221,12 @@ static addrbank *expamem_map_uaeboard(void)
|
||||
{
|
||||
uaeboard_base = expamem_z2_pointer;
|
||||
uaeboard_ram_start = UAEBOARD_WRITEOFFSET;
|
||||
uaeboard_bank.start = uaeboard_base;
|
||||
map_banks_z2(&uaeboard_bank, uaeboard_base >> 16, 1);
|
||||
if (currprefs.uaeboard > 1)
|
||||
if (currprefs.uaeboard > 1) {
|
||||
rtarea_bank.start = uaeboard_base + 65536;
|
||||
map_banks_z2(&rtarea_bank, (uaeboard_base + 65536) >> 16, 1);
|
||||
}
|
||||
return &uaeboard_bank;
|
||||
}
|
||||
|
||||
@ -1244,7 +1247,7 @@ static addrbank* expamem_init_uaeboard(int devnum)
|
||||
|
||||
expamem_write(0x18, 0x00); /* ser.no. Byte 0 */
|
||||
expamem_write(0x1c, 0x00); /* ser.no. Byte 1 */
|
||||
expamem_write(0x20, 0x00); /* ser.no. Byte 2 */
|
||||
expamem_write(0x20, currprefs.uaeboard); /* ser.no. Byte 2 */
|
||||
expamem_write(0x24, 0x02); /* ser.no. Byte 3 */
|
||||
|
||||
uae_u8 *p = uaeboard_bank.baseaddr;
|
||||
|
||||
205
filesys.asm
205
filesys.asm
@ -93,7 +93,7 @@ startjmp:
|
||||
bra.w filesys_mainloop ;1 16
|
||||
dc.l make_dev-start ;2 20
|
||||
dc.l filesys_init-start ;3 24
|
||||
dc.l 0 ;4 28
|
||||
dc.l moverom-start ;4 28
|
||||
dc.l bootcode-start ;5 32
|
||||
dc.l setup_exter-start ;6 36
|
||||
dc.l bcplwrapper-start ;7 40
|
||||
@ -432,7 +432,7 @@ mountproc
|
||||
dc.l 0
|
||||
moveq #2,d1
|
||||
move.w #$FF48,d0 ; get new unit number
|
||||
bsr.w getrtbase
|
||||
bsr.w getrtbaselocal
|
||||
jsr (a0)
|
||||
move.l d0,d1
|
||||
bmi.s .out
|
||||
@ -498,7 +498,7 @@ exter_task_wait
|
||||
moveq #10,d7
|
||||
EXTT_loop
|
||||
move.w #$FF50,d0 ; exter_int_helper
|
||||
bsr.w getrtbase
|
||||
bsr.w getrtbaselocal
|
||||
move.l d7,d0
|
||||
jsr (a0)
|
||||
tst.l d0
|
||||
@ -554,7 +554,7 @@ EXTT_shellexec
|
||||
bsr.w createproc
|
||||
move.l d0,d1
|
||||
move.w #$FF50,d0 ; exter_int_helper
|
||||
bsr.w getrtbase
|
||||
bsr.w getrtbaselocal
|
||||
moveq #20,d0
|
||||
jsr (a0)
|
||||
bra.w EXTT_loop
|
||||
@ -596,7 +596,7 @@ shellexecproc:
|
||||
|
||||
.seproc1
|
||||
move.w #$FF50,d0 ; exter_int_helper
|
||||
bsr.w getrtbase
|
||||
bsr.w getrtbaselocal
|
||||
moveq #21,d0
|
||||
jsr (a0)
|
||||
; a0 = command
|
||||
@ -665,7 +665,7 @@ shellexecproc:
|
||||
move.l a4,sp
|
||||
|
||||
move.w #$FF50,d0 ; exter_int_helper
|
||||
bsr.w getrtbase
|
||||
bsr.w getrtbaselocal
|
||||
moveq #22,d0
|
||||
jsr (a0)
|
||||
|
||||
@ -679,7 +679,7 @@ heartbeatvblank:
|
||||
|
||||
move.w #$FF38,d0
|
||||
moveq #18,d1
|
||||
bsr.w getrtbase
|
||||
bsr.w getrtbaselocal
|
||||
move.l d2,d0
|
||||
move.l d3,d2
|
||||
jsr (a0)
|
||||
@ -790,7 +790,7 @@ setup_exter:
|
||||
|
||||
move.w #$FF38,d0
|
||||
moveq #4,d1
|
||||
bsr.w getrtbase
|
||||
bsr.w getrtbaselocal
|
||||
jsr (a0)
|
||||
tst.l d0
|
||||
beq.s .nomh
|
||||
@ -1314,7 +1314,7 @@ make_dev: ; IN: A0 param_packet, D6: unit_no
|
||||
bsr.w getrtbase
|
||||
move.l (a0),a5
|
||||
move.w #$FF28,d0 ; fill in unit-dependent info (filesys_dev_storeinfo)
|
||||
bsr.w getrtbase
|
||||
bsr.w getrtbaselocal
|
||||
move.l a0,a1
|
||||
move.l (sp)+,a0
|
||||
clr.l PP_FSSIZE(a0) ; filesystem size
|
||||
@ -1352,7 +1352,7 @@ mountalways
|
||||
; do not mount but we might need to load possible custom filesystem(s)
|
||||
move.l a0,a1
|
||||
move.w #$FF20,d0 ; record in ui.startup (filesys_dev_remember)
|
||||
bsr.w getrtbase
|
||||
bsr.w getrtbaselocal
|
||||
jsr (a0)
|
||||
bra.s dont_mount
|
||||
|
||||
@ -1364,7 +1364,7 @@ do_mount:
|
||||
move.l a0,a1
|
||||
move.l d0,a3 ; devicenode
|
||||
move.w #$FF20,d0 ; record in ui.startup (filesys_dev_remember)
|
||||
bsr.w getrtbase
|
||||
bsr.w getrtbaselocal
|
||||
jsr (a0)
|
||||
moveq #0,d0
|
||||
move.l d0,8(a3) ; dn_Task
|
||||
@ -1406,7 +1406,7 @@ nordbfs2:
|
||||
move.l d0,d1
|
||||
|
||||
move.w #$FF18,d0 ; update dn_SegList if needed (filesys_dev_bootfilesys)
|
||||
bsr.w getrtbase
|
||||
bsr.w getrtbaselocal
|
||||
jsr (a0)
|
||||
|
||||
move.l d3,d0
|
||||
@ -1557,7 +1557,7 @@ addfsonthefly ; d1 = fs index
|
||||
|
||||
clockreset:
|
||||
move.w #$ff58,d0 ; fsmisc_helper
|
||||
bsr.w getrtbase
|
||||
bsr.w getrtbaselocal
|
||||
moveq #3,d0 ; get time
|
||||
jsr (a0)
|
||||
move.l 168(a3),a1
|
||||
@ -1603,7 +1603,7 @@ filesys_mainloop_bcpl:
|
||||
|
||||
move.l #12+20+(44+20+60+1)+3+4+4+4+(1+3)+4+4+4,d1
|
||||
move.w #$FF40,d0 ; startup_handler
|
||||
bsr.w getrtbase
|
||||
bsr.w getrtbaselocal
|
||||
moveq #1,d0
|
||||
jsr (a0)
|
||||
; if d0 != 0, it becomes our memory space
|
||||
@ -1653,7 +1653,7 @@ filesys_mainloop_bcpl:
|
||||
.got_bcpl
|
||||
|
||||
move.w #$FF40,d0 ; startup_handler
|
||||
bsr.w getrtbase
|
||||
bsr.w getrtbaselocal
|
||||
moveq #0,d0
|
||||
jsr (a0)
|
||||
move.l d0,d2
|
||||
@ -1710,7 +1710,7 @@ FSML_loop:
|
||||
beq.s .nodc
|
||||
; call filesys_media_change_reply (pre)
|
||||
move.w #$ff58,d0 ; fsmisc_helper
|
||||
bsr.w getrtbase
|
||||
bsr.w getrtbaselocal
|
||||
moveq #1,d0 ; filesys_media_change_reply
|
||||
jsr (a0)
|
||||
tst.l d0
|
||||
@ -1720,7 +1720,7 @@ FSML_loop:
|
||||
clr.b 172(a3)
|
||||
; call filesys_media_change_reply (post)
|
||||
move.w #$ff58,d0 ; fsmisc_helper
|
||||
bsr.w getrtbase
|
||||
bsr.w getrtbaselocal
|
||||
moveq #2,d0 ; filesys_media_change_reply
|
||||
jsr (a0)
|
||||
.nodc
|
||||
@ -1761,7 +1761,7 @@ nonnotif
|
||||
|
||||
; It's a dummy packet indicating that some queued command finished.
|
||||
move.w #$FF50,d0 ; exter_int_helper
|
||||
bsr.w getrtbase
|
||||
bsr.w getrtbaselocal
|
||||
moveq #1,d0
|
||||
jsr (a0)
|
||||
FSML_check_queue_other:
|
||||
@ -1804,7 +1804,7 @@ FSML_FromDOS:
|
||||
FSML_DoCommand:
|
||||
bsr.b LockCheck ; Make sure there are enough locks for the C code to grab.
|
||||
move.w #$FF30,d0 ; filesys_handler
|
||||
bsr.w getrtbase
|
||||
bsr.w getrtbaselocal
|
||||
jsr (a0)
|
||||
tst.l d0
|
||||
beq.b FSML_Reply
|
||||
@ -1834,7 +1834,7 @@ FSML_ReplyOne2:
|
||||
bne.s FSML_ReplyOne3
|
||||
; Arghh.. we need more entries. (some buggy programs fail if eac_Entries = 0 with continue enabled)
|
||||
move.w #$ff58,d0 ; fsmisc_helper
|
||||
bsr.w getrtbase
|
||||
bsr.w getrtbaselocal
|
||||
moveq #0,d0 ; exall
|
||||
jsr (a0)
|
||||
bra.s .exaretry
|
||||
@ -2213,7 +2213,7 @@ getgfxlimits:
|
||||
move.w MH_FOO_MOFFSET(a5),d2
|
||||
move.w #$FF38,d0
|
||||
moveq #1,d1
|
||||
bsr.w getrtbase
|
||||
bsr.w getrtbaselocal
|
||||
jsr (a0)
|
||||
|
||||
.nosend
|
||||
@ -2259,7 +2259,7 @@ mousehack_task:
|
||||
; send data structure address
|
||||
move.w #$FF38,d0
|
||||
moveq #5,d1
|
||||
bsr.w getrtbase
|
||||
bsr.w getrtbaselocal
|
||||
move.l a4,d0
|
||||
jsr (a0)
|
||||
|
||||
@ -2274,7 +2274,7 @@ mousehack_task:
|
||||
moveq #5,d0 ;INTB_VERTB
|
||||
jsr -$00a8(a6)
|
||||
|
||||
mhloop
|
||||
mhloop:
|
||||
move.l d6,d0
|
||||
jsr -$013e(a6) ;Wait
|
||||
|
||||
@ -2356,7 +2356,7 @@ mhloop
|
||||
;tell native side that mousehack is now active
|
||||
move.w #$FF38,d0
|
||||
moveq #0,d1
|
||||
bsr.w getrtbase
|
||||
bsr.w getrtbaselocal
|
||||
jsr (a0)
|
||||
bra.w mhloop
|
||||
.yestim
|
||||
@ -2547,7 +2547,7 @@ mhloop
|
||||
jsr -$2a(a6) ;PeekQualifier
|
||||
move.l (sp)+,a6
|
||||
and.w #$7fff,d0
|
||||
move.w d0,8(a2) ;ie_Qualifier
|
||||
or.w d0,8(a2) ;ie_Qualifier
|
||||
.mhvpre36
|
||||
|
||||
bsr.w mhdoio
|
||||
@ -2626,7 +2626,7 @@ clipboard_init:
|
||||
|
||||
move.w #$FF38,d0
|
||||
moveq #17,d1
|
||||
bsr.w getrtbase
|
||||
bsr.w getrtbaselocal
|
||||
jsr (a0)
|
||||
btst #0,d0
|
||||
beq.s .noclip
|
||||
@ -2642,7 +2642,7 @@ clipboard_init:
|
||||
|
||||
move.w #$FF38,d0
|
||||
moveq #14,d1
|
||||
bsr.w getrtbase
|
||||
bsr.w getrtbaselocal
|
||||
move.l a5,d0
|
||||
jsr (a0)
|
||||
|
||||
@ -2660,7 +2660,7 @@ clipboard_init:
|
||||
clipkill
|
||||
move.w #$FF38,d0
|
||||
moveq #10,d1
|
||||
bsr.w getrtbase
|
||||
bsr.w getrtbaselocal
|
||||
jsr (a0)
|
||||
rts
|
||||
|
||||
@ -2718,7 +2718,7 @@ prefsread:
|
||||
bne.s .pr4
|
||||
move.w #$FF38,d0
|
||||
moveq #16,d1
|
||||
bsr.w getrtbase
|
||||
bsr.w getrtbaselocal
|
||||
jsr (a0)
|
||||
.pr1
|
||||
move.l d4,d1
|
||||
@ -2760,7 +2760,7 @@ clipboard_proc:
|
||||
|
||||
move.w #$FF38,d0
|
||||
moveq #13,d1
|
||||
bsr.w getrtbase
|
||||
bsr.w getrtbaselocal
|
||||
jsr (a0)
|
||||
tst.l d0
|
||||
beq.w clipdie
|
||||
@ -2848,7 +2848,7 @@ cfversion
|
||||
|
||||
move.w #$FF38,d0
|
||||
moveq #15,d1
|
||||
bsr.w getrtbase
|
||||
bsr.w getrtbaselocal
|
||||
jsr (a0)
|
||||
tst.l CLIP_WRITE_SIZE(a5)
|
||||
bne.s clipsignal
|
||||
@ -2875,7 +2875,7 @@ clipsignal
|
||||
;and notify host-side
|
||||
move.w #$FF38,d0
|
||||
moveq #12,d1
|
||||
bsr.w getrtbase
|
||||
bsr.w getrtbaselocal
|
||||
jsr (a0)
|
||||
tst.l d0
|
||||
beq.s .nowrite
|
||||
@ -2945,7 +2945,7 @@ clipread:
|
||||
jsr -$01c8(a6) ;DoIO
|
||||
move.w #$FF38,d0
|
||||
moveq #11,d1
|
||||
bsr.w getrtbase
|
||||
bsr.w getrtbaselocal
|
||||
move.l 32(a4),d0
|
||||
jsr (a0)
|
||||
move.l a2,a1
|
||||
@ -2987,7 +2987,7 @@ consolehook:
|
||||
moveq #-1,d2
|
||||
move.w #$FF38,d0
|
||||
moveq #17,d1
|
||||
bsr.w getrtbase
|
||||
bsr.w getrtbaselocal
|
||||
jsr (a0)
|
||||
btst #1,d0
|
||||
beq.s .ch2
|
||||
@ -3006,7 +3006,7 @@ consolehook:
|
||||
move.l a0,a1
|
||||
move.w #$FF38,d0
|
||||
moveq #101,d1
|
||||
bsr.w getrtbase
|
||||
bsr.w getrtbaselocal
|
||||
jsr (a0)
|
||||
moveq #1,d2
|
||||
.ch1
|
||||
@ -3020,7 +3020,7 @@ chook:
|
||||
movem.l d0-d1/a0,-(sp)
|
||||
move.w #$FF38,d0
|
||||
moveq #102,d1
|
||||
bsr.w getrtbase
|
||||
bsr.w getrtbaselocal
|
||||
jsr (a0)
|
||||
movem.l (sp)+,d0-d1/a0
|
||||
rts
|
||||
@ -3043,7 +3043,7 @@ debuggerproc
|
||||
jsr -$0228(a6) ; OpenLibrary
|
||||
moveq #2,d1
|
||||
move.w #$FF78,d0
|
||||
bsr.w getrtbase
|
||||
bsr.w getrtbaselocal
|
||||
move.l a0,a2
|
||||
moveq #1,d1
|
||||
jsr (a0) ; debugger init
|
||||
@ -3198,7 +3198,7 @@ bcplwrapper_start:
|
||||
move.l d2,d1
|
||||
lea wb13ffspatches(pc),a1
|
||||
move.w #$FF68,d0
|
||||
bsr.w getrtbase
|
||||
bsr.w getrtbaselocal
|
||||
jsr (a0)
|
||||
jmp (a0)
|
||||
;CopyMem() patches
|
||||
@ -3643,11 +3643,140 @@ hw_multi:
|
||||
rts
|
||||
|
||||
|
||||
; this is called from external executable
|
||||
|
||||
moverom:
|
||||
; a0 = ram copy
|
||||
|
||||
move.l a0,a5 ; ram copy
|
||||
|
||||
moveq #20,d7
|
||||
move.l 4.w,a6
|
||||
|
||||
jsr -$0084(a6) ;Forbid
|
||||
|
||||
move.w #$FF38,d0
|
||||
bsr.w getrtbase
|
||||
move.l a5,d2
|
||||
moveq #19,d1
|
||||
jsr (a0)
|
||||
;ROM is now write-enabled
|
||||
;d0 = temp space
|
||||
tst.l d0
|
||||
beq.w .mov1
|
||||
move.l d0,a3
|
||||
move.l (a3)+,a4 ; ROM
|
||||
|
||||
; Copy ROM to RAM
|
||||
move.l a4,a0
|
||||
move.l a5,a1
|
||||
move.w #65536/4-1,d0
|
||||
.mov5
|
||||
move.l (a0)+,(a1)+
|
||||
dbf d0,.mov5
|
||||
|
||||
move.l a5,d1
|
||||
sub.l a4,d1
|
||||
|
||||
; Handle relocations from UAE side
|
||||
|
||||
; Relative
|
||||
move.l a3,a0
|
||||
.mov7
|
||||
moveq #0,d0
|
||||
move.w (a0)+,d0
|
||||
beq.s .mov6
|
||||
lea 0(a4,d0.l),a1
|
||||
add.l d1,(a1)
|
||||
lea 0(a5,d0.l),a1
|
||||
add.l d1,(a1)
|
||||
bra.s .mov7
|
||||
.mov6
|
||||
|
||||
; Absolute
|
||||
.mov9
|
||||
moveq #0,d0
|
||||
move.l (a0)+,d0
|
||||
beq.s .mov8
|
||||
move.l d0,a1
|
||||
add.l d1,(a1)
|
||||
bra.s .mov9
|
||||
.mov8
|
||||
|
||||
moveq #0,d0
|
||||
bsr.w getrtbase
|
||||
lea getrtbase(pc),a1
|
||||
sub.l a0,a1
|
||||
|
||||
add.l a5,a1
|
||||
; replace RAM copy relative getrtbase
|
||||
; fetch with absolute lea rombase,a0
|
||||
move.w #$41f9,(a1)+
|
||||
move.l a4,(a1)+
|
||||
; and.l #$ffff,d0
|
||||
move.w #$0280,(a1)+
|
||||
move.l #$0000ffff,(a1)+
|
||||
; add.l d0,a0; rts
|
||||
move.l #$d1c04e75,(a1)
|
||||
|
||||
; redirect some commonly used
|
||||
; functions to RAM code
|
||||
lea moveromreloc(pc),a0
|
||||
.mov3
|
||||
moveq #0,d0
|
||||
move.w (a0)+,d0
|
||||
beq.s .mov2
|
||||
add.w #8+4,d0
|
||||
lea 0(a4,d0.l),a1
|
||||
; JMP xxxxxxxx
|
||||
move.w #$4ef9,(a1)+
|
||||
lea 0(a5,d0.l),a2
|
||||
move.l a2,(a1)
|
||||
bra.s .mov3
|
||||
.mov2
|
||||
|
||||
cmp.w #36,20(a6)
|
||||
bcs.s .mov4
|
||||
jsr -$27c(a6) ; CacheClearU
|
||||
.mov4
|
||||
|
||||
; Tell UAE that all is done
|
||||
; Re-enables write protection
|
||||
move.w #$FF38,d0
|
||||
bsr.w getrtbase
|
||||
move.l a5,d2
|
||||
moveq #20,d1
|
||||
jsr (a0)
|
||||
moveq #0,d7
|
||||
|
||||
.mov1
|
||||
jsr -$008a(a6)
|
||||
|
||||
move.l d7,d0
|
||||
rts
|
||||
|
||||
moveromreloc:
|
||||
dc.w FSML_loop-start
|
||||
dc.w mhloop-start
|
||||
dc.w kaint-start
|
||||
dc.w trap_task_wait-start
|
||||
dc.w exter_task_wait-start
|
||||
dc.w 0
|
||||
|
||||
cnop 0,4
|
||||
getrtbaselocal:
|
||||
lea start-8-4(pc),a0
|
||||
and.l #$FFFF,d0
|
||||
add.l d0,a0
|
||||
rts
|
||||
cnop 0,4
|
||||
getrtbase:
|
||||
lea start-8-4(pc),a0
|
||||
and.l #$FFFF,d0
|
||||
add.l d0,a0
|
||||
rts
|
||||
nop
|
||||
nop
|
||||
|
||||
inp_dev: dc.b 'input.device',0
|
||||
tim_dev: dc.b 'timer.device',0
|
||||
|
||||
@ -8674,12 +8674,21 @@ static uae_u32 REGPARAM2 mousehack_done (TrapContext *ctx)
|
||||
v |= 1;
|
||||
if (consolehook_activate())
|
||||
v |= 2;
|
||||
if (currprefs.uaeboard > 2)
|
||||
v |= 4;
|
||||
trap_dos_active();
|
||||
return v;
|
||||
} else if (mode == 18) {
|
||||
put_long_host(rtarea_bank.baseaddr + RTAREA_EXTERTASK, trap_get_dreg(ctx, 0));
|
||||
put_long_host(rtarea_bank.baseaddr + RTAREA_TRAPTASK, trap_get_dreg(ctx, 2));
|
||||
return rtarea_base + RTAREA_HEARTBEAT;
|
||||
} else if (mode == 19) {
|
||||
// boot rom copy
|
||||
// d2 = ram address
|
||||
return boot_rom_copy(ctx, trap_get_dreg(ctx, 2), 0);
|
||||
} else if (mode == 20) {
|
||||
// boot rom copy done
|
||||
return boot_rom_copy(ctx, trap_get_dreg(ctx, 2), 1);
|
||||
} else if (mode == 101) {
|
||||
consolehook_ret(ctx, trap_get_areg(ctx, 1), trap_get_areg(ctx, 2));
|
||||
} else if (mode == 102) {
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
db(0x00); db(0x00); db(0x00); db(0x10); db(0x00); db(0x00); db(0x00); db(0x00);
|
||||
db(0x60); db(0x02); db(0x00); db(0x0b); db(0x60); db(0x00); db(0x0d); db(0xc6);
|
||||
db(0x00); db(0x00); db(0x0b); db(0x2c); db(0x00); db(0x00); db(0x00); db(0xa8);
|
||||
db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x2c);
|
||||
db(0x00); db(0x00); db(0x20); db(0x86); db(0x00); db(0x00); db(0x00); db(0x2c);
|
||||
db(0x00); db(0x00); db(0x05); db(0x86); db(0x00); db(0x00); db(0x1c); db(0x8c);
|
||||
db(0x00); db(0x00); db(0x00); db(0x64); db(0x00); db(0x00); db(0x1c); db(0xe8);
|
||||
db(0x00); db(0x00); db(0x1d); db(0x3a); db(0x43); db(0xfa); db(0x21); db(0x79);
|
||||
db(0x00); db(0x00); db(0x1d); db(0x3a); db(0x43); db(0xfa); db(0x22); db(0x57);
|
||||
db(0x4e); db(0xae); db(0xff); db(0xa0); db(0x20); db(0x40); db(0x20); db(0x28);
|
||||
db(0x00); db(0x16); db(0x20); db(0x40); db(0x4e); db(0x90); db(0x4e); db(0x75);
|
||||
db(0x00); db(0x00); db(0x00); db(0x07); db(0x00); db(0x00); db(0x00); db(0x00);
|
||||
@ -12,21 +12,21 @@
|
||||
db(0x60); db(0x00); db(0x0d); db(0x7c); db(0x00); db(0x00); db(0x00); db(0x00);
|
||||
db(0x00); db(0x00); db(0x00); db(0x01); db(0x00); db(0x00); db(0x00); db(0x04);
|
||||
db(0x00); db(0x00); db(0x00); db(0x02); db(0x48); db(0xe7); db(0x3f); db(0x3e);
|
||||
db(0x2c); db(0x78); db(0x00); db(0x04); db(0x43); db(0xfa); db(0x21); db(0x57);
|
||||
db(0x2c); db(0x78); db(0x00); db(0x04); db(0x43); db(0xfa); db(0x22); db(0x35);
|
||||
db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x22); db(0x00);
|
||||
db(0x30); db(0x3c); db(0x3f); db(0xf8); db(0x61); db(0x00); db(0x20); db(0x08);
|
||||
db(0x20); db(0x81); db(0x43); db(0xfa); db(0x21); db(0x2f); db(0x70); db(0x00);
|
||||
db(0x30); db(0x3c); db(0x3f); db(0xf8); db(0x61); db(0x00); db(0x20); db(0xe2);
|
||||
db(0x20); db(0x81); db(0x43); db(0xfa); db(0x22); db(0x0d); db(0x70); db(0x00);
|
||||
db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x22); db(0x00); db(0x30); db(0x3c);
|
||||
db(0x3f); db(0xf4); db(0x61); db(0x00); db(0x1f); db(0xf2); db(0x20); db(0x81);
|
||||
db(0x3f); db(0xf4); db(0x61); db(0x00); db(0x20); db(0xcc); db(0x20); db(0x81);
|
||||
db(0x61); db(0x00); db(0x16); db(0x58); db(0x61); db(0x00); db(0x1a); db(0x20);
|
||||
db(0x4c); db(0xdf); db(0x7c); db(0xfc); db(0x70); db(0x00); db(0x4e); db(0x75);
|
||||
db(0x48); db(0xe7); db(0xff); db(0xfe); db(0x2c); db(0x78); db(0x00); db(0x04);
|
||||
db(0x30); db(0x3c); db(0xff); db(0xec); db(0x61); db(0x00); db(0x1f); db(0xd0);
|
||||
db(0x30); db(0x3c); db(0xff); db(0xec); db(0x61); db(0x00); db(0x20); db(0xaa);
|
||||
db(0x2a); db(0x50); db(0x7a); db(0x00); db(0x70); db(0x00); db(0x0c); db(0x6e);
|
||||
db(0x00); db(0x21); db(0x00); db(0x14); db(0x65); db(0x1c); db(0x43); db(0xfa);
|
||||
db(0x21); db(0x0e); db(0x70); db(0x24); db(0x7a); db(0x01); db(0x4e); db(0xae);
|
||||
db(0x21); db(0xec); db(0x70); db(0x24); db(0x7a); db(0x01); db(0x4e); db(0xae);
|
||||
db(0xfd); db(0xd8); db(0x4a); db(0x80); db(0x66); db(0x0c); db(0x43); db(0xfa);
|
||||
db(0x20); db(0xfe); db(0x70); db(0x00); db(0x7a); db(0x00); db(0x4e); db(0xae);
|
||||
db(0x21); db(0xdc); db(0x70); db(0x00); db(0x7a); db(0x00); db(0x4e); db(0xae);
|
||||
db(0xfd); db(0xd8); db(0x28); db(0x40); db(0xc9); db(0x4e); db(0x20); db(0x0e);
|
||||
db(0x67); db(0x3c); db(0x08); db(0x2d); db(0x00); db(0x04); db(0x01); db(0x13);
|
||||
db(0x66); db(0x34); db(0x4e); db(0xae); db(0xff); db(0xd0); db(0x4a); db(0x80);
|
||||
@ -54,21 +54,21 @@
|
||||
db(0x00); db(0x22); db(0x00); db(0x14); db(0x65); db(0x6e); db(0x78); db(0x03);
|
||||
db(0x0c); db(0x6e); db(0x00); db(0x24); db(0x00); db(0x14); db(0x65); db(0x04);
|
||||
db(0x00); db(0x44); db(0x01); db(0x00); db(0x30); db(0x3c); db(0xff); db(0x80);
|
||||
db(0x61); db(0x00); db(0x1e); db(0xcc); db(0x4e); db(0x90); db(0x2a); db(0x00);
|
||||
db(0x61); db(0x00); db(0x1f); db(0xa6); db(0x4e); db(0x90); db(0x2a); db(0x00);
|
||||
db(0x20); db(0x49); db(0x20); db(0x01); db(0x67); db(0x0c); db(0x22); db(0x04);
|
||||
db(0x74); db(0xfb); db(0x43); db(0xfa); db(0x20); db(0x30); db(0x4e); db(0xae);
|
||||
db(0x74); db(0xfb); db(0x43); db(0xfa); db(0x21); db(0x0e); db(0x4e); db(0xae);
|
||||
db(0xfd); db(0x96); db(0x43); db(0xf9); db(0x00); db(0x21); db(0x00); db(0x00);
|
||||
db(0x4e); db(0xae); db(0xfd); db(0xea); db(0x4a); db(0x80); db(0x66); db(0x18);
|
||||
db(0x22); db(0x04); db(0x74); db(0xf6); db(0x20); db(0x7c); db(0x00); db(0x20);
|
||||
db(0x00); db(0x00); db(0x20); db(0x05); db(0x90); db(0x88); db(0x65); db(0x08);
|
||||
db(0x67); db(0x06); db(0x93); db(0xc9); db(0x4e); db(0xae); db(0xfd); db(0x96);
|
||||
db(0x41); db(0xfa); db(0x1f); db(0x56); db(0x43); db(0xfa); db(0x00); db(0x5a);
|
||||
db(0x41); db(0xfa); db(0x20); db(0x34); db(0x43); db(0xfa); db(0x00); db(0x5a);
|
||||
db(0x70); db(0x0a); db(0x61); db(0x00); db(0x0f); db(0x3c); db(0x22); db(0x40);
|
||||
db(0x72); db(0x01); db(0x30); db(0x3c); db(0xff); db(0x48); db(0x61); db(0x00);
|
||||
db(0x1e); db(0x76); db(0x4e); db(0x90); db(0x4c); db(0xdf); db(0x7f); db(0xff);
|
||||
db(0x1f); db(0x50); db(0x4e); db(0x90); db(0x4c); db(0xdf); db(0x7f); db(0xff);
|
||||
db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x3c); db(0x22); db(0x7a); db(0x00);
|
||||
db(0x2c); db(0x78); db(0x00); db(0x04); db(0x24); db(0x00); db(0x28); db(0x01);
|
||||
db(0x26); db(0x09); db(0x24); db(0x48); db(0x43); db(0xfa); db(0x1f); db(0x79);
|
||||
db(0x26); db(0x09); db(0x24); db(0x48); db(0x43); db(0xfa); db(0x20); db(0x57);
|
||||
db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x4a); db(0x80);
|
||||
db(0x67); db(0x16); db(0x2c); db(0x40); db(0x22); db(0x0a); db(0xe4); db(0x8b);
|
||||
db(0x4e); db(0xae); db(0xff); db(0x76); db(0x2a); db(0x00); db(0x22); db(0x4e);
|
||||
@ -76,18 +76,18 @@
|
||||
db(0x20); db(0x05); db(0x4c); db(0xdf); db(0x44); db(0x3c); db(0x4e); db(0x75);
|
||||
db(0x2c); db(0x78); db(0x00); db(0x04); db(0x70); db(0x00); db(0x08); db(0xc0);
|
||||
db(0x00); db(0x0d); db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0x41); db(0xfa);
|
||||
db(0x1f); db(0x19); db(0x43); db(0xfa); db(0x00); db(0x14); db(0x70); db(0x0f);
|
||||
db(0x1f); db(0xf7); db(0x43); db(0xfa); db(0x00); db(0x14); db(0x70); db(0x0f);
|
||||
db(0x22); db(0x3c); db(0x00); db(0x00); db(0x1f); db(0x40); db(0x61); db(0x00);
|
||||
db(0xff); db(0xa2); db(0x60); db(0xdc); db(0x00); db(0x00); db(0x00); db(0x10);
|
||||
db(0x00); db(0x00); db(0x00); db(0x00); db(0x72); db(0x02); db(0x30); db(0x3c);
|
||||
db(0xff); db(0x48); db(0x61); db(0x00); db(0x1d); db(0xfa); db(0x4e); db(0x90);
|
||||
db(0xff); db(0x48); db(0x61); db(0x00); db(0x1e); db(0xc4); db(0x4e); db(0x90);
|
||||
db(0x22); db(0x00); db(0x6b); db(0x04); db(0x61); db(0x00); db(0x0a); db(0x90);
|
||||
db(0x70); db(0x00); db(0x4e); db(0x75); db(0x2c); db(0x78); db(0x00); db(0x04);
|
||||
db(0x20); db(0x3c); db(0x00); db(0x00); db(0x01); db(0x00); db(0x4e); db(0xae);
|
||||
db(0xfe); db(0xc2); db(0x7e); db(0x00); db(0x20); db(0x3c); db(0x00); db(0x00);
|
||||
db(0xf0); db(0x00); db(0x61); db(0x00); db(0x1d); db(0xd2); db(0x22); db(0x48);
|
||||
db(0xf0); db(0x00); db(0x61); db(0x00); db(0x1e); db(0xac); db(0x22); db(0x48);
|
||||
db(0x20); db(0x3c); db(0x00); db(0x00); db(0x40); db(0x00); db(0x61); db(0x00);
|
||||
db(0x1d); db(0xc6); db(0x7c); db(0x03); db(0x4a); db(0x29); db(0x00); db(0x03);
|
||||
db(0x1e); db(0xa0); db(0x7c); db(0x03); db(0x4a); db(0x29); db(0x00); db(0x03);
|
||||
db(0x67); db(0x42); db(0x0c); db(0x29); db(0x00); db(0xfd); db(0x00); db(0x07);
|
||||
db(0x66); db(0x3a); db(0x52); db(0x87); db(0x49); db(0xe8); db(0x00); db(0x54);
|
||||
db(0x4b); db(0xe9); db(0x00); db(0x04); db(0x48); db(0xe7); db(0x03); db(0xce);
|
||||
@ -102,7 +102,7 @@
|
||||
db(0xff); db(0x8a); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x20); db(0x3c);
|
||||
db(0x00); db(0x00); db(0x01); db(0x00); db(0x4e); db(0xae); db(0xfe); db(0xc2);
|
||||
db(0x7e); db(0x0a); db(0x30); db(0x3c); db(0xff); db(0x50); db(0x61); db(0x00);
|
||||
db(0x1d); db(0x4e); db(0x20); db(0x07); db(0x4e); db(0x90); db(0x4a); db(0x80);
|
||||
db(0x1e); db(0x18); db(0x20); db(0x07); db(0x4e); db(0x90); db(0x4a); db(0x80);
|
||||
db(0x67); db(0x00); db(0xff); db(0xe4); db(0x7e); db(0x0b); db(0x0c); db(0x40);
|
||||
db(0x00); db(0x01); db(0x6d); db(0x00); db(0xff); db(0xe6); db(0x6e); db(0x06);
|
||||
db(0x4e); db(0xae); db(0xfe); db(0x92); db(0x60); db(0xdc); db(0x0c); db(0x40);
|
||||
@ -121,30 +121,30 @@
|
||||
db(0x00); db(0x1a); db(0x20); db(0x69); db(0x00); db(0x10); db(0x22); db(0x4a);
|
||||
db(0x4e); db(0xae); db(0xfe); db(0x92); db(0x60); db(0x00); db(0xff); db(0x6c);
|
||||
db(0x0c); db(0x40); db(0x00); db(0x06); db(0x6e); db(0x00); db(0xff); db(0x64);
|
||||
db(0x41); db(0xfa); db(0x1e); db(0x46); db(0x43); db(0xfa); db(0x00); db(0x42);
|
||||
db(0x41); db(0xfa); db(0x1f); db(0x24); db(0x43); db(0xfa); db(0x00); db(0x42);
|
||||
db(0x70); db(0x01); db(0x22); db(0x3c); db(0x00); db(0x00); db(0x27); db(0x10);
|
||||
db(0x61); db(0x00); db(0xfe); db(0x38); db(0x22); db(0x00); db(0x30); db(0x3c);
|
||||
db(0xff); db(0x50); db(0x61); db(0x00); db(0x1c); db(0x9a); db(0x70); db(0x14);
|
||||
db(0xff); db(0x50); db(0x61); db(0x00); db(0x1d); db(0x64); db(0x70); db(0x14);
|
||||
db(0x4e); db(0x90); db(0x60); db(0x00); db(0xff); db(0x3e); db(0x70); db(0x00);
|
||||
db(0x20); db(0x59); db(0x4a); db(0x10); db(0x67); db(0x10); db(0x2c); db(0x59);
|
||||
db(0x22); db(0x51); db(0x20); db(0x3c); db(0x00); db(0x00); db(0x01); db(0x00);
|
||||
db(0x4e); db(0xae); db(0xfe); db(0xbc); db(0x70); db(0x01); db(0x4a); db(0x40);
|
||||
db(0x4e); db(0x75); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x10);
|
||||
db(0x00); db(0x00); db(0x00); db(0x00); db(0x2c); db(0x78); db(0x00); db(0x04);
|
||||
db(0x43); db(0xfa); db(0x1d); db(0x85); db(0x70); db(0x00); db(0x4e); db(0xae);
|
||||
db(0x43); db(0xfa); db(0x1e); db(0x63); db(0x70); db(0x00); db(0x4e); db(0xae);
|
||||
db(0xfd); db(0xd8); db(0x2a); db(0x40); db(0xcb); db(0x4e); db(0x60); db(0x0e);
|
||||
db(0xcb); db(0x4e); db(0x70); db(0x00); db(0x08); db(0xc0); db(0x00); db(0x0d);
|
||||
db(0x4e); db(0xae); db(0xfe); db(0xc2); db(0xcb); db(0x4e); db(0x30); db(0x3c);
|
||||
db(0xff); db(0x50); db(0x61); db(0x00); db(0x1c); db(0x42); db(0x70); db(0x15);
|
||||
db(0xff); db(0x50); db(0x61); db(0x00); db(0x1d); db(0x0c); db(0x70); db(0x15);
|
||||
db(0x4e); db(0x90); db(0x2e); db(0x08); db(0x67); db(0xe2); db(0x28); db(0x4f);
|
||||
db(0x4f); db(0xef); db(0xfd); db(0xd8); db(0x2c); db(0x0f); db(0x24); db(0x46);
|
||||
db(0x47); db(0xea); db(0x00); db(0x28); db(0x22); db(0x4b); db(0x20); db(0x47);
|
||||
db(0x12); db(0xd8); db(0x66); db(0xfc); db(0x20); db(0x47); db(0x42); db(0x10);
|
||||
db(0x24); db(0xfc); db(0x80); db(0x00); db(0x00); db(0x21); db(0x41); db(0xfa);
|
||||
db(0x1c); db(0x73); db(0x22); db(0x08); db(0x24); db(0x3c); db(0x00); db(0x00);
|
||||
db(0x1d); db(0x51); db(0x22); db(0x08); db(0x24); db(0x3c); db(0x00); db(0x00);
|
||||
db(0x03); db(0xed); db(0x4e); db(0xae); db(0xff); db(0xe2); db(0x24); db(0xc0);
|
||||
db(0x24); db(0xfc); db(0x80); db(0x00); db(0x00); db(0x22); db(0x41); db(0xfa);
|
||||
db(0x1c); db(0x5b); db(0x22); db(0x08); db(0x4e); db(0xae); db(0xff); db(0xe2);
|
||||
db(0x1d); db(0x39); db(0x22); db(0x08); db(0x4e); db(0xae); db(0xff); db(0xe2);
|
||||
db(0x24); db(0xc0); db(0x24); db(0xfc); db(0x80); db(0x00); db(0x00); db(0x23);
|
||||
db(0x70); db(0xff); db(0x24); db(0xc0); db(0x42); db(0x9a); db(0x42); db(0x92);
|
||||
db(0x0c); db(0x6e); db(0x00); db(0x24); db(0x00); db(0x14); db(0x64); db(0x20);
|
||||
@ -154,19 +154,19 @@
|
||||
db(0x00); db(0x0c); db(0x4e); db(0xae); db(0xff); db(0xdc); db(0x60); db(0x08);
|
||||
db(0x22); db(0x0b); db(0x24); db(0x06); db(0x4e); db(0xae); db(0xfd); db(0xa2);
|
||||
db(0x2e); db(0x4c); db(0x30); db(0x3c); db(0xff); db(0x50); db(0x61); db(0x00);
|
||||
db(0x1b); db(0xae); db(0x70); db(0x16); db(0x4e); db(0x90); db(0x60); db(0x00);
|
||||
db(0x1c); db(0x78); db(0x70); db(0x16); db(0x4e); db(0x90); db(0x60); db(0x00);
|
||||
db(0xff); db(0x50); db(0x48); db(0xe7); db(0xf0); db(0xf8); db(0x24); db(0x00);
|
||||
db(0x26); db(0x01); db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x12);
|
||||
db(0x61); db(0x00); db(0x1b); db(0x94); db(0x20); db(0x02); db(0x24); db(0x03);
|
||||
db(0x61); db(0x00); db(0x1c); db(0x5e); db(0x20); db(0x02); db(0x24); db(0x03);
|
||||
db(0x4e); db(0x90); db(0x24); db(0x40); db(0x70); db(0x2a); db(0x22); db(0x3c);
|
||||
db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a);
|
||||
db(0x28); db(0x40); db(0x47); db(0xec); db(0x00); db(0x16); db(0x22); db(0x4b);
|
||||
db(0x22); db(0xca); db(0x22); db(0xc2); db(0x22); db(0xc3); db(0x30); db(0x3c);
|
||||
db(0x3f); db(0xf4); db(0x61); db(0x00); db(0x1b); db(0x6a); db(0x22); db(0xc8);
|
||||
db(0x30); db(0x3c); db(0x3f); db(0xf0); db(0x61); db(0x00); db(0x1b); db(0x60);
|
||||
db(0x3f); db(0xf4); db(0x61); db(0x00); db(0x1c); db(0x44); db(0x22); db(0xc8);
|
||||
db(0x30); db(0x3c); db(0x3f); db(0xf0); db(0x61); db(0x00); db(0x1c); db(0x3a);
|
||||
db(0x22); db(0xc8); db(0x29); db(0x4b); db(0x00); db(0x0e); db(0x19); db(0x7c);
|
||||
db(0x00); db(0x02); db(0x00); db(0x08); db(0x19); db(0x7c); db(0x00); db(0xf6);
|
||||
db(0x00); db(0x09); db(0x41); db(0xfa); db(0x1b); db(0xfe); db(0x29); db(0x48);
|
||||
db(0x00); db(0x09); db(0x41); db(0xfa); db(0x1c); db(0xdc); db(0x29); db(0x48);
|
||||
db(0x00); db(0x0a); db(0x41); db(0xfa); db(0x00); db(0x14); db(0x29); db(0x48);
|
||||
db(0x00); db(0x12); db(0x22); db(0x4c); db(0x70); db(0x05); db(0x4e); db(0xae);
|
||||
db(0xff); db(0x58); db(0x4c); db(0xdf); db(0x1f); db(0x0f); db(0x4e); db(0x75);
|
||||
@ -177,23 +177,23 @@
|
||||
db(0x67); db(0x08); db(0x22); db(0x69); db(0x00); db(0x10); db(0x22); db(0xa8);
|
||||
db(0x00); db(0x44); db(0x70); db(0x00); db(0x4e); db(0x75); db(0x48); db(0xe7);
|
||||
db(0xf1); db(0xe0); db(0x2e); db(0x00); db(0x20); db(0x3c); db(0x00); db(0x00);
|
||||
db(0xff); db(0xfc); db(0x61); db(0x00); db(0x1a); db(0xf2); db(0x24); db(0x48);
|
||||
db(0xff); db(0xfc); db(0x61); db(0x00); db(0x1b); db(0xcc); db(0x24); db(0x48);
|
||||
db(0x74); db(0x00); db(0x08); db(0x07); db(0x00); db(0x00); db(0x67); db(0x10);
|
||||
db(0x41); db(0xfa); db(0x1b); db(0xc1); db(0x43); db(0xfa); db(0xfd); db(0x7c);
|
||||
db(0x41); db(0xfa); db(0x1c); db(0x9f); db(0x43); db(0xfa); db(0xfd); db(0x7c);
|
||||
db(0x70); db(0x14); db(0x61); db(0x00); db(0x0b); db(0x94); db(0x24); db(0x00);
|
||||
db(0x76); db(0x00); db(0x08); db(0x07); db(0x00); db(0x01); db(0x67); db(0x10);
|
||||
db(0x41); db(0xfa); db(0x1b); db(0xb7); db(0x43); db(0xfa); db(0xfc); db(0xde);
|
||||
db(0x41); db(0xfa); db(0x1c); db(0x95); db(0x43); db(0xfa); db(0xfc); db(0xde);
|
||||
db(0x70); db(0x19); db(0x61); db(0x00); db(0x0b); db(0x7c); db(0x26); db(0x00);
|
||||
db(0x70); db(0x2a); db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01);
|
||||
db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x22); db(0x40); db(0x41); db(0xe9);
|
||||
db(0x00); db(0x1a); db(0x20); db(0xca); db(0x20); db(0xce); db(0x20); db(0xc2);
|
||||
db(0x20); db(0x83); db(0x41); db(0xfa); db(0x1b); db(0x65); db(0x23); db(0x48);
|
||||
db(0x20); db(0x83); db(0x41); db(0xfa); db(0x1c); db(0x43); db(0x23); db(0x48);
|
||||
db(0x00); db(0x0a); db(0x45); db(0xe9); db(0x00); db(0x1a); db(0x23); db(0x4a);
|
||||
db(0x00); db(0x0e); db(0x41); db(0xfa); db(0xfe); db(0x02); db(0x23); db(0x48);
|
||||
db(0x00); db(0x12); db(0x33); db(0x7c); db(0x02); db(0x14); db(0x00); db(0x08);
|
||||
db(0x70); db(0x03); db(0x4e); db(0xae); db(0xff); db(0x58); db(0x20); db(0x02);
|
||||
db(0x22); db(0x03); db(0x61); db(0x00); db(0xfe); db(0xd6); db(0x30); db(0x3c);
|
||||
db(0xff); db(0x38); db(0x72); db(0x04); db(0x61); db(0x00); db(0x1a); db(0x70);
|
||||
db(0xff); db(0x38); db(0x72); db(0x04); db(0x61); db(0x00); db(0x1b); db(0x3a);
|
||||
db(0x4e); db(0x90); db(0x4a); db(0x80); db(0x67); db(0x04); db(0x61); db(0x00);
|
||||
db(0x0b); db(0x7c); db(0x4c); db(0xdf); db(0x07); db(0x8f); db(0x4e); db(0x75);
|
||||
db(0x48); db(0xe7); db(0xc0); db(0xf2); db(0x2c); db(0x78); db(0x00); db(0x04);
|
||||
@ -203,7 +203,7 @@
|
||||
db(0x43); db(0xeb); db(0x01); db(0xac); db(0x11); db(0xb1); db(0x00); db(0x00);
|
||||
db(0x00); db(0x0e); db(0x52); db(0x40); db(0x0c); db(0x40); db(0x00); db(0x8c);
|
||||
db(0x66); db(0xf2); db(0x20); db(0x0a); db(0xe4); db(0x88); db(0x21); db(0x40);
|
||||
db(0x00); db(0x36); db(0x22); db(0x48); db(0x41); db(0xfa); db(0x1a); db(0xe3);
|
||||
db(0x00); db(0x36); db(0x22); db(0x48); db(0x41); db(0xfa); db(0x1b); db(0xc1);
|
||||
db(0x23); db(0x48); db(0x00); db(0x0a); db(0x20); db(0x6b); db(0x01); db(0x9c);
|
||||
db(0x41); db(0xe8); db(0x00); db(0x12); db(0x4e); db(0xae); db(0xff); db(0x10);
|
||||
db(0x4c); db(0xdf); db(0x4f); db(0x03); db(0x4e); db(0x75); db(0x48); db(0xe7);
|
||||
@ -241,13 +241,13 @@
|
||||
db(0x60); db(0xf2); db(0x48); db(0xe7); db(0x40); db(0xf2); db(0x26); db(0x48);
|
||||
db(0x2c); db(0x78); db(0x00); db(0x04); db(0x41); db(0xee); db(0x01); db(0x50);
|
||||
db(0x20); db(0x50); db(0x4a); db(0x90); db(0x67); db(0x1a); db(0x22); db(0x68);
|
||||
db(0x00); db(0x0a); db(0x45); db(0xfa); db(0x1a); db(0x54); db(0x10); db(0x19);
|
||||
db(0x00); db(0x0a); db(0x45); db(0xfa); db(0x1b); db(0x32); db(0x10); db(0x19);
|
||||
db(0x12); db(0x1a); db(0xb0); db(0x01); db(0x66); db(0x06); db(0x4a); db(0x00);
|
||||
db(0x67); db(0x46); db(0x60); db(0xf2); db(0x20); db(0x50); db(0x60); db(0xe2);
|
||||
db(0x70); db(0x20); db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01);
|
||||
db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x24); db(0x40); db(0x15); db(0x7c);
|
||||
db(0x00); db(0x08); db(0x00); db(0x08); db(0x41); db(0xfa); db(0x1a); db(0x2a);
|
||||
db(0x25); db(0x48); db(0x00); db(0x0a); db(0x41); db(0xfa); db(0x19); db(0x83);
|
||||
db(0x00); db(0x08); db(0x00); db(0x08); db(0x41); db(0xfa); db(0x1b); db(0x08);
|
||||
db(0x25); db(0x48); db(0x00); db(0x0a); db(0x41); db(0xfa); db(0x1a); db(0x61);
|
||||
db(0x25); db(0x48); db(0x00); db(0x0e); db(0x41); db(0xea); db(0x00); db(0x12);
|
||||
db(0x20); db(0x88); db(0x58); db(0x90); db(0x21); db(0x48); db(0x00); db(0x08);
|
||||
db(0x41); db(0xee); db(0x01); db(0x50); db(0x22); db(0x4a); db(0x4e); db(0xae);
|
||||
@ -358,8 +358,8 @@
|
||||
db(0x4c); db(0xdf); db(0x7c); db(0xfc); db(0x20); db(0x6c); db(0x00); db(0x24);
|
||||
db(0x4a); db(0x90); db(0x4e); db(0x75); db(0x61); db(0x00); db(0xfc); db(0x4c);
|
||||
db(0x21); db(0x40); db(0x01); db(0x9c); db(0x2f); db(0x08); db(0x30); db(0x3c);
|
||||
db(0xff); db(0xec); db(0x61); db(0x00); db(0x15); db(0x4a); db(0x2a); db(0x50);
|
||||
db(0x30); db(0x3c); db(0xff); db(0x28); db(0x61); db(0x00); db(0x15); db(0x40);
|
||||
db(0xff); db(0xec); db(0x61); db(0x00); db(0x16); db(0x24); db(0x2a); db(0x50);
|
||||
db(0x30); db(0x3c); db(0xff); db(0x28); db(0x61); db(0x00); db(0x16); db(0x0a);
|
||||
db(0x22); db(0x48); db(0x20); db(0x5f); db(0x42); db(0xa8); db(0x01); db(0x90);
|
||||
db(0x42); db(0xa8); db(0x01); db(0x94); db(0x4e); db(0x91); db(0x26); db(0x00);
|
||||
db(0x0c); db(0x43); db(0xff); db(0xfe); db(0x67); db(0x00); db(0xf6); db(0xba);
|
||||
@ -367,11 +367,11 @@
|
||||
db(0x2f); db(0x08); db(0x72); db(0x01); db(0x2c); db(0x78); db(0x00); db(0x04);
|
||||
db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x20); db(0x5f); db(0x21); db(0x40);
|
||||
db(0x01); db(0x94); db(0x4a); db(0x83); db(0x6a); db(0x0e); db(0x22); db(0x48);
|
||||
db(0x30); db(0x3c); db(0xff); db(0x20); db(0x61); db(0x00); db(0x15); db(0x00);
|
||||
db(0x30); db(0x3c); db(0xff); db(0x20); db(0x61); db(0x00); db(0x15); db(0xca);
|
||||
db(0x4e); db(0x90); db(0x60); db(0x26); db(0x2c); db(0x4c); db(0x2f); db(0x08);
|
||||
db(0x61); db(0x00); db(0x0f); db(0xf6); db(0x20); db(0x5f); db(0x22); db(0x48);
|
||||
db(0x26); db(0x40); db(0x30); db(0x3c); db(0xff); db(0x20); db(0x61); db(0x00);
|
||||
db(0x14); db(0xe6); db(0x4e); db(0x90); db(0x70); db(0x00); db(0x27); db(0x40);
|
||||
db(0x15); db(0xb0); db(0x4e); db(0x90); db(0x70); db(0x00); db(0x27); db(0x40);
|
||||
db(0x00); db(0x08); db(0x27); db(0x40); db(0x00); db(0x10); db(0x27); db(0x40);
|
||||
db(0x00); db(0x20); db(0x20); db(0x69); db(0x01); db(0x94); db(0x4a); db(0xa9);
|
||||
db(0x01); db(0x90); db(0x67); db(0x2c); db(0x20); db(0x08); db(0x67); db(0x32);
|
||||
@ -383,9 +383,9 @@
|
||||
db(0x4a); db(0xa9); db(0x01); db(0x98); db(0x67); db(0x04); db(0x61); db(0x00);
|
||||
db(0xfa); db(0x38); db(0x4a); db(0x83); db(0x6b); db(0x00); db(0xf6); db(0x22);
|
||||
db(0x2c); db(0x78); db(0x00); db(0x04); db(0x2f); db(0x09); db(0x43); db(0xfa);
|
||||
db(0x16); db(0x0c); db(0x4e); db(0xae); db(0xfe); db(0xda); db(0x22); db(0x5f);
|
||||
db(0x16); db(0xea); db(0x4e); db(0xae); db(0xfe); db(0xda); db(0x22); db(0x5f);
|
||||
db(0x22); db(0x00); db(0x30); db(0x3c); db(0xff); db(0x18); db(0x61); db(0x00);
|
||||
db(0x14); db(0x76); db(0x4e); db(0x90); db(0x20); db(0x03); db(0x16); db(0x29);
|
||||
db(0x15); db(0x40); db(0x4e); db(0x90); db(0x20); db(0x03); db(0x16); db(0x29);
|
||||
db(0x00); db(0x4f); db(0x4a); db(0x80); db(0x66); db(0x24); db(0x27); db(0x7c);
|
||||
db(0x00); db(0x00); db(0x17); db(0x70); db(0x00); db(0x14); db(0x41); db(0xfa);
|
||||
db(0xf3); db(0xd4); db(0x70); db(0xff); db(0x22); db(0x0c); db(0x66); db(0x06);
|
||||
@ -413,7 +413,7 @@
|
||||
db(0xff); db(0x3a); db(0x4a); db(0x80); db(0x67); db(0x42); db(0x20); db(0x52);
|
||||
db(0x24); db(0x40); db(0x22); db(0x4a); db(0x12); db(0xd8); db(0x66); db(0xfc);
|
||||
db(0x13); db(0x7c); db(0x00); db(0x3a); db(0xff); db(0xff); db(0x42); db(0x11);
|
||||
db(0x2c); db(0x78); db(0x00); db(0x04); db(0x43); db(0xfa); db(0x14); db(0xb1);
|
||||
db(0x2c); db(0x78); db(0x00); db(0x04); db(0x43); db(0xfa); db(0x15); db(0x8f);
|
||||
db(0x4e); db(0xae); db(0xfe); db(0x68); db(0x2c); db(0x40); db(0x22); db(0x0a);
|
||||
db(0x26); db(0x0f); db(0x4f); db(0xea); db(0x10); db(0x04); db(0x4e); db(0xae);
|
||||
db(0xff); db(0x52); db(0x2e); db(0x43); db(0x26); db(0x01); db(0x22); db(0x4e);
|
||||
@ -421,9 +421,9 @@
|
||||
db(0x22); db(0x4a); db(0x20); db(0x02); db(0x4e); db(0xae); db(0xff); db(0x2e);
|
||||
db(0x22); db(0x03); db(0x70); db(0x00); db(0x4e); db(0x75); db(0x48); db(0xe7);
|
||||
db(0x3f); db(0x3e); db(0x2c); db(0x01); db(0x7e); db(0x06); db(0x2c); db(0x78);
|
||||
db(0x00); db(0x04); db(0x43); db(0xfa); db(0x14); db(0xa2); db(0x70); db(0x24);
|
||||
db(0x00); db(0x04); db(0x43); db(0xfa); db(0x15); db(0x80); db(0x70); db(0x24);
|
||||
db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x4a); db(0x80); db(0x66); db(0x0e);
|
||||
db(0x08); db(0x87); db(0x00); db(0x02); db(0x43); db(0xfa); db(0x14); db(0x90);
|
||||
db(0x08); db(0x87); db(0x00); db(0x02); db(0x43); db(0xfa); db(0x15); db(0x6e);
|
||||
db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x28); db(0x40);
|
||||
db(0x20); db(0x3c); db(0x00); db(0x00); db(0x02); db(0x38); db(0x22); db(0x3c);
|
||||
db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x3a);
|
||||
@ -435,7 +435,7 @@
|
||||
db(0x20); db(0x3c); db(0x00); db(0x00); db(0x02); db(0x38); db(0x4e); db(0xae);
|
||||
db(0xff); db(0x2e); db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x62);
|
||||
db(0x4c); db(0xdf); db(0x7c); db(0xfc); db(0x4e); db(0x75); db(0x30); db(0x3c);
|
||||
db(0xff); db(0x58); db(0x61); db(0x00); db(0x12); db(0xe2); db(0x70); db(0x03);
|
||||
db(0xff); db(0x58); db(0x61); db(0x00); db(0x13); db(0xac); db(0x70); db(0x03);
|
||||
db(0x4e); db(0x90); db(0x22); db(0x6b); db(0x00); db(0xa8); db(0x23); db(0x40);
|
||||
db(0x00); db(0x20); db(0x67); db(0x16); db(0x70); db(0x00); db(0x23); db(0x40);
|
||||
db(0x00); db(0x24); db(0x33); db(0x7c); db(0x00); db(0x0b); db(0x00); db(0x1c);
|
||||
@ -443,9 +443,9 @@
|
||||
db(0xfe); db(0x38); db(0x4e); db(0x75); db(0x7e); db(0x00); db(0x2c); db(0x78);
|
||||
db(0x00); db(0x04); db(0x93); db(0xc9); db(0x4e); db(0xae); db(0xfe); db(0xda);
|
||||
db(0x20); db(0x40); db(0x4b); db(0xe8); db(0x00); db(0x5c); db(0x43); db(0xfa);
|
||||
db(0x13); db(0xc7); db(0x4e); db(0xae); db(0xfe); db(0x68); db(0x24); db(0x40);
|
||||
db(0x14); db(0xa5); db(0x4e); db(0xae); db(0xfe); db(0x68); db(0x24); db(0x40);
|
||||
db(0x22); db(0x3c); db(0x00); db(0x00); db(0x00); db(0xbc); db(0x30); db(0x3c);
|
||||
db(0xff); db(0x40); db(0x61); db(0x00); db(0x12); db(0x92); db(0x70); db(0x01);
|
||||
db(0xff); db(0x40); db(0x61); db(0x00); db(0x13); db(0x5c); db(0x70); db(0x01);
|
||||
db(0x4e); db(0x90); db(0x4a); db(0x80); db(0x66); db(0x0c); db(0x20); db(0x01);
|
||||
db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae);
|
||||
db(0xff); db(0x3a); db(0x26); db(0x40); db(0x7c); db(0x00); db(0x26); db(0x86);
|
||||
@ -453,14 +453,14 @@
|
||||
db(0x27); db(0x4a); db(0x00); db(0xa0); db(0x50); db(0xeb); db(0x00); db(0x9e);
|
||||
db(0x70); db(0xff); db(0x27); db(0x40); db(0x00); db(0xb8); db(0x93); db(0xc9);
|
||||
db(0x4e); db(0xae); db(0xfe); db(0xda); db(0x27); db(0x40); db(0x00); db(0xb0);
|
||||
db(0x41); db(0xfa); db(0x12); db(0x62); db(0x70); db(0x00); db(0x72); db(0x00);
|
||||
db(0x41); db(0xfa); db(0x13); db(0x40); db(0x70); db(0x00); db(0x72); db(0x00);
|
||||
db(0x61); db(0x00); db(0x02); db(0xcc); db(0x27); db(0x40); db(0x00); db(0xa4);
|
||||
db(0x41); db(0xfa); db(0x12); db(0x5f); db(0x70); db(0x00); db(0x72); db(0x00);
|
||||
db(0x41); db(0xfa); db(0x13); db(0x3d); db(0x70); db(0x00); db(0x72); db(0x00);
|
||||
db(0x61); db(0x00); db(0x02); db(0xbc); db(0x27); db(0x40); db(0x00); db(0xa8);
|
||||
db(0x7a); db(0x00); db(0x26); db(0x07); db(0x66); db(0x12); db(0x20); db(0x4d);
|
||||
db(0x4e); db(0xae); db(0xfe); db(0x80); db(0x20); db(0x4d); db(0x4e); db(0xae);
|
||||
db(0xfe); db(0x8c); db(0x28); db(0x40); db(0x26); db(0x2c); db(0x00); db(0x0a);
|
||||
db(0x30); db(0x3c); db(0xff); db(0x40); db(0x61); db(0x00); db(0x12); db(0x18);
|
||||
db(0x30); db(0x3c); db(0xff); db(0x40); db(0x61); db(0x00); db(0x12); db(0xe2);
|
||||
db(0x70); db(0x00); db(0x4e); db(0x90); db(0x24); db(0x00); db(0x61); db(0x00);
|
||||
db(0xfb); db(0xc2); db(0x70); db(0x01); db(0x61); db(0x00); db(0xf9); db(0x72);
|
||||
db(0x08); db(0x02); db(0x00); db(0x01); db(0x67); db(0x06); db(0x70); db(0x01);
|
||||
@ -474,10 +474,10 @@
|
||||
db(0x00); db(0x01); db(0x00); db(0xad); db(0x67); db(0x0a); db(0x61); db(0x00);
|
||||
db(0x0c); db(0x62); db(0x08); db(0xab); db(0x00); db(0x01); db(0x00); db(0xad);
|
||||
db(0x4a); db(0x2b); db(0x00); db(0xac); db(0x67); db(0x24); db(0x30); db(0x3c);
|
||||
db(0xff); db(0x58); db(0x61); db(0x00); db(0x11); db(0xaa); db(0x70); db(0x01);
|
||||
db(0xff); db(0x58); db(0x61); db(0x00); db(0x12); db(0x74); db(0x70); db(0x01);
|
||||
db(0x4e); db(0x90); db(0x4a); db(0x80); db(0x67); db(0x04); db(0x61); db(0x00);
|
||||
db(0xfb); db(0x78); db(0x42); db(0x2b); db(0x00); db(0xac); db(0x30); db(0x3c);
|
||||
db(0xff); db(0x58); db(0x61); db(0x00); db(0x11); db(0x92); db(0x70); db(0x02);
|
||||
db(0xff); db(0x58); db(0x61); db(0x00); db(0x12); db(0x5c); db(0x70); db(0x02);
|
||||
db(0x4e); db(0x90); db(0x20); db(0x0c); db(0x67); db(0x56); db(0x0c); db(0x6c);
|
||||
db(0x00); db(0x26); db(0x00); db(0x12); db(0x66); db(0x4e); db(0x0c); db(0xac);
|
||||
db(0x40); db(0x00); db(0x00); db(0x00); db(0x00); db(0x14); db(0x66); db(0x44);
|
||||
@ -492,7 +492,7 @@
|
||||
db(0x60); db(0x00); db(0xff); db(0x3e); db(0x74); db(0xfe); db(0x20); db(0x0c);
|
||||
db(0x67); db(0x14); db(0x26); db(0x2c); db(0x00); db(0x0a); db(0x66); db(0x42);
|
||||
db(0x74); db(0xff); db(0x30); db(0x3c); db(0xff); db(0x50); db(0x61); db(0x00);
|
||||
db(0x11); db(0x1e); db(0x70); db(0x01); db(0x4e); db(0x90); db(0x45); db(0xeb);
|
||||
db(0x11); db(0xe8); db(0x70); db(0x01); db(0x4e); db(0x90); db(0x45); db(0xeb);
|
||||
db(0x00); db(0x04); db(0x20); db(0x52); db(0x20); db(0x08); db(0x67); db(0x00);
|
||||
db(0xff); db(0x18); db(0x22); db(0x50); db(0x20); db(0x40); db(0x20); db(0x28);
|
||||
db(0x00); db(0x04); db(0xb4); db(0x80); db(0x66); db(0x16); db(0x48); db(0xe7);
|
||||
@ -502,7 +502,7 @@
|
||||
db(0x60); db(0xd2); db(0x0c); db(0x85); db(0x00); db(0x00); db(0x00); db(0x14);
|
||||
db(0x65); db(0x00); db(0x00); db(0x0a); db(0x70); db(0x01); db(0x29); db(0x40);
|
||||
db(0x00); db(0x04); db(0x60); db(0x12); db(0x61); db(0x5e); db(0x30); db(0x3c);
|
||||
db(0xff); db(0x30); db(0x61); db(0x00); db(0x10); db(0xca); db(0x4e); db(0x90);
|
||||
db(0xff); db(0x30); db(0x61); db(0x00); db(0x11); db(0x94); db(0x4e); db(0x90);
|
||||
db(0x4a); db(0x80); db(0x67); db(0x0e); db(0x52); db(0x85); db(0x28); db(0xab);
|
||||
db(0x00); db(0x04); db(0x27); db(0x4c); db(0x00); db(0x04); db(0x60); db(0x00);
|
||||
db(0xfe); db(0xc0); db(0x28); db(0x43); db(0x61); db(0x04); db(0x60); db(0x00);
|
||||
@ -510,7 +510,7 @@
|
||||
db(0x00); db(0x08); db(0x66); db(0x04); db(0x61); db(0x00); db(0xfa); db(0x3a);
|
||||
db(0x0c); db(0xac); db(0x00); db(0x00); db(0x04); db(0x09); db(0x00); db(0x08);
|
||||
db(0x66); db(0x14); db(0x61); db(0x00); db(0xfa); db(0x92); db(0x66); db(0x0e);
|
||||
db(0x30); db(0x3c); db(0xff); db(0x58); db(0x61); db(0x00); db(0x10); db(0x88);
|
||||
db(0x30); db(0x3c); db(0xff); db(0x58); db(0x61); db(0x00); db(0x11); db(0x52);
|
||||
db(0x70); db(0x00); db(0x4e); db(0x90); db(0x60); db(0xec); db(0x22); db(0x54);
|
||||
db(0x20); db(0x6c); db(0x00); db(0x04); db(0x29); db(0x4d); db(0x00); db(0x04);
|
||||
db(0x4e); db(0xee); db(0xfe); db(0x92); db(0x2f); db(0x05); db(0x7a); db(0xfc);
|
||||
@ -562,7 +562,7 @@
|
||||
db(0x25); db(0x4b); db(0x00); db(0x3e); db(0x25); db(0x4b); db(0x00); db(0x36);
|
||||
db(0x22); db(0x4a); db(0x24); db(0x43); db(0x97); db(0xcb); db(0x24); db(0x09);
|
||||
db(0x4e); db(0xae); db(0xfe); db(0xe6); db(0x20); db(0x02); db(0x4c); db(0xdf);
|
||||
db(0x4c); db(0x1c); db(0x4e); db(0x75); db(0x41); db(0xfa); db(0x0f); db(0x8b);
|
||||
db(0x4c); db(0x1c); db(0x4e); db(0x75); db(0x41); db(0xfa); db(0x10); db(0x69);
|
||||
db(0x43); db(0xfa); db(0x01); db(0x50); db(0x70); db(0x13); db(0x61); db(0x00);
|
||||
db(0xff); db(0x98); db(0x4e); db(0x75); db(0x9e); db(0xfc); db(0x00); db(0x18);
|
||||
db(0x42); db(0x92); db(0x42); db(0xaa); db(0x00); db(0x0e); db(0x42); db(0xaa);
|
||||
@ -604,7 +604,7 @@
|
||||
db(0x4e); db(0xae); db(0xfd); db(0x0c); db(0x4a); db(0x80); db(0x6b); db(0x04);
|
||||
db(0x47); db(0xed); db(0x00); db(0x90); db(0x34); db(0x2d); db(0x00); db(0x2c);
|
||||
db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x01); db(0x61); db(0x00);
|
||||
db(0x0d); db(0x9e); db(0x4e); db(0x90); db(0x4c); db(0xdf); db(0x7f); db(0x1f);
|
||||
db(0x0e); db(0x68); db(0x4e); db(0x90); db(0x4c); db(0xdf); db(0x7f); db(0x1f);
|
||||
db(0x4e); db(0x75); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x3e); db(0x2e);
|
||||
db(0x00); db(0x14); db(0x70); db(0xff); db(0x4e); db(0xae); db(0xfe); db(0xb6);
|
||||
db(0x7c); db(0x00); db(0x01); db(0xc6); db(0x93); db(0xc9); db(0x4e); db(0xae);
|
||||
@ -612,47 +612,47 @@
|
||||
db(0x4e); db(0xae); db(0xfe); db(0xd4); db(0x70); db(0x00); db(0x30); db(0x3c);
|
||||
db(0x02); db(0x14); db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01);
|
||||
db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x2a); db(0x40); db(0x30); db(0x3c);
|
||||
db(0x3e); db(0x00); db(0x61); db(0x00); db(0x0d); db(0x5a); db(0x2b); db(0x48);
|
||||
db(0x3e); db(0x00); db(0x61); db(0x00); db(0x0e); db(0x34); db(0x2b); db(0x48);
|
||||
db(0x02); db(0x10); db(0x28); db(0x48); db(0x47); db(0xed); db(0x00); db(0x16);
|
||||
db(0x27); db(0x4e); db(0x00); db(0x10); db(0x27); db(0x4a); db(0x00); db(0x08);
|
||||
db(0x27); db(0x46); db(0x00); db(0x0c); db(0x70); db(0xff); db(0x37); db(0x40);
|
||||
db(0x00); db(0x00); db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x05);
|
||||
db(0x61); db(0x00); db(0x0d); db(0x34); db(0x20); db(0x0c); db(0x4e); db(0x90);
|
||||
db(0x61); db(0x00); db(0x0d); db(0xfe); db(0x20); db(0x0c); db(0x4e); db(0x90);
|
||||
db(0x43); db(0xed); db(0x00); db(0x00); db(0x13); db(0x7c); db(0x00); db(0x02);
|
||||
db(0x00); db(0x08); db(0x13); db(0x7c); db(0x00); db(0x05); db(0x00); db(0x09);
|
||||
db(0x41); db(0xfa); db(0x0d); db(0xbf); db(0x23); db(0x48); db(0x00); db(0x0a);
|
||||
db(0x41); db(0xfa); db(0x0e); db(0x9d); db(0x23); db(0x48); db(0x00); db(0x0a);
|
||||
db(0x41); db(0xfa); db(0x03); db(0x2e); db(0x23); db(0x48); db(0x00); db(0x12);
|
||||
db(0x23); db(0x4d); db(0x00); db(0x0e); db(0x70); db(0x05); db(0x4e); db(0xae);
|
||||
db(0xff); db(0x58); db(0x20); db(0x06); db(0x4e); db(0xae); db(0xfe); db(0xc2);
|
||||
db(0x70); db(0x00); db(0x53); db(0xab); db(0x00); db(0x1c); db(0x6a); db(0x06);
|
||||
db(0x70); db(0x0a); db(0x27); db(0x40); db(0x00); db(0x1c); db(0x4a); db(0xab);
|
||||
db(0x00); db(0x14); db(0x66); db(0x22); db(0x4a); db(0xab); db(0x00); db(0x1c);
|
||||
db(0x66); db(0xe0); db(0x43); db(0xfa); db(0x0e); db(0x0f); db(0x70); db(0x00);
|
||||
db(0x66); db(0xe0); db(0x43); db(0xfa); db(0x0e); db(0xed); db(0x70); db(0x00);
|
||||
db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x27); db(0x40); db(0x00); db(0x14);
|
||||
db(0x67); db(0xd0); db(0x22); db(0x00); db(0x30); db(0x3c); db(0x3f); db(0xf4);
|
||||
db(0x61); db(0x00); db(0x0c); db(0xcc); db(0x20); db(0x81); db(0x4a); db(0xab);
|
||||
db(0x61); db(0x00); db(0x0d); db(0xa6); db(0x20); db(0x81); db(0x4a); db(0xab);
|
||||
db(0x00); db(0x18); db(0x66); db(0x24); db(0x4a); db(0xab); db(0x00); db(0x1c);
|
||||
db(0x66); db(0xb8); db(0x43); db(0xfa); db(0x0d); db(0xf9); db(0x70); db(0x00);
|
||||
db(0x66); db(0xb8); db(0x43); db(0xfa); db(0x0e); db(0xd7); db(0x70); db(0x00);
|
||||
db(0x4e); db(0xae); db(0xfd); db(0xd8); db(0x27); db(0x40); db(0x00); db(0x18);
|
||||
db(0x67); db(0x00); db(0xff); db(0xa8); db(0x22); db(0x00); db(0x30); db(0x3c);
|
||||
db(0x3f); db(0xf8); db(0x61); db(0x00); db(0x0c); db(0xa2); db(0x20); db(0x81);
|
||||
db(0x3f); db(0xf8); db(0x61); db(0x00); db(0x0d); db(0x7c); db(0x20); db(0x81);
|
||||
db(0x4a); db(0xad); db(0x02); db(0x08); db(0x66); db(0x3a); db(0x4a); db(0xab);
|
||||
db(0x00); db(0x1c); db(0x66); db(0x8e); db(0x4e); db(0xae); db(0xff); db(0x7c);
|
||||
db(0x41); db(0xee); db(0x01); db(0x5e); db(0x43); db(0xfa); db(0x0c); db(0x96);
|
||||
db(0x41); db(0xee); db(0x01); db(0x5e); db(0x43); db(0xfa); db(0x0d); db(0x74);
|
||||
db(0x4e); db(0xae); db(0xfe); db(0xec); db(0x24); db(0x00); db(0x4e); db(0xae);
|
||||
db(0xff); db(0x76); db(0x4a); db(0x82); db(0x67); db(0x00); db(0xff); db(0x74);
|
||||
db(0x41); db(0xfa); db(0x0c); db(0x82); db(0x70); db(0x00); db(0x72); db(0x00);
|
||||
db(0x41); db(0xfa); db(0x0d); db(0x60); db(0x70); db(0x00); db(0x72); db(0x00);
|
||||
db(0x61); db(0x00); db(0xfc); db(0xec); db(0x2b); db(0x40); db(0x02); db(0x08);
|
||||
db(0x67); db(0x00); db(0x02); db(0x52); db(0x60); db(0x00); db(0xff); db(0x5c);
|
||||
db(0x4a); db(0xad); db(0x02); db(0x0c); db(0x66); db(0x48); db(0x4a); db(0xab);
|
||||
db(0x00); db(0x1c); db(0x66); db(0x00); db(0xff); db(0x4e); db(0x4e); db(0xae);
|
||||
db(0xff); db(0x7c); db(0x41); db(0xee); db(0x01); db(0x5e); db(0x43); db(0xfa);
|
||||
db(0x0c); db(0x61); db(0x4e); db(0xae); db(0xfe); db(0xec); db(0x24); db(0x00);
|
||||
db(0x0d); db(0x3f); db(0x4e); db(0xae); db(0xfe); db(0xec); db(0x24); db(0x00);
|
||||
db(0x4e); db(0xae); db(0xff); db(0x76); db(0x4a); db(0x82); db(0x67); db(0x00);
|
||||
db(0xff); db(0x32); db(0x41); db(0xfa); db(0x0c); db(0x4d); db(0x70); db(0x00);
|
||||
db(0xff); db(0x32); db(0x41); db(0xfa); db(0x0d); db(0x2b); db(0x70); db(0x00);
|
||||
db(0x72); db(0x00); db(0x61); db(0x00); db(0xfc); db(0xaa); db(0x2b); db(0x40);
|
||||
db(0x02); db(0x0c); db(0x67); db(0x00); db(0x02); db(0x10); db(0x30); db(0x3c);
|
||||
db(0xff); db(0x38); db(0x72); db(0x00); db(0x61); db(0x00); db(0x0c); db(0x18);
|
||||
db(0xff); db(0x38); db(0x72); db(0x00); db(0x61); db(0x00); db(0x0c); db(0xe2);
|
||||
db(0x4e); db(0x90); db(0x60); db(0x00); db(0xff); db(0x0e); db(0x0c); db(0x47);
|
||||
db(0x00); db(0x24); db(0x65); db(0x18); db(0x0c); db(0x47); db(0x00); db(0x32);
|
||||
db(0x64); db(0x12); db(0x53); db(0xab); db(0x00); db(0x34); db(0x6a); db(0x0c);
|
||||
@ -716,7 +716,7 @@
|
||||
db(0x00); db(0x14); db(0x65); db(0x18); db(0x2f); db(0x0e); db(0x2c); db(0x6d);
|
||||
db(0x02); db(0x08); db(0x2c); db(0x6e); db(0x00); db(0x14); db(0x4e); db(0xae);
|
||||
db(0xff); db(0xd6); db(0x2c); db(0x5f); db(0x02); db(0x40); db(0x7f); db(0xff);
|
||||
db(0x35); db(0x40); db(0x00); db(0x08); db(0x61); db(0x00); db(0xfb); db(0x3e);
|
||||
db(0x81); db(0x6a); db(0x00); db(0x08); db(0x61); db(0x00); db(0xfb); db(0x3e);
|
||||
db(0x60); db(0x00); db(0xfd); db(0x10); db(0x4e); db(0x75); db(0x22); db(0x2c);
|
||||
db(0x00); db(0x22); db(0x70); db(0x00); db(0x08); db(0x01); db(0x00); db(0x00);
|
||||
db(0x67); db(0x04); db(0x08); db(0xc0); db(0x00); db(0x0e); db(0x08); db(0x01);
|
||||
@ -731,29 +731,29 @@
|
||||
db(0x22); db(0x69); db(0x00); db(0x1e); db(0x4e); db(0xae); db(0xfe); db(0xbc);
|
||||
db(0x22); db(0x5f); db(0x53); db(0x69); db(0x00); db(0x46); db(0x6a); db(0x10);
|
||||
db(0x33); db(0x7c); db(0x00); db(0x32); db(0x00); db(0x46); db(0x30); db(0x3c);
|
||||
db(0xff); db(0xff); db(0x61); db(0x00); db(0x09); db(0xa2); db(0x50); db(0xd0);
|
||||
db(0xff); db(0xff); db(0x61); db(0x00); db(0x0a); db(0x7c); db(0x50); db(0xd0);
|
||||
db(0x41); db(0xf9); db(0x00); db(0xdf); db(0xf0); db(0x00); db(0x70); db(0x00);
|
||||
db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x00); db(0x06); db(0x30); db(0x3c);
|
||||
db(0xff); db(0x38); db(0x72); db(0x11); db(0x61); db(0x00); db(0x09); db(0x88);
|
||||
db(0xff); db(0x38); db(0x72); db(0x11); db(0x61); db(0x00); db(0x0a); db(0x52);
|
||||
db(0x4e); db(0x90); db(0x08); db(0x00); db(0x00); db(0x00); db(0x67); db(0x42);
|
||||
db(0x2c); db(0x78); db(0x00); db(0x04); db(0x20); db(0x3c); db(0x00); db(0x00);
|
||||
db(0x00); db(0x88); db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01);
|
||||
db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x4a); db(0x80); db(0x67); db(0x00);
|
||||
db(0x00); db(0x40); db(0x2a); db(0x40); db(0x2b); db(0x4e); db(0x00); db(0x14);
|
||||
db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x0e); db(0x61); db(0x00);
|
||||
db(0x09); db(0x56); db(0x20); db(0x0d); db(0x4e); db(0x90); db(0x41); db(0xfa);
|
||||
db(0x09); db(0xdb); db(0x43); db(0xfa); db(0x01); db(0x14); db(0x70); db(0xf6);
|
||||
db(0x0a); db(0x20); db(0x20); db(0x0d); db(0x4e); db(0x90); db(0x41); db(0xfa);
|
||||
db(0x0a); db(0xb9); db(0x43); db(0xfa); db(0x01); db(0x14); db(0x70); db(0xf6);
|
||||
db(0x22); db(0x3c); db(0x00); db(0x00); db(0x27); db(0x10); db(0x61); db(0x00);
|
||||
db(0xea); db(0xd2); db(0x70); db(0x00); db(0x4c); db(0xdf); db(0x60); db(0x00);
|
||||
db(0x4e); db(0x75); db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x0a);
|
||||
db(0x61); db(0x00); db(0x09); db(0x2c); db(0x4e); db(0x90); db(0x4e); db(0x75);
|
||||
db(0x61); db(0x00); db(0x09); db(0xf6); db(0x4e); db(0x90); db(0x4e); db(0x75);
|
||||
db(0x61); db(0xf0); db(0x20); db(0x0d); db(0x67); db(0x1c); db(0x2c); db(0x6d);
|
||||
db(0x00); db(0x14); db(0x20); db(0x2d); db(0x00); db(0x18); db(0x67); db(0x06);
|
||||
db(0x22); db(0x40); db(0x4e); db(0xae); db(0xfe); db(0x62); db(0x22); db(0x4d);
|
||||
db(0x20); db(0x3c); db(0x00); db(0x00); db(0x00); db(0x88); db(0x4e); db(0xae);
|
||||
db(0xff); db(0x2e); db(0x70); db(0x00); db(0x4e); db(0x75); db(0x48); db(0xe7);
|
||||
db(0x38); db(0x3e); db(0x2c); db(0x6d); db(0x00); db(0x18); db(0x41); db(0xfa);
|
||||
db(0x09); db(0x69); db(0x22); db(0x08); db(0x24); db(0x3c); db(0x00); db(0x00);
|
||||
db(0x0a); db(0x47); db(0x22); db(0x08); db(0x24); db(0x3c); db(0x00); db(0x00);
|
||||
db(0x03); db(0xed); db(0x4e); db(0xae); db(0xff); db(0xe2); db(0x28); db(0x00);
|
||||
db(0x67); db(0x4c); db(0x45); db(0xed); db(0x00); db(0x68); db(0x42); db(0x92);
|
||||
db(0x34); db(0xaa); db(0x00); db(0x02); db(0x24); db(0x0a); db(0x54); db(0x82);
|
||||
@ -764,31 +764,31 @@
|
||||
db(0x76); db(0x20); db(0x22); db(0x04); db(0x4e); db(0xae); db(0xff); db(0xd6);
|
||||
db(0xb6); db(0x80); db(0x66); db(0x12); db(0x4a); db(0x6a); db(0x00); db(0x10);
|
||||
db(0x66); db(0xc4); db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x10);
|
||||
db(0x61); db(0x00); db(0x08); db(0x9c); db(0x4e); db(0x90); db(0x22); db(0x04);
|
||||
db(0x61); db(0x00); db(0x09); db(0x66); db(0x4e); db(0x90); db(0x22); db(0x04);
|
||||
db(0x67); db(0x04); db(0x4e); db(0xae); db(0xff); db(0xdc); db(0x4c); db(0xdf);
|
||||
db(0x7c); db(0x1c); db(0x4e); db(0x75); db(0x2c); db(0x6d); db(0x00); db(0x18);
|
||||
db(0x41); db(0xfa); db(0x08); db(0xdc); db(0x22); db(0x08); db(0x74); db(0xfe);
|
||||
db(0x41); db(0xfa); db(0x09); db(0xba); db(0x22); db(0x08); db(0x74); db(0xfe);
|
||||
db(0x4e); db(0xae); db(0xff); db(0xac); db(0x22); db(0x00); db(0x67); db(0x34);
|
||||
db(0x4e); db(0xae); db(0xff); db(0xa6); db(0x2c); db(0x6d); db(0x00); db(0x14);
|
||||
db(0x45); db(0xed); db(0x00); db(0x38); db(0x70); db(0xff); db(0x4e); db(0xae);
|
||||
db(0xfe); db(0xb6); db(0x15); db(0x40); db(0x00); db(0x14); db(0x41); db(0xfa);
|
||||
db(0x08); db(0xd1); db(0x24); db(0x88); db(0x25); db(0x7c); db(0x00); db(0x00);
|
||||
db(0x09); db(0xaf); db(0x24); db(0x88); db(0x25); db(0x7c); db(0x00); db(0x00);
|
||||
db(0x00); db(0x12); db(0x00); db(0x0c); db(0x25); db(0x6d); db(0x00); db(0x08);
|
||||
db(0x00); db(0x10); db(0x2c); db(0x6d); db(0x00); db(0x18); db(0x22); db(0x0a);
|
||||
db(0x4e); db(0xae); db(0xfc); db(0x88); db(0x2c); db(0x6d); db(0x00); db(0x14);
|
||||
db(0x4e); db(0x75); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x10);
|
||||
db(0x00); db(0x00); db(0x00); db(0x00); db(0x30); db(0x3c); db(0xff); db(0x38);
|
||||
db(0x72); db(0x0d); db(0x61); db(0x00); db(0x08); db(0x2a); db(0x4e); db(0x90);
|
||||
db(0x72); db(0x0d); db(0x61); db(0x00); db(0x08); db(0xf4); db(0x4e); db(0x90);
|
||||
db(0x4a); db(0x80); db(0x67); db(0x00); db(0xfe); db(0xfc); db(0x2a); db(0x40);
|
||||
db(0x2c); db(0x6d); db(0x00); db(0x14); db(0x93); db(0xc9); db(0x4e); db(0xae);
|
||||
db(0xfe); db(0xda); db(0x2b); db(0x40); db(0x00); db(0x08); db(0x43); db(0xfa);
|
||||
db(0x09); db(0x2f); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8);
|
||||
db(0x0a); db(0x0d); db(0x70); db(0x00); db(0x4e); db(0xae); db(0xfd); db(0xd8);
|
||||
db(0x2b); db(0x40); db(0x00); db(0x18); db(0x67); db(0x00); db(0xfe); db(0xda);
|
||||
db(0x2c); db(0x40); db(0x72); db(0x32); db(0x4e); db(0xae); db(0xff); db(0x3a);
|
||||
db(0x41); db(0xfa); db(0x08); db(0x30); db(0x22); db(0x08); db(0x74); db(0xfe);
|
||||
db(0x41); db(0xfa); db(0x09); db(0x0e); db(0x22); db(0x08); db(0x74); db(0xfe);
|
||||
db(0x4e); db(0xae); db(0xff); db(0xac); db(0x4a); db(0x80); db(0x67); db(0xea);
|
||||
db(0x22); db(0x00); db(0x4e); db(0xae); db(0xff); db(0xa6); db(0x72); db(0x32);
|
||||
db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x41); db(0xfa); db(0x08); db(0x1a);
|
||||
db(0x4e); db(0xae); db(0xff); db(0x3a); db(0x41); db(0xfa); db(0x08); db(0xf8);
|
||||
db(0x22); db(0x08); db(0x74); db(0xfe); db(0x4e); db(0xae); db(0xff); db(0xac);
|
||||
db(0x4a); db(0x80); db(0x67); db(0x00); db(0xfe); db(0xa4); db(0x22); db(0x00);
|
||||
db(0x4e); db(0xae); db(0xff); db(0xa6); db(0x2c); db(0x6d); db(0x00); db(0x14);
|
||||
@ -797,7 +797,7 @@
|
||||
db(0x4a); db(0x80); db(0x67); db(0x00); db(0xfe); db(0x84); db(0x70); db(0x00);
|
||||
db(0x08); db(0xc0); db(0x00); db(0x0d); db(0x4e); db(0xae); db(0xfe); db(0xc2);
|
||||
db(0x72); db(0x00); db(0x20); db(0x2d); db(0x00); db(0x0c); db(0x41); db(0xfa);
|
||||
db(0x07); db(0xf8); db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x44);
|
||||
db(0x08); db(0xd6); db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x44);
|
||||
db(0x4a); db(0x80); db(0x66); db(0xe2); db(0x20); db(0x6c); db(0x00); db(0x14);
|
||||
db(0x0c); db(0x68); db(0x00); db(0x25); db(0x00); db(0x14); db(0x64); db(0x0c);
|
||||
db(0x61); db(0x00); db(0xfe); db(0x48); db(0x70); db(0x00); db(0x4e); db(0xae);
|
||||
@ -807,7 +807,7 @@
|
||||
db(0x00); db(0x0c); db(0x00); db(0x1c); db(0x2b); db(0x4d); db(0x00); db(0x2c);
|
||||
db(0x41); db(0xfa); db(0x01); db(0x60); db(0x2b); db(0x48); db(0x00); db(0x24);
|
||||
db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x38); db(0x30); db(0x3c);
|
||||
db(0xff); db(0x38); db(0x72); db(0x0f); db(0x61); db(0x00); db(0x07); db(0x40);
|
||||
db(0xff); db(0x38); db(0x72); db(0x0f); db(0x61); db(0x00); db(0x08); db(0x0a);
|
||||
db(0x4e); db(0x90); db(0x4a); db(0xad); db(0x00); db(0x00); db(0x66); db(0x1c);
|
||||
db(0x70); db(0x00); db(0x74); db(0x00); db(0x14); db(0x2d); db(0x00); db(0x4c);
|
||||
db(0x05); db(0xc0); db(0x08); db(0xc0); db(0x00); db(0x0d); db(0x4e); db(0xae);
|
||||
@ -815,7 +815,7 @@
|
||||
db(0xfe); db(0x1e); db(0x60); db(0xe4); db(0x20); db(0x2d); db(0x00); db(0x00);
|
||||
db(0x67); db(0x00); db(0x00); db(0x76); db(0x72); db(0x01); db(0x4e); db(0xae);
|
||||
db(0xff); db(0x3a); db(0x2b); db(0x40); db(0x00); db(0x04); db(0x30); db(0x3c);
|
||||
db(0xff); db(0x38); db(0x72); db(0x0c); db(0x61); db(0x00); db(0x07); db(0x00);
|
||||
db(0xff); db(0x38); db(0x72); db(0x0c); db(0x61); db(0x00); db(0x07); db(0xca);
|
||||
db(0x4e); db(0x90); db(0x4a); db(0x80); db(0x67); db(0x40); db(0x4a); db(0xad);
|
||||
db(0x00); db(0x04); db(0x67); db(0x3a); db(0x39); db(0x7c); db(0x00); db(0x03);
|
||||
db(0x00); db(0x1c); db(0x42); db(0x2c); db(0x00); db(0x1f); db(0x42); db(0xac);
|
||||
@ -843,7 +843,7 @@
|
||||
db(0x00); db(0x28); db(0x20); db(0x02); db(0x51); db(0x80); db(0x29); db(0x40);
|
||||
db(0x00); db(0x24); db(0x22); db(0x4c); db(0x4e); db(0xae); db(0xfe); db(0x38);
|
||||
db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x0b); db(0x61); db(0x00);
|
||||
db(0x06); db(0x26); db(0x20); db(0x2c); db(0x00); db(0x20); db(0x4e); db(0x90);
|
||||
db(0x06); db(0xf0); db(0x20); db(0x2c); db(0x00); db(0x20); db(0x4e); db(0x90);
|
||||
db(0x22); db(0x4a); db(0x20); db(0x02); db(0x4e); db(0xae); db(0xff); db(0x2e);
|
||||
db(0x4a); db(0xac); db(0x00); db(0x20); db(0x67); db(0x00); db(0xfe); db(0xda);
|
||||
db(0x41); db(0xed); db(0x00); db(0x30); db(0x29); db(0x48); db(0x00); db(0x28);
|
||||
@ -856,26 +856,26 @@
|
||||
db(0x08); db(0xc0); db(0x00); db(0x0d); db(0x4e); db(0xae); db(0xfe); db(0xbc);
|
||||
db(0x2c); db(0x5f); db(0x70); db(0x00); db(0x4e); db(0x75); db(0x2c); db(0x78);
|
||||
db(0x00); db(0x04); db(0x74); db(0xff); db(0x30); db(0x3c); db(0xff); db(0x38);
|
||||
db(0x72); db(0x11); db(0x61); db(0x00); db(0x05); db(0xba); db(0x4e); db(0x90);
|
||||
db(0x72); db(0x11); db(0x61); db(0x00); db(0x06); db(0x84); db(0x4e); db(0x90);
|
||||
db(0x08); db(0x00); db(0x00); db(0x01); db(0x67); db(0x38); db(0x74); db(0x00);
|
||||
db(0x4e); db(0xae); db(0xff); db(0x7c); db(0x41); db(0xee); db(0x01); db(0x5e);
|
||||
db(0x43); db(0xfa); db(0x05); db(0xcc); db(0x4e); db(0xae); db(0xfe); db(0xec);
|
||||
db(0x43); db(0xfa); db(0x06); db(0xaa); db(0x4e); db(0xae); db(0xfe); db(0xec);
|
||||
db(0x4a); db(0x80); db(0x67); db(0x1e); db(0x20); db(0x40); db(0x43); db(0xfa);
|
||||
db(0x00); db(0x22); db(0x24); db(0x68); db(0xff); db(0xe4); db(0x21); db(0x49);
|
||||
db(0xff); db(0xe4); db(0x22); db(0x48); db(0x30); db(0x3c); db(0xff); db(0x38);
|
||||
db(0x72); db(0x65); db(0x61); db(0x00); db(0x05); db(0x82); db(0x4e); db(0x90);
|
||||
db(0x72); db(0x65); db(0x61); db(0x00); db(0x06); db(0x4c); db(0x4e); db(0x90);
|
||||
db(0x74); db(0x01); db(0x4e); db(0xae); db(0xff); db(0x76); db(0x20); db(0x02);
|
||||
db(0x4e); db(0x75); db(0x59); db(0x8f); db(0x48); db(0xe7); db(0xc0); db(0x80);
|
||||
db(0x30); db(0x3c); db(0xff); db(0x38); db(0x72); db(0x66); db(0x61); db(0x00);
|
||||
db(0x05); db(0x66); db(0x4e); db(0x90); db(0x4c); db(0xdf); db(0x01); db(0x03);
|
||||
db(0x06); db(0x30); db(0x4e); db(0x90); db(0x4c); db(0xdf); db(0x01); db(0x03);
|
||||
db(0x4e); db(0x75); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x41); db(0xfa);
|
||||
db(0x06); db(0x6a); db(0x43); db(0xfa); db(0x00); db(0x14); db(0x70); db(0x0f);
|
||||
db(0x07); db(0x48); db(0x43); db(0xfa); db(0x00); db(0x14); db(0x70); db(0x0f);
|
||||
db(0x22); db(0x3c); db(0x00); db(0x00); db(0x1f); db(0x40); db(0x61); db(0x00);
|
||||
db(0xe6); db(0xda); db(0x4e); db(0x75); db(0x00); db(0x00); db(0x00); db(0x10);
|
||||
db(0x00); db(0x00); db(0x00); db(0x00); db(0x2c); db(0x78); db(0x00); db(0x04);
|
||||
db(0x70); db(0x00); db(0x43); db(0xfa); db(0x06); db(0x53); db(0x4e); db(0xae);
|
||||
db(0x70); db(0x00); db(0x43); db(0xfa); db(0x07); db(0x31); db(0x4e); db(0xae);
|
||||
db(0xfd); db(0xd8); db(0x72); db(0x02); db(0x30); db(0x3c); db(0xff); db(0x78);
|
||||
db(0x61); db(0x00); db(0x05); db(0x24); db(0x24); db(0x48); db(0x72); db(0x01);
|
||||
db(0x61); db(0x00); db(0x05); db(0xee); db(0x24); db(0x48); db(0x72); db(0x01);
|
||||
db(0x4e); db(0x90); db(0x4a); db(0x81); db(0x67); db(0x0c); db(0x26); db(0x41);
|
||||
db(0x4e); db(0xae); db(0xfe); db(0x08); db(0x72); db(0x02); db(0x20); db(0x4b);
|
||||
db(0x4e); db(0x92); db(0x22); db(0x4e); db(0x2c); db(0x78); db(0x00); db(0x04);
|
||||
@ -906,7 +906,7 @@
|
||||
db(0xbc); db(0xfc); db(0x00); db(0x00); db(0x67); db(0x06); db(0x4e); db(0xae);
|
||||
db(0xff); db(0x6a); db(0x4e); db(0x75); db(0x48); db(0xe7); db(0x38); db(0x3e);
|
||||
db(0x24); db(0x48); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x43); db(0xfa);
|
||||
db(0x05); db(0x4f); db(0x4e); db(0xae); db(0xfe); db(0x68); db(0x2a); db(0x40);
|
||||
db(0x06); db(0x2d); db(0x4e); db(0xae); db(0xfe); db(0x68); db(0x2a); db(0x40);
|
||||
db(0x20); db(0x6d); db(0x00); db(0x22); db(0x20); db(0x28); db(0x00); db(0x18);
|
||||
db(0xe5); db(0x88); db(0x26); db(0x40); db(0x24); db(0xab); db(0x00); db(0x04);
|
||||
db(0x20); db(0x0a); db(0xe4); db(0x88); db(0x27); db(0x40); db(0x00); db(0x04);
|
||||
@ -918,7 +918,7 @@
|
||||
db(0x20); db(0x40); db(0x41); db(0xe8); db(0x00); db(0x5c); db(0xe5); db(0x8a);
|
||||
db(0x22); db(0x42); db(0x22); db(0x51); db(0x4e); db(0xae); db(0xfe); db(0x92);
|
||||
db(0x22); db(0x02); db(0x43); db(0xfa); db(0x00); db(0x0e); db(0x30); db(0x3c);
|
||||
db(0xff); db(0x68); db(0x61); db(0x00); db(0x03); db(0xca); db(0x4e); db(0x90);
|
||||
db(0xff); db(0x68); db(0x61); db(0x00); db(0x04); db(0x94); db(0x4e); db(0x90);
|
||||
db(0x4e); db(0xd0); db(0x70); db(0x30); db(0x60); db(0x0a); db(0x70); db(0x28);
|
||||
db(0x60); db(0x06); db(0x20); db(0x06); db(0x60); db(0x02); db(0x20); db(0x06);
|
||||
db(0x12); db(0xd8); db(0x53); db(0x80); db(0x6e); db(0xfa); db(0x4e); db(0x75);
|
||||
@ -926,18 +926,18 @@
|
||||
db(0x00); db(0x00); db(0x00); db(0x04); db(0x00); db(0x00); db(0x00); db(0x02);
|
||||
db(0x48); db(0xe7); db(0x00); db(0x22); db(0x2c); db(0x78); db(0x00); db(0x04);
|
||||
db(0x20); db(0x3c); db(0x00); db(0x00); db(0xff); db(0xfc); db(0x61); db(0x00);
|
||||
db(0x03); db(0x8e); db(0x24); db(0x48); db(0x20); db(0x08); db(0x42); db(0x40);
|
||||
db(0x04); db(0x68); db(0x24); db(0x48); db(0x20); db(0x08); db(0x42); db(0x40);
|
||||
db(0x20); db(0x40); db(0x21); db(0x4e); db(0x3f); db(0xfc); db(0x70); db(0x1a);
|
||||
db(0x22); db(0x3c); db(0x00); db(0x01); db(0x00); db(0x01); db(0x4e); db(0xae);
|
||||
db(0xff); db(0x3a); db(0x22); db(0x40); db(0x41); db(0xfa); db(0x05); db(0x14);
|
||||
db(0xff); db(0x3a); db(0x22); db(0x40); db(0x41); db(0xfa); db(0x05); db(0xf2);
|
||||
db(0x23); db(0x48); db(0x00); db(0x0a); db(0x23); db(0x4a); db(0x00); db(0x0e);
|
||||
db(0x41); db(0xfa); db(0x01); db(0x30); db(0x23); db(0x48); db(0x00); db(0x12);
|
||||
db(0x33); db(0x7c); db(0x02); db(0x7a); db(0x00); db(0x08); db(0x70); db(0x0d);
|
||||
db(0x4e); db(0xae); db(0xff); db(0x58); db(0x4c); db(0xdf); db(0x44); db(0x00);
|
||||
db(0x4e); db(0x75); db(0x48); db(0xe7); db(0xc0); db(0xc0); db(0x20); db(0x3c);
|
||||
db(0x00); db(0x00); db(0xf0); db(0x00); db(0x61); db(0x00); db(0x03); db(0x40);
|
||||
db(0x00); db(0x00); db(0xf0); db(0x00); db(0x61); db(0x00); db(0x04); db(0x1a);
|
||||
db(0x22); db(0x48); db(0x20); db(0x3c); db(0x00); db(0x00); db(0x40); db(0x00);
|
||||
db(0x61); db(0x00); db(0x03); db(0x34); db(0x70); db(0x03); db(0x4a); db(0x69);
|
||||
db(0x61); db(0x00); db(0x04); db(0x0e); db(0x70); db(0x03); db(0x4a); db(0x69);
|
||||
db(0x00); db(0x02); db(0x67); db(0x0e); db(0xd0); db(0xfc); db(0x20); db(0x00);
|
||||
db(0xd2); db(0xfc); db(0x00); db(0x08); db(0x51); db(0xc8); db(0xff); db(0xf0);
|
||||
db(0x60); db(0xd4); db(0x48); db(0xe8); db(0x00); db(0xfc); db(0x00); db(0x0c);
|
||||
@ -999,7 +999,7 @@
|
||||
db(0x0c); db(0x44); db(0x00); db(0x24); db(0x67); db(0x28); db(0x32); db(0x3c);
|
||||
db(0x00); db(0xb6); db(0x0c); db(0x44); db(0x00); db(0x26); db(0x67); db(0x1e);
|
||||
db(0x20); db(0x3c); db(0x00); db(0x00); db(0xff); db(0xf4); db(0x61); db(0x00);
|
||||
db(0x01); db(0x46); db(0x20); db(0x10); db(0x67); db(0x10); db(0x22); db(0x40);
|
||||
db(0x02); db(0x20); db(0x20); db(0x10); db(0x67); db(0x10); db(0x22); db(0x40);
|
||||
db(0x20); db(0x3c); db(0x00); db(0x00); db(0x01); db(0x00); db(0x4e); db(0xae);
|
||||
db(0xfe); db(0xbc); db(0x70); db(0x01); db(0x60); db(0x10); db(0xd6); db(0xc1);
|
||||
db(0x4c); db(0xd4); db(0x07); db(0x00); db(0x4c); db(0xd4); db(0x00); db(0x07);
|
||||
@ -1039,59 +1039,87 @@
|
||||
db(0x00); db(0x0f); db(0xe0); db(0x4b); db(0xc6); db(0xfc); db(0x00); db(0x14);
|
||||
db(0xe5); db(0x4e); db(0xd6); db(0x46); db(0x2b); db(0x80); db(0x30); db(0x04);
|
||||
db(0xd8); db(0xfc); db(0x00); db(0x10); db(0x53); db(0x87); db(0x66); db(0xc2);
|
||||
db(0x4c); db(0xdf); db(0x7f); db(0xff); db(0x4e); db(0x75); db(0x41); db(0xfa);
|
||||
db(0xdf); db(0x6c); db(0x02); db(0x80); db(0x00); db(0x00); db(0xff); db(0xff);
|
||||
db(0xd1); db(0xc0); db(0x4e); db(0x75); db(0x69); db(0x6e); db(0x70); db(0x75);
|
||||
db(0x74); db(0x2e); db(0x64); db(0x65); db(0x76); db(0x69); db(0x63); db(0x65);
|
||||
db(0x00); db(0x74); db(0x69); db(0x6d); db(0x65); db(0x72); db(0x2e); db(0x64);
|
||||
db(0x65); db(0x76); db(0x69); db(0x63); db(0x65); db(0x00); db(0x63); db(0x6f);
|
||||
db(0x6e); db(0x73); db(0x6f); db(0x6c); db(0x65); db(0x2e); db(0x64); db(0x65);
|
||||
db(0x76); db(0x69); db(0x63); db(0x65); db(0x00); db(0x44); db(0x45); db(0x56);
|
||||
db(0x53); db(0x00); db(0x44); db(0x45); db(0x56); db(0x53); db(0x3a); db(0x00);
|
||||
db(0x44); db(0x45); db(0x56); db(0x53); db(0x3a); db(0x63); db(0x6c); db(0x69);
|
||||
db(0x70); db(0x62); db(0x6f); db(0x61); db(0x72); db(0x64); db(0x2e); db(0x64);
|
||||
db(0x65); db(0x76); db(0x69); db(0x63); db(0x65); db(0x00); db(0x52); db(0x41);
|
||||
db(0x4d); db(0x3a); db(0x00); db(0x4e); db(0x49); db(0x4c); db(0x3a); db(0x00);
|
||||
db(0x63); db(0x6c); db(0x69); db(0x70); db(0x62); db(0x6f); db(0x61); db(0x72);
|
||||
db(0x64); db(0x2e); db(0x64); db(0x65); db(0x76); db(0x69); db(0x63); db(0x65);
|
||||
db(0x00); db(0x52); db(0x41); db(0x4d); db(0x3a); db(0x45); db(0x6e); db(0x76);
|
||||
db(0x2f); db(0x53); db(0x79); db(0x73); db(0x2f); db(0x50); db(0x6f); db(0x69);
|
||||
db(0x6e); db(0x74); db(0x65); db(0x72); db(0x2e); db(0x70); db(0x72); db(0x65);
|
||||
db(0x66); db(0x73); db(0x00); db(0x55); db(0x41); db(0x45); db(0x20); db(0x63);
|
||||
db(0x6c); db(0x69); db(0x70); db(0x62); db(0x6f); db(0x61); db(0x72); db(0x64);
|
||||
db(0x20); db(0x73); db(0x68); db(0x61); db(0x72); db(0x69); db(0x6e); db(0x67);
|
||||
db(0x00); db(0x55); db(0x41); db(0x45); db(0x20); db(0x6d); db(0x6f); db(0x75);
|
||||
db(0x73); db(0x65); db(0x20); db(0x64); db(0x72); db(0x69); db(0x76); db(0x65);
|
||||
db(0x72); db(0x00); db(0x55); db(0x41); db(0x45); db(0x20); db(0x68); db(0x65);
|
||||
db(0x61); db(0x72); db(0x74); db(0x20); db(0x62); db(0x65); db(0x61); db(0x74);
|
||||
db(0x00); db(0x55); db(0x41); db(0x45); db(0x20); db(0x66); db(0x73); db(0x00);
|
||||
db(0x55); db(0x41); db(0x45); db(0x20); db(0x66); db(0x73); db(0x20); db(0x61);
|
||||
db(0x75); db(0x74); db(0x6f); db(0x6d); db(0x6f); db(0x75); db(0x6e); db(0x74);
|
||||
db(0x65); db(0x72); db(0x00); db(0x55); db(0x41); db(0x45); db(0x20); db(0x66);
|
||||
db(0x73); db(0x20); db(0x77); db(0x6f); db(0x72); db(0x6b); db(0x65); db(0x72);
|
||||
db(0x00); db(0x55); db(0x41); db(0x45); db(0x20); db(0x74); db(0x72); db(0x61);
|
||||
db(0x70); db(0x20); db(0x77); db(0x6f); db(0x72); db(0x6b); db(0x65); db(0x72);
|
||||
db(0x4c); db(0xdf); db(0x7f); db(0xff); db(0x4e); db(0x75); db(0x2a); db(0x48);
|
||||
db(0x7e); db(0x14); db(0x2c); db(0x78); db(0x00); db(0x04); db(0x4e); db(0xae);
|
||||
db(0xff); db(0x7c); db(0x30); db(0x3c); db(0xff); db(0x38); db(0x61); db(0x00);
|
||||
db(0x00); db(0xc8); db(0x24); db(0x0d); db(0x72); db(0x13); db(0x4e); db(0x90);
|
||||
db(0x4a); db(0x80); db(0x67); db(0x00); db(0x00); db(0x98); db(0x26); db(0x40);
|
||||
db(0x28); db(0x5b); db(0x20); db(0x4c); db(0x22); db(0x4d); db(0x30); db(0x3c);
|
||||
db(0x3f); db(0xff); db(0x22); db(0xd8); db(0x51); db(0xc8); db(0xff); db(0xfc);
|
||||
db(0x22); db(0x0d); db(0x92); db(0x8c); db(0x20); db(0x4b); db(0x70); db(0x00);
|
||||
db(0x30); db(0x18); db(0x67); db(0x0e); db(0x43); db(0xf4); db(0x08); db(0x00);
|
||||
db(0xd3); db(0x91); db(0x43); db(0xf5); db(0x08); db(0x00); db(0xd3); db(0x91);
|
||||
db(0x60); db(0xec); db(0x70); db(0x00); db(0x20); db(0x18); db(0x67); db(0x06);
|
||||
db(0x22); db(0x40); db(0xd3); db(0x91); db(0x60); db(0xf4); db(0x70); db(0x00);
|
||||
db(0x61); db(0x00); db(0x00); db(0x7e); db(0x43); db(0xfa); db(0x00); db(0x7a);
|
||||
db(0x93); db(0xc8); db(0xd3); db(0xcd); db(0x32); db(0xfc); db(0x41); db(0xf9);
|
||||
db(0x22); db(0xcc); db(0x32); db(0xfc); db(0x02); db(0x80); db(0x22); db(0xfc);
|
||||
db(0x00); db(0x00); db(0xff); db(0xff); db(0x22); db(0xbc); db(0xd1); db(0xc0);
|
||||
db(0x4e); db(0x75); db(0x41); db(0xfa); db(0x00); db(0x40); db(0x70); db(0x00);
|
||||
db(0x30); db(0x18); db(0x67); db(0x14); db(0x06); db(0x40); db(0x00); db(0x0c);
|
||||
db(0x43); db(0xf4); db(0x08); db(0x00); db(0x32); db(0xfc); db(0x4e); db(0xf9);
|
||||
db(0x45); db(0xf5); db(0x08); db(0x00); db(0x22); db(0x8a); db(0x60); db(0xe6);
|
||||
db(0x0c); db(0x6e); db(0x00); db(0x24); db(0x00); db(0x14); db(0x65); db(0x04);
|
||||
db(0x4e); db(0xae); db(0xfd); db(0x84); db(0x30); db(0x3c); db(0xff); db(0x38);
|
||||
db(0x61); db(0x00); db(0x00); db(0x2e); db(0x24); db(0x0d); db(0x72); db(0x14);
|
||||
db(0x4e); db(0x90); db(0x7e); db(0x00); db(0x4e); db(0xae); db(0xff); db(0x76);
|
||||
db(0x20); db(0x07); db(0x4e); db(0x75); db(0x0e); db(0x90); db(0x13); db(0x82);
|
||||
db(0x05); db(0x58); db(0x02); db(0xa0); db(0x03); db(0x26); db(0x00); db(0x00);
|
||||
db(0x41); db(0xfa); db(0xde); db(0xa2); db(0x02); db(0x80); db(0x00); db(0x00);
|
||||
db(0xff); db(0xff); db(0xd1); db(0xc0); db(0x4e); db(0x75); db(0x00); db(0x00);
|
||||
db(0x41); db(0xfa); db(0xde); db(0x92); db(0x02); db(0x80); db(0x00); db(0x00);
|
||||
db(0xff); db(0xff); db(0xd1); db(0xc0); db(0x4e); db(0x75); db(0x4e); db(0x71);
|
||||
db(0x4e); db(0x71); db(0x69); db(0x6e); db(0x70); db(0x75); db(0x74); db(0x2e);
|
||||
db(0x64); db(0x65); db(0x76); db(0x69); db(0x63); db(0x65); db(0x00); db(0x74);
|
||||
db(0x69); db(0x6d); db(0x65); db(0x72); db(0x2e); db(0x64); db(0x65); db(0x76);
|
||||
db(0x69); db(0x63); db(0x65); db(0x00); db(0x63); db(0x6f); db(0x6e); db(0x73);
|
||||
db(0x6f); db(0x6c); db(0x65); db(0x2e); db(0x64); db(0x65); db(0x76); db(0x69);
|
||||
db(0x63); db(0x65); db(0x00); db(0x44); db(0x45); db(0x56); db(0x53); db(0x00);
|
||||
db(0x44); db(0x45); db(0x56); db(0x53); db(0x3a); db(0x00); db(0x44); db(0x45);
|
||||
db(0x56); db(0x53); db(0x3a); db(0x63); db(0x6c); db(0x69); db(0x70); db(0x62);
|
||||
db(0x6f); db(0x61); db(0x72); db(0x64); db(0x2e); db(0x64); db(0x65); db(0x76);
|
||||
db(0x69); db(0x63); db(0x65); db(0x00); db(0x52); db(0x41); db(0x4d); db(0x3a);
|
||||
db(0x00); db(0x4e); db(0x49); db(0x4c); db(0x3a); db(0x00); db(0x63); db(0x6c);
|
||||
db(0x69); db(0x70); db(0x62); db(0x6f); db(0x61); db(0x72); db(0x64); db(0x2e);
|
||||
db(0x64); db(0x65); db(0x76); db(0x69); db(0x63); db(0x65); db(0x00); db(0x52);
|
||||
db(0x41); db(0x4d); db(0x3a); db(0x45); db(0x6e); db(0x76); db(0x2f); db(0x53);
|
||||
db(0x79); db(0x73); db(0x2f); db(0x50); db(0x6f); db(0x69); db(0x6e); db(0x74);
|
||||
db(0x65); db(0x72); db(0x2e); db(0x70); db(0x72); db(0x65); db(0x66); db(0x73);
|
||||
db(0x00); db(0x55); db(0x41); db(0x45); db(0x20); db(0x63); db(0x6c); db(0x69);
|
||||
db(0x70); db(0x62); db(0x6f); db(0x61); db(0x72); db(0x64); db(0x20); db(0x73);
|
||||
db(0x68); db(0x61); db(0x72); db(0x69); db(0x6e); db(0x67); db(0x00); db(0x55);
|
||||
db(0x41); db(0x45); db(0x20); db(0x6d); db(0x6f); db(0x75); db(0x73); db(0x65);
|
||||
db(0x20); db(0x64); db(0x72); db(0x69); db(0x76); db(0x65); db(0x72); db(0x00);
|
||||
db(0x55); db(0x41); db(0x45); db(0x20); db(0x68); db(0x65); db(0x61); db(0x72);
|
||||
db(0x74); db(0x20); db(0x62); db(0x65); db(0x61); db(0x74); db(0x00); db(0x55);
|
||||
db(0x41); db(0x45); db(0x20); db(0x66); db(0x73); db(0x00); db(0x55); db(0x41);
|
||||
db(0x45); db(0x20); db(0x66); db(0x73); db(0x20); db(0x61); db(0x75); db(0x74);
|
||||
db(0x6f); db(0x6d); db(0x6f); db(0x75); db(0x6e); db(0x74); db(0x65); db(0x72);
|
||||
db(0x00); db(0x55); db(0x41); db(0x45); db(0x20); db(0x66); db(0x73); db(0x20);
|
||||
db(0x61); db(0x75); db(0x74); db(0x6f); db(0x6d); db(0x6f); db(0x75); db(0x6e);
|
||||
db(0x74); db(0x20); db(0x70); db(0x72); db(0x6f); db(0x63); db(0x65); db(0x73);
|
||||
db(0x73); db(0x00); db(0x55); db(0x41); db(0x45); db(0x20); db(0x64); db(0x65);
|
||||
db(0x62); db(0x75); db(0x67); db(0x67); db(0x65); db(0x72); db(0x00); db(0x64);
|
||||
db(0x6f); db(0x73); db(0x2e); db(0x6c); db(0x69); db(0x62); db(0x72); db(0x61);
|
||||
db(0x72); db(0x79); db(0x00); db(0x69); db(0x6e); db(0x74); db(0x75); db(0x69);
|
||||
db(0x74); db(0x69); db(0x6f); db(0x6e); db(0x2e); db(0x6c); db(0x69); db(0x62);
|
||||
db(0x72); db(0x61); db(0x72); db(0x79); db(0x00); db(0x67); db(0x72); db(0x61);
|
||||
db(0x70); db(0x68); db(0x69); db(0x63); db(0x73); db(0x2e); db(0x6c); db(0x69);
|
||||
db(0x62); db(0x72); db(0x61); db(0x72); db(0x79); db(0x00); db(0x65); db(0x78);
|
||||
db(0x70); db(0x61); db(0x6e); db(0x73); db(0x69); db(0x6f); db(0x6e); db(0x2e);
|
||||
db(0x6c); db(0x69); db(0x62); db(0x72); db(0x61); db(0x72); db(0x79); db(0x00);
|
||||
db(0x46); db(0x69); db(0x6c); db(0x65); db(0x53); db(0x79); db(0x73); db(0x74);
|
||||
db(0x65); db(0x6d); db(0x2e); db(0x72); db(0x65); db(0x73); db(0x6f); db(0x75);
|
||||
db(0x72); db(0x63); db(0x65); db(0x00); db(0x6d); db(0x65); db(0x67); db(0x61);
|
||||
db(0x63); db(0x68); db(0x69); db(0x70); db(0x20); db(0x6d); db(0x65); db(0x6d);
|
||||
db(0x6f); db(0x72); db(0x79); db(0x00); db(0x46); db(0x69); db(0x6c); db(0x65);
|
||||
db(0x20); db(0x53); db(0x79); db(0x73); db(0x74); db(0x65); db(0x6d); db(0x00);
|
||||
db(0x55); db(0x41); db(0x45); db(0x20); db(0x73); db(0x68); db(0x65); db(0x6c);
|
||||
db(0x6c); db(0x20); db(0x65); db(0x78); db(0x65); db(0x63); db(0x75); db(0x74);
|
||||
db(0x65); db(0x00); db(0x55); db(0x41); db(0x45); db(0x20); db(0x62); db(0x6f);
|
||||
db(0x61); db(0x72); db(0x64); db(0x00); db(0x00); db(0x00); db(0x03); db(0xf2);
|
||||
db(0x77); db(0x6f); db(0x72); db(0x6b); db(0x65); db(0x72); db(0x00); db(0x55);
|
||||
db(0x41); db(0x45); db(0x20); db(0x74); db(0x72); db(0x61); db(0x70); db(0x20);
|
||||
db(0x77); db(0x6f); db(0x72); db(0x6b); db(0x65); db(0x72); db(0x00); db(0x55);
|
||||
db(0x41); db(0x45); db(0x20); db(0x66); db(0x73); db(0x20); db(0x61); db(0x75);
|
||||
db(0x74); db(0x6f); db(0x6d); db(0x6f); db(0x75); db(0x6e); db(0x74); db(0x20);
|
||||
db(0x70); db(0x72); db(0x6f); db(0x63); db(0x65); db(0x73); db(0x73); db(0x00);
|
||||
db(0x55); db(0x41); db(0x45); db(0x20); db(0x64); db(0x65); db(0x62); db(0x75);
|
||||
db(0x67); db(0x67); db(0x65); db(0x72); db(0x00); db(0x64); db(0x6f); db(0x73);
|
||||
db(0x2e); db(0x6c); db(0x69); db(0x62); db(0x72); db(0x61); db(0x72); db(0x79);
|
||||
db(0x00); db(0x69); db(0x6e); db(0x74); db(0x75); db(0x69); db(0x74); db(0x69);
|
||||
db(0x6f); db(0x6e); db(0x2e); db(0x6c); db(0x69); db(0x62); db(0x72); db(0x61);
|
||||
db(0x72); db(0x79); db(0x00); db(0x67); db(0x72); db(0x61); db(0x70); db(0x68);
|
||||
db(0x69); db(0x63); db(0x73); db(0x2e); db(0x6c); db(0x69); db(0x62); db(0x72);
|
||||
db(0x61); db(0x72); db(0x79); db(0x00); db(0x65); db(0x78); db(0x70); db(0x61);
|
||||
db(0x6e); db(0x73); db(0x69); db(0x6f); db(0x6e); db(0x2e); db(0x6c); db(0x69);
|
||||
db(0x62); db(0x72); db(0x61); db(0x72); db(0x79); db(0x00); db(0x46); db(0x69);
|
||||
db(0x6c); db(0x65); db(0x53); db(0x79); db(0x73); db(0x74); db(0x65); db(0x6d);
|
||||
db(0x2e); db(0x72); db(0x65); db(0x73); db(0x6f); db(0x75); db(0x72); db(0x63);
|
||||
db(0x65); db(0x00); db(0x6d); db(0x65); db(0x67); db(0x61); db(0x63); db(0x68);
|
||||
db(0x69); db(0x70); db(0x20); db(0x6d); db(0x65); db(0x6d); db(0x6f); db(0x72);
|
||||
db(0x79); db(0x00); db(0x46); db(0x69); db(0x6c); db(0x65); db(0x20); db(0x53);
|
||||
db(0x79); db(0x73); db(0x74); db(0x65); db(0x6d); db(0x00); db(0x55); db(0x41);
|
||||
db(0x45); db(0x20); db(0x73); db(0x68); db(0x65); db(0x6c); db(0x6c); db(0x20);
|
||||
db(0x65); db(0x78); db(0x65); db(0x63); db(0x75); db(0x74); db(0x65); db(0x00);
|
||||
db(0x55); db(0x41); db(0x45); db(0x20); db(0x62); db(0x6f); db(0x61); db(0x72);
|
||||
db(0x64); db(0x00); db(0x00); db(0x00); db(0x00); db(0x00); db(0x03); db(0xf2);
|
||||
|
||||
|
||||
2
ide.cpp
2
ide.cpp
@ -6,7 +6,7 @@
|
||||
* (c) 2006 - 2015 Toni Wilen
|
||||
*/
|
||||
|
||||
#define IDE_LOG 2
|
||||
#define IDE_LOG 1
|
||||
|
||||
#include "sysconfig.h"
|
||||
#include "sysdeps.h"
|
||||
|
||||
@ -70,6 +70,9 @@ extern void calltrap (uae_u32);
|
||||
extern void org (uae_u32);
|
||||
extern uae_u32 here (void);
|
||||
extern uaecptr makedatatable (uaecptr resid, uaecptr resname, uae_u8 type, uae_s8 priority, uae_u16 ver, uae_u16 rev);
|
||||
extern uae_u32 boot_rom_copy(TrapContext*, uaecptr, int);
|
||||
extern void add_rom_absolute(uaecptr addr);
|
||||
extern void save_rom_absolute(uaecptr addr);
|
||||
|
||||
extern void align (int);
|
||||
|
||||
|
||||
@ -135,7 +135,10 @@
|
||||
#define KBLED_CAPSLOCKM (1 << KBLED_CAPSLOCKB)
|
||||
#define KBLED_SCROLLLOCKM (1 << KBLED_SCROLLLOCKB)
|
||||
|
||||
enum aks { AKS_ENTERGUI = 0x200, AKS_SCREENSHOT_FILE, AKS_SCREENSHOT_CLIPBOARD, AKS_FREEZEBUTTON,
|
||||
enum aks { AKS_ENTERGUI = 0x200,
|
||||
AKS_SCREENSHOT_FILE,
|
||||
AKS_SCREENSHOT_CLIPBOARD,
|
||||
AKS_FREEZEBUTTON,
|
||||
AKS_FLOPPY0, AKS_FLOPPY1, AKS_FLOPPY2, AKS_FLOPPY3,
|
||||
AKS_EFLOPPY0, AKS_EFLOPPY1, AKS_EFLOPPY2, AKS_EFLOPPY3,
|
||||
AKS_TOGGLEDEFAULTSCREEN,
|
||||
|
||||
@ -42,6 +42,7 @@ void uae_ppc_free(void);
|
||||
void uae_ppc_hsync_handler(void);
|
||||
void uae_ppc_wakeup(void);
|
||||
void ppc_map_banks(uae_u32, uae_u32, const TCHAR*, void*, bool);
|
||||
void ppc_remap_bank(uae_u32 start, uae_u32 size, const TCHAR *name, void *addr);
|
||||
bool uae_self_is_ppc(void);
|
||||
void uae_ppc_wakeup_main(void);
|
||||
|
||||
|
||||
17
main.cpp
17
main.cpp
@ -160,14 +160,21 @@ void fixup_prefs_dimensions (struct uae_prefs *prefs)
|
||||
{
|
||||
fixup_prefs_dim2 (&prefs->gfx_size_fs);
|
||||
fixup_prefs_dim2 (&prefs->gfx_size_win);
|
||||
if (prefs->gfx_apmode[1].gfx_vsync)
|
||||
if (prefs->gfx_apmode[1].gfx_vsync > 0)
|
||||
prefs->gfx_apmode[1].gfx_vsyncmode = 1;
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
struct apmode *ap = &prefs->gfx_apmode[i];
|
||||
ap->gfx_vflip = 0;
|
||||
ap->gfx_strobo = false;
|
||||
if (ap->gfx_vsync) {
|
||||
if (ap->gfx_vsync < 0) {
|
||||
// adaptive sync
|
||||
ap->gfx_vsyncmode = 0;
|
||||
ap->gfx_vflip = 0;
|
||||
if (ap->gfx_backbuffers >= 2)
|
||||
ap->gfx_backbuffers = 1;
|
||||
ap->gfx_strobo = prefs->lightboost_strobo;
|
||||
} else if (ap->gfx_vsync > 0) {
|
||||
if (ap->gfx_vsyncmode) {
|
||||
// low latency vsync: no flip only if no-buffer
|
||||
if (ap->gfx_backbuffers >= 1)
|
||||
@ -569,7 +576,7 @@ void fixup_prefs (struct uae_prefs *p, bool userconfig)
|
||||
}
|
||||
for (int i = 0; i < MAX_RTG_BOARDS; i++) {
|
||||
if ((p->rtgboards[i].rtgmem_size > 0 && p->rtgboards[i].rtgmem_type == GFXBOARD_UAE_Z3) && p->address_space_24) {
|
||||
error_log (_T("UAEGFX RTG can't be used if address space is 24-bit."));
|
||||
error_log (_T("UAEGFX Z3 RTG can't be used if address space is 24-bit."));
|
||||
p->rtgboards[i].rtgmem_size = 0;
|
||||
err = 1;
|
||||
}
|
||||
@ -582,6 +589,10 @@ void fixup_prefs (struct uae_prefs *p, bool userconfig)
|
||||
err = 1;
|
||||
}
|
||||
#endif
|
||||
if (p->socket_emu && p->uaeboard >= 3) {
|
||||
write_log(_T("bsdsocket.library is not compatible with indirect UAE Boot ROM.\n"));
|
||||
p->socket_emu = 0;
|
||||
}
|
||||
|
||||
if (p->nr_floppies < 0 || p->nr_floppies > 4) {
|
||||
error_log (_T("Invalid number of floppies. Using 2."));
|
||||
|
||||
@ -4588,7 +4588,8 @@ static uae_u32 REGPARAM2 picasso_SetMemoryMode(TrapContext *ctx)
|
||||
|
||||
#define PUTABI(func) \
|
||||
if (ABI) \
|
||||
trap_put_long(ctx, ABI + func, here ());
|
||||
trap_put_long(ctx, ABI + func, here ()); \
|
||||
save_rom_absolute(ABI + func);
|
||||
|
||||
#define RTGCALL(func,funcdef,call) \
|
||||
PUTABI (func); \
|
||||
@ -4620,11 +4621,12 @@ static uae_u32 REGPARAM2 picasso_SetMemoryMode(TrapContext *ctx)
|
||||
|
||||
#define RTGNONE(func) \
|
||||
if (ABI) \
|
||||
trap_put_long(ctx, ABI + func, start);
|
||||
trap_put_long(ctx, ABI + func, start); \
|
||||
save_rom_absolute(ABI + func);
|
||||
|
||||
static void inituaegfxfuncs(TrapContext *ctx, uaecptr start, uaecptr ABI)
|
||||
{
|
||||
if (uaegfx_old)
|
||||
if (uaegfx_old || !ABI)
|
||||
return;
|
||||
org (start);
|
||||
|
||||
|
||||
@ -399,6 +399,7 @@
|
||||
#define IDS_NUMSG_NO_PPC 404
|
||||
#define IDS_NUMSG_UAEBOOTROM_PCC 405
|
||||
#define IDS_AUTOSCALE_OVERSCAN_BLANK 408
|
||||
#define IDS_SCREEN_ADAPTIVE_SYNC 409
|
||||
#define IDS_QS_MODELS 1000
|
||||
#define IDS_QS_MODEL_A500 1001
|
||||
#define IDS_QS_MODEL_A500P 1002
|
||||
|
||||
@ -2036,6 +2036,7 @@ BEGIN
|
||||
IDS_NUMSG_UAEBOOTROM_PCC
|
||||
"PPC native OS booted with incompatible UAE boot ROM enabled.\nSelect ROM panel ""New UAE (128k, ROM, Indirect)"" option\nor disable all UAE expansions.\n"
|
||||
IDS_AUTOSCALE_OVERSCAN_BLANK "Overscan blanking"
|
||||
IDS_SCREEN_ADAPTIVE_SYNC "Adaptive Sync"
|
||||
END
|
||||
|
||||
#endif // English resources
|
||||
|
||||
@ -20,12 +20,12 @@
|
||||
#define LANG_DLL_FULL_VERSION_MATCH 1
|
||||
|
||||
#if WINUAEPUBLICBETA
|
||||
#define WINUAEBETA _T("9")
|
||||
#define WINUAEBETA _T("10")
|
||||
#else
|
||||
#define WINUAEBETA _T("")
|
||||
#endif
|
||||
|
||||
#define WINUAEDATE MAKEBD(2016, 3, 19)
|
||||
#define WINUAEDATE MAKEBD(2016, 4, 9)
|
||||
|
||||
//#define WINUAEEXTRA _T("AmiKit Preview")
|
||||
//#define WINUAEEXTRA _T("Amiga Forever Edition")
|
||||
|
||||
@ -561,9 +561,9 @@ void getfilterrect2 (RECT *sr, RECT *dr, RECT *zr, int dst_width, int dst_height
|
||||
OffsetRect (zr, 0, (int)(-filter_vert_offset * ahs));
|
||||
|
||||
diff = dr->right - dr->left;
|
||||
filterxmult = diff / (dst_width * scale);
|
||||
filterxmult = diff / ((float)dst_width * scale);
|
||||
diff = dr->bottom - dr->top;
|
||||
filterymult = diff / (dst_height * scale);
|
||||
filterymult = diff / ((float)dst_height * scale);
|
||||
goto end;
|
||||
}
|
||||
|
||||
|
||||
@ -1106,7 +1106,7 @@ bool render_screen (bool immediate)
|
||||
}
|
||||
flushymin = 0;
|
||||
flushymax = currentmode->amiga_height;
|
||||
EnterCriticalSection (&screen_cs);
|
||||
gfx_lock();
|
||||
if (currentmode->flags & DM_D3D) {
|
||||
v = D3D_renderframe (immediate);
|
||||
} else if (currentmode->flags & DM_SWSCALE) {
|
||||
@ -1116,7 +1116,7 @@ bool render_screen (bool immediate)
|
||||
v = true;
|
||||
}
|
||||
render_ok = v;
|
||||
LeaveCriticalSection (&screen_cs);
|
||||
gfx_unlock();
|
||||
return render_ok;
|
||||
}
|
||||
|
||||
@ -1139,7 +1139,7 @@ static void doflipevent (int mode)
|
||||
bool show_screen_maybe (bool show)
|
||||
{
|
||||
struct apmode *ap = picasso_on ? &currprefs.gfx_apmode[1] : &currprefs.gfx_apmode[0];
|
||||
if (!ap->gfx_vflip || ap->gfx_vsyncmode == 0 || !ap->gfx_vsync) {
|
||||
if (!ap->gfx_vflip || ap->gfx_vsyncmode == 0 || ap->gfx_vsync <= 0) {
|
||||
if (show)
|
||||
show_screen (0);
|
||||
return false;
|
||||
@ -1155,30 +1155,59 @@ bool show_screen_maybe (bool show)
|
||||
|
||||
void show_screen_special (void)
|
||||
{
|
||||
EnterCriticalSection (&screen_cs);
|
||||
if (currentmode->flags & DM_D3D) {
|
||||
gfx_lock();
|
||||
D3D_showframe_special (1);
|
||||
gfx_unlock();
|
||||
}
|
||||
LeaveCriticalSection (&screen_cs);
|
||||
}
|
||||
static frame_time_t strobo_time;
|
||||
|
||||
static void CALLBACK blackinsertion_cb(
|
||||
UINT uTimerID,
|
||||
UINT uMsg,
|
||||
DWORD_PTR dwUser,
|
||||
DWORD_PTR dw1,
|
||||
DWORD_PTR dw2
|
||||
)
|
||||
{
|
||||
if (!screen_is_initialized)
|
||||
return;
|
||||
for (;;) {
|
||||
frame_time_t ct = read_processor_time();
|
||||
if ((int)strobo_time - (int)ct <= 0 || (int)strobo_time - (int)ct > vsynctimebase / 2) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!screen_is_initialized)
|
||||
return;
|
||||
show_screen_special();
|
||||
}
|
||||
|
||||
|
||||
void show_screen (int mode)
|
||||
{
|
||||
EnterCriticalSection (&screen_cs);
|
||||
gfx_lock();
|
||||
if (mode == 2) {
|
||||
if (currentmode->flags & DM_D3D) {
|
||||
D3D_showframe_special (1);
|
||||
}
|
||||
LeaveCriticalSection (&screen_cs);
|
||||
gfx_unlock();
|
||||
return;
|
||||
}
|
||||
if (!render_ok) {
|
||||
LeaveCriticalSection (&screen_cs);
|
||||
gfx_unlock();
|
||||
return;
|
||||
}
|
||||
if (currentmode->flags & DM_D3D) {
|
||||
D3D_showframe ();
|
||||
|
||||
struct apmode *ap = picasso_on ? &currprefs.gfx_apmode[1] : &currprefs.gfx_apmode[0];
|
||||
if (isfullscreen() > 0 && isvsync() == 0 && ap->gfx_strobo && ap->gfx_refreshrate > 80) {
|
||||
//if (isvsync() == 0 && ap->gfx_strobo) {
|
||||
int ms = (int)((1000 / 2) / vblank_hz) - 1;
|
||||
strobo_time = read_processor_time() + vsynctimebase / 2;
|
||||
timeSetEvent(ms, 0, blackinsertion_cb, NULL, TIME_ONESHOT | TIME_CALLBACK_FUNCTION);
|
||||
}
|
||||
D3D_showframe();
|
||||
#ifdef GFXFILTER
|
||||
} else if (currentmode->flags & DM_SWSCALE) {
|
||||
if (!dx_islost () && !picasso_on)
|
||||
@ -1188,7 +1217,7 @@ void show_screen (int mode)
|
||||
if (!dx_islost () && !picasso_on)
|
||||
DirectDraw_Flip (1);
|
||||
}
|
||||
LeaveCriticalSection (&screen_cs);
|
||||
gfx_unlock();
|
||||
render_ok = false;
|
||||
}
|
||||
|
||||
@ -1440,10 +1469,10 @@ uae_u8 *gfx_lock_picasso (bool fullupdate, bool doclear)
|
||||
if (rtg_locked) {
|
||||
return p;
|
||||
}
|
||||
EnterCriticalSection (&screen_cs);
|
||||
gfx_lock();
|
||||
p = gfx_lock_picasso2 (fullupdate);
|
||||
if (!p) {
|
||||
LeaveCriticalSection (&screen_cs);
|
||||
gfx_unlock();
|
||||
} else {
|
||||
rtg_locked = true;
|
||||
if (doclear) {
|
||||
@ -1460,7 +1489,7 @@ uae_u8 *gfx_lock_picasso (bool fullupdate, bool doclear)
|
||||
void gfx_unlock_picasso (bool dorender)
|
||||
{
|
||||
if (!rtg_locked)
|
||||
EnterCriticalSection (&screen_cs);
|
||||
gfx_lock();
|
||||
rtg_locked = false;
|
||||
if (currprefs.gfx_api) {
|
||||
if (dorender) {
|
||||
@ -1472,14 +1501,14 @@ void gfx_unlock_picasso (bool dorender)
|
||||
D3D_unlocktexture ();
|
||||
if (dorender) {
|
||||
if (D3D_renderframe (false)) {
|
||||
LeaveCriticalSection (&screen_cs);
|
||||
gfx_unlock();
|
||||
render_ok = true;
|
||||
show_screen_maybe (true);
|
||||
} else {
|
||||
LeaveCriticalSection (&screen_cs);
|
||||
gfx_unlock();
|
||||
}
|
||||
} else {
|
||||
LeaveCriticalSection (&screen_cs);
|
||||
gfx_unlock();
|
||||
}
|
||||
} else {
|
||||
DirectDraw_SurfaceUnlock ();
|
||||
@ -1491,7 +1520,7 @@ void gfx_unlock_picasso (bool dorender)
|
||||
p96_double_buffer_needs_flushing = 0;
|
||||
}
|
||||
}
|
||||
LeaveCriticalSection (&screen_cs);
|
||||
gfx_unlock();
|
||||
}
|
||||
}
|
||||
|
||||
@ -1730,6 +1759,7 @@ static int open_windows (bool mousecapture)
|
||||
|
||||
changevblankthreadmode (VBLANKTH_IDLE);
|
||||
|
||||
screen_is_initialized = 0;
|
||||
inputdevice_unacquire ();
|
||||
wait_keyrelease ();
|
||||
reset_sound ();
|
||||
@ -1737,7 +1767,9 @@ static int open_windows (bool mousecapture)
|
||||
|
||||
updatewinfsmode (&currprefs);
|
||||
#ifdef D3D
|
||||
gfx_lock();
|
||||
D3D_free (false);
|
||||
gfx_unlock();
|
||||
#endif
|
||||
#ifdef OPENGL
|
||||
OGL_free ();
|
||||
|
||||
@ -6824,13 +6824,20 @@ static void values_to_displaydlg (HWND hDlg)
|
||||
SendDlgItemMessage(hDlg, IDC_SCREENMODE_NATIVE2, CB_ADDSTRING, 0, (LPARAM)buffer);
|
||||
WIN32GUI_LoadUIString(IDS_SCREEN_VSYNC, buffer, sizeof buffer / sizeof (TCHAR));
|
||||
SendDlgItemMessage(hDlg, IDC_SCREENMODE_NATIVE2, CB_ADDSTRING, 0, (LPARAM)buffer);
|
||||
WIN32GUI_LoadUIString(IDS_SCREEN_VSYNC_AUTOSWITCH, buffer, sizeof buffer / sizeof (TCHAR));
|
||||
WIN32GUI_LoadUIString(IDS_SCREEN_VSYNC_AUTOSWITCH, buffer, sizeof buffer / sizeof(TCHAR));
|
||||
SendDlgItemMessage(hDlg, IDC_SCREENMODE_NATIVE2, CB_ADDSTRING, 0, (LPARAM)buffer);
|
||||
WIN32GUI_LoadUIString(IDS_SCREEN_ADAPTIVE_SYNC, buffer, sizeof buffer / sizeof(TCHAR));
|
||||
SendDlgItemMessage(hDlg, IDC_SCREENMODE_NATIVE2, CB_ADDSTRING, 0, (LPARAM)buffer);
|
||||
|
||||
SendDlgItemMessage(hDlg, IDC_SCREENMODE_NATIVE, CB_SETCURSEL,
|
||||
workprefs.gfx_apmode[0].gfx_fullscreen, 0);
|
||||
SendDlgItemMessage(hDlg, IDC_SCREENMODE_NATIVE2, CB_SETCURSEL,
|
||||
workprefs.gfx_apmode[0].gfx_vsync + (workprefs.gfx_apmode[0].gfx_vsyncmode || !workprefs.gfx_apmode[0].gfx_vsync ? 0 : 2), 0);
|
||||
v = workprefs.gfx_apmode[0].gfx_vsync;
|
||||
if (v < 0)
|
||||
v = 5;
|
||||
else if (v > 0) {
|
||||
v = v + (workprefs.gfx_apmode[0].gfx_vsyncmode || !v ? 0 : 2);
|
||||
}
|
||||
SendDlgItemMessage(hDlg, IDC_SCREENMODE_NATIVE2, CB_SETCURSEL, v, 0);
|
||||
|
||||
SendDlgItemMessage(hDlg, IDC_SCREENMODE_RTG, CB_RESETCONTENT, 0, 0);
|
||||
SendDlgItemMessage(hDlg, IDC_SCREENMODE_RTG2, CB_RESETCONTENT, 0, 0);
|
||||
@ -6851,14 +6858,20 @@ static void values_to_displaydlg (HWND hDlg)
|
||||
#endif
|
||||
WIN32GUI_LoadUIString(IDS_SCREEN_VSYNC2, buffer, sizeof buffer / sizeof (TCHAR));
|
||||
SendDlgItemMessage(hDlg, IDC_SCREENMODE_RTG2, CB_ADDSTRING, 0, (LPARAM)buffer);
|
||||
WIN32GUI_LoadUIString(IDS_SCREEN_ADAPTIVE_SYNC, buffer, sizeof buffer / sizeof(TCHAR));
|
||||
SendDlgItemMessage(hDlg, IDC_SCREENMODE_RTG2, CB_ADDSTRING, 0, (LPARAM)buffer);
|
||||
#if 0
|
||||
WIN32GUI_LoadUIString(IDS_SCREEN_VSYNC2_AUTOSWITCH, buffer, sizeof buffer / sizeof (TCHAR));
|
||||
SendDlgItemMessage(hDlg, IDC_SCREENMODE_RTG2, CB_ADDSTRING, 0, (LPARAM)buffer);
|
||||
#endif
|
||||
SendDlgItemMessage(hDlg, IDC_SCREENMODE_RTG, CB_SETCURSEL,
|
||||
workprefs.gfx_apmode[1].gfx_fullscreen, 0);
|
||||
SendDlgItemMessage(hDlg, IDC_SCREENMODE_RTG2, CB_SETCURSEL,
|
||||
workprefs.gfx_apmode[1].gfx_vsync, 0);
|
||||
v = workprefs.gfx_apmode[1].gfx_vsync;
|
||||
if (v < 0)
|
||||
v = 2;
|
||||
else if (v > 0)
|
||||
v = 1;
|
||||
SendDlgItemMessage(hDlg, IDC_SCREENMODE_RTG2, CB_SETCURSEL, v, 0);
|
||||
|
||||
SendDlgItemMessage(hDlg, IDC_LORES, CB_RESETCONTENT, 0, 0);
|
||||
WIN32GUI_LoadUIString(IDS_RES_LORES, buffer, sizeof buffer / sizeof (TCHAR));
|
||||
@ -7053,20 +7066,33 @@ static void values_from_displaydlg (HWND hDlg, UINT msg, WPARAM wParam, LPARAM l
|
||||
int oldvs = workprefs.gfx_apmode[0].gfx_vsync;
|
||||
workprefs.gfx_apmode[0].gfx_vsync = 0;
|
||||
workprefs.gfx_apmode[0].gfx_vsyncmode = 0;
|
||||
if (i > 0) {
|
||||
i--;
|
||||
workprefs.gfx_apmode[0].gfx_vsync = (i & 1) + 1;
|
||||
workprefs.gfx_apmode[0].gfx_vsyncmode = (i < 2) ? 1 : 0;
|
||||
if (i == 1) {
|
||||
workprefs.gfx_apmode[0].gfx_vsync = 1;
|
||||
workprefs.gfx_apmode[0].gfx_vsyncmode = 1;
|
||||
} else if (i == 2) {
|
||||
workprefs.gfx_apmode[0].gfx_vsync = 2;
|
||||
workprefs.gfx_apmode[0].gfx_vsyncmode = 1;
|
||||
} else if (i == 3) {
|
||||
workprefs.gfx_apmode[0].gfx_vsync = 1;
|
||||
workprefs.gfx_apmode[0].gfx_vsyncmode = 0;
|
||||
} else if (i == 4) {
|
||||
workprefs.gfx_apmode[0].gfx_vsync = 2;
|
||||
workprefs.gfx_apmode[0].gfx_vsyncmode = 0;
|
||||
} else if (i == 5) {
|
||||
workprefs.gfx_apmode[0].gfx_vsync = -1;
|
||||
workprefs.gfx_apmode[0].gfx_vsyncmode = 0;
|
||||
}
|
||||
|
||||
workprefs.gfx_apmode[1].gfx_fullscreen = SendDlgItemMessage (hDlg, IDC_SCREENMODE_RTG, CB_GETCURSEL, 0, 0);
|
||||
i = SendDlgItemMessage (hDlg, IDC_SCREENMODE_RTG2, CB_GETCURSEL, 0, 0);
|
||||
workprefs.gfx_apmode[1].gfx_vsync = 0;
|
||||
workprefs.gfx_apmode[1].gfx_vsyncmode = 0;
|
||||
if (i > 0) {
|
||||
i--;
|
||||
workprefs.gfx_apmode[1].gfx_vsync = (i & 1) + 1;
|
||||
if (i == 1) {
|
||||
workprefs.gfx_apmode[1].gfx_vsync = 1;
|
||||
workprefs.gfx_apmode[1].gfx_vsyncmode = 1;
|
||||
} else if (i == 2) {
|
||||
workprefs.gfx_apmode[1].gfx_vsync = -1;
|
||||
workprefs.gfx_apmode[1].gfx_vsyncmode = 0;
|
||||
}
|
||||
|
||||
bool updaterate = false, updateslider = false;
|
||||
|
||||
@ -1,4 +1,20 @@
|
||||
|
||||
Beta 10:
|
||||
|
||||
- if uaenet.device is online and packet(s) have arrived but there is no pending CMD_READ/CMD_READORPHANs:
|
||||
wait about 2s before dropping it, it is possible that multiple packets will arrive so quickly that Amiga-side
|
||||
TCP/IP stack don't have time to queue more read commands before packets get dropped.
|
||||
- uaenet.device stability fix.
|
||||
- Loading config with unplugged joystick or mouse inserted in either port: previous device was not autoselected.
|
||||
- Filter panel scaling mode active and mouse driver enabled: mouse got stuck in a corner in some situations.
|
||||
- Screenshot input event set to toggle-mode in Input panel: key/button press = create screenshots continuously
|
||||
every frame, following key/button press = stop automatic screenshots.
|
||||
- one genlinetoscr function (16-bit 4x horizontal stretch) used genlock function in non-genlock mode.
|
||||
- Adaptive Sync "vsync" mode added. Optimal setting designed for G-Sync/FreeSync monitors. Also allows 100/120Hz
|
||||
black frame insertion mode. Not very stable yet. (Don't try to use without adaptive sync hardware..)
|
||||
- 68040 MMU mode SR M-bit handling was missing. 68060 SR M-bit handling was not correct.
|
||||
- Disable bsdsocket.library if indirect UAE Boot ROM is enabled, it is not (yet?) compatible.
|
||||
|
||||
Beta 9:
|
||||
|
||||
- Fixed swapped audio channels if stereo separation was set (b1 cleanup missed code path)
|
||||
|
||||
38
ppc/ppc.cpp
38
ppc/ppc.cpp
@ -463,21 +463,21 @@ void uae_ppc_wakeup_main(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void ppc_map_region(PPCMemoryRegion *r)
|
||||
static void ppc_map_region(PPCMemoryRegion *r, bool dolock)
|
||||
{
|
||||
if (impl.in_cpu_thread() == false) {
|
||||
if (dolock && impl.in_cpu_thread() == false) {
|
||||
/* map_memory will acquire the qemu global lock, so we must ensure
|
||||
* the PPC CPU can finish any I/O requests and release the lock. */
|
||||
uae_ppc_spinlock_release();
|
||||
}
|
||||
impl.map_memory(r, -1);
|
||||
if (impl.in_cpu_thread() == false) {
|
||||
if (dolock && impl.in_cpu_thread() == false) {
|
||||
uae_ppc_spinlock_get();
|
||||
}
|
||||
free((void*)r->name);
|
||||
}
|
||||
|
||||
void ppc_map_banks(uae_u32 start, uae_u32 size, const TCHAR *name, void *addr, bool remove)
|
||||
static void ppc_map_banks2(uae_u32 start, uae_u32 size, const TCHAR *name, void *addr, bool remove, bool direct, bool dolock)
|
||||
{
|
||||
if (ppc_state == PPC_STATE_INACTIVE || !impl.map_memory)
|
||||
return;
|
||||
@ -489,29 +489,49 @@ void ppc_map_banks(uae_u32 start, uae_u32 size, const TCHAR *name, void *addr, b
|
||||
r.alias = remove ? 0xffffffff : 0;
|
||||
r.memory = addr;
|
||||
|
||||
if (r.start == rtarea_base && rtarea_base) {
|
||||
if (r.start == rtarea_base && rtarea_base && direct) {
|
||||
// Map first half directly, it contains code only.
|
||||
// Second half has dynamic data, it must not be direct mapped.
|
||||
r.memory = rtarea_bank.baseaddr;
|
||||
r.size = RTAREA_DATAREGION;
|
||||
ppc_map_region(&r);
|
||||
ppc_map_region(&r, dolock);
|
||||
r.start = start + RTAREA_DATAREGION;
|
||||
r.size = size - RTAREA_DATAREGION;
|
||||
r.name = ua(name);
|
||||
r.alias = remove ? 0xffffffff : 0;
|
||||
r.memory = NULL;
|
||||
} else if (r.start == uaeboard_base && uaeboard_base) {
|
||||
} else if (r.start == uaeboard_base && uaeboard_base && direct) {
|
||||
// Opposite here, first half indirect, second half direct.
|
||||
r.memory = NULL;
|
||||
r.size = UAEBOARD_DATAREGION_START;
|
||||
ppc_map_region(&r);
|
||||
ppc_map_region(&r, dolock);
|
||||
r.start = start + UAEBOARD_DATAREGION_START;
|
||||
r.size = UAEBOARD_DATAREGION_SIZE;
|
||||
r.name = ua(name);
|
||||
r.alias = remove ? 0xffffffff : 0;
|
||||
r.memory = uaeboard_bank.baseaddr + UAEBOARD_DATAREGION_START;
|
||||
}
|
||||
ppc_map_region(&r);
|
||||
ppc_map_region(&r, dolock);
|
||||
}
|
||||
void ppc_map_banks(uae_u32 start, uae_u32 size, const TCHAR *name, void *addr, bool remove)
|
||||
{
|
||||
ppc_map_banks2(start, size, name, addr, remove, true, true);
|
||||
}
|
||||
|
||||
void ppc_remap_bank(uae_u32 start, uae_u32 size, const TCHAR *name, void *addr)
|
||||
{
|
||||
if (ppc_state == PPC_STATE_INACTIVE || !impl.map_memory)
|
||||
return;
|
||||
|
||||
if (impl.in_cpu_thread() == false) {
|
||||
uae_ppc_spinlock_release();
|
||||
}
|
||||
ppc_map_banks2(start, size, name, addr, true, false, false);
|
||||
ppc_map_banks2(start, size, name, addr, false, true, false);
|
||||
if (impl.in_cpu_thread() == false) {
|
||||
uae_ppc_spinlock_get();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void uae_ppc_get_model(const TCHAR **model, uint32_t *hid1)
|
||||
|
||||
416
traps.cpp
416
traps.cpp
@ -306,6 +306,216 @@ static void *trap_thread (void *arg)
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Set up extended trap context and call handler function
|
||||
*/
|
||||
static void trap_HandleExtendedTrap(TrapHandler handler_func, int has_retval)
|
||||
{
|
||||
struct TrapContext *context = xcalloc(TrapContext, 1);
|
||||
|
||||
if (context) {
|
||||
uae_sem_init(&context->switch_to_trap_sem, 0, 0);
|
||||
uae_sem_init(&context->switch_to_emu_sem, 0, 0);
|
||||
|
||||
context->trap_handler = handler_func;
|
||||
context->trap_has_retval = has_retval;
|
||||
|
||||
//context->saved_regs = regs;
|
||||
copytocpucontext(&context->saved_regs);
|
||||
|
||||
/* Start thread to handle new trap context. */
|
||||
uae_start_thread_fast(trap_thread, (void *)context, &context->thread);
|
||||
|
||||
/* Switch to trap context to begin execution of
|
||||
* trap handler function.
|
||||
*/
|
||||
uae_sem_post(&context->switch_to_trap_sem);
|
||||
|
||||
/* Wait for trap context to switch back to us.
|
||||
*
|
||||
* It'll do this when the trap handler is done - or when
|
||||
* the handler wants to call 68k code. */
|
||||
uae_sem_wait(&context->switch_to_emu_sem);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Call m68k function from an extended trap handler
|
||||
*
|
||||
* This function is to be called from the trap context.
|
||||
*/
|
||||
|
||||
static uae_u32 call_hardware_trap_back(TrapContext *ctx, uae_u16 cmd, uae_u32 p1, uae_u32 p2, uae_u32 p3, uae_u32 p4);
|
||||
|
||||
static uae_u32 trap_Call68k(TrapContext *ctx, uaecptr func_addr)
|
||||
{
|
||||
if (ctx->host_trap_data) {
|
||||
|
||||
return call_hardware_trap_back(ctx, 10, func_addr, 0, 0, 0);
|
||||
|
||||
} else {
|
||||
|
||||
/* Enter critical section - only one trap at a time, please! */
|
||||
uae_sem_wait(&trap_mutex);
|
||||
current_context = ctx;
|
||||
|
||||
/* Don't allow an interrupt and thus potentially another
|
||||
* trap to be invoked while we hold the above mutex.
|
||||
* This is probably just being paranoid. */
|
||||
regs.intmask = 7;
|
||||
|
||||
/* Set up function call address. */
|
||||
ctx->call68k_func_addr = func_addr;
|
||||
|
||||
/* Set PC to address of 68k call trap, so that it will be
|
||||
* executed when emulator context resumes. */
|
||||
m68k_setpc(m68k_call_trapaddr);
|
||||
fill_prefetch();
|
||||
|
||||
/* Switch to emulator context. */
|
||||
uae_sem_post(&ctx->switch_to_emu_sem);
|
||||
|
||||
/* Wait for 68k call return handler to switch back to us. */
|
||||
uae_sem_wait(&ctx->switch_to_trap_sem);
|
||||
|
||||
/* End critical section. */
|
||||
uae_sem_post(&trap_mutex);
|
||||
|
||||
/* Get return value from 68k function called. */
|
||||
return ctx->call68k_retval;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Handles the emulator's side of a 68k call (from an extended trap)
|
||||
*/
|
||||
static uae_u32 REGPARAM2 m68k_call_handler(TrapContext *dummy_ctx)
|
||||
{
|
||||
TrapContext *context = current_context;
|
||||
|
||||
uae_u32 sp;
|
||||
|
||||
sp = m68k_areg(regs, 7);
|
||||
|
||||
/* Push address of trap context on 68k stack. This is
|
||||
* so the return trap can find this context. */
|
||||
sp -= sizeof(void *);
|
||||
put_pointer(sp, context);
|
||||
|
||||
/* Push addr to return handler trap on 68k stack.
|
||||
* When the called m68k function does an RTS, the CPU will pull this
|
||||
* address off the stack and so call the return handler. */
|
||||
sp -= 4;
|
||||
put_long(sp, m68k_return_trapaddr);
|
||||
|
||||
m68k_areg(regs, 7) = sp;
|
||||
|
||||
/* Set PC to address of 68k function to call. */
|
||||
m68k_setpc(context->call68k_func_addr);
|
||||
fill_prefetch();
|
||||
|
||||
/* End critical section: allow other traps run. */
|
||||
uae_sem_post(&trap_mutex);
|
||||
|
||||
/* Restore interrupts. */
|
||||
regs.intmask = context->saved_regs.intmask;
|
||||
|
||||
/* Dummy return value. */
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Handles the return from a 68k call at the emulator's side.
|
||||
*/
|
||||
static uae_u32 REGPARAM2 m68k_return_handler(TrapContext *dummy_ctx)
|
||||
{
|
||||
TrapContext *context;
|
||||
uae_u32 sp;
|
||||
|
||||
/* One trap returning at a time, please! */
|
||||
uae_sem_wait(&trap_mutex);
|
||||
|
||||
/* Get trap context from 68k stack. */
|
||||
sp = m68k_areg(regs, 7);
|
||||
context = (TrapContext *)get_pointer(sp);
|
||||
sp += sizeof(void *);
|
||||
m68k_areg(regs, 7) = sp;
|
||||
|
||||
/* Get return value from the 68k call. */
|
||||
context->call68k_retval = m68k_dreg(regs, 0);
|
||||
|
||||
/* Switch back to trap context. */
|
||||
uae_sem_post(&context->switch_to_trap_sem);
|
||||
|
||||
/* Wait for trap context to switch back to us.
|
||||
*
|
||||
* It'll do this when the trap handler is done - or when
|
||||
* the handler wants to call another 68k function. */
|
||||
uae_sem_wait(&context->switch_to_emu_sem);
|
||||
|
||||
/* Dummy return value. */
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Handles completion of an extended trap and passes
|
||||
* return value from trap function to 68k space.
|
||||
*/
|
||||
static uae_u32 REGPARAM2 exit_trap_handler(TrapContext *dummy_ctx)
|
||||
{
|
||||
TrapContext *context = current_context;
|
||||
|
||||
/* Wait for trap context thread to exit. */
|
||||
uae_wait_thread(context->thread);
|
||||
|
||||
/* Restore 68k state saved at trap entry. */
|
||||
//regs = context->saved_regs;
|
||||
copyfromcpucontext(&context->saved_regs, context->saved_regs.pc);
|
||||
|
||||
/* If trap is supposed to return a value, then store
|
||||
* return value in D0. */
|
||||
if (context->trap_has_retval)
|
||||
m68k_dreg(regs, 0) = context->trap_retval;
|
||||
|
||||
uae_sem_destroy(&context->switch_to_trap_sem);
|
||||
uae_sem_destroy(&context->switch_to_emu_sem);
|
||||
|
||||
xfree(context);
|
||||
|
||||
/* End critical section */
|
||||
uae_sem_post(&trap_mutex);
|
||||
|
||||
/* Dummy return value. */
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Call a 68k library function from extended trap.
|
||||
*/
|
||||
uae_u32 CallLib(TrapContext *ctx, uaecptr base, uae_s16 offset)
|
||||
{
|
||||
uae_u32 retval;
|
||||
uaecptr olda6 = trap_get_areg(ctx, 6);
|
||||
|
||||
trap_set_areg(ctx, 6, base);
|
||||
retval = trap_Call68k(ctx, base + offset);
|
||||
trap_set_areg(ctx, 6, olda6);
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
/*
|
||||
* Call 68k function from extended trap.
|
||||
*/
|
||||
uae_u32 CallFunc(TrapContext *ctx, uaecptr func)
|
||||
{
|
||||
return trap_Call68k(ctx, func);
|
||||
}
|
||||
|
||||
|
||||
/* UAE board traps */
|
||||
|
||||
#define TRAP_THREADS (RTAREA_TRAP_DATA_NUM + RTAREA_TRAP_DATA_SEND_NUM)
|
||||
@ -585,212 +795,6 @@ TrapContext *alloc_host_thread_trap_context(void)
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Set up extended trap context and call handler function
|
||||
*/
|
||||
static void trap_HandleExtendedTrap (TrapHandler handler_func, int has_retval)
|
||||
{
|
||||
struct TrapContext *context = xcalloc (TrapContext, 1);
|
||||
|
||||
if (context) {
|
||||
uae_sem_init (&context->switch_to_trap_sem, 0, 0);
|
||||
uae_sem_init (&context->switch_to_emu_sem, 0, 0);
|
||||
|
||||
context->trap_handler = handler_func;
|
||||
context->trap_has_retval = has_retval;
|
||||
|
||||
//context->saved_regs = regs;
|
||||
copytocpucontext (&context->saved_regs);
|
||||
|
||||
/* Start thread to handle new trap context. */
|
||||
uae_start_thread_fast (trap_thread, (void *)context, &context->thread);
|
||||
|
||||
/* Switch to trap context to begin execution of
|
||||
* trap handler function.
|
||||
*/
|
||||
uae_sem_post (&context->switch_to_trap_sem);
|
||||
|
||||
/* Wait for trap context to switch back to us.
|
||||
*
|
||||
* It'll do this when the trap handler is done - or when
|
||||
* the handler wants to call 68k code. */
|
||||
uae_sem_wait (&context->switch_to_emu_sem);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Call m68k function from an extended trap handler
|
||||
*
|
||||
* This function is to be called from the trap context.
|
||||
*/
|
||||
static uae_u32 trap_Call68k(TrapContext *ctx, uaecptr func_addr)
|
||||
{
|
||||
if (ctx->host_trap_data) {
|
||||
|
||||
return call_hardware_trap_back(ctx, 10, func_addr, 0, 0, 0);
|
||||
|
||||
} else {
|
||||
|
||||
/* Enter critical section - only one trap at a time, please! */
|
||||
uae_sem_wait (&trap_mutex);
|
||||
current_context = ctx;
|
||||
|
||||
/* Don't allow an interrupt and thus potentially another
|
||||
* trap to be invoked while we hold the above mutex.
|
||||
* This is probably just being paranoid. */
|
||||
regs.intmask = 7;
|
||||
|
||||
/* Set up function call address. */
|
||||
ctx->call68k_func_addr = func_addr;
|
||||
|
||||
/* Set PC to address of 68k call trap, so that it will be
|
||||
* executed when emulator context resumes. */
|
||||
m68k_setpc (m68k_call_trapaddr);
|
||||
fill_prefetch ();
|
||||
|
||||
/* Switch to emulator context. */
|
||||
uae_sem_post (&ctx->switch_to_emu_sem);
|
||||
|
||||
/* Wait for 68k call return handler to switch back to us. */
|
||||
uae_sem_wait (&ctx->switch_to_trap_sem);
|
||||
|
||||
/* End critical section. */
|
||||
uae_sem_post (&trap_mutex);
|
||||
|
||||
/* Get return value from 68k function called. */
|
||||
return ctx->call68k_retval;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Handles the emulator's side of a 68k call (from an extended trap)
|
||||
*/
|
||||
static uae_u32 REGPARAM2 m68k_call_handler (TrapContext *dummy_ctx)
|
||||
{
|
||||
TrapContext *context = current_context;
|
||||
|
||||
uae_u32 sp;
|
||||
|
||||
sp = m68k_areg (regs, 7);
|
||||
|
||||
/* Push address of trap context on 68k stack. This is
|
||||
* so the return trap can find this context. */
|
||||
sp -= sizeof (void *);
|
||||
put_pointer (sp, context);
|
||||
|
||||
/* Push addr to return handler trap on 68k stack.
|
||||
* When the called m68k function does an RTS, the CPU will pull this
|
||||
* address off the stack and so call the return handler. */
|
||||
sp -= 4;
|
||||
put_long (sp, m68k_return_trapaddr);
|
||||
|
||||
m68k_areg (regs, 7) = sp;
|
||||
|
||||
/* Set PC to address of 68k function to call. */
|
||||
m68k_setpc (context->call68k_func_addr);
|
||||
fill_prefetch ();
|
||||
|
||||
/* End critical section: allow other traps run. */
|
||||
uae_sem_post (&trap_mutex);
|
||||
|
||||
/* Restore interrupts. */
|
||||
regs.intmask = context->saved_regs.intmask;
|
||||
|
||||
/* Dummy return value. */
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Handles the return from a 68k call at the emulator's side.
|
||||
*/
|
||||
static uae_u32 REGPARAM2 m68k_return_handler (TrapContext *dummy_ctx)
|
||||
{
|
||||
TrapContext *context;
|
||||
uae_u32 sp;
|
||||
|
||||
/* One trap returning at a time, please! */
|
||||
uae_sem_wait (&trap_mutex);
|
||||
|
||||
/* Get trap context from 68k stack. */
|
||||
sp = m68k_areg (regs, 7);
|
||||
context = (TrapContext *)get_pointer (sp);
|
||||
sp += sizeof (void *);
|
||||
m68k_areg (regs, 7) = sp;
|
||||
|
||||
/* Get return value from the 68k call. */
|
||||
context->call68k_retval = m68k_dreg (regs, 0);
|
||||
|
||||
/* Switch back to trap context. */
|
||||
uae_sem_post (&context->switch_to_trap_sem);
|
||||
|
||||
/* Wait for trap context to switch back to us.
|
||||
*
|
||||
* It'll do this when the trap handler is done - or when
|
||||
* the handler wants to call another 68k function. */
|
||||
uae_sem_wait (&context->switch_to_emu_sem);
|
||||
|
||||
/* Dummy return value. */
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Handles completion of an extended trap and passes
|
||||
* return value from trap function to 68k space.
|
||||
*/
|
||||
static uae_u32 REGPARAM2 exit_trap_handler (TrapContext *dummy_ctx)
|
||||
{
|
||||
TrapContext *context = current_context;
|
||||
|
||||
/* Wait for trap context thread to exit. */
|
||||
uae_wait_thread (context->thread);
|
||||
|
||||
/* Restore 68k state saved at trap entry. */
|
||||
//regs = context->saved_regs;
|
||||
copyfromcpucontext (&context->saved_regs, context->saved_regs.pc);
|
||||
|
||||
/* If trap is supposed to return a value, then store
|
||||
* return value in D0. */
|
||||
if (context->trap_has_retval)
|
||||
m68k_dreg (regs, 0) = context->trap_retval;
|
||||
|
||||
uae_sem_destroy (&context->switch_to_trap_sem);
|
||||
uae_sem_destroy (&context->switch_to_emu_sem);
|
||||
|
||||
xfree (context);
|
||||
|
||||
/* End critical section */
|
||||
uae_sem_post (&trap_mutex);
|
||||
|
||||
/* Dummy return value. */
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Call a 68k library function from extended trap.
|
||||
*/
|
||||
uae_u32 CallLib(TrapContext *ctx, uaecptr base, uae_s16 offset)
|
||||
{
|
||||
uae_u32 retval;
|
||||
uaecptr olda6 = trap_get_areg(ctx, 6);
|
||||
|
||||
trap_set_areg(ctx, 6, base);
|
||||
retval = trap_Call68k(ctx, base + offset);
|
||||
trap_set_areg(ctx, 6, olda6);
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
/*
|
||||
* Call 68k function from extended trap.
|
||||
*/
|
||||
uae_u32 CallFunc(TrapContext *ctx, uaecptr func)
|
||||
{
|
||||
return trap_Call68k(ctx, func);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Initialize trap mechanism.
|
||||
*/
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user