Ср дек 08, 2021 20:12:32
Ср дек 08, 2021 22:14:17
Чт дек 09, 2021 18:36:17
mov.w #table, R14 ; адрес строки с данными (3000h)
mov.b 0(R14), R15 ; загрузим первый байт
xor.b #20h, R15 ; сравним с 20h
jz m2 ; если совпадает
mov.b 0(R14), R15 ; если не совпадает снова загружаем это же значение
and.b #1Fh, R15 ;
m2:
add.w #0Bh, R15 ; прибавим стандартную длину
mov.w R15, R10 ; тут адрес CRC
add.w #table, R10 ; к длине прибавим стартовый адрес (3000h)
mov.w #table, R15 ; адрес начала
clr.b R11 ; очистим
clr.b R12 ; очистим
cc1:
mov.b 0(R15), R12 ; загрузим байт для подсчёта
mov.b #8, R13 ; счётчик битов
cc3:
mov.b R12, R14
xor.b R11, R14
and.b #80h, R14
jz cc4
rla.b R11
bic.b #BIT0, R11
xor.b #0A9h, R11
jmp cc5
cc4:
rla.b R11 ; сдвинем влево
bic.b #BIT0, R11 ; сбросим 0 бит
cc5:
rla.b R12 ; сдвинем влево
bic.b #BIT0, R12 ; сбросим 0 бит
dec.b R13 ; уменьшим счётчик битов
jnz cc3 ; если не все биты - цикл
inc.w R15 ; следующий байт
cmp.w R15, R10 ; достигли последнего адреса ?
jnz cc1 ; НЕТ, цикл
// В R11 - CRC для строки с адреса #table (3000h)
Пт дек 10, 2021 02:13:50
Пт дек 10, 2021 09:47:45
формируем в буфере весь нужный запрос с нулевыми байтами в начале и конце
далее в зависимости от длины вставляем первый байт
;=========================
calc: // calculate subroutine
;=========================
mov.w #table+0Eh, R15 //
cmp.b #55h, 0(R15) //
jz calc1 //
inc.w R15 //
cmp.b #55h, 0(R15) //
jz calc2 //
calc_err:
//xxxx.....
ret // end ERR
calc1:
mov.b #20h, &table+2 //
ret // end OK byte = 20h
calc2:
mov.b #21h, &table+2 //
ret // end OK byte = 21h
;=========================
а как найти второй мы уже знаем
Пт дек 10, 2021 17:24:29
Пт дек 10, 2021 20:50:44
Пт дек 10, 2021 21:39:43
Пт дек 10, 2021 23:34:48
Вс янв 23, 2022 15:05:53
Запрос:
0f 00 55 20 00 76 2a 09 ff 1c 00 00 00 00 31 55
Ответ:
05 00 55 07 00 09
Ответ:
0e 00 76 2a 1c a8 01 53 00 28 36 0e 00 17 01
Ответ:
03 00 d2 55
Запрос:
0f 00 55 20 00 76 2a 09 ff 10 00 00 00 00 b9 55
Ответ:
05 00 55 13 00 09
Ответ:
0e 00 76 2a 10 a8 01 53 00 62 04 0a 00 c0 b2
Ответ:
0f 00 01 01 0a a8 01 00 00 1b 00 04 01 06 d9 55
Запрос:
10 00 55 21 00 76 2a 09 ff 28 00 00 00 00 00 a4 55
Ответ:
05 00 55 0e 00 09
Ответ:
0e 00 76 2a 28 a8 01 53 00 00 10 41 42 43 44
Ответ:
0a 00 08 00 00 00 00 00 00 b6 55
Запрос:
10 00 55 21 00 76 2a 09 ff 28 00 00 00 00 01 0d 55
Ответ:
05 00 55 0e 00 09
Ответ:
0e 00 76 2a 28 a8 01 53 00 01 d3 09 00 00 00
Ответ:
0a 00 00 00 00 00 00 00 00 74 55
Запрос:
10 00 55 21 00 76 2a 09 ff 05 00 00 00 00 00 fb 55
Ответ:
05 00 55 1e 00 09
Ответ:
0e 00 76 2a 05 a8 01 53 00 00 62 01 00 01 00
Ответ:
16 00 64 07 00 22 64 07 00 fd 2c 05 00 25 37 02 00 00 00 00 00 00 00
Ответ:
04 00 00 4d 55
Запрос:
10 00 55 21 00 76 2a 09 ff 0a 00 00 00 00 01 18 55
Ответ:
05 00 55 1f 00 09
Ответ:
0e 00 76 2a 0a a8 01 53 00 01 38 32 30 30 32
Ответ:
15 00 f8 65 71 30 34 e2 68 7a fd 42 54 2d 76 c2 f5 4c c0 3e e2 19 91
Чт янв 27, 2022 18:00:02
Ср фев 02, 2022 18:04:58
Чт фев 03, 2022 09:34:07
Пн фев 07, 2022 19:25:02
Пн фев 07, 2022 22:08:45
Чт фев 24, 2022 15:15:19
Чт фев 24, 2022 15:59:29
Ср мар 23, 2022 14:32:04
Ср мар 23, 2022 15:11:22
Ср мар 23, 2022 16:11:07