Previous Thread
Next Thread
Print Thread
Page 81 of 81 1 2 79 80 81
Darkstar #120372 01/16/22 11:35 AM
Joined: Apr 2005
Posts: 604
Likes: 2
Senior Member
OP Online Content
Senior Member
Joined: Apr 2005
Posts: 604
Likes: 2
I decided to dump the EPROMs on that beautiful DEC DMB32 communication controller:
[Linked Image from i.imgur.com]

Yes, I know, there's no VAX emulation in MAME (yet) but maybe at some point this will come in handy. Now I'll get this framed and hang it on a wall smile

The EPROM dumps and some higher-resolution photos can be downloaded here. I also included the two manuals for the DMB32 that are available on MANX, just in case.

1 member likes this: exidyboy
Darkstar #120391 01/21/22 11:06 PM
Joined: Jan 2021
Posts: 48
Likes: 28
R
Member
Offline
Member
R
Joined: Jan 2021
Posts: 48
Likes: 28
https://revenant1.net/casio/ld50.zip
ROM and 87c52 MCU dumps from the Casio LD-50 electronic drums. Also includes the demo and built-in rhythms as MIDI files, which is how they're stored in ROM.

This is clearly a rebranded/outsourced product, sort of like the LD-80 (also sold as the Medeli DD-306), but I can't tell if this one was ever sold under other brands or who the actual developer is. The ROM mentions "SharpWin", which might be this company, but I'm not entirely sure.

Anyway, the actual sound chip is a Dream SAM9793 MIDI-synth-on-a-chip (i.e. MIDI goes in, I2S comes out), which isn't a very viable emulation target. Alternately, you should just be able to connect the MCU's UART output to a generic MIDI out port and just have it control something else instead, if it'd be worth having a driver that does that.

1 member likes this: Robbbert
Darkstar #120392 01/22/22 06:03 AM
Joined: Jan 2021
Posts: 138
Likes: 3
=
Senior Member
Offline
Senior Member
=
Joined: Jan 2021
Posts: 138
Likes: 3
Casio rebranded also other music stuff?

I only know the awful Casio MA-150/MA-170 midsize keyboard that actually was a Medeli MC-36 (i.e. mainvoice of primitive static waveforms with noisy DAC output). Casio really did themselves no favour with ruining their reputation with selling this really poor sounding tablehooter. If I remeber well, even the play training modes were full of glitches and in some songs unusable because instead of the melody voice it did some rapid arpeggio stuff that is impossible by hand if you are not a pianist skilled like Lang Lang.


MAY THE SOFTWARE BE WITH YOU!

{weltenschule.de}
=CO=Windler #120755 04/13/22 10:08 PM
Joined: Jan 2021
Posts: 48
Likes: 28
R
Member
Offline
Member
R
Joined: Jan 2021
Posts: 48
Likes: 28
https://revenant1.net/casio/ct647.zip

Mask ROM dump from the Casio CT-647 / CT-648 (1992), also released as CTK-500 / CTK-510 and Concertmate 950

Service manual: https://revenant1.net/casio/manuals/msm6626/ctk500.pdf

The CPU/sound chip can be either MSM6566-03 or MSM6626-01 depending on revision (mine has the former, the service manual has the latter), but the PCBs are otherwise the same. I don't know of any other models that used these aside from possibly the KT-80 (similar keyboard with built-in CD player) and KT-90G (same but with CD+G). As usual with these custom OKI chips the program code is probably internal.

Last edited by Revenant; 04/13/22 10:17 PM.
Darkstar #121244 08/14/22 09:23 PM
Joined: Jan 2021
Posts: 48
Likes: 28
R
Member
Offline
Member
R
Joined: Jan 2021
Posts: 48
Likes: 28
https://revenant1.net/phusion.zip

VTech "Phusion" handheld organizer/PDA (2000).

Code
Version 1.73 12:00 20000426
VTECH ET39700

CPU is an epoxy blob (go figure). Code at the beginning of the ROM seems like CR16B, similar to the machines in vtech/glcx.cpp, though probably not the same exact SoC.

Darkstar #121822 01/02/23 05:40 AM
Joined: Jan 2021
Posts: 48
Likes: 28
R
Member
Offline
Member
R
Joined: Jan 2021
Posts: 48
Likes: 28
https://revenant1.net/vtech-alligator.zip

SPI flash dump from the VTech "Pull & Learn Alligator" toy from 2016 (teardown by Foone here). The CPU is a blob as usual but the flash contains 65C02 code and lots of audio in some weird format. I couldn't really find any vectors or boot code anywhere in the dump, so I assume there's some internal ROM also. Structurally it looks kind of similar to the "Cars 2 Laptop" ROM from inteladv.cpp.

Last edited by Revenant; 01/02/23 05:42 AM.
R. Belmont #121867 01/11/23 02:43 AM
Joined: Feb 2014
Posts: 914
Likes: 72
G
Senior Member
Online Content
Senior Member
G
Joined: Feb 2014
Posts: 914
Likes: 72
regarding the blw700i LW-700i from awhile back (page 72-73 of this thread), I found a manual for the lw-810 search for ("BROTHER LW-810iC") that has basically the same keyboard matrix:


[Linked Image from i.imgur.com]

[Linked Image from i.imgur.com]

Note that the keyboard in the pic is for the US layout but the rom has the UK layout.

Using the Emulated keyboard vs the Natural Keyboard, I can get it to pass the keyboard self test if I hit it in the right sequence.
Interestingly, it doesn't give you much feedback aside from a beep (currently unemulated) if you don't hit the right sequence.

from the main menu screen, hitting CTRL (CODE)+SHIFT+BACKSPACE gives you a self test menu:
also (CODE+SHIFT+ENTER) gives you a self test print.

[Linked Image from i.imgur.com]

[Linked Image from i.imgur.com]
[Linked Image from i.imgur.com]


Code
// row 0:   | 4 | 3 | W | E | D | X | ? | Enter? |
// row 1:   | 5 | 6 | R | T | C | F | ? | DArr |
// row 2:   | 8 | 7 | Y | H | G | V | ? | ? |
// row 3:   | 1 | 2 | Q | Z | A | S | ? | Shift Lock? |
// row 4:   | 9 | J | I | U | B | N | ? | RArr |
// row 5:   | - | 0 | P | O | M | , | ? | Menu |
// row 6:   | ? | ; |2/3| | |LAr|UAr| ? | ? |
// row 7:   | ? | ? |ENT|BkS| ? | ? | ? | Shift? |
// row 8:   |3/4| L | = | K | . |1/2| * | ? |

static INPUT_PORTS_START( lw700i )
	PORT_START("X0")
	PORT_BIT(0x001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_4)  PORT_CHAR('4') PORT_CHAR('@')
	PORT_BIT(0x002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_3)  PORT_CHAR('3') PORT_CHAR('/')
	PORT_BIT(0x004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_W)  PORT_CHAR('w') PORT_CHAR('W')
	PORT_BIT(0x008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_E)  PORT_CHAR('e') PORT_CHAR('E')
	PORT_BIT(0x010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_D)  PORT_CHAR('d') PORT_CHAR('D')
	PORT_BIT(0x020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_X)  PORT_CHAR('x') PORT_CHAR('X')
	PORT_BIT(0x040, IP_ACTIVE_LOW, IPT_UNKNOWN)
	PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYBOARD)  PORT_CODE(KEYCODE_TAB)

	PORT_START("X1")
	PORT_BIT(0x001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_5)  PORT_CHAR('5') PORT_CHAR(0xa3)  // a3=pound symbol
	PORT_BIT(0x002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_6)  PORT_CHAR('6') PORT_CHAR('_')
	PORT_BIT(0x004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_R)  PORT_CHAR('r') PORT_CHAR('R')
	PORT_BIT(0x008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_T)  PORT_CHAR('t') PORT_CHAR('T')
	PORT_BIT(0x010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_C)  PORT_CHAR('c') PORT_CHAR('C')
	PORT_BIT(0x020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F)  PORT_CHAR('f') PORT_CHAR('F')
	PORT_BIT(0x040, IP_ACTIVE_LOW, IPT_UNKNOWN)  // F19 (unused)

	PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(UTF8_UP)    PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP))  // F10

	PORT_START("X2")
	PORT_BIT(0x001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_8)  PORT_CHAR('8') PORT_CHAR('\'')
	PORT_BIT(0x002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_7)  PORT_CHAR('7') PORT_CHAR('&')
	PORT_BIT(0x004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Y)  PORT_CHAR('y') PORT_CHAR('Y')
	PORT_BIT(0x008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_H)  PORT_CHAR('h') PORT_CHAR('H')
	PORT_BIT(0x010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_G)  PORT_CHAR('g') PORT_CHAR('G')
	PORT_BIT(0x020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_V)  PORT_CHAR('v') PORT_CHAR('V')
	PORT_BIT(0x040, IP_ACTIVE_LOW, IPT_UNKNOWN)
	PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYBOARD)  PORT_NAME("P INS / P BREAK") PORT_CODE(KEYCODE_PGUP)  // F5

	PORT_START("X3")
	PORT_BIT(0x001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_1)  PORT_CHAR('1') PORT_CHAR('*')
	PORT_BIT(0x002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_2)  PORT_CHAR('2') PORT_CHAR('"')
	PORT_BIT(0x004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Q)  PORT_CHAR('q') PORT_CHAR('Q')
	PORT_BIT(0x008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Z)  PORT_CHAR('z') PORT_CHAR('Z')
	PORT_BIT(0x010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_A)  PORT_CHAR('a') PORT_CHAR('A')
	PORT_BIT(0x020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_S)  PORT_CHAR('s') PORT_CHAR('S')
	PORT_BIT(0x040, IP_ACTIVE_LOW, IPT_UNKNOWN)
	PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_CAPSLOCK) PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK))

	PORT_START("X4")
	PORT_BIT(0x001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_9)  PORT_CHAR('9') PORT_CHAR('(')
	PORT_BIT(0x002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_J)  PORT_CHAR('j') PORT_CHAR('J')
	PORT_BIT(0x004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_I)  PORT_CHAR('i') PORT_CHAR('I')
	PORT_BIT(0x008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_U)  PORT_CHAR('u') PORT_CHAR('U')
	PORT_BIT(0x010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_B)  PORT_CHAR('b') PORT_CHAR('B')
	PORT_BIT(0x020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_N)  PORT_CHAR('n') PORT_CHAR('N')
	PORT_BIT(0x040, IP_ACTIVE_LOW, IPT_UNKNOWN)
	PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(UTF8_RIGHT) PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT))

	PORT_START("X5")
	PORT_BIT(0x001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS)  PORT_CHAR('-') PORT_CHAR('?')  // A11
	PORT_BIT(0x002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_0)      PORT_CHAR('0') PORT_CHAR(')')
	PORT_BIT(0x004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_P)      PORT_CHAR('p') PORT_CHAR('P')
	PORT_BIT(0x008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_O)      PORT_CHAR('o') PORT_CHAR('O')
	PORT_BIT(0x010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_M)      PORT_CHAR('m') PORT_CHAR('M')
	PORT_BIT(0x020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COMMA)  PORT_CHAR(',')
	PORT_BIT(0x040, IP_ACTIVE_LOW, IPT_UNKNOWN)
	PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Menu / PgUp")  PORT_CODE(KEYCODE_HOME)


	PORT_START("X6")
	PORT_BIT(0x001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME ("P CLIP / C CLIP") PORT_CODE(KEYCODE_INSERT) // (grid says A2)  no it's F2
	PORT_BIT(0x002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COLON)      PORT_CHAR(';') PORT_CHAR(':')       // AA3
	PORT_BIT(0x004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(0x2154) PORT_CHAR(0x2153) // AA2 2154 = ⅔ 2153 = ⅓
	PORT_BIT(0x008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_OPENBRACE)  PORT_CHAR(0xbc) PORT_CHAR(0xbd)     // AA1
	
	PORT_BIT(0x010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(UTF8_LEFT)          PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) // F12
	PORT_BIT(0x020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME(UTF8_DOWN)          PORT_CODE(KEYCODE_DOWN) PORT_CHAR(UCHAR_MAMEKEY(DOWN))  // F13
	PORT_BIT(0x040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("CODE")             PORT_CODE(KEYCODE_LCONTROL)    // F15
	PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_UNKNOWN)

	PORT_START("X7")
	PORT_BIT(0x001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Print")              PORT_CODE(KEYCODE_PGDN) // F1
	PORT_BIT(0x002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Cancel / Page Down") PORT_CODE(KEYCODE_END)  // F3
	PORT_BIT(0x004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Return")             PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13)  // F9
	PORT_BIT(0x008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSPACE)    PORT_CHAR(8)  // F7
	PORT_BIT(0x010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_DEL)                        // F17 DELETE
	PORT_BIT(0x020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Clear")              PORT_CODE(KEYCODE_RCONTROL) // F18 WORD OUT / LINE OUT
	PORT_BIT(0x040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_SPACE)        PORT_CHAR(' ')  // F16 SPACE
	PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Shift")              PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT)  // F11 SHIFT PORT_CHAR(UCHAR_SHIFT_1)

	PORT_START("X8")
	PORT_BIT(0x001, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_EQUALS)    PORT_CHAR(0xbe) PORT_CHAR(0xbc)  // 3/4 and 1/4
	PORT_BIT(0x002, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_L)         PORT_CHAR('l') PORT_CHAR('L')
	PORT_BIT(0x004, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_TILDE)     PORT_CHAR('=') PORT_CHAR('+')  // A0  = and +
	PORT_BIT(0x008, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_K)         PORT_CHAR('k') PORT_CHAR('K')
	PORT_BIT(0x010, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP)      PORT_CHAR('.')
	PORT_BIT(0x020, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH)     PORT_CHAR(0xbd) PORT_CHAR('%')  // 1/2 and %
	PORT_BIT(0x040, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_QUOTE)     PORT_CHAR(0xb7) PORT_CHAR(0xf7) // AA4 QUOTE middle dot, division sign
	PORT_BIT(0x080, IP_ACTIVE_LOW, IPT_UNKNOWN)

Page 81 of 81 1 2 79 80 81

Link Copied to Clipboard
Who's Online Now
1 members (Pernod), 23 guests, and 4 robots.
Key: Admin, Global Mod, Mod
ShoutChat
Comment Guidelines: Do post respectful and insightful comments. Don't flame, hate, spam.
Forum Statistics
Forums9
Topics9,158
Posts119,911
Members5,034
Most Online1,283
Dec 21st, 2022
Our Sponsor
These forums are sponsored by Superior Solitaire, an ad-free card game collection for macOS and iOS. Download it today!

Superior Solitaire
Forum hosted by www.retrogamesformac.com