Jump to content

    

vguard

Участник
  • Content Count

    5
  • Joined

  • Last visited

Community Reputation

0 Обычный

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Здравствуйте! Очень рад за Ваш успех. Автор скажите Вам было просто лениво ответить сразу на сообщения по электронной почте и в личке? Или Вы отсутствовали эти более чем 20 дней? Ну есть же какие-то понятия о деловом этикете... Или в Питере так принято?
  2. Автор потерялся, уже неделю как молчит.
  3. Здравствуйте! Я в четверг отправил свое предложение Вам на электронную почту и в личные сообщения. Будьте добры как-нибудь отреагируйте. Спасибо.
  4. Топикстартер перевел призовые, хорошие ребята из Киева, рекомендую. Спасибо.
  5. Думаю, что решил задачу, отправил автору измененный исходник на avc@trigla.kiev.ua. Контрольная сумма кода считается здесь: C_PR: MOV BYTE_CNT,#077H MOV BYTE_CNT+1,#000H MOV DPTR,#TEXT;;; MOV OP+0,#000H MOV OP+1,#000H CR_LOOP: CLR C CLR A MOVC A,@A+DPTR MOV OP+2,A INC DPTR CLR C CLR A MOVC A,@A+DPTR MOV OP+3,A INC DPTR CALL AD_16 DJNZ BYTE_CNT+1,CR_LOOP DJNZ BYTE_CNT,CR_LOOP MOV DPTR,#IND_BUF+2+16 MOV A,OP+0 MOVX @DPTR,A INC DPTR MOV A,OP+1 MOVX @DPTR,A RET И здесь: CP_PROG: MOV BYTE_CNT,#0EAH MOV BYTE_CNT+1,#000H MOV DPTR,#0100H;; MOV DPTR,#TEXT;;; MOV OP+0,#000H MOV OP+1,#000H CP_LOOP: CLR C CLR A MOVC A,@A+DPTR MOV OP+2,#0 MOV OP+3,A INC DPTR CALL AD_16 DJNZ BYTE_CNT+1,CP_LOOP DJNZ BYTE_CNT,CP_LOOP MOV DPTR,#IND_BUF+16 MOV A,OP+0 MOVX @DPTR,A INC DPTR MOV A,OP+1 MOVX @DPTR,A RET На выходе получаются 4 байта контрольной суммы по смещению IND_BUF+16. Контрольная сумма IND_BUF+16 используется в двух местах, в которых автор при несовпадении ее с некими расчетами проводит дополнительные манипуляции. Тут: ID_ID: ;;; JB PROGREV2,UF_WR_END2 JNB PO_ID_OK,UF_WR_END2 PUSH ACC PUSH PSW MOV DPTR,#0F000H CLR A CLR C MOVC A,@A+DPTR MOV MEM_TMP+12,A CLR A CLR C INC DPTR MOVC A,@A+DPTR MOV MEM_TMP+13,A MOV DPTR,#IND_BUF+1+16 MOVX A,@DPTR CLR C SUBB A,MEM_TMP+13 CJNE A,#000H,L725;<----это можно отключить MOV DPTR,#IND_BUF+0+16 MOVX A,@DPTR SUBB A,MEM_TMP+12 CJNE A,#000H,L725;<----это можно отключить POP PSW POP ACC JMP UF_WR_END2 L725:;<--------------------------------здесь автор начинает гадить MOV A,MEM_TMP+15 ADD A,TL1 INC A CLR ACC.6 CLR ACC.7 MOV MEM_TMP+15,A MOV A,MEM_TMP+14 ADDC A,TL1 INC A MOV MEM_TMP+14,A POP PSW POP ACC MOV DPH,MEM_TMP+15 MOV DPL,MEM_TMP+14 ADDC A,MEM_TMP+14 И тут: F1_DIVV_F1K_END: RET F1_DIVV_F1K: ;;ID_ID2: PUSH DPH PUSH DPL ;Z ;;;; JMP L12345 JNB Y_PK,L1725 JNB PO_ID_OK,L1725 PUSH ACC PUSH PSW MOV DPTR,#0F002H CLR A CLR C MOVC A,@A+DPTR MOV MEM_TMP+12,A CLR A CLR C INC DPTR MOVC A,@A+DPTR MOV MEM_TMP+13,A MOV DPTR,#IND_BUF+3+16 MOVX A,@DPTR CLR C SUBB A,MEM_TMP+13 CJNE A,#000H,L1725;<------------это можно отключить MOV DPTR,#IND_BUF+2+16 MOVX A,@DPTR SUBB A,MEM_TMP+12 CJNE A,#000H,L1725;<------------это можно отключить POP PSW POP ACC ;;;;;;;;;;;;;;;;;;;;;;;;;; JMP L12345 L1725: L12345: ;;; PUSH DPH ;;; PUSH DPL MOV DPH,TMP+14;<------------начало манипуляций MOV DPL,TMP+15 MOVX A,@DPTR MOV OP+4,A INC DPTR MOVX A,@DPTR MOV OP+5,A INC DPTR MOV TMP+14,DPH MOV TMP+15,DPL MOV OP+6,#27H ; 3 !!!!!!!!!!!!!!!!!!!!!!!! MOV OP+7,#10H; 232 CALL MULT16 MOV DPH,TMP+12 MOV DPL,TMP+13 MOVX A,@DPTR MOV OP+6,A INC DPTR MOVX A,@DPTR MOV OP+7,A INC DPTR MOV TMP+12,DPH MOV TMP+13,DPL;<--------------конец манипуляций POP DPL POP DPH CALL DIVV16 MOV A,OP+2 MOVX @DPTR,A INC DPTR MOV A,OP+3 MOVX @DPTR,A INC DPTR RET В последнем куске вне зависимости от проверки контрольной суммы блок манипуляций выполнится. Значит видимо так и задумано. Автору поста можно попробовать его отключить и посмотреть что будет. Надеюсь отключение защиты сработает.