mirror of
https://github.com/holub/mame
synced 2025-10-04 16:34:53 +03:00
Merge branch 'master' of https://github.com/mamedev/mame
This commit is contained in:
commit
be807d81ea
1
makefile
1
makefile
@ -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) \
|
||||
|
@ -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('\\','/'))
|
||||
|
@ -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
1722
scripts/src/formats.lua
Normal file
File diff suppressed because it is too large
Load Diff
@ -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
|
||||
|
@ -205,8 +205,12 @@ end
|
||||
links {
|
||||
"optional",
|
||||
"emu",
|
||||
}
|
||||
--if (STANDALONE~=true) then
|
||||
links {
|
||||
"formats",
|
||||
}
|
||||
--end
|
||||
if #disasm_files > 0 then
|
||||
links {
|
||||
"dasm",
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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)
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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))
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
@ -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_
|
||||
|
||||
|
@ -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)
|
||||
|
@ -138,6 +138,7 @@ public:
|
||||
// video state
|
||||
int m_brt;
|
||||
int m_cont;
|
||||
int m_hires;
|
||||
|
||||
// interrupts
|
||||
int m_via1_irq;
|
||||
|
Loading…
Reference in New Issue
Block a user