CGA и CF IDE адаптер на Altera MAX10

16-битные ПЦ-совместимые компьютеры с процессорами 8086/8088/80286 работающие под управлением ДОС

Moderator: Shaos

newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Re: CGA и CF IDE адаптер на Altera MAX10

Post by newold86 »

Похоже, одна загадка плавно перетекла в другую... Нашел на другом компьютере файлы от проекта предыдущей платы - работу с ROM я просто скопировал один к одному. При этом там все работало вообще без малейших затыков. Придется стряхивать пыль с той платы и смотреть уже ее анализатором...
Vic3Dexe
Doomed
Posts: 370
Joined: 16 Dec 2014 11:58
Location: Киев

Re: CGA и CF IDE адаптер на Altera MAX10

Post by Vic3Dexe »

newold86 wrote:либо Вы невнимательно прочитали
Да, мой косяк, не дочитал.

Если ALE не выставляется, это значит, что его там нет, а значит это не цикл CPU.

Как вы определяете начало шинного цикла? Или, другими словами, как определяете конец цикла регена?
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Re: CGA и CF IDE адаптер на Altera MAX10

Post by newold86 »

Vic3Dexe wrote:Как вы определяете начало шинного цикла? Или, другими словами, как определяете конец цикла регена?
Глазами :)

Вот картинка - здесь я уже не использую ALE для фиксации адреса, поэтому все работает, но отсутствие ALE видно:
BusALE.jpg
Это выполнение "jmp $", крутится между адресами D000A - D000C. В районе временной метки 1216 виден адрес 0CB97 - думаю, что это и есть цикл регенерации (через некоторое время дальше будет 0CB98 и т.д., на этой картинке не видно).

После него снова выставляется следующий адрес вечного цикла - D000A, и вот почему-то для этого адреса ALE отсутствует...
You do not have the required permissions to view the files attached to this post.
Vic3Dexe
Doomed
Posts: 370
Joined: 16 Dec 2014 11:58
Location: Киев

Re: CGA и CF IDE адаптер на Altera MAX10

Post by Vic3Dexe »

newold86 wrote:и вот почему-то для этого адреса ALE отсутствует
Да вон же он! Маркер времени примерно 1200 (перед 1216).
Смотрите, от предыдущего ALE его отделяет приличный кусок времени - это проц выполнял jmp $.
Логика рефреша видит, что шину никто не занял, и втыкает рефреш (ну или по времени, не суть важно).
Проц ничего не знает о том, что пошел цикл рефреша, и продолжает выставлять на шину адрес, генерить ALE и т.п., но на шине DMA, проц тормозится логикой wait state, но начало процессорного цикла никто не отменял! Его адрес уже в латчах, и как только DMA отпустит шину - он, адрес, там и появится. Ессно, без всякого ALE.
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Re: CGA и CF IDE адаптер на Altera MAX10

Post by newold86 »

Блин, мог бы и сам додуматься, совсем голова не работает... В любом случае, спасибо !

А зачем вообще тогда ALE на шине нужен, если бывают моменты, когда ALE выставляется, а на шине адреса - адрес вовсе не от процессора, а от DMA ???

Ну, и это не убирает вопрос - как у меня предыдущая плата работала, используя ALE для защелкивания адреса в ROM ??? Жду не дождусь, когда доберусь до нее, чтобы анализатор запустить :)
Vic3Dexe
Doomed
Posts: 370
Joined: 16 Dec 2014 11:58
Location: Киев

Re: CGA и CF IDE адаптер на Altera MAX10

Post by Vic3Dexe »

newold86 wrote:А зачем вообще тогда ALE на шине нужен
Этот вопрос я задавал в первом посте на этом форуме :)
viewtopic.php?f=91&t=10735&p=116930#p116930
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Re: CGA и CF IDE адаптер на Altera MAX10

Post by newold86 »

Vic3Dexe wrote:
newold86 wrote:А зачем вообще тогда ALE на шине нужен
Этот вопрос я задавал в первом посте на этом форуме :)
viewtopic.php?f=91&t=10735&p=116930#p116930
Учитывая, что два разных человека совершенно независимо пришли к одному и тому же вопросу, ответ, похоже - нафиг не нужен ! :)
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Re: CGA и CF IDE адаптер на Altera MAX10

Post by newold86 »

А вот не напрасно я подробно описываю на форуме свои разбирательства со странными ошибками. Если бы еще не забывал потом перечитывать написанное ! :)
newold86 wrote:...при выполнении программы из него (когда POST обнаруживает модуль расширения и передает на него управление) происходят регулярные сбои - простая программа из десятка команд выполняется один-два раза из пары десятков попыток...
Просто не пойму, чем может чтение области памяти отличаться от выполнения программы из этой-же области ???
Это я писал как раз по поводу своей предыдущей платы - только тогда я так и не понял корень проблемы, но устранил сбои заменой сигнала ALE на другой и на этом успокоился. А сейчас скопировал кусок кода не из того места (из старой копии, где еще ALE был). Наверное, к лучшему - зато причина окончательно ясна стала, да и о работе шины ISA очередной нюанс узнал...

Даже анализатор не нужно смотреть...
Mixa64
Doomed
Posts: 480
Joined: 25 Aug 2009 07:02
Location: Москва

Re: CGA и CF IDE адаптер на Altera MAX10

Post by Mixa64 »

Vic3Dexe wrote:
newold86 wrote:А зачем вообще тогда ALE на шине нужен
Этот вопрос я задавал в первом посте на этом форуме :)
viewtopic.php?f=91&t=10735&p=116930#p116930
И там же ниже через один пост (самоцитата) : "А хрен его знает. Вытаскивать локальный сигнал на общую шину - моветон."
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Re: CGA и CF IDE адаптер на Altera MAX10

Post by Tronix »

Интересно! А как думаете, это только в XT так, или и в 286/386 тоже?
Просто сотни умов будоражит загадка последних нескольких лет - почему видюха Trident 9000 в восьмибитном слоте на XT не работает, а в том же восьмибитном слоте на 286 и дальше - работает. Не здесь ли лежит разгадка...
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Re: CGA и CF IDE адаптер на Altera MAX10

Post by Tronix »

Хм, посмотрел на остальных своих видюхах, включая 16-битную Realtek RTG3105E - сигнал ALE у всех не разведен. Никто не пользует, кроме реалтека. Завтра ради прикола попробую у риалтека его тупо на землю положить, посмотрим реакцию поциента.
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Re: CGA и CF IDE адаптер на Altera MAX10

Post by Tronix »

Tronix wrote:у риалтека его тупо на землю положить
Плохая идея. А как "правильно" генерировать ALE ? Просто наверное не получится....
Vic3Dexe
Doomed
Posts: 370
Joined: 16 Dec 2014 11:58
Location: Киев

Re: CGA и CF IDE адаптер на Altera MAX10

Post by Vic3Dexe »

Tronix wrote:А как "правильно" генерировать ALE ?
Правильно - наверно никак. В правильности самого наличия ALE на шине есть сомнения :)
Как вариант - затягивать спад BALE (т.е. шинного экземпляра) до факта появления /MRD, причем именно от проца.
Tronix
Doomed
Posts: 662
Joined: 18 Nov 2013 02:38
Location: Москва

Re: CGA и CF IDE адаптер на Altera MAX10

Post by Tronix »

Vic3Dexe wrote: Правильно - наверно никак. В правильности самого наличия ALE на шине есть сомнения :)
Как вариант - затягивать спад BALE (т.е. шинного экземпляра) до факта появления /MRD, причем именно от проца.
А если будет /MWR ? Жалко на картинке у newold86 не видно остальных основных сигналов.
А вот если так: Если спад ALE и MEMRn в нуле, то ждем фронта MEMRn и генерим ALE ?
newold86
Devil
Posts: 716
Joined: 30 Nov 2013 11:08
Location: WWW

Re: CGA и CF IDE адаптер на Altera MAX10

Post by newold86 »

Очередная проблемка - не думаю, что кто-то будет сильно думать над этим, так, скорее для себя пишу :)
С моей платы отлично загружается ДОС при условии, что плата вставлена в мою же XTC3. XTC3 работает практически полностью под BIOS'ом оригинальной PC XT. Несколько небольших отличий в BIOS'е вроде не должны вызывать того эффекта, о котором чуть позже.
Если же вставляю плату в материнскую плату Siemens (которая ну очень похожа на PC XT), то загрузка затыкается на довольно раннем этапе.
Я не стал париться, и довольно грубо целиком перехватываю Int 13 и Int 19. Int 13 даже не пытается сосуществовать с оригинальным обработчиком, вообще не передает на него управление. Вообще загрузка начинается вроде вполне нормально - я вывожу параметры Int 13 и результат его работы (что было прочитано в указанный в параметрах участок памяти) и сравниваю (визуально) с тем, что происходит на XTC3.
До самого последнего момента вроде все идентично, и только после того, когда происходит последнее перед выводом "MS DOS loading" чтение с использованием Int 13, Siemens наглухо зависает...