Электроника МС 0515: различия между версиями

Материал из Emuverse
Строка 111: Строка 111:
Формат дискет: 1 сторона (0), 80 цилиндров (0-79), по 10 секторов (1-10) на трек, 512 байт в секторе.
Формат дискет: 1 сторона (0), 80 цилиндров (0-79), по 10 секторов (1-10) на трек, 512 байт в секторе.


Структура дорожки — восстановлена по коду FORML.SAV с дискеты 059.dsk.<br />
=== Структура дорожки ===
Структура дорожки восстановлена по коду FORML.SAV с дискеты 059.dsk.<br />
Отсчёт идёт от индексного отверстия. Количество байт указано десятичное, байты — шестнадцатеричные значения, в скобках указано что реально записывается на диск, в особых случаях.
Отсчёт идёт от индексного отверстия. Количество байт указано десятичное, байты — шестнадцатеричные значения, в скобках указано что реально записывается на диск, в особых случаях.
<pre>
<pre>
Строка 123: Строка 124:
   │  3        F5 (записывается A1)
   │  3        F5 (записывается A1)
   │  1        FE — маркер заголовка сектора
   │  1        FE — маркер заголовка сектора
   │  1        09
   │  1        xx — номер дорожки 0..79
   │  1        00
   │  1        00 — сторона: 0 - низ
   │  1        01 — номер сектора
   │  1        01 — номер сектора
   │  1        02 — 512 байт на сектор
   │  1        02 — 512 байт на сектор

Версия от 01:52, 23 февраля 2017

Этот документ создан для Emuverse и распространяется на условиях лицензии CC-BY-SA-3.0.

Электроника МС0515 — советский компьютер.

Процессор

КР1807ВМ1

Регистр режима в битах 13-15 имеет 1 1 1, что задаёт адрес старта — 172000 и адрес рестарта 172004.

Прерывания

 IRQ  CPx  Pri Vec  Device
─────────────────────────────────
 11   LHLL  6  100  timer
  9   LHHL  6  110  serial RX
  8   LHHH  6  114  serial TX
  5   HLHL  5  130  7004 keyboard
  3   HHLL  4  060  7007 keyboard
  2   HHLH  4  064  vblank

Кроме того, есть ряд зарезервированных векторов прерываний:

 Vec  Описание
─────────────────────────────────
 000  Устройство вызвало прерывание, но не установило адрес вектора
 004  Недопустимый режим для команд JMP / JSR
 010  Недопустимая/зарезервированная инструкция
 014  Инструкция BPT или установлен бит T
 020  Инструкция IOT
 024  Сбой питания
 030  Инструкция EMT
 034  Инструкция TRAP

Регистры

  177400  Регистр диспетчера памяти
 ┌──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┬──┐
 │15│14 13 12│11 10  9│ 8│ 7  6│ 5  4  3│ 2  1  0│
 └──┴──┴─┬┴─┬┴─┬┴─┬┴─┬┴─┬┴─┬┴─┬┴─┬┴─┬┴─┬┴─┬┴─┬┴─┬┘
         │  │  │  │  │  │  │  └──┴──┴──┴──┴──┴──┴─ Выбор ОЗУ: 1 - осн., 0 - доп.
 ИРПР-М ─┴──┘  │  │  │  └───── Прерывание от монитора
               │  │  └──────── Прерывание от таймера
               ├──┤--------└─ Включение ВОЗУ в основную память: 1 - включено
               0  0 - 000000-037777
               0  1 - 040000-077777
               1  x - 100000-137777
  177600  Системный регистр A
 ┌--┬--┬--┬--┬--┬--┬--┬--┌──┬──┬──┬──┬──┬──┬──┬──┐
 │15                    8│ 7  6│ 5  4  3│ 2  1  0│
 └--┴--┴--┴--┴--┴--┴--┴--└─┬┴─┬┴─┬┴─┬┴─┬┴─┬┴─┬┴─┬┘
               Выбор ПЗУ ──┘  │  │  │  └──│──┴──┴─ Выбор привода НГМД
              Запись на НМЛ ──┘  │  │     └─────── Двигатель НГМД вкл/выкл
               Светодиоды 2 и 1 ─┴──┘         
  177602  Системный регистр B
 ┌--┬--┬--┬--┬--┬--┬--┬--┌──┬──┬──┬──┬──┬──┬──┬──┐
 │15                    8│ 7  6│ 5  4  3│ 2  1  0│
 └--┴--┴--┴--┴--┴--┴--┴--└─┬┴─┬┴─┬┴─┬┴─┬┴─┬┴─┬┴─┬┘
              Чтение НМЛ ──┘  │  │  │  │  │  │  └─ INTR НГМД
                      ИРПР-М ─┴──┘  │  │  │  └──── DRQ НГМД
                                    ├──┤  └─────── Готовность НГМД: 0 - готов 
                   Кадровая частота 0  0 - 50 Гц
                                    0  1 - 72 Гц
                                    1  x - 60 Гц
  177604  Системный регистр C
 ┌--┬--┬--┬--┬--┬--┬--┬--┌──┬──┬──┬──┬──┬──┬──┬──┐
 │15                    8│ 7  6│ 5  4  3│ 2  1  0│
 └--┴--┴--┴--┴--┴--┴--┴--└─┬┴─┬┴─┬┴─┬┴─┬┴─┬┴─┬┴─┬┘
            Таймер звука ──┘  │  │  │  │  └──┴──┴─ Цвет бордюра
            Звук вкл/выкл ────┘  │  │  │  
            Тон звука ───────────┘  │  └─ Разрешение экрана 0 - среднее, 1 - высокое
                      Светодиод 3 ──┘

Контроллер НГМД

  177600  Системный регистр A
 ┌--┬--┬--┬--┬--┬--┬--┬--┌──┬──┬──┬──┬──┬──┬──┬──┐
 │15                    8│ 7  6│ 5  4  3│ 2  1  0│ Номер   Название
 └--┴--┴--┴--┴--┴--┴--┴--└──┴──┴──┴──┴─┬┴─┬┴─┬┴─┬┘ привода устройства
                                       │  │  └──┴─ физич.  логическое
                  Поверхность НГМД ────┘  │  0  0     0     DZ0 (низ), DZ2 (верх)
                    0 - низ 1 - верх      │  0  1     1     DZ1 (низ), DZ3 (верх)
                  Двигатель НГМД включен ─┘  1  0     2
                    0 - вкл. 1 - выкл.       1  1     3

  177602  Системный регистр B
 ┌--┬--┬--┬--┬--┬--┬--┬--┌──┬──┬──┬──┬──┬──┬──┬──┐
 │15                    8│ 7  6│ 5  4  3│ 2  1  0│
 └--┴--┴--┴--┴--┴--┴--┴--└──┴──┴──┴──┴──┴─┬┴─┬┴─┬┘
                                          │  │  └─ INTR НГМД
                                          │  └──── DRQ НГМД
                                          └─────── Готовность НГМД: 0 - готов 

Регистры контроллера НГМД (8-разрядные):

  • 177640 — регистр состояния (чтение)
  • 177640 — регистр команд (запись)
  • 177642 — регистр дорожки
  • 177644 — регистр сектора
  • 177646 — регистр данных

Формат дискет: 1 сторона (0), 80 цилиндров (0-79), по 10 секторов (1-10) на трек, 512 байт в секторе.

Структура дорожки

Структура дорожки восстановлена по коду FORML.SAV с дискеты 059.dsk.
Отсчёт идёт от индексного отверстия. Количество байт указано десятичное, байты — шестнадцатеричные значения, в скобках указано что реально записывается на диск, в особых случаях.

Кол-во байт  Записываемые байты
     54        4E
     12        00
      4        F6 (записывается C2)
     35        4E
  Начало сектора 1..10
  │   8        00
  │   3        F5 (записывается A1)
  │   1        FE — маркер заголовка сектора
  │   1        xx — номер дорожки 0..79
  │   1        00 — сторона: 0 - низ
  │   1        01 — номер сектора
  │   1        02 — 512 байт на сектор
  │   1(2)     F7 (записывается 2 байта CRC)
  │  22        4E
  │  12        00
  │   3        F5 (записывается A1)
  │   1        FB — маркер данных
  │ 512        xx — данные сектора
  │   1(2)     F7 (записывается 2 байта CRC)
  │  44        4E
  Конец сектора
    352        4E — до конца дорожки

Процесс загрузки

  1. Тесты процессора, памяти
  2. Тест клавиатуры
  3. Тест НГМД:
    1. команда C0, команда 1D (переход на track 1)
    2. 5 команд 43 (переход на track 6), команда C0, проверка того что в регистре сектора появился номер дорожки 6
    3. 5 команд 63 (возврат на track 1), команда C0
  4. Чтение track 1 sector 1: команда C0, команда 80 — читаются 512 байт начиная с адреса 000000
  5. Запуск с адреса 000000

Ссылки