User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 14

Тема: ПК Специалист + манипулятор мышь

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    5,214
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    706
    Спасибо Благодарностей получено 
    1,647
    Поблагодарили
    572 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию ПК Специалист + манипулятор мышь

    В журнале "Моделист-Конструктор" №2 за 1994 год была опубликована схема подключения манипулятора мышь.



    По схеме неясно что за тип мыши такой. Ближе всего - Bus Mouse, то там отсутствует сигнал RESET.



    1994 год - Специалист к этому времени, скорее был уже мёртв. Сильно сомневаюсь, но вдруг кто-то знает софт, который под этот манипулятор успели написать?
    С уважением, Станислав.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,926
    Спасибо Благодарностей отдано 
    105
    Спасибо Благодарностей получено 
    291
    Поблагодарили
    217 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Есть тема на соседнем форуме: http://www.nedopc.org/forum/viewtopic.php?t=9361 (читать осторожно, пропуская выпады необоснованной агрессии лавро-тролля).

    Этот пользователь поблагодарил b2m за это полезное сообщение:

    CityAceE(25.06.2025)

  4. #3

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    5,214
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    706
    Спасибо Благодарностей получено 
    1,647
    Поблагодарили
    572 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Дизассемблер опубликованного в МК дампа:

    Код:
    ; Программа для тестирования мыши из журнала МК 2'94
    ; Написана под Монитор за авторством В. Доможирова - МК 5'91, МК 8'91, МК 9'91, МК 11'91
    
        device    zxspectrum48
    
            org     0               ; Адрес загрузки
    
    ; Стандартные подпрограммы Загрузчика
    CLS        equ    0xC010    ; Очистка экрана. Цвет задаётся в ячейках 8FFA и 8FFB
    DELAY        equ    0xC190    ; Задержка. Длительность задаётся в регистре B
    
    ; Стандартные подпрограммы Монитора
    PRN_SYM        equ    0xC809    ; Вывод символа на экран. C - выводимый символ
    PRN_HEX        equ    0xC815    ; Вывод на экран байта в шестнадцатеричном виде. A - выводимый байт
    PRN_MSG        equ    0xC818    ; Вывод сообщения на экран. HL - адрес начала
    
    ; Адреса ППИ
    PPI_RUS        equ    0xFEFF
    PPI_B        equ    0xFEFD
    
    ; Адрес внешней программы
    EXT_PROC    equ    0x8870    ; Выход в неизвестную внешнюю программу
    
    ; Ячейки Монитора В. Доможирова
    MON_Y        equ    0x8F84    ; Адрес курсора (9000...BFFF) первая ячейка из двух
    MON_X        equ    0x8F85    ; Адрес курсора (9000...BFFF) вторая ячейка из двух
    
    startprog:
        ld      hl, msg_03
        call    PRN_MSG
    
        ld      a, 0x80
        ld      (PPI_RUS), a
        ld      a, 0xff
        ld      (PPI_B), a
        cpl
        ld      (PPI_B), a
    
    mouse_01:         
        ld      a, 0x82
        ld      (PPI_RUS), a
        nop
        nop
        ld      a, (PPI_B)
        ld      c, a
        ld      a, 0x80
        ld      (PPI_RUS), a
        ld      a, 0xff
        ld      (PPI_B), a
        cpl
        ld      (PPI_B), a
        
        ld      a, c
        and     0x10
        cp      0
        jp      z, EXT_PROC
        
        ld      a, c
        and     0x20
        cp      0
        call    z, CLS
        
        ld      a, c
        and     1
        cp      0
        jp      nz, mouse_02
    
        ld      a, (coord_y)
        dec     a
        ld      (coord_y), a
    
    mouse_02:        
        ld      a, c
        and     4
        cp      0
        jp      nz, mouse_03
        ld      a, (coord_y)
        inc     a
        ld      (coord_y), a
    
    mouse_03:        
        ld      a, c
        and     2
        cp      0
        jp      nz, mouse_04
        ld      a, (coord_x)
        inc     a
        ld      (coord_x), a
    
    mouse_04:        
        ld      a, c
        and     8
        cp      0
        jp      nz, mouse_05
        ld      a, (coord_x)
        dec     a
        ld      (coord_x), a
    
    mouse_05:        
        ld      a, (coord_x)
        ld      hl, msg_02
        call    PRN_MSG
        call    PRN_HEX
    
        ld      a, (coord_y)
        ld      hl, msg_01
        call    PRN_MSG
        call    PRN_HEX
    
        ld      a, (coord_x)
        and     0xfc
        rra
        rra
        add     a, 0x90
        ld      (MON_X), a
    
        ld      a, (coord_y)
        rla
        rla
        rla
        ld      (MON_Y), a
    
        ld      c, "+"
        call    PRN_SYM
    
        ld      b, 0xff
        call    DELAY
        call    DELAY
        call    DELAY
        call    DELAY
        call    DELAY
    
        jp      mouse_01
    ; ---------------------------------------------------------------------------
    msg_01:  
        db    0x1b, "Z", 0x64, 0x0a    ; ESC+Z: прямое позиционирование курсора, следом идут координаты Y и X
        db    "MOVE "
        db    0x01, 0x12    ; 0x01 - первый символ двухбайтной передачи, 0x12 - код символа стрелки вверх-вниз
        db    " "
        db    0x00        ; Маркер конца строки
    
    msg_02:  
        db    0x1b, "Z", 0x6e, 0x0a    ; ESC+Z: прямое позиционирование курсора, следом идут координаты Y
        db    "MOVE "
        db    0x01, 0x1d    ; 0x01 - первый символ двухбайтной передачи, 0x1d - код символа стрелки влево-вправо
        db    " "
        db    0x00        ; Маркер конца строки
    
    msg_03:          
        db    0x1b, "L"    ; ESC+L: Установить окно во весь экран дисплея
        db    0x1b, "P"    ; ESC+P: Установить цвет символов светящимися точками, а цвет фона не светящимися точками
        db    0x1f        ; ^_: CLEAR - Очистка экрана и перевод курсора "Домой"
        db    0x00        ; Маркер конца строки
    
    coord_y:
        db    0x0c
    
    coord_x:
        db    0x42
    
        ; Мусор для совпадения с журнальным дампом
        db    0, 0x39, 0, 0x39, 0, 0x39, 0
    
    endprog:
        savebin    "mouse.bin", startprog, endprog - startprog
    С уважением, Станислав.

  5. #4

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    5,214
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    706
    Спасибо Благодарностей получено 
    1,647
    Поблагодарили
    572 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я совершенно не смыслю в схемотехнике и не могу по схеме понять как оно реализовано, но с программной точки зрения очень странно выбран адрес порта. Дело в том, что по адресам F800-FFFF уже сидит стандартная ВВ55. Как они впихнули по пересекающимся адресам (FEFC-FEFF) ещё одну? Или же тут используется решение с дополнительным дешифратором из МК 2'89? Или как оно работает?

    Сама схема, очевидно, ценности не представляет, но представляет ценность диапазон портов, выбранных ещё 30 с лишним лет назад. Потому что сегодня можно было бы подключить нормальную мышь. А программ под мышь всё равно, насколько я понимаю, пока нет.
    С уважением, Станислав.

  6. #5

    Регистрация
    30.12.2018
    Адрес
    г. Москва
    Сообщений
    1,375
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    384
    Поблагодарили
    346 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    Или же тут используется решение с дополнительным дешифратором из МК 2'89?
    он самый и есть. как раз в той схеме из 2/89 порт В свободен.

    Сама схема, очевидно, ценности не представляет, но представляет ценность диапазон портов, выбранных ещё 30 с лишним лет назад.
    там сплошной разброд и шатание. с дополнительным дешифратором например не будет работать тест-ПЗУ Рюмика - потому что оно ломится в дианазон FFFC-FFFF, не будет работать shell от Vinxru - потому что ломится в диапазон если не ошибаюсь F800-F803, возможно еще что-то. вот что мешало использовать адреса FF00-FF03 из авторского ПЗУ?

    А программ под мышь всё равно, насколько я понимаю, пока нет.
    мне ни одной не попадалось.

    Зверинецъ

    Специалист (был когда-то "совсем стандарт") - 1988-2023
    Ленинград1 +256К +AY+BDI+VGA выход +Ethernet (Speccyboot) +Xmodem (115200)+divmmc
    Ленинград2 + CF карта
    Платформа 8085+Z80+CPLD (Специалист МХ2 +SD +FDD +PS/2kbd)
    БК0010-01 стоковый
    [свернуть]

    Этот пользователь поблагодарил Serg6845 за это полезное сообщение:

    CityAceE(25.06.2025)

  7. #6

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    5,214
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    706
    Спасибо Благодарностей получено 
    1,647
    Поблагодарили
    572 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Serg6845 Посмотреть сообщение
    там сплошной разброд и шатание. с дополнительным дешифратором например не будет работать тест-ПЗУ Рюмика - потому что оно ломится в дианазон FFFC-FFFF, не будет работать shell от Vinxru - потому что ломится в диапазон если не ошибаюсь F800-F803, возможно еще что-то. вот что мешало использовать адреса FF00-FF03 из авторского ПЗУ?
    Думаю, что невеликая проблема пропатчить весь подобный софт на стандартные адреса FF00-FF03.
    С уважением, Станислав.

  8. #7

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    5,214
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    706
    Спасибо Благодарностей получено 
    1,647
    Поблагодарили
    572 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Что ж, внимательное изучение обсуждения этого же самого вопроса на форуме NedoPC привело меня к заключению, что двигаться в этом направлении - это тупиковый путь. Программ под это дело так и не появилось. Да и достоверное не смогли определить, что же за мышь такая была у автора статья. Всё только на уровне предположений. Так что необходимо переизобрести подключение мыши к Специалисту. Софта всё равно нет, так что мы ничем не ограничены.

    В качестве манипулятора предлагаю использовать мышь стандарта PS/2. Конечно, USB-мышь была бы предпочтительнее, но насколько я понимаю, PS/2 будет проще подключить.

    По части адресации лучше выбрать диапазон F000-F7FF, но с дополнительным дешифартором, делящим область на 16 участков. Область F000-F07F занята авторской ВВ55А (программатор, принтер, SD). F400-F407F с лёгкой руки Pyk занята AY. Под мышь предлагаю задействовать F500-F57F:

    Код:
    ; F500 - кнопки
    ; F501 - X
    ; F502 - Y
    ; F503 - колесо
    К сожалению, оперативно внедрить это дело ни в эмулятор, ни в FPGA не получается. Emu80 в принципе не имеет поддержки мыши, так что нужно будет начинать с его серьёзного перелопачивания. А по части FPGA есть целая очередь других задач.

    Но с чего-то же нужно начинать? Я начал с того, что умею - с простенькой тестовой программы (пока не доделал), которая опрашивает вышеуказанные ячейки и выводит содержимое не экран. Как только будет готовый интерфейс, то будем работать дальше в этом направлении по программной части.



    Я не силён в схемотехнике, но может быть можно адаптировать какое-то готовое решение, например, со Спектрума?
    Последний раз редактировалось CityAceE; 17.07.2025 в 11:01.
    С уважением, Станислав.

  9. #8

    Регистрация
    30.12.2018
    Адрес
    г. Москва
    Сообщений
    1,375
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    384
    Поблагодарили
    346 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    Я не силён в схемотехнике, но может быть можно адаптировать какое-то готовое решение, например, со Спектрума?
    единственно логичным вариантом выглядит kempston mouse. на чем реализовывать переход в USB/PS2 - вопрос открытый. есть такой интересный проект -Hidman, может оттуда что приколхозить...

    Зверинецъ

    Специалист (был когда-то "совсем стандарт") - 1988-2023
    Ленинград1 +256К +AY+BDI+VGA выход +Ethernet (Speccyboot) +Xmodem (115200)+divmmc
    Ленинград2 + CF карта
    Платформа 8085+Z80+CPLD (Специалист МХ2 +SD +FDD +PS/2kbd)
    БК0010-01 стоковый
    [свернуть]

    Этот пользователь поблагодарил Serg6845 за это полезное сообщение:

    CityAceE(17.07.2025)

  10. #9

    Регистрация
    19.07.2017
    Адрес
    г. Кемерово
    Сообщений
    47
    Записей в дневнике
    2
    Спасибо Благодарностей отдано 
    30
    Спасибо Благодарностей получено 
    26
    Поблагодарили
    12 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    мы тащим
    https://github.com/harbaum/FPGA-Comp...ob/main/SPI.md
    там всё.... что касается USB HID.
    работу с картой надо переделывать в обратную сторону.

  11. #10

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    5,214
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    706
    Спасибо Благодарностей получено 
    1,647
    Поблагодарили
    572 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А вот тут ИИ мне подсказывает, что для подключения мыши к Специалисту отлично подойдёт недорогая плата RP2040, которая имеет на борту USB-хост и достаточное количество GPIO контактов, которые можно запрограммировать как нашей душе угодно:

    Код:
         Специалист                  RP2040
       -------------              -------------
       A0–A15  o──────[1k]──────▶ GPIO0–15   (IN)
       D0–D7   o──────[470]──────◀▶ GPIO16–23 (IN/OUT with Hi-Z)
       /RD     o──────[1k]──────▶ GPIO24     (IN)
       GND     o───────────────── GND
    Также есть готовая библиотека TinyUSB, которую нужно будет слегка подрихтовать под наши нужды.

    Ну а я продолжаю готовиться к появлению грызуна на платформе:

    Последний раз редактировалось CityAceE; 29.07.2025 в 10:04.
    С уважением, Станислав.

Страница 1 из 2 12 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Мышь к Специалисту
    от zx_ в разделе Специалист
    Ответов: 2
    Последнее: 02.03.2018, 12:41
  2. Игровой манипулятор "Электроника"
    от ra0ued в разделе Устройства ввода
    Ответов: 2
    Последнее: 03.02.2017, 13:49
  3. Мышь в эмуляторе
    от sevol в разделе Для начинающих
    Ответов: 13
    Последнее: 16.09.2011, 12:42
  4. kempston мышь
    от zorel в разделе Игры
    Ответов: 13
    Последнее: 23.02.2011, 18:31
  5. Мышь Genius GM-6
    от BYTEMAN в разделе Устройства ввода
    Ответов: 3
    Последнее: 26.06.2008, 14:43

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •