Technics KN5000 musical keyboard (#12649)

* New systems marked not working
------------------------------
technics/kn5000.cpp: Technics SX-KN5000 PCM Keyboard [Felipe Sanches, Angelo Salese]
This commit is contained in:
Felipe Corrêa da Silva Sanches 2024-08-17 12:02:11 -03:00 committed by GitHub
parent c23a22d77b
commit 3bab994f2f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 1735 additions and 0 deletions

887
src/mame/layout/kn5000.lay Normal file
View File

@ -0,0 +1,887 @@
<?xml version="1.0"?>
<!--
license:CC0-1.0
-->
<mamelayout version="2">
<!-- define elements -->
<element name="vector_art">
<image><data><![CDATA[
<svg width="1280" height="640" viewBox="0 0 338.6 169.3">
<g transform="translate(47.95,-15.32)">
<path style="stroke:#222;stroke-width:0.2;" d="m 189.36,21.12 v 5.13 m 0.69,-5.17 v 5.20 M 51.92,21.12 v 5.13 m 0.69,-5.17 v 5.20 m 125.41,-2.17 -0.03,2.19 h 1.67 l -0.66,-2.18 -0.97,-0 z M 69.13,165.59 c -0.21,1.74 -0.34,3.5 -0.38,5.26 0.036,1.76 0.16,3.51 0.38,5.26 H 172.72 c 0.21,-1.74 0.34,-3.5 0.38,-5.26 -0,-1.76 -0.09,-3.51 -0.27,-5.26 h -41.75 c -3.15,2.10 -6.85,3.23 -10.63,3.23 -3.78,-0 -7.48,-1.13 -10.63,-3.23 z M 290.58,26.85 C 258.15,24.17 225.69,21.81 193.14,21.16 H 49.61 c -32.55,0.44 -65,3.19 -97.44,5.7 m 0,101.11 H 290.58 m -83.17,0.03 -7.89,-96.95 c -0.21,-2.62 -2.11,-4.74 -4.74,-4.74 H 47.6 c -2.62,0 -4.54,2.1 -4.74,4.74 l -7.1,96.95" />
<path style="fill:#cba47d" d="m 184,28 v 0.6 h -3 v 0.46 h 5.43 v -0.3 l -1.82,-0.73 z M -32.27,74.75 c -0.1,0 -0.09,0.06 -0.09,0.13 v 1.92 c 0,0 -0.05,0 -0.09,0 -0.29,-0.02 -0.61,0.2 -0.64,0.5 -0.03,0.24 0.22,0.44 0.45,0.41 0.29,-0.03 0.5,-0.32 0.46,-0.61 v -1.52 c 0.02,-0.02 0.06,0.03 0.08,0.03 0.23,0.14 0.43,0.36 0.45,0.65 0.02,0.22 -0.05,0.44 -0.13,0.64 0.25,-0.31 0.33,-0.76 0.16,-1.13 -0.09,-0.21 -0.29,-0.34 -0.4,-0.54 a 1.08,1.08 0 0 1 -0.16,-0.44 c -0.02,-0.03 -0.06,-0.04 -0.09,-0.04 z m 54.37,105 0.97,2.56 1.07,-2.6 z m 44.4,0 0.97,2.56 1.07,-2.56 z m 54.5,0 0.97,2.6 1.1,-2.6 z" />
</g></svg>
]]></data></image>
</element>
<element name="red_led" defstate="0">
<disk state="1">
<color red="1" green="0.0" blue="0.0"/>
</disk>
<disk state="0">
<color red="0.2" green="0.0" blue="0.0"/>
</disk>
</element>
<element name="green_led" defstate="0">
<disk state="1">
<color red="0.0" green="1.0" blue="0.0"/>
</disk>
<disk state="0">
<color red="0.0" green="0.2" blue="0.0"/>
</disk>
</element>
<element name="light_grey_round_button">
<disk><color red="0.2" green="0.2" blue="0.2"/></disk>
</element>
<element name="dark_grey_round_button">
<disk><color red="0.1" green="0.1" blue="0.1"/></disk>
</element>
<element name="blueish_gray_button">
<rect><color red="0.36" green="0.39" blue="0.41"/></rect>
</element>
<element name="light_grey_pill_button">
<disk><color red="0.2" green="0.2" blue="0.2"/></disk>
</element>
<element name="dark_grey_pill_button">
<disk><color red="0.1" green="0.1" blue="0.1"/></disk>
</element>
<element name="dark_grey_button">
<rect><color red="0.1" green="0.1" blue="0.1"/></rect>
</element>
<element name="light_grey_button">
<rect><color red="0.2" green="0.2" blue="0.2"/></rect>
</element>
<element name="button_split">
<rect><color red="0" green="0" blue="0"/></rect>
</element>
<element name="line">
<rect><color red="0.79" green="0.64" blue="0.49" /></rect>
</element>
<element name="screen_border">
<rect><color red="0.05" green="0.05" blue="0.05"/></rect>
</element>
<element name="maincpu_text"><text string="MAIN CPU"><color red="0.3" green="0.3" blue="0.3" /></text></element>
<element name="subcpu_text"><text string="SUB CPU"><color red="0.3" green="0.3" blue="0.3" /></text></element>
<element name="msp_title"><text string="MANUAL SEQUENCE PADS"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="demo_text"><text string="DEMO"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="msp_bank_text"><text string="BANK"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="msp_menu_text"><text string="MENU"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="msp_stop_record_text"><text string="STOP/RECORD"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="msp_1_text"><text string="1"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="msp_2_text"><text string="2"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="msp_3_text"><text string="3"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="msp_4_text"><text string="4"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="msp_5_text"><text string="5"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="msp_6_text"><text string="6"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="screen_display_angle_text1"><text string="DISPLAY"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="screen_display_angle_text2"><text string=" ANGLE "><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="screen_contrast_text"><text string="CONTRAST"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="screen_help_text"><text string="HELP"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="screen_other_parts_text1"><text string=" OTHER "><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="screen_other_parts_text2"><text string="PARTS/TR"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="screen_mute_text"><text string="MUTE"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="screen_page_text"><text string="PAGE"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="screen_display_hold_text1"><text string="DISPLAY"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="screen_display_hold_text2"><text string=" HOLD "><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="screen_exit_text"><text string="EXIT"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="sequencer_title"><text string="SEQUENCER"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="sequencer_play_text"><text string="PLAY"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="sequencer_easy_rec_text"><text string="EASY REC"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="sequencer_menu_text"><text string="MENU"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="menu_title"><text string="MENU"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="menu_sound_text"><text string="SOUND"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="menu_control_text"><text string="CONTROL"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="menu_midi_text"><text string="MIDI"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="menu_disk_text"><text string="DISK"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="menu_disk_load_text"><text string="LOAD"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="pm_set_text"><text string="SET"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="pm_next_bank_text"><text string="NEXT BANK"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="pm_bank_view_text"><text string="BANKVIEW"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="panel_memory_title"><text string="PANEL MEMORY"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="pm_1_text"><text string="1"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="pm_2_text"><text string="2"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="pm_3_text"><text string="3"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="pm_4_text"><text string="4"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="pm_5_text"><text string="5"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="pm_6_text"><text string="6"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="pm_7_text"><text string="7"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="pm_8_text"><text string="8"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="rhythm_group_title"><text string="RHYTHM GROUP"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="standard_rock_text1"><text string="STANDARD"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="standard_rock_text2"><text string=" ROCK "><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="r_n_rool_n_blues_text1"><text string="R &amp; ROLL"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="r_n_rool_n_blues_text2"><text string="&amp; BLUES"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="pop_n_ballad_text1"><text string="POP &amp;"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="pop_n_ballad_text2"><text string="BALLAD"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="funk_n_fusion_text1"><text string="FUNK &amp;"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="funk_n_fusion_text2"><text string="FUSION"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="soul_n_modern_dance_text1"><text string=" SOUL &amp; "><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="soul_n_modern_dance_text2"><text string="MODERN DANCE"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="big_band_n_swing_text1"><text string="BIG BAND"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="big_band_n_swing_text2"><text string=" &amp; SWING "><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="jazz_combo_text1"><text string=" JAZZ "><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="jazz_combo_text2"><text string="COMBO"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="us_trad_text"><text string="U.S. TRAD"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="country_text"><text string="COUNTRY"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="latin_text"><text string="LATIN"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="march_n_waltz_text1"><text string="MARCH &amp;"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="march_n_waltz_text2"><text string="WALTZ"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="party_time_text1"><text string="PARTY"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="party_time_text2"><text string=" TIME "><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="showtime_n_trad_dance_text1"><text string="SHOWTIME &amp;"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="showtime_n_trad_dance_text2"><text string="TRAD DANCE"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="world_text"><text string="WORLD"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="custom_text"><text string="CUSTOM"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="composer_title"><text string="COMPOSER"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="sound_arranger_title"><text string="SOUND ARRANGER"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="composer_memory_text"><text string="MEMORY"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="composer_menu_text"><text string="MENU"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="sound_arranger_set_text"><text string="SET"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="sound_arranger_on_off_text"><text string="ON/OFF"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="music_style_arranger_text1"><text string="MUSIC STYLE"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="music_style_arranger_text2"><text string=" ARRANGER "><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="split_point_text1"><text string="SPLIT"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="split_point_text2"><text string="POINT"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="auto_play_chord_text1"><text string="AUTO PLAY"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="auto_play_chord_text2"><text string=" CHORD "><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="variation_n_msa_title"><text string="VARIATION &amp; MSA"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="variation_1_text"><text string="1"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="variation_2_text"><text string="2"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="variation_3_text"><text string="3"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="variation_4_text"><text string="4"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="music_stylist_text"><text string="MUSIC STYLIST"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="one_touch_play_text"><text string="ONE TOUCH PLAY"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="fade_text"><text string="FADE"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="fade_in_text"><text string="IN"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="fade_out_text"><text string="OUT"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="tempo_program_text1"><text string="TEMPO/"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="tempo_program_text2"><text string="PROGRAM"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="transpose_text"><text string="TRANSPOSE"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="transpose_minus_text"><text string="-"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="transpose_plus_text"><text string="+"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="r1_r2_octave_text"><text string="R1/R2 OCTAVE"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="octave_minus_text"><text string="-"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="octave_plus_text"><text string="+"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="fill_in_text"><text string="FILL IN"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="fill_in_text1"><text string="1"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="fill_in_text2"><text string="2"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="intro_n_ending_text"><text string="INTRO &amp; ENDING"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="intro_n_ending_text1"><text string="1"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="intro_n_ending_text2"><text string="2"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="sequencer_reset_text1"><text string="SEQUENCER"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="sequencer_reset_text2"><text string=" RESET "><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="count_intro_text1"><text string="COUNT"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="count_intro_text2"><text string="INTRO"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="start_stop_text"><text string="START/STOP"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="1234beat_text1"><text string="1"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="1234beat_text2"><text string="2"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="1234beat_text3"><text string="3"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="1234beat_text4"><text string="4 BEAT"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="synchro_n_break_text1"><text string="SYNCHRO &amp;"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="synchro_n_break_text2"><text string=" BREAK "><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="tap_tempo_text1"><text string=" TAP "><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="tap_tempo_text2"><text string="TEMPO"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="effect_title"><text string="EFFECT"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="sustain_text"><text string="SUSTAIN"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="digital_effect_text1"><text string="DIGITAL"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="digital_effect_text2"><text string="EFFECT"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="dsp_effect_text1"><text string="DSP"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="dsp_effect_text2"><text string="EFFECT"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="digital_reverb_text1"><text string="DIGITAL"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="digital_reverb_text2"><text string="REVERB"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="acoustic_illusion_text1"><text string="ACOUSTIC"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="acoustic_illusion_text2"><text string="ILLUSION"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="part_select_title"><text string="PART SELECT"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="part_select_left_text"><text string="LEFT"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="part_select_right_2_text"><text string="RIGHT 2"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="part_select_right_1_text"><text string="RIGHT 1"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="conductor_title"><text string="CONDUCTOR"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="entertainer_text"><text string="ENTERTAINER"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="techni_chord_text1"><text string="TECHNI-"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="techni_chord_text2"><text string="CHORD"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="sound_group_title"><text string="SOUND GROUP"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="piano_text"><text string="PIANO"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="guitar_text"><text string="GUITAR"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="strings_n_vocal_text1"><text string="STRINGS &amp;"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="strings_n_vocal_text2"><text string=" VOCAL "><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="brass_text"><text string="BRASS"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="flute_text"><text string="FLUTE"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="sax_n_reed_text1"><text string="SAX &amp;"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="sax_n_reed_text2"><text string="REED"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="mallet_n_orch_perc_text1"><text string=" MALLET &amp; "><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="mallet_n_orch_perc_text2"><text string="ORCH PERC"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="world_perc_text1"><text string="WORLD"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="world_perc_text2"><text string=" PERC "><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="organ_n_accordion_text1"><text string=" ORGAN &amp; "><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="organ_n_accordion_text2"><text string="ACCORDION"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="orchestral_pad_text1"><text string="ORCHESTRAL"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="orchestral_pad_text2"><text string=" PAD "><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="synth_text"><text string="SYNTH"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="bass_text"><text string="BASS"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="digital_drawbar_text1"><text string=" DIGITAL "><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="digital_drawbar_text2"><text string="DRAWBAR"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="accordion_register_text1"><text string="ACCORDION"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="accordion_register_text2"><text string=" REGISTER "><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="gm_special_text1"><text string=" GM "><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="gm_special_text2"><text string="SPECIAL"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="drum_kits_text1"><text string="DRUM"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="drum_kits_text2"><text string=" KITS "><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="memory_a_text1"><text string="MEMORY"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="memory_a_text2"><text string=" A "><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="memory_b_text1"><text string="MEMORY"><color red="0.79" green="0.64" blue="0.49" /></text></element>
<element name="memory_b_text2"><text string=" B "><color red="0.79" green="0.64" blue="0.49" /></text></element>
<!-- build screen -->
<view name="Internal Layout">
<bounds left="0" right="1280" top="0" bottom="640"/>
<element ref="vector_art"><bounds left="0" right="1280" top="0" bottom="640"/></element>
<element ref="screen_border"><bounds x="449" y="63" width="380" height="275"/></element>
<screen index="0"><bounds x="480" y="82" width="320" height="240"/></screen>
<!-- Buttons and LEDs -->
<element name="screen_button_left_1" ref="dark_grey_button" inputtag="CPL_SEG10" inputmask="0x02"><bounds x="394" y="108" width="36" height="21"/></element>
<element name="screen_button_left_2" ref="dark_grey_button" inputtag="CPL_SEG10" inputmask="0x01"><bounds x="394" y="150" width="36" height="21"/></element>
<element name="screen_button_left_3" ref="dark_grey_button" inputtag="CPL_SEG9" inputmask="0x04"><bounds x="394" y="191" width="36" height="21"/></element>
<element name="screen_button_left_4" ref="dark_grey_button" inputtag="CPL_SEG9" inputmask="0x02"><bounds x="394" y="232" width="36" height="21"/></element>
<element name="screen_button_left_5" ref="dark_grey_button" inputtag="CPL_SEG9" inputmask="0x01"><bounds x="394" y="274" width="36" height="21"/></element>
<element name="screen_button_right_1" ref="dark_grey_button" inputtag="CPL_SEG8" inputmask="0x04"><bounds x="849" y="108" width="36" height="21"/></element>
<element name="screen_button_right_2" ref="dark_grey_button" inputtag="CPL_SEG8" inputmask="0x02"><bounds x="849" y="150" width="36" height="21"/></element>
<element name="screen_button_right_3" ref="dark_grey_button" inputtag="CPL_SEG8" inputmask="0x01"><bounds x="849" y="191" width="36" height="21"/></element>
<element name="screen_button_right_4" ref="dark_grey_button" inputtag="CPL_SEG7" inputmask="0x02"><bounds x="849" y="232" width="36" height="21"/></element>
<element name="screen_button_right_5" ref="dark_grey_button" inputtag="CPL_SEG7" inputmask="0x01"><bounds x="849" y="274" width="36" height="21"/></element>
<element name="screen_button_up_1" ref="dark_grey_button" inputtag="CPL_SEG10" inputmask="0x20"><bounds x="491" y="349" width="29" height="25"/></element>
<element name="screen_button_up_2" ref="dark_grey_button" inputtag="CPL_SEG10" inputmask="0x80"><bounds x="529" y="349" width="29" height="25"/></element>
<element name="screen_button_up_3" ref="dark_grey_button" inputtag="CPL_SEG9" inputmask="0x20"><bounds x="567" y="349" width="29" height="25"/></element>
<element name="screen_button_up_4" ref="dark_grey_button" inputtag="CPL_SEG9" inputmask="0x80"><bounds x="605" y="349" width="29" height="25"/></element>
<element name="screen_button_up_5" ref="dark_grey_button" inputtag="CPL_SEG8" inputmask="0x20"><bounds x="643" y="349" width="29" height="25"/></element>
<element name="screen_button_up_6" ref="dark_grey_button" inputtag="CPL_SEG8" inputmask="0x80"><bounds x="681" y="349" width="29" height="25"/></element>
<element name="screen_button_up_7" ref="dark_grey_button" inputtag="CPL_SEG7" inputmask="0x20"><bounds x="720" y="349" width="29" height="25"/></element>
<element name="screen_button_up_8" ref="dark_grey_button" inputtag="CPL_SEG7" inputmask="0x80"><bounds x="758" y="349" width="29" height="25"/></element>
<element name="screen_button_page_up" ref="dark_grey_button" inputtag="CPL_SEG2" inputmask="0x80"><bounds x="804" y="350" width="29" height="24"/></element>
<element name="screen_button_down_1" ref="dark_grey_button" inputtag="CPL_SEG10" inputmask="0x10"><bounds x="491" y="378" width="29" height="25"/></element>
<element name="screen_button_down_2" ref="dark_grey_button" inputtag="CPL_SEG10" inputmask="0x40"><bounds x="529" y="378" width="29" height="25"/></element>
<element name="screen_button_down_3" ref="dark_grey_button" inputtag="CPL_SEG9" inputmask="0x10"><bounds x="567" y="378" width="29" height="25"/></element>
<element name="screen_button_down_4" ref="dark_grey_button" inputtag="CPL_SEG9" inputmask="0x40"><bounds x="605" y="378" width="29" height="25"/></element>
<element name="screen_button_down_5" ref="dark_grey_button" inputtag="CPL_SEG8" inputmask="0x10"><bounds x="643" y="378" width="29" height="25"/></element>
<element name="screen_button_down_6" ref="dark_grey_button" inputtag="CPL_SEG8" inputmask="0x40"><bounds x="681" y="378" width="29" height="25"/></element>
<element name="screen_button_down_7" ref="dark_grey_button" inputtag="CPL_SEG7" inputmask="0x10"><bounds x="720" y="378" width="29" height="25"/></element>
<element name="screen_button_down_8" ref="dark_grey_button" inputtag="CPL_SEG7" inputmask="0x40"><bounds x="758" y="378" width="29" height="25"/></element>
<element name="screen_button_page_down" ref="dark_grey_button" inputtag="CPL_SEG2" inputmask="0x40"><bounds x="804" y="378" width="29" height="24"/></element>
<element name="screen_help" ref="dark_grey_round_button" inputtag="CPL_SEG10" inputmask="0x04"><bounds x="379" y="362" width="29" height="29"/></element>
<element name="screen_other_parts_tr" ref="dark_grey_round_button" inputtag="CPL_SEG10" inputmask="0x08"><bounds x="417" y="362" width="29" height="29"/></element>
<element name="screen_display_hold" ref="dark_grey_round_button" inputtag="CPL_SEG7" inputmask="0x04"><bounds x="851" y="362" width="29" height="29"/></element>
<element name="screen_exit" ref="dark_grey_round_button" inputtag="CPL_SEG7" inputmask="0x08"><bounds x="889" y="362" width="29" height="29"/></element>
<element name="composer_memory" ref="dark_grey_button" inputtag="CPL_SEG1" inputmask="0x01"><bounds x="229" y="477" width="33" height="21"/></element>
<element name="CPL_1" ref="green_led"><!-- COMPOSER: MEMORY --><bounds x="242" y="469" width="5" height="5"/></element>
<element name="composer_menu" ref="dark_grey_button" inputtag="CPL_SEG1" inputmask="0x02"><bounds x="264" y="477" width="33" height="21"/></element>
<element name="CPL_2" ref="green_led"><!-- COMPOSER: MENU --><bounds x="277" y="469" width="5" height="5"/></element>
<element name="sounds_arranger_set" ref="dark_grey_button" inputtag="CPL_SEG1" inputmask="0x04"><bounds x="299" y="477" width="33" height="21"/></element>
<element name="CPL_3" ref="green_led"><!-- SOUND ARRANGER: SET --><bounds x="312" y="469" width="5" height="5"/></element>
<element name="sounds_arranger_on_off" ref="dark_grey_button" inputtag="CPL_SEG1" inputmask="0x08"><bounds x="334" y="477" width="33" height="21"/></element>
<element name="CPL_4" ref="green_led"><!-- SOUND ARRANGER: ON/OFF --><bounds x="348" y="469" width="5" height="5"/></element>
<element name="tempo_program_encoder" ref="dark_grey_round_button"><bounds x="591" y="460" width="90" height="90"/></element>
<element name="tempo_program_encoder_finger" ref="light_grey_round_button"><bounds x="641" y="512" width="27" height="27"/></element>
<element name="music_stylist" ref="light_grey_round_button" inputtag="CPL_SEG1" inputmask="0x10"><bounds x="444" y="455" width="81" height="23"/></element>
<element name="CPL_5" ref="green_led"><!-- MUSIC STYLIST --><bounds x="483" y="448" width="5" height="5"/></element>
<element ref="dark_grey_round_button"><bounds x="444" y="501" width="81" height="23"/></element>
<element ref="button_split"><bounds x="483" y="501" width="2" height="23"/></element>
<element name="fade_in" ref="dark_grey_round_button" inputtag="CPL_SEG1" inputmask="0x20"><bounds x="448" y="503" width="35" height="18"/></element>
<element name="CPL_6" ref="green_led"><!-- FADE IN --><bounds x="452" y="497" width="5" height="5"/></element>
<element name="fade_out" ref="dark_grey_round_button" inputtag="CPL_SEG1" inputmask="0x40"><bounds x="485" y="503" width="35" height="18"/></element>
<element name="CPL_7" ref="green_led"><!-- FADE OUT --><bounds x="513" y="497" width="5" height="5"/></element>
<element name="CPL_8" ref="red_led"><!-- DISPLAY HOLD --><bounds x="863" y="354" width="5" height="5"/></element>
<element name="u_s_trad" ref="dark_grey_button" inputtag="CPL_SEG6" inputmask="0x01"><bounds x="97" y="529" width="33" height="21"/></element>
<element name="CPL_9" ref="red_led"><!-- U.S. TRAD --><bounds x="111" y="521" width="5" height="5"/></element>
<element name="country" ref="dark_grey_button" inputtag="CPL_SEG6" inputmask="0x02"><bounds x="132" y="529" width="33" height="21"/></element>
<element name="CPL_10" ref="red_led"><!-- COUNTRY --><bounds x="146" y="521" width="5" height="5"/></element>
<element name="latin" ref="dark_grey_button" inputtag="CPL_SEG6" inputmask="0x04"><bounds x="167" y="529" width="33" height="21"/></element>
<element name="CPL_11" ref="red_led"><!-- LATIN --><bounds x="181" y="521" width="5" height="5"/></element>
<element name="march_n_waltz" ref="dark_grey_button" inputtag="CPL_SEG6" inputmask="0x08"><bounds x="27" y="582" width="33" height="21"/></element>
<element name="CPL_12" ref="red_led"><!-- MARCH & WALTZ --><bounds x="41" y="573" width="5" height="5"/></element>
<element name="party_time" ref="dark_grey_button" inputtag="CPL_SEG6" inputmask="0x10"><bounds x="62" y="582" width="33" height="21"/></element>
<element name="CPL_13" ref="red_led"><!-- PARTY TIME --><bounds x="76" y="573" width="5" height="5"/></element>
<element name="showtime_n_trad_dance" ref="dark_grey_button" inputtag="CPL_SEG6" inputmask="0x20"><bounds x="97" y="582" width="33" height="21"/></element>
<element name="CPL_14" ref="red_led"><!-- SHOWTIME & TRAD DANCE --><bounds x="111" y="573" width="5" height="5"/></element>
<element name="world" ref="dark_grey_button" inputtag="CPL_SEG6" inputmask="0x40"><bounds x="132" y="582" width="33" height="21"/></element>
<element name="CPL_15" ref="red_led"><!-- WORLD --><bounds x="146" y="573" width="5" height="5"/></element>
<element name="custom" ref="dark_grey_button" inputtag="CPL_SEG6" inputmask="0x80"><bounds x="167" y="582" width="33" height="21"/></element>
<element name="CPL_16" ref="green_led"><!-- CUSTOM --><bounds x="181" y="573" width="5" height="5"/></element>
<element name="standard_rock" ref="dark_grey_button" inputtag="CPL_SEG0" inputmask="0x01"><bounds x="27" y="477" width="33" height="21"/></element>
<element name="CPL_17" ref="red_led"><!-- STANDARD ROCK --><bounds x="41" y="469" width="5" height="5"/></element>
<element name="r_n_roll_n_blues" ref="dark_grey_button" inputtag="CPL_SEG0" inputmask="0x02"><bounds x="62" y="477" width="33" height="21"/></element>
<element name="CPL_18" ref="red_led"><!-- R & ROLL & BLUES --><bounds x="76" y="469" width="5" height="5"/></element>
<element name="pop_n_ballad" ref="dark_grey_button" inputtag="CPL_SEG0" inputmask="0x04"><bounds x="97" y="477" width="33" height="21"/></element>
<element name="CPL_19" ref="red_led"><!-- POP & BALLAD --><bounds x="111" y="469" width="5" height="5"/></element>
<element name="funk_n_fusion" ref="dark_grey_button" inputtag="CPL_SEG0" inputmask="0x08"><bounds x="132" y="477" width="33" height="21"/></element>
<element name="CPL_20" ref="red_led"><!-- FUNK & FUSION --><bounds x="146" y="469" width="5" height="5"/></element>
<element name="soul_modern_dance" ref="dark_grey_button" inputtag="CPL_SEG0" inputmask="0x10"><bounds x="167" y="477" width="33" height="21"/></element>
<element name="CPL_21" ref="red_led"><!-- SOUL & MODERN DANCE --><bounds x="181" y="469" width="5" height="5"/></element>
<element name="big_band_n_swing" ref="dark_grey_button" inputtag="CPL_SEG0" inputmask="0x20"><bounds x="27" y="529" width="33" height="21"/></element>
<element name="CPL_22" ref="red_led"><!-- BIG BAND & SWING --><bounds x="41" y="521" width="5" height="5"/></element>
<element name="jazz_combo" ref="dark_grey_button" inputtag="CPL_SEG0" inputmask="0x40"><bounds x="62" y="529" width="33" height="21"/></element>
<element name="CPL_23" ref="red_led"><!-- JAZZ COMBO --><bounds x="76" y="521" width="5" height="5"/></element>
<element name="demo" ref="light_grey_pill_button" inputtag="CPL_SEG3" inputmask="0x01"><bounds x="25" y="247" width="37" height="21"/></element>
<element name="msp_bank" ref="dark_grey_pill_button" inputtag="CPL_SEG3" inputmask="0x02"><bounds x="111" y="247" width="37" height="21"/></element>
<element name="msp_menu" ref="dark_grey_pill_button" inputtag="CPL_SEG3" inputmask="0x04"><bounds x="184" y="247" width="37" height="21"/></element>
<element name="msp_stop_record" ref="dark_grey_pill_button" inputtag="CPL_SEG3" inputmask="0x08"><bounds x="260" y="247" width="37" height="21"/></element>
<element name="CPL_24" ref="green_led"><!-- MSP: MENU --><bounds x="200" y="236" width="5" height="5"/></element>
<element name="msp_1" ref="blueish_gray_button" inputtag="CPL_SEG5" inputmask="0x01"><bounds x="112" y="300" width="60" height="36"/></element>
<element name="msp_2" ref="blueish_gray_button" inputtag="CPL_SEG5" inputmask="0x02"><bounds x="174" y="300" width="60" height="36"/></element>
<element name="msp_3" ref="blueish_gray_button" inputtag="CPL_SEG5" inputmask="0x04"><bounds x="236" y="300" width="60" height="36"/></element>
<element name="msp_4" ref="blueish_gray_button" inputtag="CPL_SEG5" inputmask="0x08"><bounds x="112" y="338" width="60" height="36"/></element>
<element name="msp_5" ref="blueish_gray_button" inputtag="CPL_SEG5" inputmask="0x10"><bounds x="174" y="338" width="60" height="36"/></element>
<element name="msp_6" ref="blueish_gray_button" inputtag="CPL_SEG5" inputmask="0x20"><bounds x="236" y="338" width="60" height="36"/></element>
<element ref="line"><bounds x="221" y="537" width="11" height="1"/></element>
<element ref="line"><bounds x="221" y="537" width="1" height="52"/></element>
<element ref="line"><bounds x="221" y="589" width="6" height="1"/></element>
<element name="variation_n_msa_1" ref="light_grey_button" inputtag="CPL_SEG4" inputmask="0x01"><bounds x="228" y="572" width="31" height="31"/></element>
<element name="CPL_25" ref="red_led"><!-- VARIATION & MSA 1 --><bounds x="241" y="563" width="5" height="5"/></element>
<element name="variation_n_msa_2" ref="light_grey_button" inputtag="CPL_SEG4" inputmask="0x02"><bounds x="264" y="572" width="31" height="31"/></element>
<element name="CPL_26" ref="red_led"><!-- VARIATION & MSA 2 --><bounds x="277" y="563" width="5" height="5"/></element>
<element name="variation_n_msa_3" ref="light_grey_button" inputtag="CPL_SEG4" inputmask="0x04"><bounds x="300" y="572" width="31" height="31"/></element>
<element name="CPL_27" ref="red_led"><!-- VARIATION & MSA 3 --><bounds x="312" y="563" width="5" height="5"/></element>
<element name="variation_n_msa_4" ref="light_grey_button" inputtag="CPL_SEG4" inputmask="0x08"><bounds x="336" y="572" width="31" height="31"/></element>
<element name="CPL_28" ref="red_led"><!-- VARIATION & MSA 4 --><bounds x="348" y="563" width="5" height="5"/></element>
<element name="music_style_arranger" ref="light_grey_button" inputtag="CPL_SEG4" inputmask="0x10"><bounds x="233" y="529" width="21" height="21"/></element>
<element name="CPL_29" ref="red_led"><!-- MUSIC STYLE ARRANGER --><bounds x="241" y="521" width="5" height="5"/></element>
<element name="split_point" ref="light_grey_button" inputtag="CPL_SEG4" inputmask="0x20"><bounds x="299" y="529" width="33" height="21"/></element>
<element name="auto_play_chord" ref="light_grey_button" inputtag="CPL_SEG4" inputmask="0x40"><bounds x="334" y="529" width="33" height="21"/></element>
<element name="CPL_30" ref="green_led"><!-- AUTO PLAY CHORD --><bounds x="348" y="521" width="5" height="5"/></element>
<element name="fill_in_1" ref="dark_grey_button" inputtag="CPL_SEG2" inputmask="0x01"><bounds x="444" y="571" width="30" height="34"/></element>
<element name="CPL_33" ref="red_led"><!-- FILL IN 1 --><bounds x="455" y="558" width="5" height="5"/></element>
<element name="fill_in_2" ref="dark_grey_button" inputtag="CPL_SEG2" inputmask="0x02"><bounds x="479" y="571" width="30" height="34"/></element>
<element name="CPL_34" ref="red_led"><!-- FILL IN 2 --><bounds x="490" y="558" width="5" height="5"/></element>
<element name="intro_n_ending_1" ref="dark_grey_button" inputtag="CPL_SEG2" inputmask="0x04"><bounds x="520" y="571" width="30" height="34"/></element>
<element name="CPL_35" ref="red_led"><!-- INTRO & ENDING 1 --><bounds x="533" y="558" width="5" height="5"/></element>
<element name="intro_n_ending_2" ref="dark_grey_button" inputtag="CPL_SEG2" inputmask="0x08"><bounds x="555" y="571" width="30" height="34"/></element>
<element name="CPL_36" ref="red_led"><!-- INTRO & ENDING 2 --><bounds x="569" y="558" width="5" height="5"/></element>
<element name="CPL_37" ref="red_led"><!-- SPLIT POINT INDICATOR (LEFT) --><bounds x="266" y="612" width="5" height="5"/></element>
<element name="CPL_38" ref="red_led"><!-- SPLIT POINT INDICATOR (CENTER) --><bounds x="434" y="612" width="5" height="5"/></element>
<element name="CPL_39" ref="red_led"><!-- SPLIT POINT INDICATOR (RIGHT) --><bounds x="640" y="612" width="5" height="5"/></element>
<element name="CPL_40" ref="green_led"><!-- TEMPO/PROGRAM --><bounds x="636" y="448" width="5" height="5"/></element>
<element name="CPL_49" ref="red_led"><!-- OTHER PARTS/TR --><bounds x="430" y="354" width="5" height="5"/></element>
<element name="effect_sustain" ref="dark_grey_button" inputtag="CPR_SEG3" inputmask="0x01"><bounds x="857" y="476" width="33" height="21"/></element>
<element name="CPR_1" ref="red_led"><!-- EFFECT: SUSTAIN --><bounds x="872" y="469" width="5" height="5"/></element>
<element name="effect_digital_effect" ref="dark_grey_button" inputtag="CPR_SEG3" inputmask="0x02"><bounds x="892" y="476" width="33" height="21"/></element>
<element name="CPR_2" ref="red_led"><!-- EFFECT: DIGITAL EFFECT --><bounds x="907" y="469" width="5" height="5"/></element>
<element name="effect_dsp_effect" ref="dark_grey_button" inputtag="CPR_SEG3" inputmask="0x04"><bounds x="927" y="476" width="33" height="21"/></element>
<element name="CPR_3" ref="red_led"><!-- EFFECT: DSP EFFECT --><bounds x="942" y="469" width="5" height="5"/></element>
<element name="effect_digital_reverb" ref="dark_grey_button" inputtag="CPR_SEG3" inputmask="0x08"><bounds x="962" y="476" width="33" height="21"/></element>
<element name="CPR_4" ref="red_led"><!-- EFFECT: DIGITAL REVERB --><bounds x="977" y="469" width="5" height="5"/></element>
<element name="effect_acoustic_illusion" ref="dark_grey_button" inputtag="CPR_SEG3" inputmask="0x10"><bounds x="997" y="476" width="33" height="21"/></element>
<element name="CPR_5" ref="red_led"><!-- EFFECT: ACOUSTIC ILLUSION --><bounds x="1013" y="469" width="5" height="5"/></element>
<element name="sequencer_play" ref="light_grey_button" inputtag="CPR_SEG5" inputmask="0x08"><bounds x="981" y="233" width="33" height="21"/></element>
<element name="CPR_6" ref="green_led"><!-- SEQUENCER: PLAY --><bounds x="996" y="226" width="5" height="5"/></element>
<element name="sequencer_easy_rec" ref="dark_grey_button" inputtag="CPR_SEG5" inputmask="0x10"><bounds x="1032" y="233" width="33" height="21"/></element>
<element name="CPR_7" ref="green_led"><!-- SEQUENCER: EASY REC --><bounds x="1047" y="226" width="5" height="5"/></element>
<element name="sequencer_menu" ref="dark_grey_button" inputtag="CPR_SEG5" inputmask="0x20"><bounds x="1067" y="233" width="33" height="21"/></element>
<element name="CPR_8" ref="green_led"><!-- SEQUENCER: MENU --><bounds x="1082" y="226" width="5" height="5"/></element>
<element name="piano" ref="dark_grey_button" inputtag="CPR_SEG2" inputmask="0x01"><bounds x="1054" y="476" width="33" height="21"/></element>
<element name="CPR_9" ref="red_led"><!-- PIANO --><bounds x="1067" y="469" width="5" height="5"/></element>
<element name="guitar" ref="dark_grey_button" inputtag="CPR_SEG2" inputmask="0x02"><bounds x="1089" y="476" width="33" height="21"/></element>
<element name="CPR_10" ref="red_led"><!-- GUITAR --><bounds x="1103" y="469" width="5" height="5"/></element>
<element name="strings_n_vocal" ref="dark_grey_button" inputtag="CPR_SEG2" inputmask="0x04"><bounds x="1124" y="476" width="33" height="21"/></element>
<element name="CPR_11" ref="red_led"><!-- STRINGS & VOCAL --><bounds x="1138" y="469" width="5" height="5"/></element>
<element name="brass" ref="dark_grey_button" inputtag="CPR_SEG2" inputmask="0x08"><bounds x="1159" y="476" width="33" height="21"/></element>
<element name="CPR_12" ref="red_led"><!-- BRASS --><bounds x="1173" y="469" width="5" height="5"/></element>
<element name="flute" ref="dark_grey_button" inputtag="CPR_SEG2" inputmask="0x10"><bounds x="1194" y="476" width="33" height="21"/></element>
<element name="CPR_13" ref="red_led"><!-- FLUTE --><bounds x="1208" y="469" width="5" height="5"/></element>
<element name="sax_n_reed" ref="dark_grey_button" inputtag="CPR_SEG2" inputmask="0x20"><bounds x="1229" y="476" width="33" height="21"/></element>
<element name="CPR_14" ref="red_led"><!-- SAX & REED --><bounds x="1243" y="469" width="5" height="5"/></element>
<element name="mallet_n_orch_perc" ref="dark_grey_button" inputtag="CPR_SEG2" inputmask="0x40"><bounds x="1054" y="528" width="33" height="21"/></element>
<element name="CPR_15" ref="red_led"><!-- MALLET & ORCH PERC --><bounds x="1067" y="521" width="5" height="5"/></element>
<element name="world_perc" ref="dark_grey_button" inputtag="CPR_SEG2" inputmask="0x80"><bounds x="1089" y="528" width="33" height="21"/></element>
<element name="CPR_16" ref="red_led"><!-- WORLD PERC --><bounds x="1103" y="521" width="5" height="5"/></element>
<element name="organ_n_accordion" ref="dark_grey_button" inputtag="CPR_SEG1" inputmask="0x01"><bounds x="1124" y="528" width="33" height="21"/></element>
<element name="CPR_17" ref="red_led"><!-- ORGAN & ACCORDION --><bounds x="1138" y="521" width="5" height="5"/></element>
<element name="orchestral_pad" ref="dark_grey_button" inputtag="CPR_SEG1" inputmask="0x02"><bounds x="1159" y="528" width="33" height="21"/></element>
<element name="CPR_18" ref="red_led"><!-- ORCHESTRAL PAD --><bounds x="1173" y="521" width="5" height="5"/></element>
<element name="synth" ref="dark_grey_button" inputtag="CPR_SEG1" inputmask="0x04"><bounds x="1194" y="528" width="33" height="21"/></element>
<element name="CPR_19" ref="red_led"><!-- SYNTH --><bounds x="1208" y="521" width="5" height="5"/></element>
<element name="bass" ref="dark_grey_button" inputtag="CPR_SEG1" inputmask="0x08"><bounds x="1229" y="528" width="33" height="21"/></element>
<element name="CPR_20" ref="red_led"><!-- BASS --><bounds x="1243" y="521" width="5" height="5"/></element>
<element name="digital_drawbar" ref="dark_grey_button" inputtag="CPR_SEG1" inputmask="0x10"><bounds x="1054" y="581" width="33" height="21"/></element>
<element ref="line"><bounds x="1061" y="589" width="19" height="4"/></element>
<element name="CPR_21" ref="red_led"><!-- DIGITAL DRAWBAR --><bounds x="1067" y="573" width="5" height="5"/></element>
<element name="accordion_register" ref="dark_grey_button" inputtag="CPR_SEG1" inputmask="0x20"><bounds x="1089" y="581" width="33" height="21"/></element>
<element ref="line"><bounds x="1096" y="589" width="19" height="4"/></element>
<element name="CPR_22" ref="red_led"><!-- ACCORDION REGISTER --><bounds x="1103" y="573" width="5" height="5"/></element>
<element name="gm_special" ref="dark_grey_button" inputtag="CPR_SEG1" inputmask="0x40"><bounds x="1124" y="581" width="33" height="21"/></element>
<element name="CPR_23" ref="red_led"><!-- GM SPECIAL --><bounds x="1138" y="573" width="5" height="5"/></element>
<element name="drum_kits" ref="dark_grey_button" inputtag="CPR_SEG1" inputmask="0x80"><bounds x="1159" y="581" width="33" height="21"/></element>
<element name="CPR_24" ref="red_led"><!-- DRUM KITS --><bounds x="1173" y="573" width="5" height="5"/></element>
<element ref="line"><bounds x="973" y="296" width="7" height="1"/></element>
<element ref="line"><bounds x="973" y="296" width="1" height="52"/></element>
<element ref="line"><bounds x="973" y="348" width="7" height="1"/></element>
<element name="panel_memory_1" ref="dark_grey_button" inputtag="CPR_SEG6" inputmask="0x01"><bounds x="980" y="335" width="25" height="25"/></element>
<element name="CPR_25" ref="green_led"><!-- PANEL MEMORY 1 --><bounds x="988" y="327" width="5" height="5"/></element>
<element name="panel_memory_2" ref="dark_grey_button" inputtag="CPR_SEG6" inputmask="0x02"><bounds x="1017" y="335" width="25" height="25"/></element>
<element name="CPR_26" ref="green_led"><!-- PANEL MEMORY 2 --><bounds x="1024" y="327" width="5" height="5"/></element>
<element name="panel_memory_3" ref="dark_grey_button" inputtag="CPR_SEG6" inputmask="0x04"><bounds x="1054" y="335" width="25" height="25"/></element>
<element name="CPR_27" ref="green_led"><!-- PANEL MEMORY 3 --><bounds x="1061" y="327" width="5" height="5"/></element>
<element name="panel_memory_4" ref="dark_grey_button" inputtag="CPR_SEG6" inputmask="0x08"><bounds x="1090" y="335" width="25" height="25"/></element>
<element name="CPR_28" ref="green_led"><!-- PANEL MEMORY 4 --><bounds x="1098" y="327" width="5" height="5"/></element>
<element name="panel_memory_5" ref="dark_grey_button" inputtag="CPR_SEG6" inputmask="0x10"><bounds x="1127" y="335" width="25" height="25"/></element>
<element name="CPR_29" ref="green_led"><!-- PANEL MEMORY 5 --><bounds x="1135" y="327" width="5" height="5"/></element>
<element name="panel_memory_6" ref="dark_grey_button" inputtag="CPR_SEG6" inputmask="0x20"><bounds x="1164" y="335" width="25" height="25"/></element>
<element name="CPR_30" ref="green_led"><!-- PANEL MEMORY 6 --><bounds x="1172" y="327" width="5" height="5"/></element>
<element name="panel_memory_7" ref="dark_grey_button" inputtag="CPR_SEG6" inputmask="0x40"><bounds x="1201" y="335" width="25" height="25"/></element>
<element name="CPR_31" ref="green_led"><!-- PANEL MEMORY 7 --><bounds x="1209" y="327" width="5" height="5"/></element>
<element name="panel_memory_8" ref="dark_grey_button" inputtag="CPR_SEG6" inputmask="0x80"><bounds x="1238" y="335" width="25" height="25"/></element>
<element name="CPR_32" ref="green_led"><!-- PANEL MEMORY 8 --><bounds x="1245" y="327" width="5" height="5"/></element>
<element name="part_select_left" ref="light_grey_button" inputtag="CPR_SEG4" inputmask="0x01"><bounds x="864" y="529" width="21" height="21"/></element>
<element name="CPR_33" ref="red_led"><!-- PART SELECT: LEFT --><bounds x="872" y="521" width="5" height="5"/></element>
<element name="part_select_right_2" ref="light_grey_button" inputtag="CPR_SEG4" inputmask="0x02"><bounds x="899" y="529" width="21" height="21"/></element>
<element name="CPR_34" ref="red_led"><!-- PART SELECT: RIGHT 2 --><bounds x="907" y="521" width="5" height="5"/></element>
<element name="part_select_right_1" ref="light_grey_button" inputtag="CPR_SEG4" inputmask="0x04"><bounds x="933" y="529" width="21" height="21"/></element>
<element name="CPR_35" ref="red_led"><!-- PART SELECT: RIGHT 1 --><bounds x="941" y="521" width="5" height="5"/></element>
<element name="entertainer" ref="dark_grey_pill_button" inputtag="CPR_SEG4" inputmask="0x08"><bounds x="994" y="528" width="37" height="21"/></element>
<element name="CPR_36" ref="green_led"><!-- ENTERTAINER --><bounds x="1010" y="521" width="5" height="5"/></element>
<element name="conductor_left" ref="light_grey_button" inputtag="CPR_SEG4" inputmask="0x10"><bounds x="859" y="574" width="31" height="31"/></element>
<element name="CPR_37" ref="red_led"><!-- CONDUCTOR: LEFT --><bounds x="872" y="564" width="5" height="5"/></element>
<element name="conductor_right_2" ref="light_grey_button" inputtag="CPR_SEG4" inputmask="0x20"><bounds x="893" y="574" width="31" height="31"/></element>
<element name="CPR_38" ref="red_led"><!-- CONDUCTOR: RIGHT 2 --><bounds x="907" y="564" width="5" height="5"/></element>
<element name="conductor_right_1" ref="light_grey_button" inputtag="CPR_SEG4" inputmask="0x40"><bounds x="927" y="574" width="31" height="31"/></element>
<element name="CPR_39" ref="red_led"><!-- CONDUCTOR: RIGHT 1 --><bounds x="941" y="564" width="5" height="5"/></element>
<element name="techni_chord" ref="dark_grey_pill_button" inputtag="CPR_SEG4" inputmask="0x80"><bounds x="994" y="580" width="37" height="21"/></element>
<element name="CPR_40" ref="red_led"><!-- TECHNI CHORD --><bounds x="1010" y="573" width="5" height="5"/></element>
<element name="menu_sound" ref="dark_grey_button" inputtag="CPR_SEG10" inputmask="0x04"><bounds x="1123" y="233" width="33" height="21"/></element>
<element name="CPR_49" ref="green_led"><!-- MENU: SOUND --><bounds x="1138" y="226" width="5" height="5"/></element>
<element name="menu_control" ref="dark_grey_button" inputtag="CPR_SEG10" inputmask="0x08"><bounds x="1158" y="233" width="33" height="21"/></element>
<element name="CPR_50" ref="green_led"><!-- MENU: CONTROL --><bounds x="1173" y="226" width="5" height="5"/></element>
<element name="menu_midi" ref="dark_grey_button" inputtag="CPR_SEG10" inputmask="0x10"><bounds x="1193" y="233" width="33" height="21"/></element>
<element name="CPR_51" ref="green_led"><!-- MENU: MIDI --><bounds x="1208" y="226" width="5" height="5"/></element>
<element name="menu_disk" ref="dark_grey_button" inputtag="CPR_SEG10" inputmask="0x20"><bounds x="1228" y="233" width="33" height="21"/></element>
<element name="CPR_52" ref="green_led"><!-- MENU: DISK --><bounds x="1244" y="226" width="5" height="5"/></element>
<element name="memory_a" ref="dark_grey_button" inputtag="CPR_SEG9" inputmask="0x40"><bounds x="1194" y="581" width="33" height="21"/></element>
<element name="CPR_57" ref="green_led"><!-- MEMORY A --><bounds x="1208" y="573" width="5" height="5"/></element>
<element name="memory_b" ref="dark_grey_button" inputtag="CPR_SEG9" inputmask="0x80"><bounds x="1229" y="581" width="33" height="21"/></element>
<element name="CPR_58" ref="green_led"><!-- MEMORY B --><bounds x="1243" y="573" width="5" height="5"/></element>
<element name="synchro_n_break" ref="dark_grey_button" inputtag="CPR_SEG8" inputmask="0x40"><bounds x="774" y="571" width="18" height="34"/></element>
<element name="CPR_61" ref="red_led"><!-- SYNCHRO & BREAK --><bounds x="780" y="558" width="5" height="5"/></element>
<element name="tap_tempo" ref="dark_grey_button" inputtag="CPR_SEG8" inputmask="0x80"><bounds x="805" y="571" width="27" height="34"/></element>
<element ref="dark_grey_round_button"><bounds x="748" y="455" width="81" height="23"/></element>
<element ref="button_split"><bounds x="787" y="455" width="2" height="23"/></element>
<element name="transpose_minus" ref="dark_grey_round_button" inputtag="CPR_SEG0" inputmask="0x20"><bounds x="752" y="457" width="35" height="17"/></element>
<element name="transpose_plus" ref="dark_grey_round_button" inputtag="CPR_SEG0" inputmask="0x40"><bounds x="789" y="457" width="35" height="17"/></element>
<element ref="dark_grey_round_button"><bounds x="748" y="501" width="81" height="23"/></element>
<element ref="button_split"><bounds x="787" y="501" width="2" height="23"/></element>
<element name="octave_minus" ref="dark_grey_round_button" inputtag="CPR_SEG8" inputmask="0x08"><bounds x="752" y="503" width="35" height="17"/></element>
<element name="CPR_62" ref="red_led"><!-- R1/R2 OCTAVE MINUS --><bounds x="756" y="497" width="5" height="5"/></element>
<element name="octave_plus" ref="dark_grey_round_button" inputtag="CPR_SEG8" inputmask="0x10"><bounds x="789" y="503" width="35" height="17"/></element>
<element name="CPR_63" ref="red_led"><!-- R1/R2 OCTAVE PLUS --><bounds x="817" y="497" width="5" height="5"/></element>
<element name="sequencer_set" ref="dark_grey_pill_button" inputtag="CPR_SEG7" inputmask="0x01"><bounds x="979" y="284" width="37" height="21"/></element>
<element name="sequencer_next_bank" ref="dark_grey_pill_button" inputtag="CPR_SEG7" inputmask="0x02"><bounds x="1031" y="284" width="37" height="21"/></element>
<element name="sequencer_bank_view" ref="dark_grey_pill_button" inputtag="CPR_SEG7" inputmask="0x04"><bounds x="1082" y="284" width="37" height="21"/></element>
<element name="CPR_64" ref="green_led"><!-- BANK VIEW --><bounds x="1098" y="277" width="5" height="5"/></element>
<element name="start_stop" ref="light_grey_button" inputtag="CPR_SEG8" inputmask="0x20"><bounds x="687" y="571" width="53" height="34"/></element>
<element name="CPR_65" ref="red_led"><!-- START/STOP 1 BEAT --><bounds x="685" y="558" width="5" height="5"/></element>
<element name="CPR_66" ref="green_led"><!-- START/STOP 2 BEAT --><bounds x="700" y="558" width="5" height="5"/></element>
<element name="CPR_67" ref="green_led"><!-- START/STOP 3 BEAT --><bounds x="716" y="558" width="5" height="5"/></element>
<element name="CPR_68" ref="green_led"><!-- START/STOP 4 BEAT --><bounds x="732" y="558" width="5" height="5"/></element>
<element name="checking_device_led_cn11" ref="red_led"><!-- MAINCPU CHECK LED --><bounds x="1270" y="10" width="5" height="5"/></element>
<element name="checking_device_led_cn12" ref="red_led"><!-- SUBCPU CHECK LED --><bounds x="1270" y="20" width="5" height="5"/></element>
<!-- Labels -->
<element ref="maincpu_text"><bounds x="1235" y="8" width="30" height="8"/></element>
<element ref="subcpu_text"><bounds x="1235" y="18" width="30" height="8"/></element>
<element ref="demo_text"><bounds x="34" y="228" width="20" height="8"/></element>
<element ref="line"><bounds x="106" y="210" width="45" height="1"/></element>
<element ref="msp_title"><bounds x="155" y="207" width="101" height="8"/></element>
<element ref="line"><bounds x="259" y="210" width="45" height="1"/></element>
<element ref="msp_bank_text"><bounds x="119" y="227" width="21" height="8"/></element>
<element ref="msp_menu_text"><bounds x="192" y="227" width="22" height="8"/></element>
<element ref="msp_stop_record_text"><bounds x="250" y="227" width="56" height="8"/></element>
<element ref="msp_1_text"><bounds x="140" y="314" width="6" height="10"/></element>
<element ref="msp_2_text"><bounds x="200" y="314" width="6" height="10"/></element>
<element ref="msp_3_text"><bounds x="264" y="314" width="6" height="10"/></element>
<element ref="msp_4_text"><bounds x="140" y="350" width="6" height="10"/></element>
<element ref="msp_5_text"><bounds x="200" y="350" width="6" height="10"/></element>
<element ref="msp_6_text"><bounds x="264" y="350" width="6" height="10"/></element>
<element ref="screen_display_angle_text1"><bounds x="864" y="56" width="22" height="7"/></element>
<element ref="screen_display_angle_text2"><bounds x="864" y="64" width="22" height="7"/></element>
<element ref="screen_contrast_text"><bounds x="329" y="329" width="42" height="7"/></element>
<element ref="dark_grey_button"><bounds x="348" y="338" width="5" height="69"/></element>
<element ref="light_grey_button"><bounds x="346" y="378" width="9" height="9"/></element>
<element ref="screen_help_text"><bounds x="385" y="347" width="20" height="8"/></element>
<element ref="screen_other_parts_text1"><bounds x="414" y="337" width="36" height="7"/></element>
<element ref="screen_other_parts_text2"><bounds x="414" y="346" width="36" height="7"/></element>
<element ref="line"><bounds x="475" y="362" width="13" height="1"/></element>
<element ref="line"><bounds x="475" y="362" width="1" height="9"/></element>
<element ref="line"><bounds x="475" y="382" width="1" height="9"/></element>
<element ref="line"><bounds x="475" y="391" width="13" height="1"/></element>
<element ref="screen_mute_text"><bounds x="465" y="373" width="21" height="7"/></element>
<element ref="screen_page_text"><bounds x="809" y="342" width="19" height="7"/></element>
<element ref="screen_display_hold_text1"><bounds x="850" y="337" width="31" height="7"/></element>
<element ref="screen_display_hold_text2"><bounds x="850" y="345" width="31" height="7"/></element>
<element ref="screen_exit_text"><bounds x="895" y="346" width="20" height="8"/></element>
<element ref="line"><bounds x="980" y="200" width="34" height="1"/></element>
<element ref="sequencer_title"><bounds x="1006" y="197" width="68" height="8"/></element>
<element ref="line"><bounds x="1066" y="200" width="34" height="1"/></element>
<element ref="sequencer_play_text"><bounds x="991" y="217" width="14" height="8"/></element>
<element ref="sequencer_easy_rec_text"><bounds x="1034" y="217" width="29" height="8"/></element>
<element ref="sequencer_menu_text"><bounds x="1076" y="217" width="17" height="8"/></element>
<element ref="line"><bounds x="1123" y="200" width="54" height="1"/></element>
<element ref="menu_title"><bounds x="1170" y="197" width="44" height="8"/></element>
<element ref="line"><bounds x="1206" y="200" width="54" height="1"/></element>
<element ref="menu_sound_text"><bounds x="1130" y="217" width="22" height="8"/></element>
<element ref="menu_control_text"><bounds x="1161" y="217" width="30" height="8"/></element>
<element ref="menu_midi_text"><bounds x="1205" y="217" width="13" height="8"/></element>
<element ref="menu_disk_text"><bounds x="1239" y="217" width="14" height="8"/></element>
<element ref="menu_disk_load_text"><bounds x="1240" y="257" width="13" height="6"/></element>
<element ref="pm_set_text"><bounds x="992" y="268" width="11" height="8"/></element>
<element ref="pm_next_bank_text"><bounds x="1032" y="268" width="35" height="8"/></element>
<element ref="pm_bank_view_text"><bounds x="1084" y="268" width="34" height="8"/></element>
<element ref="panel_memory_title"><bounds x="1090" y="314" width="61" height="8"/></element>
<element ref="pm_1_text"><bounds x="996" y="325" width="5" height="8"/></element>
<element ref="pm_2_text"><bounds x="1033" y="325" width="5" height="8"/></element>
<element ref="pm_3_text"><bounds x="1070" y="325" width="5" height="8"/></element>
<element ref="pm_4_text"><bounds x="1106" y="325" width="5" height="8"/></element>
<element ref="pm_5_text"><bounds x="1142" y="325" width="5" height="8"/></element>
<element ref="pm_6_text"><bounds x="1179" y="325" width="5" height="8"/></element>
<element ref="pm_7_text"><bounds x="1216" y="325" width="5" height="8"/></element>
<element ref="pm_8_text"><bounds x="1254" y="325" width="5" height="8"/></element>
<element ref="line"><bounds x="26" y="441" width="51" height="2"/></element>
<element ref="rhythm_group_title"><bounds x="82" y="438" width="63" height="8"/></element>
<element ref="line"><bounds x="149" y="441" width="52" height="2"/></element>
<element ref="standard_rock_text1"><bounds x="27" y="450" width="33" height="7"/></element>
<element ref="standard_rock_text2"><bounds x="27" y="458" width="33" height="7"/></element>
<element ref="r_n_rool_n_blues_text1"><bounds x="65" y="450" width="28" height="7"/></element>
<element ref="r_n_rool_n_blues_text2"><bounds x="65" y="458" width="28" height="7"/></element>
<element ref="pop_n_ballad_text1"><bounds x="102" y="450" width="23" height="7"/></element>
<element ref="pop_n_ballad_text2"><bounds x="102" y="458" width="23" height="7"/></element>
<element ref="funk_n_fusion_text1"><bounds x="137" y="450" width="23" height="7"/></element>
<element ref="funk_n_fusion_text2"><bounds x="137" y="458" width="23" height="7"/></element>
<element ref="soul_n_modern_dance_text1"><bounds x="164" y="450" width="39" height="7"/></element>
<element ref="soul_n_modern_dance_text2"><bounds x="164" y="458" width="39" height="7"/></element>
<element ref="big_band_n_swing_text1"><bounds x="29" y="503" width="30" height="7"/></element>
<element ref="big_band_n_swing_text2"><bounds x="29" y="511" width="30" height="7"/></element>
<element ref="jazz_combo_text1"><bounds x="67" y="503" width="23" height="7"/></element>
<element ref="jazz_combo_text2"><bounds x="67" y="511" width="23" height="7"/></element>
<element ref="us_trad_text"><bounds x="98" y="511" width="30" height="7"/></element>
<element ref="country_text"><bounds x="134" y="511" width="29" height="7"/></element>
<element ref="latin_text"><bounds x="175" y="511" width="16" height="7"/></element>
<element ref="march_n_waltz_text1"><bounds x="29" y="556" width="28" height="7"/></element>
<element ref="march_n_waltz_text2"><bounds x="29" y="564" width="28" height="7"/></element>
<element ref="party_time_text1"><bounds x="69" y="556" width="18" height="7"/></element>
<element ref="party_time_text2"><bounds x="69" y="564" width="18" height="7"/></element>
<element ref="showtime_n_trad_dance_text1"><bounds x="95" y="556" width="36" height="7"/></element>
<element ref="showtime_n_trad_dance_text2"><bounds x="95" y="564" width="36" height="7"/></element>
<element ref="world_text"><bounds x="137" y="564" width="23" height="7"/></element>
<element ref="custom_text"><bounds x="170" y="564" width="26" height="7"/></element>
<element ref="composer_title"><bounds x="241" y="438" width="43" height="8"/></element>
<element ref="sound_arranger_title"><bounds x="297" y="438" width="73" height="8"/></element>
<element ref="composer_memory_text"><bounds x="234" y="460" width="27" height="7"/></element>
<element ref="composer_menu_text"><bounds x="273" y="460" width="17" height="7"/></element>
<element ref="sound_arranger_set_text"><bounds x="310" y="460" width="11" height="7"/></element>
<element ref="sound_arranger_on_off_text"><bounds x="339" y="460" width="23" height="7"/></element>
<element ref="music_style_arranger_text1"><bounds x="225" y="504" width="40" height="7"/></element>
<element ref="music_style_arranger_text2"><bounds x="225" y="512" width="40" height="7"/></element>
<element ref="split_point_text1"><bounds x="306" y="504" width="18" height="7"/></element>
<element ref="split_point_text2"><bounds x="306" y="512" width="18" height="7"/></element>
<element ref="auto_play_chord_text1"><bounds x="333" y="504" width="34" height="7"/></element>
<element ref="auto_play_chord_text2"><bounds x="333" y="512" width="34" height="7"/></element>
<element ref="variation_n_msa_title"><bounds x="263" y="554" width="70" height="8"/></element>
<element ref="variation_1_text"><bounds x="250" y="562" width="4" height="7"/></element>
<element ref="variation_2_text"><bounds x="285" y="562" width="4" height="7"/></element>
<element ref="variation_3_text"><bounds x="322" y="562" width="4" height="7"/></element>
<element ref="variation_4_text"><bounds x="357" y="562" width="4" height="7"/></element>
<element ref="music_stylist_text"><bounds x="457" y="439" width="58" height="8"/></element>
<element ref="one_touch_play_text"><bounds x="458" y="480" width="54" height="6"/></element>
<element ref="fade_text"><bounds x="476" y="491" width="19" height="8"/></element>
<element ref="fade_in_text"><bounds x="443" y="496" width="6" height="7"/></element>
<element ref="fade_out_text"><bounds x="522" y="496" width="14" height="7"/></element>
<element ref="tempo_program_text1"><bounds x="603" y="448" width="30" height="8"/></element>
<element ref="tempo_program_text2"><bounds x="645" y="448" width="34" height="8"/></element>
<element ref="transpose_text"><bounds x="766" y="445" width="45" height="8"/></element>
<element ref="transpose_minus_text"><bounds x="748" y="448" width="6" height="9"/></element>
<element ref="transpose_plus_text"><bounds x="826" y="448" width="6" height="9"/></element>
<element ref="r1_r2_octave_text"><bounds x="763" y="491" width="51" height="8"/></element>
<element ref="octave_minus_text"><bounds x="748" y="497" width="6" height="9"/></element>
<element ref="octave_plus_text"><bounds x="826" y="497" width="6" height="9"/></element>
<element ref="fill_in_text"><bounds x="463" y="548" width="24" height="7"/></element>
<element ref="fill_in_text1"><bounds x="463" y="557" width="4" height="7"/></element>
<element ref="fill_in_text2"><bounds x="498" y="557" width="4" height="7"/></element>
<element ref="intro_n_ending_text"><bounds x="521" y="548" width="64" height="7"/></element>
<element ref="intro_n_ending_text1"><bounds x="540" y="557" width="4" height="7"/></element>
<element ref="intro_n_ending_text2"><bounds x="577" y="557" width="4" height="7"/></element>
<element ref="sequencer_reset_text1"><bounds x="444" y="610" width="30" height="6"/></element>
<element ref="sequencer_reset_text2"><bounds x="444" y="618" width="30" height="6"/></element>
<element ref="count_intro_text1"><bounds x="485" y="610" width="17" height="6"/></element>
<element ref="count_intro_text2"><bounds x="485" y="618" width="17" height="6"/></element>
<element ref="start_stop_text"><bounds x="690" y="547" width="50" height="8"/></element>
<element ref="1234beat_text1"><bounds x="692" y="557" width="4" height="7"/></element>
<element ref="1234beat_text2"><bounds x="707" y="557" width="4" height="7"/></element>
<element ref="1234beat_text3"><bounds x="723" y="557" width="4" height="7"/></element>
<element ref="1234beat_text4"><bounds x="739" y="557" width="22" height="7"/></element>
<element ref="synchro_n_break_text1"><bounds x="765" y="539" width="38" height="7"/></element>
<element ref="synchro_n_break_text2"><bounds x="765" y="547" width="38" height="7"/></element>
<element ref="tap_tempo_text1"><bounds x="809" y="539" width="22" height="7"/></element>
<element ref="tap_tempo_text2"><bounds x="809" y="547" width="22" height="7"/></element>
<element ref="line"><bounds x="857" y="441" width="68" height="1"/></element>
<element ref="effect_title"><bounds x="928" y="438" width="28" height="8"/></element>
<element ref="line"><bounds x="959" y="441" width="73" height="1"/></element>
<element ref="sustain_text"><bounds x="862" y="461" width="25" height="7"/></element>
<element ref="digital_effect_text1"><bounds x="898" y="453" width="23" height="7"/></element>
<element ref="digital_effect_text2"><bounds x="898" y="461" width="23" height="7"/></element>
<element ref="dsp_effect_text1"><bounds x="934" y="453" width="23" height="7"/></element>
<element ref="dsp_effect_text2"><bounds x="934" y="461" width="23" height="7"/></element>
<element ref="digital_reverb_text1"><bounds x="968" y="453" width="24" height="7"/></element>
<element ref="digital_reverb_text2"><bounds x="968" y="461" width="24" height="7"/></element>
<element ref="acoustic_illusion_text1"><bounds x="1000" y="453" width="31" height="7"/></element>
<element ref="acoustic_illusion_text2"><bounds x="1000" y="461" width="31" height="7"/></element>
<element ref="line"><bounds x="857" y="513" width="24" height="1"/></element>
<element ref="part_select_title"><bounds x="883" y="510" width="50" height="8"/></element>
<element ref="line"><bounds x="935" y="513" width="24" height="1"/></element>
<element ref="part_select_left_text"><bounds x="868" y="556" width="14" height="7"/></element>
<element ref="part_select_right_2_text"><bounds x="897" y="556" width="24" height="7"/></element>
<element ref="part_select_right_1_text"><bounds x="932" y="556" width="24" height="7"/></element>
<element ref="line"><bounds x="857" y="611" width="25" height="1"/></element>
<element ref="conductor_title"><bounds x="884" y="608" width="49" height="8"/></element>
<element ref="line"><bounds x="934" y="611" width="25" height="1"/></element>
<element ref="entertainer_text"><bounds x="992" y="513" width="41" height="7"/></element>
<element ref="techni_chord_text1"><bounds x="1000" y="557" width="25" height="7"/></element>
<element ref="techni_chord_text2"><bounds x="1000" y="565" width="25" height="7"/></element>
<element ref="line"><bounds x="1055" y="441" width="68" height="2"/></element>
<element ref="sound_group_title"><bounds x="1129" y="438" width="58" height="8"/></element>
<element ref="line"><bounds x="1193" y="441" width="68" height="2"/></element>
<element ref="piano_text"><bounds x="1060" y="461" width="18" height="7"/></element>
<element ref="guitar_text"><bounds x="1094" y="461" width="22" height="7"/></element>
<element ref="strings_n_vocal_text1"><bounds x="1124" y="453" width="33" height="7"/></element>
<element ref="strings_n_vocal_text2"><bounds x="1124" y="461" width="33" height="7"/></element>
<element ref="brass_text"><bounds x="1166" y="461" width="19" height="7"/></element>
<element ref="flute_text"><bounds x="1202" y="461" width="18" height="7"/></element>
<element ref="sax_n_reed_text1"><bounds x="1237" y="453" width="18" height="7"/></element>
<element ref="sax_n_reed_text2"><bounds x="1237" y="461" width="18" height="7"/></element>
<element ref="mallet_n_orch_perc_text1"><bounds x="1052" y="505" width="35" height="7"/></element>
<element ref="mallet_n_orch_perc_text2"><bounds x="1052" y="513" width="35" height="7"/></element>
<element ref="world_perc_text1"><bounds x="1094" y="505" width="23" height="7"/></element>
<element ref="world_perc_text2"><bounds x="1094" y="513" width="23" height="7"/></element>
<element ref="organ_n_accordion_text1"><bounds x="1122" y="505" width="37" height="7"/></element>
<element ref="organ_n_accordion_text2"><bounds x="1122" y="513" width="37" height="7"/></element>
<element ref="orchestral_pad_text1"><bounds x="1160" y="505" width="32" height="7"/></element>
<element ref="orchestral_pad_text2"><bounds x="1160" y="513" width="32" height="7"/></element>
<element ref="synth_text"><bounds x="1201" y="513" width="20" height="7"/></element>
<element ref="bass_text"><bounds x="1238" y="513" width="15" height="7"/></element>
<element ref="digital_drawbar_text1"><bounds x="1055" y="557" width="31" height="7"/></element>
<element ref="digital_drawbar_text2"><bounds x="1055" y="565" width="31" height="7"/></element>
<element ref="accordion_register_text1"><bounds x="1091" y="557" width="29" height="7"/></element>
<element ref="accordion_register_text2"><bounds x="1091" y="565" width="29" height="7"/></element>
<element ref="gm_special_text1"><bounds x="1128" y="557" width="25" height="7"/></element>
<element ref="gm_special_text2"><bounds x="1128" y="565" width="25" height="7"/></element>
<element ref="drum_kits_text1"><bounds x="1167" y="557" width="18" height="7"/></element>
<element ref="drum_kits_text2"><bounds x="1167" y="565" width="18" height="7"/></element>
<element ref="memory_a_text1"><bounds x="1198" y="557" width="26" height="7"/></element>
<element ref="memory_a_text2"><bounds x="1198" y="565" width="26" height="7"/></element>
<element ref="memory_b_text1"><bounds x="1233" y="557" width="26" height="7"/></element>
<element ref="memory_b_text2"><bounds x="1233" y="565" width="26" height="7"/></element>
</view>
</mamelayout>

View File

@ -25069,6 +25069,9 @@ myb3k //
jb3000 //
stepone //
@source:matsushita/kn5000.cpp
kn5000 // (c) 199? Technics SX-KN5000 PCM Keyboard
@source:mattel/aquarius.cpp
aquarius // 1983 Aquarius (NTSC)
aquariusp // 1983 Aquarius (PAL)

View File

@ -0,0 +1,845 @@
// license:GPL2+
// copyright-holders:Felipe Sanches
/******************************************************************************
Technics SX-KN5000 music keyboard driver
******************************************************************************/
#include "emu.h"
#include "cpu/tlcs900/tmp95c061.h" // TODO: tmp94c241.h
#include "imagedev/floppy.h"
#include "machine/gen_latch.h"
#include "machine/upd765.h"
#include "video/pc_vga.h"
#include "screen.h"
#include "kn5000.lh"
class mn89304_vga_device : public svga_device
{
public:
// construction/destruction
mn89304_vga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
virtual void device_reset() override;
virtual void palette_update() override;
virtual void recompute_params() override;
virtual uint16_t offset() override;
};
DEFINE_DEVICE_TYPE(MN89304_VGA, mn89304_vga_device, "mn89304_vga", "MN89304 VGA")
// TODO: nothing is known about this, configured out of usage in here for now.
mn89304_vga_device::mn89304_vga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: svga_device(mconfig, MN89304_VGA, tag, owner, clock)
{
// ...
}
void mn89304_vga_device::device_reset()
{
svga_device::device_reset();
svga.rgb8_en = 1;
}
// sets up mode 0, by default it will throw 155 Hz, assume divided by 3
void mn89304_vga_device::recompute_params()
{
u8 xtal_select = (vga.miscellaneous_output & 0x0c) >> 2;
int xtal;
switch(xtal_select & 3)
{
case 0: xtal = XTAL(25'174'800).value() / 3; break;
case 1: xtal = XTAL(28'636'363).value() / 3; break;
case 2:
default:
throw emu_fatalerror("MN89304: setup ext. clock select");
}
recompute_params_clock(1, xtal);
}
void mn89304_vga_device::palette_update()
{
// 4bpp RAMDAC
for (int i = 0; i < 256; i++)
{
set_pen_color(
i,
pal4bit(vga.dac.color[3*(i & vga.dac.mask) + 0]),
pal4bit(vga.dac.color[3*(i & vga.dac.mask) + 1]),
pal4bit(vga.dac.color[3*(i & vga.dac.mask) + 2])
);
}
}
uint16_t mn89304_vga_device::offset()
{
return svga_device::offset() << 3;
}
namespace {
class kn5000_state : public driver_device
{
public:
kn5000_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
, m_subcpu(*this, "subcpu")
, m_maincpu_latch(*this, "maincpu_latch")
, m_subcpu_latch(*this, "subcpu_latch")
, m_fdc(*this, "fdc")
, m_CPL_SEG(*this, "CPL_SEG%u", 0U)
, m_CPR_SEG(*this, "CPR_SEG%u", 0U)
, m_checking_device_led_cn11(*this, "checking_device_led_cn11")
, m_checking_device_led_cn12(*this, "checking_device_led_cn12")
, m_CPL_LED(*this, "CPL_%u", 0U)
, m_CPR_LED(*this, "CPR_%u", 0U)
, m_led_row(0)
, m_mstat(0)
, m_sstat(0)
{ }
void kn5000(machine_config &config);
private:
required_device<tmp95c061_device> m_maincpu;
required_device<tmp95c061_device> m_subcpu;
required_device<generic_latch_8_device> m_maincpu_latch;
required_device<generic_latch_8_device> m_subcpu_latch;
required_device<upd72067_device> m_fdc;
required_ioport_array<11> m_CPL_SEG; // buttons on "Control Panel Left" PCB
required_ioport_array<11> m_CPR_SEG; // buttons on "Control Panel Right" PCB
output_finder<> m_checking_device_led_cn11;
output_finder<> m_checking_device_led_cn12;
output_finder<50> m_CPL_LED;
output_finder<69> m_CPR_LED;
uint8_t m_led_row;
uint8_t m_mstat;
uint8_t m_sstat;
virtual void machine_start() override;
virtual void machine_reset() override;
uint8_t cpanel_left_buttons_r(offs_t offset);
uint8_t cpanel_right_buttons_r(offs_t offset);
void cpanel_leds_w(offs_t offset, uint8_t data);
void maincpu_mem(address_map &map);
void subcpu_mem(address_map &map);
};
void kn5000_state::maincpu_mem(address_map &map)
{
map(0x000000, 0x0fffff).ram(); // 1Mbyte = 2 * 4Mbit DRAMs @ IC9, IC10 (CS3)
map(0x008e4a, 0x008e54).r(FUNC(kn5000_state::cpanel_right_buttons_r));
map(0x008e5a, 0x008e64).r(FUNC(kn5000_state::cpanel_left_buttons_r));
map(0x008f38, 0x008f39).w(FUNC(kn5000_state::cpanel_leds_w));
//FIXME: map(0x110000, 0x11ffff).m(m_fdc, FUNC(upd765a_device::map)); // Floppy Controller @ IC208
//FIXME: map(0x120000, 0x12ffff).w(m_fdc, FUNC(upd765a_device::dack_w)); // Floppy DMA Acknowledge
map(0x140000, 0x14ffff).r(m_maincpu_latch, FUNC(generic_latch_8_device::read)); // @ IC23
map(0x140000, 0x14ffff).w(m_subcpu_latch, FUNC(generic_latch_8_device::write)); // @ IC22
map(0x1703b0, 0x1703df).m("vga", FUNC(mn89304_vga_device::io_map)); // LCD controller @ IC206
map(0x1a0000, 0x1bffff).rw("vga", FUNC(mn89304_vga_device::mem_linear_r), FUNC(mn89304_vga_device::mem_linear_w));
map(0x1e0000, 0x1fffff).ram(); // 1Mbit SRAM @ IC21 (CS0) Note: I think this is the message "ERROR in back-up SRAM"
map(0x200000, 0x2fffff).noprw(); // Extension board goes here.
map(0x300000, 0x3fffff).rom().region("custom_data", 0); // 8MBit FLASH ROM @ IC19 (CS5)
map(0x400000, 0x7fffff).rom().region("rhythm_data", 0); // 32MBit ROM @ IC14 (A22=1 and CS5)
map(0x800000, 0x82ffff).rom().region("subprogram", 0); // not sure yet in which chip this is stored, but I suspect it should be IC19
// map(0xc00000, 0xdfffff).mirror(0x200000).rom().region("table_data", 0); //2 * 8MBit ROMs @ IC1, IC3 (CS2)
map(0xe00000, 0xffffff).mask(0x1fffff).rom().region("program", 0); //2 * 8MBit FLASH ROMs @ IC4, IC6
}
void kn5000_state::subcpu_mem(address_map &map)
{
// There seems to also be devices at 110000, 130000 and 1e0000
map(0x000000, 0x0fffff).ram(); // 1Mbyte = 2 * 4Mbit DRAMs @ IC28, IC29
map(0x120000, 0x12ffff).r(m_subcpu_latch, FUNC(generic_latch_8_device::read)); // @ IC22
map(0x120000, 0x12ffff).w(m_maincpu_latch, FUNC(generic_latch_8_device::write)); // @ IC23
//map(0x??????, 0x??????).rw(FUNC(kn5000_state::tone_generator_r), FUNC(kn5000_state::tone_generator_w)); // @ IC303
//map(0x??????, 0x??????).rw(FUNC(kn5000_state::dsp1_r), FUNC(kn5000_state::dsp1_w)); // @ IC311
// This is not necessarily correct.
// Just silencing oslog messages for the subcpu while we don't have a proper ROM dump.
map(0xfe0000, 0xffffff).rom().region("mask", 0); // 1Mbit MASK ROM @ IC30
//Note:
// DSP2 @ IC302 uses a serial bus
}
static void kn5000_floppies(device_slot_interface &device)
{
device.option_add("35dd", FLOPPY_35_DD);
}
static INPUT_PORTS_START(kn5000)
PORT_START("CN11")
PORT_DIPNAME(0x01, 0x01, "Main CPU Checking Device")
PORT_DIPSETTING( 0x00, DEF_STR(On))
PORT_DIPSETTING( 0x01, DEF_STR(Off))
PORT_START("CN12")
PORT_DIPNAME(0x01, 0x01, "Sub CPU Checking Device")
PORT_DIPSETTING( 0x00, DEF_STR(On))
PORT_DIPSETTING( 0x01, DEF_STR(Off))
PORT_START("COM_SELECT")
PORT_DIPNAME(0xf0, 0xe0, "Computer Interface Selection")
PORT_DIPSETTING( 0xe0, "MIDI")
PORT_DIPSETTING( 0xd0, "PC1")
PORT_DIPSETTING( 0xb0, "PC2")
PORT_DIPSETTING( 0x70, "Mac")
PORT_START("CPR_SEG0")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("TRANSPOSE -")
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("TRANSPOSE +")
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("CPR_SEG1") // SOUND GROUP
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("ORGAN & ACCORDION")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("ORCHESTRAL PAD")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("SYNTH")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("BASS")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("DIGITAL DRAWBAR")
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("ACCORDION REGISTER")
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("GM SPECIAL")
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("DRUM KITS")
PORT_START("CPR_SEG2") // SOUND GROUP
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("PIANO")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("GUITAR")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("STRINGS & VOCAL")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("BRASS")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("FLUTE")
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("SAX & REED")
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("MALLET & ORCH PERC")
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("WORLD PERC")
PORT_START("CPR_SEG3") // EFFECT
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("SUSTAIN")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("DIGITAL EFFECT")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("DSP EFFECT")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("DIGITAL REVERB")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("ACOUSTIC ILLUSION")
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("CPR_SEG4") // PART SELECT
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("LEFT")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("RIGHT 2")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("RIGHT 1")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("ENTERTAINER")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("CONDUCTOR: LEFT")
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("CONDUCTOR: RIGHT 2")
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("CONDUCTOR: RIGHT 1")
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("TECHNI CHORD")
PORT_START("CPR_SEG5") // SEQUENCER
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("SEQUENCER: PLAY")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("SEQUENCER: EASY REC")
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("SEQUENCER: MENU")
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("CPR_SEG6") // PANEL MEMORY
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("PM 1")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("PM 2")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("PM 3")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("PM 4")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("PM 5")
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("PM 6")
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("PM 7")
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("PM 8")
PORT_START("CPR_SEG7") // PANEL MEMORY
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("PANEL MEMORY: SET")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("PANEL MEMORY: NEXT BANK")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("PANEL MEMORY: BANK VIEW")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("CPR_SEG8")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("R1/R2 OCTAVE -")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("R1/R2 OCTAVE +")
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("START/STOP")
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("SYNCHRO & BREAK")
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("TAP TEMPO")
PORT_START("CPR_SEG9") // SOUND GROUP
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("MEMORY A")
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("MEMORY B")
PORT_START("CPR_SEG10") // MENU
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("MENU: SOUND")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("MENU: CONTROL")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("MENU: MIDI")
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("MENU: DISK")
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("CPL_SEG0") // RHYTHM GROUP
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("STANDARD ROCK")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("R & ROLL & BLUES")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("POP & BALLAD")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("FUNK & FUSION")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("SOUL & MODERN DANCE")
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("BIG BAND & SWING")
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("JAZZ COMBO")
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("CPL_SEG1")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("MEMORY") // Composer
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("MENU") // Composer
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("SET") // Sound Arranger
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("ON/OFF") // Sound Arranger
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("MUSIC STYLIST")
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("FADE IN")
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("FADE OUT")
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("CPL_SEG2")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("FILL IN 1")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("FILL IN 2")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("INTRO & ENDING 1")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("INTRO & ENDING 2")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("PAGE DOWN")
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("PAGE UP")
PORT_START("CPL_SEG3")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("DEMO")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("MSP BANK")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("MSP MENU")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("MSP STOP/RECORD")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("CPL_SEG4")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("VARIATION 1") // VARIATION & MSA
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("VARIATION 2") // VARIATION & MSA
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("VARIATION 3") // VARIATION & MSA
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("VARIATION 4") // VARIATION & MSA
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("MUSIC STYLE ARRANGER")
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("SPLIT POINT")
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("AUTO PLAY CHORD")
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("CPL_SEG5") // MANUAL SEQUENCE PADS
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("MSP 1")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("MSP 2")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("MSP 3")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("MSP 4")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("MSP 5")
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("MSP 6")
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("CPL_SEG6") // RHYTHM GROUP
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("U.S. TRAD")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("COUNTRY")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("LATIN")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("MARCH & WALTZ")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("PARTY TIME")
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("SHOWTIME & TRAD DANCE")
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("WORLD")
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("CUSTOM")
PORT_START("CPL_SEG7")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("RIGHT 5")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("RIGHT 4")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("DISPLAY HOLD")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("EXIT")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("DOWN 7")
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("UP 7")
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("DOWN 8")
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("UP 8")
PORT_START("CPL_SEG8")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("RIGHT 3")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("RIGHT 2")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("RIGHT 1")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("DOWN 5")
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("UP 5")
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("DOWN 6")
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("UP 6")
PORT_START("CPL_SEG9")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("LEFT 5")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("LEFT 4")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("LEFT 3")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("DOWN 3")
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("UP 3")
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("DOWN 4")
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("UP 4")
PORT_START("CPL_SEG10")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("LEFT 2")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("LEFT 1")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("HELP")
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("OTHER PARTS/TR")
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("DOWN 1")
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("UP 1")
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("DOWN 2")
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("UP 2")
INPUT_PORTS_END
uint8_t kn5000_state::cpanel_left_buttons_r(offs_t offset)
{
return m_CPL_SEG[offset]->read();
}
uint8_t kn5000_state::cpanel_right_buttons_r(offs_t offset)
{
return m_CPR_SEG[offset]->read();
}
void kn5000_state::cpanel_leds_w(offs_t offset, uint8_t data)
{
if ((offset & 1) == 0)
m_led_row = data;
if ((offset & 1) == 1)
{
switch (m_led_row)
{
case 0x00:
m_CPR_LED[1] = BIT(data, 0); // D101 - EFFECT: SUSTAIN
m_CPR_LED[2] = BIT(data, 1); // D102 - EFFECT: DIGITAL EFFECT
m_CPR_LED[3] = BIT(data, 2); // D103 - EFFECT: DSP EFFECT
m_CPR_LED[4] = BIT(data, 3); // D104 - EFFECT: DIGITAL REVERB
m_CPR_LED[5] = BIT(data, 4); // D105 - EFFECT: ACCOUSTIC ILLUSION
m_CPR_LED[6] = BIT(data, 5); // D106 - SEQUENCER: PLAY
m_CPR_LED[7] = BIT(data, 6); // D107 - SEQUENCER: EASY REC
m_CPR_LED[8] = BIT(data, 7); // D108 - SEQUENCER: MENU
break;
case 0x01:
m_CPR_LED[9] = BIT(data, 0); // D109 - PIANO
m_CPR_LED[10] = BIT(data, 1); // D110 - GUITAR
m_CPR_LED[11] = BIT(data, 2); // D111 - STRINGS & VOCAL
m_CPR_LED[12] = BIT(data, 3); // D112 - BRASS
m_CPR_LED[13] = BIT(data, 4); // D113 - FLUTE
m_CPR_LED[14] = BIT(data, 5); // D114 - SAX & REED
m_CPR_LED[15] = BIT(data, 6); // D115 - MALLET & ORCH PERC
m_CPR_LED[16] = BIT(data, 7); // D116 - WORLD PERC
break;
case 0x02:
m_CPR_LED[17] = BIT(data, 0); // D117 - ORGAN & ACCORDION
m_CPR_LED[18] = BIT(data, 1); // D118 - ORCHESTRAL PAD
m_CPR_LED[19] = BIT(data, 2); // D119 - SYNTH
m_CPR_LED[20] = BIT(data, 3); // D120 - BASS
m_CPR_LED[21] = BIT(data, 4); // D121 - DIGITAL DRAWBAR
m_CPR_LED[22] = BIT(data, 5); // D122 - ACCORDION REGISTER
m_CPR_LED[23] = BIT(data, 6); // D123 - GM SPECIAL
m_CPR_LED[24] = BIT(data, 7); // D124 - DRUM KITS
break;
case 0x03:
m_CPR_LED[25] = BIT(data, 0); // D125 - PANEL MEMORY 1
m_CPR_LED[26] = BIT(data, 1); // D126 - PANEL MEMORY 2
m_CPR_LED[27] = BIT(data, 2); // D127 - PANEL MEMORY 3
m_CPR_LED[28] = BIT(data, 3); // D128 - PANEL MEMORY 4
m_CPR_LED[29] = BIT(data, 4); // D129 - PANEL MEMORY 5
m_CPR_LED[30] = BIT(data, 5); // D130 - PANEL MEMORY 6
m_CPR_LED[31] = BIT(data, 6); // D131 - PANEL MEMORY 7
m_CPR_LED[32] = BIT(data, 7); // D132 - PANEL MEMORY 8
break;
case 0x04:
m_CPR_LED[33] = BIT(data, 0); // D133 - PART SELECT: LEFT
m_CPR_LED[34] = BIT(data, 1); // D134 - PART SELECT: RIGHT 2
m_CPR_LED[35] = BIT(data, 2); // D135 - PART SELECT: RIGHT 1
m_CPR_LED[36] = BIT(data, 3); // D136 - ENTERTAINER
m_CPR_LED[37] = BIT(data, 4); // D137 - CONDUCTOR: LEFT
m_CPR_LED[38] = BIT(data, 5); // D138 - CONDUCTOR: RIGHT 2
m_CPR_LED[39] = BIT(data, 6); // D139 - CONDUCTOR: RIGHT 1
m_CPR_LED[40] = BIT(data, 7); // D140 - TECHNI CHORD
break;
case 0x08:
m_CPR_LED[49] = BIT(data, 0); // D149 - MENU: SOUND
m_CPR_LED[50] = BIT(data, 1); // D150 - MENU: CONTROL
m_CPR_LED[51] = BIT(data, 2); // D151 - MENU: MIDI
m_CPR_LED[52] = BIT(data, 3); // D152 - MENU: DISK
break;
case 0x0a:
m_CPR_LED[57] = BIT(data, 0); // D157 - MEMORY A
m_CPR_LED[58] = BIT(data, 1); // D158 - MEMORY B
break;
case 0x0b:
m_CPR_LED[61] = BIT(data, 0); // D161 - SYNCHRO & BREAK
m_CPR_LED[62] = BIT(data, 1); // D162 - R1/R2 OCTAVE MINUS
m_CPR_LED[63] = BIT(data, 2); // D163 - R1/R2 OCTAVE PLUS
m_CPR_LED[64] = BIT(data, 3); // D164 - BANK VIEW
break;
case 0x0c:
m_CPR_LED[65] = BIT(data, 0); // D165 - START/STOP 1 BEAT
m_CPR_LED[66] = BIT(data, 1); // D166 - START/STOP 2 BEAT
m_CPR_LED[67] = BIT(data, 2); // D167 - START/STOP 3 BEAT
m_CPR_LED[68] = BIT(data, 3); // D168 - START/STOP 4 BEAT
break;
case 0xc0:
m_CPL_LED[1] = BIT(data, 0); // D101 - COMPOSER: MEMORY
m_CPL_LED[2] = BIT(data, 1); // D102 - COMPOSER: MENU
m_CPL_LED[3] = BIT(data, 2); // D103 - SOUND ARRANGER: SET
m_CPL_LED[4] = BIT(data, 3); // D104 - SOUND ARRANGER: ON/OFF
m_CPL_LED[5] = BIT(data, 4); // D105 - MUSIC STYLIST
m_CPL_LED[6] = BIT(data, 5); // D106 - FADE IN
m_CPL_LED[7] = BIT(data, 6); // D107 - FADE OUT
m_CPL_LED[8] = BIT(data, 7); // D108 - DISPLAY HOLD
break;
case 0xc1:
m_CPL_LED[9] = BIT(data, 0); // D109 - U.S. TRAD
m_CPL_LED[10] = BIT(data, 1); // D110 - COUNTRY
m_CPL_LED[11] = BIT(data, 2); // D111 - LATIN
m_CPL_LED[12] = BIT(data, 3); // D112 - MARCH & WALTZ
m_CPL_LED[13] = BIT(data, 4); // D113 - PARTY TIME
m_CPL_LED[14] = BIT(data, 5); // D114 - SHOW TIME & TRAD DANCE
m_CPL_LED[15] = BIT(data, 6); // D115 - WORLD
m_CPL_LED[16] = BIT(data, 7); // D116 - CUSTOM
break;
case 0xc2:
m_CPL_LED[17] = BIT(data, 0); // D117 - STANDARD ROCK
m_CPL_LED[18] = BIT(data, 1); // D118 - R & ROLL & BLUES
m_CPL_LED[19] = BIT(data, 2); // D119 - POP & BALLAD
m_CPL_LED[20] = BIT(data, 3); // D120 - FUNK & FUSION
m_CPL_LED[21] = BIT(data, 4); // D121 - SOUL & MODERN DANCE
m_CPL_LED[22] = BIT(data, 5); // D122 - BIG BAND & SWING
m_CPL_LED[23] = BIT(data, 6); // D123 - JAZZ COMBO
m_CPL_LED[24] = BIT(data, 7); // D124 - MANUAL SEQUENCE PADS: MENU
break;
case 0xc3:
m_CPL_LED[25] = BIT(data, 0); // D125 - VARIATION & MSA 1
m_CPL_LED[26] = BIT(data, 1); // D126 - VARIATION & MSA 2
m_CPL_LED[27] = BIT(data, 2); // D127 - VARIATION & MSA 3
m_CPL_LED[28] = BIT(data, 3); // D128 - VARIATION & MSA 4
m_CPL_LED[29] = BIT(data, 2); // D129 - MUSIC STYLE ARRANGER
m_CPL_LED[30] = BIT(data, 3); // D130 - AUTO PLAY CHORD
break;
case 0xc4:
m_CPL_LED[33] = BIT(data, 0); // D133 - FILL IN 1
m_CPL_LED[34] = BIT(data, 1); // D134 - FILL IN 2
m_CPL_LED[35] = BIT(data, 2); // D135 - INTRO & ENDING 1
m_CPL_LED[36] = BIT(data, 3); // D136 - INTRO & ENDING 2
m_CPL_LED[37] = BIT(data, 4); // D137 - SPLIT POINT INDICATOR (LEFT)
m_CPL_LED[38] = BIT(data, 5); // D138 - SPLIT POINT INDICATOR (CENTER)
m_CPL_LED[39] = BIT(data, 6); // D139 - SPLIT POINT INDICATOR (RIGHT)
m_CPL_LED[40] = BIT(data, 7); // D140 - TEMPO/PROGRAM
break;
case 0xc8:
// I'm not sure yet about this one...
m_CPL_LED[49] = BIT(data, 0); // D149 - OTHER PARTS/TR
break;
case 0xff:
break;
}
}
return;
}
void kn5000_state::machine_start()
{
save_item(NAME(m_mstat));
save_item(NAME(m_sstat));
m_checking_device_led_cn11.resolve();
m_checking_device_led_cn12.resolve();
m_CPL_LED.resolve();
m_CPR_LED.resolve();
}
void kn5000_state::machine_reset()
{
m_checking_device_led_cn11 = 0;
m_checking_device_led_cn12 = 0;
}
void kn5000_state::kn5000(machine_config &config)
{
// Note: The CPU has an internal clock doubler
TMP95C061(config, m_maincpu, 2 * 8_MHz_XTAL); // actual cpu is TMP94C241F @ IC5
// Address bus is set to 32 bits by the pins AM1=+5v and AM0=GND
m_maincpu->set_addrmap(AS_PROGRAM, &kn5000_state::maincpu_mem);
// Interrupt 4: FDCINT
// Interrupt 5: FDCIRQ
// Interrupt 6: FDC.H/D
// Interrupt 7: FDC.I/O
// Interrupt 9: HDDINT
// Interrupt A <edge>: ~CPSCK "Control Panel Serial Clock"
// ~NMI: SNS
// TC0: FDCTC
// MAINCPU PORT 7:
// bit 5 (~BUSRQ pin): RY/~BY pin of maincpu ROMs
m_maincpu->port7_read().set([] { return (1 << 5); }); // checked at EF3735 (v10 ROM)
// MAINCPU PORT 8:
// bit 6 (~WAIT pin) (input): Something involving VGA.RDY, FDC.DMAACK
// and shift-register @ IC18
// MAINCPU PORT A:
// bit 0 (output) = sub_cpu ~RESET / SRST
m_maincpu->porta_write().set([this] (u8 data) {
m_subcpu->set_input_line(INPUT_LINE_RESET, BIT(data, 0) ? ASSERT_LINE : CLEAR_LINE);
});
// MAINCPU PORT C:
// bit 0 (input) = "check terminal" switch
// bit 1 (output) = "check terminal" LED
// TODO: m_maincpu->portc_read().set([this] { return ioport("CN11")->read(); });
// TODO: m_maincpu->portc_write().set([this] (u8 data) { m_checking_device_led_cn11 = (BIT(data, 1) == 0); });
// MAINCPU PORT D:
// bit 0 (output) = FDCRST
// bit 6 (input) = FD.I/O
// TODO: m_maincpu->portd_write().set([this] (u8 data) { m_fdc->reset_w(BIT(data, 0)); });
// TODO: bit 6!
// MAINCPU PORT E:
// bit 0 (input) = +5v
// bit 2 (input) = HDDRDY
// bit 4 (?) = MICSNS
// TODO: m_maincpu->porte_read().set([] { return 1; }); //checked at EF05A6 (v10 ROM)
// FIXME: Bit 0 should only be 1 if the
// optional hard-drive extension board is disabled;
// MAINCPU PORT F:
// bit 2 (OUTPUT) = Something related to "RESET CONTROL" circuits?
// MAINCPU PORT G:
// bit 2 (input) = FS1 (Foot Switches and Foot Controler ?)
// bit 3 (input) = FS2
// bit 4 (input) = FC1
// bit 5 (input) = FC2
// bit 6 (input) = FC3
// bit 7 (input) = FC4
// MAINCPU PORT H:
// bit 1 = TC1 Terminal count - microDMA
// TODO: m_maincpu->porth_read().set([] { return 2; }); // area/region detection: checked at EF083E (v10 ROM)
// FIXME: These are resistors on the pcb, but could be declared
// in the driver as a 2 bit DIP-Switch for area/region selection.
// MAINCPU PORT Z:
// bit 0 = (output) MSTAT0
// bit 1 = (output) MSTAT1
// bit 2 = (input) SSTAT0
// bit 3 = (input) SSTAT1
// bit 4 = (input) COM.PC2
// bit 5 = (input) COM.PC1
// bit 6 = (input) COM.MAC
// bit 7 = (input) COM.MIDI
// TODO: m_maincpu->portz_read().set([this] {
// TODO: return ioport("COM_SELECT")->read() | (m_sstat << 2);
// TODO: });
// TODO: m_maincpu->portz_write().set([this] (u8 data) {
// TODO: m_mstat = data & 3;
// TODO: });
// RX0/TX0 = MRXD/MTXD
// RX1/TX1 = CPDATA
// SCLK1 = CPSCK
// AN0 = EXP (expression pedal?)
// AN1 = AFT
// Note: The CPU has an internal clock doubler
TMP95C061(config, m_subcpu, 2*10_MHz_XTAL); // actual cpu is TMP94C241F @ IC27
// Address bus is set to 8 bits by the pins AM1=GND and AM0=GND
m_subcpu->set_addrmap(AS_PROGRAM, &kn5000_state::subcpu_mem);
// SUBCPU PORT C:
// bit 0 (input) = "check terminal" switch
// bit 1 (output) = "check terminal" LED
// TODO: m_subcpu->portc_read().set([this] { return ioport("CN12")->read(); });
// TODO: m_subcpu->portc_write().set([this] (u8 data) { m_checking_device_led_cn12 = (BIT(data, 1) == 0); });
// SUBCPU PORT D:
// bit 0 = (output) SSTAT0
// bit 1 = (output) SSTAT1
// bit 2 = (input) MSTAT0
// bit 3 (not used)
// bit 4 = (input) MSTAT1
// TODO: m_subcpu->portd_read().set([this] {
// TODO: return (BIT(m_mstat, 0) << 2) | (BIT(m_mstat, 1) << 4);
// TODO: });
// TODO: m_subcpu->portd_write().set([this] (u8 data) {
// TODO: m_sstat = data & 3;
// TODO: });
GENERIC_LATCH_8(config, m_maincpu_latch); // @ IC23
m_maincpu_latch->data_pending_callback().set_inputline(m_maincpu, TLCS900_INT0);
GENERIC_LATCH_8(config, m_subcpu_latch); // @ IC22
m_subcpu_latch->data_pending_callback().set_inputline(m_subcpu, TLCS900_INT0);
UPD72067(config, m_fdc, 32'000'000); // actual controller is UPD72068GF-3B9 at IC208
m_fdc->intrq_wr_callback().set_inputline(m_maincpu, TLCS900_INT4);
m_fdc->drq_wr_callback().set_inputline(m_maincpu, TLCS900_INT5);
m_fdc->hdl_wr_callback().set_inputline(m_maincpu, TLCS900_INT6);
//m_fdc->??_wr_callback().set_inputline(m_maincpu, TLCS900_INT7);
//FIXME:
// Interrupt 4: FDCINT
// Interrupt 5: FDCIRQ
// Interrupt 6: FDC.H/D
// Interrupt 7: FDC.I/O
FLOPPY_CONNECTOR(config, "fdc:0", kn5000_floppies, "35dd", floppy_image_device::default_mfm_floppy_formats).enable_sound(true);
/* video hardware */
// LCD Controller MN89304 @ IC206 24_MHz_XTAL
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
screen.set_raw(XTAL(40'000'000)/6, 424, 0, 320, 262, 0, 240);
screen.set_screen_update("vga", FUNC(mn89304_vga_device::screen_update));
mn89304_vga_device &vga(MN89304_VGA(config, "vga", 0));
vga.set_screen("screen");
vga.set_vram_size(0x100000);
config.set_default_layout(layout_kn5000);
}
ROM_START(kn5000)
ROM_REGION16_LE(0x200000, "program" , 0) // main cpu
ROM_DEFAULT_BIOS("v10")
// FIXME: These are actually stored in a couple flash rom chips IC6 (even) and IC4 (odd)
//
// Note: These ROMs from v5 to v10 were extracted from the system update floppies
// which were compressed using LZSS.
//
// System update disks for older versions were not found yet, so dumping
// efforts will require other methods.
//
// More info at:
// https://github.com/felipesanches/kn5000_homebrew/blob/main/kn5000_extract.py
ROM_SYSTEM_BIOS(0, "v10", "Version 10 - August 2nd, 1999")
ROMX_LOAD("kn5000_v10_program.rom", 0x00000, 0x200000, CRC(00303406) SHA1(1f2abc5b1b7b9e16fdf796f26d939edaceded354), ROM_BIOS(0))
ROM_SYSTEM_BIOS(1, "v9", "Version 9 - January 26th, 1999")
ROMX_LOAD("kn5000_v9_program.rom", 0x00000, 0x200000, CRC(c791d765) SHA1(d9a3b462b1f9302402e8d37aacd15f069f56abd9), ROM_BIOS(1))
ROM_SYSTEM_BIOS(2, "v8", "Version 8 - November 13th, 1998")
ROMX_LOAD("kn5000_v8_program.rom", 0x00000, 0x200000, CRC(46b4b242) SHA1(a10a6f5a35175b74c3cfb42cef3bdf571c2858bb), ROM_BIOS(2))
ROM_SYSTEM_BIOS(3, "v7", "Version 7 - June 26th, 1998")
ROMX_LOAD("kn5000_v7_program.rom", 0x00000, 0x200000, CRC(a5a25eb0) SHA1(4c682cb248034a2de04c688b0a45654b8726bffb), ROM_BIOS(3))
ROM_SYSTEM_BIOS(4, "v6", "Version 6 - January 16th, 1998") // sometimes refered to as "update6v0"
ROMX_LOAD("kn5000_v6_program.rom", 0x00000, 0x200000, CRC(0205db30) SHA1(51108e2d75b180a034395e90bd40ca2bd2a0adfb), ROM_BIOS(4))
ROM_SYSTEM_BIOS(5, "v5", "Version 5 - November 12th, 1997") // sometimes refered to as "update5v0"
ROMX_LOAD("kn5000_v5_program.rom", 0x00000, 0x200000, CRC(fbd035e3) SHA1(7b69a8aaa84ee3d337acc0c29c34154c5da2df32), ROM_BIOS(5))
ROM_SYSTEM_BIOS(6, "v4", "Version 4") // I have a v4 board but haven't dumped it yet
ROMX_LOAD("kn5000_v4_program.rom", 0x00000, 0x200000, NO_DUMP, ROM_BIOS(6))
ROM_SYSTEM_BIOS(7, "v3", "Version 3") // I have a v3 board but haven't dumped it yet
ROMX_LOAD("kn5000_v3_program.rom", 0x00000, 0x200000, NO_DUMP, ROM_BIOS(7))
// Note: I've never seen boards with versions 1 or 2.
// Note: Even though this "subprogram" address range contain executable code for the subcpu, it is actually loaded by the maincpu
// from a flash rom and then transfered to the subcpu RAM via the inter-cpu communications latches at some point during boot.
ROM_REGION16_LE(0x30000, "subprogram", 0)
ROMX_LOAD("kn5000_subprogram_v142.rom", 0x000000, 0x030000, CRC(fe3b640a) SHA1(5c3a2b9311318c19e1a29ca460dea693bcb2c405), ROM_BIOS(0)) // v10
ROMX_LOAD("kn5000_subprogram_v142.rom", 0x000000, 0x030000, CRC(fe3b640a) SHA1(5c3a2b9311318c19e1a29ca460dea693bcb2c405), ROM_BIOS(1)) // v9
ROMX_LOAD("kn5000_subprogram_v141.rom", 0x000000, 0x030000, CRC(4f6ea155) SHA1(39b0dd7b23abd3cdfedce65dd4fef0e2ab16ab69), ROM_BIOS(2)) // v8
ROMX_LOAD("kn5000_subprogram_v141.rom", 0x000000, 0x030000, CRC(4f6ea155) SHA1(39b0dd7b23abd3cdfedce65dd4fef0e2ab16ab69), ROM_BIOS(3)) // v7
ROMX_LOAD("kn5000_subprogram_v140.rom", 0x000000, 0x030000, CRC(d9a537aa) SHA1(b7f471522ab3125e5eb42c7368d57a56084ce32a), ROM_BIOS(4)) // v6
ROMX_LOAD("kn5000_subprogram_v140.rom", 0x000000, 0x030000, CRC(d9a537aa) SHA1(b7f471522ab3125e5eb42c7368d57a56084ce32a), ROM_BIOS(5)) // v5
ROMX_LOAD("kn5000_subprogram_v139.rom", 0x000000, 0x030000, NO_DUMP, ROM_BIOS(6)) // v4
ROM_REGION16_LE(0x20000, "mask", 0) // subcpu boot rom
ROM_LOAD("kn5000_mask_rom.ic30", 0x00000, 0x20000, NO_DUMP)
// hack to keep the CPU from touching SFRs arbitrarily while we do not have a proper ROM dump:
ROM_FILL(0x000000, 1, 0x68) // 68 fe = infinite loop
ROM_FILL(0x000001, 1, 0xfe)
ROM_FILL(0x01ff00, 1, 0x00) // RESET vector = 0x00fe0000
ROM_FILL(0x01ff01, 1, 0x00)
ROM_FILL(0x01ff02, 1, 0xfe)
ROM_FILL(0x01ff03, 1, 0x00)
ROM_REGION16_LE(0x200000, "table_data", 0)
ROM_LOAD16_BYTE("kn5000_table_data_rom_even.ic3", 0x000000, 0x100000, NO_DUMP)
ROM_LOAD16_BYTE("kn5000_table_data_rom_odd.ic1", 0x000001, 0x100000, CRC(cd907eac) SHA1(bedf09d606d476f3e6d03e590709715304cf7ea5))
ROM_REGION16_LE(0x100000, "custom_data", 0)
ROM_LOAD("kn5000_custom_data_rom.ic19", 0x000000, 0x100000, CRC(5de11a6b) SHA1(4709f815d3d03ce749c51f4af78c62bf4a5e3d94))
// IC19 is a flash ROM. The contents here were dumped from a system that had it already programmed by the initial data disk.
// Maybe it could also be declared as NVRAM here?
ROM_REGION16_LE(0x400000, "rhythm_data", 0)
ROM_LOAD("kn5000_rhythm_data_rom.ic14", 0x000000, 0x400000, CRC(76d11a5e) SHA1(e4b572d318c9fe7ba00e5b44ea783e89da9c68bd))
ROM_REGION16_LE(0x1000000, "waveform", 0)
ROM_LOAD("kn5000_waveform_rom.ic304", 0x000000, 0x400000, NO_DUMP)
ROM_LOAD("kn5000_waveform_rom.ic305", 0x400000, 0x400000, NO_DUMP)
ROM_LOAD("kn5000_waveform_rom.ic306", 0x800000, 0x400000, NO_DUMP)
ROM_LOAD("kn5000_waveform_rom.ic307", 0xc00000, 0x400000, CRC(20ff4629) SHA1(4b511bff6625f4655cabd96a263bf548d2ef4bf7))
ROM_END
} // anonymous namespace
// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS
CONS(1998, kn5000, 0, 0, kn5000, kn5000, kn5000_state, empty_init, "Technics", "SX-KN5000", MACHINE_NOT_WORKING|MACHINE_NO_SOUND)