User Tag List

Показано с 1 по 10 из 43

Тема: PAGING PORTS of ZX / CLONES

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #36

    Регистрация
    24.07.2008
    Адрес
    г. Курган
    Сообщений
    2,062
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    17
    Поблагодарили
    17 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от VELESOFT Посмотреть сообщение
    Any idea about new commands for switch TRD images ? Each TRD image=640kB. If I select TRD number 120 then shift LBA position to BEGIN(first sector of first TRD image) to 120 x 1280 ide sectors
    Если делать полную поддержку FAT, то алгоритм будет примерно такой: - при начале работы с диском необходимо прочитать BPB из boot сектора FAT устройства, запомнить их в переменных (новых, расположенных в расширенном ОЗУ). Далее, при монтировании образа tr-dos диска, нужно посмотреть номер начального кластера. Используя номер начального кластера необходимо выбрать всю цепочку FAT из которых состоит файл .TRD. Далее, в процедурах TR-DOS чтения/записи сектора делаем анализ номера сектора (по сути в LBA формате, только относительно дискеты) - в какой номер кластера файла TRD от начала файла мы попадаем (используя ранее считанные параметры). Получив относительный номер кластера (Cluster from file start) просматриваем цепочку FAT считанную ранее, находим нужный номер кластера. Ну а далее совсем просто, используя параметры из BPB делаем расчеты в итоге получая номер сектора LBA HDD. Из номер сектора (как бы LBA 0-2559) диска TRDOS нужно получить номер сектора в кластере. Сделав and с маской кластера. Маска кластера = кол-во секторов в кластере -1. Вот и почти всё. Ещё придётся вводить буфер, т.к. программа от trdos вправе запросить для чтения 1 сектор или в запрошенном блоке секторов будет нечетное их количество. А т.к. размер сектора на hdd 512 байт, буфер необходим. (на самом деле для чтения можно сделать вариант и без буфера, если будет интересно - расскажу как).

    Цитата Сообщение от VELESOFT Посмотреть сообщение
    But it work only on EVO ?
    Думаю да, использована расширенная память. Скорее всего используется возможность подключения страниц в любое окно процессора.

    p.s. забыл сказать, что расчёты сектора делаются на кластер, полный или нет. Т.е. вполне может быть ситуация, когда мы начинаем обращение к последнему сектору кластера. А какой он именно выясняем сделав and номера сектора относительно начала файла TRD с маской кластера. Если кластеры идут подряд (файл не фрагментирован), то более искать кластеры и делать вычисления не нужно
    Последний раз редактировалось Vadim; 26.01.2013 в 07:21.

    Скрытый текст

    Profi 5.06 1024K 12Mhz (кварц на 24), палитра, COM-порт, часы, hdd, covox, программатор
    ZX-Spectrum +3, ZX-Spectrum +2B, ZX-Spectrum +2, ZX Spectrum 48, ZX Spectrum 48+
    ZX Evolution Rev B.
    Color 48 + Beta Disk Interface +FDD+YM2149F
    Орель-08БК
    Pentagon-48 (недоссобранный кем-то)
    Pentagon-128 (полуубитый)
    Кворум-128 (в ремонте)
    Магик-05 (в ремонте)
    Robotron 1715
    Корвет ПК8020 и ПК8010
    Amstrad CPC 464
    Amstrad CPC 6128
    [свернуть]

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

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

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

Похожие темы

  1. MEMORY PAGING IN LOW 16kB
    от VELESOFT в разделе Память
    Ответов: 7
    Последнее: 04.04.2015, 13:36
  2. ZX PROFI - memory paging
    от VELESOFT в разделе Profi
    Ответов: 3
    Последнее: 06.11.2009, 20:08
  3. Clones and periprelas page
    от caro в разделе RST#38
    Ответов: 0
    Последнее: 09.01.2008, 11:28

Ваши права

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