M3000 vs M5000

for bbc micro/electron hardware, peripherals & programming issues (NOT emulators!)
Boydie
Posts: 202
Joined: Sat Oct 24, 2015 8:25 am
Location: Sunny Wigan
Contact:

Re: M3000 vs M5000

Post by Boydie » Sun Oct 22, 2017 9:36 am

I'd noticed that too, except I'd dismantled a Music87 instead.
Presumably the extra modifications on the back of the M3000 are what maps it into a different bit of the 1MHz bus, and modding a M500 board will turn it into a M3000?
What are the values of the caps?

ps Congrats on the recovery. Speaking from the other end of the icu bed it's nice to know people do get better (we seldom get to see the final outcome).

User avatar
paulv
Posts: 3718
Joined: Tue Jan 25, 2011 6:37 pm
Location: Leicestershire
Contact:

Re: M3000 vs M5000

Post by paulv » Sun Oct 22, 2017 11:43 am

The caps in the photo's are ceramic, marked as N22 which makes then 220nF I believe.

Yes, the extra wires are connected to the address decoder circuitry so yes, it would seem that they're used to alter the address that the M3000 will respond to.

Regarding the recovery, it's by no means complete, I need to lose the weight I put on when I had my chemo which will help me out no end. I hired a trike and went cycling in the peak district a few weeks ago which was interesting. I was a keen cyclist before and I can ride a bike mounted on a turbo trainer so a trike seemed like a safer bet than a bike. In the end though it proved to be scary as hell :-o

After my surgery I spent 2 days in a semi-concious state in ITU at Stanmore. All I remember was the fact that I had an ITU nurse sitting with me 24/7 for those two days watching over me for which I'm eternally grateful. They were awesome!

Paul

User avatar
hoglet
Posts: 7632
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: M3000 vs M5000

Post by hoglet » Sun Oct 22, 2017 7:29 pm

The Music 5000 only enables writes when a value in the range &30-&3F is written to the &FCFF paging register. The Music 3000 is identical to the Music 5000, except it uses a different page range (currently unknown).

This "address" that the Music 5000 responds to is controlled by this bit of circuitry:
music3000.PNG
Specifically, IC35 matches D7=0 and D6=0 and IC14 matches D5=1 and D4=1.

Looking carefully at the two extra wires on Paul's photos, they appear to connect:
- IC32 pin 14 (1MHz Bus D4) -> IC35 pin 10
- IC32 pin 8 (1MHz Bus D7) -> IC14 pin 1

This only makes sense if there are some cut tracks (possibly under the ICs), and if the PCB designer has pin-swapped pins 9/10 of IC35 and pins 1/2 of IC14 (compared to the schematic).

So with these mods, I think IC35 matches D6=0 and D4=0 and IC14 matches D7=1 and D5=1. This would mean a Music 3000 would enable writes when &A0-&AF is written to the &FCFF paging register. A way to confirm this would be to use a multi-meter to check the continuity pins 9/10 of IC35 and pins 1/2 of IC14 and D4..D7 on the 1MHz bus.

Dave

P.S. Paul, the Music 3000 drivers were included in the later system disks. What do the labels on the disks say?

User avatar
paulv
Posts: 3718
Joined: Tue Jan 25, 2011 6:37 pm
Location: Leicestershire
Contact:

Re: M3000 vs M5000

Post by paulv » Sun Oct 22, 2017 8:59 pm

I can buzz out the lines tomorrow evening.

For now, the discs (some originals, some "backups" marked with *) I have are labelled as follows:

Studio 5000 System Disc *
Studio 5000 Issue Disc
Studio 2 Issue Disc
Studio 3 Issue Disc
Studio 5000-4B Issue Disc
AMPLE Toolbox

Music 87 *
Jukebox 500 *
Music 2000 Interface *

Ample Instruments *

Music discs are:

AMPLE Bytes Back
Music City
COSMIX
Inside Stories
Notes

User avatar
paulv
Posts: 3718
Joined: Tue Jan 25, 2011 6:37 pm
Location: Leicestershire
Contact:

Re: M3000 vs M5000

Post by paulv » Sun Oct 22, 2017 9:31 pm

hoglet wrote:Looking carefully at the two extra wires on Paul's photos, they appear to connect:
- IC32 pin 14 (1MHz Bus D4) -> IC35 pin 10
- IC32 pin 8 (1MHz Bus D7) -> IC14 pin 1
Are you sure about this? My pin counting says:

- IC32 pin 7 (1MHz Bus D4) -> IC35 pin 10
- IC32 pin 13 (1MHz Bus D7) -> IC14 pin 1

Paul

User avatar
hoglet
Posts: 7632
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: M3000 vs M5000

Post by hoglet » Sun Oct 22, 2017 9:40 pm

paulv wrote: Are you sure about this? My pin counting says:
- IC32 pin 7 (1MHz Bus D4) -> IC35 pin 10
- IC32 pin 13 (1MHz Bus D7) -> IC14 pin 1
You win I think...

- IC32 pin 7 (1MHz Bus D5) -> IC35 pin 10
- IC32 pin 13 (1MHz Bus D6) -> IC14 pin 1

That would make the address D7=0 D6=1 D5=0 D4=1 i.e. 0x5x

crj
Posts: 834
Joined: Thu May 02, 2013 4:58 pm
Contact:

Re: M3000 vs M5000

Post by crj » Sun Oct 22, 2017 10:57 pm

Gngh! I need to get my Hybrid Music System up and running again, and hope to get good archives of some of my floppies. (Fortunately, I have multiple copies of the important stuff.)

Back in the day, I almost completely picked AMPLE apart. To the extent of being able to detokenise/disassemble existing AMPLE words whether implemented in AMPLE or machine code. I also wrote a utility to turn a program into a module, and wrote two or three extension modules to do various tricks.

Starting from there - assuming I can get it all going again - it ought to be relatively easy to answer questions such as these.

User avatar
paulv
Posts: 3718
Joined: Tue Jan 25, 2011 6:37 pm
Location: Leicestershire
Contact:

Re: M3000 vs M5000

Post by paulv » Mon Oct 23, 2017 5:57 pm

Well, that pretty much solves it then. The traces buzz out as predicted and I found the track cuts...
M3000-Track-Cuts.jpg
You can actually see the track cuts on one of the previous photo's I posted but you could miss them if you're not looking for them specifically

Image

Paul

User avatar
paulv
Posts: 3718
Joined: Tue Jan 25, 2011 6:37 pm
Location: Leicestershire
Contact:

Re: M3000 vs M5000

Post by paulv » Sun Dec 03, 2017 4:58 pm

So, I took my Hybrid discs to the ABug meet in Leicester and left them in the capable hands of our very own DanielJ who has Kryofluxed the discs and converted them all to SSD's too.

Going through the discs, it seems I have a couple of discs with different versions of the M5 module on and one of the discs is billed as the Studio 5000 Release 6 which is the latest one I think I've ever seen.

I can't seem to get the discs to run under B-em correctly and manually attempting to load the M5 from the release 6 disc using Colin Fraser's system disc returns the error "Too Big" and attempting to load some of the other modules like "INT" and "EW" seem to hang B-Em. As my Hybrid System is still in boxes, I'm uploading the archive of discs Daniel has created for me here so others can take a look.

Many thanks to Daniel for doing the archive work :D =D> =D> =D>

Paul
Attachments
AmpleIssueandAlbums.zip
(302.55 KiB) Downloaded 33 times

User avatar
hoglet
Posts: 7632
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: M3000 vs M5000

Post by hoglet » Sun Dec 03, 2017 5:06 pm

This is great!

It looks like Studio3.ssd contains a copy of the extensions to support the Music 3000.

A quick disassembly of M.M5 and search for FCFF found the following:

Code: Select all

09ED  A9 3E       LDA  #&3E       )>
09EF  85 EE       STA  &EE        .n
09F1  8D FF FC    STA  &FCFF     ..|
and

Code: Select all

0A58  A9 5E       LDA  #&5E       )^
0A5A  85 EE       STA  &EE        .n
0A5C  8D FF FC    STA  &FCFF     ..|
This matches up with what we believed were the Music 3000 "addresses", i.e.
- 0x3x for the Music 5000
- 0x5x for the Music 3000 extender

Checking the other disks, this seems to be the only version of M.M5 that uses both addresses.

Great work for finding this.

Dave

User avatar
paulv
Posts: 3718
Joined: Tue Jan 25, 2011 6:37 pm
Location: Leicestershire
Contact:

Re: M3000 vs M5000

Post by paulv » Sun Dec 03, 2017 5:23 pm

hoglet wrote:It looks like Studio3.ssd contains a copy of the extensions to support the Music 3000.

Checking the other disks, this seems to be the only version of M.M5 that uses both addresses.
Excellent :D That's great news.

Paul

Coeus
Posts: 1083
Joined: Mon Jul 25, 2016 11:05 am
Contact:

Re: M3000 vs M5000

Post by Coeus » Mon Dec 04, 2017 1:27 pm

paulv wrote:I can't seem to get the discs to run under B-em correctly and manually attempting to load the M5 from the release 6 disc using Colin Fraser's system disc returns the error "Too Big" and attempting to load some of the other modules like "INT" and "EW" seem to hang B-Em. As my Hybrid System is still in boxes, I'm uploading the archive of discs Daniel has created for me here so others can take a look.
Paul, I was shocked to hear of your cancer experience and it's great to hear you have recovered enough to have made it to ABUG.

Regarding B-Em crashing, later on the thread Music 5000 in B-Em which you have already contributed to I discover the M4 module would crash due to B-Em not emulating the shift register in the VIA. The m4000 branch of B-Em on the stardot git repository now does emulated that, along with MIDI input via an emualted M400 from Jack on Linux.

Whilst there is still more to do to finish that - I'd like to have it working with Linux ALSA and on Windows - I can see that the next likely thing could be to emulate an M2000. If you have any other problems with Hybrid modules crashing B-Em it's probably worth putting it in as an issue.

User avatar
paulv
Posts: 3718
Joined: Tue Jan 25, 2011 6:37 pm
Location: Leicestershire
Contact:

Re: M3000 vs M5000

Post by paulv » Mon Dec 11, 2017 6:15 pm

Coeus wrote:Paul, I was shocked to hear of your cancer experience and it's great to hear you have recovered enough to have made it to ABUG.
Thanks. It took two years to get to this point but it was really great to see everyone again.
Coeus wrote:Regarding B-Em crashing, later on the thread Music 5000 in B-Em which you have already contributed to I discover the M4 module would crash due to B-Em not emulating the shift register in the VIA. The m4000 branch of B-Em on the stardot git repository now does emulated that, along with MIDI input via an emualted M400 from Jack on Linux.
One of these days, I'll have the time to install Linux on an old laptop and see what's changed since Red Hat 3 from 1996 :-o
Coeus wrote:Whilst there is still more to do to finish that - I'd like to have it working with Linux ALSA and on Windows - I can see that the next likely thing could be to emulate an M2000. If you have any other problems with Hybrid modules crashing B-Em it's probably worth putting it in as an issue.
Well, it's Birthday and Christmas season now so all my machines barring my work laptop are put away for the next 3-4 weeks so I won't be doing anything for a while :-(

Paul

User avatar
daveejhitchins
Posts: 4470
Joined: Wed Jun 13, 2012 5:23 pm
Location: Newton Aycliffe, County Durham
Contact:

Re: M3000 vs M5000

Post by daveejhitchins » Mon Dec 11, 2017 6:22 pm

paulv wrote:Well, it's Birthday and Christmas season now so all my machines barring my work laptop are put away for the next 3-4 weeks so I won't be doing anything for a while :-(
Oh! . . . This is when I usually get mine out to play with . . . Mmmm! Actually, they never go away :-

Dave H :-$
Parts: UM6502CE, GAL22V10D, GAL16V8D, AS6C62256A, TC514400AZ, WD1772, R6522, TMS27C512, AT28C256
Products: ARA II, ARA III, ABR, ATI, AP6, MGC, AP5 . . .
For a price list, contact me at: Retro Hardware AT dave ej hitchins DOT plus DOT com

User avatar
paulv
Posts: 3718
Joined: Tue Jan 25, 2011 6:37 pm
Location: Leicestershire
Contact:

Re: M3000 vs M5000

Post by paulv » Mon Dec 11, 2017 8:22 pm

daveejhitchins wrote:
paulv wrote:Well, it's Birthday and Christmas season now so all my machines barring my work laptop are put away for the next 3-4 weeks so I won't be doing anything for a while :-(
Oh! . . . This is when I usually get mine out to play with . . . Mmmm! Actually, they never go away :-

Dave H :-$
I know. This is my life at the moment. Extended the house and less space than ever to keep things in... The tree has now taken the space where my computers were living in the dining room... By order of her indoors!

Paul

Coeus
Posts: 1083
Joined: Mon Jul 25, 2016 11:05 am
Contact:

Re: M3000 vs M5000

Post by Coeus » Wed Oct 10, 2018 4:23 pm

crj wrote:
Sun Oct 22, 2017 10:57 pm
Back in the day, I almost completely picked AMPLE apart. To the extent of being able to detokenise/disassemble existing AMPLE words whether implemented in AMPLE or machine code. I also wrote a utility to turn a program into a module, and wrote two or three extension modules to do various tricks.
Interesting. I have been looking at a couple of AMPLE ROMs to work out why they behave differently and, in the process, discovered what looks like an intermediate code interpreter, i.e. this piece of code here:

Code: Select all

8fdd  a0 00      .L8fdd LDY     #&00    ; 0 .
8fdf  b1 16             LDA     (Z16),Y
8fe1  e6 16             INC     Z16
8fe3  d0 02             BNE     L8fe7
8fe5  e6 17             INC     Z17
8fe7  aa         .L8fe7 TAX
8fe8  bd ae 8b          LDA     D8bae,X
8feb  85 54             STA     Z54
8fed  bd ae 8c          LDA     D8cae,X
8ff0  85 55             STA     Z55
8ff2  b1 54      .L8ff2 LDA     (Z54),Y
8ff4  f0 9b             BEQ     L8f91
8ff6  6c 54 00          JMP     (Z54)
So ZP location &16 seems to a sort of program counter with bytes read from this address used to dispatch to various routines using the split table at 8BAE and 8CAE. As 8CAE is a full 256 bytes higher I assume all 256 possible codes are used even if some of them point to the same address.

While on the subject of AMPLE internals, what do make of this, viewtopic.php?f=2&t=15780#p217134, about a possible change of module format?

Coeus
Posts: 1083
Joined: Mon Jul 25, 2016 11:05 am
Contact:

Re: M3000 vs M5000

Post by Coeus » Wed Oct 10, 2018 7:21 pm

B-Em now has Music 3000 support in this branch in Github: https://github.com/stardot/b-em/tree/sf/music3000

Coeus
Posts: 1083
Joined: Mon Jul 25, 2016 11:05 am
Contact:

Re: M3000 vs M5000

Post by Coeus » Thu Oct 11, 2018 8:47 am

Coeus wrote:
Wed Oct 10, 2018 4:23 pm
Interesting. I have been looking at a couple of AMPLE ROMs to work out why they behave differently and, in the process, discovered what looks like an intermediate code interpreter...
The answer to this seems to be that the core AMPLE words are implemented in machine code and each has an entry in this table so further words can be implemented by stringing these codes (table indexes) together. Much like the BCPL implementation, much of the ROM is implemented in the AMPLE language.

Post Reply