Sprinter ISA

Компьютер "Спринтер" http://sprinter.nedopc.org

Moderator: Shaos

User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Sprinter ISA

Post by Shaos »

Расширил тестилку TIMER.EXE и померял скорость ОЗУ на ISA-шине - 14 МГц получается там, а не 7 :mrgreen:
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Sprinter ISA

Post by Shaos »

Начал было вставлять в TIMER.EXE проверку наличия ОЗУ в ISA-слоте и наткнулся на интересный эффект - короче если ничего нету в слоте, то читаются FF-ы, но если что-то туда записать и СРАЗУ же прочитать - то прочитается "записанное" значение, которое будет висеть на отключенной шине какое-то время :)
Соответственно чтобы протестировать что это дейтвительно ОЗУ надо сначало записать одно значение (скажем 0AAh) по адресу 0C800h, потом другое значение (скажем 055h) по адресу 0C8001h и потом прочитать из 0C800h - если прочитается 0AAh, то это ОЗУ, а если 055h, то платка не вставлена :mrgreen:
Теперь TIMER2.EXE пишет в каком слоте обнаружил память (а если не обнаружил, то строчек ISA в результатах не будет):
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
Sayman
Maniac
Posts: 223
Joined: 05 Oct 2009 19:44
Location: 212.164.105.5

Re: Sprinter ISA

Post by Sayman »

Так а где сама прга то? приложить к посту, не?
и в репу ещё кинуть тоже. и чтобы мерж сделать с оригиналом.
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Sprinter ISA

Post by Shaos »

Sayman wrote:Так а где сама прга то? приложить к посту, не?
и в репу ещё кинуть тоже. и чтобы мерж сделать с оригиналом.
Ну я её в дискорд пока закинул - если у тебя запускается, то сложу в репу (три версии друг на друга чтобы видеть изменения)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Sprinter ISA

Post by Shaos »

Shaos wrote:
Sayman wrote:Так а где сама прга то? приложить к посту, не?
и в репу ещё кинуть тоже. и чтобы мерж сделать с оригиналом.
Ну я её в дискорд пока закинул - если у тебя запускается, то сложу в репу (три версии друг на друга чтобы видеть изменения)
Выложил сюда: https://gitlab.com/sprinter-computer/apps
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Sprinter ISA

Post by Shaos »

Shaos wrote:Максимальные возможные размеры ISA-платы:

Image
Источник: http://www.interfacebus.com/Design_Connector_PCAT.html
RomanRom2 уговаривает меня сделать низкопрофильную плату Ethernet:
isa-low-profile.jpg
Снял заглушку, воткнул в ISA-слот и приложил к материнке в слим-корпусе - по размеру подходит:
isa-low-profile-slim.jpg
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Sprinter ISA

Post by Lavr »

Shaos wrote:RomanRom2 уговаривает меня сделать низкопрофильную плату Ethernet:
Shaos, а почему бы просто не взять старую ISA-плату Ethernet?
iLavr
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Sprinter ISA

Post by Shaos »

Lavr wrote:
Shaos wrote:RomanRom2 уговаривает меня сделать низкопрофильную плату Ethernet:
Shaos, а почему бы просто не взять старую ISA-плату Ethernet?
Потому что программировать надо больше - у визнета многое делается прямо в чипе и наружу сразу торчат 4 TCP/IP сокета (хотя низко-уровневые протоколы тоже возможны)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Sprinter ISA

Post by Shaos »

Продолжаю работать над платой SprinterNet - это второй прототип:
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Sprinter ISA

Post by Shaos »

Купил ISA-тройник и перевставил прототип в него:
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Sprinter ISA

Post by Shaos »

Shaos wrote:Отпочковано отсюда
Shaos wrote: Вот немного по ISA из официального документа sp2000.pdf:

Image

Image

Ещё помню был какой-то текстовый файл с более детальным описанием работы с ISA (я в 2003 было брался ISA-плату COM-порта делать для Спринтера и собирал у всех любую инфу по работе с ISA), но я его с ходу не нашёл - буду смотреть дальше...
Взято из INFO_012.TXT

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   │
      └────────┴──────────────┴─────────┴───────────────┘
Это имеет какое-то отношение к реальности или это Sp97 ?...

P.S. Судя по всему табличка неправильная - должно быть так (выяснили ниже 27 декабря 2020):

Code: Select all

      ┌────────┬──────────────┬─────────┬───────────────┐
      │ D0h    │ память ISA1  │  D4h    │ порты ISA1    │
      │ D2h    │ память ISA2  │  D6h    │ порты ISA2    │
      └────────┴──────────────┴─────────┴───────────────┘
D0 -> 1101 0000 => 0-RAM 0-ISA#1
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-слота:

Image
Источник: https://linuxgazette.net/124/dutta.html
Тут похоже вся эта кухня с DRQ/DACK никогда не работала, во-первых, адресные биты идут на шину ISA через буфер, который намертво подключен в одну сторону, т.е. отцепить Спринтер от шины адреса ISA, чтобы какое-то устройство начало рулить шиной, нельзя. Во-вторых, в BIOS только старшие 2 бита инициализируются как выходные:

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
EXP.ASZ:

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
а DSS (VIDEO.ASM) похоже ошибка - вместо #63 должно быть 63 (что тоже самое как и 0x3F):

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
т.е. по идее имелось ввиду, что инициализируются на выход только 2 старших бита в PIO2, которые уходят на LPT, а все остальные инициализированы на вход, даже DACK1/2, которые как бы должны быть выходами:

Image

Соответственно у меня предложение к 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)
Причём бит 0 (IRQ1) всё так же останется единственной линией генерации прерываний для первого канала, к которому в будущем будет подключен единственный слот ZX-BUS.

Я планирую в ближайшем будущем подключить ISA backplane на несколько слотов через самодельный переходник ко второму слоту ISA на своей плате Sp2000, разведя все IRQ-и на правильные битики, чтобы удостовериться, что это будет работать...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Sprinter ISA

Post by Shaos »

Shaos wrote:Купил ISA-тройник и перевставил прототип в него
Сегодня воткнул ещё одну карточку с памятью в тот же тройник - память на ней настроена на другой диапазон адресов 0xC8xxx и работает параллельно и независимо от сетевой карточки (которая настроена на 0xDCxxx) т.к. каждая карточка отзывается только на свои адреса будучи на той же самой ISA-шине, как и должно было быть :)
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Sprinter ISA

Post by Shaos »

Shaos wrote:На прошлой странице меня немного озадачила схема формирования RD и WR стробов для ISA-словтов
...
Получается, что при вышеизложенном формировании /MEMR1/2 и /MEMW1/2 карточка ISA будет видеть следующее:

Image
т.е. даже если я буду маскировать /MEMR и /MEMW на плате сигналом /MREQ, всё равно в цикле записи будет вылезать неожиданный мусорный /MEMRD :o
который будет приводить к конфликту на шине данных в момент перехода мусорного /MEMR в /MEMW (может быть случайно записан только что прочитанный байт) и обратно...
Сегодня RomanRom2 таки снял осциллограммы и подтвердил мою теорию, что мусорный строб чтения (фиолетовый /MEMR) в цикле записи присутствует:
Write-Read-Garbage1.png
Наряду с фиолетовым /MEMR тут можно видеть голубой сигнал /MEMW и синий - /MREQ (поданный на ISA-слоты как ALE) - в течение одного /MREQ должен быть либо один /MEMW, либо один /MEMR, но никак не оба.

Тоже самое подальше:
Write-Read-Garbage2.png
Решение для новой платы я уже предлагал (толи в телеге, толи в дискорде) - прицепить в разрыв /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
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Sprinter ISA

Post by Shaos »

Вот свежие фоточки от RomanRom2 - тут запись 1 байта в ISA (с мусорным чтением непосредственно перед) и потом 2 чтения подряд что было ld hd,(addr) - нетурба:
Write-Read-Garbage-2read.jpg
и турба:
Write-Read-Garbage-2readTurbo.jpg
А вот так это выглядит в слоте у воткнутой карточки - ошибочное срабатывание схем записи и чтения одновременно гарантировано:
Write-Read-Garbage-2readTurboSlot.jpg
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 23989
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Sprinter ISA

Post by Shaos »

Shaos wrote:Решение для новой платы я уже предлагал (толи в телеге, толи в дискорде) - прицепить в разрыв /MREQ1 /MREQ2 /IORD1 /IORD2 по OR гейту (т.е. всего 4 - один корпус 74LS32), каждый из которых стробается реальным сигналом /RD с процессора, чтобы эти сигналы не доходили до шины, когда ненадо (а именно в цикле записи, когда /RD=1)
Фикс на OR-гейтах проверен - RomanRom2 показывает, что теперь всё ок :mrgreen:
Write-Read-Garbage-2readTurboFixed.jpg
Стэндъ:
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net