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

User Tag List

Страница 6 из 14 ПерваяПервая ... 2345678910 ... ПоследняяПоследняя
Показано с 51 по 60 из 135

Тема: RK-КНГМД для "Специалиста"

  1. #51
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,404
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    598
    Поблагодарили
    444 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Denn, я на штатном Орионе успевал чуть-чуть более топорно:
    Код:
    ;Управление Регистром
    CTR:LDA  0F700H
        ANI  01H
        JNZ  CTR
        MOV  A,C
        STA  0F700H
        RET
    ;Запись данных с синхронизацией
    DAT:LDA  0F700H
        ANI  01H
        JNZ  DAT
        MOV  A,C
        STA  0F703H
        RET
    ;Чтение сектора SEC-СЕКТОР, TRK-ДОРОЖКА
    ;Длинной в 512B
    INS:PUSH H
        PUSH D
        PUSH B
        LDA  TRK
        ANI  1H
        ORI  0EH
        STA  0F602H
        LDA  TRK
        ANI  7EH
        RRC
        MOV  C,A
        CALL DAT
        MVI  C,18H
        CALL CTR
        LDA  SEC
        INR  A
        STA  0F702H
        CALL RED
        MVI  C,80H
        CALL CTR
        LXI  H,BUF
        LXI  D,0F703H
        MVI  C,82H
    IN0:LDA  0F700H
        ANA  C
        JZ   IN0
        LDAX D
        MOV  M,A
        INR  L
        JNZ  IN0
        INR  H
    IN1:LDA  0F700H
        ANA  C
        JZ   IN1
        LDAX D
        MOV  M,A
        INR  L
        JNZ  IN1
        LDA  0F700H
        POP  B
        POP  D
        POP  H
        RET
    Цикл пришлось разбивать из-за того, что обработку двух байт размера уже не успевал (+2 команды). А вот если бы штурманул был плотнее - сделал бы как у тебя. MS-DOS дискеты с FAT12 работали на ура. И да, он не зависла, если RDY снимался - просто забивал буфер последним статусом, который и возвращался для обработки ошибок.

  2. #52
    Guru Аватар для Denn
    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,220
    Спасибо Благодарностей отдано 
    475
    Спасибо Благодарностей получено 
    900
    Поблагодарили
    592 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    Arrow

    HardWareMan, к своему варианту я пришёл перепробовав многое. У меня, к сож, только так работает стабильно.
    LDA 0F700H (13 тактов) вместо LDAX D (7 тактов) уже не прокатывает.
    Плюс у меня ещё стояла задача не читать лишнего (последний байт за пределами сектора), собственно из-за этого пришлось городить огород с заходом в середину цикла.

    П.С. У тебя получается тоже через ANA C, но маска почему-то 82H... имхо, контроль неготовности в цикле чтения не нужен, т.к. таковая по-любому проверяется на предыдущих этапах (позиционирование головок). А вот младший бит чекать надо, емнип он отвечает за окончание процесса (в т.ч. преждевременное, по ошибке).
    Последний раз редактировалось Denn; 01.12.2017 в 17:04.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  3. #53
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,404
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    598
    Поблагодарили
    444 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Denn Посмотреть сообщение
    П.С. У тебя получается тоже через ANA C, но маска почему-то 82H... имхо, контроль неготовности в цикле чтения не нужен, т.к. таковая по-любому проверяется на предыдущих этапах (позиционирование головок). А вот младший бит чекать надо, емнип он отвечает за окончание процесса (в т.ч. преждевременное, по ошибке).
    Ты не поверишь, но у меня зависал если была ошибка "Адресная метка не найдена". А анализ готовность срывал цикл в быстрый прогон как только мотор остановлен контроллером. Я уже писал об этом.

  4. #54
    Veteran Аватар для Pyk
    Регистрация
    05.04.2013
    Адрес
    с. Починки, Нижегородская обл.
    Сообщений
    1,181
    Спасибо Благодарностей отдано 
    264
    Спасибо Благодарностей получено 
    457
    Поблагодарили
    182 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если у кого-то есть желание поэкспериментировать в эмуляторе с РК КНГМД на Специалисте, я могу попробовать сделать соответствующий конфиг для Emu80. На первый взгляд это даже не потребует доработки самого эмулятора.

  5. #55
    zx_
    Гость

    По умолчанию

    Pyk, желание есть, спасибо большое -)

  6. #56
    Veteran Аватар для Pyk
    Регистрация
    05.04.2013
    Адрес
    с. Починки, Нижегородская обл.
    Сообщений
    1,181
    Спасибо Благодарностей отдано 
    264
    Спасибо Благодарностей получено 
    457
    Поблагодарили
    182 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    zx_, ок, тогда нужны конкретные предложения - по каким адресам разместить контроллер и саму РК ДОС, в какой версии Специалиста (наверное обычный, не MX)? Также кому-то нужно будет в перспективе адаптировать РК ДОС или хотя бы для начала написать тесты для проверки работоспособности...

  7. #57
    Banned
    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,080
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Так в этом-то и прелесть, - ничего менять не надо. Ни адреса RK-DOS, ни сам код RK-DOS. И, естественно, тогда и адрес РК-КНГМД тот же - F000. Это самый тупой лобовой вариант.

    Спойлер

    Click me


    Как недостаток при этом приходится вводить перемычку-конфигуратор переключающую чип-селект ПЗУ F000...F7FF и выборку РК-КНГМД. Можно обойтись и без перемычки, извлекая ПЗУ F000 при вставке в слот РК-КНГМД, и наоборот, вытаскивая из слота плату РК-КНГМД, когда требуется ставить 7-мое ПЗУ. Но обычно шесть ПЗУ хватает.

    При необходимости, т.к к адресам РК-КНГМД обращается только DOS и форматёр, то перетранслировав их, легко изменить адрес РК-КНГМД с F000 на FC00 (это типичный адрес КНГМД на СПЕЦИАЛИСТЕ). При этом 7-мое ПЗУ или ОЗУ в адресах F000...F7FF можно будет сохранить.

    Другой недостаток в том, что основное ОЗУ используется не по максимуму, а т.к управляющие ячейки DOS на 7500, то даже не считая раб ячейки ПЗУ РК86 (7600...76D0) в СПЕЦИАЛИСТЕ впустую пропадает ОЗУ от 76D0 до RAMTOP СПЕЦИАЛИСТА, т.е 76D0...8F60. Понятно, что труд на 8 секунд перетранслировать на 4 кб выше, получив тем самым, на 4 кб большее TPA.

    К сожалению, RK-DOS написана с полным игнорированием мирового опыта по написанию DOS (зато компактная). А именно, она управляется не функциями, как все другие DOS, а ячейками, адреса которых жёстко фиксированы. И все прикладные программы управляют DOS ячейками в области 7500. Если же адреса этих ячеек перенести под RAMTOP, то перестанут работать не только все дисковые программы от РК86, но и командные SYS-файлы.

    Учитывая, что для СПЕЦИАЛИСТА программ длиннее 7000 очень мало, то такой лобовой вариант выглядит предпочтительнее, чем DOS с высоким TPA. Точнее разумно иметь две версии RK-DOS. Одну базовую 100% совместимую, а вторую с высоким TPA. А лучше, - эту совместимую RK-DOS, позволяющую грузить программы размером до 28 кб и CP/M, которой можно грузить программы размером до 35.5 кб.

    Как плюс такой вариант даёт отстутствие лишнего труда на перетрансляцию для других адресов. В общем-то, базовую RK-DOS в ПЗУ E000...EFFF следует рассматривать лишь как средство отладки системы и средство получить доступ к программам от РК86.

    Несколько слов о ПЗУ. Учитывая, что топик стартер будет использовать РК-КНГМД на плате ЭКСПРЕСС, возможны варианты.

    Самый простой вариант, когда на плату ставятся 3 ПЗУ РФ2, а в области D800...F7FF не стоит ничего. Тогда RK-DOS можно ставить на плате РК-КНГМД или на плате ЭКСПРЕСС. В обоих этих случаях две РФ2 напаиваются в 2 этажа. На плате ЭКСПРЕСС этот бутерброд ставится в 28-ми ногую панельку (позаботившись, чтобы на 24 и 21 ноге было +5 В).

    В области E000...EFFF может стоять ОЗУ, ПЗУ или ничего. Чтобы не возникло конфликта по шине, при установке РК-КНГМД, требуется снимать с основной платы ПЗУ E000 и E800.

    Если же используется огромное ПЗУ 27128 установленное в окне 14 кб, то, во-первых, надо обеспечить, чтобы по адресу F000 этого ПЗУ не стояло (на плате "Восточный Экспресс" вероятно для этого достаточно перекусить один диод), потому что чип-селект /F000 подаётся на РК-КНГМД.

    Как выше указано, не представляет проблемы перенести адрес КНГМД на FC00 (и я даже могу сделать форматёр автоматически настраивающийся на адрес РК-КНГМД). Также можно сделать и RK-DOS с автонастройкой на адрес РК-КНГМД, но такая версия должна работать в ОЗУ 7800 (грузиться из ПЗУ). Перенос адреса РК-КНГМД на FC00, позволит использовать ПЗУ в полном окне 14 кб, что в случае двух страниц из 27256 даст 28 кб ПЗУ.

    [свернуть]
    Последний раз редактировалось barsik; 04.12.2017 в 07:52.

  8. #58
    Member Аватар для makbar
    Регистрация
    04.06.2016
    Адрес
    г. Ярославль
    Сообщений
    100
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Denn Посмотреть сообщение
    Имхо, регистр на DRQ/INTRQ проще, чем замена проца.
    вот именно. что-то подсказывает, что был бы у меня РК а не Специалист тогда... я бы все равно смог прикрутить ВГ93. Мне деваться было некуда, мне надо было хранить образы ПЗУшек.
    С другой стороны, я рад , что собрал именно Специалист (а потом прикупил готовую плату Ориона). Потому что для целей программатора их архитектура подходила идеально, включая битовое отображение памяти на экран. Мой софт программатора использовал это, визуально отображая зашиваемую область, так сказать, в процессе)
    Разработчик КНГМД для Специалиста и Ориона128, автор SPDOS (журнал "Радио" 12/1992, 1-2/1993). Манускрипт, датированный 1993-94гг: Отладка контроллера SPDOS SPDOS v4.3

  9. #59
    zx_
    Гость

    По умолчанию

    Pyk, ориентироваться можно на исторические ориентиры -)

    «а также на ЭВМ "СПЕЦИАЛИСТ-48К" (ленинградский мони-
    тор, имеющий вызовы F800) совместно с КНГМД по схеме из журнала РАДИО N1-2 1993»
    «ЭВМ "СПЕЦИАЛИСТ" уже имеет "чип-селекты" E000,E800 и F000
    и поэтому установка дешифратора не требуется. »
    http://sensi.org/~tnt23/rk86/index.html

    и еще , физически это попытка к Специалист Экспресс подключить РК КНГМД, тоесть увидеть возможные неудачи при создании эму былобы супер
    рекомендации по подключению , так сказать

  10. #60
    Moderator Аватар для fifan
    Регистрация
    30.05.2007
    Адрес
    г. Лянтор, Сургутского р-на, ХМАО
    Сообщений
    4,165
    Спасибо Благодарностей отдано 
    106
    Спасибо Благодарностей получено 
    125
    Поблагодарили
    71 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zx_ Посмотреть сообщение
    физически это попытка к Специалист Экспресс подключить РК КНГМД, тоесть увидеть возможные неудачи
    Этого я тоже боюсь.

Страница 6 из 14 ПерваяПервая ... 2345678910 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. PS/2 адаптер клавиатуры для Специалиста
    от fifan в разделе Специалист
    Ответов: 230
    Последнее: 27.07.2023, 10:03
  2. Ответов: 153
    Последнее: 16.12.2021, 19:07
  3. OriNET для Специалиста ?
    от SYR-ALEX в разделе Специалист
    Ответов: 22
    Последнее: 21.07.2017, 07:40
  4. Есть 3 кассеты для Специалиста...
    от Bolt в разделе Специалист
    Ответов: 60
    Последнее: 27.10.2013, 14:24
  5. Изучается спрос на плату для Специалиста
    от Павел Рябцов в разделе Барахолка (архив)
    Ответов: 109
    Последнее: 30.11.2010, 10:16

Ваши права

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