Обзавелся "Вектором" и я, принимайте в компанию :) Вопрос - какие есть варианты замены штатного загрузчика?
Вид для печати
Обзавелся "Вектором" и я, принимайте в компанию :) Вопрос - какие есть варианты замены штатного загрузчика?
Выложил в картотеку пару загрузчиков http://sensi.org/~svo/scalar/categories/boot/
Оба поддерживают загрузку с устройств:
- электронный квазидиск
- дисковод
- жесткий диск
- сетевой адаптер
- модуль внешнего ППЗУ
- магнитофон
- 0-модемное соединение с PC через порты ПУ-LPT
Вариант на 32кб имеет встроенное ПО:
- Бейсик v2.5
- Монитор СуперМонстр v3.5
- Тест техпрогона
Tim0xA, спасибо. А что это за таинственный сетевой адаптер, который документально не описан?
И еще вопрос - какие переделки необходимы для замены загрузчика, например, на двухкилобайтный?
И еще - есть ли схема МППЗУ попроще, чем в 24-25 номерах Вектор-Юзера?
О нем толком ничего не известно. Есть упоминание в конце ВЮ №7 - анонс "Вектор-06Ц.02" и реклама "КУВТ Вектор+" на базе ЕС1840. Можно проанализировать алгоритм подпрограммы загрузки с адаптера ЛВС и воссоздать его заново. В ПК-6128Ц встроен сетевой адаптер, возможно, что разработчики не изобретали велосипед, а просто интегрировали внешний адаптер (только с другими адресами).
Выложил в картотеку http://sensi.org/~svo/scalar/ware/542
Еще где-то есть вариант от "Центра Компьютер", как найду, тоже выложу.
Схемы нет, но есть процедура загрузки из внешнего ПЗУ в Вектор-Юзер №12. Именно по ней я сделал свой модуль на одной 32кб ППЗУ 27C256 (фотка модуля на википедии). Там только панелька с ППЗУ, разъем и пучок проводов. По процедуре в ВЮ можно разобрать, как подключиться к порту ПУ: AddrLo -> порт 7 (PA "ПУ"), AddrHi -> порт 5 (PC "ПУ"), Data -> порт 6 (PB "ПУ"). На схеме Вектора расписаны контакты разъема "ПУ".
На схеме ПК-6128Ц (лист 2) виден некий корпус D64, на котором, видимо, и построен адаптер ЛВС. Судя по специфическим названиям некоторых сигналов, это какой-чип последовательного типа, если вообще не модемный. (Похоже, это старый добрый 8251)
Неясно только, как разведены сигналы /CS и /OE ППЗУ.Цитата:
Выложил в картотеку http://sensi.org/~svo/scalar/ware/542
Еще где-то есть вариант от "Центра Компьютер", как найду, тоже выложу.
Схемы нет, но есть процедура загрузки из внешнего ПЗУ в Вектор-Юзер №12. Именно по ней я сделал свой модуль на одной 32кб ППЗУ 27C256 (фотка модуля на википедии). Там только панелька с ППЗУ, разъем и пучок проводов. По процедуре в ВЮ можно разобрать, как подключиться к порту ПУ: AddrLo -> порт 7 (PA "ПУ"), AddrHi -> порт 5 (PC "ПУ"), Data -> порт 6 (PB "ПУ"). На схеме Вектора расписаны контакты разъема "ПУ".
(Малость не в тему, но не перетащить ли DjVu-шные номера ВЮ в картотеку тоже?)
Да, точно, я забыл одну важную деталь, только что разобрал свой модуль, там еще стоит инвертор на ЛА3. Старший разряд шины адреса A15 через инвертор подключен к /CS и /OE.
Это было в планах. Я давно уже собрал все выпуски в один DJVU (7мб), хотел еще приделать к ним оглавление с переходами на статьи для удобства, но все никак...
Добавлено через 1 час 5 минут
Выложил кишиневские рекомендации по замене ПЗУ http://sensi.org/~svo/scalar/ware/543
Самый первый вариант МППЗУ я делал по схеме для РК-86 на РФ4 (пока не было 27C256). Разница только в том, что у Вектора порты PA и PB поменяны местами http://retro.bip.ru/RK86/Index.html (ROM диск, журнал Радио 1991 №10)
Подключил свой Вектор к цветному ТВ.
Вижу почему-то синюю шкалу загрузчика на желтом фоне; кроме того, отсутствуют надпись "ВЕКТОР" и изображение кассеты.
Надо полагать, что-то внутри Вектора не в порядке?
tnt23, так выглядит старый загрузчик.
Можно попробовать загрузиться через магнитофонный вход
http://www.sensi.org/~svo/vector06c/tapes
Ага. Значит, можно надеяться, что аппарат скорее жив? Странно также то, что не видно, чтобы какие-то байты в экранной области подергивались.
Зато если нажать СБР+БЛК или СБР+ВВОД, не помню точно, экран начинает медленно заполняться каким-то однородным мусором по столбцам - сверху вниз, затем справа налево.
Попробую.Цитата:
tnt23, все правильно, так и должно быть.
http://www.sensi.org/~svo/scalar/ware/506/ снимет некоторые вопросы.
DjVu-шные выпуски недурно было бы от-OCR-ить и засунуть в текстовый PDF, а то и в хтмл, тогда их будет индексировать гугл. Кто-нибудь увлекается OCR-ежкой?
Добавлено через 1 минуту
Это я к тому, что заключительное оформительство и корректуру я мог бы взять на себя, но у меня нет ничего достойно OCR-ещего.
Кто-то хвалил встроенный в MS Office распознаватель.
http://office.microsoft.com/en-us/he...771031033.aspx
Слайды.
я перед резисторами R16,R17,R18,R21,R23,R25,R27,R29 врезал еще 8 инверторов, это самый качественный вариант. (остальные решения мне как то неочень понравились, искажения видно было невооруженным глазом)
непомню уже зачем, но я еще матрицу весовых резисторов (которые перечисленны выше) менял.
Судя по фоткам явно имеют место проблемы в синхронизации видеосигнала
tnt23, если все же решился на аппаратную доработку и внешние инверторы (на видеокабеле или в телевизоре) не устраивают, то я бы порекомендовал схему из ВЮ №7. Тем более, что эта же схема реализована в "Вектор-06Ц.02", т.е. является стандартным решением. Вариант из ВЮ№7 позволяет переключаться в прямой или инверсный режим при нажатии ВВОД+БЛК в зависимости от состояния клавиши "РУС" (или можно задействовать "СС", "УС" используется загрузчиком). В В06Ц.02 для переключения использовалась перемычка на задней панели.
С другой стороны, в варианте, предложенном Ramiros-ом, можно обойтись без резки дорожек, а переключение между прямым и инверсным режимом по схеме ВЮ№7 вообще вряд ли когда-то понадобится.
С синхронизацией может помочь доработка из темы http://zx.pk.ru/showthread.php?t=8739
Вот фотки моих аццких доработок: инверсия и синхра. На первой фотке две ЛП5 установлены поверх DD38, на второй фотке доработка еще не причесана и окошко ПЗУхи не закрыто, это тестовая ПЗУ-ха, так что не страшно.
Tim0xA, а панелька вместо штатной РТ ставится нормально?
У меня есть в хозяйстве парочка 64КБайтных ПЗУ - однократная 27С512-150нс и перешиваемая W27C512-45нс.
Я думаю зашить в них оба загрузчика (2К и 32К), как-нибудь так:
Младшие 32К: 2Kилобайтный (16 раз)
Старшие 32К: 32Килобайтный
и выбирать при желании какой-нибудь перемычкой.
В самый раз, только 4 ножки придется отогнуть.
Вчера в процессе ремонта своего Вектора я обнаружил досадную ошибку в установке ПЗУ 32кб, которая влияет на работоспособность внешних устройств с портами от 10H и выше. У меня никогда внешних устройств не было, поэтому я не заметил этого раньше.
Выложил в картотеку исправленный вариант http://sensi.org/~svo/scalar/ware/541
А вот непонятно (мне), при установке 32К ПЗУ объем адресуемого ОЗУ уменьшается автоматически? или в случае 2К ПЗУ под ПЗУ выделяется именно 2К, а не 32К?
Изначально в адресном пространстве для ПЗУ резервируются 4К, "т.е. при начальной загрузке младшие 4К недоступны микропроцессору для чтения" (ВЮ4). Поэтому для 2К-загрузчика нужно только корректно подвести шину адреса и /CS/OE. Для 32К загрузчика нужно доработкой расширить адресное пространство, никакой автоматизации нет.
А есть ли исходные тексты каких-нибудь загрузчиков, ну или хотя бы дизассемблированные тексты? Мне конкретно интересно было бы посмотреть, что там да как делается с загрузкой по "локальной сети".
В РЭ ПК-6128Ц в таблице 2 на стр.13 среди прочего значится:
0Dh (IN) - Чтение кода абонента локальной сети
14h..17h - Порт контроллера локальной сети
В 2К загрузчике обращений к таким портам не видно :(
(В том же руководстве, п.5.18: Узел локальной сети построен на микросхеме КР580ВВ51А (...))
Выложил 512 и 2К загрузчики с исходниками и описаниями
http://sensi.org/~svo/scalar/ware/544
http://sensi.org/~svo/scalar/ware/545
В дизассемблированном тексте 2К загрузчика я кое-что комментировал, процедуры определения адаптера и загрузки указаны.
Там нет таких портов, поскольку адаптер ЛВС подключался к порту ПУ.Цитата:
Сообщение от tnt23
С появлением ПК-6128Ц информации об адаптере ЛВС стало больше, но некому этой темой заняться и довести ее до ума. Я собирался, но без рабочего Вектора это не интересно. А получить возможность загрузки с ПК - очень заманчива.
Недавно Ramiros обратил внимание на то, что базовый кишиневский загрузчик 2К http://sensi.org/~svo/scalar/ware/545/ не позволяет загружаться с диска в эмуляторах. Я посмотрел листинги загрузчика и вспомнил почему так происходит. Добавил примечание в карточку загрузчика:
"Если в ПЭВМ сделана доработка, расширяющая адресное пространство ПЗУ (более 4К), то загрузка с дисковода будет невозможна, т.к. процедура работы с диском использует ОЗУ, начиная с адреса 1100H."
Ввиду этого предлагаю авторам эмуляторов b2m и Ramiros доработать свои творения следующим образом:
1. Если файл загрузчика имеет размер <=4К, то адресное пространство для ПЗУ оставить стандартным - 4К
2. Если размер загрузчика >4К и <=8K, выделить 8К
3. Если размер загрузчика >8К и <=16K, выделить 16К
4. Если размер загрузчика >16К и <=32K, выделить 32К
Кстати, именно по этой причине я в своем 32К загрузчике вместо кишиневских процедур загрузки с дисковода использовал кировские.
Интересно, как там работала загрузка более одного сектора, если регистр А (номер сектора) не сохраняется в процедуре 03C6H?
Первый сектор читается дважды и первый раз не дочитывается до конца, у меня такая бяка пока не проходит. Понятно, что на реальном контроллере рано или поздно случилась бы ошибка (потерянные данные) и готовность данных была бы убрана. Надо будет доделать такую фичу.
Заменил штатное ПЗУ вариантом 2К от TimSoft. Вроде бы машина запускается, и даже начинает что-то грузить с ленты, но до конца так ничего и не догружает - сбрасывается. Может, я где чего напортил, когда ставил панельку.
Но пока волнует меня вариант загрузки с несуществующего сетевого адаптера. Вроде бы для этого надо при сбросе удерживать F1+F3, и появится иконка ЛС? на реале ничего не получается, на эмуляторе тоже.
Счастливые обладатели Векторов, в которых установлен мой загрузчик (2K или 32K), могут "грузицца" с LPT порта через разъем ПУ. Утилита и схема кабеля в приложении. Чтобы войти в режим загрузки с ПУ следует нажать АР2+ВВОД+БЛК.
Круто! А описание протокола где-нибудь есть?
Я тут пытаюсь понять по исходникам загрузки с сетевого адаптера, что он из себя собственно представлял, этот самый сетевой адаптер. Просто LPT не везде нынче есть, а сеть можно было бы проэмулировать через какой угодно последовательный порт, да хоть через USB.
Оригинальная утилита под DOS была написана еще в 1999 году для LPT (SPP). Под XP не захотела работать, сам сегодня вспоминал, что там за протокол, набросал утилитку под винду. Хочу использовать ее для ремонта Вектора, тесты портов и ОЗУ грузить. Байты передаются тетрадами, сначала младшая, потом старшая, стробируются 2 битом порта управления, квитируются 7 битом порта статуса. Первым передается 055h, потом 0AAh, начальный блок, количество блоков, rom-файл, в конце байт контрольной суммы (xor). Сейчас бы уже сделал по-другому. Могу протокол подробнее описать, если нужно, но адаптер ЛВС больший интерес представляет, хотя и этот протокол тоже можно засунуть в контроллер, подцепить его на ПУ и данные в него слать через RS232 с ПК. В принципе, получатся те же яйца, только сбоку. По скорости он чуть медленнее, чем загрузка с диска.
Я в свое время ковырял это, но закончилось тем, что весь кусок отвественный за это я просто выкинул - бо Бектоп стоял у меня дома и не нужны были сетевые заморочки.
Когда в очередной раз попаду в Кишингтаун, пороюсь в дискетах - должен был остаться переписанный загрузчик, и исходник его соотвественно.
вот еще один вариант начального загрузчика:
"начальный загрузчик с драйвером винчестера" автор неизвестен, работоспособность неизвестна, схема тоже.
P.S. Когда то я ее ковырял:
Цитата:
1. Базируется на старой, четко просматриваются куски старой....
2. В ней лежит загрузка с: HDD, FDD, ROM, RAM и _помоему_ с сети (?).
3. Запихана возможность работы с двумя контролерами FDD - стандартного Вектора
и что-то другого (Московского??).
4. Hавороченна какая-то непонятная система инициализации....
5. Осталось еще свободное место.
Бо в принципе карта портов мне уже известна ;)
50 - In/?? - Low Byte of Data
58 - In/?? - High Byte of Data
52 - Out/?? - Головка ???
53 - Out/?? - ??
56 - Out/?? - ??
54 - Out/?? - ??
55 - Out/?? - ??
Эти скоре всего - Сектор и Цилиндр (??).
57 - In/Out - Статус/Команда?
5F - Out/?? - Выбор винта?/Включение?
еще один вариант загрузчика. Схема скорее всего эта:
Сверил со своими (еще не выложенными в базу) загрузчиками. Именно из этого я брал процедуры работы с HDD для своей сборки.
В карточку базового начального загрузчика добавлены исходники от TMKSoft http://www.sensi.org/~svo/scalar/ware/544/. Детально расписаны процедуры загрузки с магнитной ленты.
Выложил загрузчик hdd_boot с описанием и зачатками исходников.
Эмулятор Ramiros-а зацикливается в процедуре
В эмуляторе b2m не удалось загрузиться с МППЗУ.Код:L009C: dcr b
mov a,b
out $05
rlc
ani $01
out $01
in $05
cmp b
jz L009C