User Tag List

Страница 70 из 119 ПерваяПервая ... 666768697071727374 ... ПоследняяПоследняя
Показано с 691 по 700 из 1185

Тема: Радио-86РК: Подключение дисковода

  1. #691

    Регистрация
    07.05.2013
    Адрес
    г. Уфа
    Сообщений
    1,212
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    138
    Поблагодарили
    113 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vladimir_S Посмотреть сообщение
    Только если перенести экранную область и вполовину обезжирить монитор.

    - - - Добавлено - - -

    На ВМ85 все работает, а при выборе Z80 пишет I/O ERR.
    Красивая плата, и оба процессора вместе! А тыльная сторона МГТФ как я понял?

    Мои скромные железяки


    Altair8800(в процессе)
    ATARI 65хе
    YAMAHA YIS503IIIR
    PackardBell
    HP Vectra 286/25n/VE/VL/VL800/VLi8, Kayak XA
    AcerPower 433sv
    Fujitsu-Siemens Scenic/S 2
    Compaq deskpro en

    МС 0511-01
    Микро80(в процессе)
    Микроком85
    Апогей-БК01Ц
    РадиоРК-86
    БК0010/10-01/11/11М
    ПК-8000
    Львов ПК-01
    Агат-9
    ДВК-2(в процессе)
    ДВК-3М
    Вектор-06ц
    Специалист
    ХТ8088 nec-20
    АТ286,386,486
    PI-75-200ММХ
    РII, III,IV

    ZX-Evolution r.C3
    Santaka-002
    Дельта-С
    Ленинград48к
    [свернуть]

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

  3. #692

    Регистрация
    30.05.2017
    Адрес
    г. Алматы, Казахстан
    Сообщений
    908
    Спасибо Благодарностей отдано 
    63
    Спасибо Благодарностей получено 
    275
    Поблагодарили
    148 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vladimir_S Посмотреть сообщение
    Все, победил, причем после небольшого изменения схемы с Z80 работает как переделанный под Z80 ДОС, так и родной 2.95 с IN/OUT.

    А как победил то ?

  4. #693

    Регистрация
    12.12.2011
    Адрес
    г. Иркутск
    Сообщений
    2,509
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    22
    Поблагодарили
    20 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sancho45 Посмотреть сообщение
    А как победил то ?
    На моей плате есть турбо режим. ДОС ни как не хотел работать с Z80. Случайно запустил ДОС на тактовой частоте процессора в два раза большей и увидел каталог диска. Правда потом комп повис, но на 2МГц Z80 надежно работает в ДОС.

    Цитата Сообщение от Ратмир Посмотреть сообщение
    А тыльная сторона МГТФ как я понял?
    Ну да.

  5. #694

    Регистрация
    07.05.2013
    Адрес
    г. Уфа
    Сообщений
    1,212
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    138
    Поблагодарили
    113 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    Мои скромные железяки


    Altair8800(в процессе)
    ATARI 65хе
    YAMAHA YIS503IIIR
    PackardBell
    HP Vectra 286/25n/VE/VL/VL800/VLi8, Kayak XA
    AcerPower 433sv
    Fujitsu-Siemens Scenic/S 2
    Compaq deskpro en

    МС 0511-01
    Микро80(в процессе)
    Микроком85
    Апогей-БК01Ц
    РадиоРК-86
    БК0010/10-01/11/11М
    ПК-8000
    Львов ПК-01
    Агат-9
    ДВК-2(в процессе)
    ДВК-3М
    Вектор-06ц
    Специалист
    ХТ8088 nec-20
    АТ286,386,486
    PI-75-200ММХ
    РII, III,IV

    ZX-Evolution r.C3
    Santaka-002
    Дельта-С
    Ленинград48к
    [свернуть]

  6. #695

    Регистрация
    12.12.2011
    Адрес
    г. Иркутск
    Сообщений
    2,509
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    22
    Поблагодарили
    20 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Ратмир Посмотреть сообщение
    акой же как у тебя, только синий.
    Так верхняя крышка с клавой и так синяя.

  7. #696

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

    По умолчанию

    Цитата Сообщение от Ратмир
    Для АПОГЕЯ кроме ROM-диска ничего путного изобретено не было. Хотя разъём есть
    Это отлично, т.к чем меньше всего есть для компьютера, тем он интереснее. А каких машин сейчас больше у пользователей, - МИКРОШ или АПОГЕЕВ?

    Цитата Сообщение от Sancho45
    Я изменил п/п проверки сигнала RDY, поставил туда цикл ДО проверки готовности. Вся прошивка та же, только несколько байтов поменял местами (до этого был цикл опроса RDY, поменял на просто цикл паузы, а. физический RDY всегда готов))
    Вообще-то до этого был цикл ожидания RDY с ограничением времени в 2 секунды, чтобы спустя 2 секунды неготовности выдать надпись BAD SECTOR (или что-то подобное).

    Вы ввели просто паузу, удлинив п/п-мму READY до секунды. Это немного похоже на аппаратную задержку формирования сигнала READY из сигнала 'Device Select' на КМОП-вентилях, но есть существенное отличие, - если это сделано неграмотно, то это приведёт к торможению работы ДОС.

    Вопрос в том, на каком исходнике Вы это делали и как. Нельзя ли "зыркнуть" на листинг?

    Нежелательно это делать на оригинале Е.Седова. Потому что там нет флага о том, что колесо вращается, отчего любой вызов п/п-ммы READY будет длиться одинаково долго (секунду, что Вы отвели на раскрутку). А в варианте с эмуляцией, есть флаг PSKFLG, благодаря чему, вызов п/п READY только при невращающемся колесе длится долго, а последующие вызовы, когда колесо уже крутится, намного короче.

    Если, как Вы пишете Вы ввели паузу до обслуживания READY, т.е до анализа флага PSKFLG, то это неправильно, т.к тормознёт. Но надо видеть листинг.

    А чем Вас не устроил вариант с эмуляцией READY из сигнала INDEX? Работает ли это на реале, т.к проверялось только в эмуляторе? В эмуляторе есть разница в скорости реакции ДОС с аппаратным READY и ДОС с эмуляцией READY из сигнала INDEX. Разница в том, что в варианте с аппаратным READY реакция на команды быстрее. Вообще-то заметного торможения не должно быть, т.к при вызове READY при уже вращающемся колесе контроллируется только один оборот колеса, что тормозит на 0.2 секунды при каждом вызове. В принципе, можно убрать контроль на вращение колеса при повторных вызовах READY, т.е сразу же, если флаг PSKFLG выставлен, делать RET. Мне интересно, есть ли в реале такое торможение, потому что у меня в 90-тые такого не было. Т.е хочу знать это свойство эмулятора или реала.

    о колесе


    Но немного не так делается в BIOS CP/M. CP/M в отличие от RK-DOS ничего не знает о колесе и в ней нет подпрограммы OSTANOV. Это только RK-DOS после выполнения задачи, вызывает функцию OSTANOV и колесо останавливается. С БИС ВГ93 о пуске и останове колеса тоже заботиться не надо. Обычно (если сделано грамотно) для формирования сигнала старт, используют сигнал HLD (Head Load), который предназначен для пуска колеса и пуска магнита прижимающего головку к поверхности, или, (если КНГМД неграмотный), то используют одновибратор с константой на 4-5 секунд. Одновибратор, не нужен, т.к эту задержку даёт сам ВГ93, снимая спустя 4-5 секунд сигнал HLD. Потому при БИС ВГ93 в ДОС не требуется заботиться о колесе.

    В CP/M на базе РК-КНГМД иначе. Здесь заботиться о колесе приходится программно. Задача в том, чтобы обеспечить останов колеса, если в течение 5 секунд не происходит обращения к дисководу. Понятно, что с таймером или прерываниями это легко решаемо. Но раз нет прерываний (т.к они истрачены на звук), то делается так. Вызов п/п-ммы READY запускает колесо, выставляет флаг PSKFLG и заносит в счётчик большое число. Естественно, READY в первый раз (т.е при входе в п/п-мму READY с сброшенным флагом PSKFLG и когда колесо не крутится), формируется спустя паузу (пауза, задержкой, если Вы так уж хотите) или спустя паузу на обнаружение того, что колесо вращается по импульсам на выходе INDEX. Но когда к READY обращаются после старта колеса, то паузы не происходит, т.к установлен флаг PSKFLG и возврат из READY происходит мгновенно.

    Как останавливать колесо в ДОС, которые ничего не знают о РК-КНГМД, например CP/M? Для этого перед вызовом п/п-ммы F81B, которая является единственным интерфейсом с клавиатурой (STATUS тоже получают из неё, F812 не используется, т.к например, в РК86 она буферизована, что нам не надо) вставляется одна строчка CALL TICK (или CALL SYSTIK. В этой подпрограмме декрементируется тот большой счётчик, что был установлен по старту колеса. Когда ДОС закончила все дисковые процедуры, она возвращается к опросу клавиш, т.е начинается вызов в цикле п/п-ммы F81B, Обычно в цикле за секунду успевает произойти 1000....5000 вызовов F81B (в зависимсоти от такта и грамотности п/п-ммы опроса). При каждом вызове F81B счётчик уменьшается и через 5 секунд опроса F81B в цикле достигается ноль. Тогда вместо RET NZ, выполняется JMP OSTANOV и колесо останавливается.

    К такой идее задержки приходится прибегать только, если в дисководе нет сигнала INDEX (например 5050, 5088), тогда нет ни самого сигнала READY, ни возможности его эмулировать из сигнала INDEX. Кстати, у меня как раз есть 5 таких дисководов и все без сигнала READY и INDEX, причём и сигнала TRK0 тоже нет (это фактически голая рама с мотором и улиткой). Такой дисковод стоил 200 USD в 1976 (для пересчёта на современные деньги надо умножить сумму на 5).
    [свернуть]
    Последний раз редактировалось barsik; 27.07.2017 в 06:48.

  8. #697

    Регистрация
    30.05.2017
    Адрес
    г. Алматы, Казахстан
    Сообщений
    908
    Спасибо Благодарностей отдано 
    63
    Спасибо Благодарностей получено 
    275
    Поблагодарили
    148 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от barsik Посмотреть сообщение
    Вообще-то до этого был цикл ожидания RDY с ограничением времени в 2 секунды, чтобы спустя 2 секунды неготовности выдать надпись BAD SECTOR (или что-то подобное).

    Вообще-то я так и написал :-
    Цитата Сообщение от barsik Посмотреть сообщение
    до этого был цикл опроса RDY,
    , что и есть ожидание RDY, и не 2 сек, а от FFFFh до 0000h в цикле(в сторону уменьшения), длительость цикла и такты не считал, но явно по ощущениям меньше 2-х сек.

    вот фрагмет из ваших текстов:


    Код:
    READY:
            LD      HL,0
    RDYLOO:
            IN      A,(0F1H)                ; *****
            LD      A,(PORT+1)
            AND     RDYMSK
            RET     Z
            DEC     HL
            LD      A,H
            OR      L
            JR      NZ,RDYLOO
            LD      A,3
            JP      PR_ERN
    
    ;────────────────────────────────────────────
    Т.к. RDY припаян к земле, то из цикла выскакивает при первом проходе, а дисковод еще не готов !

    Что я сделал :
    Код:
    READY:
            LD      HL,1FFFh
    RDYLOO:     
            DEC     HL
            LD      A,H
            OR      L
            JR      NZ,RDYLOO
            IN      A,(0F1H)                ; *****
            LD      A,(PORT+1)
            AND     RDYMSK
            RET     Z
            LD      A,3
            JP      PR_ERN
    
    ;────────────────────────────────────────────
    Все тоже самое, только местами поменял и вместо 0000h-1 поставил 1FFFh


    Цитата Сообщение от barsik Посмотреть сообщение
    Вы ввели просто паузу, удлинив п/п-мму READY до секунды.

    Я просто дал время дисководу равное циклу 1FFFh для того что бы он был готов, и потом запрашиваю RDY и т.к. он на земле т.е. всегда готов и дисковод уже готов, то все работает и так же есть возможность аппаратной доработки сигнала(если не на земле а через хитрую схемку)

    На счет раскрутки все равно надо 500мс, какая разница дос будет ждать раскрутки 500мс или просто ждать 500мс и потом читать RDY ?
    Сигнал опрашивается один раз за сеанс , потом другие запросы , INDEX и тд. У меня все работает без тормозов, я не собираюсь тиражировать диски на микроше, что бы раз в сек опрашивать RDY, да и во всех программах что я просмотрел сигнал опрашивается один раз за сеанс при инициализации дисковода

    - - - Добавлено - - -


    Цитата Сообщение от barsik Посмотреть сообщение
    чтобы спустя 2 секунды неготовности выдать надпись BAD SECTOR (или что-то подобное)
    Не правда. Причем тут RDY и BAD SECTOR. Здесь пишут,и у меня раньше было I/O ERR




    Цитата Сообщение от barsik Посмотреть сообщение
    А чем Вас не устроил вариант с эмуляцией READY из сигнала INDEX?
    Работа ,

    не успел еще проверить ваш вариант.

    Параллельно орион собираю.

    И я вообще думал заменить проверку флага RDY на флаг INDEX
    Но времени нет особо для отработки мыслей. Как время будет,попробую Ваш вариант и отпишусь.
    Последний раз редактировалось Sancho45; 27.07.2017 в 04:39.

  9. #698

    Регистрация
    28.03.2006
    Адрес
    Санкт-Петербург
    Сообщений
    2,777
    Спасибо Благодарностей отдано 
    555
    Спасибо Благодарностей получено 
    200
    Поблагодарили
    138 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Sancho45, выложи свой вариант ПЗУ c задержкой перед RDY, проверю свои "нерабочие" флопы.

  10. #699

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

    По умолчанию

    Ну да, как и описывалось, Вы ввели паузу на 0.5 секунды (кстати в счётчик времени ожидания HL загружается 0, т.к это было для ОРИОНА, который в 3-4 раза быстрее РК, в котором ожидание будет не 2 секунды, а в разы больше). Но эта пауза исполняется при каждом вызове п/п-ммы READY, тогда как она нужна только тогда, когда колесо не крутится. Если же колесо уже крутится, то пауза не нужна. На скорости чтения это не отразится, потому что при чтении сектора п/п-мма READY не вызывается, т.к ради ускорения, полагаются на то, что даже если первые попытки чтения, ещё при нераскрученном до номинальной скорости колесе, дадут ошибку, то это не важно, так как число попыток чтения велико.

    Но, если Вы в редакторе текстов выполните поиск метки 'WRSKT:', то увидите, что при каждой записи сектора вызывается подпрограмма READY (т.к запись при нераскрученном колесе приводит к трагедии). Если средний размер игры 20 кб, т.е она имеет размер в 40 секторов по 512 байт, то вызов п/п-ммы READY 40 раз при копировании этого файла затормозит работу на 0.5 сек * 43 сектора (1 сектор в каталоге, 1 сектор во VTOC и 1 сектор Track/Sector LIST плюс число секторов самого файла) на 21.5 секунды. Если копируется диск 400 кб, где 800 секторов, то копирование затормозится на 400 секунд, т.е на 7 минут.

    Цитата Сообщение от Sancho45
    Неправда. При чём тут RDY и BAD SECTOR?
    В CP/M и похожих ДОС нет развитой диагностики ошибок. Там всего 4 ошибки, отчего, когда что-то не так с дисководом, выдаётся сообщение "Bad Sector". Я привёл текст сообщения лишь примерно, как пример, что что-то подобное выдаётся. А сейчас посмотрел и обнаружил, что в RK-DOS ошибка с кодом 3 выдаёт текст "NO DISK", хотя лучше было бы выдавать текст, как в MSDOS "Drive Not Ready". Сообщение "I/O ERROR" у Вас было потому, что сигнал READY был заземлён, отчего колесо при чтении не успевало раскрутиться.

    А ещё один способ добиться чтения на НГМД без аппаратного сигнала READY заключается в том, чтобы в 3-4 раза увеличить число попыток чтения. Тогда надпись "I/O ERROR" будет выскакивать спустя минуту "долбёжки" дискеты. Это нехорошо тем, что тогда и при реальной дохлоте сектора, этот сектор будет пытаться считываться кучу раз, изнашивая головку дисковода.
    Последний раз редактировалось barsik; 27.07.2017 в 06:53.

  11. #700

    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,234
    Спасибо Благодарностей отдано 
    490
    Спасибо Благодарностей получено 
    989
    Поблагодарили
    641 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Когда разбирался с программированием дисковода, то пришёл к следующей схеме старта. Ориентироваться на READY бесполезно, т.к. зачастую он фэйковый ("34" на GND). Два раза даётся команда инициализации (именно два раза подряд, т.к. один раз почему-то не прокатывал, обнаружено эмпирически). Далее даётся команда перехода к целевому треку и ожидается её отработка по соотв. флагу ВГ93. Отработка означает, что по факту считан целевой номер трека, т.е. шпиндель 100% раскручен до нужной скорости (с трека читаются корректные данные). Боевой код получился ещё хитрее, т.к. пришлось вводить тайм-ауты на случай если READY тупо на земле, а в дисковод дискета не вставлена (в этом случае поиск целевого трека залипает до бесконечности).
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

Страница 70 из 119 ПерваяПервая ... 666768697071727374 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Радио-86РК: Игры
    от rnd.gen в разделе Радио-86РК
    Ответов: 146
    Последнее: 10.12.2025, 06:29
  2. Радио-86РК: Ремонт
    от kokosbot в разделе Радио-86РК
    Ответов: 59
    Последнее: 19.04.2013, 22:48
  3. Радио-86РК: Литература
    от caro в разделе Радио-86РК
    Ответов: 6
    Последнее: 26.04.2011, 10:18
  4. Радио 86РК
    от Shnurkov в разделе Барахолка (архив)
    Ответов: 1
    Последнее: 02.01.2009, 12:52

Ваши права

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