http://ru.pc-history.com/desktop/pev...-evm/pevm-agat
http://www.vectronicsappleworld.com/...joysticks.html
http://ru.pc-history.com/wp-content/...7_joystick.jpg
Вид для печати
esl, ага, спасибо. в большинство игр такими не поиграешь, конечно.
зато можно легко смастерить дигитайзер!
В свое время Kwasti прислал диск
там были как помнится его? разработки
там есть поддержка джойстика
но не всё так просто
в AC3 - что-то не так, направление инвертированно и что-то странное с кнопками
а в H (HAND?) есть
Joystick 1
Joystick 1
Joystick #1
Joystick #2
при выборе Joystick #1
Move to position and Press the Button #1
в общем похоже еще странные джойстики, надо будет покопать ...
там на диске есть AC3
я так понимаю набросок Cadet Academy ?
там автодетект джойстиов?,
так сейчас в моем этуляторе там он срабатывает, и всё портит
без эммуляции джойстика там можно с клавиатуры управлять, а в эмуляторе с джойстиком всё время нажата кнопка, и управление в другие стороны
я чегойто сразу не въехал, голова не варит
детект наличия джойстика
Код:RAM:048A 16 0C ld d, 12
RAM:048C 3E 00 ld a, 0
RAM:048E 32 62 0E ld (_JOY_FLAG), a ; 0x01 - joy1
RAM:048E ; 0x02 - joy2?
RAM:0491 ;
RAM:0491 21 0B FB ld hl, _1C_PPI3RUS
RAM:0494 36 82 ld (hl), PORT_C30_OUT|PORT_B_IN|MODE_B_0|PORT_C74_OUT|PORT_A_OUT|MODE_A_0|_SET_MODE
RAM:0496 ;
RAM:0496 36 0E ld (hl), ppi_0_|ppi_b7
RAM:0498
RAM:0498 loc_498: ; CODE XREF: sub_449+71j
RAM:0498 01 D0 07 ld bc, unk_7D0
RAM:049B 1E 00 ld e, 0
RAM:049D 72 ld (hl), d
RAM:049E
RAM:049E loc_49E: ; CODE XREF: sub_449+60j
RAM:049E 3A 09 FB ld a, (_1C_PPI3B)
RAM:04A1 E6 3F and 3Fh ; '?'
RAM:04A3 CA AE 04 jp z, loc_4AE
RAM:04A6 0B dec bc
RAM:04A7 78 ld a, b
RAM:04A8 B1 or c
RAM:04A9 C2 9E 04 jp nz, loc_49E
RAM:04AC 1E 01 ld e, 1
RAM:04AE
RAM:04AE loc_4AE: ; CODE XREF: sub_449+5Aj
RAM:04AE 3A 62 0E ld a, (_JOY_FLAG) ; 0x01 - joy1
RAM:04AE ; 0x02 - joy2?
RAM:04B1 07 rlca
RAM:04B2 B3 or e
RAM:04B3 32 62 0E ld (_JOY_FLAG), a ; 0x01 - joy1
RAM:04B3 ; 0x02 - joy2?
RAM:04B6 ;
RAM:04B6 14 inc d
RAM:04B7 7A ld a, d
RAM:04B8 FE 0E cp 14
RAM:04BA C2 98 04 jp nz, loc_498
RAM:04BD ;
RAM:04BD 3E 0D ld a, ppi_1_|ppi_b6
RAM:04BF 32 33 FB ld (_1C_PPI2_RUS), a
RAM:04C2 ;
RAM:04C2 3A 31 FB ld a, (_1C_PPI2B_)
RAM:04C5 2F cpl
RAM:04C6 5F ld e, a
RAM:04C7 E6 01 and 1
RAM:04C9 07 rlca
RAM:04CA 07 rlca
RAM:04CB 57 ld d, a
RAM:04CC 7B ld a, e
RAM:04CD 00 nop
RAM:04CE 00 nop
RAM:04CF 00 nop
RAM:04D0 3E 00 ld a, 0
RAM:04D2 3A 62 0E ld a, (_JOY_FLAG) ; 0x01 - joy1
RAM:04D2 ; 0x02 - joy2?
RAM:04D5 00 nop
RAM:04D6 32 62 0E ld (_JOY_FLAG), a ; 0x01 - joy1
RAM:04D6 ; 0x02 - joy2?
RAM:04D9 F3 di
[свернуть]
а вот
ожидание нажатие кнопок
Код:RAM:062D ckhBUTTON?: ; CODE XREF: sub_449+14Fp
RAM:062D ; WaitButton??p ...
RAM:062D 3E 1C ld a, 1Ch
RAM:062F F3 di
RAM:0630 32 7F BF ld (_6C_SysReg1C), a
RAM:0633 1E 00 ld e, 0
RAM:0635 3A 62 0E ld a, (_JOY_FLAG) ; 0x01 - joy1
RAM:0635 ; 0x02 - joy2?
RAM:0638 0F rrca
RAM:0639 D2 4B 06 jp nc, noJ1
RAM:063C F5 push af
RAM:063D 3E 0C ld a, ppi_0_|ppi_b6
RAM:063F 32 0B FB ld (_1C_PPI3RUS), a
RAM:0642 ;
RAM:0642 3A 09 FB ld a, (_1C_PPI3B)
RAM:0645 0F rrca
RAM:0646 0F rrca
RAM:0647 E6 04 and 4 ; 6.0 0000 1000 - 0x04 : 0x01
RAM:0649 5F ld e, a
RAM:064A F1 pop af
RAM:064B
RAM:064B noJ1: ; CODE XREF: ckhBUTTON?+Cj
RAM:064B 0F rrca
RAM:064C D2 5E 06 jp nc, noJ2
RAM:064F F5 push af
RAM:0650 3E 0D ld a, ppi_1_|ppi_b6
RAM:0652 32 0B FB ld (_1C_PPI3RUS), a
RAM:0655 3A 09 FB ld a, (_1C_PPI3B)
RAM:0658 0F rrca
RAM:0659 E6 08 and 8 ; 6.1 0001 0000 - 0x08 : 0x02
RAM:065B B3 or e
RAM:065C 5F ld e, a
RAM:065D F1 pop af
RAM:065E
RAM:065E noJ2: ; CODE XREF: ckhBUTTON?+1Fj
RAM:065E 0F rrca
RAM:065F D2 71 06 jp nc, noJ3
RAM:0662 F5 push af
RAM:0663 3E 0D ld a, ppi_1_|ppi_b6
RAM:0665 32 33 FB ld (_1C_PPI2_RUS), a
RAM:0668 3A 31 FB ld a, (_1C_PPI2B_)
RAM:066B 2F cpl
RAM:066C E6 10 and 10h ; 1110 1111 - 6.1 0x10 : 0x04
RAM:066E B3 or e
RAM:066F 5F ld e, a
RAM:0670 F1 pop af
RAM:0671
RAM:0671 noJ3: ; CODE XREF: ckhBUTTON?+32j
RAM:0671 0F rrca
RAM:0672 D2 83 06 jp nc, noJ4_KBD
RAM:0675 3E 0C ld a, ppi_0_|ppi_b6
RAM:0677 32 33 FB ld (_1C_PPI2_RUS), a
RAM:067A 3A 31 FB ld a, (_1C_PPI2B_)
RAM:067D 2F cpl
RAM:067E 0F rrca
RAM:067F E6 20 and 20h ; ' ' ; 6.0 1011 1111 - 0x20 : 0x08
RAM:0681 B3 or e
RAM:0682 5F ld e, a
RAM:0683
RAM:0683 noJ4_KBD: ; CODE XREF: ckhBUTTON?+45j
RAM:0683 7B ld a, e
RAM:0684 0F rrca
RAM:0685 0F rrca
RAM:0686 5F ld e, a ; >>2
RAM:0687 ;
RAM:0687 3A 40 F8 ld a, (_1C_KBD_40) ; SPC TAB BS INS DEL STOP CLS ENTER
RAM:068A E6 80 and 80h ; 'А' ; SPACE - 0x80
RAM:068C B3 or e
RAM:068D 5F ld e, a
RAM:068E ;
RAM:068E 3A 02 F8 ld a, (_1C_KBD_02) ; O N M K L J I H
RAM:0691 E6 40 and 40h ; '@' ; N - 0x40
RAM:0693 B3 or e
RAM:0694 07 rlca
RAM:0695 07 rlca
RAM:0696 5F ld e, a ; l - 0x80?
RAM:0697 ;
RAM:0697 3E 6C ld a, 6Ch ; 'l'
RAM:0699 32 7F FA ld (_1C_SysReg1C), a
RAM:069C FB ei
RAM:069D 7B ld a, e
RAM:069E E6 3F and 3Fh ; '?' ; maks joystick?
RAM:06A0 C9 ret
RAM:06A0 ; End of function ckhBUTTON?
[свернуть]
а в самой игре фигурирую Joy1 и Joy2
на диске есть UFO и WAR (в UFO опять наброски интерфейса, в WAR - что-то непонятное)
там поддержка MouseSystem мышки а не джойстика
(в последней версии эмулятора можно -m 2 при старте)
---------- Post added at 17:46 ---------- Previous post was at 17:42 ----------
а в AC3 джойстик нормально работает с такой распиновккой (уникальной)
Код:0x01; // Down
0x02; // Up
0x04; // Right
0x08; // Left
0x10; // FIRE ИНВЕРСНЫЙ если 0 то нажато.
немного новостей по теме
благодаря Александру Голубеву (появилось немного новых дисков) http://my.mail.ru/community/ust-ishy...7AD5DA025.html
нашлась 1-я и пока единственная программа которая использует джойстик через элемент управления ЭУ8040 ;)
драйвер с говорящим названием GRDJ
ОПИСАНИЕ ПРОГРАММЫ-ДРАЙВЕРА ДЖОЙСТИКА
Код:П/О "ОКТЯБРЬ" Филиппский Ю.А.
ОПИСАНИЕ ПРОГРАММЫ-ДРАЙВЕРА ДЖОЙСТИКА
1. НАЗНАЧЕНИЕ
Программа предназначена для подключения джойстика
ПТ3.049.077 через элемент управления ЭУ8040 к ПЭВМ "КОРВЕТ".
Программа встраивает в среду операционной системы (ОС)
драйвер джойстика. Драйвер джойстика (далее по тексту
драйвер) может работать как в среде ОС МикроДос версии 2.0.,
так и в ОС СР/М и СОС "КОРНЕТ".
Драйвер позволяет заменить нажатие любой клавиши на
клавиатуре перемещением ручки джойстика в одном из
направлений или нажатие копки. Программа может переопределить
значения клавиш для каждого положения джойстика.
По окончании работы программы можно запускать любые
файлы и работать с джойстиком.
2. РАБОТА ПРОГРАММЫ
Перед запуском программы необходимо подкючить элемент
управления к ПЭВМ "КОРВЕТ". Джойстик подключается к разъему
ХР1 элемента управления (верхний разъем).
После запуска программы в левой части экрана схематично
отображаются все направления джойстика и соответствующие им
значения клавиш. По умолчанию (без переопределения) берутся
значения дополнителного поля клавиатуры (клавиши со стелками).
В нижней части экрана выдаются запросы на которые
нужно ответить нажатием клавиш Y или N. Если вас устраивает
заданные значения (режим по умолчанию), то вы можете
отказаться от режима переопределения, нажав клавишу N и,
таким образом, закончить работу программы. Если же эти
значения неустраивают, то вам надо перейти в режим
переопределения значений направлений джойстика (нажав
клавишу Y).
В режиме переопределения в левой части экрана
схематично изображено направление джойстика, в нижних строках
выводится поясняющее сообщение. Для указанного направления
необходимо нажать одну нужную вам клавишу на клавиатуре. Эта
клавиша можит быть любой. Когда все направления и значение
кнопки будут определены, в нижней части экрана появится
запрос. Если вы уверены, что все верно, вам нужно нажать
клавишу Y, закончив таким образом работу программы. Если вы
ошиблись, то можно вернуться в режим переопределения, нажав
клавишу N.
3.РЕКОМЕНДАЦИИ ПО ИСПОЛЗОВАНИЮ ПРОГРАММЫ.
Драйвер работает в среде операционной системы. Он
определяет текущее состояние джойстика и передает
соответствующее ему значение операционной системе для
дальнейшей обработки так, как будто бы это значение пришло от
клавиатуры. Благодоря этому все программы, в которых нажатие
клавиш определяется через функции опереационной системы,
могут работать с джойстиком. Если какая-либо программа
(игра) не работает с джойстиком, то однозначно, что она
напрямую обращается к клавиатуре. В таких случаях никакой
драйвер не поможет, кроме как встроенный в саму программу, но
эта задача для авторов программ.
Таким образом, если вы хотите использовать джойстик в
своих программах (играх) вам для опроса клавиатуры надо
применять соответствующие функции ОС.
[свернуть]
из интересного на первый взгляд - не особо много, но есть
пара новых версий софта
вот этот GRDJ
новых дисковых биосов не обнаружилось (мой диск патчер в EXTROM всё обрабатывает)