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

User Tag List

Показано с 1 по 6 из 6

Тема: Третий параметр директивы O для Микроши - скорость работы с магнитофоном

  1. #1
    Member
    Регистрация
    03.09.2020
    Адрес
    г. Санкт-Петербург
    Сообщений
    34
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Третий параметр директивы O для Микроши - скорость работы с магнитофоном

    В Мониторе ПЭВМ "Микроша" для директивы O имеется третий (недокументированный) параметр, позволяющий задать константу скорости во время записи на магнитную ленту. Насколько я помню, где-то в ОЗУ в области переменных Монитора есть ячейка, в которой хранится этот коэффициент скорости. И если нужно считать с измененной скоростью, надо сначала записать нужный коэффициент в эту ячейку, а потом произвести загрузку директивой I.

    За давностью лет мои записульки потерялись, и я не помню номер ячейки, где хранится эта константа. Кто-нибудь может подсказать?

    Возможно, она еще называлась "коэффициент импенданса".
    Любопытный хомячок webhamster.ru - маленький и пушистый IT-проект

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

  3. #2
    Activist Аватар для SegaBoy
    Регистрация
    12.11.2009
    Адрес
    Москва
    Сообщений
    315
    Спасибо Благодарностей отдано 
    22
    Спасибо Благодарностей получено 
    42
    Поблагодарили
    36 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от xintrea Посмотреть сообщение
    В Мониторе ПЭВМ "Микроша" для директивы O имеется третий (недокументированный) параметр, позволяющий задать константу скорости во время записи на магнитную ленту. Насколько я помню, где-то в ОЗУ в области переменных Монитора есть ячейка, в которой хранится этот коэффициент скорости. И если нужно считать с измененной скоростью, надо сначала записать нужный коэффициент в эту ячейку, а потом произвести загрузку директивой I.

    За давностью лет мои записульки потерялись, и я не помню номер ячейки, где хранится эта константа. Кто-нибудь может подсказать?

    Возможно, она еще называлась "коэффициент импенданса".
    Если третий параметр директивы O не равен нулю, то это значение сначала сохраняется по адресу $7631, затем к нему прибавляется $11 и результат сохраняется в $7630. Изначально эти значения равны $1f и $30.
    При работе директивы I используются значения из адресов $7631 $7632 и $762f, изначально равные $24 и $38. Вот их и нужно изменять.
    Последний раз редактировалось SegaBoy; 17.11.2021 в 22:10.

  4. #3
    Guru
    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,739
    Спасибо Благодарностей отдано 
    66
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    119 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Можно и не запоминать адреса, если перед чтением давать команду записи одного байта с этим третьим параметром.

  5. #4
    Member
    Регистрация
    03.09.2020
    Адрес
    г. Санкт-Петербург
    Сообщений
    34
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если третий параметр директивы O не равен нулю, то это значение сначала сохраняется по адресу $7631, затем к нему прибавляется $11 и результат сохраняется в $7630.
    Изначально эти значения равны $1f и $30.
    При работе директивы I используются значения из адресов $7631 и $762f, изначально равные $24 и $38. Вот их и нужно изменять.
    Благодарю, но не совсем понял.

    Значит, изначально имеем:

    7630H - 30H
    7631H - 1FH

    Вы говорите, что при работе директивы I берется значение из ячейки 7631H равное 24H. Как так, если в ней изначально 1FH?

    И второй вопрос - за что конкретно отвечают эти три значения? Насколько я понял, 7631H - это скорость чтения для I и скорость записи для O. А ячейки 7630H и 762FH за что отвечают?
    Любопытный хомячок webhamster.ru - маленький и пушистый IT-проект

  6. #5
    Activist Аватар для SegaBoy
    Регистрация
    12.11.2009
    Адрес
    Москва
    Сообщений
    315
    Спасибо Благодарностей отдано 
    22
    Спасибо Благодарностей получено 
    42
    Поблагодарили
    36 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от xintrea Посмотреть сообщение
    Благодарю, но не совсем понял.

    Значит, изначально имеем:

    7630H - 30H
    7631H - 1FH

    Вы говорите, что при работе директивы I берется значение из ячейки 7631H равное 24H. Как так, если в ней изначально 1FH?

    И второй вопрос - за что конкретно отвечают эти три значения? Насколько я понял, 7631H - это скорость чтения для I и скорость записи для O. А ячейки 7630H и 762FH за что отвечают?
    Точно. Опечатался когда набирал текст. Адреса для I - $7632 и $762f.
    Вот оригинальный фрагмент инициализации этих ячеек в Мониторе:
    Код:
    adr_$f878:
      lxi  h, $762f
      mvi  m, $38
      inx  h
      mvi  m, $30
      inx  h
      mvi  m, $1f
      inx  h
      mvi  m, $24
    Работает это дело так. В РК86 процедуры save_byte и load_byte используют две разные константы для записи и чтения. Пока при записи или чтении байта не достигнут последний бит, то используются сами константы. Если бит последний, то используя команду вычитания значение константы уменьшается на некоторое число. В Микроше для уменьшения констант вычитание не применяется, а берётся меньшее значение из соседних ячеек.
    Итого.
    Для директивы O используются ячейки $7631 и $7630, в которых изначально $1f и $30.
    Для директивы I используются ячейки $7632 и $762f, в которых изначально $24 и $38.

  7. #6
    Member
    Регистрация
    03.09.2020
    Адрес
    г. Санкт-Петербург
    Сообщений
    34
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Значит, в памяти с 762FH по 7632H мы имеем:

    24H, 30H, 1FH, 38H.

    где первая и последняя ячейки предназначены для I, а две средние для O.

    Вопрос 1. А уменьшаются ли эти значения в этих ячейках памяти при обработке каждого 8-го бита, или меняется значение где-то в регистре, а значения впамяти не трогаются.

    Вопрос 2. Что значит что для Микроши берется меньшее из соседних ячеек? Из каких соседних? Для директивы I ячейки совсем не соседние.
    Любопытный хомячок webhamster.ru - маленький и пушистый IT-проект

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

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

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

Похожие темы

  1. SD адаптер для микроши (?)
    от crrush в разделе Радио-86РК
    Ответов: 16
    Последнее: 01.04.2021, 10:25
  2. Ответов: 13
    Последнее: 15.03.2021, 12:07
  3. Ответов: 5
    Последнее: 19.02.2021, 17:51
  4. Локальная сеть для "Микроши"
    от tnt23 в разделе Радио-86РК
    Ответов: 20
    Последнее: 06.09.2018, 12:39
  5. Реальная скорость работы УКНЦ
    от vladtru в разделе ДВК, УКНЦ
    Ответов: 109
    Последнее: 25.12.2015, 20:03

Метки этой темы

Ваши права

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