First-Rate-Music-Hall'21

Page 1/2
| 2

By ro

Scribe (4366)

ro's picture

05-02-2021, 20:21

First Rate Music Hall 21

Okay, so this happened. Thirty years ago I coded a music editor called First Rate Music Hall. An MML basic MSX Music program. I was around 18 years when I sad down and coded this piece. If I recall, it was my first real dip in the pool of Assembly language. Looking at the sources today, I can't but agree. What was I thinking! In 2021 I took the sources to see if I could rebuild it to load from files instead of sector. You see, the first release was a sector-based disk edition.

A few weeks ago, I stumbled upon this Wiki page https://www.msx.org/wiki/First_Rate_Music_Hall. And a yellow bar yelled at me:

Quote:

"Help needed
No good disk image of this utility is available. If you have this disk and can provide a good disk image, then post a message in the forum."

And I thought "wow, some one actually know about this?". You see FRMH wasn't a big hit, it was published just after FAC Soundtracker came to the scene and just before Moonblaster was released. Nobody cared about an MML editor, trackers where hot! But it made me realize, I don't have that disk either. But I have the sources!

Now, I was just about the start migrating from BlueMSX to OpenMSX, so this was a great opportunity to put that emulator to the test. My plan was simple: rebuild FRMH to load from files and dump that on the earlier mentioned wiki. Nice project.

After some initial troubles with getting OpenMSX to work the way I wanted it, I attached my BlueMSX IDE HD and to my surprise it booted. Nice, now I don't have to migrate hard disks. After MSXDOS2 started, I booted my development environment, pushed the sources I had on HD (with diskmanipulator, nice) and started digging.

I quickly got FRMH to run, but had some troubles with disk actions. Short version, FRMH wasn't DOS2 ready. Memory Mapper resets where a nightmare, as I discovered after a week of trouble shooting. 30 years ago I wasn't using DOS2, but my current dev env is. Beside rewriting memory mapping I shifted some stuff and did some mods on the disk-handler. Whipped up a loader and got FRMH booting from files. Cool.

change log:
- [fix] memory mapping with respect to MSXDOS2 memory management
- [new] disk error handler
- [new] file based, with dedicated loader
- [fix] minor code fixes
- [new] ESC exits you back to BASIC
- [change] relocation of code
- [new] English manual (well, the short version that is)

Files:
frmh.bas :: basic program to setup and run the thing (optional)
frmh.bin :: binairy loader, can be run directly with bload "frmh.bin",r
frmh.cod :: progam file
font.dat :: ascii font
edipage.dat :: some data
derr.cod :: diskerror handler (this is 2021 code)
fm-basic.ins :: instruments
standard.drm :: drums

just run "frmh.bas" and enjoy.

I've uploaded it to MRC. Here ye go.
First-Rate-Music-Hall'21
now update the wiki, Wicky (or I'll send the vikings to punch yer light out)

So, there you have it. FRMH'21 -rebuild of old software. Let's see what's next.

Login or register to post comments

By ro

Scribe (4366)

ro's picture

05-02-2021, 20:26

Tell you, this was a real trip down memory lane.. and it was a joy. But oh, boy, what did I get myself into.

By mars2000you

Enlighted (5833)

mars2000you's picture

05-02-2021, 20:38

Very nice Smile

I will first add a link in the Wiki - a more detailed update will follow later.

By mars2000you

Enlighted (5833)

mars2000you's picture

05-02-2021, 21:31

Are you sure for the T instruction?

In your manual, values go from 1 to 255 while they vary between 32 and 255 for the PLAY instruction....

Another question is about the f instruction:

the manual says "FM inst 1-5, change basic instrument" but I read this in the features: "Change of instruments (15 FM presets or 64 original instruments)"

By ro

Scribe (4366)

ro's picture

06-02-2021, 10:40

Hai Mars, thanx for taking the time to whip up a nice Wiki page about this obscure piece of MSX code Smile

F is basic/hardware instruments and are, indeed, 1-15 (typo)
T is default tempo and runs from 1-255, yes.

By wolf_

Ambassador_ (9855)

wolf_'s picture

06-02-2021, 10:50

Doubt I'm ever going to look at it, but just wondering about the tempo. Is that interrupt-based? Or do you have a timer that's more accurate than that?

By ro

Scribe (4366)

ro's picture

06-02-2021, 12:57

you shouldn't look at it, it's not worth it. I created it, but it's dated. Served us well in the beginning of Fuzzy Logic 'cuz of the lack of good trackers (or musicians for that matter). It's all interrupt based. remember itsa 1991 piece, we didn't have too much information available to be shared back then.

I re-assembled it just for fun and archiving, thaz all (the original disk was sector-based loading with copy protection)

By wolf_

Ambassador_ (9855)

wolf_'s picture

06-02-2021, 13:35

So, the slowest speed takes 255 ints before the next event is processed?

I ask because MSX-BASIC has more detailed speeds afaik, but maybe that BASIC timer has sub-int precision?

By ro

Scribe (4366)

ro's picture

06-02-2021, 15:09

No, the speed is actually calculated as MSX-BASIC does. The T value is not the same as the interrupt interval, but the driver is interrupt based (50/60Hz, on vlbank for example). Afaik BASIC does exactly the same, there's an PLAY sub route on the ROM ISR.

By msd

Paragon (1455)

msd's picture

06-02-2021, 15:19

Quote:

Let's see what's next.

Finish Oracle Tongue

By syn

Paragon (2042)

syn's picture

06-02-2021, 15:39

Nice, Ive read about this editor i think back in the 90s. Never seen it in action.

I dont like MML but perhaps I will give this a try

Page 1/2
| 2