User Tag List

Показано с 1 по 9 из 9

Тема: ЭЛЕКТРОНИКА МК-106

  1. #1

    Регистрация
    30.07.2013
    Адрес
    г. Запорожье, Украина
    Сообщений
    964
    Спасибо Благодарностей отдано 
    83
    Спасибо Благодарностей получено 
    138
    Поблагодарили
    75 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию ЭЛЕКТРОНИКА МК-106



    Встретил я это устройство на сайте Сергея Фролова http://www.leningrad.su/museum/show_calc.php?n=136
    Заинтересовался по двум причинам: 1.Комп на ВМ85; 2. Как говорят авторы - "Возможно, это одна из последних советских разработок микрокомпьютеров"

    Краткие характеристики (с сайта ЗАО «КРОС-НИАТ» http://www.kros-niat.ru/docs/product..._history.php):
    Процессор – 8-разрядный К1821ВМ85 (аналог Intel 80C85);
    Быстродействие – 0,5 млн. операций в сек.;
    ОЗУ – 32 кбайт;
    ПЗУ – 32 кбайт;
    Экран – жидкокристаллический 64х120 точек (8 строк по 20 символов) – от микрокалькулятора «Электроника МК-90» (производства НПО «Интеграл», г.Минск);
    Внешнее ЗУ – магнитофон или сменный модуль памяти (СМП) – 16 кбайт;
    Внешние интерфейсы – ИРПС (токовая петля) и CENTRONICS (упрощенный);
    Питание – от сети через адаптер БП2-3 или от аккумуляторов НКГЦ-0,5 (4 шт., типоразмер АА);
    Размеры: 220x155x40 мм (в сложенном состоянии);

    Связался с разработчиком Андрушкевичем Владимиром из ЗАО «КРОС-НИАТ». Вот что удалось узнать (выдержки из переписки):

    ===============
    Все, что было, передали Сергею Фролову и выложили на http://www.kros-niat.ru/docs/product...6_history.php? . Исходный код не сохранился.Возможно только - если найду синьку на работе - сфотографировать схему полностью. Разработка ПО, насколько помню, остановилась на БИОС. Основа архитектуры - "Специалист" - полное описание публиковалось в "Моделисте-конструкторе". Вероятней всего, программист (а это была девушка) просто "перекладывал" напечатанные в журнале дампы на ЭВМ серии СМ... Применяли и какой-то очень дорогой по тем временам эмулятор, приобретенный в Риге. За ЖК-панелями, помнится, я лично ездил в Минск на "Интеграл".На нашем сайте по истории создания вроде все написано. Могу только добавить, что оригинальный дизайн клавиатуры разрабатывала тоже дама - дизайнер с завода.Ещё интересно, что МК-106 вызвал тогда ещё интерес не столько как "ширпотреб", а как инструментальное средство для ввода и обработки информации. Это уже со слов моих бывших коллег и вполне естественно. Ведь "калькомп" делали специалисты, занимавшиеся до того автоматизацией производства.
    ===============
    На миллиметровке исходник схемы, на синьке уже документация. Прототип сделан по синьке.
    По м/с ОЗУ. Рассчитывали на отечественные 537РУ17 на 8кх8, потом, видимо, появилась возможность приобрести импорт на 32кх8. Корпус и распиновка у них одинаковая, только адресов добавилось. Так что достаточно было установить перемычки в нужном месте, использовать CS в качестве дополнительного адреса. Можете посмотреть по http://www.partnumber.co.kr/pdfhtml/087 ... /page1.png и сравнить с РУ17.
    Зачем нужна вторая м/с видеоозу - не помню. Возможно, закладывались на применение менее емких микросхем, дисплею и 8к8 с избытком вроде хватало.
    ===============
    По прерываниям, связанным с питанием -
    В МК 106 были реализованы энергонезависимые часы - с питанием от аккумуляторов, если основное питание +5В.отключалось. Узел "пульсирующего питания" м/с D40, питается от цепи +5В-Б, м/с ОЗУ для хранения данных питались от отвода с пары аккумуляторов - цепь +2В-Б. Для питания всей схемы аккумулятор подключался только при открытой крышке.
    D40 раз вроде в секунду подключало питание +5В-Б через транзисторный ключ ко всей схеме через триггеры D39 и подавало прерывание PRER на "п/программу часов". Сброс этого прерывания - R-PRER. После исполнения этой п/программы процессор мог сам себе отключить питание с помощью R-USS в целях экономии заряда батареи. О логике работы есть запись карандашом на синьке в правом нижнем углу. Можно ещё с исходником на миллиметровке сравнить - как и что менялось по ходу.
    В принципе, в начале "реанимации" МК-106 этим аппаратным изыском лучше не заморачиваться.
    По откл. ПЗУ - вполне вероятно, что для разделения доступа с ОЗУ - может быть, тут лучше сравнить с типовыми решениями на 8085. То же по клавиатуре - я по этой части ничего не помню.
    ===============

    Так же были получены фото оригинальной схемы, которая была переведена в электронный вид. Архив с прошивкой, находящийся на сайте ЗАО «КРОС-НИАТ», содержит несколько вариантов, вернее это одно и то же, но с отличиями - то ли программатор, то ли сама ПЗУшка подглючивали. На соснове этих прошивок были получены следующие данные:

    Код:
    Mem
    C000h-FFFFh - ПЗУ
    A000h-BFFFh - резерв
    8000h-9FFFh - видео ОЗУ (15x64 байт), OUT 0xFF / клавиатура, OUT 0xFE
    0000h-7FFFh - ОЗУ
    
    ВидеоОЗУ
    9000h	9100h	...	9E00h
    9001h	9101h	...	9E01h
    ...	...	...	...
    903Fh	913Fh	...	9E3Fh
    
    I/O
    Запись
    F8h - данные, принтер
    F9h - R-PRER, сброс RST6.5 (34h)
    FAh - R-USS, откл. птание
    FBh - вкл. ПЗУ
    FCh - откл. ПЗУ
    FDh - звук, бит D1
    FEh - вкл. клавиатуру
    FFh - откл. клавиатуру
    
    Font
    0x00-0x7F - ASCII
    0x80-0xAF & 0xC0-0xE0 - CP866
    0xB0-0xBA - маленькие цифры с подчеркиванием
    
    KeyMap
    D7 D6  D5  D4  D3  D2  D1  D0
    F1|F9 | / | V | C | X | Z | . |  0x90FE
    F2|F10| ; | G | F | D | S | A |  0x90FD
    F3|F11|del| T | R | E | W | Q |  0x90FB
    F4|F12| _ | 5 | 4 | 3 | 2 | 1 |  0x90F7
    F5|cs | + | 6 | 7 | 8 | 9 | 0 |  0x90EF
    F6|ss |lf | Y | U | I | O | P |  0x90DF
    F7|F13| ' | H | J | K | L |cr |  0x90BF
    F8|F14|nul| B | N | M | , |   |  0x907F
    
    D7 D6  D5  D4  D3  D2  D1  D0
    F1|F9 | Ё | М | С | Ч | Я | Ю |  0x90FE
    F2|F10| Ж | П | А | В | Ы | Ф |  0x90FD
    F3|F11| Х | Е | К | У | Ц | Й |  0x90FB
    F4|F12| - | % | $ | # | @ | ! |  0x90F7
    F5|cs | = | & | ' | ( | ) |del|  0x90EF
    F6|ss | Ъ | Н | Г | Ш | Щ | З |  0x90DF
    F7|F13| Э | Р | О | Л | Д |cr |  0x90BF
    F8|F14|nul| И | Т | Ь | Б |   |  0x907F
    
    D7 D6  D5  D4  D3  D1  D1  D0
    F1|F9 | ? |nul|nul|nul|nul| > |  0x90FE
    F2|F10| : |nul|nul|nul|nul|nul|  0x90FD
    F3|F11| [ |nul| + | - | * | / |  0x90FB
    F4|F12|esc|em |ff |can|sub|bs |  0x90F7
    F5|cs |us |dc1|dc2|dc3|dle|fs |  0x90EF
    F6|ss | ] |nul|nul|nul|nul|nul|  0x90DF
    F7| ^ | " |nul|nul|nul| = |cr |  0x90BF
    F8|nul|nul|nul|nul|nul| < | > |  0x907F
    
    0x00	nul
    0x08	bs	BACKSPACE		возврат на шаг
    0x0A	lf	LINE FEED		перевод строки
    0x0C	ff	FORM FEED		прогон страницы, смена страницы
    0x0D	cr	CARRIAGE RETURN		Возврат каретки
    0x0E	cs	SHIFT OUT		режим национальных символов
    0x0F	ss	SHIFT IN 		режим обычного ASCII
    0x10	dle	DATA LINK ESCAPE	освобождение канала данных (следующий за ним символ должен восприниматься как данные)
    0x11	dc1	DEVICE CONTROL ONE	1-й код управления устройством (разрешает продолжить вывод данных)
    0x12	dc2	DEVICE CONTROL TWO	2-й код управления устройством
    0x13	dc3	DEVICE CONTROL THREE	3-й код управления устройством (временно приостанавливает вывод данных)
    0x18	can	CANCEL			отмена
    0x19	em	END OF MEDIUM		конец носителя
    0x1A	sub	SUBSTITUTE		символ замены (В CP/M и MS-DOS использовался для обозначения конца текстовых файлов)
    0x1B	esc	ESCAPE			Альтернативный регистр № 2 (АР2) (Обычно начинает управляющие последовательности)
    0x1C	fs	INFORMATION SEPARATOR FOUR (file separator)	разделитель данных № 4 (разделитель файлов)
    0x1F	us	INFORMATION SEPARATOR ONE (unit separator)	разделитель данных № 1 (разделитель полей)
    0x7F	del	DELETE			удаление
    Сама прошивка не содержит ничего,что есть на стартовом экране, кроме работы часов и редактирования записной книжки. Но даже эти функции были "битые". Совместно с Дмитрием Целиковым были частично восстановлены эти функции (запиь в книжку так и не работает). Заново функции не писались, а пытались восстановить испорченый код. Дмитрием был переделан его эмулятор под МК-106. Работа на данный момент приостановлена из-за нехватки времени. Поэтому, что бы ничего не пропало, выкладываю наработанные материалы. Возможно у когото хватит опыта и времени написать полноценную прошивку. Сейчас в эмуляторе подключена прошивка с добавленным Монитором, еще бы добавить Бейсик и будет почти готово...

    Всё находится здесь:
    https://drive.google.com/drive/folde...l7?usp=sharing

    Эти 7 пользователя(ей) поблагодарили Alex_LG за это полезное сообщение:

    CityAceE(18.10.2021), murgatroid_79(23.10.2021), nzeemin(18.11.2025), Radon17(19.10.2021), siemensC35(17.11.2025), TomaTLAB(18.10.2021), Копейкин(10.12.2025)

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    30.07.2013
    Адрес
    г. Запорожье, Украина
    Сообщений
    964
    Спасибо Благодарностей отдано 
    83
    Спасибо Благодарностей получено 
    138
    Поблагодарили
    75 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию





    Итак, 34 годовщине разработки МК-106 посвящается...
    Воссоздана экспериментальная модель МК-106 по оригинальным чертежам. К сожалению нет ни чертежей ни фото платы для воссоздания полной реплики. В данном прототипе вместо оригинального ЖКИ модуля от МК-90 был использован эмулятор данного модуля. Теперь более подробно.

    Черновой вариант оригинальной схемы был сделан на «миллиметровке», в дальнейшем, при создании первого прототипа разработчиками, схема была изменена в плане элементной базы, а так же функционирования некоторых узлов. В ходе создания данного рабочего прототипа в схему были внесены некоторые изменения и улучшения:
    - переработана схема дешифрации адресного пространства;
    - увеличен объем адресуемого ОЗУ с 16кБ до 32кБ (в оригинальной схеме используется статическая память по 8кБ, но на фото видно, что установлена микросхема памяти на 32кБ, т.е. разработчиками был увеличен объем, но в схему изменения небыли внесены);
    - исправлена адресация внутренних портов В/В (в оригинальной схеме дешифрация внутренних портов В/В для записи происходит только адресными линиями А0-А3, а чтение – только А7/А15, т.о. внутренние порты В/В перекрывают все адресное пространство от 00h до FFh, в исправленной схеме внутренние порты В/В занимают адреса от 80h до FFh);
    - сигнал /BANK формируется при обращении в адресное пространство ПЗУ C000h - FFFFh (в оригинале – 8000h - FFFFh), что позволяет переключаться между системным и дополнительным ПЗУ, т.о. увеличив объем ПЗУ до 32кБ, или подключить дополнительное ОЗУ вместо системного ПЗУ, тем самым, увеличив ОЗУ микрокомпьютера до 64кБ;
    - узел «пульсирующего питания» был убран, т.к. он подразумевал использование прерывания RST6.5 с переходом на п/п по адресу 34h, т.е. этот адрес должен быть постоянно занят системой, что накладывает большие ограничения на использование данной области ОЗУ пользователем, этот узел был переделан на включение/выключение микрокомпьютера по нажатию кнопки без фиксации;
    - убрана схема согласования уровней сигнала порта ИРПС «токовая петля», реализованного через сигналы процессора SID и SOD, которые так же используются для связи с магнитофоном, т.е. этот порт выполняет функцию загрузки/сохранения программ на РС (через конвертор «USB to TTL») или эмулятор магнитофона (уровни TTL).
    Так же были внесены несколько других мелких изменений. Все изменения не затронули элементную базу и логику работы оригинального микрокомпьютера. Разработчиками была заявлена поддержка внешних модулей памяти (СМП) от микрокомпьютера МК-90, но в оригинальной схеме это реализовано не было. В дальнейшем планируется сделать поддержку модулей СМП и аппаратный последовательный порт в виде внешних подключаемых модулей.

    Код:
    Распределение памяти:
    C000h-FFFFh – системное ПЗУ (16кБ), может заменятся другим ПЗУ или ОЗУ;
    A000h-BFFFh - системное ОЗУ №2 (8кБ);
    8000h-9FFFh - системное ОЗУ №1, содержит видеопамять с адреса 9000h, отключается при опросе клавиатуры;  
    0000h-7FFFh - ОЗУ пользователя, стек  (32кБ).
    
    Распределение видеопамяти:
    9000h	9100h	...	9E00h
    9001h	9101h	...	9E01h
    ...	...	...	...
    903Fh	913Fh	...	9E3Fh
    
    Распределение памяти при переключении на опрос клавиатуры:
    D7 D6  D5  D4  D3  D2  D1  D0
    F1|F9 | / | V | C | X | Z | . |  0x90FE
    F2|F10| ; | G | F | D | S | A |  0x90FD
    F3|F11|del| T | R | E | W | Q |  0x90FB
    F4|F12| _ | 5 | 4 | 3 | 2 | 1 |  0x90F7
    F5|cs | + | 6 | 7 | 8 | 9 | 0 |  0x90EF
    F6|ss |lf | Y | U | I | O | P |  0x90DF
    F7|F13| ' | H | J | K | L |cr |  0x90BF
    F8|F14|nul| B | N | M | , |   |  0x907F
    
    Распределение внутренних портов ввода-вывода:
    F8h - данные принтера (запись);
    F9h – сброс прерывания RST6.5 (запись);
    FAh - отключение питания (запись);
    FBh - отключение системного ПЗУ (запись);
    FCh - включение системного ПЗУ (запись)
    FDh - звук, бит D1 (запись);
    FEh – включить опрос клавиатуры (запись);
    FFh – отключить опрос клавиатуры (запись);
    7Fh - джойстик (D0-Left, D1-Right, D2-Up, D3-Down, D4-Fire), авария (D5- батарея разряжена), принтер (D0 - /BUSY) (чтение).
    - - - Добавлено - - -

    Системное ПЗУ

    Системное ПЗУ содержит Монитор, Ассемблер и Бейсик. При старте микрокомпьютера появляется меню с возможностью выбора данных программ. Если системное ОЗУ с адреса A000h содержит дополнительную программу, то ее название появится в стартовом меню (адрес A000h должен содержать код 0C3H, а с адреса A003h должно быть короткое, не более 12 символов, название программы с кодом 000h в конце).

    Код:
    Системные подпрограммы:
    
    «Холодный» старт системы (COLD_START)
    Адрес: 0C000H
    
    «Теплый» старт системы (WARM_START)
    Адрес: 0C003H
    
    Очистка экрана (MON_CLS)
    Адрес: 0C006H
    
    Вывод символа на экран (MON_PRN_CHR_A)
    Адрес: 0C009H
    Вход: A-код символа (>019Н)
    
    Перевод строки (MON_PRN_CRLF)
    Адрес: 0C00CH
    
    Прокрутка экрана вверх на одну строку (MON_SCROLL_UP)
    Адрес: 0C00FH
    
    Прокрутка экрана вниз на одну строку (MON_SCROLL_DOWN)
    Адрес: 0C012H
    
    Получить абсолютные координаты печати/курсора (MON_GET_XY)
    Адрес: 0C015H
    Выход: L=строка, H=колонка
    
    Установить абсолютные координаты печати/курсора (MON_SET_XY)	
    Адрес: 0C018H
    Вход: L=строка, H=колонка
    
    Сравнить содержимое HL и DE(MON_CMP)
    Адрес: 0C01BH
    Выход: Z=0 если [HL]=[DE], С=0 если [HL]>[DE], С=1 если [HL]<[DE]
    
    Копировать область памяти (MON_COPY)
    Адрес: 0C01EH
    Вход: HL=начало источника, DE=конец источника, BC=начальный адрес приемника (BC]>[DE] или [BC]<[HL])
    
    Заполнение области памяти константой (MON_FILL)
    Адрес: 0C021H
    Вход: C=константа, HL=начало области, DE=конец области
    
    Печать содержимого HL в 16-ричном виде (MON_PRN_HL)
    Адрес: 0C024H
    
    Подпрограмма обработки часов/календаря (MON_WATCH)
    Адрес: 0C027H
    
    Подпрограмма запуска часов (MON_RUN_WATCH)
    Адрес: 0C02AH
    Примечание. Разрешает прерывания RST6.5 и записывает по адресу 034Н код вызова подпрограммы обработки часов MON_WATCH.
    
    Запрос на продолжение вывода (прокрутка) при заполнении экран (MON_ASK_SCROLL)
    Адрес: 0C02DH
    Выход: Z=1-продолжить, Z=0-прервать
    Примечание. Обращение к данной подпрограмме нужно ставить перед выводом очередной строки.
    
    Пауза (MON_PAUSE)
    Адрес: 0C030H
    Вход: HL=длительность
    
    Подпрограмма загрузки файла (MON_LOAD)
    Адрес: 0C033H
    
    Подпрограмма сохранения файла (MON_SAVE)
    Адрес: 0C036H
    Вход: HL=начало, DE=конец
    - - - Добавлено - - -

    Монитор

    Программа Монитор является измененной программой Монитор-2 от компьютера «Специалист».
    Клавиши управления:

    F1 – Выход в стартовое меню
    F2 – Редактор/Ассемблер

    Все команды остались без изменения за исключением двух. Команда «Х» была исключена, т.к. команда «G» получила новый формат:

    G[адрес запуска],[HL],[DE],[BC]

    где в параметрах [HL],[DE] и [BC] можно указать начальное значение соответствующих регистровых пар, т.е. программу можно запускать с параметрами.
    Так же изменения коснулись вывода информации на экран – при заполнении экрана, выводится запрос на продолжения вывода.
    Выполнение команд чтения и записи (I, O, R) прервать нельзя, однако при вводе пустого имени (для команд I, O) происходит выход. Формат хранения файлов на «ленте» соответствует формату фалов RKS с заголовком, т.е.:
    Заголовок – 3 байта D9h, имя файла в формате 8.3, 255 байт 000h, E6h, адрес загрузки (младший байт, старший байт), адрес конца (младший байт, старший байт);
    Данные;
    Контрольная сумма (младший байт, старший байт).
    Т.к. работа микрокомпьютера не предусмотрена с реальным магнитофоном, то формат сигнала для записи/чтения байта соответствует параметрам протокола RS-232 на скорости 9600bps (проверки четности нет, 1 стоп бит). Из-за того, что данный протокол реализован программно, необходимы задержки между байтами при передачи/приеме. В качестве носителя информации использован «цифровой магнитофон» (только для команд I, O) на микроконтроллере семейства AVR с SD-картой и реализовано управление передачей через состояние линий TxD и RxD. При передачи данных, микрокомпьютер или «магнитофон» проверяют входную линию и если она в «1», то начинается передача байта. Т.о. реализуются задержки, необходимые для обработки блоков данных или их записи на карту. Так же загружать данные можно с РС через терминал, в котором выставляется задержка при передачи (например, в программе Terminal by Br@y++ выставлять задержки не нужно, внутренней задержки программы достаточно, чтобы микрокомпьютер успевал обработать данные). Выставление микрокомпьютером выхода в «0» при приеме данных от РС, воспринимается терминальной программой как байт FFh, что может служить индикатором приема данных микрокомпьютером. Через терминал, так же, можно загружать программы без заголовка (команда R) в виде бинарного файла, содержащего только адрес начала и конца загрузки, данные и контрольная сумма. При необходимости загрузки какой-либо программы по команде I, микрокомпьютер сначала передает на выход строку «LOAD:имя файла», которая служит командой для «цифрового магнитофона» (есть еще команды KILL, DIR, FREE), терминалом она игнорируется.
    Для команд Записи/Чтения файла используется имя в формате 8.3. В качестве расширения имени, рекомендуется использовать «RKS» или «BIN».

    Код:
    Адреса подпрограмм и параметры вызова, за исключением нескольких подпрограмм, остались прежними:
    
    Старт Монитора (MON_START)
    Адрес: 0C800H
    	
    Ввод символа с клавиатуры (MON_GET_KEY_CODE)
    Адрес: 0C803H
    Выход: A=код символа/клавиши
    
    Получение одного байта с магнитофона/терминала (MON_TYPE_GET_BYTE)
    Адрес: 0C806H
    Выход: A=полученный байт
    
    Печать символа по текущим координатам (MON_PRN_CHR)
    Адрес: 0C809H
    Вход: C-код символа
    Примечание. Обрабатываются так же коды 007H (Beep), 00AH (Line feed), 00DH (Carriage return), 018H (RIGHT), 008H (LEFT/Backspace), 019H (UP), 01AH (DOWN), 00CH (HOME), 01FH (Clear screen)
    
    Вывод байта на магнитофон/терминал (MON_TYPE_PUT_BYTE)
    Адрес: 0C80CH	
    Вход: A=байт для передачи
    
    Ввод строки (MON_GET_STR)
    Адрес: 0C80FH
    Вход: HL=начало буфера, DE=конец буфера
    
    Состояние клавиатура (MON_KB_STATUS)
    Адрес: 0C812H
    Выход: A=FF – была нажата клавиша, A=0 – нет нажатия
    
    Печать байта в 16-ричном виде (MON_PRN_HEX)
    Адрес: 0C815H
    Вход: A=байт
    
    Печать строки (MON_PRN_STR)
    Адрес: 0C818H
    Вход: HL=адрес начала строки (строка должна заканчиваться кодом 000Н)
    
    Запрос кода нажатой клавиши (MON_GET_KEY)
    Адрес: 0C81BH
    Выход: A=FF – клавиша не нажата иначе A=код клавиши
    
    Запрос текущих координат печати/курсора (MON_GET_CUR_POS)
    Адрес: 0C81EH
    Выход: H=горизонтальная координата, L=вертикальная координата
    
    Вывод байта на принтер (MON_PRINT)
    Адрес: 0C821H
    Вход: С=байт
    
    Получение блока данных с магнитофона/терминала (MON_TYPE_GET_BLOCK)
    Адрес: 0C824H
    Выход: HL=начальных адрес, DE=конечный адрес, BC=контрольная сумма, Inp_FileName=имя файла
    
    Вывод блока данных на магнитофон/терминал (MON_TYPE_PUT_BLOCK)
    Адрес: 0C827H
    Вход: HL=начальных адрес, DE=конечный адрес, BC=контрольная сумма, Inp_FileName=имя файла
    	
    Расчет контрольной суммы (MON_CHK_SUM)
    Адрес:0C82AH
    Вход: HL=начальных адрес, DE=конечный адрес 
    Выход: BC=контрольная сумма
    
    Вывод звукового сигнала (MON_SOUND)
    Адрес: 0C82DH
    Вход: H=продолжительность, L-тон
    
    Получение верхней границы памяти (MON_GET_MAX_RAM)
    Адрес: 0C830H
    Выход: HL=адрес границы
    
    Установка верхней границы памяти (MON_SET_MAX_RAM)
    Адрес: 0C833H
    Вход: HL= адрес границы
    
    Вывод строки на магнитофон/терминал (MON_TYPE_PUT_STRING)
    Адрес: 0C836H
    Вход: HL=адрес начала строки (строка должна заканчиваться кодом 000Н)
    
    Системные ячейки так же, в основном, соответствуют Монитору-2 «Специалиста». Дополнения и изменения:
    
    Секунды (Second) = 08F4EH
    Минуты (Minute) = 08F4FH
    Часы (Hour) = 08F50H
    Месяц (Month) = 08F51H
    День (Day) = 08F52H
    Год (Year) = 08F53H
    Имя файла для загрузки/записи (Inp_FileName) = 08FC1H	 (формат 8.3 + 000Н)
    Адрес таблицы шрифтов (ChrTable) = 08FE7H
    Текущая раскладка клавиатуры (KBLayout) = 08FECH (D3 - прокрутка вкл/выкл, D2 - Alt, D1 - CapsShift, D0 - рус/лат)
    Константа задержки при записи (TSpeed) = 08FFEH (по умолчанию равна 00052H, что соответствует 1мс).
    - - - Добавлено - - -

    Ассемблер

    Это адаптированная версия ассемблера «Микрон» от «Специалиста». Текстовый редактор - свой. Редактор и Ассемблер работают из ПЗУ, в своей работе используют ячейки памяти с адреса 06800H по 0686DH. Текст программы хранится с адреса 02000H и может быть объемом до 16кБ. Откомпилированный код хранится с адреса 00000Н, поэтому, если адрес запуска другой, то код необходимо переместить по нужному адресу командой Т Монитора. При запуске, Редактор спросит об очистке памяти запросом «Новый? (Д/Н)». Если нажать «Д», то текст, ранее находящийся в памяти, будет удален. Так же, память необходимо очищать при первом запуске.
    Клавиши управления:

    F1 – Выход в Монитор
    F2 - Ассемблер/Редактор
    F4 – Перейти в начало текста (Home)
    F5 – Перейти на страницу вверх (PageUp)
    F6 – Перейти на страницу вниз (PageDown)
    F7 – Перейти в конец текста (End)
    F8 - Выкл/вкл режима вставки символа (Insert)
    F9 - Вкл/выкл режим выделения текста
    F10 – Включить режим копирования/перемещения выделенного текста в текущую позицию: C-копировать, X-переместить
    F11 – Загрузить файл
    F12 – Сохранить файл
    F13 – Новый файл
    Для команд Записи/Чтения файла используется имя в формате 8.3. В качестве расширения имени, рекомендуется использовать «ASM».

    Бейсик

    Это адаптированная первая версия Бейсика для «Специалиста», который, в свою очередь, был адаптирован от компьютера «Микро-80». Отличий от Бейсика «Специалиста» нет, за исключением того, что вместо команды DPL (постройка отрезка по относительным координатам) была возвращена команда INP (чтение данных с внешнего порта Ввода/Вывода) и подпрограмма с RST6 перемещена на RST7 для освобождения места под RST6.5 (адрес 0034H) для возможности запуска часов при работе Бейсика. Так же изменения были внесены в формат хранения программ – он соответствует формату Монитора, т.е. формату файлов типа «RKS». Текст программы хранится с адреса 02000H, сам интерпретатор при старте копируется из ПЗУ в ОЗУ с адреса 00000Н и занимает около 6кБ. В своей работе Бейсик дополнительно использует ячейки с 08000H по 0800CH.
    Клавиши управления:

    F1 – Выход в Монитор
    F3 – Стоп (возврат в Бейсик)
    F11 – Загрузить файл (аналог команды MLOAD)
    F12 – Сохранить файл (аналог команды MSAVE)
    Для команд Записи/Чтения файла используется имя в формате 8.3. В качестве расширения имени, рекомендуется использовать «BAS».

    Эти 3 пользователя(ей) поблагодарили Alex_LG за это полезное сообщение:

    nzeemin(18.11.2025), yevrowl(18.11.2025), Копейкин(10.12.2025)

  4. #3

    Регистрация
    06.12.2009
    Адрес
    г. Москва
    Сообщений
    39
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Спасибо за интересный проект! Объем труда впечатляет.

    Есть ли планы по развитию проекта Вами или по развитию в формате open-source? Вряд ли моих познаний хватит для написания софта, но наверное мог бы помочь в трассировке плат или проектировании корпуса, если такое предполагается.

    Еще вопрос -- какую схему вы использовали для "эмулятора" дисплея МК-90?
    Последний раз редактировалось Kasiq; 16.11.2025 в 23:23.

  5. #4

    Регистрация
    30.07.2013
    Адрес
    г. Запорожье, Украина
    Сообщений
    964
    Спасибо Благодарностей отдано 
    83
    Спасибо Благодарностей получено 
    138
    Поблагодарили
    75 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Kasiq Посмотреть сообщение
    Еще вопрос -- какую схему вы использовали для "эмулятора" дисплея МК-90?
    По дисплею я писал здесь
    https://zx-pk.ru/threads/36316-zamen...vremennyj.html

    По поводу проекта - он открыт. Схема и прошивка есть по ссылке в первом сообщении. Платы нет и буду благодарен любой помощи. Планирую дальше развивать проект в плане дополнительных модулей, в первую очередь нужно полноценный rs232 и потдержка модулей памяти от мк-90.

  6. #5

    Регистрация
    06.12.2009
    Адрес
    г. Москва
    Сообщений
    39
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_LG Посмотреть сообщение
    потдержка модулей памяти от мк-90.
    Не знаю, есть ли в этом смысл -- все ж штука сама по себе довольно редкая, а главное -- в корпусе же нет под него слота, я так понимаю, плата занимает всю площадь... Или вы имеете в виду поддержку в виде эмулятора, а физически SD карту (вроде был такой проект)?

    Цитата Сообщение от Alex_LG Посмотреть сообщение
    По поводу проекта - он открыт. Схема и прошивка есть по ссылке в первом сообщении.
    Я видел по ссылке схему в PDF (v3), не подскажете, какой CAD использовался? Может, получится прямо ваш файл для трассировки использовать, чтобы не перерисовывать и риск ошибки снизить.

  7. #6

    Регистрация
    26.04.2009
    Адрес
    г. Воронеж
    Сообщений
    6,480
    Спасибо Благодарностей отдано 
    310
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    217 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Kasiq Посмотреть сообщение
    Не знаю, есть ли в этом смысл
    И вообще странный гибрид бульдога с носорогом: комп вариант Специалиста, модули памяти от МК-90. Ну, 34 года назад понятно, что других "флешек" не было, но посколько это не было реализовано, то можно сделать что-то своё на совеременной или статике тех лет. С доставаемой комплектухой и разъёмами.
    "Во времена всеобщей лжи говорить правду - это экстремизм" - афоризм.

  8. #7

    Регистрация
    30.07.2013
    Адрес
    г. Запорожье, Украина
    Сообщений
    964
    Спасибо Благодарностей отдано 
    83
    Спасибо Благодарностей получено 
    138
    Поблагодарили
    75 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Kasiq, CodeMaster, да, разработчиками потдержка СМП в схеме не реализована, хочу сделать это в виде модуля, подключаемого к системному разъему. СМП - редкая вещь, но есть схемы его эмуляции на современных контроллерах.
    На данный момент я использую для хранения программ "цифровой магнитофон" на атмеге8+sd (3 фото}, работа с ним есть на видео.

    - - - Добавлено - - -

    Цитата Сообщение от Kasiq Посмотреть сообщение
    Я видел по ссылке схему в PDF (v3), не подскажете, какой CAD использовался?
    Eagle CAD

  9. #8

    Регистрация
    30.07.2013
    Адрес
    г. Запорожье, Украина
    Сообщений
    964
    Спасибо Благодарностей отдано 
    83
    Спасибо Благодарностей получено 
    138
    Поблагодарили
    75 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Благодаря фото (см. по ссылке в первом посте) внутренностей прототипа, предоставленных Сергеем Фроловым, удалось восстановить оригинальное расположение элементов на плате:


    Т.к. общее фото платы со стороны элементов сделать не возможно, пришлось "склеивать" различные куски и править искажения, в общем, вышло корявенько, но разобрать можно:


    P.S. На плате не распаян узел «пульсирующего питания», в узле согласования уровней ИРПС была использована микросхема АОТ128 (нумерация выводов не совпадает со схемой), так же присутствуют элементы и связи, которые на чертеже исправлены.

  10. #9

    Регистрация
    30.07.2013
    Адрес
    г. Запорожье, Украина
    Сообщений
    964
    Спасибо Благодарностей отдано 
    83
    Спасибо Благодарностей получено 
    138
    Поблагодарили
    75 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Для хранения файлов я использую некую смесь "цифрового магнитофона" и терминала:


    Формат файлов соответствует формату RKS и имя файла обязательно должно быть в формате 8.3:
    3 байта 0xD9, [имя файла], 255 байт 0х00, 0xE6, [адрес начала], [адрес конца], [данные], [контрольная сумма].
    Формат хранения Бейсик-файлов такой же, т.е. при сохранении программ из Бейсика нужно задавать имя не одной буквой, а в формате 8.3.
    "Магнитофон" работает по принципу терминала, т.е. данные передаются по rs232 со скоростью 9600. Т.к. процедуры записи требуют больше времени, то прием, как со стороны компьютера так и "магнитофона", тормозится принимающей стороной при помощи линии передачи, выставляя "0" на линии (обычно все линии подтянуты к "1"), что передающей стороной воспринимается как сигнал не готовности. Если подключить МК-106 к "большому брату" и с РС передавать файл, то это будет выглядеть как ответ от МК-106 байтом 0xFF на прием каждого быйта. Если же передавать данные с МК-106 на РС, то линия передачи со стороны РС всегда будет в "1", что будет восприниматься МК-106 как сигнал готовности. Т.о. если подключать "магнитофон" или МК-106 к каким-либо устройствам, имеющих достаточное быстродействие, они будут работать как и любой другое устройство с rs232 портом.
    Файловая система на SD-карте - FAT32. Папки не потдерживаются. "Магнитофон" понимает комманды:
    Код:
    LOAD:[имя файла]
    KILL:[имя файла]
    DIR
    FREE
    Комманды обязательно должны заканчиваться байтом 0х00. Запись осуществляется автоматически при получении первого байта 0xD9. На комманды чтения, записи и удаления "магнитофон" выдает коды ошибок:
    Код:
    OK			.equ		000H
    ERR_INVALID_NAME	.equ		0F0H
    ERR_FILE_NOT_EXIST	.equ		0F1H
    ERR_FILE_EXIST		.equ		0F2H
    ERR_GET_CLUSTER		.equ		0F3H
    ERR_NO_CLUSTER		.equ		0F4H
    ERR_END_CLUSTER		.equ		0F5H
    В качестве кард-ридера использован готовый модуль с преобразователем уровней. Прошивка "SD_Card.hex" находится на гугл-диске из первого поста. Фьюзы:
    Код:
    Low: 0xFF
    High: 0xC9
    Последний раз редактировалось Alex_LG; 30.11.2025 в 20:20.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Электроника-85 и я
    от Hunta в разделе ДВК, УКНЦ
    Ответов: 68
    Последнее: 22.09.2025, 08:54
  2. Ответов: 78
    Последнее: 28.02.2025, 21:19
  3. Электроника-79 ?
    от ddr2ddr в разделе Разное
    Ответов: 2
    Последнее: 01.08.2012, 20:14
  4. [Питер] Продам Электроника Б3-18А, Электроника МК 52
    от russoturisto в разделе Барахолка (архив)
    Ответов: 6
    Последнее: 05.02.2010, 11:15

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •