[#1] Drivery do scroll myszki
Planuje skończyć projekt do USB HID pod Re-A1200.
Prawie wszystko właściwie mam już ukończone, jedynie co mi zostało to scroll pod myszkę, czyli szukam czy jakieś drivery do Amigi są ogólnie dostępne.
Widzę, że najświeższe są do Tank Mouse https://aminet.net/package/driver/input/TankMouse
Zastanawiam czy mi wypada podpiąć się pod ten projekt i wykorzystać tę drivery ?
Może jakaś alternatywa?

Projekt do wglądu (uporządkuje projekt jak skończę)
https://github.com/arkadiuszmakarenko/A1200HID2DB9
1
[#2] Re: Drivery do scroll myszki

@makaron, post #1

To jedyne ktore działają ze scrollem Tank Mausa ale i tak doinstalowywuje się je jako drugie po freewheel
1
[#3] Re: Drivery do scroll myszki

@MaroB, post #2

Posiadam OS3.2 i mysz na USB.

Jakie sterowniki będą najodpowiedniejsze?
1
[#4] Re: Drivery do scroll myszki

@makaron, post #1

czy mi wypada podpiąć się pod ten projekt i wykorzystać tę drivery ?

Wypada, tym bardziej że jest to projekt otwarty i jest dostępny kod źródłowy.
[#5] Re: Drivery do scroll myszki

@sq7bti, post #4

Prawnie oczywiście (Projekt widnieje pod licencją MIT). Jednak ktoś wpakował czas w ten projekt po prostu wypada się spytać.

Ostatnia aktualizacja: 18.02.2024 21:30:15 przez makaron
2
[#6] Re: Drivery do scroll myszki

@makaron, post #5

Jeśli chcesz coś już gotowego obsługującego dwie osie rolki i dodatkowe klawisze to ten dołączony do pakietu AVAGOMouse jest według mnie lepszy.
1
[#7] Re: Drivery do scroll myszki

@makaron, post #1

Nie wiem czy to Ci się na coś przyda, ale może:
https://aminet.net/package/util/mouse/FreeWheel
U mnie działa z myszą USB podłączoną do Warpa1260.
1
[#8] Re: Drivery do scroll myszki

@Jacques, post #7

FreeWheel to oprogramowanie które wykorzystuje SCROLA w Amidze żeby FreeWheel zadziałał potrzebny jest jeszcze DRIVER do obsługi tego "kółka".
Ty masz tego drivera zaszytego w stosie USB wgranym w oprogramowanie Warpa1260 ok, racja

Ostatnia aktualizacja: 19.02.2024 11:26:44 przez BULI
1
[#9] Re: Drivery do scroll myszki

@BULI, post #8

Aaa, no tak, OK.
1
[#10] Re: Drivery do scroll myszki

@BULI, post #8

Jak dla mnie ten program jest niekonfigurowalny.

Jest help ale co z tego jak tam nie ma jak zainstalować.

Podpowiedzcie plz.
[#11] Re: Drivery do scroll myszki

@_DiskDoctor_, post #10


Jest help ale co z tego jak tam nie ma jak zainstalować


Wyjaśnij co chcesz instalować.
Bo Freewheel po prostu się uruchamia.
2
[#12] Re: Drivery do scroll myszki

@Norbert, post #11

Troszkę tematy się pomieszały.
[#13] Re: Drivery do scroll myszki

@Norbert, post #11

Chciałbym żeby mi działał scroll.

Nie działa. Co mam zrobić? Mam WARP i mysz USB więc podobno driver jest.
[#14] Re: Drivery do scroll myszki

@_DiskDoctor_, post #13

Jaką masz wersję firmware WARP.
Dopiero od wersji v1.500 działa obsługa wheel mouse.
Piszą o tym na stronie z softem do WARPa
1
[#15] Re: Drivery do scroll myszki

@Norbert, post #14

No mam oczywiście 1.505.
[#16] Re: Drivery do scroll myszki

@makaron, post #5

Wracając do pierwotnego tematu, czyli potrzeby użycia sterownika (i/lub kodu źródłowego), chciałbym się szerzej do tej sprawy odnieść, w jaki sposób można to zrobić.

Wystarczy:
  • Odgałęzić repozytorium przez wybranie klawisza Fork na github’ie

    Po tym, można już zmienić w tym projekcie co się żywnie podoba, np.
  • strukturę katalogów, np.:
    mkdir src
    mv *.c *.h *.s src
  • nazwy plików, wprowadzając jednocześnie niezbędne zmiany w pliku Makefile, np.:
    mv mousedriver.c MouSTerDriver.c
    mv vbserver.s MouSTerVBInterrupt.s
  • nazwy poszczególnych procedur, części w definicjach struktur
  • nazwę pola signal sigbit w signal w definicji struktury danych dzielony miedzy kodem main() i kodem przerwania,
  • nazwę przerwania vertblankint zmienić np. w VBInterrupt,
  • nazwę wskaźnika do is_data w tej strukturze mousedata np. w MouSTerData,
  • itd.
  • itd.
  • InputEvent zmienić w zdefiniowany statycznie, aby nie było potrzeby dynamicznie alokować dla niego pamięci,
  • nazwę procedury konfiguracji z AllocResources() np. w setup()
  • wyrzucić cały kod obsługi błędów podczas alokacji niezbędnych zasobów:
    np. nie sprawdzać, czy wartość zwracana przez CreateMsgPort() nie wskazuje na jakiś problem,
  • poprzesuwać niektóre odwołania między main() a procedurą AllocResources() …. ekhmmmm setup(),
  • nazwę procedury zwolnienia zasobów FreeResources() w cleanup(), jednocześnie znowu czyszcząc kod ze zbędnych sprawdzeń czy poszczególny zasób był z sukcesem zaalokowany,
  • użyć bufora od długości 256 bajtów jednocześnie wyrzucając sprawdzenie przepełnienia, wpisując tylko komentarz o małej szansie wystąpienia takiego przypadku w kodzie przerwania ISR (w pliku MouSTerVBInterrupt.s).
  • itd.
  • itd.


Po samych edycjach takiego kodu sam kod źródłowy na pewno będzie dla niewprawnego oka wyglądał już inaczej, choć wynik działania skompilowanego kodu będzie nadal takie samo - funkcjonalnie ekwiwalentny. Byłaby to dość nieudolna próba ukrycia oryginalnego pochodzenia skopiowanego projektu. Trudno w prosty sposób przez użycie tekstowych porównywarek wtedy już dowieść podobieństw, ale nie jest to kod własny. By kod można było nazwać autorskim, trzeba by przeprowadzić tzw. clean room design, metodę, którą jest sens używać gdy techniki użyte w oryginalnym projekcie są oparte o opatentowane technologie.

  • Następnie można dopasować kod obsługi przerwania VBLank implementując inny (autorski) sposób komunikacji przez złącze myszy, np. korzystając z komunikacji szeregowej przez pin LMB. Tutaj można się wykazać dużą wiedzą asemblera, ale pozostawić np. komentarz o przypisaniu rejestrów procesora, przez które ISR komunikuje się z OS. Alternatywnie można taką listę skopiować z elowar⁣, by ukryć pochodzenie pliku vbserver.s, bo tam lista jest z myślnikami, zamiast dwukrotnych znaków równości.
  • Można też pokusić się na poprawę literówki w wyrazie execpt, w powyższym zestawieniu rejestrów, zmieniając ją w jeszcze inna literówkę, np, execept. Ale to już lepiej zostawić lingwistom do wyboru.


Poza pierwszym krokiem odgałęzienia projektu istotne jest także dokumentowanie każdego kroku zmiany w kodzie, najprościej w historii zmian, przez
git add {file}
git commit

Pomaga to uniknąć podejrzeń postronnych osób o plagiat.

Powracając do sedna sprawy, również zmieniony kod każdy może używać i publikować na swoim publicznie dostępnym repozytorium, bo tak stanowi licencja, na której jest opublikowany oryginał, najpierw Paula i później mój, ale podstawowym wymogiem jest utrzymanie pliku LICENSE z zachowaniem informacji o pochodzeniu tych plików. Szkoda, tylko żeby marnować czas na udowadnianie i prowadzenie takich „amiwojenek” - określenie, o jakim istnieniu się ostatnio dowiedziałem, a teraz stałem się jej mimowolnym uczestnikiem. Jak już @makaron wspomniał, w taki projekt „wpakowuje” się masę czasu i nikt nie ma prawa wartościować swojego czasu wyżej niż kogoś innego: moje 10h jest w/g mnie warte mniej niż 1h godzina Paula nad swoim oryginalnym projektem.

P.S. Wszelkie podobieństwa podanych powyżej (proponowanych) nazw plików, procedur, zmiennych lub pól struktur danych do istniejących projektów są jak najbardziej zamierzone.
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem