void uaeres_install (void) { uae_u32 functable, datatable; uae_u32 initcode, getfunc; TCHAR tmp[100]; _stprintf (tmp, L"UAE resource %d.%d.%d", UAEMAJOR, UAEMINOR, UAESUBREV); res_name = ds (L"uae.resource"); res_id = ds (tmp); /* initcode */ initcode = here (); calltrap (deftrap (res_initcode)); dw (RTS); /* getfunc */ getfunc = here (); calltrap (deftrap (res_getfunc)); dw (RTS); /* FuncTable */ functable = here (); dl (getfunc); /* getfunc */ dl (0xFFFFFFFF); /* end of table */ /* DataTable */ datatable = here (); dw (0xE000); /* INITBYTE */ dw (0x0008); /* LN_TYPE */ dw (0x0800); /* NT_RESOURCE */ dw (0xC000); /* INITLONG */ dw (0x000A); /* LN_NAME */ dl (res_name); dw (0xE000); /* INITBYTE */ dw (0x000E); /* LIB_FLAGS */ dw (0x0600); /* LIBF_SUMUSED | LIBF_CHANGED */ dw (0xD000); /* INITWORD */ dw (0x0014); /* LIB_VERSION */ dw (UAEMAJOR); dw (0xD000); /* INITWORD */ dw (0x0016); /* LIB_REVISION */ dw (UAEMINOR); dw (0xC000); /* INITLONG */ dw (0x0018); /* LIB_IDSTRING */ dl (res_id); dw (0x0000); /* end of table */ res_init = here (); dl (SIZEOF_LIBRARY + 16); /* size of device base */ dl (functable); dl (datatable); dl (initcode); }
void rtarea_init (void) { rtarea_init_mem (); #ifdef USE_AUTOCONFIG uae_u32 a; char uaever[32]; snprintf (uaever, 32, "uae-%d.%d.%d", UAEMAJOR, UAEMINOR, UAESUBREV); EXPANSION_uaeversion = ds (uaever); EXPANSION_explibname = ds ("expansion.library"); EXPANSION_doslibname = ds ("dos.library"); EXPANSION_uaedevname = ds ("uae.device"); deftrap (NULL); /* Generic emulator trap */ lasttrap = 0; EXPANSION_nullfunc = here (); calltrap (deftrap (nullfunc)); dw (RTS); a = here(); /* Standard "return from 68k mode" trap */ org (RTAREA_BASE + 0xFF00); calltrap (deftrap2 (m68k_mode_return, TRAPFLAG_NO_RETVAL, "")); org (RTAREA_BASE + 0xFF80); calltrap (deftrap2 (getchipmemsize, TRAPFLAG_DORET, "")); org (RTAREA_BASE + 0xFF10); calltrap (deftrap2 (uae_puts, TRAPFLAG_NO_RETVAL, "")); dw (RTS); org (a); #endif filesys_install_code (); }
void uaeserialdev_install (void) { uint32_t functable, datatable; uint32_t initcode, openfunc, closefunc, expungefunc; uint32_t beginiofunc, abortiofunc; if (!currprefs.uaeserial) return; ROM_uaeserialdev_resname = ds (_T("uaeserial.device")); ROM_uaeserialdev_resid = ds (_T("UAE serial.device 0.1")); /* initcode */ initcode = here (); calltrap (deftrap (dev_init)); dw (RTS); /* Open */ openfunc = here (); calltrap (deftrap (dev_open)); dw (RTS); /* Close */ closefunc = here (); calltrap (deftrap (dev_close)); dw (RTS); /* Expunge */ expungefunc = here (); calltrap (deftrap (dev_expunge)); dw (RTS); /* BeginIO */ beginiofunc = here (); calltrap (deftrap (dev_beginio)); dw (RTS); /* AbortIO */ abortiofunc = here (); calltrap (deftrap (dev_abortio)); dw (RTS); /* FuncTable */ functable = here (); dl (openfunc); /* Open */ dl (closefunc); /* Close */ dl (expungefunc); /* Expunge */ dl (EXPANSION_nullfunc); /* Null */ dl (beginiofunc); /* BeginIO */ dl (abortiofunc); /* AbortIO */ dl (0xFFFFFFFFul); /* end of table */ /* DataTable */ datatable = here (); dw (0xE000); /* INITBYTE */ dw (0x0008); /* LN_TYPE */ dw (0x0300); /* NT_DEVICE */ dw (0xC000); /* INITLONG */ dw (0x000A); /* LN_NAME */ dl (ROM_uaeserialdev_resname); dw (0xE000); /* INITBYTE */ dw (0x000E); /* LIB_FLAGS */ dw (0x0600); /* LIBF_SUMUSED | LIBF_CHANGED */ dw (0xD000); /* INITWORD */ dw (0x0014); /* LIB_VERSION */ dw (0x0004); /* 0.4 */ dw (0xD000); /* INITWORD */ dw (0x0016); /* LIB_REVISION */ dw (0x0000); dw (0xC000); /* INITLONG */ dw (0x0018); /* LIB_IDSTRING */ dl (ROM_uaeserialdev_resid); dw (0x0000); /* end of table */ ROM_uaeserialdev_init = here (); dl (0x00000100); /* size of device base */ dl (functable); dl (datatable); dl (initcode); nscmd_cmd = here (); dw (NSCMD_DEVICEQUERY); dw (CMD_RESET); dw (CMD_READ); dw (CMD_WRITE); dw (CMD_CLEAR); dw (CMD_START); dw (CMD_STOP); dw (CMD_FLUSH); dw (SDCMD_BREAK); dw (SDCMD_SETPARAMS); dw (SDCMD_QUERY); dw (0); }
void hardfile_install (void) { uae_u32 functable, datatable; uae_u32 initcode, openfunc, closefunc, expungefunc; uae_u32 beginiofunc, abortiofunc; ROM_hardfile_resname = ds ("uaehf.device"); ROM_hardfile_resid = ds ("UAE hardfile.device 0.2"); /* initcode */ initcode = filesys_initcode; /* Open */ openfunc = here (); calltrap (deftrap (hardfile_open)); dw (RTS); /* Close */ closefunc = here (); calltrap (deftrap (hardfile_close)); dw (RTS); /* Expunge */ expungefunc = here (); calltrap (deftrap (hardfile_expunge)); dw (RTS); /* BeginIO */ beginiofunc = here (); calltrap (deftrap (hardfile_beginio)); dw (0x48E7); dw (0x8002); /* movem.l d0/a6,-(a7) */ dw (0x0829); dw (0); dw (30); /* btst #0,30(a1) */ dw (0x6608); /* bne.b +8 */ dw (0x2C78); dw (0x0004); /* move.l 4,a6 */ dw (0x4EAE); dw (-378); /* jsr ReplyMsg(a6) */ dw (0x4CDF); dw (0x4001); /* movem.l (a7)+,d0/a6 */ dw (RTS); /* AbortIO */ abortiofunc = here (); calltrap (deftrap (hardfile_abortio)); dw (RTS); /* FuncTable */ functable = here (); dl (openfunc); /* Open */ dl (closefunc); /* Close */ dl (expungefunc); /* Expunge */ dl (EXPANSION_nullfunc); /* Null */ dl (beginiofunc); /* BeginIO */ dl (abortiofunc); /* AbortIO */ dl (0xFFFFFFFFul); /* end of table */ /* DataTable */ datatable = here (); dw (0xE000); /* INITBYTE */ dw (0x0008); /* LN_TYPE */ dw (0x0300); /* NT_DEVICE */ dw (0xC000); /* INITLONG */ dw (0x000A); /* LN_NAME */ dl (ROM_hardfile_resname); dw (0xE000); /* INITBYTE */ dw (0x000E); /* LIB_FLAGS */ dw (0x0600); /* LIBF_SUMUSED | LIBF_CHANGED */ dw (0xD000); /* INITWORD */ dw (0x0014); /* LIB_VERSION */ dw (0x0004); /* 0.4 */ dw (0xD000); dw (0x0016); /* LIB_REVISION */ dw (0x0000); dw (0xC000); dw (0x0018); /* LIB_IDSTRING */ dl (ROM_hardfile_resid); dw (0x0000); /* end of table */ ROM_hardfile_init = here (); dl (0x00000100); /* ??? */ dl (functable); dl (datatable); dl (initcode); }
void scsidev_install (void) { uae_u32 functable, datatable; uae_u32 initcode, openfunc, closefunc, expungefunc; uae_u32 beginiofunc, abortiofunc; if (!currprefs.scsi) return; if (log_scsi) write_log ("scsidev_install(): 0x%x\n", here ()); ROM_scsidev_resname = ds (UAEDEV_SCSI); ROM_scsidev_resid = ds ("UAE scsi.device 0.2"); /* initcode */ initcode = here (); calltrap (deftrap (dev_init)); dw (RTS); /* Open */ openfunc = here (); calltrap (deftrap (dev_open)); dw (RTS); /* Close */ closefunc = here (); calltrap (deftrap (dev_close)); dw (RTS); /* Expunge */ expungefunc = here (); calltrap (deftrap (dev_expunge)); dw (RTS); /* BeginIO */ beginiofunc = here (); calltrap (deftrap (dev_beginio)); dw (RTS); /* AbortIO */ abortiofunc = here (); calltrap (deftrap (dev_abortio)); dw (RTS); /* FuncTable */ functable = here (); dl (openfunc); /* Open */ dl (closefunc); /* Close */ dl (expungefunc); /* Expunge */ dl (EXPANSION_nullfunc); /* Null */ dl (beginiofunc); /* BeginIO */ dl (abortiofunc); /* AbortIO */ dl (0xFFFFFFFFul); /* end of table */ /* DataTable */ datatable = here (); dw (0xE000); /* INITBYTE */ dw (0x0008); /* LN_TYPE */ dw (0x0300); /* NT_DEVICE */ dw (0xC000); /* INITLONG */ dw (0x000A); /* LN_NAME */ dl (ROM_scsidev_resname); dw (0xE000); /* INITBYTE */ dw (0x000E); /* LIB_FLAGS */ dw (0x0600); /* LIBF_SUMUSED | LIBF_CHANGED */ dw (0xD000); /* INITWORD */ dw (0x0014); /* LIB_VERSION */ dw (0x0004); /* 0.4 */ dw (0xD000); /* INITWORD */ dw (0x0016); /* LIB_REVISION */ dw (0x0000); /* end of table already ??? */ dw (0xC000); /* INITLONG */ dw (0x0018); /* LIB_IDSTRING */ dl (ROM_scsidev_resid); dw (0x0000); /* end of table */ ROM_scsidev_init = here (); dl (0x00000100); /* size of device base */ dl (functable); dl (datatable); dl (initcode); diskdev_install (); }