Scorpion ZS 256 - лечим глюки
|
|
KOE | Дата: Вторник, 2007-09-25, 22:48:40 | Сообщение # 1 |
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 2318
Статус: Offline
| Итак, ниже выложен VHDL-исходник новой прошивки "турбо" для зеленого скорпиона (by KOE). Исправлены следующие ошибки зоновской прошивки: 1. Формирование сигнала WAIT в нетурбе. Теперь он формируется как ему и положено, в циклах M1 в зависимости от состояния H1. У Зонова были глюки. 2. Формирование сигнала WAIT в турбе. Алгоритм формирования WAIT был сделан таким образом, чтобы диаграмма работы с памятью в турбе на 100% совпадала с работой в нетурбе. Только так можно добиться безглючного функционирования компа. В Зоновской прошивке были серьезные ошибки и его прошивка теоретически работать не могла. Я уж и так и эдак пытался согласовать ее с диаграммами работы Z80, но не получилось. Функционирование же ее на практике можно объяснить только тем, что память может схватывать и выдавать данные быстрее, чем за 0.5 такта 3.5 МГц. Отсюда и глючность скорпионов и их жуткаая критичность к типу ИМС памяти. Теперь все это отсутствует. На моем скорпе с этой прошивкой без единого глюка работают советские ОКР565РУ7Д2. Вместо p.s.: К сожалению, контроллер дисковода не всегда безглючно работает в турбе. Обезглючить его просто удлинением WAIT'a при обращении к портам не всегда удается. В идеале, турбу в TR-DOSe надо ВЫКЛЮЧАТЬ, как это сделано в Pentagon-1024sl 2.2. Сделать это в рамках ПЛИС, вставляющейся в переходную колодку вместо оригинальной ПЛИС скорпиона, невозможно. А хотелось сделать так, чтобы для использования моей прошивки не нужно было делать аппаратных изменений в компьютере. Поэтому был сделан 'финт ушами' и состояния компьютера (турбо/нетурбо) были поменяны местами. Т.е. комп стартует теперь с отключенной турбой и с ней же вываливается в TR-DOS, а юзер сам включит турбу кнопкой, когда ему это будет надо. Единственное неудобство в том, что при управлении турбой через теневик надо помнить, что на самом деле все наоборот. Хотя я теневиком еще ни разу не пользовался. Следует заметить, что это минимальная расплата за кривую зоновскую схемотехнику.
Мы рождены, чтоб сказку сделать былью "Кто не обломался, тем еще предстоит"
Сообщение отредактировал KOE - Вторник, 2007-09-25, 23:41:25 |
|
| |
lvd | Дата: Среда, 2007-09-26, 10:33:16 | Сообщение # 2 |
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 2528
Статус: Offline
| А давно ли вы, сударь, вхдл выучили, если не секрет?
Многого нет здесь: http://lvd.nedopc.com
|
|
| |
KOE | Дата: Среда, 2007-09-26, 20:21:01 | Сообщение # 3 |
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 2318
Статус: Offline
| С пол-года, как уже. Просто на работе занимаюсь теперь дизайном fpga, а сложные и громоздкие вещи на AHDL писать неудобно.
Мы рождены, чтоб сказку сделать былью "Кто не обломался, тем еще предстоит"
|
|
| |
fk0 | Дата: Четверг, 2007-09-27, 01:41:44 | Сообщение # 4 |
Активист
Группа: Человеки
Сообщений: 178
Статус: Offline
| Как мне выучить vhdl?
[САМОЗАБАНЕН]
|
|
| |
KOE | Дата: Четверг, 2007-09-27, 01:52:39 | Сообщение # 5 |
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 2318
Статус: Offline
| Quote (fk0) Как мне выучить vhdl? Я использовал, в основном, книгу Стешенко "ПЛИС фирмы Altera. Элементная база, система проектирования и языки описания аппаратуры", САПР Quartus и тренировочную плату, на которой стояла EP2C5, контроллер ARM LPC2149 и SRAM K6R4008. Не ставил цель изучить VHDL полностью, сначала изучил минимум, необходимый для начала работы, потом уже по ходу при возникновении вопросов обращался к книге и к знающим людям на работе.
Мы рождены, чтоб сказку сделать былью "Кто не обломался, тем еще предстоит"
|
|
| |
deathsoft | Дата: Суббота, 2007-10-27, 21:39:00 | Сообщение # 6 |
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 1587
Статус: Offline
| Quote (fk0) Как мне выучить vhdl? Погуглить на предмет vhdl cook book - в данной книжке в доступной форме все объяснено на примерах. В качестве законченного примера разработан простенький RISC процессор.
|
|
| |
deathsoft | Дата: Суббота, 2007-10-27, 21:40:50 | Сообщение # 7 |
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 1587
Статус: Offline
| Quote (KOE) Т.е. комп стартует теперь с отключенной турбой и с ней же вываливается в TR-DOS Ну и в чем плюс такой доработки? В скорпе был специально пропатченый TR-DOS который прекрасно работал в турбе, а ты из скорпа KAY сделал, в котором турба в досе отключалась. Более того, в моем скорпе, (плата SC14 желтая схема) вообще нет ни кнопки ни индикатора турбы, турба включается/выключается только через монитор. Описать турбу на vhdl - это конечно - просто подвиг (вопрос зачем только?, ПЛМ вхдл не поддерживают). В оригинальной турбе было всего с десяток простейших булевых функций написаны на abel (понимается всеми ПЛМ), ну на vhdl их можно было переписать 1 в 1 (те же 10 строк). Исправление временной диаграмы - это конечно хорошо, но думаю можно было сделать и в рамках ПЛМ.
Сообщение отредактировал deathsoft - Суббота, 2007-10-27, 21:45:26 |
|
| |
KOE | Дата: Воскресенье, 2007-10-28, 17:11:41 | Сообщение # 8 |
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 2318
Статус: Offline
| Quote (deathsoft) Ну и в чем плюс такой доработки? В том, что она рботет на любом зеленом скорпионе и сразу, и без настройки, и незвисимо от того, кто этот скорп собирал, незвисимо от марки используемых микросхем ОЗУ, независимо от времени суток, температуры, влажности, времени года и фазы луны. Quote (deathsoft) В скорпе был специально пропатченый TR-DOS который прекрасно работал в турбе, а ты из скорпа KAY сделал, в котором турба в досе отключалась. В моем экземпляре TR-DOS в турбе не работает. Ты думаешь, что если бы родная прошивка у меня без проблем и сразу заработала, я бы стал что-то делать? Изначально я взял родную Зоновскую прошивку. Прошил. Нифига не работает. Начал разбираться, в чем дело, волосы дыбом встали. Я человек жутко ленивый, если бы не было крайней необходимости, я никогда бы не стал что-то переделывать. Quote (deathsoft) ПЛМ вхдл не поддерживают Ну и в зад их. Quote (deathsoft) vhdl их можно было переписать 1 в 1 (те же 10 строк) Если бы еще эти 10 строк нормально работали... Quote (deathsoft) Исправление временной диаграмы - это конечно хорошо, но думаю можно было сделать и в рамках ПЛМ ПЛМ в Москве стоит дороже, чем простые ПЛИС. Зачем я буду извращаться н abel-е, чтобы потом еще и переплачивать за ПЛМ?
Мы рождены, чтоб сказку сделать былью "Кто не обломался, тем еще предстоит"
Сообщение отредактировал KOE - Воскресенье, 2007-10-28, 17:17:33 |
|
| |
deathsoft | Дата: Понедельник, 2007-10-29, 23:00:30 | Сообщение # 9 |
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 1587
Статус: Offline
| Quote (KOE) В моем экземпляре TR-DOS в турбе не работает. Не безизвестный Mikka A собрал штук 10 зеленых скорпов, на платах полученных им в фирме скорпион, и не заработала всего 1 плата, во всех остальных TR-DOS прекрасно работает в турбе. Другое дело - что режим турбо может быть реализован криво. Но если уж и дорабатывать, то сделать так, чтобы в доработаной турбе TR-DOS работал в турбо режиме - как в оригинале, а не в заторможеном режиме как на KAY-1024.
|
|
| |
deathsoft | Дата: Понедельник, 2007-10-29, 23:05:18 | Сообщение # 10 |
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 1587
Статус: Offline
| Quote (KOE) В моем экземпляре TR-DOS в турбе не работает. А прошивка то какая? От проф ПЗУ? Если 2.95 - то она в турбе вроде и не работала, а если от проф пзу - то работала нормально, я ее вообще во флэшку винбондовскую прошил, вместо пзу, хотя у меня вообще желтый скорпион, в котором int сделан на RC-цепочке и еще куча RC-цепочек для подгона времянок. Глюков с турбой на моем скорпе никогда не было.
|
|
| |
fk0 | Дата: Вторник, 2007-10-30, 02:15:37 | Сообщение # 11 |
Активист
Группа: Человеки
Сообщений: 178
Статус: Offline
| Quote (deathsoft) Погуглить на предмет vhdl cook book - в данной книжке в доступной форме все объяснено на примерах. Так, хорошо. С туториалом более менее понятно. На чём примеры запускать проще? Покупать таки evaluation board альтеры?
[САМОЗАБАНЕН]
|
|
| |
KOE | Дата: Вторник, 2007-10-30, 18:41:37 | Сообщение # 12 |
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 2318
Статус: Offline
| Quote (deathsoft) А прошивка то какая? От проф ПЗУ? У меня никогда не было профПЗУ, все прошивки я брал с говнофорума. Quote (deathsoft) Но если уж и дорабатывать, то сделать так, чтобы в доработаной турбе TR-DOS работал в турбо режиме Зачем? Есть обстоятельства непреодолимой силы, заставляющие делать именно так?
Мы рождены, чтоб сказку сделать былью "Кто не обломался, тем еще предстоит"
|
|
| |
deathsoft | Дата: Вторник, 2007-10-30, 21:18:49 | Сообщение # 13 |
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 1587
Статус: Offline
| Quote (KOE) Зачем? Есть обстоятельства непреодолимой силы, заставляющие делать именно так? Нет конечно, можно просто турбу отрубить - и все, глюков и не будет Турба делалась в основном для нужд проф ПЗУ, для встроеного форт анализатора и для быстрой компрессии декомпрессии образов памяти в меню save.../load... в мониторе
|
|
| |
deathsoft | Дата: Вторник, 2007-10-30, 21:29:15 | Сообщение # 14 |
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 1587
Статус: Offline
| Quote (KOE) У меня никогда не было профПЗУ, все прошивки я брал с говнофорума. Прошивка вот эта (версия 4.01) http://www.zxspectrum.it/ROM/PROFROM.ROM, по идее на говнофоруме она тоже была. Брать из жтой прошивки нужно первые 256 или 128 кбайт, в зависимости от того какой у тебя объем микрухи ПЗУ, естественно нужен диспетчер профПЗУ на альтере или на ПЛМ. На счет зеленых скорпов без проф ПЗУ я вообще хз (были ли такие).
|
|
| |
KOE | Дата: Среда, 2007-10-31, 09:29:43 | Сообщение # 15 |
Retry, Abort, Ignore?
Группа: Человеки
Сообщений: 2318
Статус: Offline
| Quote (deathsoft) счет зеленых скорпов без проф ПЗУ я вообще хз (были ли такие). Ну вот у меня есть один. Quote (deathsoft) Турба делалась в основном для нужд проф ПЗУ, для встроеного форт анализатора и для быстрой компрессии декомпрессии образов памяти в меню save.../load... в мониторе Если надо, чтогбы турба была как в оригинале, то нужно сделать так: process (CLK_7MHZ) begin if (CLK_7MHZ'event and CLK_7MHZ = '1') then if (H1 = '1' and startwait = '0') then -->> TRB <= not(TRB_IN); <<--- end if;
Мы рождены, чтоб сказку сделать былью "Кто не обломался, тем еще предстоит"
|
|
| |
|
|