User Tag List

Страница 5 из 13 ПерваяПервая 123456789 ... ПоследняяПоследняя
Показано с 41 по 50 из 137

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

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

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

    Регистрация
    16.12.2008
    Адрес
    Kharkov, Ukraina
    Сообщений
    2,221
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    18 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от makbar Посмотреть сообщение
    Я проехал мимо РК помнится, только потому что достать вг75 было вообще невозможно.
    Даже во времена начала бума ZX ВГ75 стоила на рынке 25р., в тоже время комплект ПЗУ на ZX стоял 75р. В общем можно было смело вкладываться тогда в ZX. Поправка - если память меня не подводит.

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

    И видимо я стал счастливым обладателем RK, только благодаря купленному конструктору КР-02 (чуть ранее на год, два).
    Последний раз редактировалось OrionExt; 10.12.2017 в 16:28.
    Электроника КР-02, MSX YIS-503IIR, Орион-128, Ленинград-2, Pentagon-128k, MSX2 YIS-503IIIR, MSX-EXT, ...

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

  3. #2

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

    По умолчанию

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

  4. #3

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

    По умолчанию

    Цитата Сообщение от zx_
    судя по конфиг файлу ЕМU80 - вообще никаких изменений для работы с РК ДОС 2.9/S. от barsik
    Конечно в конфиг файл для СПЕЦИАЛИСТА с дисководом я никаких изменений не вносил. Да и не мог, откуда мне знать как его менять? Чтобы получить другую архитектуру.

    Всё, что я сделал, - это изменил в 3-й строке имя файла с кодом DOS, что эмулятор грузит на E000 в ПЗУ E000...EFFF, с DOS29.BIN на RKDOS.DAT.

    Можно поступить наоборот, ничего не менять в конфиге, а просто удалить файл DOS29.BIN, а файл RKDOS.DAT переименовать в DOS29.BIN. Результать будет тот же, - эти коды будут читаться в адресах E000...EFFF. Эмулятор тем и приятен, что не надо трахаться с УФ-очисткой и прошивкой ПЗУ на УФ-прошивателе, - изменил несколько букв и буквально за пол секкунды получаешь тот же результат.

    Цитата Сообщение от zx_
    SE не работает
    Естественно. Но на самом деле SE.COM работает, просто на экране Вы ничего не видите.

    Я же уже неоднократно писал об этом. На ОРИОНЕ и на других ЭВМ, в которых нет экранного ОЗУ как в РК86 в области 76D0...7FFF, не будут работать наглые программы с прямой записью в экранное ОЗУ. Это ведь то же самое, как в случае наглых игр от РК86, которые совместимы по клавиатуре (т.к читают её стандартно, по F81B или F803), но с экраном работают нагло напрямую записывая байты в экранное ОЗУ. Такие игры можно адаптировать только полностью поменяв алгоритм.

    В случае RK-DOS, где Е.Седов активно увлекался наглотой, из важных программ не могут работать нортон SE.COM, диск-доктор DOCTOR.COM и посекторный редактор TS-EDIT.COM

    Когда я стал пользоваться RK-DOS меня тоже это безобразие возмутило, и чтобы что-то увидеть на экране, я поначалу загружал драйвер визуализации, который работал так.

    На ОРИОНЕ ROM-BIOS по идеологии грамотный, в частности, имеет вектора для основных стандартных подпрограмм. Потому там можно на вектора ПЗУ загрузить, например, свой драйвер клавиатуры или дополнить имеющийся иными функциями. Что я и делал.

    Скрытый текст


    Простейший драйвер, основанный на возможностях монитора-3, отлавливает нажатие УС+СС+V и по такому нажатию запускает процедуру визуализации, просто сливая экран РК86 в экран ОРИОНА, отчего на экране возникает картинка из экрана РК86.

    Понятно, что визуализировать вручную мне скоро надоело, поэтому используя, опять-таки свойство М3, в котором, в отличие от М2, векторизована и подпрограмма F81B, я сделал полноценный драйвер визуализации, основанный на следующей идее.

    Т.к все программы всех ЭВМ, где клавиатура не на прерываниях, беспрерывно опрашивают клавиатуру (иначе нажатия бы пропали), то вызов п/п-мм клавиатуры происходит тысячи раз в секунду. И соответственно, все программы РК86 тысячи раз в секунду вызывают всего две п/п-ммы F812 и F81B или просто висят в подпрограмме F803. За секунду происходит в зависимости от скорости ЭВМ до 5000 вызовов F81B.

    А в ПЗУ ОРИОНА ф-я STATUS не выкидывает 0 в порт A, читая по B (чтобы проконтроллировать одним считыванием все линии сканирования), а вместо этого вызывает F81B, т.к 3 байта короче, чем 30 байтов. Потому, если в исполнительную часть п/п-ммы F81B добавить счётчик вызовов и по каждому, например, 300-тому вызову F81B вызывать процедуру визуализации (и перед F803), то это будет работать точно также, как визуализация на прерываниях.

    Вот так устроен полноценный программный эмулятор РК86, а не та туфта, что была опубликована в ж.РАДИО в 1991 под именем эмулятор РК86.

    Кстати на этом же принципе основаны программые часы в моих драйверах, пока программа читает клавиатуру, программные часы идут (хотя если нет опоры на апп.таймер, то часы идут неточно).

    Короче, благодаря таким свойствам М3, простейшим способом получается визуализация наглых программ РК86. К сожалению, не всех.

    Потому что извращенцы идут дальше, они не только нагло лезут в экран, но еще и используют служебные ячейки ПЗУ наоборот. Например, чтобы изменить позицию в экране куда по F809 будет выкинут очередной символ (вместо того, чтобы использовать код ESC,Y), они нагло меняют ячейки 7600/7601, где ПЗУ хранит экранный адрес для очередного вывода на экран. Оттого вывод получается куда они хотят, и даже вне основной экранной матрицы, что позволяет выводить выше экрана 64*25, ниже его, правее и левее. Но на ОРИОНЕ ячейка 7600 ни на что не влияет и вывод по F809 происходит по текущим координатам из ячеек POSX, POSY (F3D6/F3D7).

    Чтобы даже такая сверхнаглота визуализировалась, надо переписать ROM-BIOS ОРИОНА так, чтобы служебные ячейки ПЗУ РК86 полностью обслуживались и точно также как в РК86 влияли на работу. По сути именно это должны были сделать разработчики ОРИОНА, раз уж взялись за задачу совместимости с РК86.
    [свернуть]
    Последний раз редактировалось barsik; 11.12.2017 в 03:23.

  5. #4

    Регистрация
    20.06.2014
    Адрес
    г. Орск, Оренбургская обл.
    Сообщений
    814
    Спасибо Благодарностей отдано 
    34
    Спасибо Благодарностей получено 
    80
    Поблагодарили
    60 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Неужели 64 такта (MFM 250Кбит/с, тактовая 2МГц) или 80 тактов (тактовая 2.5МГц) не хватает на чтение/запись байта и поллинг запроса данных? В АГАТе 32-х тактов свободно хватает.
    Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

  6. #5

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

    По умолчанию

    На Орионе с тактом 2,5 МГц мне удалось "обмануть физику" так:

    Код:
    ; PЕГИСТРЫ УПРАВЛЕНИЯ КОНТРОЛЛЕРОМ:
    
    ;RG_CMD:EQU 0F700H; Р-Р КОМАНД/СОСТОЯНИЯ
    ;RG_TRK:EQU 0F701H; Р-Р ДОРОЖКИ
    ;RG_SEC:EQU 0F702H; Р-Р СЕКТОРА
    ;RG_DAT:EQU 0F703H; Р-Р ДАННЫХ
    
    LD_SECT:
    ; I: [BC] - RG_DAT
    ;    [DE] - RG_CMD
    ;    [HL] - АДР.НАЧ. target
    JMP LDCIKL
    
    LDCIK0:
    MOV M,A
    INX H
    
    LDCIKL:
    ; ЦИКЛ ЧТЕНИЯ СЕКТОРА
    LDAX D  ; = IN RG_CMD
    ANA C   ; = ANI 03H
    JPO LDCIKL
    LDAX B  ; = IN RG_DAT
    JNZ LDCIK0
    ...
    Причём счёт буквально на единицы тактов МП! Если вместо "ANA C" ставим "ANI 03H", то не успеваем.
    Везение тут получилось очень удачное, младшая часть адреса регистра данных как раз содержит значение маски нужных битов 03h, в итоге "долгую" команду "ANI 03H" (7 тактов) удалось заменить на равнозначную "быструю" "ANA C" (4 такта), и "пазл сложился".
    Ну и игра с флагом чётности тоже очень в кассу.
    Если бы не эти два обстоятельства, то иначе не получилось бы разрулить без аппаратного регистра DRQ/INTRQ.
    Последний раз редактировалось Denn; 01.12.2017 в 13:49.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  7. #6

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

    По умолчанию

    Имхо, регистр на DRQ/INTRQ проще, чем замена проца.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  8. #7
    HardWareMan
    Гость

    По умолчанию

    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 снимался - просто забивал буфер последним статусом, который и возвращался для обработки ошибок.

  9. #8

    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,235
    Спасибо Благодарностей отдано 
    490
    Спасибо Благодарностей получено 
    995
    Поблагодарили
    642 сообщений
    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.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  10. #9
    HardWareMan
    Гость

    По умолчанию

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

  11. #10

    Регистрация
    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

Страница 5 из 13 ПерваяПервая 123456789 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. PS/2 адаптер клавиатуры для Специалиста
    от fifan в разделе Специалист
    Ответов: 244
    Последнее: 02.12.2025, 11:10
  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

Ваши права

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