на детект, но также там упоминается и опрос
Вид для печати
если "правильный" в смысле "наименее конфликтный", то по большой таблице от блакката надо искать
#001F официально, фирменное железо по факту проверяет только три бита A5-A7
(на спекомпутинге утверждают, что ранний вариант и клоны так и вовсе только A5)
но не факт, что нулевые значения прочих битов не приведут к конфликту с чем-то еще
потому к обнулению нужно подходить с осторожностью
вот мышь можно отличить по A9
Так.
Хотя Z80 имеет 16-разрядную шину адреса, в ZX Spectrum при обраще-
нии к большинству внешних устройств значащими являются только 8 младших
разрядов. Например, для изменения цвета бордюра необходимо записать соот-
ветствующее значение в порт с адресом %0000000011111110 (254)**, но если
Вы запишете это же значение в порт %0000000111111110 (510), то получите
тот же эффект. Разряды, не влияющие на выбор устройства, обычно обозна-
чаются знаком х, и, таким образом, полный адрес упомянутого выше внешнего
устройства записывается как xxxxxxxxl 1111110.
https://zxpress.ru/book_articles.php?id=1839
ну вот если честно я вот тут непонимаю. вроде #001f проходит.Код:#1F/31 xxxxxxxx00011111 xxxxxxxxxxxxxxx1 Kjoy(9) -
xxxxxxxxxx0xxxxx Kjoy(4) -
xxxxxxxxxx0xxxx1 Kjoy(E) -
xxxxxxxxxx0xxx11 KjoyWD1793(C) -
xxxxxxxxxx0xx111 KjoyWD1793(6) -
xxxxxxxxx001x1x1 Kjoy(A) -
xxxxxxxx0xxxx111 Kjoy(F,+F) -
xxxxxxxx0xx11xx1 KjoyPr(B,+B) -
xxxxxxxx0xx11111 KjoyNetWD1793(H) -
xx0xxxxxxx0xxxx1 Kjoy(-E) -
так это только полдела, еще нужно, чтобы со всем вероятным остальным НЕ прошло
- - - Добавлено - - -
jerri, отфильтрованный по #001F список блакката (дополнительно выкинул cp/m и явно теневые порты)
- - - Добавлено - - -Код:PORT ADDRESS DECODING
hex/dec A15 ... A0 A15 ... A0 READ WRITE
================================================================================
PERIPHERALS PORTS (real mode)
================================================================================
#1B/27 xxxxxxxx00011x11 xxxxxxxx0xx11xx1 Pr(B,+B) -
xxxxxxxxxx0xxx11 WD1793(C) -
xxxxxxxxxx0xx111 WD1793(6) -
xxxxxxxx0xx11xx1 Pr(B,+B) -
xxxxxxxx0xx11111 NetWD1793(H) -
#1F#3F#5F#7F xxxxxxxx0BA11111 xxxxxxxx0BAxxxxx 8255(+1) 8255(+1)
xxxxxxxx0BAxxxx1 8255(5) 8255(5)
xxxxxxxx0BAxxx11 8255(7,D) 8255(7,D)
ZX Spectrum PERIPHERALS DEVICES PORTS
================================================================================
#1F/31 xxxxxxxx00011111 xxxxxxxx00011111 AMIGA-MOUSE - *1
#3F/63 xxxxxxxx00111111 xxxxxxxxx0xxxxxx LIGHT PEN - *1
SMUC v.2.3 (Scorpion & MOA Universal Controller / clone)
--------------------------------------------------------------------------------
#0040-#FF78 HGFEDCBA01JII000 ISA8:xJIHGFEDCBA=i/o:#000-#3FF i/o:#000-#3FF
SIF (Serial InterFace True RS232 & ETHERNET & WiFi)(cba - jumpers selected)(*10)
--------------------------------------------------------------------------------
#0003-#001F 00000000cbaCBA11 00000000000CBA11 16C650SerialPort 16C650SerialPort
MB-02+(*3)
--------------------------------------------------------------------------------
#1F#3F#5F#7F xxxxxxxx0BA11111 xxxxxxxx0BA11111 8255-1 8255-1
SOUNDRIVE v1.54 (SOUNDRIVE(*), COVOX(+))
--------------------------------------------------------------------------------
#0F/#1F *xxxxxxxx000A1111 xxxxxxxxx00A1111 L Rg A/L Rg B SLA/SLB
DISCiPLE
--------------------------------------------------------------------------------
#1F/31 xxxxxxxx00011111 xxxxxxxx000x1111 Busy,Net Control,Net
UR-4 (*11)
--------------------------------------------------------------------------------
#1F#3F#5F#7F xxxxxxxx0BA11111 xxxxxxxx0BAxxxxx 8255 8255
Multiface 1
--------------------------------------------------------------------------------
#1F/31 xxxxxxxx00011111 xxxxxxxxx001xx1x ROM/RAM-off NMI-reset
MIO-SC (MIO-Scorpion)
--------------------------------------------------------------------------------
#1F/#DF xxxxxxxx00011111 xxxxxxxxxx0xx111?IORQGE -
D40/80 (Didaktik 40/80)
--------------------------------------------------------------------------------
#1F#3F#5F#7F xxxxxxxx0BA11111 xxxxxxxx0BAxxxxx 8255 8255
ZX Interface 1
--------------------------------------------------------------------------------
#0001-#FFFF xxxxxxxxxxxxxxx1 xxxxxxxxxxxxxxx1 IORQGE IORQGE
(также выкинул порты write-only)
От Mast'а - https://zxart.ee/rus/avtory/m/mast/benyhill
https://github.com/Jerri1977/___core48
все там же
тест и опрос джойстика
Код:test_kemp
ld bc,#001f
ld l,b
ld e,b
i_00
in a,(c)
or e
ld e,a
dec l
jr nz,i_00
ld a,e
and c
jr z,kemp_present
ld a,#c9
kemp_present
ld (kemp_act),a
ret
scan_ctrl
ld hl,k_table
ld d,high kb_buf
ld bc,#0180
scan_ctrl0
ld e,(hl)
inc hl
ld a,(de)
and (hl)
inc hl
cp b
rr c
jr nc,scan_ctrl0
ld a,c
kemp_act ret
xor a
in a,(#1f)
and #1f
or c
ret