User Tag List

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

Тема: ПК8000 - Контроллер дисковода

Комбинированный просмотр

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

    Регистрация
    18.02.2010
    Адрес
    г. Пенза
    Сообщений
    407
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    68
    Поблагодарили
    31 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Нужно хотя бы иногда спать ложиться, а то не заметил вчера оченьвидных вещей
    Теперь все ясно. Основной блок данных для функций ПЗУ располагаются в адресах 0xEE21-0xEE3D. Это не считая "рабочих" переменных, как например формируемый байт управления дисководом по адресу 0xEE20 (тот самый байт, что засылается в 0x7FF7). Не выяснял полностью, но картина следующая:
    Код:
          ; логическая адресация по типу CP/M
    0xEE21: logDisk:        .db ?   ; номер диска [0-1]
    0xEE22: logTrack:       .db ?   ; лог. номер дорожки
    0xEE23: logSector:      .db ?   ; лог. номер сектора
    0xEE24: dmaBuff:        .dw ?   ; адрес обмена
    0xEE26: typeSector:     .db ?   ; тип записываемого сектора:
    0xEE26:                         ;    0: обычный сектор
    0xEE26:                         ;    1: из области директория
    0xEE26:                         ;    2: первый сектор нового блока
          ; здесь пошла физическая адресация
    0xEE27: byte_EE27:      .db ?
    0xEE28: byte_EE28:      .db ?
    0xEE29:                 .db ?
    0xEE2A: byte_EE2A:      .db ?
    0xEE2B: byte_EE2B:      .db ?
          ; данные о последней операции записи на диск
    0xEE2C: _wrDisk:        .db ?
    0xEE2D: _wrTrack:       .db ?
    0xEE2E: _wrSector:      .db ?
    0xEE2F: _wrSide:        .db ?
    0xEE30: wr_EE30:        .db ?
          ; данные о последней операции чтения с диска
    0xEE31: _rdDisk:        .db ?
    0xEE32: _rdTrack:       .db ?
    0xEE33: _rdSector:      .db ?
    0xEE34: _rdSide:        .db ?
          ; данные о текущей операции чтения/записи
    0xEE36: physDisk:       .db ?   ; номер диска
    0xEE37: physTrack:      .db ?   ; номер дорожки = (logTrack >> 1) & 0x7F
    0xEE38: physSector:     .db ?   ; номер сектора = (((logSector-1) >> 3) & 0x07) + 1
    0xEE39: physSide:       .db ?   ; сторона = logTrack & 1
    0xEE3A: nSecInBuff:     .dw ?   ; адрес 128-байтного сектора в буфере обмена = (logSector-1) >> 1
    
    0xEE3C: lastTrack:      .db ?   ; номер дорожки в последней операции с диском
                                    ; (нужен для операции позиционирования головок)
    0xEE3D:                 .db ? ; то же для диска 1
    Функции чтения/записи работают с логическими адресами, как в CP/M, самостоятельно переводя их в физические. Операции чтения и записи имеют свой набор данных и адреса буферов. Чтение происходит на адрес 0xE600, а запись с адреса 0xEA00. А уж затем нужный 128-байтный сектор копируется в dmaBuff.

    Но это так, мелочи. Что касается чтения регистров. Регистр 0x7FF7 читается исключительно из ОЗУ, а не из контроллера. Регистр 0x7FF8 читается прямо с ПЗУ, так как его значение формируется самой ВГ93 и выставляется на шину данных. Это я просто с недосыпу вчера не сообразил, что на адресах 0x7FF7-0x7FFF нет ПЗУ, а значения туда подставляются ИР26 и ВГ93, то есть с чтением проблем не будет.

    В принципе уже можно написать простенькие тесты. Правда придется ПЗУ вытащить. По крайней мере можно проверить работу ТМ8 и ИР26. Есть желание?

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

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

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

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

Похожие темы

  1. Контроллер дисковода
    от andrew76 в разделе Внешние накопители
    Ответов: 55
    Последнее: 12.04.2024, 16:33
  2. Ответов: 26
    Последнее: 25.01.2019, 18:31
  3. Ответов: 24
    Последнее: 30.04.2016, 23:47
  4. Не работает контроллер дисковода GRM2+
    от Shnurkov в разделе Внешние накопители
    Ответов: 5
    Последнее: 16.03.2009, 00:59
  5. Куплю контроллер дисковода для УКНЦ
    от tnt23 в разделе Барахолка (архив)
    Ответов: 2
    Последнее: 27.02.2009, 08:51

Ваши права

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