From e26ed9907db060d12b2501836f03f09a9b8d1392 Mon Sep 17 00:00:00 2001 From: Melissa Goad Date: Sat, 18 Mar 2017 20:44:46 -0500 Subject: [PATCH 1/2] CMake builds compile now, but segfault at start --- src/808x.c | 10 +++++----- src/CMakeLists.txt | 18 +++++++++--------- src/vid_cl_gd_blit.c | 4 ++-- src/vid_cl_gd_vga_rop.h | 6 +++--- 4 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/808x.c b/src/808x.c index dd7228ed6..07f8ed95b 100644 --- a/src/808x.c +++ b/src/808x.c @@ -116,7 +116,7 @@ int fetchcycles=0,memcycs,fetchclocks; uint8_t prefetchqueue[6]; uint16_t prefetchpc; int prefetchw=0; -inline uint8_t FETCH() +static inline uint8_t FETCH() { uint8_t temp; /* temp=prefetchqueue[0]; @@ -170,7 +170,7 @@ inline uint8_t FETCH() return temp; } -inline void FETCHADD(int c) +static inline void FETCHADD(int c) { int d; // if (output) printf("FETCHADD %i\n",c); @@ -225,7 +225,7 @@ void FETCHCOMPLETE() fetchcycles+=(4-(fetchcycles&3)); } -inline void FETCHCLEAR() +static inline void FETCHCLEAR() { /* int c; fetchcycles=0; @@ -270,13 +270,13 @@ r16(/r) AX CX DX BX SP BP SI DI r32(/r) EAX ECX EDX EBX ESP EBP ESI EDI /digit (Opcode) 0 1 2 3 4 5 6 7 REG = 000 001 010 011 100 101 110 111 - ÚÄÄÄAddress + ����Address disp8 denotes an 8-bit displacement following the ModR/M byte, to be sign-extended and added to the index. disp16 denotes a 16-bit displacement following the ModR/M byte, to be added to the index. Default segment register is SS for the effective addresses containing a BP index, DS for other effective addresses. - ÄÄ¿ ÚMod R/M¿ ÚÄÄÄÄÄÄÄÄModR/M Values in HexadecimalÄÄÄÄÄÄÄÄ¿ + �Ŀ �Mod R/M� ���������ModR/M Values in Hexadecimal�������Ŀ [BX + SI] 000 00 08 10 18 20 28 30 38 [BX + DI] 001 01 09 11 19 21 29 31 39 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 275c04819..709eb3728 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -4,22 +4,22 @@ project(86box) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/CMakeModules) set(SRCS -386.c 386_dynarec.c 386_dynarec_ops.c 808x.c acer386sx.c acerm3a.c aha154x.c ali1429.c amstrad.c cdrom-ioctl.c cdrom-iso.c +386.c 386_dynarec.c 386_dynarec_ops.c 808x.c acer386sx.c acerm3a.c ali1429.c amstrad.c buslogic.c cdrom.c cdrom-ioctl.c cdrom-iso.c cdrom-null.c codegen.c codegen_ops.c codegen_timing_486.c codegen_timing_686.c codegen_timing_pentium.c codegen_timing_winchip.c compaq.c config.c cpu.c dac.c -device.c disc.c disc_86f.c disc_fdi.c disc_imd.c disc_img.c disc_random.c disc_td0.c dma.c fdc.c fdc37c665.c fdc37c932fr.c fdd.c fdi2raw.c gameport.c headland.c i430hx.c i430lx.c i430fx.c +device.c disc.c disc_86f.c disc_fdi.c disc_imd.c disc_img.c disc_random.c disc_td0.c dma.c fdc.c fdc37c665.c fdc37c932fr.c fdd.c fdi2raw.c gameport.c hdd.c headland.c i430hx.c i430lx.c i430fx.c i430nx.c i430vx.c i440fx.c ide.c intel.c intel_flash.c io.c jim.c joystick_ch_flightstick_pro.c joystick_standard.c joystick_sw_pad.c joystick_tm_fcs.c keyboard.c keyboard_amstrad.c keyboard_at.c -keyboard_olim24.c keyboard_pcjr.c keyboard_xt.c lpt.c mcr.c mem.c memregs.c model.c mouse.c mouse_amstrad.c mouse_ps2.c -mouse_serial.c ne2000.c neat.c nethandler.c nmi.c nvr.c olivetti_m24.c opti.c pc.c pc87306.c pci.c pic.c piix.c pit.c ppi.c ps1.c rom.c rtc.c -scat.c scattergather.c scsi.c scsi_cdrom.c serial.c sis496.c sis85c471.c sio.c sound.c sound_ad1848.c sound_adlib.c sound_adlibgold.c sound_cms.c +keyboard_olim24.c keyboard_pcjr.c keyboard_xt.c lpt.c mcr.c mem.c memregs.c mfm_at.c model.c mouse.c mouse_ps2.c +mouse_serial.c ne2000.c neat.c nethandler.c nmi.c nvr.c olivetti_m24.c opti495.c pc.c pc87306.c pci.c pic.c piix.c pit.c ppi.c ps1.c ps2.c rom.c rtc.c +scat.c scsi.c serial.c sis496.c sis85c471.c sio.c sound.c sound_ad1848.c sound_adlib.c sound_adlibgold.c sound_cms.c sound_dbopl.cc sound_emu8k.c sound_gus.c sound_mpu401_uart.c sound_opl.c sound_pas16.c sound_ps1.c sound_pssj.c sound_resid.cc sound_sb.c sound_sb_dsp.c sound_sn76489.c sound_speaker.c sound_ssi2001.c sound_wss.c sound_ym7128.c -soundopenal.c tandy_eeprom.c tandy_rom.c timer.c um8669f.c vid_ati_eeprom.c vid_ati_mach64.c vid_ati18800.c +soundopenal.c tandy_eeprom.c tandy_rom.c timer.c um8669f.c usb.c vid_ati_eeprom.c vid_ati_mach64.c vid_ati18800.c vid_ati28800.c vid_ati68860_ramdac.c vid_bt485_ramdac.c vid_cga.c vid_cl_gd.c vid_cl_gd_blit.c vid_cl_ramdac.c vid_colorplus.c vid_ega.c vid_et4000.c vid_et4000w32.c vid_hercules.c vid_herculesplus.c vid_icd2061.c vid_ics2595.c vid_incolor.c vid_mda.c vid_nv_riva128.c vid_olivetti_m24.c vid_oti067.c vid_paradise.c vid_pc1512.c vid_pc1640.c vid_pc200.c vid_pcjr.c vid_ps1_svga.c vid_s3.c vid_s3_virge.c vid_sdac_ramdac.c vid_stg_ramdac.c vid_svga.c vid_svga_render.c vid_tandy.c vid_tandysl.c vid_tgui9440.c vid_tkd8001_ramdac.c vid_tvga.c vid_unk_ramdac.c -vid_vga.c vid_voodoo.c video.c wd76c10.c win.c win-config.c win-d3d.cc win-d3d-fs.cc win-ddraw.cc +vid_vga.c vid_wy700.c vid_voodoo.c video.c w83877f.c wd76c10.c win.c win-config.c win-d3d.cc win-d3d-fs.cc win-ddraw.cc win-ddraw-fs.cc win-ddraw-screenshot.cc win-deviceconfig.c win-hdconf.c win-joystick.cc win-joystickconfig.c win-keyboard.cc win-midi.c win-mouse.cc win-status.c win-video.c x86seg.c x87.c xtide.c pc.rc dosbox/dbopl.cpp dosbox/nukedopl.cpp dosbox/vid_cga_comp.c @@ -48,8 +48,8 @@ codegen_x86-64.c ) endif() -add_definitions(-msse2 -mstackrealign -mwindows) +add_definitions(-msse2 -mstackrealign -mwindows -g) add_executable(86box ${SRCS}) -target_link_libraries(86box winmm openal.dll openal ddraw dinput8 dxguid d3d9 d3dx9 wsock32 iphlpapi stdc++) \ No newline at end of file +target_link_libraries(86box winmm openal.dll openal ddraw dinput8 dxguid d3d9 d3dx9 wsock32 iphlpapi stdc++ psapi wpcapdelay comdlg32 gdi32) \ No newline at end of file diff --git a/src/vid_cl_gd_blit.c b/src/vid_cl_gd_blit.c index 0a5348629..fbf63d72c 100644 --- a/src/vid_cl_gd_blit.c +++ b/src/vid_cl_gd_blit.c @@ -346,7 +346,7 @@ const cirrus_fill_t cirrus_fill[16][4] = { ROP2(cirrus_fill_notsrc_and_notdst), }; -inline void cirrus_bitblt_fgcol(clgd_t *clgd, svga_t *svga) +static inline void cirrus_bitblt_fgcol(clgd_t *clgd, svga_t *svga) { unsigned int color; switch (clgd->blt.pixel_width) @@ -369,7 +369,7 @@ inline void cirrus_bitblt_fgcol(clgd_t *clgd, svga_t *svga) } } -inline void cirrus_bitblt_bgcol(clgd_t *clgd, svga_t *svga) +static inline void cirrus_bitblt_bgcol(clgd_t *clgd, svga_t *svga) { unsigned int color; switch (clgd->blt.pixel_width) diff --git a/src/vid_cl_gd_vga_rop.h b/src/vid_cl_gd_vga_rop.h index d03516ba3..2b2b263fc 100644 --- a/src/vid_cl_gd_vga_rop.h +++ b/src/vid_cl_gd_vga_rop.h @@ -22,17 +22,17 @@ * THE SOFTWARE. */ -inline void glue(rop_8_,ROP_NAME)(uint8_t *dst, uint8_t src) +static inline void glue(rop_8_,ROP_NAME)(uint8_t *dst, uint8_t src) { *dst = ROP_FN(*dst, src); } -inline void glue(rop_16_,ROP_NAME)(uint16_t *dst, uint16_t src) +static inline void glue(rop_16_,ROP_NAME)(uint16_t *dst, uint16_t src) { *dst = ROP_FN(*dst, src); } -inline void glue(rop_32_,ROP_NAME)(uint32_t *dst, uint32_t src) +static inline void glue(rop_32_,ROP_NAME)(uint32_t *dst, uint32_t src) { *dst = ROP_FN(*dst, src); } From 53bd6f4609cc2185ff6d17524af068088dac4238 Mon Sep 17 00:00:00 2001 From: Melissa Goad Date: Sat, 18 Mar 2017 20:53:52 -0500 Subject: [PATCH 2/2] CMake builds work fully now --- src/CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 709eb3728..dc84277c5 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -3,6 +3,10 @@ project(86box) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/CMakeModules) +ENABLE_LANGUAGE(RC) + +set(CMAKE_RC_COMPILE_OBJECT "${CMAKE_RC_COMPILER} -O coff -I${CMAKE_CURRENT_SOURCE_DIR} ") + set(SRCS 386.c 386_dynarec.c 386_dynarec_ops.c 808x.c acer386sx.c acerm3a.c ali1429.c amstrad.c buslogic.c cdrom.c cdrom-ioctl.c cdrom-iso.c cdrom-null.c codegen.c codegen_ops.c codegen_timing_486.c codegen_timing_686.c codegen_timing_pentium.c codegen_timing_winchip.c compaq.c config.c cpu.c dac.c