Она самая. Только 367.
Вид для печати
Вот как и обещал,получите,как говорится и распишитесь.Получил сие в мае 2003,до сих пор лежит,думаю когда нибудь соберу(после того,как "сваяю" Орион 512).
В письме Смирнов пишет уточнения по сборка Мультикарты.Вложение 60612Вложение 60613Вложение 60614Вложение 60615Вложение 60616Вложение 60617Вложение 60618Вложение 60619Вложение 60620Вложение 60621Вложение 60622Вложение 60623
С этой парты не видно! (с)
А с этой видно? https://yadi.sk/d/_9nnSLCv3Gs9Cz
Выложить все файлы в виде архива. Так ничего не разобрать.
Выложил на Яндекс диск,ссылка в предыдущем посте.
- - - Добавлено - - -
Можете посмотреть https://yadi.sk/d/_9nnSLCv3Gs9Cz
- - - Добавлено - - -
Выложил по просьбе DIMKA55
Схема и ПО (ORDOS) разрабатывалась и с возможностью применения и адаптации для Ориона-128
Просто у меня на ходу был ПРО который почти все время работал в режиме 128 на 10 Mhz (оно же быстрее чем ВМ80 на 2,5)
при компиляции указываешь ключ для чего собирать и всё
Правда для 128 предполагалось использовать монитор версии 4.10
Вопрос к знатокам устройства часиков (512ВИ1) на плате IDE-RTC. Дошли руки пописать под них ПО, всё прекрасно работает, но есть большой и неприятный глюк! Если после любого обращения к часам выключить питание компа, то комп не стартует (на экране хаотично мигающий мусор). Аппаратный сброс не помогает. Помогает только выключить и подождать 20+ секунд. После (видимо глубокой разрядки кондёров по питанию) комп стартует и работает нормально. Глюк стабильный. Если не обращаться к ВИ1, то комп выключается-включается нормально. Пробником в железку пока не лазил, но по симптомам полное ощущение, что эта самая ВИ1 при старте "светит в ШД" и т.о. мешает работе ЦПУ. Вероятно, после обращения к ВИ1, её нужно как-то специально переводить в сон, но как?
Я перерисовал с "китайского" на "русский" причинный участок схемы:
https://pp.userapi.com/c637424/v6374...l5HufL7yvo.jpg
Вижу некий "рассыпной" триггер на рулёжку чипселектом ВИ1, активируется он похоже стробом адреса ВИ1 (AS), а вот с деактивацией я не понимаю что там наворочено...
Никакой документации по программированию нет (или у кого-то есть?). Есть чужая утилита работы с этими часами, там никаких откровений, и с ней глюк тот же самый. Как понять задумку авторов?
В 90-х я запускал ВИ1 по инструкции из Радиоежегодника-89 (легко прогугливается в djvu), в т.ч. и начальную программу использовал сначала именно ту что публиковалась там, только перевел в мнемоники Z80, она потом "обросла мясом", перетекла в драйвер для CP/M и т.п. Но инициализация и режимы скорее всего остались "как в учебнике", и описываемой проблемы я не припоминаю. Кстати, режимы используются другие чем например в VC Ориона-ПРО (например режим BCD-счета, возможно и другие). А проблема на всех экземплярах ВИ1 воспроизводится?
Вот как оно в коде инициализируется:
Скрытый текст
Код:ADDRVI EQU 0F760H ;
; инициализация апп. часов
LD BC,270AH ; ПИШЕМ В РЕГ. А Q=32768 Гц SQW=512 Гц
call VIset
LD BC,860BH ; ЗАПРЕТИТЬ СЧЕТ, ДВОИЧНЫЙ ФОРМАТ
call VIset
LD C,0 ; УСТАНОВИТЬ СЧЕТЧИКИ:
LD A,(SEC)
LD B,A ; СЕКУНД
call VIset
LD C,2
LD A,(MIN)
LD B,A ; МИНУТ
call VIset
LD C,4
LD A,(HOUR)
LD B,a ; ЧАСОВ
call VIset
LD BC,060Bh ; РАЗРЕШИТЬ СЧЕТ
;
; Set byte to 512VI1 CMOS. Inp: C=register(address), B=value
;
VIset:
SetVI128:
ld (ADDRVI),bc
ret
[свернуть]
И далее так используется:
Скрытый текст
Код:; получить дату в формате ДД:ММ:ГГ
IGETDT: ld hl,BUFFER+17
ld de,BUFFER+20
ld bc,17
lddr
CALL GETDAT0
ld hl,DAY
ld de,BUFFER
ld bc,3
ldir
ld a,3
jp ADDNBF
GETDAT0:LD A,(VI1) ; 0 - программ., 1 - 512ВИ1
OR A
RET Z ; выход, если прогр. часы
GETDAT1:LD C,0Ah
call VIget
RLCA
JR C,GETDAT1 ; цикл, если идет обновление
LD C,7
call VIget
ld (DAY),a
ld C,8
call VIget
ld (MON),a
ld C,9
call VIget
ld (YEAR),a
ret
; установить дату в формате ДД:ММ:ГГ
ISETDT: ld hl,PARBUF
ld de,DAY
ld bc,3
ldir
LD A,(VI1) ; 0 - програм., 1 - 512ВИ1
OR A
RET Z
; установка даты апп. часов
SETDAT1:LD C,0Ah
call VIget
RLCA
JR C,SETDAT1 ; цикл, если идет обновление
LD C,7 ; УСТАНОВИТЬ СЧЕТЧИКИ:
LD A,(DAY)
LD B,A ; дней месяца
call VIset
LD C,8
LD A,(MON)
LD B,A ; месяцев
call VIset
LD C,9
LD A,(YEAR)
LD B,a ; лет
jp VIset
;
; Get byte from 512VI1 CMOS. Inp: C=register(address), Out:A=value
;
VIget:
GetVI128:
ld a,c
ld (ADDRVI),a
ld a,(ADDRVI+1)
ret
[свернуть]
Из того что еще вспоминается: никак не работало тогда корректное определение сбоя регистров часов по пропаданию питания (в ВИ1 есть спец бит в каком-то регистре). Не работало как описано: то нормально определит, то глюк, так и не понял почему. И в итоге стали тупо писать в некоторые ячейки пользовательского ОЗУ ВИ1 некий хеш, и при старте ОС проверять его как флаг того что данные валидны. Т.е. в реальной ВИ1 не всё может быть как оно в теории в даташите.
Что забавно: работы с ВИ1 начал только потому, что случайно купил этот Радиоежегодник (в 89г. у меня еще не было Ориона, я тогда тупо скупал в книжном все интересные журналы по радиотехнике, и должен заметить, во Владимире их было очень мало, даже приходилось посидеть в библиотеке в охотку) и также случайно году в 93-94 когда Орион у меня уже был, в магазе что-то очень задешево продавались сами ВИ1.