$INCLUDE(cf_vect.inc) %IF(%TGT_MSC1210)THEN( EICON DATA 0D8H AIE DATA 0A6H EIE DATA 0E8H PDCON DATA 0F1H EWU DATA 0C6H )FI %IF(%TGT_T89C51RD2)THEN( FCON DATA 0D1H AUXR1 DATA 0A2H )FI PUBLIC VEC_SET,VEC_USR,VEC_GET EXTRN CODE(_SETUP_BOARD) %IF(%FOR_SDCC)THEN( PUBLIC __SDCC_EXTERNAL_STARTUP )ELSE( EXTRN CODE(?C_START) PUBLIC ?C_STARTUP ?STACK__I SEGMENT IDATA RSEG ?STACK__I DS 1 )FI C51START__C SEGMENT CODE RSEG C51START__C %IF(%FOR_BOOTLOADER)THEN( CSEG AT 0000H JMP 080H ; BOOTLOADER STARTUP CODE JMP VEC_CAR+03H ; EXTI0 JMP VEC_CAR+06H ; SYS_FNC DS 2 JMP VEC_CAR+0BH ; TIMER0 JMP VEC_CAR+0EH ; DS 2 JMP VEC_CAR+13H ; EXTI1 JMP VEC_CAR+16H ; DS 2 JMP VEC_CAR+1BH ; TIMER1 JMP VEC_CAR+1EH ; V_uL_ADD DS 2 JMP VEC_CAR+23H ; SINT JMP VEC_CAR+26H ; V_uL_FNC DS 2 JMP VEC_CAR+2BH ; SIIC JMP VEC_CAR+2EH ; DS 2 JMP VEC_CAR+33H ; T2CAP0 JMP VEC_CAR+36H ; DS 2 JMP VEC_CAR+3BH ; T2CAP1 JMP VEC_CAR+3EH ; DS 2 JMP VEC_CAR+43H ; T2CAP2 JMP VEC_CAR+46H ; DS 2 JMP VEC_CAR+4BH ; T2CAP3 JMP VEC_CAR+4EH ; DS 2 JMP VEC_CAR+53H ; ADCINT JMP VEC_CAR+56H ; DS 2 JMP VEC_CAR+5BH ; T2CMP0 JMP VEC_CAR+5EH ; DS 2 JMP VEC_CAR+63H ; T2CMP1 JMP VEC_CAR+66H ; DS 2 JMP VEC_CAR+6BH ; T2CMP2 JMP VEC_CAR+6EH ; DS 2 JMP VEC_CAR+73H ; TIMER2 JMP VEC_CAR+76H ; DS 2 ; JMP VEC_CAR+7BH ; JMP VEC_ABEG ; CSEG AT VEC_ABEG VEC_STL:JMP VEC_STL )FI VECT__C SEGMENT CODE RSEG VECT__C VEC_SET:MOV A,R4 MOV R4,DPL MOV R5,DPH %IF(0)THEN( MOV DPTR,#VEC_ARR CALL ADDATDP )ELSE( ADD A,#LOW VEC_ARR MOV DPL,A CLR A ADDC A,#HIGH VEC_ARR MOV DPH,A )FI %IF(%TGT_T89C51RD2)THEN( CLR A MOVC A,@A+DPTR CJNE A,#2,VEC_TE1 MOV A,#1 MOVC A,@A+DPTR XRL A,R5 JNZ VEC_TE1 MOV A,#2 MOVC A,@A+DPTR XRL A,R4 JNZ VEC_TE1 RET VEC_TE1: MOV FCON,#08H ; zapis do programove pameti )FI VEC_USR:MOV A,#2 MOV C,EA CLR EA MOVX @DPTR,A INC DPTR MOVX A,@DPTR XCH A,R5 MOVX @DPTR,A INC DPTR MOVX A,@DPTR XCH A,R4 MOVX @DPTR,A %IF(%TGT_T89C51RD2)THEN( MOV FCON,#050H ; zapisovaci sequence MOV FCON,#0A0H ; zapisovaci sequence S_WRM31:MOV A,FCON ; cekej na dozapsani ANL A,#01H JNZ S_WRM31 )FI MOV EA,C RET VEC_GET:MOV DPL,R4 MOV DPH,#HIGH VEC_ARR INC DPTR MOVX A,@DPTR MOV R5,A INC DPTR MOVX A,@DPTR MOV R4,A RET __SDCC_EXTERNAL_STARTUP: MOV IE,#0 MOV PSW,#0 MOV P0,#0FFH MOV P1,#0FFH MOV P2,#0FFH MOV P3,#0FFH %IF(%TGT_MSC1210)THEN( MOV EICON,#040h MOV AIE,#0 MOV EWU,#0 )FI CALL SRETI CALL SRETI CALL SRETI CALL SRETI CALL _SETUP_BOARD MOV DPL,#0 RET SRETI: RETI END