Важная информация

User Tag List

Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 27

Тема: SD карта и SDOS для 8и битных ПК

  1. #1
    Activist
    Регистрация
    20.11.2017
    Адрес
    г. Ростов-на-Дону
    Сообщений
    250
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    15
    Поблагодарили
    13 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию SD карта и SDOS для 8и битных ПК

    У меня возникло желание упорядочить и собрать в одном месте всю информацию о системе SDOS.
    Честно говоря, я не предполагал, что SDOS разрастется до текущих маштабов, и сейчас сам иногда испытываю сложность в поиске информации о том или ином варианте сборки.

    Что же такое SDOS?
    SDOS это компактная консольная оболочка позволяющая читать, запускать на исполнение файлы с SD карты, отформатированной в FAT16, и записывать обратно на карту данные из ОЗУ компьютера. Это позволяет очень просто переносить файлы с 'больших' ПК в наши ретрокомпьютеры и обратно.
    В основе кода SDOS взят код уважаемого b2m, который я обрамил дополнительным функционалом и возможностями.
    Код системы построен таким образом, что его очень просто можно адаптировать к любому ПК и к любому варианту аппаратного интерфейса и носителя (те, вообще говоря, это не обязательно должна быть SD карта, а может быть и HDD).

    На данный момент SDOS:
    код самой SDOS занимает от 2 до 2.5КБ (может размещаться как в ПЗУ так и в ОЗУ), плюс для работы с FAT16 нужно еще 2КБ ОЗУ.

    собиралась и проверялась как минимум в эмуляторе emu, а в некоторых случаях и в реале на следующих ПК: Специалист std(реал) и MX2(реал), RK-86(реал), Апогей, Партнер-01, Galaksija(реал), Orion(реал), TRS-80(реал), ЮТ-88.

    поддерживает три базовых аппаратных интерфейса SD: HWM_PVV, msx, n8vem, и их производные варианты.

    поддерживает SD и SDHC карты, те карты с размером больше 4ГБ.

    поддерживает следующие базовые директивы:
    - CD ИМЯкаталога - перейти в каталог с указанным именем;
    - DIR - вывести список файлов и каталогов;
    - ИМЯфайла.RKX(RKS для std, RKR для RK-86, GTP для Галаксии, RKO - Орион, CAS - TRS-80 ) запустить файл, при этом расширение можно не набирать, будет произведена автоподстановка;
    - R ИМЯфайла.РАСШИРЕНИЕфайла,А ДРЕСкуда,СКОЛЬКОбайт - прочитать не запуская файл, начиная с указанного адреса в памяти и сколько байт пример: R TEST.BIN,0ACD,5FE0 - читает файл TEST.BIN в память начиная с адреса 0х0ACD и до адреса 0х0ACD+0х5FE0=0х6AAD. Ограничение - нет проверки на фактическую длину файла и запрошенную на чтение, те можно запросить прочитать больше чем размер файла, поведение не определено
    - W ИМЯфайла.РАСШИРЕНИЕфайла,А ДРЕСоткуда,СКОЛЬКОбайт - записать в файл данные из памяти, начиная с указанного адреса в памяти и сколько байт пример: W TEST.BIN,0ACD,5FE0 - пишет в файл TEST.BIN из памяти начиная с адреса 0х0ACD и до адреса 0х0ACD+0х5FE0=0х6AAD. Ограничение - нет проверки на фактическую длину файла и запрошенную на запись, те можно запросить записать больше чем размер файла, поведение не определено. Записать больше чем существующий размер файла нельзя, если записать данных меньше чем размер файла, то размер файла не меняется и остается прежний
    - X - перейти в монитор, из которого был запущен SDOS;
    - I - запуск повторной инициализации карты;

    только Galaksija:
    - WB ИМЯфайла.РАСШИРЕНИЕ - запись BASIC программы в файл на SD в формате GTP;

    только СпецециалистМХ:
    - L ИМЯфайла.РАСШИРЕНИЕфайла - прочитать данные файла формата RKX с SD в RAM диск МХа; пример: L TEST.BIN - читает файл TEST.BIN в память начиная с адреса 0х0000 и до адреса его длины, создает в RAM диске файл TEST.BIN с стартовым адресом и размером взятыми из 4х первых байт файла на карте, при том, что имя файла в хеадере отсутствовало (в 5м байте 0хЕ6).
    Или: L TEST.BIN - читает файл TEST.BIN в память начиная с адреса 0х0000 и до адреса его длины, создает в RAM диске файл TEST_MX.HEX, с стартовым адресом и размером считанные из 4х первых байт файла на карте, и именем файла в хеадере TEST_MX.HEX.

    - S ИМЯфайлаНаRAMдиске.РАСШИРЕН ИЕ,ИМЯфайлаНаSD.РАСШИРЕНИЕ - записать данные файла из RAM диска МХа на SD в формате RKX; пример: S TEST.BIN - читает файл TEST.BIN из RAM диска в память начиная с адреса 0х0000 и до адреса его длины, после записывает его на SD карту в существующий файл с таким же именем TEST.BIN, размер не изменяется, формат RKX!
    Или: S TEST.BIN,TEST_MX.HEX - читает файл TEST_MX.HEX в память начиная с адреса 0х0000 и до адреса его длины, после записывает его на SD карту в существующий файл с именем TEST.BIN.


    только Orion:
    - L ИМЯфайла.РАСШИРЕНИЕфайла - прочитать данные файла формата RKO с SD в RAM диск; пример: L TEST$.RKO - читает файл TEST$.RKO в память начиная с адреса 0х0000 и до адреса его длины, создает в RAM диске файл TEST$ с именем, стартовым адресом и размером взятыми из хеадера RKO файла на карте.

    - S ИМЯфайлаНаRAMдиске,ИМЯфайла НаSD.РАСШИРЕНИЕ - записать данные файла из RAM диска на SD в формате RKO. пример: S TEST$,TEST1$.BIN -читает файл TEST$ из RAM диска в память начиная с адреса 0х0000 и до адреса его длины, после записывает его на SD карту в существующий файл с таким же именем TEST1$.BIN, размер не изменяется, формат RKO!.

    При выводе каталога по DIR печатается имя, расширение файла и его размер(что бы можно было использовать директивы R и W), а на директории пишется DIR в поле размера файла.

    При запуске файла пишется стартовый и конечный адреса куда будет считан файл с карты.

    Нажатие любой клавиши (пробела) при выводе по DIR приостанавливает вывода списка файлов.

    Для СпециалистМХ2 сделана возможность запускать не только файлы с расширением RKX, но и RKS, для чего в том же каталоге, где находится RKS файл нужно поместить файл монитора M2_C000.MON (взят из проекта Vinxru). Кроме того, есть возможность загружать произвольные мониторы.

    И теперь масса ссылок, с упоминанием SDOS и SD интерфейса.

    Началось все с этой темы по Специалисту с интерфейсом HWM, и тогда я думал, что на этом все закончится, да не тут то было.
    Первая попытка упорядочить информацию по SDOS в рамках Специалиста.

    Версия для РК-86 с интерфейсом HWM_PVV, и там же, дале с интерфейсом RK86_WW55_SD_HWM_PVV,
    далее Апогей с оригинальным вариантом подключения карты, аналог интерфейса SD_n8vem. В этих вариантах SD карта подключена совместно с ROM диском, не исключая его!
    Партнер-01 .

    Версия для Галаксии с интерфейсом HWM_PVV и с интерфейсом SD_n8vem .
    Практическая реализация в этой теме.

    Ют-88 с интерфейсом SD_n8vem.

    Орион .

    TRS-80 .


    Схемы интерфейсов:

    HWM_PVV на ИР8 и ИР9 или на портах ВВ55 .
    HWM_PVV на ИР24 или здесь или здесь
    HWM_PVV на ИР13

    SD_n8vem или здесь или здесь или здесь

    SD_msx я на реале не проверял, только в emu, но изначально код b2m был реализован для работы именно с этим интерфейсом и он использовался на реале в плис.

    Хочу дополнить еще один момент. Согласно спецификации, при инициализации SD карты нужно использовать частоту тактирования SD_CLK не выше 400кГц, а по завершению инициализации переключаться на более высокую. Но как показала практика, современные карты спокойно инициализируются и работают на частоте 2-4МГц, что позволяет отказаться от переключателя скорости тактирования. Переключение скорости поддерживается только в интерфейсе на ПЛИС HWM и в первом варианте интерфейса HWM_PVV на дискретах.
    Последний раз редактировалось PVV; 19.07.2019 в 23:54.

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

  3. #2
    Master Аватар для zebest
    Регистрация
    11.01.2008
    Адрес
    Ладошкино
    Сообщений
    920
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от PVV Посмотреть сообщение
    TRS-80(реал)
    ИстЕны ради - все же для реализации TRS-80 в ФПГА, не только лишь все это реАлом посчитают)) Но противопоказаний для реального реала быть особо не должно.
    Profi v3.2 -=- Speccy2010,r2

  4. #3
    Activist
    Регистрация
    20.11.2017
    Адрес
    г. Ростов-на-Дону
    Сообщений
    250
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    15
    Поблагодарили
    13 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zebest Посмотреть сообщение
    ИстЕны ради - все же для реализации TRS-80 в ФПГА, не только лишь все это реАлом посчитают)) Но противопоказаний для реального реала быть особо не должно.
    Это гораздо более реал, чем проверки в эмуляторе .

    Немного продолжу...
    Исходники SDOS открыты, и их можно скачать почти по каждой из ссылок выше.
    SDOS написана в мнемониках ВМ80, и без проблем запускается на Z80.
    Каждый раз при добавлении какого либо функционала и новых платформ (ПК) я увеличивал номера версий и подверсий. Актуальная на данный момент версия 8.9, но практически это 8.6, тк 8.7 - 8.9 это лишь сборки под разные платформы с подвариантами SD интерфейса, и на этом этапе я понял, что так быть не должно, конечный пользователь сам должен собирать SDOS под свои требования и это не должно влиять на версию системы.
    Соответственно, я хочу объяснить, как собирается, конфигурируется или портируется на другую платформу SDOS.

    Первое, нужно определиться с размещением в адресном пространстве целевой платформы. Нужно определить, где будет размещаться как код самой SDOS, в ОЗУ или ПЗУ, так и ее служебная область 2048-256=1792 байт и в каких адресах. Нужно выбрать такие адреса, которые для большей части программ не задействуются. Здесь нужно выбрать оптимальный компромисс. Если на целевой платформе существует внешний РОМдиск, то достаточно логично разместить SDOS там, и переписывать его в ОЗУ штатными средствами. (При портировании на новую платформу на первом этапе можно выбрать практически любые доступные адреса, и лишь на финишном этапе определить оптимальное размещение в памяти). Если на целевой платформе есть Свободное место в адресном пространстве, в котором можно разместить ПЗУ (пример Специалист и Галаксия), то SDOS размещается в таком участке, и работает сразу из ПЗУ и нужно лишь выбрать доступный участок под служебную область.
    Второе, пересекается с первым, это выбор адресов для портов SD интерфейса. Нужно два адреса, это могут быть как адреса в пространстве памяти, так и адреса в IO портах. Для тех платформ, в которых существует внешний РОМдиск, проблема выбора может упроститься. По ссылкам выше есть два варианта такого подключения. Иначе нужно опять искать варианты и компромиссы.
    Третье, выбрать вариант SD интерфейса. HWM_PVV - это самый быстрый и, в добавок, его программная поддержка самая компактная, что на общем фоне компактной SDOS(напомню ~2КБ всего!) весьма заметно. 7 корпусов 555 серии . msx - более медленный и программная поддержка +150 байт к коду, а по числу корпусов примерно как предыдущий вариант, по тому я его особо не рассматриваю. n8vem - самый медленный, +250 байт к коду, но очень прост в реализации, а по тому, вполне имеет право на рассмотрение. Для наших ретроПК даже скорость n8vem не столь плоха , тк в большей части файлы имеют не большой размер, что не критично и все лучше, чем просто магнитофон. Любые подварианты этих интерфейсов, к примеру, подключенные через ВВ5, будут соответственно чуть медленнее и будут чуть раздувать программный код.
    На этом этапе, для уже существующих вариантов платформ, нужно лишь правильно определить в дефайнах нужные возможности и запустить сборку bat файлом.
    Если же нужно портировать SDOS на новую платформу, то тут нужно провести определенные изыскания.
    В файле defs.inc нужно сделать секцию с новой платформой, в которой нужно определить такие функции (пример от РК-86):
    GETC EQU 0F803H <-ожидать символ с клавиатуры
    PUTC EQU 0F809H <-вывести один символ на экран
    PRINT EQU 0F818H <-вывести строку на экран
    PRHEX EQU 0F815H <-вывести число в HEX формате
    IfKeyPress EQU 0F81BH <- проверка ввода с клавиатуры, не зависающая в проверке
    входные и выходные параметры этих функций можно посмотреть, к примеру, здесь
    из них основными являются первые две, тк PRINT делается из PUTC, PRHEX как опция, есть уже в коде самой SDOS и использует PUTC, а IfKeyPress можно за комментировать и не использовать (не будет функции приостановки вывода списка файлов по DIR по нажатию любой клавиши, забыл об этой возможности упомянуть в первом сообщении).
    GETC и PUTC на целевой платформе так или иначе реализованы, значит нужно их формат вызова подстроить под требуемый SDOS (так было сделано при портировании на Галаксию и TRS-80).

    Вот какие дефайны есть в файле defs.inc и что они означают (наличие точки с запятой ';' в начале строки означает исключение этого дефайна, а отсутствие, включение):
    #define SDOS_VER "SDOS_V8.9N" - в v8.9 вынес строку с текстом приветствия SDOS в этот дефайн

    #define SD_DBG_PRINT0 - тоже в v8.9 разделил один дефайн SD_DBG_PRINT на три, для
    #define SD_DBG_PRINT1 - более гибкой подгонки размера SDOS, что очень актуально при сборке компактного кода
    #define SD_DBG_PRINT2 - для размещения в ПЗУ на 2КБ (все эти печати 'съедают' до 100 байт кода).

    ;#define SD_HWM_PVV - это группа из 8 дефайнов определяет тип SD интерфейса для сборки, соотв. HWM_PVV
    ;#define SD_msx - msx
    ;#define SD_n8vem - n8vem
    ;#define RK86_WW55_SD_HWM_PVV - это вариант HWM_PVV подключенный на портах ВВ55, проверялся на реальном РК-86, по тому такое название
    ;#define RK86_WW55_SD_n8vem ; APOGEE and RK86 memmap - это вариант n8vem подключенный на портах ВВ55, где ВВ55 размещается в адресном пространстве, а не портах, собирался но еще не проверялся на реале, для РК86
    #define STD_WW55_SD_n8vem ; Specialist - это полная копия(!?!) RK86_WW55_SD_n8vem варианта, собирался но не проверялся на реале, для Специалиста (Std) - в следующей версии сведу в один дефайн WW55_ADDR_SD_n8vem
    ;#define UT88_WW55_SD_n8vem ; ports IN - OUT - это вариант n8vem подключенный на портах ВВ55, где ВВ55 размещается в портах IO, собирался но не проверялся на реале, для ЮТ-88 - в следующей версии дефайн переименую в WW55_IO_SD_n8vem
    ;#define GAL_AY_SD_n8vem - это вариант n8vem подключенный на портах AY3-8910(YM2149F), где AY размещается в портах IO, проверялся на реальной Галаксии - в следующей версии дефайн переименую в AY_IO_SD_n8vem

    ;#define FAT12_ON - включение поддержки FAT12 на карте, актуально для карт или раздела на карте меньше 32МБ, для экономии размера кода обычно выключен
    #define FAT16_ON - включение поддержки FAT16 на карте, является основным

    #define RWR - включение поддержки записи на карту, занимает 200-300 байт

    ;#define UT88 - это группа из 8 дефайнов определяет тип платформы, для которой собирается SDOS. ЮТ-88
    ;#define APOGEE - Апогей
    ;#define RK86 - РК-86
    #define STD - Специалист
    ;#define MX2 - СпециалистМХ2 - актуально для оригинального SD_HWM_PVV, там задействуется бит сигнализирующий 'занятость' SPI автомата BUSY (во всех 'моих' вариациях этого интерфейса я выбросил этот бит, тк зная скорость работы ЦП с SD интерфейсом можно NOP_ами, буквально от 1 до 3 штук, подобрать нужную задержку)
    ;#define GAL - Галаксия
    ;#define ORION - Орион
    ;#define TRS80 - TRS80

    дальше идут секции включаемые дефайнами типа платформы, на примере от РК-86:
    ;================================================= =========
    #ifdef RK86
    GETC EQU 0F803H - ожидать символ с клавиатуры
    PUTC EQU 0F809H - вывести один символ на экран
    PRINT EQU 0F818H - вывести строку на экран
    PRHEX EQU 0F815H - вывести число в HEX формате
    IfKeyPress EQU 0F81BH - проверка ввода с клавиатуры, не зависающая в проверке
    SD_DATA_PORT EQU 0d000H - адрес, по которому размещается SD интерфейс, его порт данных
    SD_CONF_PORT EQU SD_DATA_PORT+1 - адрес, по которому размещается SD интерфейс, его порт конфигурации
    SD_DATA_PORT_WW55 EQU 0a000H - адрес, по которому размещается SD интерфейс, его порт ВВ55 для вариантов SD с ВВ55
    #define SD_ROM - актуально только в РК-86, если не выбран, то по адресу F000 стоит jmp F800h
    #ifdef SD_ROM
    START_ADDR EQU 06000H - стартовый адрес для размещения кода самой SDOS (который читается из ROMdisk РК)
    #else
    START_ADDR EQU 0f000H - стартовый адрес для размещения кода самой SDOS, если он записан в ПЗУ
    #endif
    BUF EQU 06900h - стартовый адрес для размещения служебной области (буфферов для работы с fat), занимает 2048-256=1792 байт
    #endif
    ;================================================= =========

    Исходные коды SDOS находятся в нескольких файлах:

    defs.inc - здесь хранятся все дефайны описанные ранее
    dos_rk.asm - основной файл, в нем реализация всего интерфейса взаимодействия SDOS и пользователя
    это 6 файлов, для каждой из поддерживаемых платформ, в которых реализована функция чтения и запуска файла на выполнение, плюс специфичные возможности для определенной платформы (работа с РАМдиском в СпециалистМХ2 или Орион, запись basic файлов в Галаксии).
    При сборке используется файл той платформы, дефайн которой определен в файле defs.inc. Подключение файла идет в файле dos_rk.asm.
    При добавлении новой платформы нужно будет добавить такой файл.
    dos_gal_RUNF.inc
    dos_mx_RUNF.inc
    dos_orion_RUNF.inc
    dos_rk_RUNF.inc
    dos_std_RUNF.inc
    dos_trs_RUNF.inc


    sd_proc.inc - здесь все функции для работы с самой SD картой
    fs_proc.inc - здесь все функции для работы с файловой системой fat12 и fat16.
    кроме вышеописанных файлов в архиве с SDOS еще есть:
    asm_std.cmd - текстовый BAT файл, в котором описаны опции сборки SDOS, вот его и надо запускать для сборки после конфигурирования всех дефайнов.
    ReadMe.txt - текстовый файл, с очень кратким описанием возможностей SDOS
    TASM.EXE - это ассемблер, которым все и собирается
    TASM85.TAB - это служебный файл ассемблера

    Весь процесс сборки для пользователя заключается в конфигурировании дефайнов в файле defs.inc и запуска на выполнение asm_std.cmd. В результате получится требуемый файл SDOS.BIN.

    Всегда возникает желание проверить, что же получилось. И в этом громадным подспорьем становится эмулятор emu. Этот эмулятор поддерживает все три типа SD интерфейсов, и их подвариантов. Нужно искать по каталогу config файлы с таким содержимым и делать по аналогии нужную кофигурацию:
    для HWM_PVV:
    mm2 : MemMap2 {
    map[00]=sdcard.data8
    map[01]=40
    }


    для msx:
    mm2 : MemMap2 {
    map[00]=sdcard.ss
    map[01]=sdcard.data
    }


    для n8vem, на портах ВВ55:
    miso : Register {
    read[0]=sdcard.miso
    read[1]=sdcard.miso
    read[2]=sdcard.miso
    read[3]=sdcard.miso
    read[4]=sdcard.miso
    read[5]=sdcard.miso
    read[6]=sdcard.miso
    read[7]=sdcard.miso
    }

    appmx : MemMap2 {
    map[0]=romdisk.data
    map[1]=miso
    }

    app : K580ww55 {
    portA=appmx
    portB=romdisk.lsb
    portC=romdisk.msb
    portC[0]=sdcard.mosi
    portC[5]=sdcard.sclk
    portC[E]=sdcard.ss
    portC[7]=appmx.offset
    }
    Вложения Вложения
    Последний раз редактировалось PVV; 29.12.2018 в 19:32.

  5. #4
    Moderator Аватар для MM
    Регистрация
    20.04.2013
    Адрес
    г. Павловский Посад
    Сообщений
    2,677
    Спасибо Благодарностей отдано 
    22
    Спасибо Благодарностей получено 
    25
    Поблагодарили
    23 сообщений
    Mentioned
    14 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Не будет ли возможности опубликовать фрагменты текста подпрограмм для работы флеш-карточки с ВВ55А на Бейсике - "Чтение блока № хххх в адрес yyyy" и "Запись блока № хххх из адреса уууу" ?
    Быстродействие М-ЭВМ - порядка 500 т. рег-рег.

    Имеется ввиду блоки по 512 байт, начиная, например, с блока №000000.

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

    И еще вопрос - применяются только классические карты микроSD ( например, 2 Гбайт ), или подойдут и microSDHC ( 2 Гбайт ) ?
    Коллекционирование радиодеталей : http://collectingrd.kxk.ru/

  6. #5
    Activist
    Регистрация
    20.11.2017
    Адрес
    г. Ростов-на-Дону
    Сообщений
    250
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    15
    Поблагодарили
    13 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от MM Посмотреть сообщение
    Не будет ли возможности опубликовать фрагменты текста подпрограмм для работы флеш-карточки с ВВ55А на Бейсике - "Чтение блока № хххх в адрес yyyy" и "Запись блока № хххх из адреса уууу" ?
    Быстродействие М-ЭВМ - порядка 500 т. рег-рег.

    Имеется ввиду блоки по 512 байт, начиная, например, с блока №000000.
    Это я не понял, и при чем здесь Бейсик? Все написано на asm от 580ВМ80.

    Цитата Сообщение от MM Посмотреть сообщение
    И еще вопрос - применяются только классические карты микроSD ( например, 2 Гбайт ), или подойдут и microSDHC ( 2 Гбайт ) ?
    Поддерживаются и классические карты SD и микроSD, которые до 2ГБ включительно и microSDHC, которые от 4ГБ и до 32ГБ. С оговорками.
    В FAT16 можно отформатировать раздел не более 4ГБ, соответственно для карт больше 4ГБ нужно делать один первичный (обязательно именно первичный!) раздел на 4ГБ, а остальное сейчас не используется. (задел на будущее, можно доработать SDOS до 4х таких разделов)

  7. #6
    Moderator Аватар для MM
    Регистрация
    20.04.2013
    Адрес
    г. Павловский Посад
    Сообщений
    2,677
    Спасибо Благодарностей отдано 
    22
    Спасибо Благодарностей получено 
    25
    Поблагодарили
    23 сообщений
    Mentioned
    14 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от PVV Посмотреть сообщение
    и при чем здесь Бейсик?
    Для переноса на DEC-16 бит машинки типа ДВК, УКНЦ, БК, НЦ-8010 и моложе.

    Или в блок-схемах из школьного учебника по информатике :
    https://ru.wikipedia.org/wiki/%D0%91...B5%D0%BC%D0%B0
    Коллекционирование радиодеталей : http://collectingrd.kxk.ru/

  8. #7
    Activist
    Регистрация
    20.11.2017
    Адрес
    г. Ростов-на-Дону
    Сообщений
    250
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    15
    Поблагодарили
    13 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от MM Посмотреть сообщение
    Для переноса на DEC-16 бит машинки типа ДВК, УКНЦ, БК, НЦ-8010 и моложе.
    Или в блок-схемах...
    Это весьма объемный труд, я на описание возможностей SDOS еле себя сподвиг , а это...
    Фактически, это означает взять asm код и откомментировать его так, что бы получилось словесное описание алгоритма. Что есть
    "Чтение блока № хххх в адрес yyyy" и "Запись блока № хххх из адреса уууу"
    - А инициализация карты нужна? А FAT какой то на карте будет?
    Как начало блок-схем, есть код на Си, дальше по ссылке, его можно на Бейсик переложить. Непонятные моменты я подскажу. На ВВ55 какой тип SD интерфейса видится?

  9. #8
    Moderator Аватар для MM
    Регистрация
    20.04.2013
    Адрес
    г. Павловский Посад
    Сообщений
    2,677
    Спасибо Благодарностей отдано 
    22
    Спасибо Благодарностей получено 
    25
    Поблагодарили
    23 сообщений
    Mentioned
    14 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от PVV Посмотреть сообщение
    А FAT какой то на карте будет?
    Пока - никакой. Каталоги ОС RT-11 - пока 8 томов по 32 метра. Если раздобуду руководства ( на Русском языке с подписями ) по RT-11 V5.6 1992 г. ( что маловероятно ) - то ~20 томов по 32 метра ( 640 Мбайт ). Можно сделать драйвера-дублеры ( штук так ~пяток, с разными именами ) - каждый по ~640 Мбайт.

    Нужен собственно железный алгоритм шевеления 3 шт. выводов ВВ55А - для чтения 512 байт, и записи 512 байт ( т.е. блоков данных ).
    А софтовая мишура типа поддержки каталогов и т.п. - это есть в самой RT-11.

    Насчет инициализации ( с завода-изгоовиеля карты ) - я думаю нагло её прописывать Нулями, заодно и к/с секторов придет в норму.

    Тип интерфейса на ВВ55А - 2 проволоки на выход с ВВ55А, 1 проволока на вход.
    Главное - по-проще, скорость вторична.

    Насчет понимая "С" - я 30 лет назад в институте видал такую брошуру. И даже ,вероятно, прочел...
    Коллекционирование радиодеталей : http://collectingrd.kxk.ru/

  10. #9
    Activist Аватар для L Juriy
    Регистрация
    29.11.2009
    Адрес
    г. Бийск
    Сообщений
    443
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    PVV, В версии 8.9N в модуле SD_proc.inc есть кусок кода в котором проверяется необьявленная переменная.
    Похоже на ошибку,Этот кусок НИКОГДА не будет асемблирован.
    ;
    #ifdef SD_RK86_WW55_SD_HWM_PVV
    CALL SD_OFF
    MVI B,10h
    CALL SD_FIN
    DCR B
    JNZ $-4
    #endif
    или это так задумано.
    Микро-80, Радио-86РК, Океан 240, Ириша, Спектрум-48, NEC PC-8201, ЮТ-88(2017) .

  11. #10
    Activist
    Регистрация
    20.11.2017
    Адрес
    г. Ростов-на-Дону
    Сообщений
    250
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    15
    Поблагодарили
    13 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ни какого криминала не вижу, о чем речь? Какая необьявленная переменная? Если речь об этой строчке
    JNZ $-4
    то, это лишь переход на адрес на 4 меньше чем текущий.

Страница 1 из 3 123 ПоследняяПоследняя

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

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

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

Похожие темы

  1. SD карта для ZX-Spectrum
    от PVV в разделе Разное
    Ответов: 21
    Последнее: 25.11.2018, 23:48
  2. Ответов: 1
    Последнее: 14.09.2018, 20:59
  3. Видео карта для спека.
    от Руслан в разделе Изображение
    Ответов: 17
    Последнее: 30.08.2013, 01:29
  4. 2D видео-ускоритель для 8-битных компов, ценй 53$
    от Valen в разделе Зарубежные компьютеры
    Ответов: 4
    Последнее: 08.08.2012, 16:03
  5. Ответов: 3
    Последнее: 09.05.2011, 12:19

Ваши права

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