Welcome, Guest. Please login or register.


Author Topic: Universal Mouse Driver (Read 21523 times)

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13081
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 40.0 Firefox 40.0
    • View Profile
    • http://enterprise.iko.hu/
Re: Universal Mouse Driver
« Reply #15 on: 2015.September.17. 08:14:28 »
I've read on old forums that the typical Microsoft or compatible serial mice can read also Mouse Systems protocol. Just in the same way as a Neos mouse can be transformed and act as a sort of joystick: pressing the left button while turning on the computer. Or can be the right button...
Yes, but only the very old ones (about more than 15 years old). I tested more than 10 old mouses until find ony which are can do this.
Older ones (from early 90's) have a switch at bottom (or hide in the ball hole) for switch the protocol.

Online gflorez

  • EP addict
  • *
  • Posts: 2380
  • Country: es
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 40.0 Firefox 40.0
    • View Profile
Re: Universal Mouse Driver
« Reply #16 on: 2015.September.17. 08:36:15 »
Why Hsoft chose Mouse Systems protocol for their serial cards? I think I can answer this question... just the same election happened in the past between Beta and VHS, Firewire and USB, or SCSI and IDE.

Many times superior technology succumb to cheaper implementations of the similar approach.
« Last Edit: 2015.September.17. 08:42:39 by gflorez »

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13081
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 40.0 Firefox 40.0
    • View Profile
    • http://enterprise.iko.hu/
Re: Universal Mouse Driver
« Reply #17 on: 2015.September.17. 08:50:36 »
Why Hsoft chose Mouse Systems protocol for their serial cards?
As I remember it is least same or more popular at these years (early 90's), and it is support 3 buttons, but the Microsoft only 2 buttons.
The built in Hsoft driver in the EPDOS 2.1 support both, you can select with system variable.

Online gflorez

  • EP addict
  • *
  • Posts: 2380
  • Country: es
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 40.0 Firefox 40.0
    • View Profile
Re: Universal Mouse Driver
« Reply #18 on: 2015.September.17. 09:04:43 »
Do you have the disassembly of EPDOS 2.1? I'm interested on it. If it has been made in Rom it has non auto-modifiable code.

The Universal driver will support that three or two buttons the same as Entermice does, bits 7 and 4 of the new SW_Z_STATUS System var.
« Last Edit: 2015.September.17. 09:15:56 by gflorez »

Online gflorez

  • EP addict
  • *
  • Posts: 2380
  • Country: es
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 40.0 Firefox 40.0
    • View Profile
Re: Universal Mouse Driver
« Reply #19 on: 2015.September.17. 23:36:07 »
Sorry. Now I understand that EPDOS 2.1 version is not released.

I just only wanted to help. A real programmer should continue the mouse driver.

A good idea could be to insert it on a general purpose Rom, as it actually only weights 4K.

But then it needs to allocate some Ram, both parts, Boxsoft and Hsoft use some areas of the code to store their variables.

On the other side the Hsoft serial side has to be rewritten. It is not necessary to hijack the EXOS interrupt. I think the driver is able to read the five or three bytes in a row like the Entermice-Boxsoft side does with two or five bytes. I don't appreciate slowdown when I connect a PS/2 mouse, and I think the MSX protocol is slower than the 1200bps of the Serial side.

Also is necessary to rewrite the auto-modified code. It seems to be easy.
« Last Edit: 2015.September.18. 09:52:53 by gflorez »

Online gflorez

  • EP addict
  • *
  • Posts: 2380
  • Country: es
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 41.0 Firefox 41.0
    • View Profile
Re: Universal Mouse Driver
« Reply #20 on: 2015.October.22. 23:18:03 »
The Boxsoft-Entermice mouse system only works on graphic screens, this is a fact.




But.... hypothetically speaking... on a text screen an easy implementation of the mouse can be to associate the pointer to the cursor. The EXOS Editor seems being already designed for that purpose, with its scrolling capacities and the free movement of the cursor.

Even it is unnecessary to draw the pointer sprite! It is the most complicate task of the driver.

And, if the mouse driver integration on EXOS is achieved we could have Basic, WP, EXDOS and ISDOS mouse controled....


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

Let me dream on feasible hallucinations.... I don't hurt anybody with it...!


Online gflorez

  • EP addict
  • *
  • Posts: 2380
  • Country: es
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 41.0 Firefox 41.0
    • View Profile
Re: Universal Mouse Driver
« Reply #21 on: 2015.October.22. 23:41:52 »
I keep dreaming:

Better the cursor independent of the pointer(a flashing underline for example), you move the mouse and the pointer moves towards a determined character boundary, then you make a click and the cursor is moved to that place...

Online gflorez

  • EP addict
  • *
  • Posts: 2380
  • Country: es
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 41.0 Firefox 41.0
    • View Profile
Re: Universal Mouse Driver
« Reply #22 on: 2015.October.27. 15:15:51 »
I am researching information about text modes(0 and 2).

The principal problem I've found is that the text lines can be messed on the LPT respect of what is seen on the screen.

How can I know the real order of the text lines?

Offline geco

  • EP addict
  • *
  • Posts: 5088
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 38.0 Firefox 38.0
    • View Profile
Re: Universal Mouse Driver
« Reply #23 on: 2015.October.27. 15:30:39 »
I am researching information about text modes(0 and 2).

The principal problem I've found is that the text lines can be messed on the LPT respect of what is seen on the screen.

How can I know the real order of the text lines?
in the memory?
From the LPT , 4th and 5th byte gives back the video address of a the text line in each LPB.

Online gflorez

  • EP addict
  • *
  • Posts: 2380
  • Country: es
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 41.0 Firefox 41.0
    • View Profile
Re: Universal Mouse Driver
« Reply #24 on: 2015.October.27. 16:08:46 »
Thanks for answer me, Geco.

I understand the way to access the lines information, but in the Video Driver Specification is warned that in text modes the lines may not be on a linear structure. I think that the order is kept on the Editor driver.
« Last Edit: 2015.October.27. 20:48:32 by gflorez »

Offline geco

  • EP addict
  • *
  • Posts: 5088
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 38.0 Firefox 38.0
    • View Profile
Re: Universal Mouse Driver
« Reply #25 on: 2015.October.27. 16:14:36 »
Thanks for answer me, Geco.

I understand the way to access the lines information, but in the Video Driver Specification is warned that in text modes the lines may not be not on a linear structure. I think that the order is kept on the Editor driver.
It is possible, unfortunately I do not know the Editor driver, Zozo can help in this  :) , but you can find out the sequence, and the place from the LPT also :)

Online gflorez

  • EP addict
  • *
  • Posts: 2380
  • Country: es
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 41.0 Firefox 41.0
    • View Profile
Re: Universal Mouse Driver
« Reply #26 on: 2015.October.28. 19:27:09 »
I want to put more ideas here:

Once the mouse driver worked within the text modes, it will be easy to program it to hook at initialisation to the deffault video channel if exists.  If on ROM or EXT it should be called to execution as an EXOS command once Basic, Exdos, WP or other is running, not before.

The mouse video channel can be changed later by the User simply closing the MOUSE: channel and opening one other on a different video channel. Then the driver will be compatible with existing programs like the EGI or PaintBox.



Online gflorez

  • EP addict
  • *
  • Posts: 2380
  • Country: es
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 41.0 Firefox 41.0
    • View Profile
Re: Universal Mouse Driver
« Reply #27 on: 2015.November.01. 03:31:41 »
This is my first attempt in Basic to move a ghost pointer over the screen.

The Basic program modify the byte that represent a character boundary because all lines are correlative.

Please, move the internal joystick to see the effect.


The problem is when you Stop Basic, the Editor device can change the order of the lines when a Scroll is produced or an entire paragraph is Inserted.

I have to guess the sorted order of the lines for the driver be able to move the ghost pointer across the screen.
« Last Edit: 2015.November.01. 03:39:03 by gflorez »

Online gflorez

  • EP addict
  • *
  • Posts: 2380
  • Country: es
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 41.0 Firefox 41.0
    • View Profile
Re: Universal Mouse Driver
« Reply #28 on: 2015.November.03. 01:09:05 »
And this is the test with text 80. Please put the emulator at max velocity and move the internal joystick to see the effect.

It may be disappointing to see how slow is, but take in account that this is software text, and the Basic program has to calculate and poke all the eight rows of the character. Nick chip does it automatically on text 40.

Also, indexation and boolean calculations are better performed on assembler. It will be as fast or more than drawing a mouse pointer, so at the end the pointer movement will be similar.
« Last Edit: 2015.November.03. 11:03:53 by gflorez »

Online gflorez

  • EP addict
  • *
  • Posts: 2380
  • Country: es
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 41.0 Firefox 41.0
    • View Profile
Re: Universal Mouse Driver
« Reply #29 on: 2015.November.03. 09:55:35 »
These two simple programs do perfect grids because when Basic is executing, the coordinates are corrected. You must be able to print a string where you want.

When in the Editor(Basic, WP, EXDOS), the order of the lines on the LPT can be "random". But it has to be some place where there is stored the sequence, that shows a short of window through the buffer .
« Last Edit: 2015.November.03. 11:01:42 by gflorez »