This commit is contained in:
therealmogminer@gmail.com 2016-08-12 21:10:27 +02:00
commit be807d81ea
18 changed files with 2118 additions and 473 deletions

View File

@ -774,6 +774,7 @@ SCRIPTS = scripts/genie.lua \
scripts/src/video.lua \
scripts/src/bus.lua \
scripts/src/netlist.lua \
scripts/src/formats.lua \
scripts/toolchain.lua \
scripts/src/osd/modules.lua \
$(wildcard src/osd/$(OSD)/$(OSD).mak) \

View File

@ -10,7 +10,7 @@ import sys
files_included = ['src/emu/emu.h']
include_dirs = ['src/emu/', 'src/devices/', 'src/mame/']
include_dirs = ['src/emu/', 'src/devices/', 'src/mame/', 'src/lib/']
mappings = dict()
@ -201,6 +201,7 @@ parse_lua_file(root +'scripts/src/cpu.lua')
parse_lua_file(root +'scripts/src/machine.lua')
parse_lua_file(root +'scripts/src/sound.lua')
parse_lua_file(root +'scripts/src/video.lua')
parse_lua_file(root +'scripts/src/formats.lua')
for filename in sys.argv[2].rsplit(',') :
deps_files_included.append(filename.replace('\\','/'))

View File

@ -94,6 +94,7 @@ SOUNDS = {}
MACHINES = {}
VIDEOS = {}
BUSES = {}
FORMATS = {}
newoption {
trigger = "with-tools",
@ -1320,6 +1321,13 @@ if (not os.isfile(path.join("src", "osd", _OPTIONS["osd"] .. ".lua"))) then
end
dofile(path.join("src", "osd", _OPTIONS["osd"] .. ".lua"))
dofile(path.join("src", "lib.lua"))
if (MACHINES["NETLIST"]~=null or _OPTIONS["with-tools"]) then
dofile(path.join("src", "netlist.lua"))
end
--if (STANDALONE~=true) then
dofile(path.join("src", "formats.lua"))
formatsProject(_OPTIONS["target"],_OPTIONS["subtarget"])
--end
group "3rdparty"
dofile(path.join("src", "3rdparty.lua"))

1722
scripts/src/formats.lua Normal file

File diff suppressed because it is too large Load Diff

View File

@ -98,336 +98,3 @@ project "utils"
MAME_DIR .. "src/lib/util/zippath.cpp",
MAME_DIR .. "src/lib/util/zippath.h",
}
project "formats"
uuid "f69636b1-fcce-45ce-b09a-113e371a2d7a"
kind (LIBTYPE)
addprojectflags()
options {
"ArchiveSplit",
}
includedirs {
MAME_DIR .. "src/osd",
MAME_DIR .. "src/emu",
MAME_DIR .. "src/lib",
MAME_DIR .. "src/lib/util",
MAME_DIR .. "3rdparty",
ext_includedir("zlib"),
}
files {
MAME_DIR .. "src/lib/formats/2d_dsk.cpp",
MAME_DIR .. "src/lib/formats/2d_dsk.h",
MAME_DIR .. "src/lib/formats/cassimg.cpp",
MAME_DIR .. "src/lib/formats/cassimg.h",
MAME_DIR .. "src/lib/formats/flopimg.cpp",
MAME_DIR .. "src/lib/formats/flopimg.h",
MAME_DIR .. "src/lib/formats/imageutl.cpp",
MAME_DIR .. "src/lib/formats/imageutl.h",
MAME_DIR .. "src/lib/formats/ioprocs.cpp",
MAME_DIR .. "src/lib/formats/ioprocs.h",
MAME_DIR .. "src/lib/formats/basicdsk.cpp",
MAME_DIR .. "src/lib/formats/basicdsk.h",
MAME_DIR .. "src/lib/formats/a26_cas.cpp",
MAME_DIR .. "src/lib/formats/a26_cas.h",
MAME_DIR .. "src/lib/formats/a5105_dsk.cpp",
MAME_DIR .. "src/lib/formats/a5105_dsk.h",
MAME_DIR .. "src/lib/formats/abc800_dsk.cpp",
MAME_DIR .. "src/lib/formats/abc800_dsk.h",
MAME_DIR .. "src/lib/formats/abcfd2_dsk.cpp",
MAME_DIR .. "src/lib/formats/abcfd2_dsk.h",
MAME_DIR .. "src/lib/formats/ace_tap.cpp",
MAME_DIR .. "src/lib/formats/ace_tap.h",
MAME_DIR .. "src/lib/formats/acorn_dsk.cpp",
MAME_DIR .. "src/lib/formats/acorn_dsk.h",
MAME_DIR .. "src/lib/formats/adam_cas.cpp",
MAME_DIR .. "src/lib/formats/adam_cas.h",
MAME_DIR .. "src/lib/formats/adam_dsk.cpp",
MAME_DIR .. "src/lib/formats/adam_dsk.h",
MAME_DIR .. "src/lib/formats/afs_dsk.cpp",
MAME_DIR .. "src/lib/formats/afs_dsk.h",
MAME_DIR .. "src/lib/formats/ami_dsk.cpp",
MAME_DIR .. "src/lib/formats/ami_dsk.h",
MAME_DIR .. "src/lib/formats/ap2_dsk.cpp",
MAME_DIR .. "src/lib/formats/ap2_dsk.h",
MAME_DIR .. "src/lib/formats/apf_apt.cpp",
MAME_DIR .. "src/lib/formats/apf_apt.h",
MAME_DIR .. "src/lib/formats/apridisk.cpp",
MAME_DIR .. "src/lib/formats/apridisk.h",
MAME_DIR .. "src/lib/formats/apollo_dsk.cpp",
MAME_DIR .. "src/lib/formats/apollo_dsk.h",
MAME_DIR .. "src/lib/formats/ap_dsk35.cpp",
MAME_DIR .. "src/lib/formats/ap_dsk35.h",
MAME_DIR .. "src/lib/formats/applix_dsk.cpp",
MAME_DIR .. "src/lib/formats/applix_dsk.h",
MAME_DIR .. "src/lib/formats/asst128_dsk.cpp",
MAME_DIR .. "src/lib/formats/asst128_dsk.h",
MAME_DIR .. "src/lib/formats/atari_dsk.cpp",
MAME_DIR .. "src/lib/formats/atari_dsk.h",
MAME_DIR .. "src/lib/formats/atom_dsk.cpp",
MAME_DIR .. "src/lib/formats/atom_dsk.h",
MAME_DIR .. "src/lib/formats/atom_tap.cpp",
MAME_DIR .. "src/lib/formats/atom_tap.h",
MAME_DIR .. "src/lib/formats/bw2_dsk.cpp",
MAME_DIR .. "src/lib/formats/bw2_dsk.h",
MAME_DIR .. "src/lib/formats/bw12_dsk.cpp",
MAME_DIR .. "src/lib/formats/bw12_dsk.h",
MAME_DIR .. "src/lib/formats/c3040_dsk.cpp",
MAME_DIR .. "src/lib/formats/c3040_dsk.h",
MAME_DIR .. "src/lib/formats/c4040_dsk.cpp",
MAME_DIR .. "src/lib/formats/c4040_dsk.h",
MAME_DIR .. "src/lib/formats/c8280_dsk.cpp",
MAME_DIR .. "src/lib/formats/c8280_dsk.h",
MAME_DIR .. "src/lib/formats/camplynx_cas.cpp",
MAME_DIR .. "src/lib/formats/camplynx_cas.h",
MAME_DIR .. "src/lib/formats/camplynx_dsk.cpp",
MAME_DIR .. "src/lib/formats/camplynx_dsk.h",
MAME_DIR .. "src/lib/formats/cbm_crt.cpp",
MAME_DIR .. "src/lib/formats/cbm_crt.h",
MAME_DIR .. "src/lib/formats/cbm_tap.cpp",
MAME_DIR .. "src/lib/formats/cbm_tap.h",
MAME_DIR .. "src/lib/formats/ccvf_dsk.cpp",
MAME_DIR .. "src/lib/formats/ccvf_dsk.h",
MAME_DIR .. "src/lib/formats/cd90_640_dsk.cpp",
MAME_DIR .. "src/lib/formats/cd90_640_dsk.h",
MAME_DIR .. "src/lib/formats/cgen_cas.cpp",
MAME_DIR .. "src/lib/formats/cgen_cas.h",
MAME_DIR .. "src/lib/formats/cgenie_dsk.cpp",
MAME_DIR .. "src/lib/formats/cgenie_dsk.h",
MAME_DIR .. "src/lib/formats/coco_cas.cpp",
MAME_DIR .. "src/lib/formats/coco_cas.h",
MAME_DIR .. "src/lib/formats/comx35_dsk.cpp",
MAME_DIR .. "src/lib/formats/comx35_dsk.h",
MAME_DIR .. "src/lib/formats/concept_dsk.cpp",
MAME_DIR .. "src/lib/formats/concept_dsk.h",
MAME_DIR .. "src/lib/formats/coupedsk.cpp",
MAME_DIR .. "src/lib/formats/coupedsk.h",
MAME_DIR .. "src/lib/formats/cpis_dsk.cpp",
MAME_DIR .. "src/lib/formats/cpis_dsk.h",
MAME_DIR .. "src/lib/formats/cqm_dsk.cpp",
MAME_DIR .. "src/lib/formats/cqm_dsk.h",
MAME_DIR .. "src/lib/formats/csw_cas.cpp",
MAME_DIR .. "src/lib/formats/csw_cas.h",
MAME_DIR .. "src/lib/formats/d64_dsk.cpp",
MAME_DIR .. "src/lib/formats/d64_dsk.h",
MAME_DIR .. "src/lib/formats/d71_dsk.cpp",
MAME_DIR .. "src/lib/formats/d71_dsk.h",
MAME_DIR .. "src/lib/formats/d80_dsk.cpp",
MAME_DIR .. "src/lib/formats/d80_dsk.h",
MAME_DIR .. "src/lib/formats/d81_dsk.cpp",
MAME_DIR .. "src/lib/formats/d81_dsk.h",
MAME_DIR .. "src/lib/formats/d82_dsk.cpp",
MAME_DIR .. "src/lib/formats/d82_dsk.h",
MAME_DIR .. "src/lib/formats/d88_dsk.cpp",
MAME_DIR .. "src/lib/formats/d88_dsk.h",
MAME_DIR .. "src/lib/formats/dcp_dsk.cpp",
MAME_DIR .. "src/lib/formats/dcp_dsk.h",
MAME_DIR .. "src/lib/formats/dfi_dsk.cpp",
MAME_DIR .. "src/lib/formats/dfi_dsk.h",
MAME_DIR .. "src/lib/formats/dim_dsk.cpp",
MAME_DIR .. "src/lib/formats/dim_dsk.h",
MAME_DIR .. "src/lib/formats/dip_dsk.cpp",
MAME_DIR .. "src/lib/formats/dip_dsk.h",
MAME_DIR .. "src/lib/formats/dmk_dsk.cpp",
MAME_DIR .. "src/lib/formats/dmk_dsk.h",
MAME_DIR .. "src/lib/formats/dmv_dsk.cpp",
MAME_DIR .. "src/lib/formats/dmv_dsk.h",
MAME_DIR .. "src/lib/formats/dsk_dsk.cpp",
MAME_DIR .. "src/lib/formats/dsk_dsk.h",
MAME_DIR .. "src/lib/formats/ep64_dsk.cpp",
MAME_DIR .. "src/lib/formats/ep64_dsk.h",
MAME_DIR .. "src/lib/formats/esq8_dsk.cpp",
MAME_DIR .. "src/lib/formats/esq8_dsk.h",
MAME_DIR .. "src/lib/formats/esq16_dsk.cpp",
MAME_DIR .. "src/lib/formats/esq16_dsk.h",
MAME_DIR .. "src/lib/formats/excali64_dsk.cpp",
MAME_DIR .. "src/lib/formats/excali64_dsk.h",
MAME_DIR .. "src/lib/formats/fc100_cas.cpp",
MAME_DIR .. "src/lib/formats/fc100_cas.h",
MAME_DIR .. "src/lib/formats/fdi_dsk.cpp",
MAME_DIR .. "src/lib/formats/fdd_dsk.cpp",
MAME_DIR .. "src/lib/formats/fdd_dsk.h",
MAME_DIR .. "src/lib/formats/flex_dsk.cpp",
MAME_DIR .. "src/lib/formats/flex_dsk.h",
MAME_DIR .. "src/lib/formats/fm7_cas.cpp",
MAME_DIR .. "src/lib/formats/fm7_cas.h",
MAME_DIR .. "src/lib/formats/fmsx_cas.cpp",
MAME_DIR .. "src/lib/formats/fmsx_cas.h",
MAME_DIR .. "src/lib/formats/fmtowns_dsk.cpp",
MAME_DIR .. "src/lib/formats/fmtowns_dsk.h",
MAME_DIR .. "src/lib/formats/fsd_dsk.cpp",
MAME_DIR .. "src/lib/formats/fsd_dsk.h",
MAME_DIR .. "src/lib/formats/g64_dsk.cpp",
MAME_DIR .. "src/lib/formats/g64_dsk.h",
MAME_DIR .. "src/lib/formats/gtp_cas.cpp",
MAME_DIR .. "src/lib/formats/gtp_cas.h",
MAME_DIR .. "src/lib/formats/guab_dsk.cpp",
MAME_DIR .. "src/lib/formats/guab_dsk.h",
MAME_DIR .. "src/lib/formats/hect_dsk.cpp",
MAME_DIR .. "src/lib/formats/hect_dsk.h",
MAME_DIR .. "src/lib/formats/hect_tap.cpp",
MAME_DIR .. "src/lib/formats/hect_tap.h",
MAME_DIR .. "src/lib/formats/hector_minidisc.cpp",
MAME_DIR .. "src/lib/formats/hector_minidisc.h",
MAME_DIR .. "src/lib/formats/iq151_dsk.cpp",
MAME_DIR .. "src/lib/formats/iq151_dsk.h",
MAME_DIR .. "src/lib/formats/imd_dsk.cpp",
MAME_DIR .. "src/lib/formats/imd_dsk.h",
MAME_DIR .. "src/lib/formats/ipf_dsk.cpp",
MAME_DIR .. "src/lib/formats/ipf_dsk.h",
MAME_DIR .. "src/lib/formats/jvc_dsk.cpp",
MAME_DIR .. "src/lib/formats/jvc_dsk.h",
MAME_DIR .. "src/lib/formats/kaypro_dsk.cpp",
MAME_DIR .. "src/lib/formats/kaypro_dsk.h",
MAME_DIR .. "src/lib/formats/kc_cas.cpp",
MAME_DIR .. "src/lib/formats/kc_cas.h",
MAME_DIR .. "src/lib/formats/kc85_dsk.cpp",
MAME_DIR .. "src/lib/formats/kc85_dsk.h",
MAME_DIR .. "src/lib/formats/kim1_cas.cpp",
MAME_DIR .. "src/lib/formats/kim1_cas.h",
MAME_DIR .. "src/lib/formats/lviv_lvt.cpp",
MAME_DIR .. "src/lib/formats/lviv_lvt.h",
MAME_DIR .. "src/lib/formats/m20_dsk.cpp",
MAME_DIR .. "src/lib/formats/m20_dsk.h",
MAME_DIR .. "src/lib/formats/m5_dsk.cpp",
MAME_DIR .. "src/lib/formats/m5_dsk.h",
MAME_DIR .. "src/lib/formats/mbee_cas.cpp",
MAME_DIR .. "src/lib/formats/mbee_cas.h",
MAME_DIR .. "src/lib/formats/mm_dsk.cpp",
MAME_DIR .. "src/lib/formats/mm_dsk.h",
MAME_DIR .. "src/lib/formats/msx_dsk.cpp",
MAME_DIR .. "src/lib/formats/msx_dsk.h",
MAME_DIR .. "src/lib/formats/mfi_dsk.cpp",
MAME_DIR .. "src/lib/formats/mfi_dsk.h",
MAME_DIR .. "src/lib/formats/mfm_hd.cpp",
MAME_DIR .. "src/lib/formats/mfm_hd.h",
MAME_DIR .. "src/lib/formats/mz_cas.cpp",
MAME_DIR .. "src/lib/formats/mz_cas.h",
MAME_DIR .. "src/lib/formats/nanos_dsk.cpp",
MAME_DIR .. "src/lib/formats/nanos_dsk.h",
MAME_DIR .. "src/lib/formats/nascom_dsk.cpp",
MAME_DIR .. "src/lib/formats/nascom_dsk.h",
MAME_DIR .. "src/lib/formats/naslite_dsk.cpp",
MAME_DIR .. "src/lib/formats/naslite_dsk.h",
MAME_DIR .. "src/lib/formats/nes_dsk.cpp",
MAME_DIR .. "src/lib/formats/nes_dsk.h",
MAME_DIR .. "src/lib/formats/nfd_dsk.cpp",
MAME_DIR .. "src/lib/formats/nfd_dsk.h",
MAME_DIR .. "src/lib/formats/orao_cas.cpp",
MAME_DIR .. "src/lib/formats/orao_cas.h",
MAME_DIR .. "src/lib/formats/oric_dsk.cpp",
MAME_DIR .. "src/lib/formats/oric_dsk.h",
MAME_DIR .. "src/lib/formats/oric_tap.cpp",
MAME_DIR .. "src/lib/formats/oric_tap.h",
MAME_DIR .. "src/lib/formats/p6001_cas.cpp",
MAME_DIR .. "src/lib/formats/p6001_cas.h",
MAME_DIR .. "src/lib/formats/pasti_dsk.cpp",
MAME_DIR .. "src/lib/formats/pasti_dsk.h",
MAME_DIR .. "src/lib/formats/pc_dsk.cpp",
MAME_DIR .. "src/lib/formats/pc_dsk.h",
MAME_DIR .. "src/lib/formats/pc98_dsk.cpp",
MAME_DIR .. "src/lib/formats/pc98_dsk.h",
MAME_DIR .. "src/lib/formats/pc98fdi_dsk.cpp",
MAME_DIR .. "src/lib/formats/pc98fdi_dsk.h",
MAME_DIR .. "src/lib/formats/phc25_cas.cpp",
MAME_DIR .. "src/lib/formats/phc25_cas.h",
MAME_DIR .. "src/lib/formats/pk8020_dsk.cpp",
MAME_DIR .. "src/lib/formats/pk8020_dsk.h",
MAME_DIR .. "src/lib/formats/pmd_cas.cpp",
MAME_DIR .. "src/lib/formats/pmd_cas.h",
MAME_DIR .. "src/lib/formats/primoptp.cpp",
MAME_DIR .. "src/lib/formats/primoptp.h",
MAME_DIR .. "src/lib/formats/pyldin_dsk.cpp",
MAME_DIR .. "src/lib/formats/pyldin_dsk.h",
MAME_DIR .. "src/lib/formats/ql_dsk.cpp",
MAME_DIR .. "src/lib/formats/ql_dsk.h",
MAME_DIR .. "src/lib/formats/rk_cas.cpp",
MAME_DIR .. "src/lib/formats/rk_cas.h",
MAME_DIR .. "src/lib/formats/rx50_dsk.cpp",
MAME_DIR .. "src/lib/formats/rx50_dsk.h",
MAME_DIR .. "src/lib/formats/sc3000_bit.cpp",
MAME_DIR .. "src/lib/formats/sc3000_bit.h",
MAME_DIR .. "src/lib/formats/sf7000_dsk.cpp",
MAME_DIR .. "src/lib/formats/sf7000_dsk.h",
MAME_DIR .. "src/lib/formats/smx_dsk.cpp",
MAME_DIR .. "src/lib/formats/smx_dsk.h",
MAME_DIR .. "src/lib/formats/sol_cas.cpp",
MAME_DIR .. "src/lib/formats/sol_cas.h",
MAME_DIR .. "src/lib/formats/sorc_dsk.cpp",
MAME_DIR .. "src/lib/formats/sorc_dsk.h",
MAME_DIR .. "src/lib/formats/sorc_cas.cpp",
MAME_DIR .. "src/lib/formats/sorc_cas.h",
MAME_DIR .. "src/lib/formats/sord_cas.cpp",
MAME_DIR .. "src/lib/formats/sord_cas.h",
MAME_DIR .. "src/lib/formats/spc1000_cas.cpp",
MAME_DIR .. "src/lib/formats/spc1000_cas.h",
MAME_DIR .. "src/lib/formats/st_dsk.cpp",
MAME_DIR .. "src/lib/formats/st_dsk.h",
MAME_DIR .. "src/lib/formats/svi_cas.cpp",
MAME_DIR .. "src/lib/formats/svi_cas.h",
MAME_DIR .. "src/lib/formats/svi_dsk.cpp",
MAME_DIR .. "src/lib/formats/svi_dsk.h",
MAME_DIR .. "src/lib/formats/tandy2k_dsk.cpp",
MAME_DIR .. "src/lib/formats/tandy2k_dsk.h",
MAME_DIR .. "src/lib/formats/td0_dsk.cpp",
MAME_DIR .. "src/lib/formats/td0_dsk.h",
MAME_DIR .. "src/lib/formats/thom_cas.cpp",
MAME_DIR .. "src/lib/formats/thom_cas.h",
MAME_DIR .. "src/lib/formats/thom_dsk.cpp",
MAME_DIR .. "src/lib/formats/thom_dsk.h",
MAME_DIR .. "src/lib/formats/ti99_dsk.cpp",
MAME_DIR .. "src/lib/formats/ti99_dsk.h",
MAME_DIR .. "src/lib/formats/tiki100_dsk.cpp",
MAME_DIR .. "src/lib/formats/tiki100_dsk.h",
MAME_DIR .. "src/lib/formats/trd_dsk.cpp",
MAME_DIR .. "src/lib/formats/trd_dsk.h",
MAME_DIR .. "src/lib/formats/trs_cas.cpp",
MAME_DIR .. "src/lib/formats/trs_cas.h",
MAME_DIR .. "src/lib/formats/trs80_dsk.cpp",
MAME_DIR .. "src/lib/formats/trs80_dsk.h",
MAME_DIR .. "src/lib/formats/tvc_cas.cpp",
MAME_DIR .. "src/lib/formats/tvc_cas.h",
MAME_DIR .. "src/lib/formats/tvc_dsk.cpp",
MAME_DIR .. "src/lib/formats/tvc_dsk.h",
MAME_DIR .. "src/lib/formats/tzx_cas.cpp",
MAME_DIR .. "src/lib/formats/tzx_cas.h",
MAME_DIR .. "src/lib/formats/uef_cas.cpp",
MAME_DIR .. "src/lib/formats/uef_cas.h",
MAME_DIR .. "src/lib/formats/upd765_dsk.cpp",
MAME_DIR .. "src/lib/formats/upd765_dsk.h",
MAME_DIR .. "src/lib/formats/vdk_dsk.cpp",
MAME_DIR .. "src/lib/formats/vdk_dsk.h",
MAME_DIR .. "src/lib/formats/vector06_dsk.cpp",
MAME_DIR .. "src/lib/formats/vector06_dsk.h",
MAME_DIR .. "src/lib/formats/victor9k_dsk.cpp",
MAME_DIR .. "src/lib/formats/victor9k_dsk.h",
MAME_DIR .. "src/lib/formats/vg5k_cas.cpp",
MAME_DIR .. "src/lib/formats/vg5k_cas.h",
MAME_DIR .. "src/lib/formats/vt_cas.cpp",
MAME_DIR .. "src/lib/formats/vt_cas.h",
MAME_DIR .. "src/lib/formats/wavfile.cpp",
MAME_DIR .. "src/lib/formats/wavfile.h",
MAME_DIR .. "src/lib/formats/wd177x_dsk.cpp",
MAME_DIR .. "src/lib/formats/wd177x_dsk.h",
MAME_DIR .. "src/lib/formats/x07_cas.cpp",
MAME_DIR .. "src/lib/formats/x07_cas.h",
MAME_DIR .. "src/lib/formats/x1_tap.cpp",
MAME_DIR .. "src/lib/formats/x1_tap.h",
MAME_DIR .. "src/lib/formats/xdf_dsk.cpp",
MAME_DIR .. "src/lib/formats/xdf_dsk.h",
MAME_DIR .. "src/lib/formats/zx81_p.cpp",
MAME_DIR .. "src/lib/formats/zx81_p.h",
MAME_DIR .. "src/lib/formats/hxcmfm_dsk.cpp",
MAME_DIR .. "src/lib/formats/hxcmfm_dsk.h",
MAME_DIR .. "src/lib/formats/itt3030_dsk.cpp",
MAME_DIR .. "src/lib/formats/itt3030_dsk.h",
}
if (MACHINES["NETLIST"]~=null or _OPTIONS["with-tools"]) then
-- netlist now defines a project
dofile("netlist.lua")
end

View File

@ -205,8 +205,12 @@ end
links {
"optional",
"emu",
}
--if (STANDALONE~=true) then
links {
"formats",
}
--end
if #disasm_files > 0 then
links {
"dasm",

View File

@ -669,6 +669,16 @@ BUSES["VECTREX"] = true
--BUSES["Z88"] = true
--BUSES["ZORRO"] = true
--------------------------------------------------
-- specify used file formats
--------------------------------------------------
FORMATS["GUAB_DSK"] = true
FORMATS["AMI_DSK"] = true
FORMATS["SC3000_BIT"] = true
FORMATS["WD177X_DSK"] = true
--------------------------------------------------
-- this is the list of driver libraries that
-- comprise MAME plus mamedriv.o which contains

View File

@ -705,6 +705,148 @@ BUSES["X68K"] = true
BUSES["Z88"] = true
BUSES["ZORRO"] = true
--------------------------------------------------
-- specify used file formats
--------------------------------------------------
FORMATS["2D_DSK"] = true
FORMATS["A26_CAS"] = true
FORMATS["A5105_DSK"] = true
FORMATS["ABC800_DSK"] = true
FORMATS["ABCFD2_DSK"] = true
FORMATS["ACE_TAP"] = true
FORMATS["ACORN_DSK"] = true
FORMATS["ADAM_CAS"] = true
FORMATS["ADAM_DSK"] = true
FORMATS["AFS_DSK"] = true
FORMATS["AMI_DSK"] = true
FORMATS["AP2_DSK"] = true
FORMATS["APF_APT"] = true
FORMATS["APOLLO_DSK"] = true
FORMATS["APPLIX_DSK"] = true
FORMATS["APRIDISK"] = true
FORMATS["AP_DSK35"] = true
FORMATS["ASST128_DSK"] = true
FORMATS["ATARI_DSK"] = true
FORMATS["ATOM_DSK"] = true
FORMATS["ATOM_TAP"] = true
FORMATS["BASICDSK"] = true
FORMATS["BW12_DSK"] = true
FORMATS["BW2_DSK"] = true
FORMATS["C3040_DSK"] = true
FORMATS["C4040_DSK"] = true
FORMATS["C8280_DSK"] = true
FORMATS["CAMPLYNX_CAS"] = true
FORMATS["CAMPLYNX_DSK"] = true
FORMATS["CBM_CRT"] = true
FORMATS["CBM_TAP"] = true
FORMATS["CCVF_DSK"] = true
FORMATS["CD90_640_DSK"] = true
FORMATS["CGENIE_DSK"] = true
FORMATS["CGEN_CAS"] = true
FORMATS["COCO_CAS"] = true
FORMATS["COMX35_DSK"] = true
FORMATS["CONCEPT_DSK"] = true
FORMATS["COUPEDSK"] = true
FORMATS["CPIS_DSK"] = true
FORMATS["CSW_CAS"] = true
FORMATS["D64_DSK"] = true
FORMATS["D71_DSK"] = true
FORMATS["D80_DSK"] = true
FORMATS["D81_DSK"] = true
FORMATS["D82_DSK"] = true
FORMATS["DCP_DSK"] = true
FORMATS["DIM_DSK"] = true
FORMATS["DIP_DSK"] = true
FORMATS["DMK_DSK"] = true
FORMATS["EP64_DSK"] = true
FORMATS["DMV_DSK"] = true
FORMATS["ESQ16_DSK"] = true
FORMATS["ESQ8_DSK"] = true
FORMATS["EXCALI64_DSK"] = true
FORMATS["FC100_CAS"] = true
FORMATS["FDD_DSK"] = true
FORMATS["FLEX_DSK"] = true
FORMATS["FM7_CAS"] = true
FORMATS["FMSX_CAS"] = true
FORMATS["FMTOWNS_DSK"] = true
FORMATS["FSD_DSK"] = true
FORMATS["G64_DSK"] = true
FORMATS["GTP_CAS"] = true
FORMATS["HECTOR_MINIDISC"] = true
FORMATS["HECT_DSK"] = true
FORMATS["HECT_TAP"] = true
FORMATS["IQ151_DSK"] = true
FORMATS["ITT3030_DSK"] = true
FORMATS["JVC_DSK"] = true
FORMATS["KAYPRO_DSK"] = true
FORMATS["KC85_DSK"] = true
FORMATS["KC_CAS"] = true
FORMATS["KIM1_CAS"] = true
FORMATS["LVIV_LVT"] = true
FORMATS["M20_DSK"] = true
FORMATS["M5_DSK"] = true
FORMATS["MBEE_CAS"] = true
FORMATS["MFM_HD"] = true
FORMATS["MM_DSK"] = true
FORMATS["MSX_DSK"] = true
FORMATS["MZ_CAS"] = true
FORMATS["NANOS_DSK"] = true
FORMATS["NASCOM_DSK"] = true
FORMATS["NASLITE_DSK"] = true
FORMATS["NES_DSK"] = true
FORMATS["NFD_DSK"] = true
FORMATS["ORAO_CAS"] = true
FORMATS["ORIC_DSK"] = true
FORMATS["ORIC_TAP"] = true
FORMATS["P6001_CAS"] = true
FORMATS["PASTI_DSK"] = true
FORMATS["PC98FDI_DSK"] = true
FORMATS["PC98_DSK"] = true
FORMATS["PC_DSK"] = true
FORMATS["PHC25_CAS"] = true
FORMATS["PK8020_DSK"] = true
FORMATS["PMD_CAS"] = true
FORMATS["PRIMOPTP"] = true
FORMATS["PYLDIN_DSK"] = true
FORMATS["QL_DSK"] = true
FORMATS["RK_CAS"] = true
FORMATS["RX50_DSK"] = true
FORMATS["SC3000_BIT"] = true
FORMATS["SF7000_DSK"] = true
FORMATS["SMX_DSK"] = true
FORMATS["SOL_CAS"] = true
FORMATS["SORC_CAS"] = true
FORMATS["SORC_DSK"] = true
FORMATS["SORD_CAS"] = true
FORMATS["SPC1000_CAS"] = true
FORMATS["ST_DSK"] = true
FORMATS["SVI_CAS"] = true
FORMATS["SVI_DSK"] = true
FORMATS["TANDY2K_DSK"] = true
FORMATS["THOM_CAS"] = true
FORMATS["THOM_DSK"] = true
FORMATS["TI99_DSK"] = true
FORMATS["TIKI100_DSK"] = true
FORMATS["TRD_DSK"] = true
FORMATS["TRS80_DSK"] = true
FORMATS["TRS_CAS"] = true
FORMATS["TVC_CAS"] = true
FORMATS["TVC_DSK"] = true
FORMATS["TZX_CAS"] = true
FORMATS["UEF_CAS"] = true
FORMATS["UPD765_DSK"] = true
FORMATS["VDK_DSK"] = true
FORMATS["VECTOR06_DSK"] = true
FORMATS["VG5K_CAS"] = true
FORMATS["VICTOR9K_DSK"] = true
FORMATS["VT_CAS"] = true
FORMATS["WD177X_DSK"] = true
FORMATS["X07_CAS"] = true
FORMATS["X1_TAP"] = true
FORMATS["XDF_DSK"] = true
FORMATS["ZX81_P"] = true
--------------------------------------------------
-- this is the list of driver libraries that
-- comprise MESS plus messdriv.*", which contains

View File

@ -130,7 +130,7 @@ protected:
virtual void state_string_export(const device_state_entry &entry, std::string &str) const override;
virtual void interrupt(int int_num, int trap = 1);
bool common_op(UINT8 op);
virtual bool common_op(UINT8 op);
// Accessing memory and io
inline UINT8 read_byte(UINT32 addr);

View File

@ -39,51 +39,6 @@ const device_type MC6852 = &device_creator<mc6852_device>;
#define LOG 0
#define S_RDA 0x01
#define S_TDRA 0x02
#define S_DCD 0x04
#define S_CTS 0x08
#define S_TUF 0x10
#define S_RX_OVRN 0x20
#define S_PE 0x40
#define S_IRQ 0x80
#define C1_RX_RS 0x01
#define C1_TX_RS 0x02
#define C1_STRIP_SYNC 0x04
#define C1_CLEAR_SYNC 0x08
#define C1_TIE 0x10
#define C1_RIE 0x20
#define C1_AC_MASK 0xc0
#define C1_AC_C2 0x00
#define C1_AC_C3 0x40
#define C1_AC_SYNC 0x80
#define C1_AC_TX_FIFO 0xc0
#define C2_PC1 0x01
#define C2_PC2 0x02
#define C2_1_2_BYTE 0x04
#define C2_WS_MASK 0x38
#define C2_WS_6_E 0x00
#define C2_WS_6_O 0x08
#define C2_WS_7 0x10
#define C2_WS_8 0x18
#define C2_WS_7_E 0x20
#define C2_WS_7_O 0x28
#define C2_WS_8_E 0x30
#define C2_WS_8_O 0x38
#define C2_TX_SYNC 0x40
#define C2_EIE 0x80
#define C3_E_I_SYNC 0x01
#define C3_1_2_SYNC 0x02
#define C3_CLEAR_CTS 0x04
#define C3_CTUF 0x08
//**************************************************************************
// LIVE DEVICE
@ -122,6 +77,9 @@ void mc6852_device::device_start()
m_write_sm_dtr.resolve_safe();
m_write_tuf.resolve_safe();
set_rcv_rate(m_rx_clock);
set_tra_rate(m_tx_clock);
// register for state saving
save_item(NAME(m_status));
save_item(NAME(m_cr));
@ -146,17 +104,16 @@ void mc6852_device::device_reset()
m_rx_fifo = std::queue<UINT8>();
m_tx_fifo = std::queue<UINT8>();
transmit_register_reset();
receive_register_reset();
set_rcv_rate(m_rx_clock);
set_tra_rate(m_tx_clock);
/* set receiver shift register to all 1's */
m_rsr = 0xff;
transmit_register_reset();
/* reset and inhibit receiver/transmitter sections */
m_cr[0] |= (C1_TX_RS | C1_RX_RS);
m_cr[1] &= ~(C2_EIE | C2_PC2 | C2_PC1);
m_status &= ~S_TDRA;
/* set receiver shift register to all 1's */
m_rsr = 0xff;
}
@ -235,18 +192,40 @@ WRITE8_MEMBER( mc6852_device::write )
{
switch (m_cr[0] & C1_AC_MASK)
{
case C1_AC_C2:
case C1_AC_C2: {
/* control 2 */
if (LOG) logerror("MC6852 '%s' Control 2 %02x\n", tag(), data);
m_cr[1] = data;
int data_bit_count;
parity_t parity;
stop_bits_t stop_bits = STOP_BITS_1;
switch (data & C2_WS_MASK)
{
case 0: data_bit_count = 6; parity = PARITY_EVEN; break;
case 1: data_bit_count = 6; parity = PARITY_ODD; break;
case 2: data_bit_count = 7; parity = PARITY_NONE; break;
case 3: data_bit_count = 8; parity = PARITY_NONE; break;
case 4: data_bit_count = 7; parity = PARITY_EVEN; break;
case 5: data_bit_count = 7; parity = PARITY_ODD; break;
case 6: data_bit_count = 8; parity = PARITY_EVEN; break;
case 7: data_bit_count = 8; parity = PARITY_ODD; break;
}
set_data_frame(1, data_bit_count, parity, stop_bits);
}
break;
case C1_AC_C3:
/* control 3 */
if (LOG) logerror("MC6852 '%s' Control 3 %02x\n", tag(), data);
m_cr[2] = data;
break;
case C1_AC_SYNC:
/* sync code */
if (LOG) logerror("MC6852 '%s' Sync Code %02x\n", tag(), data);
m_scr = data;
break;
@ -254,6 +233,7 @@ WRITE8_MEMBER( mc6852_device::write )
/* transmit data FIFO */
if (m_tx_fifo.size() < 3)
{
if (LOG) logerror("MC6852 '%s' Transmit FIFO %02x\n", tag(), data);
m_tx_fifo.push(data);
}
break;
@ -261,6 +241,8 @@ WRITE8_MEMBER( mc6852_device::write )
}
else
{
if (LOG) logerror("MC6852 '%s' Control 1 %02x\n", tag(), data);
/* receiver reset */
if (data & C1_RX_RS)
{
@ -274,6 +256,8 @@ WRITE8_MEMBER( mc6852_device::write )
m_status &= ~(S_RX_OVRN | S_PE | S_DCD | S_RDA);
m_rsr = 0xff;
receive_register_reset();
}
/* transmitter reset */
@ -289,6 +273,8 @@ WRITE8_MEMBER( mc6852_device::write )
if (LOG) logerror("MC6852 '%s' Transmitter Reset\n", tag());
m_status &= ~(S_TUF | S_CTS | S_TDRA);
transmit_register_reset();
}
if (LOG)

View File

@ -99,6 +99,57 @@ protected:
virtual void rcv_complete() override;
private:
enum
{
S_IRQ = 0x80,
S_PE = 0x40,
S_RX_OVRN = 0x20,
S_TUF = 0x10,
S_CTS = 0x08,
S_DCD = 0x04,
S_TDRA = 0x02,
S_RDA = 0x01
};
enum
{
C1_AC_MASK = 0xc0,
C1_AC_C2 = 0x00,
C1_AC_C3 = 0x40,
C1_AC_SYNC = 0x80,
C1_AC_TX_FIFO = 0xc0,
C1_AC2 = 0x80,
C1_AC1 = 0x40,
C1_RIE = 0x20,
C1_TIE = 0x10,
C1_CLEAR_SYNC = 0x08,
C1_STRIP_SYNC = 0x04,
C1_TX_RS = 0x02,
C1_RX_RS = 0x01
};
enum
{
C2_EIE = 0x80,
C2_TX_SYNC = 0x40,
C2_WS_MASK = 0x38,
C2_WS3 = 0x20,
C2_WS2 = 0x10,
C2_WS1 = 0x08,
C2_1_2_BYTE = 0x04,
C2_PC_MASK = 0x03,
C2_PC2 = 0x02,
C2_PC1 = 0x01
};
enum
{
C3_CTUF = 0x08,
C3_CTS = 0x04,
C3_1_2_SYNC = 0x02,
C3_E_I_SYNC = 0x01
};
devcb_write_line m_write_tx_data;
devcb_write_line m_write_irq;
devcb_write_line m_write_sm_dtr;

View File

@ -1254,53 +1254,6 @@ void device_image_interface::update_names(const device_type device_type, const c
}
}
//-------------------------------------------------
// software_name_split - helper that splits a
// software_list:software:part string into
// separate software_list, software, and part
// strings.
//
// str1:str2:str3 => swlist_name - str1, swname - str2, swpart - str3
// str1:str2 => swlist_name - nullptr, swname - str1, swpart - str2
// str1 => swlist_name - nullptr, swname - str1, swpart - nullptr
//
// Notice however that we could also have been
// passed a string swlist_name:swname, and thus
// some special check has to be performed in this
// case.
//-------------------------------------------------
void device_image_interface::software_name_split(const std::string &swlist_swname, std::string &swlist_name, std::string &swname, std::string &swpart)
{
// reset all output parameters
swlist_name.clear();
swname.clear();
swpart.clear();
// if no colon, this is the swname by itself
auto split1 = swlist_swname.find_first_of(':');
if (split1 == std::string::npos)
{
swname = swlist_swname;
return;
}
// if one colon, it is the swname and swpart alone
auto split2 = swlist_swname.find_first_of(':', split1 + 1);
if (split2 == std::string::npos)
{
swname = swlist_swname.substr(0, split1);
swpart = swlist_swname.substr(split1 + 1);
return;
}
// if two colons present, split into 3 parts
swlist_name = swlist_swname.substr(0, split1);
swname = swlist_swname.substr(split1 + 1, split2 - (split1 + 1));
swpart = swlist_swname.substr(split2 + 1);
}
//-------------------------------------------------
// find_software_item
//-------------------------------------------------
@ -1309,7 +1262,8 @@ const software_part *device_image_interface::find_software_item(const std::strin
{
// split full software name into software list name and short software name
std::string swlist_name, swinfo_name, swpart_name;
software_name_split(path, swlist_name, swinfo_name, swpart_name);
if (!software_name_parse(path, &swlist_name, &swinfo_name, &swpart_name))
return nullptr;
// determine interface
const char *interface = nullptr;

View File

@ -238,7 +238,6 @@ public:
bool load_software(software_list_device &swlist, const char *swname, const rom_entry *entry);
int reopen_for_write(const std::string &path);
static void software_name_split(const std::string &swlist_swname, std::string &swlist_name, std::string &swname, std::string &swpart);
static void static_set_user_loadable(device_t &device, bool user_loadable) {
device_image_interface *img;
if (!device.interface(img))

View File

@ -10,19 +10,13 @@
***************************************************************************/
#include <ctype.h>
#include <regex>
#include "emu.h"
#include "emuopts.h"
#include "image.h"
#include "config.h"
#include "xmlfile.h"
//**************************************************************************
// STATIC VARIABLES
//**************************************************************************
static std::regex s_potenial_softlist_regex("\\w+(\\:\\w+\\:\\w+)?");
#include "softlist.h"
//**************************************************************************
@ -54,7 +48,7 @@ image_manager::image_manager(running_machine &machine)
image.set_init_phase();
// try as a softlist
if (std::regex_match(image_name, s_potenial_softlist_regex))
if (software_name_parse(image_name))
result = image.load_software(image_name);
// failing that, try as an image

View File

@ -8,10 +8,20 @@
***************************************************************************/
#include <regex>
#include "softlist.h"
#include "hash.h"
#include "expat.h"
//**************************************************************************
// STATIC VARIABLES
//**************************************************************************
static std::regex s_potenial_softlist_regex("\\w+(\\:\\w+)*");
//**************************************************************************
// FEATURE LIST ITEM
//**************************************************************************
@ -808,3 +818,65 @@ void softlist_parser::parse_soft_end(const char *tagname)
}
}
//-------------------------------------------------
// software_name_parse - helper that splits a
// software_list:software:part string into
// separate software_list, software, and part
// strings.
//
// str1:str2:str3 => swlist_name - str1, swname - str2, swpart - str3
// str1:str2 => swlist_name - nullptr, swname - str1, swpart - str2
// str1 => swlist_name - nullptr, swname - str1, swpart - nullptr
//
// Notice however that we could also have been
// passed a string swlist_name:swname, and thus
// some special check has to be performed in this
// case.
//-------------------------------------------------
bool software_name_parse(const std::string &text, std::string *swlist_name, std::string *swname, std::string *swpart)
{
// first, sanity check the arguments
if (!std::regex_match(text, s_potenial_softlist_regex))
return false;
// reset all output parameters (if specified of course)
if (swlist_name != nullptr)
swlist_name->clear();
if (swname != nullptr)
swname->clear();
if (swpart != nullptr)
swpart->clear();
// if no colon, this is the swname by itself
auto split1 = text.find_first_of(':');
if (split1 == std::string::npos)
{
if (swname != nullptr)
*swname = text;
return true;
}
// if one colon, it is the swname and swpart alone
auto split2 = text.find_first_of(':', split1 + 1);
if (split2 == std::string::npos)
{
if (swname != nullptr)
*swname = text.substr(0, split1);
if (swpart != nullptr)
*swpart = text.substr(split1 + 1);
return true;
}
// if two colons present, split into 3 parts
if (swlist_name != nullptr)
*swlist_name = text.substr(0, split1);
if (swname != nullptr)
*swname = text.substr(split1 + 1, split2 - (split1 + 1));
if (swpart != nullptr)
*swpart = text.substr(split2 + 1);
return true;
}

View File

@ -205,5 +205,10 @@ private:
};
// ----- Helpers -----
// parses a software name (e.g. - 'apple2e:agentusa:flop1') into its consituent parts (returns false if cannot parse)
bool software_name_parse(const std::string &text, std::string *swlist_name = nullptr, std::string *swname = nullptr, std::string *swpart = nullptr);
#endif // __SOFTLIST_H_

View File

@ -16,7 +16,6 @@
- RAM cards
- clock cards
- floppy 8048
- hires graphics
- brightness/contrast
- MC6852
- codec sound
@ -86,46 +85,75 @@ INPUT_PORTS_END
// MC6845
//-------------------------------------------------
#define CODE_NON_DISPLAY 0x1000
#define CODE_UNDERLINE 0x2000
#define CODE_LOW_INTENSITY 0x4000
#define CODE_REVERSE_VIDEO 0x8000
#define DC_SECRET 0x1000
#define DC_UNDLN 0x2000
#define DC_LOWINT 0x4000
#define DC_RVS 0x8000
MC6845_UPDATE_ROW( victor9k_state::crtc_update_row )
{
int hires = BIT(ma, 13);
int dot_addr = BIT(ma, 12);
int width = hires ? 16 : 10;
if (hires) x_count = 0x32;
if (m_hires != hires)
{
m_hires = hires;
m_crtc->set_clock(XTAL_30MHz / width);
m_crtc->set_hpixels_per_column(width);
}
address_space &program = m_maincpu->space(AS_PROGRAM);
const rgb_t *palette = m_palette->palette()->entry_list_raw();
int x = hbp;
if (BIT(ma, 13))
{
fatalerror("Graphics mode not supported!\n");
}
else
{
UINT16 video_ram_addr = (ma & 0xfff) << 1;
offs_t aa = (ma & 0x7ff) << 1;
for (int sx = 0; sx < x_count; sx++)
for (int sx = 0; sx < x_count; sx++)
{
UINT16 dc = (m_video_ram[aa + 1] << 8) | m_video_ram[aa];
offs_t ab = (dot_addr << 15) | ((dc & 0x7ff) << 4) | (ra & 0x0f);
UINT16 dd = program.read_word(ab << 1);
int cursor = (sx == cursor_x) ? 1 : 0;
int undln = !((dc & DC_UNDLN) && BIT(dd, 15)) ? 2 : 0;
int rvs = (dc & DC_RVS) ? 4 : 0;
int secret = (dc & DC_SECRET) ? 1 : 0;
int lowint = (dc & DC_LOWINT) ? 1 : 0;
for (int bit = 0; bit < width; bit++)
{
UINT16 code = (m_video_ram[video_ram_addr + 1] << 8) | m_video_ram[video_ram_addr];
UINT32 char_ram_addr = (BIT(ma, 12) << 16) | ((code & 0xff) << 5) | (ra << 1);
UINT16 data = program.read_word(char_ram_addr);
int pixel;
if (code & CODE_REVERSE_VIDEO) data ^= 0xffff;
if (code & CODE_NON_DISPLAY) data = 0;
if (sx == cursor_x) data = 0xffff;
for (int x = 0; x <= 10; x++)
switch (rvs | undln | cursor)
{
int pixel = BIT(data, x);
int color = palette[pixel && de];
if (!(code & CODE_LOW_INTENSITY) && color) color = 2;
case 0: case 5:
pixel = 1;
break;
bitmap.pix32(vbp + y, hbp + x + sx*10) = color;
case 1: case 4:
pixel = 0;
break;
case 2: case 7:
pixel = !(!(BIT(dd, bit) && !secret));
break;
case 3: case 6:
pixel = !(BIT(dd, bit) && !secret);
break;
}
video_ram_addr += 2;
video_ram_addr &= 0xfff;
int color = palette[pixel && de];
if (!lowint && color) color = 2;
bitmap.pix32(vbp + y, x++) = color;
}
aa += 2;
aa &= 0xfff;
}
}
@ -473,7 +501,7 @@ static MACHINE_CONFIG_START( victor9k, victor9k_state )
MCFG_PALETTE_ADD_MONOCHROME_HIGHLIGHT("palette")
MCFG_MC6845_ADD(HD46505S_TAG, HD6845, SCREEN_TAG, XTAL_30MHz/11) // HD6845 == HD46505S
MCFG_MC6845_ADD(HD46505S_TAG, HD6845, SCREEN_TAG, XTAL_30MHz/10) // HD6845 == HD46505S
MCFG_MC6845_SHOW_BORDER_AREA(true)
MCFG_MC6845_CHAR_WIDTH(10)
MCFG_MC6845_UPDATE_ROW_CB(victor9k_state, crtc_update_row)

View File

@ -138,6 +138,7 @@ public:
// video state
int m_brt;
int m_cont;
int m_hires;
// interrupts
int m_via1_irq;