#include "insignia.h" #include "host_def.h" /* * VPC-XT Revision 1.0 * * Title : bios * * Description : Vector of BOP calls which map to appropriate BIOS functions * * Author : Rod MacGregor * * Notes : hard disk int (0D) and command_check (B0) added DAR * * Mods: (r2.14): Replaced the entry against BOP 18 (not_supported()) * with the dummy routine rom_basic(). * */ #ifdef SCCSID static char SccsID[]="@(#)bios.c 1.64 06/28/95 Copyright Insignia Solutions Ltd."; #endif #ifdef SEGMENTATION /* * The following #include specifies the code segment into which this * module will by placed by the MPW C compiler on the Mac II running * MultiFinder. */ #include "BIOS_SUPPORT.seg" #endif /* * O/S include files. */ #include #include TypesH /* * SoftPC include files */ #include "xt.h" #include "bios.h" #include CpuH #include "host.h" #include "cntlbop.h" #include "host_hfx.h" #include "hfx.h" #include "virtual.h" #include "gispsvga.h" #ifdef SWIN_HFX #include "winfiles.h" #endif #ifdef RDCHK extern void get_lar(); #endif /* RDCHK */ #ifdef CPU_40_STYLE #define SWAP_INSTANCE virtual_swap_instance() #else #define SWAP_INSTANCE #endif /* Traps for BOP's requiring virtualisation. */ #ifdef SWIN_HFX LOCAL void v_SwinRedirector IFN0() { SWAP_INSTANCE; SwinRedirector(); } #endif LOCAL void v_mouse_install1 IFN0() { SWAP_INSTANCE; mouse_install1(); } LOCAL void v_mouse_install2 IFN0() { SWAP_INSTANCE; mouse_install2(); } LOCAL void v_mouse_io_interrupt IFN0() { SWAP_INSTANCE; mouse_io_interrupt(); } LOCAL void v_mouse_io_language IFN0() { SWAP_INSTANCE; mouse_io_language(); } LOCAL void v_mouse_video_io IFN0() { SWAP_INSTANCE; mouse_video_io(); } LOCAL void v_mouse_int1 IFN0() { SWAP_INSTANCE; mouse_int1(); } LOCAL void v_mouse_int2 IFN0() { SWAP_INSTANCE; mouse_int2(); } #if defined(XWINDOW) || defined(NTVDM) LOCAL void v_host_mouse_install1 IFN0() {SWAP_INSTANCE; host_mouse_install1(); } LOCAL void v_host_mouse_install2 IFN0() {SWAP_INSTANCE; host_mouse_install2(); } #endif /* XWINDOW || NTVDM */ #ifdef HFX LOCAL void v_test_for_us IFN0() { SWAP_INSTANCE; test_for_us(); } LOCAL void v_redirector IFN0() { SWAP_INSTANCE; redirector(); } #endif /* HFX */ LOCAL void v_mouse_EM_callback IFN0() { SWAP_INSTANCE; mouse_EM_callback(); } #ifdef PROFILE extern void dump_profile IPT0(); extern void reset_profile IPT0(); #endif #ifdef SIGNAL_PROFILING extern void Start_sigprof IPT0(); extern void Stop_sigprof IPT0(); extern void Dump_sigprof IPT0(); #endif #if !defined(PROD) && defined(CPU_40_STYLE) extern void FmDebugBop IPT0(); #endif #if defined(CPU_40_STYLE) && !defined(NTVDM) extern void VDD_Func IPT0(); #endif #ifndef PROD extern void trace_msg_bop IPT0(); extern void dvr_bop_trace IPT0(); #endif #ifdef NTVDM void rtc_int(void); #endif #ifndef MAC_LIKE void (*BIOS[])() = { reset, /* BOP 00 */ dummy_int, /* BOP 01 */ unexpected_int, /* BOP 02 */ #ifdef DOS_APP_LIC DOS_AppLicense, /* BOP 03 */ #else illegal_bop, /* BOP 03 */ #endif /* DOS_APP_LIC */ #ifdef WDCTRL_BOP wdctrl_bop, /* BOP 04 */ #else /* WDCTRL_BOP */ illegal_bop, /* BOP 04 */ #endif /* WDCTRL_BOP */ #if !defined(PROD) && defined(CPU_40_STYLE) FmDebugBop, /* BOP 05 */ #else illegal_bop, /* BOP 05 */ #endif /* !PROD && CPU_40_STYLE */ illegal_op_int, /* BOP 06 */ illegal_dvr_bop,/* BOP 07 */ #if defined(NTVDM) || defined(CPU_40_STYLE) illegal_bop, /* BOP 08 */ #else /* !(NTVDM || CPU_40_STYLE) */ time_int, /* BOP 08 */ #endif /* !(NTVDM || CPU_40_STYLE) */ keyboard_int, /* BOP 09 */ illegal_bop, /* BOP 0A */ illegal_bop, /* BOP 0B */ illegal_bop, /* BOP 0C */ /* disk interrupts on vector 76 .. no BOP required though! * diskbios() uses re-entrant CPU to get disk interrupt * and the disk ISR is pure Intel assembler (with no BOPs) */ illegal_bop, /* BOP 0D */ diskette_int, /* BOP 0E */ illegal_bop, /* BOP 0F */ video_io, /* BOP 10 */ equipment, /* BOP 11 */ memory_size, /* BOP 12 */ disk_io, /* BOP 13 */ rs232_io, /* BOP 14 */ cassette_io, /* BOP 15 */ keyboard_io, /* BOP 16 */ printer_io, /* BOP 17 */ rom_basic, /* BOP 18 */ #ifdef NTVDM /* NT port, kill vdm instance, instead of warmbooting */ terminate, #else bootstrap, /* BOP 19 */ #endif time_of_day, /* BOP 1A */ illegal_bop, /* BOP 1B */ illegal_bop, /* BOP 1C */ kb_idle_poll, /* BOP 1D */ illegal_bop, /* BOP 1E */ illegal_bop, /* BOP 1F */ #if defined(RDCHK) && !defined(PROD) get_lar, /* BOP 20, used to debug read checks */ #else illegal_bop, /* BOP 20 */ #endif Get_build_id, /* BOP 21 */ #ifdef WIN_VTD VtdTickSync, /* BOP 22 */ #else illegal_bop, /* BOP 22 */ #endif /* WIN_VTD */ illegal_bop, /* BOP 23 */ illegal_bop, /* BOP 24 */ #if defined(CPU_40_STYLE) && !defined(NTVDM) VDD_Func, /* BOP 25 */ #else illegal_bop, /* BOP 25 */ #endif /* CPU_40_STYLE */ illegal_bop, /* BOP 26 */ illegal_bop, /* BOP 27 */ illegal_bop, /* BOP 28 */ illegal_bop, /* BOP 29 */ illegal_bop, /* BOP 2A */ #ifndef NTVDM cmd_install, /* BOP 2B */ cmd_load, /* BOP 2C */ #else /* NTVDM */ illegal_bop, /* BOP 2B */ illegal_bop, /* BOP 2C */ #endif /* NTVDM */ illegal_bop, /* BOP 2D */ #ifdef HFX v_test_for_us, /* BOP 2E */ /* test_for_us */ v_redirector, /* BOP 2F */ /* redirector */ #else illegal_bop, /* BOP 2E */ illegal_bop, /* BOP 2F */ #endif #ifdef DPMI DPMI_2F, /* BOP 30 */ DPMI_31, /* BOP 31 */ DPMI_general, /* BOP 32 */ DPMI_int, /* BOP 33 */ #else illegal_bop, /* BOP 30 */ illegal_bop, /* BOP 31 */ illegal_bop, /* BOP 32 */ illegal_bop, /* BOP 33 */ #endif /* DPMI */ #ifdef NOVELL DriverInitialize, /* BOP 34 */ DriverReadPacket, /* BOP 35 */ DriverSendPacket, /* BOP 36 */ DriverMulticastChange, /* BOP 37 */ DriverReset, /* BOP 38 */ DriverShutdown, /* BOP 39 */ DriverAddProtocol, /* BOP 3A */ DriverChangePromiscuous, /* BOP 3B */ DriverOpenSocket, /* BOP 3C */ DriverCloseSocket, /* BOP 3D */ #ifdef NOVELL_CFM DriverCheckForMore, /* BOP 3E */ #else illegal_bop, /* Spare BOP 3E */ #endif #ifdef V4CLIENT DriverChangeIntStatus, /* BOP 3F */ #else illegal_bop, /* Spare BOP 3F */ #endif /* V4CLIENT */ #else /* NOVELL */ illegal_bop, /* BOP 34 */ illegal_bop, /* BOP 35 */ illegal_bop, /* BOP 36 */ illegal_bop, /* BOP 37 */ illegal_bop, /* BOP 38 */ illegal_bop, /* BOP 39 */ illegal_bop, /* BOP 3A */ illegal_bop, /* BOP 3B */ illegal_bop, /* BOP 3C */ illegal_bop, /* BOP 3D */ illegal_bop, /* BOP 3E */ illegal_bop, /* BOP 3F */ #endif /* NOVELL */ diskette_io, /* BOP 40 */ illegal_bop, /* BOP 41 */ #ifdef EGG ega_video_io, /* BOP 42 */ #else illegal_bop, /* BOP 42 */ #endif illegal_bop, /* BOP 43 */ illegal_bop, /* BOP 44 */ illegal_bop, /* BOP 45 */ illegal_bop, /* BOP 46 */ illegal_bop, /* BOP 47 */ illegal_bop, /* BOP 48 */ #ifdef DPMI DPMI_r0_int, /* BOP 49 */ DPMI_exc, /* BOP 4A */ DPMI_4B, /* BOP 4B */ #else illegal_bop, /* BOP 49 */ illegal_bop, /* BOP 4A */ illegal_bop, /* BOP 4B */ #endif /* DPMI */ illegal_bop, /* BOP 4C */ illegal_bop, /* BOP 4D */ illegal_bop, /* BOP 4E */ illegal_bop, /* BOP 4F */ #ifdef NTVDM /* Note that this precludes SMEG and NT existing together which seems reasonable given the Unix & X dependencies of SMEG */ MS_bop_0, /* BOP 50 - MS reserved */ MS_bop_1, /* BOP 51 - MS reserved */ MS_bop_2, /* BOP 52 - MS reserved */ MS_bop_3, /* BOP 53 - MS reserved */ MS_bop_4, /* BOP 54 - MS reserved */ MS_bop_5, /* BOP 55 - MS reserved */ MS_bop_6, /* BOP 56 - MS reserved */ MS_bop_7, /* BOP 57 - MS reserved */ MS_bop_8, /* BOP 58 - MS reserved */ MS_bop_9, /* BOP 59 - MS reserved */ MS_bop_A, /* BOP 5A - MS reserved */ MS_bop_B, /* BOP 5B - MS reserved */ MS_bop_C, /* BOP 5C - MS reserved */ MS_bop_D, /* BOP 5D - MS reserved */ MS_bop_E, /* BOP 5E - MS reserved */ MS_bop_F, /* BOP 5F - MS reserved */ #else #ifdef SMEG smeg_collect_data,/* BOP 50 */ smeg_freeze_data, /* BOP 51 */ #else illegal_bop, /* BOP 50 */ illegal_bop, /* BOP 51 */ #endif /* SMEG */ #if defined(IRET_HOOKS) && defined(GISP_CPU) Cpu_hook_bop, /* BOP 52 */ #else illegal_bop, /* BOP 52 */ #endif /* IRET_HOOKS && GISP_CPU */ #ifdef GISP_SVGA romMessageAddress, /* BOP 53 */ #else illegal_bop, /* BOP 53 */ #endif illegal_bop, /* BOP 54 */ illegal_bop, /* BOP 55 */ illegal_bop, /* BOP 56 */ illegal_bop, /* BOP 57 */ illegal_bop, /* BOP 58 */ illegal_bop, /* BOP 59 */ illegal_bop, /* BOP 5A */ illegal_bop, /* BOP 5B */ illegal_bop, /* BOP 5C */ illegal_bop, /* BOP 5D */ illegal_bop, /* BOP 5E */ illegal_bop, /* BOP 5F */ #endif /* NTVDM */ softpc_version, /* BOP 60 */ illegal_bop, /* BOP 61 */ illegal_bop, /* BOP 62 */ #ifdef PTY com_bop_pty, /* BOP 63 */ #else illegal_bop, /* BOP 63 */ #endif illegal_bop, /* BOP 64 */ #ifdef PC_CONFIG pc_config, /* BOP 65 */ #else illegal_bop, /* BOP 65 */ #endif #ifdef LIM emm_init, /* BOP 66 */ emm_io, /* BOP 67 */ return_from_call, /* BOP 68 */ #else illegal_bop, /* BOP 66 */ illegal_bop, /* BOP 67 */ illegal_bop, /* BOP 68 */ #endif #ifdef SUSPEND suspend_softpc, /* BOP 69 */ terminate, /* BOP 6A */ #else illegal_bop, /* BOP 69 */ illegal_bop, /* BOP 6A */ #endif #ifdef GEN_DRVR gen_driver_io, /* BOP 6B */ #else illegal_bop, /* BOP 6B */ #endif #ifdef SUSPEND send_script, /* BOP 6C */ #else illegal_bop, /* BOP 6C */ #endif illegal_bop, /* BOP 6D */ illegal_bop, /* BOP 6E */ #ifdef CDROM bcdrom_io, /* BOP 6F */ #else illegal_bop, /* BOP 6F */ #endif #ifdef NTVDM rtc_int, /* BOP 70 */ #else illegal_bop, /* BOP 70 */ #endif re_direct, /* BOP 71 */ D11_int, /* BOP 72 */ D11_int, /* BOP 73 */ D11_int, /* BOP 74 */ int_287, /* BOP 75 */ D11_int, /* BOP 76 */ D11_int, /* BOP 77 */ #ifndef NTVDM worm_init, /* BOP 78 */ worm_io, /* BOP 79 */ #else /* NTVDM */ illegal_bop, /* BOP 78 */ illegal_bop, /* BOP 79 */ #endif /* NTVDM */ illegal_bop, /* BOP 7A */ illegal_bop, /* BOP 7B */ illegal_bop, /* BOP 7C */ illegal_bop, /* BOP 7D */ illegal_bop, /* BOP 7E */ illegal_bop, /* BOP 7F */ illegal_bop, /* BOP 80 */ illegal_bop, /* BOP 81 */ illegal_bop, /* BOP 82 */ illegal_bop, /* BOP 83 */ illegal_bop, /* BOP 84 */ illegal_bop, /* BOP 85 */ illegal_bop, /* BOP 86 */ illegal_bop, /* BOP 87 */ illegal_bop, /* BOP 88 */ illegal_bop, /* BOP 89 */ illegal_bop, /* BOP 8A */ illegal_bop, /* BOP 8B */ illegal_bop, /* BOP 8C */ illegal_bop, /* BOP 8D */ illegal_bop, /* BOP 8E */ illegal_bop, /* BOP 8F */ #ifdef NTVDM /* No bootstrap on NT */ illegal_bop, /* BOP 90 */ illegal_bop, /* BOP 91 */ illegal_bop, /* BOP 92 */ #else bootstrap1, /* BOP 90 */ bootstrap2, /* BOP 91 */ bootstrap3, /* BOP 92 */ #endif #ifdef SWINAPI Gdi_call, /* BOP 93 */ User_call, /* BOP 94 */ Swinapi_bop, /* BOP 95 */ #else /* SWINAPI */ illegal_bop, /* BOP 93 */ illegal_bop, /* BOP 94 */ illegal_bop, /* BOP 95 */ #endif /* SWINAPI */ illegal_bop, /* BOP 96 */ illegal_bop, /* BOP 97 */ #ifdef MSWDVR ms_windows, /* BOP 98 */ msw_mouse, /* BOP 99 */ msw_copy, /* BOP 9A */ msw_keybd, /* BOP 9B */ #else illegal_bop, /* BOP 98 */ illegal_bop, /* BOP 99 */ illegal_bop, /* BOP 9A */ illegal_bop, /* BOP 9B */ #endif #if defined(SOFTWIN_API) || defined(SWIN_HFX) SoftWindowsInit, /* BOP 9C */ SoftWindowsTerm, /* BOP 9D */ #else illegal_bop, /* BOP 9C */ illegal_bop, /* BOP 9D */ #endif /* SOFTWIN_API or SWIN_HFX */ #if defined(SOFTWIN_API) SoftWindowsApi, /* BOP 9E */ #else illegal_bop, /* BOP 9E */ #endif /* SOFTWIN_API */ #ifdef SWIN_HAW msw_sound, /* BOP 9F */ #else illegal_bop, /* BOP 9F */ #endif /* SWIN_HAW */ #ifdef NOVELL_IPX IPXResInit, /* BOP A0 */ IPXResEntry, /* BOP A1 */ IPXResInterrupt,/* BOP A2 */ illegal_bop, /* BOP A3 */ #else /* NOVELL_IPX */ illegal_bop, /* BOP A0 */ illegal_bop, /* BOP A1 */ illegal_bop, /* BOP A2 */ illegal_bop, /* BOP A3 */ #endif /* NOVELL_IPX */ #ifdef NOVELL_TCPIP TCPResInit, /* BOP A4 */ TCPResEntry, /* BOP A5 */ #else /* NOVELL_TCPIP */ illegal_bop, /* BOP A4 */ illegal_bop, /* BOP A5 */ #endif /* NOVELL_TCPIP */ #ifdef WINSOCK ISWSEntry, /* BOP A6 */ illegal_bop, /* BOP A7 */ #else /* WINSOCK */ illegal_bop, /* BOP A6 */ illegal_bop, /* BOP A7 */ #endif /* WINSOCK */ illegal_bop, /* BOP A8 */ illegal_bop, /* BOP A9 */ #ifdef SWIN_HFX v_SwinRedirector, /* BOP AA */ /* SwinRedirector */ SwinFileOpened, /* BOP AB */ SwinHfxTaskTerm, /* BOP AC */ #else illegal_bop, /* BOP AA */ illegal_bop, /* BOP AB */ illegal_bop, /* BOP AC */ #endif #ifdef MSWDVR msw_copyInit, /* BOP AD */ illegal_bop, /* BOP AE */ illegal_bop, /* BOP AF */ illegal_bop, /* BOP B0 */ #else illegal_bop, /* BOP AD */ illegal_bop, /* BOP AE */ illegal_bop, /* BOP AF */ illegal_bop, /* BOP B0 */ #endif #ifdef CPU_40_STYLE virtual_device_trap, /* BOP B1 */ #else illegal_bop, /* BOP B1 */ #endif illegal_bop, /* BOP B2 */ illegal_bop, /* BOP B3 */ illegal_bop, /* BOP B4 */ illegal_bop, /* BOP B5 */ illegal_bop, /* BOP B6 */ illegal_bop, /* BOP B7 */ v_mouse_install1, /* BOP B8 */ /* mouse_install1 */ v_mouse_install2, /* BOP B9 */ /* mouse_install2 */ v_mouse_int1, /* BOP BA */ /* mouse_int1 */ v_mouse_int2, /* BOP BB */ /* mouse_int2 */ v_mouse_io_language, /* BOP BC */ /* mouse_io_language */ v_mouse_io_interrupt, /* BOP BD */ /* mouse_io_interrupt */ v_mouse_video_io, /* BOP BE */ /* mouse_video_io */ v_mouse_EM_callback, /* BOP BF */ /* mouse_EM_callback */ illegal_bop, /* BOP C0 */ illegal_bop, /* BOP C1 */ illegal_bop, /* BOP C2 */ illegal_bop, /* BOP C3 */ illegal_bop, /* BOP C4 */ illegal_bop, /* BOP C5 */ illegal_bop, /* BOP C6 */ illegal_bop, /* BOP C7 */ #if defined(XWINDOW) || defined(NTVDM) v_host_mouse_install1, /* BOP C8 */ /* host_mouse_install1 */ v_host_mouse_install2, /* BOP C9 */ /* host_mouse_install2 */ #else #ifdef GISP_SVGA mouse_install1, mouse_install2, #else /* GISP_SVGA */ illegal_bop, /* BOP C8 */ illegal_bop, /* BOP C9 */ #endif /* GISP_SVGA */ #endif /* defined(XWINDOW) || defined(NTVDM) */ illegal_bop, /* BOP CA */ illegal_bop, /* BOP CB */ illegal_bop, /* BOP CC */ illegal_bop, /* BOP CD */ illegal_bop, /* BOP CE */ illegal_bop, /* BOP CF */ #ifdef PROFILE reset_profile, /* BOP D0 */ dump_profile, /* BOP D1 */ #else illegal_bop, /* BOP D0 */ illegal_bop, /* BOP D1 */ #endif illegal_bop, /* BOP D2 */ illegal_bop, /* BOP D3 */ #ifdef SIGNAL_PROFILING Start_sigprof, /* BOP D4 */ Stop_sigprof, /* BOP D5 */ Dump_sigprof, /* BOP D6 */ #else illegal_bop, /* BOP D4 */ illegal_bop, /* BOP D5 */ illegal_bop, /* BOP D6 */ #endif illegal_bop, /* BOP D7 */ illegal_bop, /* BOP D8 */ illegal_bop, /* BOP D9 */ illegal_bop, /* BOP DA */ illegal_bop, /* BOP DB */ illegal_bop, /* BOP DC */ illegal_bop, /* BOP DD */ illegal_bop, /* BOP DE */ illegal_bop, /* BOP DF */ illegal_bop, /* BOP E0 */ illegal_bop, /* BOP E1 */ illegal_bop, /* BOP E2 */ illegal_bop, /* BOP E3 */ illegal_bop, /* BOP E4 */ illegal_bop, /* BOP E5 */ illegal_bop, /* BOP E6 */ illegal_bop, /* BOP E7 */ illegal_bop, /* BOP E8 */ illegal_bop, /* BOP E9 */ illegal_bop, /* BOP EA */ illegal_bop, /* BOP EB */ illegal_bop, /* BOP EC */ illegal_bop, /* BOP ED */ illegal_bop, /* BOP EE */ illegal_bop, /* BOP EF */ illegal_bop, /* BOP F0 */ illegal_bop, /* BOP F1 */ illegal_bop, /* BOP F2 */ illegal_bop, /* BOP F3 */ illegal_bop, /* BOP F4 */ illegal_bop, /* BOP F5 */ illegal_bop, /* BOP F6 */ illegal_bop, /* BOP F7 */ #ifndef PROD dvr_bop_trace, /* BOP F8 */ trace_msg_bop, /* BOP F9 -- pic*/ #else illegal_bop, /* BOP F8 */ illegal_bop, /* BOP F9 */ #endif #ifndef GISP_CPU illegal_bop, /* BOP FA */ illegal_bop, /* BOP FB */ illegal_bop, /* BOP FC */ #if defined(NTVDM) && defined(MONITOR) switch_to_real_mode, /* BOP FD */ #else illegal_bop, /* BOP FD */ #endif /* NTVDM && MONITOR */ #if !defined(LDBIOS) && !defined(CPU_30_STYLE) host_unsimulate,/* BOP FE */ #else #if defined(NTVDM) && defined(MONITOR) host_unsimulate, /* BOP FE */ #else illegal_bop, /* BOP FE */ #endif /* NTVDM && MONITOR */ #endif /* !LDBIOS && !CPU_30_STYLE */ #else /* ndef GISP_CPU */ /* In the GISP technology, BOPs FA, FC, FD and FE are assumed to be handled directly by the host operating system and cannot be used inside SoftPC. */ illegal_bop, /* BOP FA */ hg_bop_handler, /* BOP FB */ /* in hg_cpu.c */ illegal_bop, /* BOP FC */ illegal_bop, /* BOP FD */ illegal_bop, /* BOP FE */ #endif /* GISP_CPU */ control_bop /* BOP FF */ /* Don't put anymore entries after FF because we only have a byte quantity */ }; #endif /* MAC_LIKE */ #ifndef PROD #ifdef MAC_LIKE GLOBAL char *bop_name IFN1(IU8, bop_num) { return (NULL); } #else /* !MAC_LIKE */ typedef void (*BOP_proc) IPT0(); struct BOP_name { BOP_proc proc; char *name; }; #define BOP_NAME(proc) { proc, STRINGIFY(proc) } LOCAL struct BOP_name BOP_names[] = { BOP_NAME(reset), BOP_NAME(illegal_op_int), #if !defined(NTVDM) && !defined(CPU_40_STYLE) BOP_NAME(time_int), #endif /* !NTVDM && !CPU_40_STYLE */ BOP_NAME(keyboard_int), BOP_NAME(diskette_int), BOP_NAME(video_io), BOP_NAME(equipment), BOP_NAME(memory_size), BOP_NAME(disk_io), BOP_NAME(rs232_io), BOP_NAME(cassette_io), BOP_NAME(keyboard_io), BOP_NAME(printer_io), BOP_NAME(rom_basic), BOP_NAME(softpc_version), BOP_NAME(diskette_io), BOP_NAME(time_of_day), BOP_NAME(kb_idle_poll), #ifndef NTVDM BOP_NAME(cmd_install), BOP_NAME(cmd_load), #endif /* NTVDM */ BOP_NAME(diskette_io), BOP_NAME(v_mouse_install1), BOP_NAME(v_mouse_install2), BOP_NAME(v_mouse_int1), BOP_NAME(v_mouse_int2), BOP_NAME(v_mouse_io_language), BOP_NAME(v_mouse_io_interrupt), BOP_NAME(v_mouse_video_io), BOP_NAME(v_mouse_EM_callback), #ifdef PROFILE BOP_NAME(reset_profile), BOP_NAME(dump_profile), #endif #ifdef SIGNAL_PROFILING BOP_NAME(Start_sigprof), BOP_NAME(Stop_sigprof), BOP_NAME(Dump_sigprof), #endif BOP_NAME(re_direct), BOP_NAME(D11_int), BOP_NAME(D11_int), BOP_NAME(D11_int), BOP_NAME(int_287), BOP_NAME(D11_int), BOP_NAME(D11_int), #ifndef NTVDM BOP_NAME(worm_init), BOP_NAME(worm_io), #endif /* NTVDM */ #if defined(RDCHK) && !defined(PROD) BOP_NAME(get_lar), #endif #ifdef HFX BOP_NAME(v_test_for_us), BOP_NAME(v_redirector), #endif #ifdef DPMI BOP_NAME(DPMI_2F), BOP_NAME(DPMI_31), BOP_NAME(DPMI_general), BOP_NAME(DPMI_int), BOP_NAME(DPMI_r0_int), BOP_NAME(DPMI_exc), BOP_NAME(DPMI_4B), #endif /* DPMI */ #ifdef DOS_APP_LIC BOP_NAME(DOS_AppLicense), #endif #ifdef NOVELL BOP_NAME(DriverInitialize), BOP_NAME(DriverReadPacket), BOP_NAME(DriverSendPacket), BOP_NAME(DriverMulticastChange), BOP_NAME(DriverReset), BOP_NAME(DriverShutdown), BOP_NAME(DriverAddProtocol), BOP_NAME(DriverChangePromiscuous), BOP_NAME(DriverOpenSocket), BOP_NAME(DriverCloseSocket), #endif #ifdef EGG BOP_NAME(ega_video_io), #endif #ifdef NTVDM BOP_NAME(MS_bop_0), BOP_NAME(MS_bop_1), BOP_NAME(MS_bop_2), BOP_NAME(MS_bop_3), BOP_NAME(MS_bop_4), BOP_NAME(MS_bop_5), BOP_NAME(MS_bop_6), BOP_NAME(MS_bop_7), BOP_NAME(MS_bop_8), BOP_NAME(MS_bop_9), BOP_NAME(MS_bop_A), BOP_NAME(MS_bop_B), BOP_NAME(MS_bop_C), BOP_NAME(MS_bop_D), BOP_NAME(MS_bop_E), BOP_NAME(MS_bop_F), BOP_NAME(terminate), #else BOP_NAME(bootstrap), BOP_NAME(bootstrap1), BOP_NAME(bootstrap2), BOP_NAME(bootstrap3), #endif /* NTVDM */ #ifdef SMEG BOP_NAME(smeg_collect_data), BOP_NAME(smeg_freeze_data), #endif /* SMEG */ #if defined(IRET_HOOKS) && defined(GISP_CPU) BOP_NAME(Cpu_hook_bop), #endif /* IRET_HOOKS && GISP_CPU */ #ifdef GISP_SVGA BOP_NAME(romMessageAddress), #endif #ifdef PTY BOP_NAME(com_bop_pty), #endif #ifdef PC_CONFIG BOP_NAME(pc_config), #endif #ifdef LIM BOP_NAME(emm_init), BOP_NAME(emm_io), BOP_NAME(return_from_call), #endif #ifdef SUSPEND BOP_NAME(suspend_softpc), BOP_NAME(terminate), #endif #ifdef GEN_DRVR BOP_NAME(gen_driver_io), #endif #ifdef SUSPEND BOP_NAME(send_script), #endif #ifdef CDROM BOP_NAME(bcdrom_io), #endif #ifdef SWINAPI BOP_NAME(Gdi_call), BOP_NAME(User_call), BOP_NAME(Swinapi_bop), #endif /* SWINAPI */ #ifdef MSWDVR BOP_NAME(ms_windows), BOP_NAME(msw_mouse), BOP_NAME(msw_copy), BOP_NAME(msw_keybd), BOP_NAME(msw_copyInit), #endif #if defined(SOFTWIN_API) || defined(SWIN_HFX) BOP_NAME(SoftWindowsInit), BOP_NAME(SoftWindowsTerm), #endif /* SOFTWIN_API or SWIN_HFX */ #ifdef SOFTWIN_API BOP_NAME(SoftWindowsApi), #endif /* SOFTWIN_API */ #ifdef NOVELL_IPX BOP_NAME(IPXResInit), BOP_NAME(IPXResEntry), BOP_NAME(IPXResInterrupt), #endif /* NOVELL_IPX */ #ifdef NOVELL_TCPIP BOP_NAME(TCPResInit), BOP_NAME(TCPResEntry), #endif /* NOVELL_TCPIP */ #ifdef SWIN_HFX BOP_NAME(v_SwinRedirector), BOP_NAME(SwinFileOpened), BOP_NAME(SwinHfxTaskTerm), #endif #if defined(XWINDOW) || defined(NTVDM) BOP_NAME(v_host_mouse_install1), BOP_NAME(v_host_mouse_install2), #else #ifdef GISP_SVGA BOP_NAME(mouse_install1), BOP_NAME(mouse_install2), #endif /* GISP_SVGA */ #endif /* defined(XWINDOW) || defined(NTVDM) */ #if defined(NTVDM) && defined(MONITOR) BOP_NAME(switch_to_real_mode), #endif /* NTVDM && MONITOR */ BOP_NAME(control_bop), #ifdef WDCTRL_BOP BOP_NAME(wdctrl_bop), #endif /* WDCTRL_BOP */ #ifndef PROD BOP_NAME(trace_msg_bop), BOP_NAME(dvr_bop_trace), #endif BOP_NAME(illegal_bop), { 0, NULL } }; GLOBAL char *bop_name IFN1(IU8, bop_num) { struct BOP_name *bnp = BOP_names; BOP_proc proc = BIOS[bop_num]; if (bop_num == 0xFE) return "UNSIMULATE"; while ((bnp->name != NULL) && (proc != bnp->proc)) bnp++; return (bnp->name); } #endif /* !MAC_LIKE */ #endif /* PROD */