|
nedoPC.orgElectronics hobbyists community established in 2002 |
|
Author |
Message |
Vic3Dexe
Doomed
Joined: 16 Dec 2014 11:58 Posts: 370 Location: Киев
|
Я предлагаю пока до доса не доходить, скормить ему вместо бут-сектора (с дискетки или модификацией биоса) простейшую последовательность: Т.е. триггер поставить на запись в левый порт, на видеопамять срабатывать будет от всего. Ну и данные будут из проца лезть гарантированно "те".
|
07 Oct 2018 03:45 |
|
|
Tronix
Doomed
Joined: 18 Nov 2013 02:38 Posts: 662 Location: Москва
|
Тут небольшой облом вышел. ISA слотов то у меня только два В одном - XT-IDE, в другом - видюха. А карточку с CPLD уже воткнуть некуда. И самих слотов ISA больше нет, все уже распаял. Так что наверное откладываются дальнейшие эксперименты. А насчет не доходить до доса - у меня же карточка с CPLD собирает данные во внешнюю SRAM 32Kb, а вытаскиваю я их оттуда чтением из порта. В файл. Внешних то интерфейсов больше нет, ни UART, ничего. SignalTap данное семейство (MAX3000A) не поддерживает. Только разве что сбоку лепить микроконтроллер какой-нибудь, который будет по тому же UART забирать содержимое SRAM. Но мне кажется это уже перебор для данной задачи.
|
07 Oct 2018 03:54 |
|
|
Vic3Dexe
Doomed
Joined: 16 Dec 2014 11:58 Posts: 370 Location: Киев
|
Засада. Дискет нет, я так понял? Ну т.е. чтобы освободить слот от XT-IDE. Насчет доса - тем же тестовым кодом можно добыть результаты и сложить их на ту же дискетку в какой-нибудь ненужный сектор-два-десять (через int 13h). Потом с дискеты доставать, написав утилитку... Блин, да, че-то гемор получается.
Ладно, а просто выполнить тестовый код на этой карте? Без слежения за шиной. Интересует результат mov ax,3 / int 10h и собственно записи символа. Причем, желательно несколько раз, дабы понять - этот мусор случаен или есть закономерность. Может на ней тупо нога микрухи памяти отпаялась? Как-то уже очень похоже на отвал памяти...
Ну и дампить регистры VGA, раз аппаратно шину увидеть нельзя.
|
07 Oct 2018 07:17 |
|
|
Tronix
Doomed
Joined: 18 Nov 2013 02:38 Posts: 662 Location: Москва
|
Нет, с памятью и картой все точно в порядке. Она отлично работает на обычном клоне XT и в Поиск-2. Да и на 386 вроде пробовал когда-то, тоже работает. Едут ко мне ISA слоты, впаяю еще один на следующей неделе наверное.
|
08 Oct 2018 22:38 |
|
|
Vic3Dexe
Doomed
Joined: 16 Dec 2014 11:58 Posts: 370 Location: Киев
|
На правах бреда. Потести "in ax,dx" аналогично тесту out. На каком-нибудь читабельном порту. Подойдет, скажем, VGA CRT: Я к чему веду - вывод в порт работает однозначно. А ввод кто-то проверял? Он в таком виде используется крайне редко, но может именно в этом и затык? Ну т.е. биосы карт, которые заработали, не используют in ax,dx. Те, что упрямятся - используют.
|
12 Oct 2018 14:56 |
|
|
Tronix
Doomed
Joined: 18 Nov 2013 02:38 Posts: 662 Location: Москва
|
Потестил. На ACUMOS видюхе, которая работает. Выдает в AX=4F01, то есть работает. Плюс у меня же работает XT-IDE, а он имхо очень активно in ax,dx использует. Дело не в этом. Также протестировал недавно восстановленную ISA-8 видеокарту на чипе OTI-037C, такую: Она правда немножко глючная, но в текстовом режиме нормально на Поиск-2 работает. На роботроне так же не завелась. Итого работают: ISA-16 ACUMOS - безупречно, ISA-8 PVGA1-JK с багами в символах и аттрибутах. Остальные не работают никак.
|
28 Oct 2018 01:45 |
|
|
Tronix
Doomed
Joined: 18 Nov 2013 02:38 Posts: 662 Location: Москва
|
Набросал програмку, которая сохраняет BIOS и видео-память из B800 в файл. Запустил ее почти в слепую на ISA-8 PVGA1 (которая мусорит в атрибутах/символах). BIOS похож на биос здорового человека, потом сравню с программатором, но вроде бы все ок. А вот в считанной видео-памяти из B800h полная мешанина; в принципе, так же как есть и на экране: Сейчас попробуем писать что-то в видео-память напрямую. Байтово и словами. UPD: Хм... Если писать в видео-память побайтово, то оно работает. Писал примерно так: На экране вполне вменяемая картинка: Если писать словами (rep stosw), то на экране тот же треш, что и при загрузке. Не пишется словами. UPD2: На 8-битной OTI-037C - биос дампится хороший, в дампе видео-памяти FF D3 , после байтовой или словами записи так же FF D3. На экране ничего. UPD3: На 16-битной Trident - аналогично OTI-037C.
|
28 Oct 2018 02:24 |
|
|
Tronix
Doomed
Joined: 18 Nov 2013 02:38 Posts: 662 Location: Москва
|
Значит, наваял такой великий код: | | | | Code: mov dx,3a0h mov ax,55aah out dx,ax ; Тригер, лог анализатор начинает писать сигналы
mov ax,0b800h mov es,ax xor di,di mov cx,2000 mov ax,0734h ; Пишем словами начиная с B8000, записываем 0734h rep stosw
| | | | |
Вот что получилось: Вроде бы нормально все? На всякий случай прикладываю файл с логического анализатора. Посмотреть его можно в PulseView (готовый инсталлер для Windows тут https://sigrok.org/wiki/Windows )
|
28 Oct 2018 06:39 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 707 Location: WWW
|
Почему OSC такой странный ?
CLK вообще пропадает во время записи - это издержки анализатора ?
Ну и для сравнения стоит по этим же адресам записать то же самое, но побайтно, и сравнить картинки анализатора
|
28 Oct 2018 07:59 |
|
|
Tronix
Doomed
Joined: 18 Nov 2013 02:38 Posts: 662 Location: Москва
|
Издержки анализатора. У меня есть генератор 48MHz, по спаду его частоты граблю сигналы. Всего пишу 5 байт. Поэтому они никак не синхронизированы с OSC и CLK. код не для слабонервных | | | | Code: assign SRAM_Adr = (Ext_WR) ? wr_adr : rd_adr; assign SRAM_WR = (Ext_WR) ? 1'b0 : 1'b1; assign SRAM_Data = (Ext_WR) ? Data : 8'hZZ;
reg [3:0] State;
localparam [3:0] FIRST_BYTE = 0; localparam [3:0] SECOND_BYTE = 1; localparam [3:0] THIRD_BYTE = 2; localparam [3:0] FOURTH_BYTE = 3; localparam [3:0] FIFTH_BYTE = 4; localparam [3:0] SIXTH_BYTE = 5;
reg [31:0] DataSt;
always @(posedge Clk_32MHz) begin if (Res) begin wr_adr <= 0; State <= FIRST_BYTE; end else if (Begin_Capture) begin displayed_number <= wr_adr;
case(State) FIRST_BYTE: //0..7 - data bus begin State <= SECOND_BYTE; DataSt <= {OSC,Clk,2'b00,REFRESH,AEN,ALE,IOR,nRD,nWR,nMEMR,nMEMW,Adr[19:0]}; wr_adr <= wr_adr + 1'b1; Data = Dat; end SECOND_BYTE: //8..15 - Adress low begin wr_adr <= wr_adr + 1'b1; Data = DataSt[7:0]; State <= THIRD_BYTE; end THIRD_BYTE: //16..22 - Adress high begin wr_adr <= wr_adr + 1'b1; Data = DataSt[15:8]; State <= FOURTH_BYTE; end FOURTH_BYTE: //23..27 - Adress high //28 - mMEMW //29 - nMEMR //30 - nWR //31 - nRD begin wr_adr <= wr_adr + 1'b1; Data = DataSt[23:16]; State <= FIFTH_BYTE; end FIFTH_BYTE: //32 - IOR //33 - ALE //34 - AEN //35..38 - reserved //39 - OSC begin wr_adr <= wr_adr + 1'b1; Data = DataSt[31:24]; State <= FIRST_BYTE; end default: State <= FIRST_BYTE; endcase end
end | | | | |
Вот по-байтовая запись:
|
28 Oct 2018 08:24 |
|
|
Vic3Dexe
Doomed
Joined: 16 Dec 2014 11:58 Posts: 370 Location: Киев
|
Между падениями /MEMW в случае слова промежуток буквально один такт CLK. Есть подозрение, что этого мало, т.е. видяха не успевает прожевать предыдущий байт.
Блин, у меня и других-то идей нет. Если "байтовая" картинка корректна, значит все регистры VGA в норме, да и сама карта в норме. "Словная" картинка тоже выглядит корректно, следовательно дело в таймингах.
Пока хз, как это проверить или тем более исправить.
|
28 Oct 2018 14:33 |
|
|
Tronix
Doomed
Joined: 18 Nov 2013 02:38 Posts: 662 Location: Москва
|
А вот такая картинка записи словами получилась с Поиск-2: В глаза бросается почти человеческий CLK, в отличии от Robotron. Надо будет осциллографом вообще посмотреть CLK и OSC на Роботроне, но это не скоро. Или написать хотя-бы счетчик частоты на верилоге, чтобы узнать какая частота у CLK и OSC на роботроне. Ну или в самом крайнем случае посмотреть схему Так же шевелится при записи линия IOReady....
|
30 Oct 2018 10:20 |
|
|
newold86
Devil
Joined: 30 Nov 2013 11:08 Posts: 707 Location: WWW
|
Что-то я не понял - это имеется ввиду I/O CH READY ? Если да, то каким образом на предыдущих картинках он в 0 все время находится ???
|
30 Oct 2018 11:55 |
|
|
Tronix
Doomed
Joined: 18 Nov 2013 02:38 Posts: 662 Location: Москва
|
Да, оно. Я теперь тоже не понял. Ну, не на всех, а на картинке с побайтовой записью. Может я перепутал сигналы? Буду проверять ((
|
30 Oct 2018 12:00 |
|
|
Vic3Dexe
Doomed
Joined: 16 Dec 2014 11:58 Posts: 370 Location: Киев
|
Почему в 0? В 1, как и должно быть. Зеленое - это с Венеры, тьфу, "1". Красное - "0". И еще. На картинке с записью словом не увидел ALE.
А картинка на Поиске такая же, просто масштаб другой. Отличается IOCHRDY и ALE. Т.е. в случае с Поиском карта тормозит второй обмен, пока не прожует первый.
ps Хотя у следующего обмена ALE есть, вероятно, он просто не захватился...
|
30 Oct 2018 23:53 |
|
|
Who is online |
Users browsing this forum: No registered users and 28 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
|
|