nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 27 Apr 2024 08:25



Reply to topic  [ 152 posts ]  Go to page Previous  1, 2, 3, 4, 5 ... 11  Next
ShaosBox для ZX 
Author Message
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22599
Location: Silicon Valley
Reply with quote
Post 
Примерная раскладка памяти при включении WizNET+RTC+ROM в память процессора:
Code:
#C000...#C0FF - регистры WizNET (используются только первые 48 байт из 256)
#C100...#C1FF - окно первой шины NI-15 (задействованы все 256 байт)
#C200...#C2FF - окно второй шины NI-15 (задействованы все 256 байт)
#C300...#C3FF - часы реального времени с энергонезависимой памятью (используются только первые 128 байт из 256)
#C400...#C7FF - управление сокетами WizNET (задействован весь килобайт)
#C800...#CFFF - через это 2К окно просвечивает ОЗУ (тут будет вектор переходов ShaOS, стек и буфер под системные утилиты)
#D000...#D7FF - ПЗУ 2К с драйверами SD-карты (минимальный ShaOS)
#D800...#DFFF - место под второе ПЗУ 2К (опционально)
#E000...#FFFF - сюда подключается RX-буфер или TX-буфер WizNET (занимает все 8К)

Включение этой раскладки происходит через сигналы ввода-вывода AY (куда также подключены LPT и SD)

P.S. Видно что есть место для расширения - в области #C031...#C0FF и #C380...#C3FF можно будет в будущем цеплять другие периферийные устройства как ВВ55, ВВ51 и т.д.

P.P.S. Можно сделать так, что при передаче управления в область #CCxx (вектор переходов ShaOS) это всё будет вставляться в память процессора автоматически (при условии взведения некоего триггера), а при возврате из подпрограммы память будет отдаваться обратно.

P.P.P.S. Для управления хочу ещё заюзать 3 свободных бита при записи в порт #FE...

_________________
:dj: https://mastodon.social/@Shaos


17 Jul 2013 15:30
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22599
Location: Silicon Valley
Reply with quote
Post 
Shaos wrote:
1) к внешнему AY-дейвайсу (пока не получил) прикручиваю LPT-принтер (по схеме ZX-Evo) и SD-card (плюс несколько выходов под будущее управление памятью)...


Не - не буду как в ZX-Эве делать - там порт AYB попеременно то на ввод, то на вывод юзается (из-за этого резисторы подтягивающие и последовательно вставленные навтыканы):

Image

Лучше уберу STROBE в порт #FE (старший бит), а AYB сделаю только на ввод и порядок расположения битов сделаю по аналогии с пц-шным регистром статуса как для LPT.

_________________
:dj: https://mastodon.social/@Shaos


18 Jul 2013 09:19
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22599
Location: Silicon Valley
Reply with quote
Post 
Shaos wrote:
Лучше уберу STROBE в порт #FE (старший бит), а AYB сделаю только на ввод и порядок расположения битов сделаю по аналогии с пц-шным регистром статуса как для LPT.


Прикидываем далее что да как:

Image

Итак инвертированный STROBE (1) будет браться из бита 7 порта #FE. Данные (2...9) будут браться из AYA0...AYA7. А вот порт AYB будет использоваться так:

AYB0 - MISO (вход от SPI bus)
AYB1 - /SDEX (равно нулю, если вставлена SD-карточка)
AYB2 - /SDRO (равно нулю, если SD-карточка защищена от записи)
AYB3 - инвертированный BUSY (11) в режиме принтера либо "0" если вставлена nedoCard (?)
AYB4 - ACK (10) в режиме принтера
AYB5 - PAPER OUT (12) в режиме принтера
AYB6 - SELECT (13) в режиме принтера
AYB7 - ERROR (15) в режиме принтера

Бит 6 порта #FE будет управлять тем, куда идёт строб - в принтер (1) или в регистр (0), сохраняющий состояние данных с порта AYA (этот же бит через инвертор можно отправить на выход "SELECT PRINTER"). Регистр по ребуту обнуляется. Выходы регистра могут использоваться следующим образом:

RA0 - MOSI (выход на SPI bus)
RA1 - SS1 ("1" разрешает первое SPI-устройство - SD-карту)
RA2 - SS2 ("1" разрешает второе SPI-устройство - EEPROM)
RA3 - инвертированный LINE FEED (14) ?
RA4 - EA0 - 00 MEM, 01 RX, 10 TX, 11 ROM (содержимое области #E000...#FFFF когда CWIZ="1" или взведён CC-триггер)
RA5 - EA1 /
RA6 - CWIZ ("1" включает RTC+WIZ+ROM в область #C000...#DFFF)
RA7 - CCEN ("1" разрешает CC-триггер, взводимый при передаче управления на адрес #CCxx)

Если CC-триггер взведён, то RTC+WIZ+ROM находятся в области #C000...#DFFF (тоже самое как при CWIZ="1", но независимо от него). Сбрасывать CC-триггер может бит 5 порта #FE. Тот же самый STROBE (бит 7) может использоваться как SCLK для SPI-устройств (когда бит 6 порта #FE взведён). Вход принтера RESET (16) можно запитать от компьютерного RESET.

_________________
:dj: https://mastodon.social/@Shaos


Last edited by Shaos on 19 Jul 2013 17:29, edited 1 time in total.



18 Jul 2013 17:05
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22599
Location: Silicon Valley
Reply with quote
Post 
Видится мне 3 версии девайса ShaosBox:

v1 - только AY, LPT и SD-карточка (может втыкаться в 16К или 48К)
v2 - AY+LPT+SD+32K+nedoCard (может втыкаться только в 16К)
v3 - AY+LPT+SD+32K+nedoCard+WizNET+RTC+NI15+ROM (тоже только 16К)

NEDOCON-48K можно разрабатывать параллельно...

P.S. Можно ещё ShaosBox v4 сделать - где бейсиковский ROM может подменяться на 16K RAM - в этом случае 16К-спектрум можно легко превратить в CP/M-машину (с прикручиванием текстового видеорежима 80x25, который работает мимо обычной видеопамяти спектрума).

P.P.S. А не поддержать ли мне ещё и NES/SNES-контроллер, преобразовывая его интерфейс в Kempston-джойстик?

_________________
:dj: https://mastodon.social/@Shaos


Last edited by Shaos on 18 Jul 2013 23:08, edited 3 times in total.



18 Jul 2013 18:31
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22599
Location: Silicon Valley
Reply with quote
Post 
Shaos wrote:
А не поддержать ли мне ещё и NES/SNES-контроллер, преобразовывая его интерфейс в Kempston-джойстик?


Напокупал на ебее NES и SNES контроллеров и разъёмчиков к ним. Они вроде совместимы по формату (последовательная синхронная передача состояния кнопок) - просто у SNES больше битов передаётся (т.к. у него кнопок больше). Наверное сейчас это наиболее дешёвые и массовые геймпады, что есть на рынке. Вот думаю что лучше поддержать в своём гипотетическом девайсе - оригинальный геймпад и специфический для него разъём (NES или SNES) или геймпад с перепаянной розеткой и более доступные гнёзда типа DIN-5?

P.S. Нашёл только одного продавца, который продаёт SNES-разъёмы по цене 1.99 канадских баксов:
http://www.raphnet-tech.com/products/sn ... /index.php
PayPal пересчитал деньги как 1 U.S. Dollar = 1.0132 Canadian Dollars, т.е. один разъём получается $1.96
Если перепаивать NES/SNES-контроллер на свою вилку (DIN-5):
http://www.digikey.com/product-detail/e ... 0-ND/96997
и соответственно использовать более доставаемое гнездо:
http://www.digikey.com/product-detail/e ... 0-ND/97033
то по ценам получается так:
1 штука: $1.79 + $1.05 = $2.84
10 штук: $1.39 + $0.81 = $2.20
100 штук: $1.06 + $0.62 = $1.68
т.е. выгоднее оригинального разъёма только при большом количестве...

P.P.S. Вот тут пишут, что клоны NES использовали разъёмы DB9 и DB15:
https://www.kernel.org/doc/Documentatio ... arport.txt
Code:
Pinout for NES clone (db9) gamepads     Pinout for NES clone (db15) gamepads

        +---------> Clock                    +-----------------> Data
        | +-------> Latch                    |             +---> Ground
        | | +-----> Data                     |             |
        | | |                              ___________________
    _____________                        8 \ o x x x x x x o / 1
  5 \ x o o o x / 1                         \ o x x o x x o /
     \ x o x o /                          15 `~~~~~~~~~~~~~' 9
    9 `~~~~~~~' 6                             |     |     |
         |   |                                |     |     +----> Clock
         |   +----> Power                     |     +----------> Latch
         +--------> Ground                    +----------------> Power

Кроме того существовали так называемые мультисистемные джойстики:
Code:
2.2 Multisystem joysticks
~~~~~~~~~~~~~~~~~~~~~~~~~
  In the era of 8-bit machines, there was something like de-facto standard
for joystick ports. They were all digital, and all used D-Cannon 9 pin
connectors (db9). Because of that, a single joystick could be used without
hassle on Atari (130, 800XE, 800XL, 2600, 7200), Amiga, Commodore C64,
Amstrad CPC, Sinclair ZX Spectrum and many other machines. That's why these
joysticks are called "Multisystem".

  Now their pinout:

      +---------> Right
      | +-------> Left
      | | +-----> Down
      | | | +---> Up
      | | | |
  _____________
5 \ x o o o o / 1
   \ x o x o /
  9 `~~~~~~~' 6
       |   |
       |   +----> Button
       +--------> Ground

Я могу попробовать поддержать оба варианта на одном гнезде, причём второй вариант можно расширить до амиговского:
Code:
      Amiga 1200

    +-----------> Button 3
    | +---------> Right
    | | +-------> Left
    | | | +-----> Down
    | | | | +---> Up
    | | | | |
  _____________
5 \ o o o o o / 1
   \ o o o o /
  9 `~~~~~~~' 6
     | | | |
     | | | +----> Button 1
     | | +------> Power
     | +--------> Ground
     +----------> Button 2

По идее только джойстик-интерфейс может уже продаваться как отдельный продукт, а добавление туда поддержки Dandy/Famicom/NES/SNES выгодно выделит его перед конкурентами

P.S. Кстати конкурент разрабатыват свой AY+Kempston за $29 - вот одна сторона печатной платы и картинко прототипа без корпуса:

Image

P.P.S. Я ещё будучи в Екатеринбурге покупал денди-джойстик (NES) и переделывал его под Kempston путём выковыривания микрухи и переподсоединения кнопочек напрямую к проводам - знал бы я тогда, что это последовательный синхронный интерфейс, то сделал бы декодер на мелкой логике ;)

_________________
:dj: https://mastodon.social/@Shaos


19 Jul 2013 07:56
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22599
Location: Silicon Valley
Reply with quote
Post 
O - параллакс продаёт NES-гнёзда за $1.99 :o

http://www.parallax.com/Store/Component ... fault.aspx

P.S. Думаю, что SNES наверное будет предпочтительнее - с него 4 дополнительные кнопки можно загнать через AYB в режиме отключенного принтера - всего получится 12 сигналов! :o

_________________
:dj: https://mastodon.social/@Shaos


Last edited by Shaos on 19 Jul 2013 17:45, edited 3 times in total.



19 Jul 2013 15:56
Profile WWW
Retired
User avatar

Joined: 25 Jul 2011 00:14
Posts: 1331
Location: WWW
Reply with quote
Post 
Famicom который оригинальный имеет только DB15, джои не отключаемые.


19 Jul 2013 16:08
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22599
Location: Silicon Valley
Reply with quote
Post 
MC68k wrote:
Famicom который оригинальный имеет только DB15, джои не отключаемые.


Да - чего то такое я читал. Видимо в какой-то ранней версии - потом вроде везде стали втыкать эти кривые 7-ногие гнёзда.

_________________
:dj: https://mastodon.social/@Shaos


Last edited by Shaos on 19 Jul 2013 21:34, edited 1 time in total.



19 Jul 2013 16:15
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22599
Location: Silicon Valley
Reply with quote
Post 
Вобщем ежели ставить универсальный 9-пиновый разъём, способный работать как в режиме NES/SNES, так и "Multisystem", то раскладка будет такой:

1 - NC or UP (делаем всегда UP)
2 - DATA or DOWN *
3 - LATCH or LEFT *
4 - CLOCK or RIGHT *
5 - NC or BUTTON3 (делаем всегда BUTTON3)
6 - POWER or BUTTON1 *
7 - NC or POWER (делаем всегда POWER)
8 - GROUND or GROUND (делаем всегда GROUND)
9 - NC or BUTTON2 (делаем всегда BUTTON2)

Звёздочкой помечены 4 случая, когда назначение сигнала меняется в зависимости от того, какой джойстик воткнут. Представим, что у нас будет 4 переключателя (или джампера), которыми можно будет менять назначение этих сигналов. Кроме того на плате будет место под NES-разъём и SNES-разъём - главное чтобы юзер туда одновременно 3 джойстика не втыкал.

Кнопки джойстиков на порт #1F (Kempston) замаплены так ("1" означает, что нажато):

bit 7 - BUTTON2 (MULTI) or B (NES) or Y (SNES) - левая лицевая кнопка на NES/SNES
bit 6 - 0 (MULTI) or START (NES/SNES)
bit 5 - BUTTON3 (MULTI) or SELECT (NES/SNES)
bit 4 - BUTTON1 (MULTI) or A (NES) or B (SNES) - правая лицевая кнопка на NES и нижняя лицевая на SNES (главная)
bit 3 - UP (MULTI/NES/SNES)
bit 2 - DOWN (MULTI/NES/SNES)
bit 1 - LEFT (MULTI/NES/SNES)
bit 0 - RIGHT (MULTI/NES/SNES)

Дополнительные кнопки SNES-контроллера (читаются через AY в режиме отключённого принтера):

AYB4 - A (правая кнопка из четырёх лицевых)
AYB5 - X (верхняя кнопка из четырёх лицевых)
AYB6 - L (левое плечо)
AYB7 - R (правое плечо)

P.S. Расположение второй и третьей кнопки в порту кемпстона #1F позаимствовано отсюда

_________________
:dj: https://mastodon.social/@Shaos


19 Jul 2013 18:11
Profile WWW
Retired
User avatar

Joined: 25 Jul 2011 00:14
Posts: 1331
Location: WWW
Reply with quote
Post 
Shaos wrote:
MC68k wrote:
Famicom который оригинальный имеет только DB15, джои не отключаемые.


Да - чего то такое я читал. Видимо в какой-то ранней версии - потом вроде везде стали втыкать эти кривые 7-ногие гнёзда.

не путай с серым.

Image


19 Jul 2013 21:30
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22599
Location: Silicon Valley
Reply with quote
Post 
Shaos wrote:
Shaos wrote:
Нашёл чувака, который продаёт коннекторы для ZX-спектрума :o

http://lotharek.pl/product.php?pid=54


Купил у него 3 разъёма и один Wonder-AY :)

Присмотрелся к его фоткам и понял, что разъёмы у него САМОДЕЛЬНЫЕ :(

Не долго думая смастерил себе такой же - из ISA-шного 8-битного:

Image

Для этого с одного края вытаскивается одна пара контактов, а с другого - две. Далее отпиливаем лишее и вытаскиваем ещё пару, расположенную на месте пятого контакта. После этого получается вполне устойчивая конструкция, влезающая в стандартные спектрумы:

Image

P.S. Дырку на месте пятой пары надо каким-то куском текстолита закрыть или типа того - чтобы не давало вставить неправильно....

P.P.S. Вот сравнительная табличка назначения контактов разъёма с сайта велесофта:


Attachments:
zx_bus_video.png
zx_bus_video.png [ 213.94 KiB | Viewed 5447 times ]

_________________
:dj: https://mastodon.social/@Shaos
19 Jul 2013 21:53
Profile WWW
Retired
User avatar

Joined: 25 Jul 2011 00:14
Posts: 1331
Location: WWW
Reply with quote
Post 
клаву помой - стыд и срам же :)


19 Jul 2013 22:12
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22599
Location: Silicon Valley
Reply with quote
Post 
MC68k wrote:
клаву помой - стыд и срам же :)

ну оно пылилось больше пяти лет ;)

_________________
:dj: https://mastodon.social/@Shaos


19 Jul 2013 22:23
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22599
Location: Silicon Valley
Reply with quote
Post 
Shaos wrote:
Shaos wrote:
Shaos wrote:
Нашёл чувака, который продаёт коннекторы для ZX-спектрума :o

http://lotharek.pl/product.php?pid=54


Купил у него 3 разъёма и один Wonder-AY :)

Присмотрелся к его фоткам и понял, что разъёмы у него САМОДЕЛЬНЫЕ :(

Не долго думая смастерил себе такой же - из ISA-шного 8-битного:

Image

Для этого с одного края вытаскивается одна пара контактов, а с другого - две. Далее отпиливаем лишее и вытаскиваем ещё пару, расположенную на месте пятого контакта. После этого получается вполне устойчивая конструкция, влезающая в стандартные спектрумы:

Image

P.S. Дырку на месте пятой пары надо каким-то куском текстолита закрыть или типа того - чтобы не давало вставить неправильно....

P.P.S. Вот сравнительная табличка назначения контактов разъёма с сайта велесофта:
Image


Пожалуй начну вот с такой платки :)

Image

_________________
:dj: https://mastodon.social/@Shaos


Last edited by Shaos on 26 Jul 2013 19:23, edited 1 time in total.



22 Jul 2013 20:16
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22599
Location: Silicon Valley
Reply with quote
Post 
Может добавить снизу ряд контактов NemoBus и барыжить этим на zx.pk.ru? ;)

P.S. Причём соединить только совместимые контакты (помеченные звёздочкой):
Code:
 1 - * A15 | A14 *
 2 - * A13 | A12 *
 3 - *  D7 | +5V *
 4 -    NC | +9V - у NemoBus тут BLK (CSDS) и DOS (DCDOS)
 5 -  разделитель - у NemoBus справа тут 14MHz (Kay) или +12V (Scorpion), а слева в ZX-Evo обрзначено как TURBO, но никуда не подключено
 6 - *  D0 | GND *
 7 - *  D1 | GND *
 8 - *  D2 | CLK * - у NemoBus тут тоже 3.5MHz, но не CLK, а /RAS (Scorpion)
 9 - *  D6 | A0  *
10 - *  D5 | A1  *
11 - *  D3 | A2  *
12 - *  D4 | A3  *
13 - ? INT | IORQGE * - у NemoBus слева стоит прочерк (но INT в ZX-Evo)
14 - * NMI | GND *
15 - ?HALT | VIDEO - у NemoBus тут прочерк (но HALT в ZX-Evo) и RDR (CSROMCE)
16 - *MREQ | Y - у NemoBus справа тут RS (BIT_4 OF #7FFD)
17 - *IORQ | V - у NemoBus справа тут "not used"
18 - *  RD | U - у NemoBus справа тут "not used"
19 - *  WR | BUSRQ*
20 -   -5V | RESET* - у NemoBus слева тут "not used"
21 - *WAIT | A7  *
22 - ?+12V | A6  * - у NemoBus слева тут "not used", т.е. теоретически можно подцепить +12V от 29B
23 - 12VAC | A5  * - у NemoBus слева тут "not used"
24 - *  M1 | A4  *
25 - *RFSH | ROMCS*
26 - *  A8 | BUSACK*
27 - * A10 | A9  *
28 -    NC | A11 * - у NemoBus тут слева "not used" или +5V (Kay)
29 - отсутствует - у NemoBus тут +12V (Kay) и +5V (Kay)
30 - отсутствует - у NemoBus тут GND и GND
в ZX-Evo есть ещё 31-я пара (видимо для того чтобы ISA-шные разъёмы ставить), и туда даже что-то подключено...


P.P.S. В описании от Black_Cat-a тоже фигурирует 31-я пара контактов (оба NC), но на фотках плат расширения совецких спектрумов я могу только 30 контактов насчитать...

_________________
:dj: https://mastodon.social/@Shaos


23 Jul 2013 07:39
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 152 posts ]  Go to page Previous  1, 2, 3, 4, 5 ... 11  Next

Who is online

Users browsing this forum: No registered users and 27 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.