;------------------------------------------------------------------------------ $NOMOD51 $TITLE ( TAQOZ_Asm_Check ) $INCLUDE(SI_EFM8BB1_Defs.inc) ; SFR defines, cseg at 0000h ;<< Reset vector ; TAQOZ_Asm pasted here and edited $nn to 0xnn for hex support. PID equ 0xAD RID equ 0xB6 RXD0 equ 12 K1 equ 0xA5 VARS equ 0x40 org 0x180 MAIN: DA A ; fixed mnemonic, was just DA MOV DPTR,#1234 ANL A,#0x34 ANL C,0x34 ANL A,R7 ADD A,#0x34 ADD A,VARS ; MOV A,#0x100 ; gives range check error, loads 0x00, 2 byte opcode MOV ACC,#0x100 ; gives range check error, loads 0x00, 3 byte opcode LJMP MAIN JC MAIN JB RXD0,MAIN JNB 0xA5,MAIN JNB K1,MAIN CLR A CLR C CLR RXD0 SETB C JB 0x45,MAIN LCALL FWD JMP @A+DPTR JNC MAIN JNZ MAIN JZ MAIN JC MAIN SJMP MAIN LJMP MAIN SETB RXD0 FWD: CLR C MOV A,R7 MOV R0,A MOV @R0,A MOV @R1,A MOV A,@R0 MOV A,@R1 MOV A,R0 MOV A,R7 ORL A,@R0 ORL A,@R1 ORL A,R0 ORL A,R7 SUBB A,@R0 SUBB A,@R1 SUBB A,R0 SUBB A,R7 INC @R0 INC @R1 INC R0 INC R7 INC DPTR INC A INC VARS ADD A,@R0 ADD A,R0 ADD A,R7 RET mycon equ 0x84 PROC5: ret PROC4: cjne A,#0FEh,PROC5 mov DPL, SMB0DAT ; was smbdat mov DPH,smbdir RDFL: mov r0,#auxbuf ; mov r1,#SMBTXSZ2 rdflp: clr A movc A,@A+DPTR mov @r0,A inc DPL inc r0 djnz r1,rdflp mov smbTxRd,#SMBTXSZ ret PROC3: cjne A,#0FDh,PROC4 mov DPL,#TITLE ; mov DPH,#TITLE ; jmp RDFL PROC2A: cjne A,#3,PROC3 mov P1MDOUT,#0 mov P1,#0FFh ret PROC2: cjne A,#2,PROC2A mov P1MDOUT,smbdat ret PROC1: cjne A,#1,PROC2 mov P1,smbdat mov P1MDOUT,smbdir ret PROCESS_SMB: mov A,smbcmd orl A,#0 jnz PROC1 ret SJMP PROCESS_SMB JMP PROCESS_SMB JMP 0x40