Сообщение от
Viktor2312
Чистяков говорит, что эта п/п-мма подсчёта КС - чушь
Он так говорил потому, что это и не промышленный стандарт CRC и не отечественный стандарт КС F82A. Это собственное изобретение авторов ИРИШИ, чтобы контроллировать целость блоков считанных с МГ-ленты.
Вот как принято было считать КС блока в СССР:
Код:
CHSUM: LD BC,0
CHSLOO: LD A,C
ADD A,(HL)
LD C,A
EX AF,AF ; при КР580 заменить на PUSH AF
CALL CMPDH
RET Z ; при КР580 заменить на JP Z,POPRET
EX AF,AF
LD A,B
ADC A,(HL)
LD B,A
INC HL
JR CHSMLOO
CMPDH: LD A,H ; это F956 в М3 и F990 в РК86
CP D
RET NZ
LD A,L
CP E
RET
Код:
CHSUMMA PROC ; BADR:DX, ENDADR:CX, RET:BX
MOV SI, DX
XOR BX, BX
CHS_01: ADD BL, ES:[SI]
PUSHF
CMP SI, CX
JZ CHS_02
POPF
ADC BH, ES:[SI]
INC SI
JMP CHS_01
CHS_02: POPF
RET
CHSUMMA ENDP
PS: А логика работы подпрограммы от тебя ускользает потому-что ты написал её на неудобном ассемблере. Перепиши её в мнемониках Z80 и всё станет ясно.