; ====================== I2C2scsn.asm ================== ; ; I2C master test programs ; by V.Angelov -- last modified: 15:57 / 23-Jun-2005 ; ; ====================================================== ; set the traceon for easier debugging, this makes the code longer ;#def traceon = 1 ; DEFINITIONS, USED IN THE PROGRAM CODE: #def msk_ssda = b010; -- mask for setting SDA=1 #def msk_csda = b101; -- mask for clearing SDA #def pos_sdai = -2; -- data input, TDO #def msk_sscl = b001; -- mask for setting SCL=1 #def msk_cscl = b110; -- mask for clearing SCL #def ioaddr = r14 ; contains the autoincrementing address of I/O operations through GIO #def ramaddr = r15 ; autoincrement address for RAM-access #def return1 = r8 ; return address level 1 (top) #def return2 = r9 ; #def return3 = r10 ; #def read_buff = srv_outdata; -- DBANK #def write_buff = srv_indata; -- DBANK #def timeout = 1; -- times the timedelay, was 1 #def timedelay = 4; -- 40 for 1 us, 10 is the lower limit, was 100 #def deb_reg = r13; #def dev_addr = r0; #def start_addr = r1; #def nbytes = r2; #def i2data = r3; #def wrk = r4; #def ibit = r5; #def wrk1cs = r6; -- used in clear/set routines #def wrk2cs = r7; #inc "I2C2scsn.asm" #inc "I2Clib.asm"