Welcome, Guest. Please login or register.


Author Topic: BoxSoft Mouse Interface (Read 73133 times)

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14733
  • Country: hu
    • http://enterprise.iko.hu/
Re: BoxSoft Mouse Interface
« Reply #165 on: 2014.December.20. 18:07:50 »
A darker mouse can match better the Enterprise...
Wow! Very nice!

Offline gflorez

  • EP addict
  • *
  • Posts: 3610
  • Country: es
    • Támogató Támogató
Re: BoxSoft Mouse Interface
« Reply #166 on: 2014.December.20. 18:23:02 »
It is not mine although I would like to try if it is true that the Neos is exactly like a MSX mouse....

By the way, what graphic package went with the original(patkány) Enterprise mouse? Had it some utility?

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14733
  • Country: hu
    • http://enterprise.iko.hu/
Re: BoxSoft Mouse Interface
« Reply #167 on: 2014.December.20. 18:48:51 »
By the way, what graphic package went with the original(patkány) Enterprise mouse? Had it some utility?
It has a very primitive drawing program.
« Last Edit: 2014.December.20. 18:53:50 by szipucsu »

Offline gflorez

  • EP addict
  • *
  • Posts: 3610
  • Country: es
    • Támogató Támogató
Re: BoxSoft Mouse Interface
« Reply #168 on: 2014.December.20. 19:47:54 »

Offline gflorez

  • EP addict
  • *
  • Posts: 3610
  • Country: es
    • Támogató Támogató
Re: BoxSoft Mouse Interface
« Reply #169 on: 2015.February.12. 18:50:49 »
Now I got a Phillips MSX mouse to test.

Offline gflorez

  • EP addict
  • *
  • Posts: 3610
  • Country: es
    • Támogató Támogató
Re: BoxSoft Mouse Interface
« Reply #170 on: 2015.February.12. 23:31:15 »
I've found another microcomputer that used a MSX mouse. Exelvision was its name. I remember that was sold in Spain.

This is a good page abut it.
« Last Edit: 2015.February.12. 23:49:56 by gflorez »

Offline gflorez

  • EP addict
  • *
  • Posts: 3610
  • Country: es
    • Támogató Támogató
Re: BoxSoft Mouse Interface
« Reply #171 on: 2015.February.12. 23:59:38 »
And now I've found in this page that the Commodore 1350 mouse was exactly a Neos inside. The owner claims that it works as a joystick on a C64. Obviously it doesn't have a MSX pinout.
« Last Edit: 2015.February.13. 00:22:57 by gflorez »

Offline gflorez

  • EP addict
  • *
  • Posts: 3610
  • Country: es
    • Támogató Támogató
Re: BoxSoft Mouse Interface
« Reply #172 on: 2015.February.14. 11:10:57 »
I've made a pin converter to connect the MSX mouse to the Boxsoft, and the result is discouraging. The mouse interacts at the movement but the pointer moves randomly and doesn't obey the button. (Isn't as easy to do a Boxsoft interface and use a MSX mouse instead of a Neos....) May be looking into the MSX mouse reading code gives us the key of what is wrong.

The next thing I'll do is to play with the two jumpers inside. In the schematics they say "JP1 ON:MSX  OFF:OTHERS    JP2  ON:JOYSTICK  OFF:NORMAL".

Seems the Mitsumi MP01 A01 processor is a clone of the MB88201.

Searching that code I've discovered here that the CD-I series of CD-players made by Philips and others also worked with a MSX mouse.

Offline gflorez

  • EP addict
  • *
  • Posts: 3610
  • Country: es
    • Támogató Támogató
Re: BoxSoft Mouse Interface
« Reply #173 on: 2015.February.15. 18:54:44 »
Maybe my estimations are wrong but...

According to the MSX mouse reading routine, the first long delay (that triggers the lecture sequence), is of 95667 ns (429 ticks with a Z80 at 3,58Mhz). The following delays are of 35011 ns (157 ticks), 37687 ns (169 ticks) and again 35011 ns (157 ticks).

But the Neos needs 135500 ns(542 ticks with a Z80 at 4Mhz), then 119250 ns (477 ticks), 114500 ns (458 ticks) and again 114500 ns (458 ticks).

I doubt a MSX mouse can work directly (with a Boxsoft interface) on an EP128 as only the reading routine needs 239 ticks each nibble....

On the other side, the Arduino(16 Mhz) adapter can be easily modified as it doesn't care about EP or MSX times...

------------------------------

I think, and possibly I'm wrong, that the delays of the Neos where stretched to fit the lower features of the C64 and other computers...
« Last Edit: 2015.February.15. 23:52:06 by gflorez »

Offline gflorez

  • EP addict
  • *
  • Posts: 3610
  • Country: es
    • Támogató Támogató
Re: BoxSoft Mouse Interface
« Reply #174 on: 2015.February.15. 23:50:06 »
Turbo EPs can be adapted to the MSX mouses modifying the mouse.xr driver or writing a routine in SymbOS. The problem is: recollecting the direction bits from different rows surpasses the necessary delays on basic EPs.   

I think, in my humble opinion, a better solution would be to create a new MSX mouse port on one of the expansion bays, and then take advantage of that cheap Arduino adapters to be able to use PS2 mouses. It could have the benefit of freeing that surplus processor time that is needed to read the Neos. Another benefit can be to free the joystick port and bring homogeneity in an aspect(mouse on EP) that is new to almost all of us.

Offline gflorez

  • EP addict
  • *
  • Posts: 3610
  • Country: es
    • Támogató Támogató
Re: BoxSoft Mouse Interface
« Reply #175 on: 2015.February.15. 23:58:25 »
I've cut the JP1 but...I have not noticed any effect, still works just as bad....

So I've welded it again.

Offline gflorez

  • EP addict
  • *
  • Posts: 3610
  • Country: es
    • Támogató Támogató
Re: BoxSoft Mouse Interface
« Reply #176 on: 2015.February.16. 13:24:26 »
Searching some MSX schematics I've found the joystick ports are attached to the AY-3-8910, a version of the "universal" sound chip with a 8 bit input/output general purpose port.

But here isn't necessary something so complicated, only 6 bits(four directions and two buttons) in a row on a Z80 IN port and only 1 bit OUT on for Strobe signal.

Offline gflorez

  • EP addict
  • *
  • Posts: 3610
  • Country: es
    • Támogató Támogató
Re: BoxSoft Mouse Interface
« Reply #177 on: 2015.March.02. 00:13:24 »
I've found the original C64 subroutine to read the Neos mouse:

3C00   AD 00 DC   LDA cialporta
3C03   48         PHA
3C04   AD 01 DC   LDA cialportb
3C07   48         PHA
3C08   AD 02 DC   LDA cia1ddr_a
3C0B   48         PHA
3C0C   AD 03 DC   LDA cia1ddr_b
3C0F   48         PHA

3C10   A9 10      LDA #$10
3C12   8D 02 DC   STA cia1ddr_a
3C15   AD 00 DC   LDA cialporta
3C18   29 EF      AND #$EF
3C1A   8D 00 DC   STA cialporta
3C1D   A2 08      LDX #$08
3C1F   20 37 3D   JSR $3D37
3C22   AD 00 DC   LDA cialporta
3C25   0A         ASL A
3C26   0A         ASL A
3C27   0A         ASL A
3C28   0A         ASL A
3C29   85 0F      STA zp_0f
3C2B   AD 00 DC   LDA cialporta
3C2E   09 10      ORA #$10
3C30   8D 00 DC   STA cialporta
3C33   A2 05      LDX #$05
3C35   20 37 3D   JSR $3D37
3C38   AD 00 DC   LDA cialporta
3C3B   29 0F      AND #$0f
3C3D   05 0F      ORA zp_0f
3C3F   85 0F      STA zp_0f
3C41   AD 00 DC   LDA cialporta
3C44   29 EF      AND #$EF
3C46   8D 00 DC   STA cialporta
3C49   A2 05      LDX #$05
3C4B   20 37 3D   JSR $3D37
3C4E   AD 00 DC   LDA cialporta
3C51   0A         ASL A
3C52   0A         ASL A
3C53   0A         ASL A
3C54   0A         ASL A
3C55   85 0E      STA zp_0d+1
3C57   AD 00 DC   LDA cialporta
3C5A   09 10      ORA #$10
3C5C   8D 00 DC   STA cialporta
3C5F   A2 05      LDX #$05
3C61   20 37 3D   JSR $3D37
3C64   AD 00 DC   LDA cialporta
3C67   29 0F      AND #$0f
3C69   05 0E      ORA zp_0d+1
3C6B   85 0E      STA zp_0d+1
3C6D   AD 19 D4   LDA paddle_x
3C70   C9 FF      CMP #$FF
3C72   F0 05      BEQ $3C79
3C74   A9 00      LDA #$00
3C76   4C 7B 3C   JMP $3C7B

3C79   A9 01      LDA #$01

3C7B   85 63      STA zp_63
3C7D   68         PLA
3C7E   8D 03 DC   STA cia1ddr_b
3C81   68         PLA
3C82   8D 02 DC   STA cia1ddr_a
3C85   68         PLA
3C86   8D 01 DC   STA cialportb
3C89   68         PLA
3C8A   8D 00 DC   STA cialporta
3C8D   60         RTS
-------------------------------

3D37   EA         NOP
3D38   EA         NOP
3D39   EA         NOP
3D3A   CA         DEX
3D3B   D0 FA      BNE $3D37
3D3D   60         RTS


Some parts where untouched writting it from 6502 to Z80 assembler. Especially the looping delays between reading nibbles, 8,5,5,5 where the same.

Offline gflorez

  • EP addict
  • *
  • Posts: 3610
  • Country: es
    • Támogató Támogató
Re: BoxSoft Mouse Interface
« Reply #178 on: 2015.March.02. 01:07:38 »
I'm still trying to make work the MSX Arduino converter, but have little time...

Now I know where to adjust the X and Y increments(dividing by 4 or shifting right x 2) so the pointer doesn't jump, but still have problems with correct reading, something related with the so different delays, I think.

Also the two buttons remain stuck on the pressed position.  Every correctly read nibble the program inside the Arduino clears the direction bits involved (like the Neos effectively does, try to read Joy1 in Basic while Mouse.xr is working), leaving the buttons bits intact. But something in the routine leaves garbage in  the register involved so the "noise" is sent to the Enterprise part. Or can be the reading is wrong (maybe because the incorrect delays truncate the operation) and then that four bits remain with the values that where tried to send.

Offline gflorez

  • EP addict
  • *
  • Posts: 3610
  • Country: es
    • Támogató Támogató
Re: BoxSoft Mouse Interface
« Reply #179 on: 2015.March.08. 21:36:43 »
I'm near of completing the adaptation of the converter program, today I have fixed the stuck buttons but.... the USB-serial adapter of the Chinesse Arduino died in my arms...

The adapter retains the last load of the code, but refuses to appear on my PC so I can't  program it anymore.

I've ordered an original Arduino Nano.... about 35$ from USA.