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

User Tag List

Страница 12 из 14 ПерваяПервая ... 891011121314 ПоследняяПоследняя
Показано с 111 по 120 из 135

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

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

    По умолчанию

    Цитата Сообщение от barsik Посмотреть сообщение
    не дорисовано, куда идут 1 и 2 ноги 155 ИД4, видимо это ША3.
    А нет никуда не идёт - вот так в воздухе и висят ножки.

    Цитата Сообщение от barsik Посмотреть сообщение
    за счёт использования такта 1 МГЦ прямо из самого СПЕЦИАЛИСТА, вместо собственного генератора, как общепринято. Из-за этого нельзя использовать с СПЕЦИАЛИСТОМ с другим тактом.
    Кстати, встретил в теме про MX-дисковод обидную фразу - слова Леонида Николаевича Афанасьева: раздельные кварцевые генераторы недопустимы. Это меня не напугало, потому что это чушь.
    barsik, определись, что 1 МГц нужно брать только со Специалиста и раздельные кварцевые генераторы недопустимы. Сам себе противоречишь.

    В Специалисте_МХ2 где нет 1 и 4 МГц мне так и не удалось запустить контроллер дисковода. И именно Афанасьев мне сказал, тогда что "нельзя использовать с СПЕЦИАЛИСТОМ с другим тактом".

    Цитата Сообщение от barsik Посмотреть сообщение
    В общем, хорошо бы эту схемку перечертить, тогда она будет более понятной. Со схемой можно разобраться, только нужно найти оригинал этой схемы от Л.Афанасьева.
    Схема работоспособная. Пользователь Байкал собирал её - всё работает. Тут фотка его переделанного компьютера под Специалист МХ с платой контроллера дисковода.

    Цитата Сообщение от barsik Посмотреть сообщение
    Ссылка на схему у меня не работает.
    А у меня ссылка работает. Схема мною перерисована с оригинальной, только я применил другой кварцевый генератор. Итог не заработало. ЛР11 я заменил логическим элементом И/НЕ применимо двум дисководам 3,5 дюйма. Там снят контроллер дисковода с засунутой схемой в плисину. Я видео снял. Потом я забросил сборку контроллера дисковода для Специалиста МХ2, да и читалка с SD карты действует - зачем дисковод?

    Цитата Сообщение от barsik Посмотреть сообщение
    Остаётся проблема, где взять готовые подпрограммы чтения/записи сектора и формат трека. Вряд ли можно найти исходники, но дискеты в формате MX-DOS, кажется, сохранились в эмуляторах. Их можно дизассемблировать, чтобы взять код нужных подпрограмм. Можно провести собственные изыскания и экспериментальным путём разработать нужные подпрограммы.
    Всё у меня из программ, исходников есть, в эмуляторе работает (реальной железки контроллера дисковода у меня нет). b2m сразу предупредил, что форматирование в эмуляторе не работает - так что это пока проверить не где.

    Резюме: barsik, для начала нужно собрать сам контроллер дисковода, как сделал Байкал. А потом уже судить что работает, а что нет. Как можно судить о схеме не испробовав её?
    Последний раз редактировалось fifan; 08.01.2018 в 10:21.

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

    По умолчанию

    Цитата Сообщение от fifan
    barsik, определись, что 1 МГц нужно брать только со Специалиста и раздельные кварцевые генераторы недопустимы. Сам себе противоречишь.
    Где же я противоречу? В этой схеме сделано так, что 1 МГЦ берётся из платы СПЕЦИАЛИСТА. И это-то как раз я считаю неудачным, т.к кварц 8 МГЦ в самом СПЕЦИАЛИСТЕ неудобен по многим причинам. Не устраивает, что растр вылезает за пределы экрана в телевизоре и не видно 3 последние колонки. А вот при кварце 9 МГЦ растр отображается целиком и быстродействие побыстрее.

    Но меня привлекает идея сделать кратность обращения видеоадаптера и такта CPU равной 3-м. Сейчас кратность 2. Т.е видеодаптер нуждается минимум в одном обращении к ОЗУ за 2 такта. А если такт /RAS,/CAS и такт CPU поднять с 2 МГЦ до 3 МГЦ, то понадобится всего одно обращение за 3 цикла /RAS, /CAS. ОЗУ останется прозрачным, а быстродействие возрастёт до 3 МГЦ. Это будет самая быстрая ЭВМ на отечественном КР580. Только ради этой идеи я отказался от использования Z80, который был нужен не ради его продвинутых команд, а именно ради быстродействия.

    Я лишь высказал мысль, что отсутствие своего генератора на 8 МГЦ это недостаток схемы. На КНГМД от ОРИОНА есть свой кварц на 8 МГЦ, потому КНГМД не мешает турбировать ОРИОН. Но затем я обнаружил неточности в схеме и стал читать тему MX-дисковод, чтобы узнать побольше о этом КНГМД и его DOS. Где и наткнулся на фразу, что клок 1 МГЦ должен браться из платы СПЕЦИАЛИСТА. Но у меня нет ни одного СПЕЦИАЛИСТА с кварцем 8 МГЦ. Это-то и обидно. Но в схеме я так и не нашёл причины, почему такт 1 МГЦ надо брать именно из основной платы, а нельзя смонтировать свой генератор на 8 МГЦ и поставить ИЕ5 для деления на 8.

    По поводу сигнала 26, который участвует в формировании сигнала 1, что сбрасывает HOLD, как я предположил в случае апп.ошибки. Я понял, что это не может быть сигнал "сторона диска" и в схеме ошибка. Читая тему MX-дисковод я нашёл другую схему, где вместо цепи 26 идёт цепь 8. Разберитесь со схемой на Вашем сайте, есть ли хоть одна правильная схема?

    Собирать контроллер дисковода именно по такой схеме нет смысла. У меня есть ненужные платы КНГМД на ВГ93. Их даже переделывать не надо. Контроллер на идее HOLD мне нравится больше, чем 3 других контроллера НГМД для СПЕЦИАЛИСТА для которые не только программ, но и информации никакой нет и никто даже не видел их работающими.

    Интересно повторить не саму схему Л.Афанасьева, а его идею. Тем более, что про MX-DOS я пока ничего не знаю. Я точно знаю, что этот контроллер работал и MX-DOS тоже, т.к в 1994 переписывался с людьми у которых это всё работало. Но не знаю даже, что это за DOS, авторская разработка или CP/M в оригинале (или даже с доработками).

    Цитата Сообщение от fifan
    Всё у меня из программ, исходников есть
    Не понятно есть у Вас исходник MX-DOS и исходник форматёра или только сами программы. Исходник всей MX-DOS даже не обязателен, достаточно кода DOS-BIOS (если конечно в этой DOS есть деление на BDOS, BIOS и CCP). Интересуют лишь подпрограммы чтения/записи сектора.

    Впрочем, даже меньше, - нужна всего-лишь примерно такая коротенькая подпрограмма.
    Код:
    ; D0 - занято
    ; D1 - запрос данных (дубль DRQ)
    
    RDLOOP: LD      A,(DE)		; LD A,(RGCOM)
    	RRA
    	RET     NC		; если конец операции (D0=0)
    	RRA
    	JP      NC,RDLOOP	; если нет запроса данных (D1=0)
    	LD      A,(BC)		; LD A,(RGDATA) получаем байт
    	LD      (HL),A		; пишем байт в ОЗУ
    	INC     HL
    	JP      RDLOOP
    Тогда не составит труда переделать обычные подпрограммы для ВГ93 на те, что работают на КНГМД с ожиданием DRQ с помощью HOLD. В этой подпрограмме контроллер на HOLD позволяет упразднить 2 команды контроля бита DRQ. Возможно этого хватает, чтобы компенсировать пониженную скорость СПЕЦИАЛИСТА. А возможно, что этого всё-равно не хватает и дополнительно применён трюк в стиле Е.Седова типа INC (HL) на регистр ВГ93, чтобы получить флаг готовности за одну команду вместо двух.

    Цитата Сообщение от fifan
    Цитата Сообщение от barsik
    не дорисовано, куда идут 1 и 2 ноги 155 ИД4
    А нет никуда не идёт - вот так в воздухе и висят ножки
    Тогда эта схема просто дохлая.
    Последний раз редактировалось barsik; 08.01.2018 в 11:54.

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

    По умолчанию

    Цитата Сообщение от barsik Посмотреть сообщение
    Разберитесь со схемой на Вашем сайте, есть ли хоть одна правильная схема?
    На странице приведены две схемы. Первая - для работы с 5-ти дюймовыми дисководами, вторая - и 5 и с 3-х дюймовыми. Я как понял, что её и собирал Байкал (там где есть ЛР11) и её я и считаю последней, самой правильной и работоспособной. Как только у меня появится равноценный Специалист с МХ схемой (я надеюсь на мапера МХ для Сябра), то попробую всё таки запустить контроллер дисковода со схемой в плисине.

    Исходники RAMFOS и MX-DOS я могу предоставить, что-то переделывать не хочу.

    Я писал год назад свой SpetsCommander, в котором я все устройства Специалиста МХ/МХ2 я поддержал: контроллер дисковода, Flash-диск от Шурика/HardWareMan'а, SD контроллер от Vinxru и HardWareMan'а. Получилось очень много места занимает программа, причём я почти не использовал готовые подпрограммы RAMFOS'а. Я решил его забросить.

    Сейчас на базе RAMFOS'а версии 6.4 (описание и исходники предоставлены Шевцовым) я пишу свой MX-DOS, но без поддержки дисковода, с поддержкой SD контроллера от Vinxru. Он будет сидеть с адреса E400, с этого же адреса загружалась MX-DOS с дискеты ранее. Особенности: использование не страничного вывода на экран RAM-диска, а как-бы сплошного списка всех файлов. Из трудностей: не могу никак использовать внутренний редактор RAMFOS. Из достижений - запуск файлов с ROM/RAM-дисков, SD карты, копирование файла с/на RAM-диск.
    Последний раз редактировалось fifan; 08.01.2018 в 12:12.

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

    По умолчанию

    Цитата Сообщение от fifan
    Исходники RAMFOS и MX-DOS могу предоставить
    RAMFOS, так понимаю, это что-то типа ORDOS в ОРИОНЕ. Это не интересует. Тем более, что для базового СПЕЦИАЛИСТА это не годится.

    Интересует только дискетная MX-DOS, причём не для использования, а для изучения. Если это CP/M, то BDOS и CCP не надо. Достаточно только BIOS, где дисковые подпрограммы низкого уровня. Это не особо горит, но вскоре я освобожусь и мог бы испытать в реале эти подпрограммы чтения/записи сектора. Это не потребует много пайки, т.к уже спаянных и настроенных контроллеров дисковода на ВГ93 имею достаточное количество, так что спаять придётся только переходник (косу с разъёмами) и установить в СПЕЦИАЛИСТ 155 ТМ2, формирующий HOLD на КР580.

    Вообще-то я уже скачал из темы MX-дисковод MX-DOS. Но файл bst_mx0.odi оказался вовсе не ODI, при его открытии Steinblume выдаёт какую-то ерунду.

    Что не удивительно, т.к это совсем не CP/M диск. Тогда вытащил из начала этого образа диска первые 1400H байтов и дизассемблировал это. Хотя в начале этого дампа стоит текст "Dos_MX V3.6", но никаких функций ДОС я там не нашёл. На ДОС не похоже. Скорее это похоже на какую-то графическую оболочку активно выводящую рамки псевдографикой. Подрограмм низкого уровня я там тоже не нашёл.

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

    Тогда вспомнил, что читал в теме MX-дисковод про программу LODI.EXE от Л.Афанасьева. Скачав и перетащив мышью файл bst_mx0.odi на на файл LODI.EXE увидел содержимое этого образа диска. Увидев, что есть подкаталоги сразу понял, что MX-DOS это не CP/M, а расширение ODI это не акроним от слов "Орион диск", а просто обман. Затем с помощью этой программы скопировал файл MX_DOS_4 EXE в файл MX_DOS_4 EXE.bin на винчестере.

    А затем в каталоге SYSTEM нашёл 3 файла CPMx.EXE и короткое сообщение, что CP/M получена адаптацией CP/M от ОРИОНА (CP/M от МП ORION-SERVICE). Теперь нет проблем выдернуть из этой CP/M подпрограммы чтения/записи сектора, т.к в отличие от MX-DOS, CP/M хорошо документирована.
    Последний раз редактировалось barsik; 08.01.2018 в 18:14.

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

    По умолчанию

    Цитата Сообщение от barsik Посмотреть сообщение
    Хотя в начале этого дампа стоит текст "Dos_MX V3.6", но никаких функций ДОС я там не нашёл. На ДОС не похоже. Скорее это похоже на какую-то графическую оболочку активно выводящую рамки псевдографикой. Подпрограмм низкого уровня я там тоже не нашёл.
    Ну как это нет подпрограмм низкого уровня. А как же подпрограмма установки дисковода в исходное положение, выдачи команды, поиска дорожки, установки номера сектора, записи сектора с прерыванием МП, проверки сектора чтением, чтения сектора - перечислил найденные подпрограммы.

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

    По умолчанию

    Ну вот, дизассемблировал CP/M для СПЕЦИАЛИСТА-MX. Это заняло 2 часа, т.к пришлось переименовывать сотни меток, чтобы исходник стал читабельным. Хотя реально нужны были только две подпрограммы, остальное отредактировал просто для порядка.

    Это не все подпрограммы, что нужны для использования, но остальные подпрограммы уже не критичны к скорости. Хотя готовность и в остальных подпрограммах в этих ДОС так же проверяются трюком с HOLD, но это уже не обязательно, достаточно программно читать регистр состояния.

    Теперь нет проблем те же подпрограммы применить и для обычного СПЕЦИАЛИСТА с таким КНГМД для любых DOS. Хотя для RK-DOS такой контроллер избыточен, т.к RK-DOS не может работать с дисками в 800 кб.

    Для использования на обычном СПЕЦИАЛИСТЕ с контроллером от ОРИОНА достаточно подставить адреса порта FC00 и тот же самый контроллер, что требовал 2.5 МГЦ будет работать и на 2 МГЦ. Как видите это достигнуто не только применением захвата шины, но и упрощением подпрограмм. Убрали цикл контроля занятости ВГ75. Эти две меры в совокупности и дали выигрыш. Ясно что попытки в лоб использовать подпрограммы для ОРИОНА с таким КНГМД не привели бы ни к чему хорошему. Поэтому полезно дизассемблировать.

    Кстати можно было ещё чуть ускорить, если сделать адрес буфера кратным 00, что позволяет контроллировать только старший байт в регистре указателе адреса в буфере (H). Вот подпрограммы использованные в CP/M для СПЕЦИАЛИСТ-MX. Думаю, что и в MX-DOS такие же. Но MX-DOS нас пока не интересует.

    Код:
    PHOLD	EQU	0FFF0H	; адрес для зависа
    
    RGCOM	EQU  	0FFE8H	; адрес регистра команд
    RGTRK	EQU  	0FFE9H	; адрес регистра дорожки
    RGSEC	EQU  	0FFEAH	; адрес регистра сектора
    RGDATA	EQU  	0FFEBH	; адрес регистра данных
    
    RDSEC:	LD	BC,RGDATA
    	LD	DE,400H
    	LD	A,80H		; команда читать сектор
    	CALL	EXEC
    
    RD_LOO:	LD	(PHOLD),A	; уходим в HOLD, ждём DRQ
    	LD	A,(BC)		; при выходе читаем байт
    	LD	(HL),A
    	INC	HL
    	DEC	DE
    	LD	A,D
    	OR	E
    	JP	NZ,RD_LOO
    RDDONE:
    
    ; ----------------------------------------------
    
    WRSEC:	CALL	UNIT
    	RET	NZ
    	PUSH	HL
    	LD	BC,RGDATA
    	LD	DE,400H
    	LD	A,0A4H		; команда писать сектор
    	LD	(RGCOM),A
    
    WAIT1:	LD	A,(RGCOM)
    	RRCA	
    	JP	NC,WAIT1
    
    WR_LOO:	LD	(PHOLD),A	; уходим в HOLD, ждём DRQ
    	LD	A,(HL)
    	LD	(BC),A		; на выходе пишем байт
    	INC	HL
    	DEC	DE
    	LD	A,D
    	OR	E
    	JP	NZ,WR_LOO
    WRDONE:
    Теперь нужна программа форматирования дискеты для CP/M на СПЕЦИАЛИСТЕ с таким КНГМД. Есть она ?

    В крайнем случае пойдёт и программа форматирования дискет для MX-DOS, но её придётся уже существенно переделывать, т.к форматы совсем разные.

    Интересно было бы посчитать число тактов в петлях записи и чтения, чтобы понять насколько процентов этот контроллер и эти подпрограммы ускоряют, по сравнению с подпрограммами от CP/M Корвета.
    Последний раз редактировалось barsik; 09.01.2018 в 16:21.

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

    По умолчанию

    Цитата Сообщение от barsik Посмотреть сообщение
    Это уж чересчур категорично. Мне наоборот эта схемка понравилась.
    И сами себе ответили) ниже:

    Цитата Сообщение от barsik Посмотреть сообщение
    Но процессор останется в режиме HOLD, т.к в петле чтения/записи регистр состояния не контроллируется.
    ...
    Цитата Сообщение от barsik Посмотреть сообщение
    Это может работать только, если DRQ в случае ошибки выставляется в единицу. В связи с этим непонятно назначение цепи 1. Зачем для её формирования используется инвертированный сигнал SIDE - цепь 26? Это какая-то ошибка в схеме.
    и т.д. и т. п. "огород".
    И резюме):
    Цитата Сообщение от barsik Посмотреть сообщение
    Тогда эта схема просто дохлая.

    Цитата Сообщение от barsik Посмотреть сообщение
    обычный контроллер ОРИОНА проще превратить в такой контроллер, чем в контроллер для SP-DOS.
    а тут бы я сказал по другому - наоборот. Мой контроллер 12/1992 можно сразу подключать к Специалисту без передлок, ибо сразу для него и делался) . А от spdos взять только подпрограммы I/O.

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

    Цитата Сообщение от fifan Посмотреть сообщение
    Как можно судить о схеме не испробовав её?
    лехко. бывает на невооруженный взгляд видно очевидные логические и схемотехнические ляпы.
    А так да, случайно, при определенных условиях может и зарабоать ))

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

    Цитата Сообщение от barsik Посмотреть сообщение
    Интересуют лишь подпрограммы чтения/записи сектора.
    возьмите мои и не мучайтесь с какими то ХОЛДами, штатный Спецеалист даже успевает:
    XRA A
    LXI H,<тот самый регистр DRQ и INTRQ>

    LOOP:
    XRA M
    JP LOOP
    ...
    Последний раз редактировалось makbar; 09.01.2018 в 00:44. Причина: опечатка
    Разработчик КНГМД для Специалиста и Ориона128, автор SPDOS (журнал "Радио" 12/1992, 1-2/1993). Манускрипт, датированный 1993-94гг: Отладка контроллера SPDOS SPDOS v4.3

  8. #118
    zx_
    Гость

    По умолчанию

    Цитата Сообщение от makbar Посмотреть сообщение
    Мой контроллер 12/1992 можно сразу подключать к Специалисту без передлок, ибо сразу для него и делался) . А от spdos взять только подпрограммы I/O.
    может доделаете первоначальный замысел

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

    По умолчанию

    Цитата Сообщение от makbar
    возьмите мои подпрограммы и не мучайтесь с какими то HOLD-ами, базовый СПЕЦИАЛИСТ и так успевает
    Возможно так и сделаю. Вскоре собираюсь поэкспериментировать с подпрограммами от разных авторов. Отличие схем небольшое, а для идеологии SPDOS и вот этого контроллера готовый контроллер с чтением 38 и 39-той ног ВГ93 у меня уже есть. Отличие в адресах и битах портов несущественно.

    Скорее всего использую Ваши или MX-овые подпрограммы, но Ваши - без порта чтения DRQ, а MX-овые - без режима HOLD (читая DRQ из ВГ93, как обычно). Думаю, что эти более короткие подпрограммы в сочетании с тактом 2.25 МГЦ (вместо 2.0 МГЦ) позволят использовать обычный КНГМД от ОРИОНА без всяких аппаратных выкрутасов.

    Цитата Сообщение от makbar
    Код:
    LOOP:	XRA	M
    	JP	LOOP
    Две команды вместо трёх дают очень небольшой выигрыш. На самом деле Ваш вариант работает на 2 МГЦ вовсе не из-за чтения DRQ аппаратно. Возможно даже без этого можно обойтись (если как в фирменной подпрограмме сделать запись стеком). Как и писал выше, о пользе от регистра для DRQ я знал и даже печатные платы с КНГМД имеющим регистр для чтения ног 38 и 39 (и кстати, тоже на ЛП11) были выпущены для ОРИОНА в 2-х городах и CP/M использующая это была странслирована.

    А менее требовательный к скорости Ваш вариант просто потому, что он упрощённый, в отличие от стандартных подпрограмм разработанных фирмой Western Digital для ВГ93 и применённых в Корвете. Точнее просто "химия". Хотя, если при этих подпрограммах не происходит зависа на дохлоте или других неприятностей, то всё нормально.

    Т.е секрет был вовсе не в замене 3-х команд CPU на 2 команды, поэтому выше в этой теме я и утверждал, что аппаратное чтение DRQ даёт маленький выигрыш и его явно недостаточно, чтобы снизить требование к быстродействию CPU с 2.5 МГЦ до 2 МГЦ.

    Раз уж занялся анализом подпрограмм чтения/записи сектора для разных схем контроллеров на базе ВГ93 от разных авторов, то посмотрел подпрограммы и вот этого контроллера. DOS для этой системы не была закончена. Дело внедрения дисковода, похоже, ограничилось лишь экспериментами, хотя, по информации авторов, вполне успешными. DOS, кстати, для этой системы собирались делать совместимой с MSDOS по формату дискеты. Во вложении их подпрограммы, в которых я разбирался.

    Наиболее критичной по требованиям к быстродействию является подпрограмма записи.

    Подпрограмма работающая стеком из CP/M Корвета (и ОРИОНА):

    Код:
    .
    	LD      HL,RGDATA	; запись физ.сектора
    	LD      DE,RGCOM
    	LD      SP,BUFFER	; буфер откуда писать
    
    WR_LOO:	POP     BC              ; берём 2 байта из стека
    
    WAIT_1:	LD      A,(DE)          ; LD A,(RGCOM)
    	XOR     00000001B       ; инвертировать бит D0
    	JP      Z,WAI_01        ; если D0=1 ТО ВГ93 занят и ошибок нет
    
    	LD      (HL),C          ; LD (RGDATA),C  пишем младший байт
    	RRA                     ; бит D0=0 ?
    	JP      C,WRDONE	; да, значит ВГ93 занят
    	RRA                     ; бит D1=1
    	JP      NC,WAIT_1       ; если нет, то нет запроса данных
    
    WAIT_2:	LD      A,(DE)          ; LD A,(RGCOM)
    	XOR     00000001B       ; инвертировать бит D0
    	JP      Z,WAIT_2	; ждём готовности ВГ93
    
    	LD      (HL),B          ; LD (RGDATA),B  пишем старший байт
    	JP      WR_LOO
    
    WRDONE:
    Подпрограмма чтения сектора для контроллера отсюда:

    Код:
    .
    RDSEC:	LD	A,84H		; непосредственное чтение сектора
    	LD	(RGCOM),A
    	LD	BC,RGDATA
    	LD	DE,LP11		; через 155 ЛП11 читаем готовности ВГ93
    RD_LOO:	LD	A,(DE)
    	ADD	A,A
    	RET	M
    	JP	NC,RD_LOO
    	LD	A,(BC)
    	LD	(HL),A
    	INC	HL
    	JP	RD_LOO
    Подпрограмма М.Короткина из SP-DOS версии 4.3 для ОРИОНА:

    Код:
    .
    WRSEC:	LD	DE,BUFFER
    	LD	BC,RGDATA
    	LD	HL,RG_DRQ
    	LD	A,0F4H
    	LD	(RGCOM),A
    	
    WR_LOO:	XOR	A
    
    WAIT_1:	OR	(HL)
    	JP	Z,WAIT_1
    	
    	LD	A,(DE)
    	LD	(BC),A
    	INC	DE
    	JP	P,WR_LOO
    WRDONE:
    Подпрограмма для контроллера Л.Афанасьева от СПЕЦИАЛИСТ-MX:

    Код:
    .
    WRSEC:	LD	BC,RGDATA
    	LD	DE,400H
    
    	LD	A,0A4H
    	LD	(RGCOM),A
    
    WAIT_1:	LD	A,(RGCOM)
    	RRCA	
    	JP	NC,WAIT_1
    
    WR_LOO:	LD	(RGHOLD),A	; уходим в HOLD, и ждём в нём DRQ
    	LD	A,(HL)
    	LD	(BC),A		; по DRQ выходим и пишем байт
    	INC	HL
    	DEC	DE
    	LD	A,D
    	OR	E
    	JP	NZ,WR_LOO
    WRDONE:
    Хотел бы посчитать машинные такты, но увы, давно не программировал и куда-то засунул свою табличку с числом тактов команд Z80. А приближающийся склероз ухудшил память (ранее я знал числа тактов всех команд по памяти) теперь без таблички ничего невозможно посчитать. Если у кого-то под рукой есть ссылка на подобную табличку с временами команд КР580 или Z80, то поделитесь.

    Но и без арифметики видно, что "химические" самодельные подпрограммы намного короче.
    Вложения Вложения
    Последний раз редактировалось barsik; 09.01.2018 в 17:10.

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

    По умолчанию

    Цитата Сообщение от barsik Посмотреть сообщение
    А менее требовательный к скорости Ваш вариант просто потому, что он упрощённый, в отличие от стандартных подпрограмм разработанных фирмой Western Digital для ВГ93
    я не знаю, что такое "стандартные программы Western Digital для ВГ93" и знать не хочу. Я имел даташит wd1793 и писал по нему. всё. в этом даташите нет никаких кусков кода.


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

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

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

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

Эту тему просматривают: 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

Ваши права

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