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

User Tag List

Страница 33 из 36 ПерваяПервая ... 2930313233343536 ПоследняяПоследняя
Показано с 321 по 330 из 352

Тема: Радио-86РК: Разное

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

    По умолчанию

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

  2. #322
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,560
    Спасибо Благодарностей отдано 
    1,223
    Спасибо Благодарностей получено 
    1,754
    Поблагодарили
    683 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Отписался в теме Специалиста о результате.

  3. #323
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,560
    Спасибо Благодарностей отдано 
    1,223
    Спасибо Благодарностей получено 
    1,754
    Поблагодарили
    683 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Подскажите по формату кассетной записи на РК86.

    Я так понимаю, что вначале идет адрес начала файла, адрес конца, затем тело, затем два нулевых байта, затем синхробайт 0xE6, а затем какие-то два байта. Контрольная сумма? Как она вычисляется?

  4. #324
    Member
    Регистрация
    26.04.2016
    Адрес
    г. Полоцк, Беларусь
    Сообщений
    48
    Записей в дневнике
    4
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    7
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Беззнаковое сложение. Один байт просто сумма, второй - циклическая сумма. http://www.danbigras.ru/RK86/Naladka/CRC.html

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    затем тело, затем два нулевых байта, затем синхробайт 0xE6
    Нулевых байтов может быть два (большинство компьютеров) либо один (Партнер). При чтении лучше не полагаться на количество нулевых байт, а просто ждать синхробайт.
    На Микроше формат другой - синхробайта и нулевых байт в конце нет, сразу идет контрольная сумма, к тому же и считается она по-другому...

  6. #326
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,560
    Спасибо Благодарностей отдано 
    1,223
    Спасибо Благодарностей получено 
    1,754
    Поблагодарили
    683 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Pyk Посмотреть сообщение
    Нулевых байтов может быть два (большинство компьютеров) либо один (Партнер). При чтении лучше не полагаться на количество нулевых байт, а просто ждать синхробайт.
    На Микроше формат другой - синхробайта и нулевых байт в конце нет, сразу идет контрольная сумма, к тому же и считается она по-другому...
    Попробовал посчитать на своих записях - в половине случаев не совпадает старший байт, который является циклической суммой.
    Приведите пример кода, который подсчитывает сумму, тогда проблем не будет.

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    пример кода, который подсчитывает сумму,
    ПЗУ Микроши не дизассемблировал, т.к никогда не имел. КС для Специалиста, РК86 и Ориона:

    Код:
    .
    CHSUM:	LD	BC, 0
    CHSLOO:	LD	A, C
    	ADD	A, (HL)
    	LD	C, A
    	PUSH	AF
    	CALL	CMPDH
    	JP	Z,POPAF
    	POP	AF
    	LD	A, B
    	ADC	A, (HL)
    	LD	B, A
    	INC	HL
    	JP	CHSLOO
    
    POPAF:	POP	AF
    	RET
    
    CMPDH:	LD	A,H
    	CP	D
    	RET	NZ
    	LD	A,L
    	CP	E
    	RET
    Код:
    .
    CHSUMMA PROC			; BEGADR:DX, ENDADR:CX, RET:BX
    	MOV	SI, DX
    
    	XOR	BX, BX
    CHSLOO: ADD	BL, ES:[SI]
    	PUSHF
    	CMP	SI, CX
    	JZ	POP_F
    	POPF
    	ADC	BH, ES:[SI]
    	INC	SI
    	JMP	CHSLOO
    
    POP_F:	POPF
    	RET
    CHSUMMA ENDP
    Последний раз редактировалось barsik; 21.03.2018 в 18:26.

  8. #328
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,560
    Спасибо Благодарностей отдано 
    1,223
    Спасибо Благодарностей получено 
    1,754
    Поблагодарили
    683 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Странно. Так и считаю. Значит где-то накосячил, т.к. старшая часть суммы в половине случаев не сходится.

    Цитата Сообщение от barsik Посмотреть сообщение
    КС для Специалиста
    В тех файлах для специалиста, которые загружаются загрузчиком, я контрольных сумм не видел. Какой там формат?
    Последний раз редактировалось Titus; 21.03.2018 в 18:36.

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    В тех файлах для специалиста, которые загружаются загрузчиком, я контрольных сумм не видел. Какой там формат?
    Для загрузки по сбросу контрольная сумма не нужна. Очевидно А.Волков взял МГ-процедуры от МИКРО-80, т.к это был единственная доступная информация про работу с МГ, хорошо документированная в ж.РАДИО за 1982. А т.к там, ни в формате монитора, ни в формате бейсика, контрольные суммы не использовались, то и Волков сделал так же.

    Потому в загрузчике по сбросу процедура загрузки такая: после инициализации служ.ячеек (что просто копирование подпрограммой COPY C42D блока начальных констант из ПЗУ в ОЗУ) и вывода стартового сообщения, делается следующее:

    Код:
    .
    	CALL	C3F9
    	LD	HL,(ASTART)
    	JP	(HL)
    Подпрограмма C3F9 - это ввод блока с поиском синхробайта по адресам следующим сразу за синхробайтом (причём младший и старший байты адреса следуют в стандартном порядке Intel, а не шиворот-навыворот, как у РК86). Контрольная сумма этой подпрограммой не читается и не контролируется. И это было сохранено и в зверковском загрузчике и повторено в ленинградском мониторе. Так что по сбросу можно загрузить даже дохлый файл.

    Хотя директивный монитор А.Волкова (тот, что грузится на 8D00) контрольную суммы при записи выдаёт. Если после синхробайта E6 стоит D9, D9, D9, то это формат с именем, а не формат для загрузки по сбросу.

    Грамотная многоблочная программа может вышибать управление и при вводе по I. Это достигается тем, что блок грузится прямо в стек, подменяя адрес возврата из C3F9, но это нехорошо, т.к в разных мониторах разное число служ.ячеек и стек ставится по разному, что делает такой перехват зависимым от конкретной версии ПЗУ. Вот в ОРИОНЕ перехват удобнее, т.к там есть адрес вылета по ТАЙМ-АУТ, когда нет фронтов на время более 2-х периодов.
    Последний раз редактировалось barsik; 21.03.2018 в 19:37.

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

    По умолчанию

    Titus, вот готовый фрагмент для подсчета КС в формате РК/Специалиста из исходников emu80:
    Код:
    uint16_t cs = 0;                                       
    for (uint16_t i = 0; i < fileSize - 1; i++) {          
        cs += buf[i];                                      
        cs += (buf[i] << 8);                               
    }                                                      
    cs = (cs & 0xff00) | ((cs + buf[fileSize - 1]) & 0xff);
    Попозже могу посмотреть, что используется для Микроши - нужно найти в Мониторе и дизассемблировать...

Страница 33 из 36 ПерваяПервая ... 2930313233343536 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Куплю плату Радио-86РК
    от Shaos в разделе Барахолка (архив)
    Ответов: 44
    Последнее: 17.11.2009, 13:08
  2. РАДИО 86РК Рабочий
    от Николайййй в разделе Барахолка (архив)
    Ответов: 10
    Последнее: 16.11.2007, 21:57
  3. Продам Orion-128, Радио-86РК и др.
    от Vital72 в разделе Барахолка (архив)
    Ответов: 2
    Последнее: 22.07.2006, 14:40
  4. Ответов: 0
    Последнее: 07.07.2005, 00:32

Метки этой темы

Ваши права

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