Сделал таки сохранялку-загружалку диска С под ОРДОС на SD-карту. Давно хотел это сделать, дабы хоть работать можно было :)
Вид для печати
Сделал таки сохранялку-загружалку диска С под ОРДОС на SD-карту. Давно хотел это сделать, дабы хоть работать можно было :)
{А} Утилита test2sd$ позволяет сохранять "сырые" ("RAW") блоки памяти на устройствах SD (схемы MSX, N8VEM) и IDE (схема на 580ВВ55). Никакие файловые системы не поддерживаются. Адрес куда сохранять на SD/IDE указывается в формате LBA (все 512-байтные сектора устройства последовательно пронумерованы от 0 до MAXLBA-1). Т.е. емкость любого устройства - MAXLBA*2 килобайт. Указывается также сколько 512-байтных секторов записать и начинаяа с какого адреса в памяти и в какой странице памяти брать данные (при записи на SD/IDE) или куда их класть (при чтении с SD/IDE).
Сохранять сырые данные на устройства лучше "под потолок", т.е. в максимальные значения LBA - там обычно неиспользуемые области, т.е. вероятность попортить какие-нибудь файловые системы невелика.
Рисунок окна программы представлен на рисунке во вложении. На рисунке сохраняем диск "В" ОРДОС на SD-карту.
Кнопки программы:
- кнопка D (Device) : выбрать устройство (SD или IDE Master или IDE Slave)
- надо указать банк и адрес (Page, Address) буфера ОЗУ:
1:0000 - диск В, 2:0000 - диск С и т.д.- каждый диск ОРДОС в ОЗУ занимает 60кб (120 секторов), соответственно, указываем в Count (кнопка C). Все числа - шестнадцатиричные, поэтому вводим 78
- кпопка L (LBA) - адрес на диске куда сохранять надо указать как MAXLBA-120-1 или MAXLBA-240-1 или MAXLBA-360-1... MAXLBA свой для каждого устройства (зависит от размера, программа его подскажет перед вводом номера LBA). Числа - шестнадцатиричные!
- кнопкой R (Read) прочитываем данные c SD/IDE устройства в ОЗУ, кнопкой W (Write) записываем данные из ОЗУ на SD/IDE. Обратите внимание, номер LBA увеличился - установлен после прочитанного/записанного фрагмента.
http://savepic.net/2820709.gif
UPD 11.06.2012
Теперь по умолчанию при запуске программы ставится банк:адрес=1:0000, количество секторов COUNT=78Н (120, т.е. 60кб), LBA=MAXLBA-COUNT (такое значение LBA ставится начальным всегда при выборе устройства кнопкой "D"). Также упрощено переключение банков памяти (кнопка "G") и выбор области записи на карте - автоматом вычитает из текущего LBA количество секторов заданное в COUNT (кнопка "M") - удобно для перемещения "под потолком" карты.
Т.е. для записи/чтения диска "B" ОРДОС достаточно войти в прогу и нажать "W" или "R".
Для записи/чтения диска "C" ОРДОС достаточно войти в прогу и нажать сначала "G", затем "W" или "R". Для записи/чтения диска "D" ОРДОС - войти в прогу и нажать сначала "G" дважды, затем "W" или "R".
Все прочие функции сохранены. Как и ранее можно делать с SD-картой или MasterIDE/SlaveIDE что угодно, но надо вводить цифирьки. :)
Исходники программы тут: http://zx-pk.ru/showthread.php?t=173...l=1#post838469
Может кто-нибудь рассказать про механизм обработки прерываний в Орион-ПРО?
Интересует вопрос, как программно определить, что запрос на прерывание пришёл именно от IRQ0, IRQ1 … IRQ7?
Хорошо бы посмотреть на пример кода с обработчиком прерываний:)
Вопрос касательно креатива на Орионе, а конкретно - программирования.
{Q} Есть ли у владельцевлучшего на светеПРК желание освоить написание хотя бы несложных программ для него?
Вообще говоря, считаю именно Орион очень удобным компьютером для приобщения к программированию.
Вопрос возник вот откуда. Имею достаточное кол-во наработок, в т.ч. создана комфортная среда для написания и отладки программ на Ассемблере (непосредственно на Орионе), и если есть интерес, то мог бы поделиться информацией (тематическими постами с "разжёванными" примерами, готовыми библиотеками и т.п.). Понятное дело, что по основам программирования на том же Ассме есть соотв. учебники, но там нет ничего про особенности программирования конкретно под архитектуру Ориона, а тут есть свои нюансы. Ну и учебники - это учебники, кто их читает-то? :)
Просто так "сотрясать воздух" не хочется, в связи с чем и возник вопрос =)
Денис, желание освоить есть, пиши статьи :) Что-то Стива Балмера сразу вспомнил...
Есть интерес, если это будет применимо к ВМ80.
Что тебе сказать. Кто хочет писать…., тот Пишет. Кто не хочет - ищет причину.
было бы интересно