Так для игрушек и так есть два КГД и КЦГД. Может я не правильно написал, я имел в виду фрязинский наверное или опять напутал.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Patron, Можно что-нибудь на LPT вывести? Точнее текст в ASCII и управление ASCIIшное ( CR+LF ) для принтера. Так-как в ИРПР инверсные сигналы то за одно и инвертировать для LPT программно.
Попробовал недокументированную функцию форматирования дорожки в формате IBM с индексными маркерами 0xC2. Функция эта присутствует в КМД с прошивками -092, -093* и -255, в -091 её нет. Отформатировалось все нормально, но вот с чтением первого сектора проблема. Эта проблема есть в прошивке -091, но в более поздних её убрали. Вот кусок кода из прошивки:
Как видно из кода, если активна линия ИНДЕКС, то в качестве счетчика ожидания при поиске маркера используется значение 0764, если неактивна, то 024. Это нужно потому, что если попали на синхрозону перед индексным маркером 0xC2, то надо пропустить оставшиеся нули, 4 байта самого маркера, 50 байт промежутка и 12 байт синхрозоны перед заголовком первого сектора.Код:; Удостоверение в том, что попали на синхрозону 7014$: MOV #3,32(R3) ; Счетчик для удостоверения 7022$: MOV @R5,R0 ; Считанное слово равно нулю? BEQ 7032$ ; Да INC R0 ; Считанное слово равно 177777? BNE 7066$ ; Нет - не синхрозона 7032$: DEC 32(R3) ; Уменьшить счетчик BNE 7022$ ; Продолжаем дальше ; Поиск и ожидание маркера CALL 7220$ ; Дать команду на поиск маркера MOV #24,R0 ; R0 = счетчик ожидания маркера TST @R4 ; Линия ИНДЕКС активна? BPL 7060$ ; Нет MOV #764,R0 ; R0 = счетчик ожидания для первого сектора 7060$: TSTB @R4 ; Маркер найден? BMI 7074$ ; Да SOB R0,7060$ ; Цикл ожидания маркера ; Маркер не найден - на поиск нулей 7066$: TST @R4 ; Линия индекс активна? BPL 6664$ ; На пропуск нулей при неактивном ИНДЕКСЕ BR 6756$ ; На пропуск нулей при активном ИНДЕКСЕ ; Определение типа найденного маркера 7074$: TST @R5 ; Пропустить 0xA1A1
Patron, хотелось бы узнать, какова длина ИНДЕКСА, сколько байт с начала дорожки. Соответственно, в чем проблема - линия ИНДЕКС уже неактивна в этой проверке, или значения 0764 слишком мало для ожидания.
Во вложении программа форматирования диска в формате IBM, ну и сам образ диска.
Длина индекса 1000000 нс ( 1 мс ). В момент появления индекса номер текущего байта дорожки обнуляется. Увеличивается номер текущего байта дорожки каждые 32000 нс ( 32 мкс ).
Сейчас посмотрю, но кое-что можно сделать самостоятельно.
Если добавить в файл MY.cfg включение дизассемблера:
То все команды, выполняемые процессором КМД, запишутся в файл Debug.logКод:[links] MY_CPU [DisAsm] > Debug [MY_CPU.ini] InitialStateOf[DisAsm]=1 [Debug.ini] InitialStateOf[Log]=1
Эту тему просматривают: 3 (пользователей: 0 , гостей: 3)