vendredi 8 novembre 2024

EMU1 : some progress...

In the previous post on this subject, I had stopped at the fact that I had discovered that the wiring of the EPROM to the processor did not respect the conventions. I therefore confirm this fact, and am even able to say that all EMU1 motherboards have this characteristic which can be defined as a relatively simple coding of the EPROM whose purpose is, I think, to make the disassembly of the program difficult.

To come to this conclusion, I read the original EPROM from my EMU1 motherboard. To do this, I placed the EPROM on a circuit socket from which I cut off the +12V and -5V power supply pins. Because the MiniPro is not able to provide these power supplies on these pins. So I was able to connect these two EPROM pins directly to an external laboratory power supply.

MiniPro


Socket adaptor

In fact, in order to be able to test the operation of this motherboard, I had originally removed the +12V and -5V power supply from this EPROM. The goal was to be able to eventually test the operation of the board with another version of the boot program. This also allowed me to check the behavior with the logic analyzer and draw my conclusions as to how this EPROM is connected to the processor.

Note that to read the EPROM on the MiniPro, I selected a 2716 type EPROM, the smallest available on the software, knowing that I would therefore have twice the same KB read since the original EPROM is a 2708 and the additional address bit of a 2716 is not connected to the 2708.

So, now that I am sure that the motherboard of this EMU1 works, since it is able to execute my 'NOP' loop, I need to continue on the right basis, that is to say, program a 2732 that I have with the original EPROM program and insert this 2732 in place of the original 2708.

On the other hand, EMU strongly advises to always use the original EPROM to perform tests. So...


I don't know why this exists, but I strongly suspect it has to do with some hardware feature. Since the boot program just reads the first track of the floppy anyway and then runs this firmware to load the entire floppy, I suspect it has to do with just some basic motherboard functions. I don't know more than that at this point. Potentially setting a timer?

In fact, I compared the contents of the EPROM of my EMU1 board with other contents of different versions found on the Internet, I noted different codes at the addresses:
0x208
0x228
0x237
At least, the code in 0x237 is different on all the contents. The 4-voices version also has a difference in 0x208, and the Wildcard version, has the 3 differences.

Be careful, these codes at these addresses do not mean anything. They correspond to a specific code at a specific location, but after reorganization of the code according to the wiring of the EPROM to the processor.

The versions tested were the following:

600X.PROM(c)82_820816_#008D.BIN (The one on my board)
820816-00B8.bin
820816-0081.bin
820816-0165.bin
820816-0181.bin
E14Voice2708.BIN
Emu_wildcard.bin

At this point, and after inserting an EPROM containing the original boot program of my EMU board, nothing happens at the floppy drive. On the EMU1 board, the voice DMA controllers are not inserted. Only the principal DMA controller is inserted on its socket. In this configuration, I know that the boot program starts and runs. Despite the fact that this situation is not optimal for the minimal operation of the motherboard, something should still happen at the floppy drive, namely at least the rotation of the disk. However, nothing happens.

And this is when I change the first component that I think is defective on my board, namely the SIO. In fact, it is this SIO that generates the floppy drive selection signal, which has the effect of starting the floppy disk rotation motor. 




After this intervention, indeed, the rotation motor starts correctly. This is a good start, but nothing else happens. However, before anything else, in any procedure for reading a floppy disk, the controller must ensure that the reading head has returned to its initial position. Three signals are then important, the movement direction signal, the control signal for the stepper motor for positioning the reading head, and the track 0 position return signal. And these signals are managed not by the board's SIO, but by the PIO.




So I also replace this PIO.

After replacing these two components, indeed, by powering the motherboard back on, randomly, the floppy drive not only starts, but its head moves slightly to test the positioning of track 0. So I am also on the right track!

Of course, at this point I can't avoid to ask myself a few questions. How come the two interface components with the floppy drive are defective? On my workbench, the system is in the same configuration as in the EMU1 box. Is there a power supply problem in the EMU1? Because on my workbench, everything is powered by a laboratory power supply. Before reassembling this EMU1, I had obviously checked the proper functioning of the power supply that I had recapped. Strange all that!!!

Well, now I have a system that seems to boot properly from time to time. That is, it boots the floppy drive and sets the read head to track 0. But nothing more. The randomness doesn't surprise me either. The current configuration of the DMA components is not good at all. Besides, I'm now dealing with these DMAs.



It may not be very obvious at first glance, but the DMA system takes care of all data transfers with the floppy disk drive, in addition to managing the sound by sending the samples to the digital/analog conversion boards.

And, a quick reading of the schematic indicates that it is the first channel of the first DMA controller for reading samples that is used. Quite simply by assigning its signals, not to the conversion board, but to the floppy drive when accessing this drive. In order to make the board undisturbed by the absence of the conversion boards, I therefore position certain signals to ground, as indicated on the schematic provided by EMU. In fact, I only keep the first DMA controller and I remove any random character of a DMA trigger by the conversion boards.




In fact, I only leave the DMA controller #1 (I'm not talking about the head one which must be in place anyway). This is materialized by grounding some signals on the EMU1 motherboard.




Well, it's not meant to stay like this in the long term ;-)

And now I can power up this great EMU1 board again. Good 'surprise', the boot sequence now runs correctly and in the same way after each RESET of the board. The disk rotation motor starts, the reading head is positioned at track zero, even when I previously moved it by hand.

But for now, the situation seems frozen in this state. According to the EMU documentation, track 0 should be read then saved in RAM then executed to completely load the floppy disk. I performed my tests with a floppy disk containing the system but nothing works. I now need to check with the oscilloscope that the data from the floppy disk arrives correctly at the SIO of the EMU1 motherboard.

So I also have to deal with the interrupt management chain because it may 'block' at that level. I imagine that the SIO generates some of them, in any case it is wired for that and even has the maximum priority. A priori the interrupt chain stops at the PIO, the DMA controllers do not manage interrupts in this system.

This is the next step. It's laborious, but it's progressing!

jeudi 31 octobre 2024

EMU, oh no!!! Why???

After investigations of all kinds, still impossible to find an entry point on the non-functioning of this EMU 1, but...

Until now, I have taken the subject in a 'scientific' way. That is to say, by systematically controlling the operation of the processor. Despite the number of hours which is now starting to rise, not only do I not understand what is happening, but the result of what I observed really perplexes me!

Alas, must I say that I have now to move on to another study methodology: place to the artistic side of my brain! 

And, as a result, I am forced to let my mind wander at its own pace, without really commanding it. I have no idea of ​​the direction my ellucubrations will take. On the other hand, I think it will take some time...

So, and I can't really explain the entire thought pattern that I followed to arrive at the current result, but the fact remains that I finally arrived at the first result.

What is it about? I can get 'nothing' to run on the Z80 processor. Isn't it beautiful?

After many negative results, I tried to execute a NOP (No OPeration) loop on the entire ROM area of ​​the system, with looping at address 0x0000.

Well this simple 'trick' didn't work. On the other hand, I was able to note with the logic analyzer the repetition of a value at regular intervals. Not the right value, and not the right tempo!!!

SO? Well I carried out some connection tests on the processor board, and I noticed that it does not correspond at all to the diagram that I was able to obtain for this board. So obviously, I'm not sure that the schematic I have corresponds to version 4 of my motherboard. But, even so, some connections are, how can I put it, baroque!

And at this stage, to ask the developers of this EMU 1 (if any is still alive): but why? To avoid copying the machine too simply? But no... It's of no use, except to stall 'some' time for anyone trying to troubleshoot an EMU 1 :-(

So, perhaps, in the context of the times (1982), it was probably not easy to find a personal computer capable of assembling Z80 code, encoding the result so that it could be properly executed by the Z80. But hey, that’s debatable. On the other hand, this makes it completely impossible to disassemble the PROM. But on the one hand, this doesn't fool anyone with Z80 experience, and then you 'just' have to find an EMU 1 and study the motherboard to find the 'trick'. That's what I did. And frankly, finding only one OUT statement in all the code is just not credible, and that set me off ;-)

In short, once I understood the 'false' problem, I coded the PROM correctly and inserted it into its socket on the EMU 1 processor board. And you know what? With the logic analyzer, I found the code 0xC3 (JUMP) at the regular interval of 1024 bytes. Which proves to me that, for the first time, this board is able to execute an empty loop correctly.


No but, frankly, EMU! :-(

Now I can turn to the four DMA circuits that equip this motherboard. In fact there are five, but only the four 'slaves' cause problems on the data bus when they are on their socket. I will focus on their operation because that is what my brain is now telling me to go and check. So....


jeudi 17 octobre 2024

During this time...

I'm currently waiting for some printed circuit boards, and since I'm on the Drumulator topic, I decided to try to troubleshoot another machine from EMU: the Emulator 1.

This machine was offered to me by someone who wanted to part with it. It had obviously suffered some damage to the frame, following a fall I imagine, because it is really very heavy.

I turned it on once. It started, it smoked, then nothing since then. In fact it was tantalum capacitors that smoked. Nothing serious a priori.

In the past, I took it all apart and changed the front panel capacitors. I also redid the power supply. Then, I put everything back together, scrupulously, and then nothing. This EMU never wanted to restart. The keyboard has been sitting in a corner of my workshop for years. So, having studied the Z80 processor quite a bit during my work on FPGA, I thought it might be interesting to start troubleshooting it. After all, I have managed to troubleshoot several Drumulatore and SP12!


The interior of this EMU1 is in very good condition. Given the 'historical' nature of this machine, I find it increasingly difficult to look at it half dying in its corner!

So I removed the motherboard from the machine once again.


Will I finally be able to boot this motherboard from its floppy drive? The question remains!


It starts badly, the disk rotation motor gives a very slight knock and then stops. I have already spent some time checking the functioning of the motherboard by testing the behavior of the components. And, while I have already done this work years ago, I can't find anything dysfunctional. I don't have a diagnostic ROM for this machine, so for now, it's just a matter of testing the components. I haven't noticed anything glaring. Now I have to try to discover a functional malfunction. This is not going to be easy and may take a lot of time. But hey, I figure that by working on the subject a little regularly, I should get there! This machine only has standard components so....

vendredi 11 octobre 2024

MIDI SWITCH.

I have been thinking about developing 'simple' hardware for MIDI network management for years. In fact, I have been thinking about this for decades now!

I remember starting to develop a prototype based on a 68000 processor and two large communication circuits equipped with four serial ports each. That was in 1994, exactly thirty years ago!

I never got anywhere because, I don't know, subconsciously I found that there was something wrong.

In fact, I always started from the same paradigm, namely, a centralized element for the management of all MIDI communications.

And precisely, in the last few days, while I am currently rethinking all the wiring of my hardware in MIDI, a kind of evidence presented itself to me. Not an evidence on what to do, but only an evidence on what not to do. Exactly what I have always done, always starting from the same concept.

As you can imagine, the result I arrived at does not correspond at all to what I was doing until now.

So I present to you just a small piece of the printed circuit of what will be my MIDI network flexibility device :



Simple, right?

Of course, the hardware aspect is not everything. It will also be necessary to develop the right software, because the information management will be a little more complicated than with the standard MIDI network. But nothing too esoteric nevertheless.

I am hopeful that with this solution, I will finally be able to use all my MIDI machines without having to rack my brains every time I want to do something, nor having to unplug and replug inaccessible cables, equipped with this 'crappy' DIN plug!

lundi 7 octobre 2024

Drumulator and Efinix FPGA.

The fact is that I have made good progress on the transcription of the Drumulator into an FPGA.

But what craftsmanship job is the management of vectorized interruptions on the Z80! It 'smells' like the thing put in place last, with the resources still available for the circuit, and added on top of the logic of the processor itself! 

Well, that's the effect it has on me. So, it's a bit complicated to create a circuit that responds to this mechanism, especially the CTC circuit, very important in the Drumulator. I still got there.

But another problem arises. I wanted to recover the values ​​of the display digits in registers in order to be able to exploit them as I wanted, but using the small resources of the FPGA development board, I absolutely cannot get an idea of ​​how the multiplexing of the display is set up.

Obviously, everyone knows the principle of multiplexing, and basically, it works in the standard way on the Drumulator, but I retrieve multiple information in the registers. So, and as I have already set up the display of the Dumulator on an FPGA board equipped with 7-segment displays, I decided to create a small display/keyboard card functioning in the same way as the hardware implemented on the Drumulator. And in any case this card will allow me to work more easily with the Efinix FPGA board because it only has 8 user LEDs in total: it's really too few and it's a real criticism that the 'we can do with this board.

Here is what I sent to be done:


Although the Drumulator display only has 4 digits, I implemented 8, which will allow me to also display other debugging information if necessary.

So I'm putting this topic in standby until I receive the printed circuit  board and can mount and test this display/keyboard card.


vendredi 27 septembre 2024

Drumulator and Efinix FPGA

I haven't posted in a month now. It was back to work, and then I worked on the startup of the Drumulator system in an Efinix FPGA.

I made good progress and managed to start the Drumulator system. However, I'm getting some pretty strange results on the screen that I get when debugging the VHDL source.

So, as I find that I am no longer making progress on the subject, I am going to develop a small display interface that I will plug into the fpga card in order to see what I obtain.

And then, there are subjects that you can carry around for years without ever succeeding in really finalizing the concept. A few months ago, a few years now, I developed a sort of MIDI switch. The idea is good, but in fact, when I found myself in front of my stack of synths these last few days, I realized that, in reality, no, the notion of switch is not the right one at all. And I don't know why, but a kind of 'revelation' came to me. And it's completely crazy, because it goes against what I've been trying to do for years. I'm going to tackle this topic.

Regarding the MSX cartridge that I developed over several months, I can say that the cartridge works very well on my Omega. Unfortunately, it does not work well on a Panasonic without me being able to determine the reason. So as I don't have MSX machines of different models and as it's difficult for me to get help on this one, I decided to stop my 'waste of time' on this subject.

That's all for now.

mardi 27 août 2024

TC Fireworx

There are times like this when machines come to me almost in groups for repairs. I just got a TC Fireworx and a DP4+ Ensoniq. I'm starting with the TC:


This is a classic digital multi-effects from the late 1990s, early 2000s.

The machine does not start anymore. This effect rack does not seem to be a killer in the sound grain, but hey, I imagine that it must still provide good basic effects. After opening it, we see that the machine is well made. Well thought out too. There are however quite a few small connection retakes on the top of the board. In my opinion they are original. There must have been some modifications after the board was produced.


First thing to do, power up the machine. This should go well since there is no smoke or hot spot on the motherboard, and the power supply fuse is not blown.



On the other hand, in my opinion, the principle of connecting the power supply to the motherboard is a bit of a stain on the board. Why not have put real connectors? It is therefore mandatory to remove the motherboard from the machine to be able to unsolder the wires connecting to the power supply: not great!

It is also not practical to connect another power supply to it, for this it is necessary to solder the wires of the new power supply. Then unsolder them when the tests are finished: hum....

The voltage tests carried out at this time give me +26V and -26V for the analog part, knowing that I took the analog ground as a reference. This does not seem good to me at all, but I will see later. On the other hand, the +5V gives me 0V. Compared to the behavior of the machine, this seems consistent to me! At first glance, the power supply seems to pose real problems.

Fortunately, the machine is small and removing all the insides is not complicated and does not take too long.


So the next operation was to unsolder the power cables and power up this power supply without load.

I spent some time testing the operation of all the diodes and transistors before actually powering up this power supply. Having noticed nothing suspicious, I started it up. The output voltages are still +26V and -26V, but I now get the +5V dedicated to the digital part. This is better. This most certainly indicates a problem with the capacitors on the low voltage output. This power supply is so compact that you can't see at all what's happening between the components. So I decided to unsolder one of the two large capacitors, I started with the easiest to remove.

I was not disappointed with the result. Look at this 'battlefield'!


And of course, the first 'death':


But look at this!!! I have never seen a capacitor in this condition. Even low-end capacitors never gave me such a result: incredible! And yet, it is a branded capacitor!

First step. Before continuing on this power supply, I will connect the motherboard of the device to a laboratory power supply to check if it starts correctly and if the analog part works. Because with the overvoltage that I see at the output of the power supply, I still have some doubts. It would be a shame to waste my time on the power supply if the motherboard is defective because it will most certainly be irreparable.

The next step was to install terminal blocks on the motherboard of this machine, so that it was not necessary to desolder and resolder the power wires a 'number of times'.

Then turn on the machine.



A tentative conclusion: the machine starts and seems to work correctly.

However, a doubt remains. Indeed, during my first tests, I measured an analog voltage almost twice what it should be when the board was connected to the original power supply. So I don't know how much this could have affected the operation of the operational amplifiers if this voltage was actually applied when starting the machine.

Fortunately, all the digital/analog and analog/digital conversion circuits are supplied with +5V, the regulator providing this voltage on the motherboard obviously having no problem providing this +5V, I can assume that these conversion circuits are still operational.

Starting the machine with a laboratory power supply :


I just have to test the audio system before switching back to the original power supply.

The 'problem' is that all the connections on this machine are XLR. And, although I have XLR/JACK cables, I don't have any XLR/XLR ones. So a small purchase and my very first XLR machine connection : 




After connecting a synthesizer directly to this Fireworx and connecting this Fireworx to my PC, the observation was very simple: it works very well.

At least I'm sure that the malfunction of the machine's switching power supply did not cause a problem on the electronic board.

After cleaning the power supply to remove all the residue due to the leakage of one of the capacitors, I started looking for replacement capacitors. In fact, I decided to replace absolutely all the chemicals in the secondary. The large filter capacitor in the primary still has a good capacity, and shows no signs of leakage. I left it in place.

It was not as easy as expected to find the right capacitors. The ones originally used are very small. So I had to 'trade' the small diameter for a larger height of the new capacitors. I finally found models that were quite suitable.

Which allowed me to finally carry out the first tests of the machine with its original power supply as shown in the previous photo.

Note that testing this power supply is not very practical. Indeed, there is a whole standby system that does not allow you to check the 'relevance' of the 5V. I was still able to see that the 22V voltage of the power supply originally, had dropped to a voltage of 16.5V, i.e. +16.5V and -16.5V. It was already better. The problem is that during my first tests, I had modified the 5V adjustment trimmer, and now that the power supply was in principle repaired, I had no idea what this voltage could be.

Fortunately, it is enough to test the voltage provided by the standby mode 'output' system (brown wire), it must be 5V, which I adjusted using the trimmer. Once this adjustment was completed, all that was left to do was to connect this power supply to the motherboard of the machine, and check the overall operation. The results were therefore conclusive, with this time +14.8V and -14.8V in charge for the analog power supply and a nice 5V for the digital part.

And now? Back in the box!



I was able to do some audio tests with this machine. The opinions that I was able to glean on the Internet are rather mixed about it. They indicate that the sound quality and the treatments are not exceptional. I find that it works very well. Afterwards, some effects can be questionable, especially those dedicated to the treatment of guitars, you have to have the use for them, but otherwise....

For a 25-year-old machine with exemplary construction (except for the power supply which is clearly not top of the range), and at a purchase price of around $800 in 1998, it is still a good machine today.