![]() |
Проверка на наличие Kempston Joystick
Как это корректно сделать? А то меня как-то смущает что-то типа Велесофтовского IF IN 31 > 127 THEN... :(
|
Привет тёзка. Взломай любую игру и просмотри как там написано. А если тебе нужно на бейсике,- то 10 LET A=IN 31
20 IF A=0 THEN GO TO 10 И в А получаешь результат 1- влево, 2- вправо, 4 и 8 не помню, но там вверх и вниз, 16- стрельба только это работает если порт, при не нажатых клавишах выдаёт 0. Ну, а, если тебе нужно для определения любого клона, то желательно на асме. ---------- Post added at 20:29 ---------- Previous post was at 20:15 ---------- Во, блин дочитался. определяй если вместе не нажаты 1 и 2, то есть влево и вправо - значит порт есть. Обычно так проверяют. Но есть такие клоны, у которых этот порт инвертирован. |
Quote:
|
Quote:
|
Может тогда не надо изголяться, а сделать ТОЛЬКО принудительно? А то получится, если я случайно нажму кнопочки джоя во время проверки мне кемпстон отрубит... :(
|
Quote:
|
частенько выводят надпись "kempston joy y/n?"
|
Что я почти и сделал в релизе Monty...
|
Quote:
Modern joystick interfaces return always value 0 on D7-D5 and is possible detect joy interface if IN 31 return: D7 must contain 0 (D4-D6 can be used for three joy buttons) - 0xxxxxxx D3 and D2 can't contain values 1 - xxxx11xx D1 and D0 can't contain values 1 - xxxxxx11 Joystick port 31 (for joy detect only) must be read after interrupt - HALT+IN A,(31) for return corect data value (port 31 can return screen attribute value if joy interface absent) complette test: EI HALT LD E,0 LD BC,#001F IN B,(C) LD A,B RLCA RET C LD A,B AND 3 CP 3 RET Z LD A,B RRCA RRCA AND 3 CP 3 RET Z LD E,1 RET ;this code detect joystick interface and return E=1 if joy connect / E=0 if joy absent |
Лично я в файтере сделал так:
LD B,0 LD H,0 KT1 IN A,(#1F) AND #E0 OR H LD H,A DJNZ KT1 LD A,H OR A JR Z,KJYES Если джойстик подключен - то произойдёт переход на метку KJYES На эмуле работает, по логике вещей должно работать и на железе, вот только как это обстоит в отношении советских клонов? Не знаю. Может кто-нибудь проверит? |
Quote:
|
Quote:
Обычно в играх имеется меню: 1. клавиатура 2. синклер 1 3. синклер 2 4. кемстон 5. назначение клавиш Стандартная штука. Некоторые программы делают безусловную поддержку джоя. Например, некоторые буты наряду с курсором опрашивают джоя. |
Quote:
[IMG]ftp://ftp.worldofspectrum.org/pub/sinclair/technical-docs/KempstonJoystickInterface_Schematics.gif[/IMG] IN 31 return on D7 and D6 floating data values (log.1 from pull-up or part of attribute byte from ZX screen). If software test joystick after interrupt (ULA show border area) this interface return at D7 and D6 different values on different machines. |
Quote:
На советских вариантах zx вроде прога срабатывает, но если есть альтернатива - давайте рассмотрим. |
Quote:
корректнее было бы делать не AND #E0, а AND #1F. если ниче в этих разрядах не появлялось - опрашивать джой как минимум безопасно. правда задержку бы побольше сделать, а не 256 раз. |
Клон, привет,нужна твоя помощь плиз,раньше с ума сходил от игрушки Gunfright вот сейчас замучила настольгия в нете пытался скачать эту игру не выходит она не открывается надо типа имуль но у меня не получается если не сложно можешь написать подробную схему как мне загрусить всё это дело чтоб я мог играть в эту игру на буке( у меня SONY винда виста помоги если можешь я уж месяц мучяюсь я чайник в компах)
|
| All times are GMT +4. The time now is 00:27. |
Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.