diff options
author | Robbbert <Robbbert@users.noreply.github.com> | 2021-07-22 22:08:57 +1000 |
---|---|---|
committer | Robbbert <Robbbert@users.noreply.github.com> | 2021-07-22 22:08:57 +1000 |
commit | 7fe01c8ff0dbf5c6c2539dc000b8ee9a498cd221 (patch) | |
tree | c4a12ea368158c92a4d1ce30202c3ecf27678b25 | |
parent | e76c745eaacab98baa69052275d26c4f612639cd (diff) |
New working software list additions
-----------------------------------
pdp1_ptp: Spacewar!, Munching Squares, DDT [Robbbert]
-rw-r--r-- | hash/pdp1_ptp.xml | 78 | ||||
-rw-r--r-- | src/mame/drivers/pdp1.cpp | 2 | ||||
-rw-r--r-- | src/mame/includes/pdp1.h | 3 |
3 files changed, 83 insertions, 0 deletions
diff --git a/hash/pdp1_ptp.xml b/hash/pdp1_ptp.xml new file mode 100644 index 00000000000..ec3bbf729c2 --- /dev/null +++ b/hash/pdp1_ptp.xml @@ -0,0 +1,78 @@ +<?xml version="1.0"?> +<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd"> +<!-- +license:CC0 + +Note that there are multiple versions of Spacewar and Munching. The ones used here were chosen at random after confirming they worked. + +--> +<softwarelist name="pdp1_ptp" description="PDP-1 Paper Tape Reader images"> + +<!-- Spacewar! + +Load with Ctrl-Enter + + +Action Fat Ship Thin Ship +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Turn Left S Right-arrow +Turn Right A Left-arrow +Thrust D Up-arrow +Fire F Down-arrow +Hyperspace Z / + + +Miscellaneous +~~~~~~~~~~~~~ +Toggle on/off main star and its gravity: Num-6 +Toggle on/off background stars: Num-4 --> + + <software name="spacewar"> + <description>Spacewar!</description> + <year>1962</year> + <publisher><unknown></publisher> + <info name="usage" value="Hold Ctrl, hit Enter. Fat ship = S,A,D,F,Z. Thin ship = arrows and slash. See software list for more info." /> + <part name="ptp" interface="pdp1_ptp"> + <dataarea name="ptap" size="0x3b0c"> + <rom name="spacewar.rim" size="0x3b0c" crc="dd16c4c9" sha1="7ab31f3330362b993097ed0d57ad0d6e83c17c6d"/> + </dataarea> + </part> + </software> + + +<!-- Munching Squares + +Load with Ctrl-Enter + + +At start, it will appear to do nothing. You need to adjust one or more +of the test-word switches (Ctrl+A/S/D/F/G/H/J/K/L/;/\/Z/X/C/V/B/N). + +Ctrl+J,K or L will produce the "expected" square patterns. --> + + <software name="munching"> + <description>Munching Squares</description> + <year>1962</year> + <publisher><unknown></publisher> + <info name="usage" value="Hold Ctrl, hit Enter. Press Ctrl J to see patterns. See software list for more info." /> + <part name="ptp" interface="pdp1_ptp"> + <dataarea name="ptap" size="0x0036"> + <rom name="munching.rim" size="0x0036" crc="f0c4436e" sha1="e0ca64612744470107ee3c4fb761a6c2ada96854"/> + </dataarea> + </part> + </software> + +<!-- World's first interactive debugger. Operation is quite complex, recommended to download the manual and go from there. --> + <software name="ddt"> + <description>DDT debugger</description> + <year>1964</year> + <publisher>DEC</publisher> + <info name="usage" value="Hold Ctrl, hit Enter. Download and read the manual." /> + <part name="ptp" interface="pdp1_ptp"> + <dataarea name="ptap" size="0x1a6b"> + <rom name="ddt.rim" size="0x1a6b" crc="1f63add7" sha1="ce6ec048a7523b49af3d59763a47cd6a84cc0d67"/> + </dataarea> + </part> + </software> + +</softwarelist> diff --git a/src/mame/drivers/pdp1.cpp b/src/mame/drivers/pdp1.cpp index 504bbbc7d62..980c6740601 100644 --- a/src/mame/drivers/pdp1.cpp +++ b/src/mame/drivers/pdp1.cpp @@ -1826,6 +1826,8 @@ void pdp1_state::pdp1(machine_config &config) GFXDECODE(config, m_gfxdecode, m_palette, gfx_pdp1); PALETTE(config, m_palette, FUNC(pdp1_state::pdp1_palette), total_colors_needed + std::size(pdp1_pens), total_colors_needed); + + SOFTWARE_LIST(config, "ptp_list").set_original("pdp1_ptp"); } /* diff --git a/src/mame/includes/pdp1.h b/src/mame/includes/pdp1.h index c40d4fc739c..d96d7470381 100644 --- a/src/mame/includes/pdp1.h +++ b/src/mame/includes/pdp1.h @@ -12,6 +12,7 @@ #include "cpu/pdp1/pdp1.h" #include "video/crt.h" #include "emupal.h" +#include "softlist_dev.h" /* defines for each bit and mask in input port "CSW" */ enum @@ -177,6 +178,7 @@ class pdp1_readtape_image_device : public device_t, public: // construction/destruction pdp1_readtape_image_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0U); + virtual const char *image_interface() const noexcept override { return "pdp1_ptp"; } auto st_ptr() { return m_st_ptr.bind(); } @@ -201,6 +203,7 @@ protected: virtual image_init_result call_load() override; virtual void call_unload() override; + virtual const software_list_loader &get_software_list_loader() const override { return image_software_list_loader::instance(); } public: TIMER_CALLBACK_MEMBER(reader_callback); |