The DB connectors are near the edge ones, so will be no torsions plugging and unplugging the joysticks.The forces are larger than horizontal structure (lever), but I'm optimistic.
Is better for right-handed(like me) the PS/2 port at the right to put the mouse near the internal joystick.PS/2 socket is now on the right, over the RESET button. I hope that's not a problem?
The PCB is a rear view.
Mouse movement would cause shorting a joystick contacts depending on the direction of movement ?Yes. And shorting time is depend from the moving speed.
The MCU have yet a few free ports.Then possible resolution setting? With 2 inputs 4 levels can be used.
... or another jumper. The MCU have yet a few free ports.
Resolutions? They aren't so important with the Enterprise resolutions. All Ps/2 mouses I've tested have accuracy.But for the joystick mode will be a good option.
below 40 ms pulse (Tcycle)
long gap ____ ____ ____ ____
how long ?(T1) / \ / \ / \ / \
RTS ______________/ \____/ \____/ \____/ \________________
|
________________ ____ ____ ____ ____ ____ ____ ____ ____ _________
\/ HX \/ LX \/ HY \/ LY \/ HB3\/ LB3\/ HB4\/ LB4\/
D0..D3 \____/\____/\____/\____/\____/\____/\____/\____/
T2-> | |_ _ _ _ _ _ _ _
READ / \ / \ / \ / \ / \ / \ / \ / \
_________________/ 1 \_/ 2 \_/ 3 \_/ 4 \_/ 5 \_/ 6 \_/ 7 \_/ 8 \___________
T3-> ||
As READ I marked the moment in which, it seems to me, is performed reading of D0..D3 line.We are speaking here of the MSX STROBE signal normally at 0v, but you know already that the RTS signal is normally at +12v.In the current draft of + 12V from RTS gives logical 0 on the MCU input.
You have put a inverter-reducer to cope that, haven't you?
logic | RS-232 | RS-423 | Enterprise | TTL
-------------------------------------------------
0 | +12V or +5V | +6V | +12V (+7V) | 0 V
1 | -12V or 0V | -6V | 0V (-5V) | +5 V
It seems to be good, only RTS at the end has one more cycle than necessary.
It seems to be good, only RTS at the end has one more cycle than necessary.You're right. Instead of the last cycle, there should be a longer gap at RTS.
About timings or interrupts, I don't understand. The MCU has to wait for the changes on STROBE and check that the delays are correct. Then write the output register and wait again.I do timer in interrupts to avoid having to every time count manually tacts. I do a loop and wait until interruption of the timer comes up.
It is a passive task for a powerful MCU....
About the timings: good idea also calculate up to 10MHz Z80. Will be great if can work without delays.It is rather on the side of the drivers in the Enterprise.
Or some settings to select the Mz of the Z80 to make it easier if it can't be done automatically. May be with rapid pulses on the RTS line with a program. Or better comunicating by the serial port with the MCU.....If still should be working the original Neos/MSX mouses, I have to stick to the original timings.
_______ ____ ____ ____ ____________
+12V \ / \ / \ / \ /
RTS 0V \____/ \____/ \____/ \____/
|
_________ ____ ____ ____ ____ ____ ____ ____ ____ ____
+5V \/ HX \/ LX \/ HY \/ LY \/ HB3\/ LB3\/ HB4\/ LB4\/
D0..D3 0V \____/\____/\____/\____/\____/\____/\____/\____/
T2-> | |
_______ _ _ _ _ _ _ _ ______
READ +5V \ 1 / \ 2 / \ 3 / \ 4 / \ 5 / \ 6 / \ 7 / \ 8 /
(KB0..KB4) 0V \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/
T3-> | |
Tcycle = 20msI asked, because maybe 20ms time is not accidental.Yes, the driver (MOUSE.XR) ask the mouse in every 50Hz (video) IRQ.
This is exactly the screen refresh time.
=========================================================================
* Final Report *
=========================================================================
Final Results
RTL Top Level Output File Name : entermice.ngr
Top Level Output File Name : entermice
Output Format : NGC
Optimization Goal : Speed
Keep Hierarchy : Yes
Target Technology : XC9500 CPLDs
Macro Preserve : YES
XOR Preserve : YES
wysiwyg : NO
Design Statistics
# IOs : 34
Cell Usage :
# BELS : 7
# AND2 : 2
# AND3 : 1
# AND7 : 1
# AND8 : 1
# OR2 : 2
# Tri-States : 20
# BUFT : 20
# IO Buffers : 34
# IBUF : 31
# OBUFT : 3
# Others : 2
# OR2B1 : 2
=========================================================================
You will not need any special equipment to self mount this interface.
Only abrasive and a saw to prepare the edge connectors.... It's not a simple task...!Do not overdo it :)
For me is disappointing the response of the users. May be if you put the request on a new thread...Or maybe just waiting for someone else who will check the final product ?
For example your question: "How many potential buyers for the purchase of a ready mouse interface?"
Or: "New Mouse interface for 36 Euro. Do you want one?"
I am going for a two-weeks holiday with the family.I'm also :-)
Hmmm ... it seems quite complex thingy ...It is complex you say ?
How will we know the exact use cases ? What are those sockets, what are those switches, how can we reprogram the functions in the sockets, or such things ...
The requirements of future users are complex :)
JTAG connector, dip-switches and LEDs are currently not used.
This is all for future options.
One known me right now option is a "joystick mode" for the mouse.
Not yet implemented in firmware, but it will take one (or two) section of dip-switch.
It's very strange ... for me (I have no strong experiences in hw development or design) ...An awful lot of questions, but one after the other :)
How can it be possible to "think forward" in HW design ?
Aren't those currently not used parts of the circuit wired to the other parts ? Will we wire those later, by hand ?
Or are those wired into the "system", just those are not currently handled by some (probably programmable) central parts ?
An awful lot of questions, but one after the other :)
But nothing prevents to include this issue in the next version of the interface.
you do not have to "a hack hardware" in the future :)
The current version of the interface, even though I tried, it is not so flexible to solve the problem solely in software.
In the current version of the PCB, however, would require a pretty serious modifications due to a difference in pinout Atari type joysticks and Sega controller.
In Atari type joysticks the power supply is on pin No. 7, while Sega has on this pin signal Select, therefore, currently, could act only half of controller functions.
In this case it is sufficient to remap the connections in the PLD.
It remains to support the multiplexing of signals from the controller Sega. It can be done in software.
EnterMice has two joystick ports. One may works in Atari mode, second may be configured to a Sega controller.
The real target of the present project was mouse connection.
There are planned three buttons on each joystick port so you can directly hack a joystick.
But you still need an Enterprise game that can read more than a fire button.
The real target of the present project was mouse connection. Standard joystick ports came later as a benefit of the necessity of correcting the signals of the Enterprise unusual control ports, just as the Boxsoft did. There are planned three buttons on each joystick port so you can directly hack a joystick. But you still need an Enterprise game that can read more than one fire button.You're right. We should not depart from the basic requirements.
But keep calm.
I still do not know whether what I've done is correctly working
The first tests.It is looks very nice!
The main thing - EP survived connection with EnterMice ;)
Wouldn't it be more simple to use the given "line" of the logic vector "KB", instead of creating KB0...9 signals which is more or less the same but redundant? What I mean, instead of this:Yes, you're right. And so it was in the first version.Code: VHDL
KB_J <= (KB5 or J2_Fire1) and -- Joystick 2 (KB6 or J2_Up) and (KB7 or J2_Down) and
leave all the select stuff, and write this:Code: VHDL
KB_J <= (KB(5) or J2_Fire1) and -- Joystick 2 (KB(6) or J2_Up) and (KB(7) or J2_Down) and
Also, what is odd for me: because VHDL being a (hardware) description language and not a programming language, it is not "executed" line by line but all stuffs "in parallel", thus the exact order of 'statements' are not even important (order in the VHDL source I mean, they can be even reversed, no change on the synthesized bitstream too much, I guess). I have a suspect that you may created some kind of logical hazard, because of this behaviour. You can change this if you skip the "intermediate" signals which are not so important here I guess, or having a "process block", so you can 'sense' the level change of one or more signals first, and depends on that for the "evaluation" of the process block. Or so.This is a simple combinatorial logic. Hazards are unlikely.
I too had ramdom errors with some optocouplers on my adapter. One chip worked, but exactly the same other didn't:The error is only on this one, the only combination of signals (KB9, Joy2_Right).
https://enterpriseforever.com/hardware/re-paintbox-mouse-xr/msg45493/#msg45493.
Also the errors persisted more on the Up and Down switches than on the other four(Left, Right, Lbutton and Rbutton).
Yes, you're right. And so it was in the first version.
But I decided to protect themselves in case the LS145 decoder inside the EP was damaged.
Therefore, additional signals KB0 .. KB9 defined on the basis of all the line KB.
This is a simple combinatorial logic. Hazards are unlikely.
Yes, operations are performed by hardware in parallel (with an accuracy of the propagation time of signals).
Timing Report shows propagation of signals with differences of 1 ns.
Maybe something we learn by asking each other questions ;)
VHDL is a little strange when it comes to writing of expressions order. Now, the order is completely arbitrary.
The only error in the above example, you assign a value for the KB5, which is previously defined as input.
Yes, my example was more like a generic statement but indeed using the same symbols you used created an awkward situation, I should use another names. :)Well, it's perhaps no error. KB5 is not an input (KB<5> is), only the variable, so you can assign a value.
But KB(0) is not the same as KB0.
Signal KB(0) is only one line.
EntryCode: VHDLis the equivalent to
with KB select KB0 <= '0' when "1111111110", '1' when others;Code: VHDL
KB0 <= KB(0) or not ( KB(1) and KB(2) and KB(3) and KB(4) and KB(5) and KB(6) and KB(7) and KB(8) and KB(9) );
Hmm. I see, but the KB as logic vector can be only one line as active (well, if I understand correctly, low-level active in our case) as the demultiplexer in the EP decodes in a way that it's not possible that two or more lines can be active, only one (or none). .... Or I miss something again :)Yes, you're right again, but only if decoder is undamaged.
Yes, you're right again, but only if decoder is undamaged.
And that is why these declarations, to eliminate internal LS145 decoder as the cause of the problem.
OK, but why only after OUT 181,9 ?What happen with this?
All other values ( 0..8 ) do not cause this behavior.
What happen with this?It's strange.
120 FOR I=5 TO 9
Or:
120 FOR I=9 TO 0 STEP -1
One hour only! I can'tbelieve it....One hour per one interface. Is it a little ?
It's amazing how you take advantage of your little time....
Exactly, Entermice will follow the Kempston standard and will have three buttons on every joystick connector, I said you.
But think it doesn't imply that the two new buttons can work on old games, while they always can be modified easily...
For some complex pads you will need an output pin, RTS inverted and converted from 12v to 5v, only used internally by the Entermice but surely Pear will put a probe point on some place of the board.
But you can use also Data Out on the Serial port to do it.
Anyway... what will be the latency of the EnterMice's control ports ? Or will there not be any latency ?The joystick ports latency between the move and the appearance of the corresponding output signal is 16 ns.
Hello Pear. I'm glad you choose remote mode at last... so you can make better use of previous projects.Previous projects work in software loops and delays. They bit me made it difficult to come up with that by hardware will be easier ;)
In the attachments are connection matrix and destiny of dip switch and LEDs (based on existing ideas in this thread).It is looks very great!
The joystick ports latency between the move and the appearance of the corresponding output signal is 16 ns.
MSX PS/2
X = -X
Y = Y
Z = -Z
For the joystick mode too would come in handy some test.The mouse can be disconnected during operation without shutting down the computer.
After reconnecting is ready for operation within approx. 2 seconds :)
You can also connect another mouse, and its type will be identified (with the wheel or not).
I have a better idea. I'll send to Zozo ready EnterMice for test and checks itself :)Good idea :ds_icon_cheesygrin:
I have the second tester. Do you agree Zozo ?
But even if I have a multi button joystick what is not compatible with the Kempston DB-9 layout (with the fire buttons, or at all) I can easily convert those only by wire, because of the 7 paralell input lines served by the EnterMice.A small addition to the EnterMice - Sega controller adapter.
(...)
So, I can connect (from a hardware point of perspective) complex controllers to EnterMice's DB9 connectors while the 7 line is enough to me. And 3 fire buttons will (almost :)) be enough.
A small addition to the EnterMice - Sega controller adapter.
On your interface will be added a pin with the Data Out signal (B3) from the serial port RS-423 of Enterprise.
Do you want to make the EP able to access all of the directions and buttons of the (even the 6! buttons type of) sega controllers with only a few discrete electronic parts ?Yes, exactly :)
Does pulse-3 mean that I have to switch on/off the B3 3 times ?Unfortunatelly I don't have any Sega controller to test it.
Can I switch on/off as fast as I want ?
For what time will be the "Select=pulse 3" column on the outputs of the megadrive controller after the pulse-3 ?
Will not it interfere with the other functionalities of the EnterMice ? Like mouse itself, and such ?No, it's independent solution.
No, it's independent solution.
Now I ordered two Sega controllers on eBay.
When arrived will be test it :)
No way! Immediately at the first time ?
Without any amendment ? Something is wrong ;)
By the sounds of it nothing is currently wrong! Excellent work!Relax :)
With disabled MOUSE.XR EnterMice is silent even on KB J lines. You can try :)This is why the green led not light at the power up? Mouse only activated when the first strobe sent out?
This is why the green led not light at the power up? Mouse only activated when the first strobe sent out?This is just a bug :)
Ok, but first I have to learn how to compile it.make32.bat :)
The Microsoft ones aren't even recognised by Entermice.I corrected initialization of the Microsoft IntelliMouse.
Technically yes. Why not ? But PCB will be bigger and need to think over construction.Oh...Sorry:(
You can theoretically plug up to six one-button joysticks to the Enterprise directly, only adapting the ports. You don´t need Entermice to do that.Is there some schematics for this and info on how to handle its input?
The Edge connectors are of 2,5mm between contacts if I remember well.No! It is 2.54mm (0.1 inch).
Yes, there are schematics for the two "normal" controllers. This is for each port (http://enterprise.iko.hu/pinouts.htm) with J common:
(http://enterprise.iko.hu/cables/Joy.png)
But you have other two commons repeated on each port, K and L. I don't know if somebody has tried six joysticks before...
As I said before, to avoid ghost pulses with more than two joysticks, every joystick port on every direction and fire lead must be provided with a diode. Current goes from the commons(J,K and L) to the directions and fire leads, so the diodes must have the strip(negative) towards A4, A5, A6, B5 and B6.
The Edge connectors are of 2,5mm between contacts if I remember well. You must cut and adapt yourself, without turning down them, as there is also 0v and +5v on some pins.
There is an easy way of reading that extra buttons, like the "normal joysticks". An Out with the row(0 to 9) to Z80 port B5h, and an In,a from port B6h. Bits = 0 to 2 give you information of the same button but from three joysticks at the same time...
The Microsoft ones aren't even recognised by Entermice.Shipment of the unlucky mouse delayed us a little bit :)
(https://enterpriseforever.com/index.php?action=dlattach;topic=1211.0;attach=13895;image)
Now I ordered two Sega controllers on eBay.Material for the study successfully reached its destination.
When arrived will be test it :)
The period of these signals for MK3 was about 27.6 microseconds. That
is the high or low time for the pulses was 13.8 microseconds. In my
interfacing experiments I successfully used a signal with a 200
microsecond period, 100 microsecond high or low time. I suspect that
there is some maximum period length associated with a time-out in the
custom chip, but I have not investigated what that is.
Serial DataOut line
1 0 1 0 1 0 1 0
12V --+ +-+ +-+ +-+ +-----------------------------------
|1|1|2|2|3|3|4|4
0V |_| |_| |_| |_|
Pad SELECT line
H L P
5V ---+ +-+ +-+ +-+ +-----------------------------------
| | | | | | | |
0V |_| |_| |_| |_|
X button pressed:
5V ---+ +-+ +-+ +-------------------------------------
| | | | | |
0V |_| |_| |___|
X button NOT pressed:
5V ---+ +-+ +-+ +---------------------------------------
| | | | | |
0V |_| |_| |_|
This is your set.
Adapter for you as free. In return for a good idea :)
I see some anxiety in your comment ?
At the moment it is ready 20 pieces interfaces.
It will definitely be another 30 new ones.
SEGA adapter is a simple and effective interface extension.
There isn't, probably, an easier way.
I do not want to write yet about the details, but it is in these plans also support USB mouse.
As far as I know, these are "big" numbers in the enterprise universe ... Probably we could not count enterprises with these numbers ... Or, at least, we could not count the double of it ...Not everyone needs to be willing to have EnterMice.
Maybe I lost the point now or in the previous posts ... Will all the EnterMices be extendable with the sega adapter,Each interface EnterMice can use the adapter SEGA.
or only my EnterMice is hacked to be extendable with the sega adapter ?
Wow ... I tried to make some research with the USB anno, and there was one or two libraries I could use for that with an MCU board,I considered support USB using a normal MCU that is already in EnterMice.
but I did not find an appropriate premade MCU board, what is fast, little, has many GPIO and USB on it, and cheap, at once ... So I gave up that ...
But then, I remark you a thing ... this definetly has a few button on it ... :) :What will you do with so many buttons ? :shock:
What will you do with so many buttons ? :shock:
We are mixing things. I think Pear is talking about a future USB mice interface, not strictly for controllers.Why not ? Mouse or controller, that's all HID class devices (Human Interface Devices). The keyboard also.
Probably nothing ... but I'm crazy in some way for the idea of an "ideal" EP configuration ... without the hardware imperfections of the original one, in its time ...Do not forget that this is still an 8-bit computer.
And (of course) I'm keep wondering and dreaming of some entertaining software using that ideal configuration ... :)
Maybe one time, there will be someone making a few of it ...
We are mixing things. I think Pear is talking about a future USB mice interface, not strictly for controllers.
There are many "collectors" who keep the EP in boxes in the attic, just to have it.
We must have hope that the base of Entermice owners will grow and grow, but first let's wait to the release....
I think, Pear has opened us a variety of posibilities. Nobody will need to know how works inside the interface to appreciate its benefits.
He is compromised with Ep development, mainly just because he enjoys doing it. But what he doesn't need is pesimism, better encouragements.
If you connect a SEGA pad directly to the joystick port, it can actually end up being a disaster.What could happen exactly?
Each interface EnterMice can use the adapter SEGA.
This is your set.
Even if it does not directly support autofire, I am still interested in the Entermice.
For 2 good ol' EP128 machines I will need 2 EnterMice adapters and 4 SEGA adapters ...
but probably EnterMice can handle only one sega controller, at once ...
You can connect two adapters (for both joystick ports).
They will have a common signal SELECT, so you can read both pads simultaneously.
IMO one common signal SELECT is enough for both pads.
Why waste your printer port, when EnterMice is already connected to the serial port and has a free pin to use ?
It does not really matter whether there will be + 5V or + 12V.
Additional wire in the adapter responds only on connect to ground (0V).
The adapter is designed so that even if you do not connect a wire which control the SELECT line (absolutely to nothing), you will still be able to use the directions, and B and C buttons.Additional wire in the adapter responds only on connect to ground (0V).I do not understand what this means ...
If you connect the control line to ground (0V), you'll get buttons A, Start and again Up, Down.
Well, if there are games on the EP, which use the serial port ?
Exactly, you will have soon the controllers ready, but have to wait a little more for developers begin to convert programs.
Games that pull accidentally the serial pins? You have a lot of imagination....
Sorry, I am a little sharp sometimes.
I have to say: Entermice does excepcionally very well what it has been designed for and many more
Maybe some network game using original serial port ?No any network games.
This is the reason why the original Boxsoft interface using line from the serial connector.
Nice!EnterNice :D
In this case, it was clearly used chips (programmed and locked before reading).
Certainly wasn't new.
A good supplier can send your order by regular mail and the shipment arrives in two weeks.
So far, despite the heavy tests of EnterMice, none CPLD wasn't damaged during operation.
It is known that can always happen accident.
Single piece of XC9572 are readily available.
It is more difficult to buy them in large quantities at a good price.
I was looking for CPLD chips from other manufacturers, but Xilinx is the cheapest.
Additionally, it has a free design software.
Recently, I have also noticed a negative trend of selling untested hardware by Chinese sellers on ebay.After many experience with Chinese IC sellers I think: exist a big chinese factories which are buy tons of electronic waste. Remove the ICs from old PCBs and refurbishing these.
In this case, it was clearly used chips (programmed and locked before reading).Don't possible make a full erase on them? In my programmer have a separate Erase option.
Certainly wasn't new.
Don't possible make a full erase on them? In my programmer have a separate Erase option.
If you want a relaible components then buy from TME, Mouser or other similar reliable companies. But these not too cheap...Unfortunately, not everything can get in TME. Especially if you do not have the latest components. So is the lottery ...
Buying from China are lottery game...
Don't possible make a full erase on them? In my programmer have a separate Erase option.Yes, it is Erase option. Except that from 4 macro cells, for example, you can erase only two, and the other is damaged.
Is someone missed ? There are stillOne special version for me. (For Model 911 prototype.)1920 pieces.
One special version for me. (For Model 911 prototype.)By the way, whether it will be assembled, or in a kit for self-assembly?
By the way, whether it will be assembled, or in a kit for self-assembly?Will be better if you assemble it. You have all required components and lot of experience :-)
endi???
I dont want any hardware. I use only emulator :)
It is a good +5v power suply... that comes directly from the 7805 regulators, but take care, it can draw too much current. First the heat-sink will serve to fry an egg but second, it can hang the Enterprise...
Вот это сюрприз (https://sites.google.com/site/enterprise128k/home/hardware/peripheral_hardware/entermice) :)Is this page owned by Slashnet? :) Unfortunately I can read the Russian, but I do not understand. :oops:
Simply I try to fill with fresh content my small site.Looks good :)
(Просто пытаюсь наполнить свежей информацией свой маленький сайт на русском)
:oops:
DS1/2 on Boxsoft Mode and in Paintbox use F4 - EnterMice modeIt is because Gflorez wrote two F2 :ds_icon_cheesygrin:
Strange - but it's working :-)
As far as I remember, somebody wrote a joystick tester program, a really full featured and "graphical" one ...
Maybe that should be extended to test the full functionality of the sega thing, too ...
I described the procedure of reading all the controller contacts.
For the author, if don't have EnterMice, I can do promotion :)
You have EnterMice and the Sega adapters, why you not do a simple test program yourself?
On whose address to send? To you ?Yes, to me.
Something like this. The attached preliminary sketch of the PCB.
Two slots for joysticks, socket PS/2 mouse and optional serial port Commodore (DIN6).
Approximate cost about 4 USD per one PCB (for 10 pieces). It may change, but not much.
I'm doing my PCBs in black - are about 30% more expensive than the cheapest green.
This is mine.Tutus, if you are able to handle the assembly yourself, I can send you spacers.
Unfortunately, it is not good for me :(
It does not connect if the cover is on it.
Even in the basic state it is quite interesting (see the picture).
The connection is oblique.
Tutus, if you are able to handle the assembly yourself, I can send you spacers.OK :)
Since the second version, I install them as standard.
Hello
If I want to put mouse control in an old game (eg Ledmmings), what should I watch for?
Suppose you have the original jpy reader routine, see where it is going to jump, to the left, to where, to the right, etc.
Now, I get a relative movement at the mouse. So what do you need to pay attention to working well? Here I am thinking that if I make things a little simpler, it will work at the same time on joy mode and EnterMice mode (1.2 DIP OFF)
Remember, the mouse can add movement from -+1 to -+128 coordinate unitsWhat kind of unit is it? I assume they are needed to convert to pixel coordinates based on experimental way?
High Low
+23 = 00010111 ----> 00000000 00010111 still +23
-10 = 11110110 ----> 11111111 11110110 still -10
It happened that one of the interfaces lost its memory :oops:This is at the user who are report problem in EP Facebook group?
I attach JEDEC files to the CPLD chips in all versions that appear in Entermice.Thanks! I can reprogram it, if anyone need it in Hungary.
The Xillinx chip was able to be programmed, but the interface still did not work properly.After a few days of use, the error repeated itself. Exactly the same.
CPLD is completely damaged. After replacing it, everything returned to normal.
I don't know why CPLD could have been damaged.
Power supply is correct, all other elements are functional.
Curiosity.
I can confirm. The Genius DX-110 mouse does not work with EnterMice. For now ;)You find a solution?
The Xillinx chip was able to be programmed, but the interface still did not work properly.One puzzle solved.
CPLD is completely damaged. After replacing it, everything returned to normal.
I don't know why CPLD could have been damaged.
Power supply is correct, all other elements are functional.
Curiosity.
I shared the project https://github.com/maciejgruszecki/EnterMiceThanks!!!