CXEMATEKA.RU, © 2016 | Sign Up! | По-русски

ZX Spectrum «Ленинград 48к» - сборка, наладка, увеличение памяти, доработки, схемы, видео

Name: Константин Айги (CXEMATEKA.RU)


«То, что не удаётся запрограммировать на ассемблере, приходится паять» (http://bash.im/quote/398169)

Когда-то «ZX Spectrum» стал одним из моих первых персональных компьютеров. На нём я постигал азы программирования – от бейсика до ассемблера. И тут уместно будет вспомнить народную мудрость: «То, что не удаётся запрограммировать на ассемблере, приходится паять». Поэтому параллельно я подробно изучал схематехнику компьютера «ZX Spectrum». И так, постепенно, хобби переросло во вполне профессиональную деятельность в составе группы спектрумистов «FFC Computers». Я занимался тогда русификацией игр, дискетированием «ленточных» программ, ремонтом и доработкой Спектрумов (1995-1997 гг.)

За три года профессиональной деятельности в этой сфере через мои руки прошло огромное количество клонов Спектрума. Приносили в ремонт и другие компьютеры, но всё же Спектрумов было подавляющее большинство. И даже однажды мне довелось подключать отечественный контроллер дисковода к фирменному Спектруму 128k (тогда это была большая редкость).

С тех пор у меня сохранилось огромное количество документации к различным клонам Спектрума, сопутствующим устройствам, и к другой компьютерной технике распространенной в то время. Ну и кое-какое железо экзотическое сохранилось )

Начиная с этой публикации, постепенно буду делиться накопленной информацией. Думаю, многое будет полезно поклонникам Спектрума, да и не только )

«Как сделать компьютер? | Building ZX Spectrum 128k clone + Beta Disk Interface + AY-3-8910 (YM2149F)»

Как-то нашел у себя сразу несколько оригинальных плат популярнейшего клона Спектрума – «Ленинград 48k». И тогда я решил непременно собрать эту систему с полным апгрейдом до версии 128k с контроллером дисковода и, разумеется, музыкальным сопроцессором. Весь этот процесс я заснял на видео (смотрите выше) с подробными комментариями. Ниже привожу схемы, по которым работал и подробный план апгрейда.

Принципиальная схема компьютера «Ленинград 48k»

Вариант 1:

Источник: http://sblive.narod.ru/

Вариант 2:

Источник: http://zxbyte.ru/

Вариант 3:

Источник: http://micronc.ru/

Монтажная схема компьютера «Ленинград 48k»

Монтажная схема:

Источник: http://sblive.narod.ru/

Схема на просвет адаптированная для печати:

Источник: http://sblive.narod.ru/

Увеличение памяти компьютера «Ленинград 48k» до 128k

Схема увеличения памяти и коррекции дешифрации портов ввода-вывода
для импортной памяти 41256 DRAM, регенерация в 256 циклов:

Схема увеличения памяти и коррекции дешифрации портов ввода-вывода
для отечественной памяти 565РУ7, регенерация в 512 циклов:

Схема увеличения памяти и коррекции дешифрации портов ввода-вывода
при использовании двух линеек памяти 565РУ5:

Для всех доработок используем 7 дополнительных микросхем:

eD1 - К555(1533)ТМ9 (устанавливается поверх D31)
eD2 - К555(1533)КП11 (устанавливается поверх D30)
eD3 - К555(1533)ЛЕ1 (устанавливается поверх D2)
eD4 - К555(1533)ЛА3 (устанавливается поверх D40)
eD5 - К555(1533)ЛЛ1 (устанавливается поверх D34)
eD6 - К555(1533)ЛИ1 (устанавливается поверх D8)
eD7 - К555(1533)ЛЛ1 (устанавливается поверх D13)

План соединений при апгрейде памяти (41256 DRAM, регенерация в 256 циклов):
01. eD1-1 -> D20-26 (RESET)
02. eD1-2 -> eD2-2
03. eD1-5 -> eD2-11
04. eD1-7 -> eD2-14
05. eD1-15 -> eD3-8
06. eD1-9 -> eD3-10
07. eD1-3 -> D32-12 (D0)
08. eD1-4 -> D32-15 (D1)
09. eD1-6 -> D32-16 (D2)
10. eD1-11 -> D32-19 (D3)
11. eD1-13 -> D32-2 (D4)
12. eD1-14 -> D32-5 (D5)
13. eD1-10 -> D17-13 (2-й экран) – отрезать от земли
14. eD1-12 -> eD7-2 (Выбор ПЗУ 128k)
15. eD7-1 -> D1-10 -> eD7-10 (Выбор TR-DOS инвертированный)
16. D1-11 -> через 10к к +5B
17. D1-11 -> D29-1 (отрезать от +5B)
18. eD7-3 -> D29-27 (отрезать от +5B)
19. eD2-3 -> eD2-13
20. eD2-13 -> eD4-4 -> D10-11 (A14)
21. eD2-10 -> eD4-5 -> eD3-3 -> D10-12 (A15)
22. eD2-15 -> D33-8 (GND)
23. eD2-1 -> eD4-6
24. eD2-4 -> D16-10 (отрезать от A14)
25. eD2-9 -> D16-13 (отрезать от A15)
26. eD2-12 -> eD5-12
27. eD3-1 -> eD4-1
28. eD3-2 -> D41-9 (A1)
29. eD3-4 -> eD4-2
30. eD3-5 -> D14-12 (WR)
31. eD3-6 -> D14-13 (OUTIORQ)
32. eD3-9 -> eD4-3
33. eD5-13 -> D3-2 (H1)
34. eD5-11 -> D21-1...D28-1 (41256 DRAM)
35. eD5-10 -> D10-13
36. eD5-9 -> D9-8 (WE)
37. eD5-8 -> D21-3...D28-3 (41256 DRAM) - отрезать от D9-8

Для соединений я использовал провод МГТФ 0.12. Термостойкая оплетка сохраняет провода в целости при плотном монтаже, а небольшое сечение провода позволяет легко перекидывать соединения со стороны пайки на сторону монтажа деталей через любые свободные отверстия на печатной плате, как показано на фото:

Другие доработки компьютера «Ленинград 48k»

Схема доработок:

1. Стабилизация тактового генератора
2. Нормализация строчной развертки (для кварца частотой 14000 КГц)
3. Стабилизация кадровой развертки
4. Корректировка прорисовки линий (дуги, окружности и т.п.)
5. Установка ПЗУ 27C512
6. Доработка сигнала INT

Схема подключения контроллера XT-клавиатуры Profi:

Схема «читалки» с магнитофона на К554СА3:

Источник: http://service4u.narod.ru/

Этапы сборки, немного фоток

Оригинальная плата «Ленинград 48k» 1988:

Оригинальная плата «Ленинград 48k» 1988

«Ленинград 48k» в сборе:

«Ленинград 48k» в сборе:

«Ленинград 48k» с контроллером XT-клавиатуры Profi:

«Ленинград 48k» с контроллером XT-клавиатуры Profi

«Ленинград 128k» в сборе:

«Ленинград 128k» в сборе

«Ленинград 128k» с контроллером дисковода и музыкальным сопроцессором:

«Ленинград 128k» с контроллером дисковода и музыкальным сопроцессором

«Ленинград 128k» с контроллером дисковода, музыкальным сопроцессором и дисководами:

«Ленинград 128k» с контроллером дисковода, музыкальным сопроцессором и дисководами

Кстати, недавно копаясь в ворохе старого железа и документации, нашел совсем уж экзотическую вещь: настоящий ценник, видимо где-то середины 90-х:

Да, да, контроллер тогда стоил 75 тысяч рублей )) И обратная сторона ценника порадовала не меньше – выяснилось, что он нарисован на куске перфокарты!!! ;)

Да... В этом есть определенный философский подтекст: ценник на контроллер носителя информации нового поколения нарисован на обрывке носителя информации старого поколения... )

Полезные файлы:

  1. Имя файла: DIZZY_5r_48k.zip (109K)
    MD5: e55b3dd84cba8895ebcce6b4efbe5607

    Игра «DIZZY 5». Русифицированная версия игры,
    адаптированная мной в 1996 году для спекртрума 48k.
    В архиве игра в трех форматах: TAP, HOBETA, SCL.

    Скачать: http://www.cxemateka.ru/v1/DIZZY_5r_48k.zip

  2. Имя файла: wildseyr.zip (68K)
    MD5: 62511c9b12f42794053805e140af3009

    Игра «Сеймур на Диком Западе» (русифицированная мной в 1996 году).
    В архиве игра в формате SCL.

    Скачать: http://www.cxemateka.ru/v1/wildseyr.zip

  3. Имя файла: test48k.bin (2,0K)
    MD5: 4bf68803c17aa614b7fbfa939549eaec
    Контрольная сумма прошивки: 85E7

    Тестовая прошивка 48k (модифицированная версия -
    убрал нудную процедуру заполнения экрана, ненужную проверку ПЗУ).

    Скачать: http://www.cxemateka.ru/v1/test48k.bin

  4. Имя файла: test128k.bin (2,0K)
    MD5: 5247c2d7d5c77d270d98d6c0080493da
    Контрольная сумма прошивки: E413

    Тестовая прошивка 128k.

    Скачать: http://www.cxemateka.ru/v1/test128k.bin

  5. Имя файла: sos48k_only.bin (16K)
    MD5: 4c42a2f075212361c3117015b107ff68
    Контрольная сумма прошивки: 1F64

    Стандартная операционная система
    для «ZX Spectrum» 48k (1982 Sinclair Research Ltd).

    Скачать: http://www.cxemateka.ru/v1/sos48k_only.bin

  6. Имя файла: 27512.bin (64K)
    MD5: 77cec243abe304ba3603b63b88709cae
    Контрольная сумма прошивки: 9135

    Комбинированная прошивка для ПЗУ 27512:

    Банк 0 - Пусто.

    Банк 1 - TR-DOS Version 5.5H Copyright (C) 1993 by Rst7.
    MD5: de4131214186667b9fb4022343d34444
    Контрольная сумма: 3F81

    Банк 2 - SOS 128k (Стандартная ОС для «ZX Spectrum» 128k).
    MD5: 97da465c399ff70b907dfd8291e8f9d3
    Контрольная сумма: 266E

    Банк 3 - SOS 48k (Стандартная ОС для «ZX Spectrum» 48k).
    MD5: 6e09e5d3c4aef166601669feaaadc01c
    Контрольная сумма: 2C86

    Скачать: http://www.cxemateka.ru/v1/27512.bin

Где взять детали для сборки?

Сначала надо заказать печатную плату в любой специализирующейся на этом деле конторе. Набор файлов gerber & excellon для изготовления платы: http://www.cxemateka.ru/v1/Leningrad48k.rar (Источник: http://sblive.narod.ru/).

Всё остальное можно найти в продаже. Если не найдутся отечественные детали, всегда можно найти зарубежные аналоги.

ТТЛ-логика, предпочтительнее 1533 (аналог 74ALS) или 555 (аналог 74LS):
1533ЛН1 (74ALS04) - 2 шт.
1533ТМ2 (74ALS74) - 3 шт.
1533ТМ9 (74ALS174) - 1 шт.
1533ИЕ7 (74ALS193) - 4 шт.
1533ЛЕ1 (74ALS02) - 1 шт.
1533ЛП5 (74ALS86) - 1 шт.
1533ЛА3 (74ALS00) - 1 шт.
1533ЛИ1 (74ALS08) - 1 шт.
1533ЛЛ1 (74ALS32) - 1 шт.
1533КП11 (74ALS257) - 8 шт.
1533КП13 (74ALS298) - 2 шт.
1533ИР22 (74ALS373) - 1 шт.
1533ИР9 (74ALS165) - 1 шт.
1533ИР16 (74ALS295) - 1 шт.
1533ЛА4 (74ALS10)- 1 шт.

КМОП:
561ИЕ10 (4520) – 1 шт.

Процессор:
Z80 – 1 шт.

Постоянная память:
EPROM 27C64 - 2 шт. или одна EPROM 27C128 (для версии 48k)

Оперативная память:
565РУ5 - 8 шт. или 565РУ7 - 8 шт. (первые выводы РУ7 нужно будет соединить между собой и заземлить /для версии 48k/)

Вместо 565РУ7 можно ставить зарубежные аналоги: 41256/41257 DRAM, MB81256/MB81257 DRAM.

Кроме того, в Спектрум можно ставить динамическую память большего объема и соотв. потребуется меньшее кол-во микросхем. Как это делается, расскажу в следующем материале.

Узел чтения с магнитофона рекомендуется собирать по приведенной выше схеме на К554СА3 (зарубежный аналог IL311ANM).



Useful post + 14 | Useless post - 0
Friday, December 9, 12:41:30 2016    
Константин Айги (CXEMATEKA.RU)
Name: Ольга Король
Фото у тебя Супер! )

Очень интересное видео! Мне понравилось как ты делаешь и рассказываешь ) Круто! ;) МолодчАга! ;)

Useful comment + 4 | Useless comment - 0
Monday, January 2, 21:31:09 2017 | post link    

<<<< 18 17 16 15 14 13 12 11 10 9 8 7 >>>>

Name: Randomize_Usr
to ovcharenkod.
Зашивайте ОС48 во все четверти 27с512, не ошибетесь.

Useful comment + 0 | Useless comment - 0
Friday, January 10, 21:03:31 2020 | post link    
Posts: 23
Name: Артем E-mail: eviver@mail.ru
Константин, мог бы подсказать, почему при выполнении теста с тестовой пзу, когда по бордюру идут черно-белые линии, изображение дергается и расплывается, что шрифт толком не прочитать на экране ?
Useful comment + 0 | Useless comment - 0
Wednesday, January 15, 22:15:42 2020 | post link    
Name: trefas E-mail: trefas@yandex.ru
Доброго дня Константин. Нет поиска в комментариях, поэтому прошу простить если повторю чей-либо вопрос. На chip&dip нахожу только AT27C256R-70PU такую пзу. Потребуется ли вносить изменения по железу. К сожалению не соображаю в даташитах и схемотехнике, но очччень хочется самостоятельно собрать этот комп. Заказал платы на jlcpcb. Логика и простая рассыпуха есть в чипИдипе. Вот только нет процессора и ПЗУ
Useful comment + 0 | Useless comment - 0
Thursday, January 16, 11:22:59 2020 | post link    
Name: Константин Айги (CXEMATEKA.RU)
Артем, варианты разные могут быть. Но если речь о "Ленинграде" подключённом через SCART, то без доработки по привязке к уровню чёрного можно получить подобный эффект. Телевизор будет брать цвет бордюра за уровень чёрного, со всеми вытекающими отсюда последствиями.

trefas, вариант памяти в корпусе 28-lead PDIP (DIP-28) должен работать без доработок, главное прошить правильно.

Useful comment + 0 | Useless comment - 0
Thursday, January 16, 18:52:32 2020 | post link    
Константин Айги (CXEMATEKA.RU)
Posts: 305
Name: Максим E-mail: ixide@mail.ru
Всем привет! Так и не могу наладить свой клон, нашел причину мигания бордюра, вышла из строя одна из КП13. Потом произвел доработку сигнала синхронизации и привязку к уровню черного. Теперь при включении экран и бордюр почему-то ярко желтого цвета. При нажатии любой клавиши пищит бипер и происходит сброс. https://www.youtube.com/watch?v=jn4WCMJFdLY
Константин, не подскажите в чем может быть проблема?

Useful comment + 0 | Useless comment - 0
Sunday, January 19, 12:45:54 2020 | post link    
Name: Андрей Семенов
Всем доброго дня! В N-ный раз все пересмотрел и перечитал. Потихоньку начинаю вникать, пока жду плату, детали и оборудование из Китая. И вот, что подумалось... Крик души - так сказать. Константин или кто-то еще неравнодушный и грамотный, запилите видео на подобии https://www.youtube.com/watch?v=HyznrdDSSGM&list=PLowKtXNTBypGqImE405J2565dvjafglHU где на макетках парень все устройство ПК разбирает. Я вот задался целью понять тактовый генератор спека и вот, к каким выводам пришел: кварц на 14МHz, D1(1533ЛН1), D2(1533ТМ2) и резистор R1 (360 по одной схеме и 430 по другой) являются серцем нашего ПК. У Константина на видео синусоида на 6 ноге z80 не красивая получилась и он заменил R1 на 470 и следом еще один на следующий инвертор поставил. Вот если бы это отдельным видосом оформить и так далее про все узлы было бы оччччень круто. Я дальше вряд ли сам разберусь :(
Useful comment + 0 | Useless comment - 0
Sunday, January 19, 14:09:44 2020 | post link    
Андрей Семенов
Posts: 7
Name: Константин Айги (CXEMATEKA.RU)
Максим, надо бы прогнать тест памяти, посмотреть, что он покажет. А так, похоже, что что-то где-то перемкнуло или же доработки собраны неверно.

Андрей, рекомендую изучить книжку «Ленинград-1 наладка и ремонт», ссылка на неё есть тут:
https://www.cxemateka.ru/ru/building_zx_spectrum_128k_clone_beta_disk_interface_ay_3_8910_ym2149f/p95

Useful comment + 0 | Useless comment - 0
Tuesday, January 21, 14:32:18 2020 | post link    
Константин Айги (CXEMATEKA.RU)
Posts: 305
Name: Андрей Семенов
Константин, спасибо за ссылочку. Я качал ранее книжку Настройка и ремонт с zxpress.ru в формате djvu. У вашей pdf кач-во получше будет, читабельнее.
Useful comment + 0 | Useless comment - 0
Tuesday, January 21, 21:01:21 2020 | post link    
Андрей Семенов
Posts: 7
Name: Максим E-mail: ixide@mail.ru
Константин, спасибо за ответ! До доработки сигнала синхронизации он себя так же вёл, просто изображение было Ч/Б. Буду пробовать прогонять тест памяти.
Useful comment + 0 | Useless comment - 0
Thursday, January 23, 16:59:08 2020 | post link    
Name: Дмитрий
Добрый день. Запустил я свой Ленинград (версия Композит), есть вопрос при загрузке отсутствуют полосы на бордюре. Подскажите куда копать.
Useful comment + 0 | Useless comment - 0
Saturday, January 25, 23:03:11 2020 | post link    
Posts: 8
Name: Константин Айги (CXEMATEKA.RU)
Дмитрий, рекомендую для проверки запустить такую команду:
RANDOMIZE USR 1333

Если с видеоконтроллером и портами серьезных проблем нет, то по бордюру побегут полосы, а бипер будет издавать шум.

Если этот тест проходит, то нужно будет проверить весь узел чтения с магнитофона. Проще всего это сделать осциллографом: надо проследить прохождение сигнала с аудиовхода до 11-го вывода (TAPE IN) D37 (по схеме "Композита"). На схеме "Ленинграда" TAPE IN – это 11-й вывод D38.

Useful comment + 1 | Useless comment - 0
Sunday, January 26, 07:08:57 2020 | post link    
Константин Айги (CXEMATEKA.RU)
Posts: 305
Name: Дмитрий
Константин, загрузка с мафона работает, программы грузятся и работают.
Randomize проверю.

Useful comment + 0 | Useless comment - 0
Sunday, January 26, 11:15:52 2020 | post link    
Posts: 8
Name: Дмитрий
При выполнении RANDOMIZE USR 1333 бордюр молчит.
Похоже на видеоконтроллер. что может быть.

Useful comment + 0 | Useless comment - 0
Sunday, January 26, 11:35:51 2020 | post link    
Posts: 8
Name: Дмитрий
Еще такой нюанс, D43 (по схеме "Композита") вместо 555КП11 стоит 555КП16, не может ли это быть причиной.
Useful comment + 0 | Useless comment - 0
Sunday, January 26, 12:13:28 2020 | post link    
Posts: 8
Name: Константин Айги (CXEMATEKA.RU)
D43 и должен быть КП16, чтобы привязка к уровню чёрного корректно отрабатывала. На моём "Композите" тоже КП16 установлен.

Нужно проверять весь узел формирования бордюра. Цвет бордюра формируется на регистре ТМ9 (выводы 7, 10, 12 D35). Включение и выключение отрисовки бордюра происходит по сигналу BORDER (вывод 6 D13). Переключение между отображением бордюра и PAPER осуществляется мультиплексорами D33, D34.

Скорее всего сигнал BORDER не доходит до мультиплексоров, возможен также выход из строя ТМ9, что-то может быть не так и с D33, D34, но это маловероятно.

P.S. Номера микросхем указаны по схеме "Композита".

Useful comment + 1 | Useless comment - 0
Monday, January 27, 02:34:24 2020 | post link    
Константин Айги (CXEMATEKA.RU)
Posts: 305
Name: Дмитрий
Константин, спасибо разобрался.
Не было сигнала IOWR.
Была оборвана дорожка от 22 вывода Z80, к 12 выводу D14

Useful comment + 0 | Useless comment - 0
Monday, January 27, 23:34:59 2020 | post link    
Posts: 8
Name: Damask E-mail: janerige@gmail.com
Посоветуйте пожалуйста схему подключения ay-3-8910
Useful comment + 0 | Useless comment - 0
Thursday, January 30, 01:59:16 2020 | post link    
Name: Константин Айги (CXEMATEKA.RU)
Damask, я в своё время вот по этой схеме подключал AY к разным клонам:


Useful comment + 0 | Useless comment - 0
Thursday, January 30, 10:42:18 2020 | post link    
Константин Айги (CXEMATEKA.RU)
Posts: 305
Name: Андрей Семенов
Доброго дня всем. В очередной раз проверяя свой заказ на jlcpcb.com куда я отправил архив с платой ленинграда размещенный на этой странице я обнаружил, что не китайский новый год тормозит выпуск и отправку мне плат, а некая причина приостановки производства. Ссылка с jlcpcb говорит, что мол смотрите почту. И с ужасом я обнаружил, что и правда от них было письмо в котором говорится что обнаружен обрыв дорожки в схеме в районе D2, D11 на слое bottom. Что дальше делать ума не приложу. Ссылки в письме устарели и как за свои кровные с китайцами теперь тягаться. Может сталкивался кто??? Даже если там этот разрыв и нужен, как теперь запустить производство
Useful comment + 0 | Useless comment - 0
Thursday, January 30, 14:00:25 2020 | post link    
Андрей Семенов
Posts: 7
Name: Андрей Семенов
Разглядел внимательнее. там с 4 ноги Д14, а не Д11 идет дорожка по нижнему слою и прерывается, а после разрыва продолжается и под Д2 переходит на верхний слой и идет дальше к 14 ноге Д4. Т.Е. такой предполагается маршрут Д14.4 - Д4.14 По схеме с SBLive.narod.ru 14 нога ИЕ7(Д4) на землю, вместе с некоторыми другими, а сигнал от ИЛИ элемента Д14 должен на 12 ногу приходить. В общем засада... Но мы не сдадимся. Китайцам отписался, что мол как вам удобнее, так и делайте (хотите исправляйте обрыв, хотите, так печатайте) только бы побыстрее. Из деталей ждем еще процессор с АлиЭкспресса, потому что ранее заказывали Z84C00 на чипИдипе, и слава Богу вовремя отменили позицию прочитав тут, что этот проц КМОП и с нашей платой не подружится где почти все ТТЛ.
Useful comment + 0 | Useless comment - 0
Thursday, January 30, 14:38:23 2020 | post link    
Андрей Семенов
Posts: 7
Name: Андрей Семенов
Да... Действительно сборка спека это детектив. И это я еще паяльник в руки не брал.
Нашел на сайте sblive.narod.ru тот архив, что здесь выложен и такие слова: NEW>>> Leningrad48k.rar - набор файлов gerber & excellon . Полностью оригинальный вариант платы с одной перемычкой (дорожку резать не нужно) и подрезанными пятаками , в маске пятаки так же подрезаны ( пример - PadsCut.gif ).
Т.е. дорожка за которую меня китайцы ругали порезана умышлено и надо будет припаять перемычку чтобы не Д14.4, а Д14.6 шло на Д4.14. Ну, а так ли это, будем посмотреть когда собирать будем.
Статус моего заказа платы пока все еще - suspended (заморожен)

Useful comment + 0 | Useless comment - 0
Thursday, January 30, 23:10:41 2020 | post link    
Андрей Семенов
Posts: 7
Name: Константин Айги (CXEMATEKA.RU)
Андрей, да, КМОП процессор не подойдёт. И действительно, на плате есть одна перемычка между выводом D14-6 и дорожкой ведущей к D4-11. Вот тут я устанавливаю эту перемычку:
https://youtu.be/8rWCYo1UcOQ?t=3m40s

Useful comment + 0 | Useless comment - 0
Saturday, February 1, 10:55:07 2020 | post link    
Константин Айги (CXEMATEKA.RU)
Posts: 305
Name: Lexa48
Здравствуйте, Константин!
Скажите, можно ли применять ваши схемы расширения и доработки для второго Ленинграда? И что говорят тесты на расширение?
Дело в том, что я расширил свой Ленинград-2 по схеме :https://zx-pk.ru/threads/8903-rasshirenie-ozu-leningrad-2.html?p=198332&viewfull=1#post198332
Применил в качестве ру7 аналог d41256c-10,стоит bdi типа himac. Но как мне кажется расширение работает не корректно, Iramtest определяет 48 КБ, тест 4.30 128 определяет, но пишет, что порт #7ffd на чтение невозможен. И так с разными тестами, то 48 определяет, то 128. Блокировку we я проверял. Вторая часть satisfaction дико тормозит, вместо кубика в последней части краказябра, в части где карта экран скроллится со скрипом, а музыка звучит в два раза медленнее (ay я подключал через дешифратор ид7).
Вот спросить хотел, это проблема всех Ленинградов? Думаю может буферизовать сигналы клавиатуры через ап, может процессор сильно наружен? Проц кстати стоит с буковкой С, но он единственный который корректно работает на моем Ленине из всего что у меня есть, другие ещё хуже.
Спасибо за ответ, если ответите!

Useful comment + 0 | Useless comment - 0
Saturday, February 8, 11:06:33 2020 | post link    
Posts: 2
Name: Константин Айги (CXEMATEKA.RU)
Lexa48, в принципе вышеприведенные схемы можно и для второго «Ленинграда» использовать, т.к. принцип мультиплексирования памяти в «Ленинградах» схож:
https://zx-pk.ru/threads/9564-leningrad-2-rasshirenie-do-128.html

41256 DRAM, строго говоря, не полный аналог РУ7 – в них есть различия. При увеличении памяти лучше использовать именно 41256, т.к. они требуют меньше циклов регенерации, и интегрировать их в Спектрум проще. Выше я привел три разные схемы апгрейда памяти (для РУ7, 41256 DRAM, для двух линеек РУ5).

При корректно выполненном апгрейде памяти все тесты должны правильно определять наличие 128K. Во всяком случае, и IRAMTEST, и TEST 4.30 на доработанном «Ленинграде» расширенную память видят. Ну, а чтение из порта #7ffd на стандартном Спектруме и не должно быть возможно. Кстати, важно чтобы и ПЗУ 128K присутствовало, т.к. некоторые тесты архитектуру именно с ПЗУ начинают проверять.

Что касается демок, то многие из них действительно адаптированы для «Пентагона», а он быстрее «Ленинградов». Т.е. в демах могут быть и торможения и некоторые странности.

Ну и важно, чтобы второй экран был правильно реализован при расширении памяти, т.к. эта фича активно используется в демках. Наличие второго экрана проверяется так:
1. заходим в BASIC 128К, даем команду USR 0
2. попадаем в BASIC 48K с поддержкой порта #7FFD
3. даем команду: OUT 32765,24

Если все правильно, основное поле экрана станет чёрным, но при этом компьютер будет реагировать на команды (выход по ресету).

Useful comment + 0 | Useless comment - 0
Sunday, February 9, 04:05:25 2020 | post link    
Константин Айги (CXEMATEKA.RU)
Posts: 305
Name: Lexa48
Спасибо за разъяснение!
Удалось сегодня подключить пентагоновское ПЗУ 27с512 и о,чудо,тест IRam увидел наконец расширенную память! 4.30 тоже видит и по out в 48 бейсике положенный чёрный экран.
Просто не привык к таким машинкам,вырос на пентагонах и Таганрогах и горя не знал с быстродействием), хотя Ленинград наверное лучший комп для изучения работы спектрума.

Useful comment + 0 | Useless comment - 0
Sunday, February 9, 16:07:21 2020 | post link    
Posts: 2
Name: Константин Айги (CXEMATEKA.RU)
Да, «Ленинград» легко собирать и дорабатывать, более того некоторые и WAIT убирали из схемы «Ленинграда» как раз, чтобы демки шли как на «Пентагонах». Вот есть пара старых дискуссий на эту тему:
https://www.cxemateka.ru/ftp/LEN2PENT.TXT

https://www.cxemateka.ru/ftp/LEN2PEN2.TXT

Сам такого не делал, но изложено там всё в принципе достаточно грамотно, т.е. действительно можно, при желании, превратить «Ленинград» в некое подобие «Пентагона» ;)

Useful comment + 1 | Useless comment - 0
Sunday, February 9, 18:10:55 2020 | post link    
Константин Айги (CXEMATEKA.RU)
Posts: 305
Name: Дмитрий
Скажите пожалуйста можно ли к Ленинграду1 (по схеме "Композита") переделанный на 128, подключить контролер дисковода NEMO FDС.
Useful comment + 0 | Useless comment - 0
Wednesday, February 12, 14:47:25 2020 | post link    
Posts: 8
Name: Константин Айги (CXEMATEKA.RU)
Дмитрий, можно:
https://zx-pk.ru/threads/31321-vopros-po-nemo-fdd.html

Useful comment + 1 | Useless comment - 0
Wednesday, February 12, 18:41:47 2020 | post link    
Константин Айги (CXEMATEKA.RU)
Posts: 305
Name: Дмитрий
Константин, подскажите пожалуйста, на ссылке, что вы дали указано, сигнал CSROM садить на 20 вывод 27С512, по Вашей схеме переделки указано, что 20 вывод на землю, подскажите куда подключить CSROM, и с Вайтом не очень понятно, подскажите пожалуйста.
Useful comment + 0 | Useless comment - 0
Sunday, February 16, 16:06:43 2020 | post link    
Posts: 8
Name: Константин Айги (CXEMATEKA.RU)
Дмитрий, чтоб тут не запутаться, надо правильно понимать условия входа в систему TR-DOS.

Вход осуществляется по адресам в промежутке #3D00-#3DFF (в стандартном ПЗУ SOS48K тут расположен шрифт, т.е. исполняемый код отсутствует).

Соотв. условия для входа на уровне сигналов Z80 такие:

1. На старшем разряде адресной шины (A8-A15) должно быть число #3D:
A8=1
A9=0
A10=1
A11=1
A12=1
A13=1
A14=0
A15=0

2. Вход осуществляется в момент выполнения процессором команды, т.е.:
MREQ=0
M1=0

3. При этом вход в TR-DOS не должен быть возможен в момент активности ПЗУ SOS128K. Т.е. ещё одно условие для входа: разряд D4 порта #7FFD должен быть в 1.

Теперь смотрим, какие условия входа соблюдены на схеме NEMO FDC.

1. На DD13:
A8=1
A10=1
A11=1
A12=1
A13=1

2. На DD5.2:
CSROM=0 (т.е. A14=0, A15=0, MREQ=0) – аналог RDROM по схеме «Ленинграда».
M1=0
A9=0

В общем, тут всё как надо.

Ну, а WAIT на NEMO FDC задействован в узле формирования сигнала MAGIC (сброс состояния компьютера на дискету по нажатию соотв. кнопки).

Тут уже надо в процессе отладки это дело проверять. В теории может и WAIT «Ленинграда» тут подойти (всё же на компьютере KAY WAIT формируется схожим образом). Есть также схема замены этого сигнала для подключения контроллера к разным другим клонам:




Схема отсюда: https://zx-pk.ru/threads/30533-dorabotka-nemo-fdi.html

Useful comment + 1 | Useless comment - 0
Monday, February 17, 06:52:30 2020 | post link    
Константин Айги (CXEMATEKA.RU)
Posts: 305
Name: kolondrej
Добрый день. Для варианта 14.0 МГц, чтобы укоротить строчный синхроимпульс, никто не пробовал вместо сигнала Н7 подать сигнал Н5 на D40.10?
Useful comment + 0 | Useless comment - 0
Monday, February 24, 20:28:39 2020 | post link    
Name: Alexander
Константин, добрый день.
Спасибо вам большое за ваше видио на Ю-тюбе, оно вдохновило меня исполнить свою детскую мечту и собрать-таки свой Ленинград-2))
Я даже нашел микросхемы, которые я покупал для этого специально (вместе с бабушкой), когда еще был СССР))
Читаю литературу на этот счет, но осознаю, что знаний недостаточно, а хочется вникнуть в работу схемы более детально...

Подскажите пожалуйста, существуют ли программы для ПК, на которых можно "собрать схему" и посмотреть ее работоспособность. Увидеть на каком выводе микросхемы, какой уровень сигнала, диаграмы работы на каждом такте ЦП и т.п? Возможно та программа, которую вы использовали, когда делали доработку для "Нафани"? Или она только для производства плат?

Useful comment + 0 | Useless comment - 0
Monday, February 24, 22:39:32 2020 | post link    
Name: Константин Айги (CXEMATEKA.RU)
kolondrej, не прокатит ) Да, синхросигнал укоротится, но появится ещё один лишний импульс, что приведет к срыву картинки, плюс строка сместится в сторону от центра, т.е. рисунок будет сдвинут.

Alexander, для доработки «Нафани» я чертил схему в «Eagle CAD» (это софт для черчения схем и создания плат).

А для симуляции можно использовать, например, «Icarus Verilog» (http://iverilog.icarus.com/) + «GTKWave» (http://gtkwave.sourceforge.net/).

Вся стандартная TTL-логика давно описана на Verilog HDL (язык, используемый для описания и моделирования электронных систем). Найти исходники можно в сети на разных ресурсах, но наиболее полная коллекция логики серий 74xx есть в библиотеке maxplus2 программы «Quartus II 13». В этой программе можно схемку начертить, а потом экспортировать в Verilog HDL, хотя лучше и правильней всю основную логику прописывать вручную, т.к. после экспорта код всё равно придется править в большинстве случаев. Ну, а исходники нужных чипов логики можно из «Quartus'а» экспортировать по отдельности.

Сопоставить отечественную маркировку с импортной можно по справочникам, например:
http://rfanat.qrz.ru/s21/ms_74xx.html

На практике это выглядит так. Мы можем, например, быстро и легко сделать симуляцию тактового генератора и получить сигналы: TI, RAS, H0, H1, H2, H3. Нам понадобится для этого всего два элемента: ТМ2 (7474.v) и ИЕ7 (74193.v).

Создать нам надо будет четыре файла:
leningrad.v – это будет часть тактового генератора «Ленинграда»
leningrad_tb.v - test bench (файл, в котором описаны параметры симуляции)
7474.v – триггер ТМ2
74193.v – счетчик ИЕ7

-----------------------------------------

// Файл leningrad.v

module leningrad(
    CLK,
    VCC,
    GND
);

// Входные сигналы: CLK = 14 МГц, VCC = 1, GND = 0
input wire    CLK;
input wire    VCC;
input wire    GND;

wire H0;
wire H1;
wire H2;
wire H3;

wire TI;
wire TI_inv;

wire RAS;
wire RAS_inv;

ttl_7474 D2(
    .n1CLK(CLK),
    .n1D(TI_inv),
    .n1PRN(VCC),
    .n1CLRN(VCC),
    .n1Q(TI),
    .n1QN(TI_inv),
    .n2CLK(TI),
    .n2D(H0),
    .n2PRN(VCC),
    .n2CLRN(VCC),
    .n2Q(RAS_inv),
    .n2QN(RAS));

wire [3:0] H;
wire [3:0] P = 4'b1111;

counter_74193 D3(.clr(GND),.up(TI_inv),.load_n(VCC),.P(P),.Q(H));

assign    H0 = H[0];
assign    H1 = H[1];
assign    H2 = H[2];
assign    H3 = H[3];

endmodule

-----------------------------------------

// Файл leningrad_tb.v

`timescale 1 ns / 100 ps

module leningrad_tb;

reg CLK, VCC=1, GND=0;

leningrad LENINGRAD (.CLK(CLK),.VCC(VCC),.GND(GND));

// Период в наносекундах. Для 14 МГц, период будет равен: 1000/14=71,42
always #71 begin
    CLK =~ CLK;
end

initial begin
    CLK=0;
    // Длительность симуляции в наносекундах
    #7100 $finish;
end

// Полный дамп результатов симуляции
initial begin
    $dumpfile("leningrad_tb.vcd");
    $dumpvars(0,leningrad_tb);
end

endmodule

-----------------------------------------

// Файл 7474.v

// Purpose: D flip-flop
// Western: SN74LS74
// USSR: K555TM2/К555ТМ2


module ttl_7474 (
    n2CLRN,
    n2CLK,
    n2D,
    n2PRN,
    n1CLRN,
    n1CLK,
    n1D,
    n1PRN,
    n1Q,
    n1QN,
    n2Q,
    n2QN
);

input wire    n2CLRN;
input wire    n2CLK;
input wire    n2D;
input wire    n2PRN;
input wire    n1CLRN;
input wire    n1CLK;
input wire    n1D;
input wire    n1PRN;
output wire    n1Q;
output wire    n1QN;
output wire    n2Q;
output wire    n2QN;

reg    DFF_10=0;
reg    DFF_9=0;

assign    n1Q = DFF_9;
assign    n2Q = DFF_10;

always@(posedge n2CLK or negedge n2CLRN or negedge n2PRN)
begin
if (!n2CLRN)
    begin
    DFF_10 <= 0;
    end
else
if (!n2PRN)
    begin
    DFF_10 <= 1;
    end
else
    begin
    DFF_10 <= n2D;
    end
end

assign    n2QN =  ~DFF_10;

assign    n1QN =  ~DFF_9;

always@(posedge n1CLK or negedge n1CLRN or negedge n1PRN)
begin
if (!n1CLRN)
    begin
    DFF_9 <= 0;
    end
else
if (!n1PRN)
    begin
    DFF_9 <= 1;
    end
else
    begin
    DFF_9 <= n1D;
    end
end

endmodule

-----------------------------------------

// Файл 74193.v

// Purpose: Presettable 4-bit binary up/down counter
// Western: SN74LS193
// USSR: 555IE7/555ИЕ7


module counter_74193
(
  input clr,
  input up,
  input down,
  input load_n,    // Initial counter value load strobe
  input [3:0] P,   // 4-bit parallel input

  output co_n,      // Carry-out
  output bo_n,     // Borrow-our
  output [3:0] Q
);

reg co = 1'b0;
reg bo = 1'b0;
reg [3:0] count = 0;

always @(posedge clr or negedge load_n or posedge up or posedge down)
begin
  if (clr)
  begin
    count <= 4'b0000;
    co <= 1'b0;
    bo <= 1'b0;
  end
  else if (~load_n)
    count <= P;
  else if (up)
  begin
    count <= count + 1;
    // Set carry-out flag when counted till 14 ('b1110) and up is active (high)
    co <= ~count[0] & count[1] & count[2] & count[3] & up;
    bo <= 1'b0;
  end
  else if (down)
  begin
    count <= count - 1;
    co <= 1'b0;
    // Set borrow out flag when counted till 1 ('b0001) and down is active (high)
    bo <= ~(~count[0] | count[1] | count[2] | count[3]) & down;
  end
end

assign Q = count;
assign co_n = ~co;
assign bo_n = ~bo;

endmodule

-----------------------------------------

Компилируем так (на Linux):
iverilog -o leningrad_tb -s leningrad_tb *.v
vvp leningrad_tb

Полученный файл leningrad_tb.vcd открываем программой GTKWave:



Теперь мы видим, что
1. TI = CLK/2 = 14/2= 7 МГц
2. RAS = TI/2 = 7/2 = 3,5 МГц
3. H0 = 3,5 МГц (смещен относительно RAS)
4. H1 = 1,75 МГц (отсюда берут тактовый сигнал для AY-3-8910)
5. H2 = 875 КГц
6. H3 = 437,5 КГц

В сети есть и исходник процессора Z80 на Verilog HDL, так что можно так и весь «Ленинград» сэмулировать. Будут, правда, некоторые сложности с правильной эмуляцией сигнала INT, но и это при желании возможно.

Useful comment + 0 | Useless comment - 0
Tuesday, February 25, 15:50:12 2020 | post link    
Константин Айги (CXEMATEKA.RU)
Posts: 305
Name: Ivan Gagis E-mail: igagis@gmail.com
Решил запустить свой старый спектрум "Ленинград" после того как он 20+ лет лежал без включения. как ни странно он вроде сразу заработал. Возникла лишь проблема с подключением его к телевизору. Старых телеков у меня уже нет, есть только современный, но у него есть СКАРТ. В общем, спаял я провод для подключения к СКАРТу и он вроде даже как-то заработал, но вот картинка моргает, то есть 0.5-2 секунды картинка есть, потом черный экран на 0.5-2 секунды и эти моргания случайны в этих пределах. В общем полез проверять частоты и синхроимпульсы. Выяснил что у меня стоял кварц на 13МГц и D4 сконфигурирована для 13.5 МГц (согласно http://zxbyte.ru/leningrad_upgrade.htm#2), хотя частота строчных синхроимпульсов была почти такая как надо, но вот точное число не записал.

Поставил кварц 14 МГц и переконфигурировал D4 соответственно. Добавил конденсатор 220 пф.

Сделал доработку стабилизации тактового генератора.

После этого всего частоты вроде такие как надо плюс минус. Только вот особо это не помогло, картинка всё так же моргает.

Заметил что формы сигналов странные, вот пример строчных синхроимпульсов с 13 ноги D11, а также 6 нога процессора: https://photos.app.goo.gl/verzDXs2uhZVhpk16

Как видно на 6 ноге проца отнюдь не синусоида, а строчные синхроимпульсы не совсем прямоугольные... Не знаю может ли проблема быть в этом?

Куда ещё смотреть, что копать?

Планирую потом расширить память до 128к и подключить звуковой чип.

Заранее благодарен,

Иван

Useful comment + 0 | Useless comment - 0
Friday, February 28, 03:40:18 2020 | post link    
Name: Андрей Семенов
Наконец пришли платы с JLCPCB и добрые китайцы, все таки залечили разрыв дорожки, о кот. я узнал позже https://www.cxemateka.ru/img/trefas/s.photo.jpg?1582965760. Это теперь меня ночью разбуди и я покажу где он должен быть... Прийдется резать. Начинаем сборку https://www.cxemateka.ru/img/tmp/trefas/s.5e5a23ba.jpg?1813126305
Useful comment + 0 | Useless comment - 0
Saturday, February 29, 11:49:26 2020 | post link    
Андрей Семенов
Posts: 7
Name: Андрей Семенов
Первое фото перепутал и сослался на аватарку. Вот место на плате https://www.cxemateka.ru/img/tmp/trefas/s.5e5a237d.jpg?1137006577
Кто, как и я, сходу может пальцем ткнуть???

Useful comment + 0 | Useless comment - 0
Saturday, February 29, 11:53:27 2020 | post link    
Андрей Семенов
Posts: 7
Name: Александр
Привет всем. Давненько я не заходил сюда. По причине небольшой тормознутости моего Ленинграда-256 пришлось применить вот эту схему доработки: https://www.cxemateka.ru/ftp/LEN2PEN2.TXT
Теперь демки идут как надо. Проверил с помощью демо Gemba boys - We are alive, всё работает. НО! Есть одно большое НО! Мышку от ЕС-ки мне пока так и не удалось подключить. Собирал контроллер по этой схеме: http://zxpress.ru/article.php?id=4708
Затем пытался переделать схему дешифратора ИД7 уже по этой схеме, чтобы был выход сигнала IORQ с контроллера: http://zxdn.narod.ru/hardware/ad11kmse.htm
При попытке включить комп со вставленным контроллером на экране вместо меню появляется лишь обычный "матрас", только с фиолетовыми полосами, вместо белых, на reset не реагирует. При этом, если вытащить контроллер и нажать reset, комп запустится в обычном режиме. Как это исправить, помогите мне, пожалуйста.

Useful comment + 0 | Useless comment - 0
Saturday, February 29, 22:33:56 2020 | post link    
Александр
Posts: 121
Name: Ivan Gagis
Привет всем!

Небольшой апдейт по моей проблеме. Похоже, что частоты сигналов тут непричем.

Оказывается, Ленинград всегда фигачит одно и то же поле видеосигнала. Кстати, оригинальный спектрум похоже тоже (согласно https://spectrumcomputing.co.uk/forums/viewtopic.php?f=22&t=1102).

Вот осциллограмма с 11 ноги D11: https://photos.app.goo.gl/AWCREbGkqgffHFhg8

Тут видно начало кадрового синхроимульса, видно что он немного смещён относительно строчного синхроимпульса. Настройки синхронизации видно снизу, частота кадров 50 Гц, одно поле. При 2 полях осциллограф не засинхронизировать, т.е. Ленин выдает только одно поле. Думаю это и не нравится современным телекам, пробовал на двух разных, на обоих синхронизация срывается.

Пока у меня идея попробовать как-то доработать схему, чтобы было чередование четных и нечетных полей. Не решил пока как это лучше сделать. Может на ATmega8 сделать генерацию этого сигнала...

Решал ли кто-нибудь такую проблему? Есть ли идеи как это лучше осуществить?

Спасибо,
Иван

Useful comment + 0 | Useless comment - 0
Monday, March 2, 18:15:26 2020 | post link    
Ivan Gagis
Posts: 49
Name: Александр
[b]Ivan Gagis[/b] попробуйте исправить доработкой видеовыхода (вариант 2) с сайта zxbyte. http://zxbyte.ru/leningrad_video_out.htm
Очень полезная вещь.

Useful comment + 1 | Useless comment - 0
Monday, March 2, 19:02:11 2020 | post link    
Александр
Posts: 121
Name: Александр
К слову, на своём компьютере я ставил:
1. Расширение до 256к (по Скорпионовскому варианту)
2. Упрощенная дешифрация портов (схема была сделана для Скорпиона, но на Ленинград тоже можно было её поставить.)
3. Порт FF убрал! Для современных программ он по-большому счёту, не нужен, кроме того, он конфликтовал с контроллером дисковода.
4. Звуковой чип переключил на выходы ИД7 по расширению памяти.
5. Полностью отрезал WAIT от процессора, переделал схему обвязки микросхемы DD5 и сделал новую схему формирования сигнала INT - вот по этой схеме: https://www.cxemateka.ru/ftp/LEN2PEN2.TXT. Чтобы комп работал "без тормозов";)
Вот схема подключения контроллера мвышки: http://zxbyte.ru/kempston_mouse_for_zx.htm
По этой схеме я сегодня пытался "запихнуть" свою мышь в компьютер, и как обычно, неудачно((( Склоняюсь к тому, чтобы купить Z-controller и не париться;) Но пока ещё не взял его, прошу помощи в том, чтобы подключить мою мышку к спектруму!

Useful comment + 0 | Useless comment - 0
Monday, March 2, 19:14:11 2020 | post link    
Александр
Posts: 121

<<<< 18 17 16 15 14 13 12 11 10 9 8 7 >>>>

Download all comments!

Hits: 1,146,748

Name or Nickname (Required):
E-mail (Optional):
Message (Required):
You can post comments anonymously but it is recommended to register here.

Programmed & Designed by Constantine Aygi
©2016 CXEMATEKA.RU