
Sprinter ISA
Moderator: Shaos
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Sprinter ISA
Расширил тестилку TIMER.EXE и померял скорость ОЗУ на ISA-шине - 14 МГц получается там, а не 7 

You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Sprinter ISA
Начал было вставлять в TIMER.EXE проверку наличия ОЗУ в ISA-слоте и наткнулся на интересный эффект - короче если ничего нету в слоте, то читаются FF-ы, но если что-то туда записать и СРАЗУ же прочитать - то прочитается "записанное" значение, которое будет висеть на отключенной шине какое-то время 
Соответственно чтобы протестировать что это дейтвительно ОЗУ надо сначало записать одно значение (скажем 0AAh) по адресу 0C800h, потом другое значение (скажем 055h) по адресу 0C8001h и потом прочитать из 0C800h - если прочитается 0AAh, то это ОЗУ, а если 055h, то платка не вставлена
Теперь TIMER2.EXE пишет в каком слоте обнаружил память (а если не обнаружил, то строчек ISA в результатах не будет):

Соответственно чтобы протестировать что это дейтвительно ОЗУ надо сначало записать одно значение (скажем 0AAh) по адресу 0C800h, потом другое значение (скажем 055h) по адресу 0C8001h и потом прочитать из 0C800h - если прочитается 0AAh, то это ОЗУ, а если 055h, то платка не вставлена

Теперь TIMER2.EXE пишет в каком слоте обнаружил память (а если не обнаружил, то строчек ISA в результатах не будет):
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Maniac
- Posts: 223
- Joined: 05 Oct 2009 19:44
- Location: 212.164.105.5
Re: Sprinter ISA
Так а где сама прга то? приложить к посту, не?
и в репу ещё кинуть тоже. и чтобы мерж сделать с оригиналом.
и в репу ещё кинуть тоже. и чтобы мерж сделать с оригиналом.
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Sprinter ISA
Ну я её в дискорд пока закинул - если у тебя запускается, то сложу в репу (три версии друг на друга чтобы видеть изменения)Sayman wrote:Так а где сама прга то? приложить к посту, не?
и в репу ещё кинуть тоже. и чтобы мерж сделать с оригиналом.
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Sprinter ISA
Выложил сюда: https://gitlab.com/sprinter-computer/appsShaos wrote:Ну я её в дискорд пока закинул - если у тебя запускается, то сложу в репу (три версии друг на друга чтобы видеть изменения)Sayman wrote:Так а где сама прга то? приложить к посту, не?
и в репу ещё кинуть тоже. и чтобы мерж сделать с оригиналом.
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Sprinter ISA
RomanRom2 уговаривает меня сделать низкопрофильную плату Ethernet:Shaos wrote:Максимальные возможные размеры ISA-платы:
Источник: http://www.interfacebus.com/Design_Connector_PCAT.html
Снял заглушку, воткнул в ISA-слот и приложил к материнке в слим-корпусе - по размеру подходит:
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Supreme God
- Posts: 16676
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Sprinter ISA
Shaos, а почему бы просто не взять старую ISA-плату Ethernet?Shaos wrote:RomanRom2 уговаривает меня сделать низкопрофильную плату Ethernet:
iLavr
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Sprinter ISA
Потому что программировать надо больше - у визнета многое делается прямо в чипе и наружу сразу торчат 4 TCP/IP сокета (хотя низко-уровневые протоколы тоже возможны)Lavr wrote:Shaos, а почему бы просто не взять старую ISA-плату Ethernet?Shaos wrote:RomanRom2 уговаривает меня сделать низкопрофильную плату Ethernet:
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Sprinter ISA
Продолжаю работать над платой SprinterNet - это второй прототип:
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Sprinter ISA
Купил ISA-тройник и перевставил прототип в него:
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Sprinter ISA
Тут похоже вся эта кухня с DRQ/DACK никогда не работала, во-первых, адресные биты идут на шину ISA через буфер, который намертво подключен в одну сторону, т.е. отцепить Спринтер от шины адреса ISA, чтобы какое-то устройство начало рулить шиной, нельзя. Во-вторых, в BIOS только старшие 2 бита инициализируются как выходные:Shaos wrote:Отпочковано отсюдаВзято из INFO_012.TXTShaos wrote: Вот немного по ISA из официального документа sp2000.pdf:
Ещё помню был какой-то текстовый файл с более детальным описанием работы с ISA (я в 2003 было брался ISA-плату COM-порта делать для Спринтера и собирал у всех любую инфу по работе с ISA), но я его с ходу не нашёл - буду смотреть дальше...Это имеет какое-то отношение к реальности или это Sp97 ?...Code: Select all
Работа с ISA. ┌────┬──────────┬────┬───────────┐ │конт│ Сигнал │конт│ Сигнал │ ┌───────────────┬────────────────┐ ├────┼──────────┼────┼───────────┤ │ A16 BA15 │ B16 DRQ2 │ │ A1 │IOCHK │ B1 │GND │ │ A17 BA14 │ B17 DACK2 │ │ A2 │BD7 │ B2 │ISA_RES │ │ A18 BA13 │ B18 DRQ2 │ │ A3 │BD6 │ B3 │VCC │ │ A19 BA12 │ B19 ISARF │ │ A4 │BD5 │ B4 │IRQ2 │ │ A20 BA11 │ B20 CLKZ1 │ │ A5 │BD4 │ B5 │-5V │ │ A21 BA10 │ B21 IRQ2 │ │ A6 │BD3 │ B6 │DRQ2 │ │ A22 BA9 │ B22 IRQ2 │ │ A7 │BD2 │ B7 │VCC-12 │ │ A23 BA8 │ B23 IRQ2 │ │ A8 │BD1 │ B8 │/0WS │ │ A24 BA7 │ B24 IRQ2 │ │ A9 │BD0 │ B9 │VCC12 │ │ A25 BA6 │ B25 IRQ2 │ │ A10│IOCHRDY │ B10│GND │ │ A26 BA5 │ B26 DACK2 │ │ A11│AEN │ B11│/MEMW2 │ │ A27 BA4 │ B27 TC │ │ A12│BA19 │ B12│/MEMR2 │ │ A28 BA3 │ B28 BALE │ │ A13│BA18 │ B13│/IOWR2 │ │ A29 BA2 │ B29 VCC │ │ A14│BA17 │ B14│/IORD2 │ │ A30 BA1 │ B30 CLK14 │ │ A15│BA16 │ B15│DACK2 │ │ A31 BA0 │ B31 GND │ └────┴──────────┴────┴───────────┘ └───────────────┴────────────────┘ Сигналы BDx, BAx подаются с процессора через буферы. IOCHRDY через диод подается на /WAIT процессора IRQi соединены вместе, подаются на порт 1Ch (параллельный порт Z84C15) DRQi соединены вместе, подаются на порт 1Ch (параллельный порт Z84C15) DACKi соединены вместе, подаются на порт 1Ch (параллельный порт Z84C15) Для каждого слота ISA свои биты для IRQ,DRQ,DACK ISARF подается с RFSH через буфер BALE подается с MERQ через буфер CLK14 - отсутствует CLKZ1 - частота с процессора TC - отсутствует /0WS - отсутствует /MEMW - Подаются с дешифратора ИД7. /MEMR - Для каждого слота свои. /IOWR - Обращение, как к памяти, так и к портам ISA происходит через /IORD - специальные страницы ОЗУ. Что бы получить доступ к ISA надо установить скорпионовскую страницу 8..15 в C000h..FFFFh, после этого в порт E2h заслать номер страницы, соответствующий портам/памяти ISA ┌────────┬──────────────┬─────────┬───────────────┐ │ D0h │ порты ISA1 │ D4h │ память ISA1 │ │ D2h │ порты ISA2 │ D6h │ память ISA2 │ └────────┴──────────────┴─────────┴───────────────┘
P.S. Судя по всему табличка неправильная - должно быть так (выяснили ниже 27 декабря 2020):D0 -> 1101 0000 => 0-RAM 0-ISA#1Code: Select all
┌────────┬──────────────┬─────────┬───────────────┐ │ D0h │ память ISA1 │ D4h │ порты ISA1 │ │ D2h │ память ISA2 │ D6h │ порты ISA2 │ └────────┴──────────────┴─────────┴───────────────┘
D2 -> 1101 0010 => 0-RAM 1-ISA#2
D4 -> 1101 0100 => 1-IO 0-ISA#1
D6 -> 1101 0110 => 1-IO 1-ISA#2
значит описание должно быть таким:
;D7...should be 1
;D6...should be 1
;D5...should be 0
;D4...should be 1
;D3...should be 0
;D2...specify access mode (0 - ISA memory, 1 - ISA ports)
;D1...specify index of ISA slot (0 - ISA#1, 1 - ISA#2)
;D0...should be 0
P.P.S. Для информации картинка ISA-слота:
Источник: https://linuxgazette.net/124/dutta.html
Code: Select all
SPRINT00.ASZ:LPT1_D EQU 1CH
SPRINT00.ASZ:LPT1_C EQU 1DH
SPRINT00.ASZ:LPT2_D EQU 1EH
SPRINT00.ASZ:LPT2_C EQU 1FH
Code: Select all
; Инициализация параллельного порта 2 (INT/DMA ISA)
LD BC,LPT2_C
LD A,0CFH ; BITS I/O
OUT (C),A ; <<<< set 1100 1111 (set mode 11 - control)
LD A,03FH
OUT (C),A ; <<<< set 0011 1111 (bits 7,6 - outputs, bits 5...0 - inputs)
LD A,0C0h ; <<<< 1100 0000 (data)
OUT (LPT2_D),A
Code: Select all
PRINT_INIT
DI
LD A,#CF ; port 1F только чеpез LD BC,1F: Out (BC),reg !!!
LD BC,#001F
OUT (C),A ; <<<< set 1100 1111 (set mode 11 - control)
LD A,#63
OUT (C),A ; <<<< set 0110 0011 ???
LD A,#C0 ; Bit 7 - Select (1), Bit 6 - Auto_Line_Feed (1)
OUT (#1E),A
Соответственно у меня предложение к RomanRom2, как создателю новой платы Спринтера, отрезать DACK/DRQ от ISA-шины совсем и в будущей плате, в которой предполагаются размноженные ISA-слоты во втором канале, подключить ВСЕ IRQ линии по человечески (через тот же PIO2):
Code: Select all
bit 0 - input IRQ1 (ZX-BUS)
bit 1 - input IRQ3 (ISA8)
bit 2 - input IRQ4 (ISA8)
bit 3 - input IRQ5 (ISA8)
bit 4 - input IRQ6 (ISA8)
bit 5 - input IRQ7 (ISA8)
bit 6 - output Auto_Line_Feed (LPT)
bit 7 - output Select (LPT)
Я планирую в ближайшем будущем подключить ISA backplane на несколько слотов через самодельный переходник ко второму слоту ISA на своей плате Sp2000, разведя все IRQ-и на правильные битики, чтобы удостовериться, что это будет работать...
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Sprinter ISA
Сегодня воткнул ещё одну карточку с памятью в тот же тройник - память на ней настроена на другой диапазон адресов 0xC8xxx и работает параллельно и независимо от сетевой карточки (которая настроена на 0xDCxxx) т.к. каждая карточка отзывается только на свои адреса будучи на той же самой ISA-шине, как и должно было бытьShaos wrote:Купил ISA-тройник и перевставил прототип в него

You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Sprinter ISA
Сегодня RomanRom2 таки снял осциллограммы и подтвердил мою теорию, что мусорный строб чтения (фиолетовый /MEMR) в цикле записи присутствует:Shaos wrote:На прошлой странице меня немного озадачила схема формирования RD и WR стробов для ISA-словтов
...
Получается, что при вышеизложенном формировании /MEMR1/2 и /MEMW1/2 карточка ISA будет видеть следующее:
т.е. даже если я буду маскировать /MEMR и /MEMW на плате сигналом /MREQ, всё равно в цикле записи будет вылезать неожиданный мусорный /MEMRD
который будет приводить к конфликту на шине данных в момент перехода мусорного /MEMR в /MEMW (может быть случайно записан только что прочитанный байт) и обратно...
Наряду с фиолетовым /MEMR тут можно видеть голубой сигнал /MEMW и синий - /MREQ (поданный на ISA-слоты как ALE) - в течение одного /MREQ должен быть либо один /MEMW, либо один /MEMR, но никак не оба.
Тоже самое подальше:
Решение для новой платы я уже предлагал (толи в телеге, толи в дискорде) - прицепить в разрыв /MEMR1 /MEMR2 /IORD1 /IORD2 по OR гейту (т.е. всего 4 - один корпус 74LS32), каждый из которых стробается реальным сигналом /RD с процессора, чтобы эти сигналы не доходили до шины, когда ненадо (а именно в цикле записи, когда /RD=1)
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Sprinter ISA
Вот свежие фоточки от RomanRom2 - тут запись 1 байта в ISA (с мусорным чтением непосредственно перед) и потом 2 чтения подряд что было ld hd,(addr) - нетурба:
и турба:
А вот так это выглядит в слоте у воткнутой карточки - ошибочное срабатывание схем записи и чтения одновременно гарантировано:
и турба:
А вот так это выглядит в слоте у воткнутой карточки - ошибочное срабатывание схем записи и чтения одновременно гарантировано:
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 23989
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Sprinter ISA
Фикс на OR-гейтах проверен - RomanRom2 показывает, что теперь всё окShaos wrote:Решение для новой платы я уже предлагал (толи в телеге, толи в дискорде) - прицепить в разрыв /MREQ1 /MREQ2 /IORD1 /IORD2 по OR гейту (т.е. всего 4 - один корпус 74LS32), каждый из которых стробается реальным сигналом /RD с процессора, чтобы эти сигналы не доходили до шины, когда ненадо (а именно в цикле записи, когда /RD=1)

Стэндъ:
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net