Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Unsorted (http://zx-pk.ru/forumdisplay.php?f=13)
-   -   LENINGRAD-2010. Сборка, наладка, расширение. (http://zx-pk.ru/showthread.php?t=16312)

_Ratibor_ 21st September 2011 17:05

caro, у Вас есть схема "Магик-05" ?

caro 21st September 2011 17:08

Quote:

Originally Posted by _Ratibor_ (Post 417179)
caro, у Вас есть схема "Магик-05" ?
Если есть, киньте пожалуйста на ratib собака mail точка ru

Кинул.

_Ratibor_ 21st September 2011 17:17

Поймал, спасибо.

balu_dark 22nd September 2011 02:17

Саго - у магика кварц точно на 14Мhz или кратный какойто?

Что до ниже/выше - это зависит от точного количества машинных циклов(не путать к количеством тактов генератора) от момента прихода INT а как мы знаем - они могут варьироваться в зависимости от того как устроен комп - они могут тормозится и wait ом и clk ой.

P.S. был какойто тест который показывал количество не то циклов не то команд между прерываниями - вот его надо запустить на этих 3х тачках и измерить <del>длину писюна</del> скорость работы ленинграда с и без ваит и магика - буден ясен резалт и попросить запустить тест на спектрум+.

goodboy 23rd September 2011 01:11

1 Attachment(s)
вот вам две tap версии первого арканоида : ранняя (c опросом порта #FF ) и поздняя (без него).
проверяйте на своих самодельных реалах.

_Ratibor_ 23rd September 2011 13:52

Quote:

Originally Posted by zst (Post 416968)
Лучше иметь 224 такта, как в оригинале.

Померял сейчас сигналы осцилом:

KS
длина - 1.3 ms
период - 25 ms

SS
длина - 11 µs
период - 80 µs

INT
длина - 11 µs

zst 23rd September 2011 13:56

Quote:

Originally Posted by _Ratibor_ (Post 417706)
Померял сейчас сигналы осцилом:

KS
длина - 1.3 ms
период - 25 ms

Должно быть 20 мс
Quote:


SS
длина - 11 µs
период - 80 µs
Должно быть 64 мкс
Quote:

INT
длина - 11 µs
Должно быть
9.14 мкс для кварца 14 МГц

Но главное, чтобы было 224 такта Z80 в строке.
Телевизор то может и стерпит несоответствие, а вот программы - не все будут работать правильно.

_Ratibor_ 23rd September 2011 14:01

Quote:

Originally Posted by zst (Post 417710)
Должно быть 20 мс

Длина или период ?

Quote:

Originally Posted by zst (Post 417710)
Должно быть 64 мкс

Длина или период ?

Quote:

Originally Posted by zst (Post 417710)
Должно быть 9.14 мкс для кварца 14 МГц

На сколько я знаю должно быть 8 мкс не зависимо не от чего.

zst 23rd September 2011 14:07

Quote:

Originally Posted by _Ratibor_ (Post 417712)
Длина или период ?

По телевизионному стандарту период строчной развертки 64 мкс (частота 1/64мкс=15,625 кГц), а период кадровой 20 мс (частота 1/20 мс = 50 Гц).
У вашего Ленинграда частота вроде правильная (http://www.zx.pk.ru/showpost.php?p=416791&postcount=118).
Quote:

На сколько я знаю должно быть 8 мкс не зависимо не от чего.
Должно быть 32 такта Z80 = 32/3.5 МГц = 9.14 мкс.
Это заложено в вашей доработке на триггере ТМ2 и в теме про Harlequin об этом написано (http://www.zxdesign.info/interrupts.shtml ):
Quote:

A Z80 interrupt must not be held active for longer than is necessary as this may lead to the Z80 responding to it multiple times. It is documented somewhere that the ZX Spectrum holds the interrupt active for 32 T-states, which is long enough for all instructions to have time to respond to it, but is still long enough for it to be detected more than once.

The Z80 provides a mechanism for indicating acknowledgement of an interrupt, and I propose to use that to clear the interrupt so that we don't hold it active for longer than required, removing the chance of multiple detection. Sinclair probably chose to implement a 32 T-state interrupt period to avoid having to dedicate a ULA pin to the interrupt acknowledge.

_Ratibor_ 23rd September 2011 14:45

Quote:

Originally Posted by zst (Post 417713)
По телевизионному стандарту период строчной развертки 64 мкс (частота 1/64мкс=15,625 кГц), а период кадровой 20 мс (частота 1/20 мс = 50 Гц).
У вашего Ленинграда частота вроде правильная (http://www.zx.pk.ru/showpost.php?p=416791&postcount=118).

Сейчас спаял вашу доработку:
Quote:

Originally Posted by zst (Post 415440)

Чтобы настроить ровно 224 такта Z80 в строке (конденсатор 560 pF на 6-D14):
  • C выхода 6-D14 подать сигнал на вход R триггера TM2, а не на 11-D4.
  • На вход D триггера подать +5V.
  • На вход С триггера подать сигнал H2.
  • С выхода триггера подать на 11-D4.

Ничего не изменилось, период SS остался 80 мкс

zst 23rd September 2011 16:13

Quote:

Originally Posted by _Ratibor_ (Post 417727)
Сейчас спаял вашу доработку:

Ничего не изменилось, период SS остался 80 мкс

Плата - тот же самый Ленинград ? Частота строк 12.5 кГц ? Кварц 14 МГц ?

_Ratibor_ 23rd September 2011 20:25

Quote:

Originally Posted by zst (Post 417732)
Плата - тот же самый Ленинград ?

Да

Quote:

Originally Posted by zst (Post 417732)
Кварц 14 МГц ?

Да

Quote:

Originally Posted by zst (Post 417732)
Частота строк 12.5 кГц ?

http://s56.radikal.ru/i152/1109/c5/3f5f265c6f9ft.jpg

---------- Post added at 18:37 ---------- Previous post was at 17:28 ----------

Блин, еще бы не мешало иногда калибровку осцила проводить :)
Сейчас откалибровал, все встало на свои места:
период строчной развертки 64 мкс, а период кадровой 20 мс.

---------- Post added at 20:27 ---------- Previous post was at 18:37 ----------

Quote:

Originally Posted by goodboy (Post 417647)
вот вам две tap версии первого арканоида : ранняя (c опросом порта #FF ) и поздняя (без него).
проверяйте на своих самодельных реалах.

А в чем заключается работа порта FF в первой версии ?
Как это можно визуально определить ?
Просто я загрузил оба, но разницы не увидел.
Единственно - первая версия даже не загружается без RC цепочки соединяющей магнитофонный вход и выход.
Думал сперва плохо в WAV сконвертил, но потом припаял RC цепочку и игра запустилась.

---------- Post added at 21:25 ---------- Previous post was at 20:27 ----------

zst, можете нарисовать как в Ленинграде-1 идут сигналы /RAS, /CAS, H0 по отношению друг к другу ?
Типа как тут разрисовано.

zst 23rd September 2011 21:02

Quote:

Originally Posted by _Ratibor_ (Post 417735)
zst, можете нарисовать как в Ленинграде-1 идут сигналы /RAS, /CAS, H0 по отношению друг к другу ?
Типа как тут разрисовано.

Вот черновик от руки:
http://s60.radikal.ru/i167/1109/af/175fc73ceff3t.jpg

А вот аналогично по вашей ссылке (http://zx.pk.ru/showpost.php?p=415687&postcount=59)
http://i071.radikal.ru/1109/c5/05965942fdfet.jpg

_Ratibor_ 23rd September 2011 21:34

На верхней диаграмме и на желтом скорпионе - амплитуда /RAS, /CAS и H0 одинакова.
/CAS - это фактически инверсный H0.

Измеряю на своем Ленинграде-1 - сигнал /CAS в два раза по амплитуде длиннее чем H0 и /RAS.

/RAS
http://s40.radikal.ru/i090/1109/38/b6757546e572t.jpg

/CAS
http://s50.radikal.ru/i127/1109/c5/7c4c8aafc0cct.jpg

Я все это к чему.
При переделке в без вайтовую схему, надо отрезать родной /CAS и вместо него, также как и вместо /CLK подать инверсный H0

Что скажете ?

zst 23rd September 2011 22:39

Quote:

Originally Posted by _Ratibor_ (Post 417801)
На верхней диаграмме и на желтом скорпионе - амплитуда /RAS, /CAS и H0 одинакова.
/CAS - это фактически инверсный H0.

Измеряю на своем Ленинграде-1 - сигнал /CAS в два раза по амплитуде длиннее чем H0 и /RAS.

Я все это к чему.
При переделке в без вайтовую схему, надо отрезать родной /CAS и вместо него, также как и вместо /CLK подать инверсный H0

Что скажете ?


В Ленинграде во время бордера (при /BORDER=0) /CAS = /WRBUF.
В принципе, можно сделать, чтобы во время бордера тоже был /CAS. То есть подать /H0.
Вместо /RAS на CLK Z80 надо подать сигнал с выхода элемента 2-И, на который подать сигналы /RAS и /WRBUF.

Тогда появятся лишние элементы, которые можно использовать в доработках:
Цифровой INT: освободится D1 (12-13), а также С2, R3 и диод D1.
Убираем WAIT: освободится D1 (8-9) - можно использовать для нового /CAS и освободится D9 (1-6) - можно использовать для цифрового INT.
Упрощаем /CAS: освободится D13 (11-13) - можно использовать для нового CLK Z80.

_Ratibor_ 23rd September 2011 22:57

После того как отрезал wait заработали все тесты - ulatest3, btime и stime

Вот ulatest3, это я как понимаю работа FF
http://i003.radikal.ru/1109/6f/41f45b46679et.jpg

Что выдает он у Harlequin, можно глянуть тут.

zst 23rd September 2011 23:13

Quote:

Originally Posted by _Ratibor_ (Post 417832)
После того как отрезал wait заработали все тесты - ulatest3, btime и stime

На на CLK Z80 что подается ?
Quote:

Вот ulatest3, это я как понимаю работа FF
Что выдает он у Harlequin, можно глянуть тут.
Некоторые столбики совпадают. Значит у нас порт #FF сделан не совсем так как в оригинале. Но уже хорошо.

_Ratibor_ 23rd September 2011 23:18

Quote:

Originally Posted by zst (Post 417838)
На на CLK Z80 что подается ?

Сейчас сделал как вы и писали:

Quote:

Originally Posted by zst (Post 414859)
доработка формирователя сигнала WAIT:
  • Разрезать дорожку, идущую на 24 вывод Z80 от 5 вывода D9 .
  • 24 вывод Z80 (WAIT) соединить через резистор 10 кОм c +5V.
  • Разрезать дорожку, идущую на 6 вывод Z80 и резистор подтяжки 470 Ом с 9 вывода D2 (сигнал /RAS).
  • Подать на 6 вывод Z80 (CLK) и резистор подтяжки 470 Ом сигнал H0 через инвертор.


zst 23rd September 2011 23:25

Quote:

Originally Posted by _Ratibor_ (Post 417840)
Сейчас сделал как вы и писали:

То есть, просто /H0, как у меня ? А почему раньше тоже самое не работало ? (http://www.zx.pk.ru/showpost.php?p=415623&postcount=56)

_Ratibor_ 23rd September 2011 23:29

Quote:

Originally Posted by zst (Post 417843)
То есть, просто /H0, как у меня ? А почему раньше тоже самое не работало ? (http://www.zx.pk.ru/showpost.php?p=415623&postcount=56)

А фиг его знает :)
После того разве что второй резюк на кварц поставил, больше вроде ничего не изменял. Ну и вместо кондера на строчную, поставил тм2. Может изза этого резюка, т.к. сигнал стал более ровным.

Quote:

Originally Posted by zst (Post 417838)
Некоторые столбики совпадают. Значит у нас порт #FF сделан не совсем так как в оригинале. Но уже хорошо.

http://www.zxdesign.info/images/scre...oContMatch.jpg

У нас совпадает только один столбик, 4 слева.
И судя по адресу 14462 задержка на тм2 не нужна, т.к. там уже 5F, а у нас еще 5E.
И может ну ее нафиг эту ир23, а поставить АП5 ?
Правда для доработки она не очень удобная :(

zst 24th September 2011 00:21

Quote:

Originally Posted by _Ratibor_ (Post 415450)
Если убираем WAIT, то тогда высвобождается один элемент ЛН1 и один элемент ТМ2, его и можно задействовать под настройку 224 тактов, а проблемму с символом (с) можно решить заменой ир9 на 2 ир16.

А в KAY-1024 и ZXM-PHOENIX вместо двух ИР16 поставили одну ИР10.

---------- Post added at 00:21 ---------- Previous post was at 00:09 ----------

У нас освободилось несколько инверторов. Нельзя ли сигнал /BK сформировать не на триггере D8, а на младшем разряде счетчика D7?

Тогда освободится еще один триггер ТМ2:
Вместо с 8-D8 на 1-D7 подать сигнал с выхода 8-D12.
Вместо с 8-D8 на 10-D13 подать сигнал с 3-D7.
Вместо с 9-D8 сигнал /BK подать с 3-D7 через инвертор.
Вместо с 11-D7 сигнал FLASH брать с 12-D7.

_Ratibor_ 24th September 2011 00:40

Quote:

Originally Posted by zst (Post 417863)
Нельзя ли сигнал /BK сформировать не на триггере D8, а на младшем разряде счетчика D7?

Ну и для чего это ?
Все равно одну тм2 добавить придется:
1 элемент на привязку к черному, 1 на инт.
А освободившийся элемент от wait под 224 такта,
а ир9 заменить на ир10.

zst 24th September 2011 00:42

Если на CLK Z80 подать /H0, то инвертор D34 (3-4) тоже освобождается.

---------- Post added at 00:42 ---------- Previous post was at 00:40 ----------

Quote:

Originally Posted by _Ratibor_ (Post 417881)
Ну и для чего это ?
Все равно одну тм2 добавить придется:
1 элемент на привязку к черному, 1 на инт.
А освободившийся элемент от wait под 224 такта,
а ир9 заменить на ир10.

А на счетчики D5-D6 не потребуется ставить еще один триггер, чтобы строк было четко 312 ? На некоторых схемах ставят конденсатор 1 nF на 5 вход D5.

Есть ли программа, чтобы убедиться, сколько строк/тактов в кадре ?

_Ratibor_ 24th September 2011 00:46

Quote:

Originally Posted by zst (Post 417882)
А на счетчики D5-D6 не потребуется ставить еще один триггер, чтобы строк было четко 312 ? На некоторых схемах ставят конденсатор 1 nF на 5 вход D5.

Вы об этом не писали :)

Quote:

Originally Posted by zst (Post 417821)
Вместо /RAS на CLK Z80 надо подать сигнал с выхода элемента 2-И, на который подать сигналы /RAS и /WRBUF.

Это ли1 ?

zst 24th September 2011 00:50

Quote:

Originally Posted by _Ratibor_ (Post 417884)
Вы об этом не писали :)

У меня нет на плате, но на схеме KAY-128 почему-то нарисован.
Quote:


Это ли1 ?
Да, но раз на CLK Z80 можно подать /H0, то этот элемент свободный.

_Ratibor_ 24th September 2011 00:55

Еще бы не мешало отцентровать экран(сдвинуть вправо).

http://www.zxdesign.info/images/hvidtime.png


Вроде это проверить можно программами btime и stime.

zst 24th September 2011 00:58

Quote:

Originally Posted by _Ratibor_ (Post 417887)
Еще бы не мешало отцентровать экран(сдвинуть вправо).

На сколько точек ? Строчный синхроимпульc укорочен до 4.57 мкс ? В Ленинграде он 9.14 мкс.

Чтобы укоротить надо для формирования синхросмеси на 13-D11 подать не /SS, а сигнал с выхода элемента ЛЛ1. На один вход ЛЛ1 подать /SS, на другой - H5. Тогда экран возможно сдвинется вправо.

На 15-D36 подать сигнал гашения с выхода элемента ЛА3. На один вход ЛА3 подать /KS, на другой - /SS.
Получается гашение можно сделать без триггера.

_Ratibor_ 24th September 2011 01:10

Quote:

Originally Posted by zst (Post 417888)
На сколько точек ?

На знакоместа как минимум 3, может два, т.е. 16-24 точки. Завтра экран сфотографирую.

Quote:

Originally Posted by zst (Post 417888)
Строчный синхроимпульc укорочен до 4.5 мкс ? В Ленинграде он 9 мкс.

Не укорачивал, завтра попробую.

_Ratibor_ 24th September 2011 14:01

В общем перепаял я порт FF в вариант без тм2, разницы никакой.
Также задержка на один символ, т.к. по адресу 14462 там должно быть уже 5F, а у нас еще 5E. В общем тм2 вообще ничего не задерживала.
Похоже действительно надо менять ир23 на ап5.

---------- Post added at 12:12 ---------- Previous post was at 11:59 ----------

Quote:

Originally Posted by zst (Post 417888)
Чтобы укоротить надо для формирования синхросмеси на 13-D11 подать не /SS, а сигнал с выхода элемента ЛЛ1. На один вход ЛЛ1 подать /SS, на другой - H5. Тогда экран возможно сдвинется вправо.

После этой переделки экран встал фактически на нужное место.

---------- Post added at 14:06 ---------- Previous post was at 12:12 ----------

В общем поигрался я с FF :)
Для управления похоже надо всего два сигнала - BORDER и H3
Ну и похоже АП5 вместо ир23.

http://www.zxdesign.info/images/scre...oContMatch.jpg

Судя по этому скрину идут 4 байта данных (00 40 01 41), потом порт закрывается и идут 4 байта FF и так далее. Это и обеспечит Н3, вернее /H3. Ну и к нему намешать BORDER. Больше там ничего не нужно.

---------- Post added at 15:01 ---------- Previous post was at 14:06 ----------

Сейчас попробовал следующее:
На 1 ногу ир23 подал /H3,
а на 11 ногу ир23 подал /H1.
Вот что получилось:

http://s40.radikal.ru/i087/1109/ab/88b26ac341c5t.jpg

Как видно совпадают почти все столбцы(6 из 8), за исключением 2-х(3 и 6 слева).
В первой и последних двух строках можно не обращать внимания на символы FB, они отсекаются легко с помощью BORDER.

Как видно последовательность 40 40 01 01 совпадает с циклом чтения из памяти по такту H2.
Особенно хорошо это видно по предыдущему фото:

http://i003.radikal.ru/1109/6f/41f45b46679et.jpg

Похоже надо менять(сдвигать) цикл чтения из памяти, а порт FF на /H3 и /H1 работает правильно.

balu_dark 24th September 2011 18:00

С портом атрибутов там засада - арлекинец пишет что атрибут в реале приходит за 8 тактов до начала скрина - он это както особенно учитывал. Надо почитать внимательно чего он сделал.

ПыСы - раз уж такой мгтф пошел - по итогу все равно сделаете не Ленинград а чтото другое :) может потом после всех наворотов - сделать таки совсем другую плату? Чтобы не идти опять по пройденному пути и не навешивать на плату километры мгтф. Получив при этом вроде и Ленинград но с полноценными времянками.

zst 24th September 2011 23:48

Quote:

Originally Posted by balu_dark (Post 417971)
С портом атрибутов там засада - арлекинец пишет что атрибут в реале приходит за 8 тактов до начала скрина - он это както особенно учитывал. Надо почитать внимательно чего он сделал.

ПыСы - раз уж такой мгтф пошел - по итогу все равно сделаете не Ленинград а чтото другое :) может потом после всех наворотов - сделать таки совсем другую плату? Чтобы не идти опять по пройденному пути и не навешивать на плату километры мгтф. Получив при этом вроде и Ленинград но с полноценными времянками.

Все это уже сделано в KAY-2010. Если делать то модель 48К. Желательно порт #FF допилить.

_Ratibor_ 24th September 2011 23:54

Quote:

Originally Posted by zst (Post 418036)
Желательно порт #FF допилить.

И куда теперь дальше пилить ?

zst 25th September 2011 00:01

Quote:

Originally Posted by _Ratibor_ (Post 418039)
И куда теперь дальше пилить ?

Схему торможения Z80 для медленной памяти (http://www.zxdesign.info/docs/waitGen-1.17.pdf)
Пока не придумал, как прикрутить к Ленинграду. Там учитывается еще обращение к портам с адресами экрана в разных комбинациях с портом #FF.
Тогда Aquaplan заработает. Эффект снега не обязателен.

balu_dark 25th September 2011 02:45

Quote:

Originally Posted by zst (Post 418036)
Все это уже сделано в KAY-2010. Если делать то модель 48К. Желательно порт #FF допилить.

а в нем - точно не нужно паять мгтфом ничего из доработок(или улучшений)?

zst 26th September 2011 11:43

В KAY-2010 много чего есть:
  • Z80 на нормальной скорости и TURBO
  • Звук BEEPER+YAMAHA
  • Память 1 Мб микросхемами или симом
  • 4 слота ZX-BUS
  • Контроллер PS/2 клавиатуры без WAIT
  • KEMPSTON, SINCLAIR1 и SINCLAIR2 джойстики
  • Цифровой INT
  • Порт #FF
  • Четко 312 строк в кадре
  • Нормальные синхро- и гасящие импульсы в строке.

МГТФ конечно есть, например, регистр порта #FF стоит вторым этажом и его подпаивают двумя проводами. (http://www.zx.pk.ru/showpost.php?p=339441&postcount=96) Но есть отверстия в плате, чтобы эти провода пропустить с нижней стороны. Еще есть несколько мелких доработок проводом.

nick17 27th September 2011 16:01

Добрый день!!! Собираю помаленьку ленинград по схеме отсюда http://sblive.narod.ru/ZX-Spectrum/L...ningrad48k.htm
Вопрос такой... Есть память с организацией 512К*8(PROM), подойдет ли она мне, если старшие разряды адреса посадить на землю. Где взять прошивку Биоса, его прошивать с начального адреса в ПЗУ?
Для чего на схеме диоды D2, D3(возле D31) и D4.

_Ratibor_ 29th September 2011 23:00

Quote:

Originally Posted by zst (Post 418043)
Схему торможения Z80 для медленной памяти (http://www.zxdesign.info/docs/waitGen-1.17.pdf)
Пока не придумал, как прикрутить к Ленинграду. Там учитывается еще обращение к портам с адресами экрана в разных комбинациях с портом #FF.
Тогда Aquaplan заработает. Эффект снега не обязателен.

Как дела продвигаются ?

zst 30th September 2011 12:51

Quote:

Originally Posted by _Ratibor_ (Post 419493)
Как дела продвигаются ?

Может попробовать так:

http://s06.radikal.ru/i179/1109/eb/789ef930390bt.jpg

_Ratibor_ 30th September 2011 13:15

Это 3 элемента ла3 и 1 элемент ле1 ?

ZXMAK 5th October 2011 04:23

Quote:

Originally Posted by zst (Post 414859)
Но в игре "AQUAPLANE" горизонт на место пока не встал. Более точное положение, видимо зависит от порта #FF. Надо дальше читать про компьютер Harlequin (http://www.zxdesign.info/intAck.shtml).

и не станет, в оригинальном спектруме добавляются WAIT'ы, длительность зависит от того в какой момент времени происходит обращение к памяти, причем WAIT'ы добавляются при обращении к странице где находится видеопамять.
Можно ПЗУ на 16 кил поставить, на адрес подавать номер такта, оставшимися линиями от номера такта коммутировать шину данных ПЗУ на вывод процессора WAIT. В ПЗУ залить таблицу с задержками оригинального спека :)

например на такте 14336 идет происходит задержка на 6 тактов, на такте 14337 на 5 тактов и т.д. При обращении к портам тоже такая задержка (в ULA нет проверки что это порт, а не память).

Не подскажешь по какой схеме добавляются WAIT'ы в оригинальном Ленинград-1?

---------- Post added at 02:23 ---------- Previous post was at 02:13 ----------

Quote:

Originally Posted by zst (Post 414859)
Положение сигнала INT в Ленинграде не совсем там относительно кадровой развертки. Это приводит к сильному не совпаданию рисунка на BORDER-е в играх для оригинального Спектрума. Например, горизонт в игре "AQUAPLANE" совсем не совпадает:

http://s012.radikal.ru/i319/1109/8e/517f02e834b2t.jpg

за картинку как выглядит программа на оригинальном ленинграде-1 без модов - огромное спасибо! :v2_dizzy_vodka3:


All times are GMT +4. The time now is 16:21.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.