const byte prog_version = 0x01 include f452_20 include jdelay include jpic16 ADCON1 = 0b_0000_0110 var volatile bit CTS is pin_c5 var volatile bit CTS_direction is pin_c5_direction CTS = low CTS_direction = output CTS = low include airdrop include console procedure sign_on is delay_1ms ( 250 ) f452_serial_setup delay_1ms ( 250 ) putc = 13 putc = 10 putc = 13 putc = 10 putc = "C" putc = "I" putc = "S" putc = " " putc = "v" putc = " " putc = hex_to_ascii (prog_version >> 4) putc = "." putc = hex_to_ascii (prog_version & 0x0f) putc = 13 putc = 10 delay_1ms ( 250 ) end procedure init_board for 10 loop toggle_led delay_1ms ( 100 ) toggle_led delay_1ms ( 100 ) end loop sign_on var byte addr_lo, addr_hi addr_hi = 0 addr_lo = 0 procedure next_addr is addr_lo = addr_lo + 2 if addr_lo == 0 then addr_hi = addr_hi + 1 end if end procedure procedure parse_cis is var byte tup, lnk, v for 256 loop tup = attr_rd ( addr_hi, addr_lo ) puthex ( tup ) if tup == 0xff then return end if next_addr lnk = attr_rd ( addr_hi, addr_lo ) next_addr -- version/product info string if tup == 0x15 then var byte sav_hi, sav_lo sav_hi = addr_hi sav_lo = addr_lo for lnk loop v = attr_rd ( addr_hi, addr_lo ) if ( v >= " " ) & ( v <= "z" ) then putc = v end if next_addr end loop addr_hi = sav_hi addr_lo = sav_lo end if -- manufacturer's ID if tup == 0x20 then var byte sav_hi, sav_lo putc = "M" putc = "A" putc = "N" putc = "F" putc = "I" putc = "D" putc = " " sav_hi = addr_hi sav_lo = addr_lo for lnk loop v = attr_rd ( addr_hi, addr_lo ) puthex(v) next_addr end loop addr_hi = sav_hi addr_lo = sav_lo end if -- function ID-- 06 == network adapter if tup == 0x21 then var byte sav_hi, sav_lo putc = "F" putc = "U" putc = "N" putc = "C" putc = "I" putc = "D" putc = " " sav_hi = addr_hi sav_lo = addr_lo for lnk loop v = attr_rd ( addr_hi, addr_lo ) puthex(v) next_addr end loop addr_hi = sav_hi addr_lo = sav_lo end if -- function extension -- 01 07: wireless lan -- 02 nn nn nn nn : raw bit rate (multiple entries for different speeds) -- 03 07: Media: 2.4 GHZ spread spectrum -- 04 06: MAC address if tup == 0x22 then var byte sav_hi, sav_lo putc = "F" putc = "U" putc = "N" putc = "C" putc = "E" putc = " " putc = " " sav_hi = addr_hi sav_lo = addr_lo for lnk loop v = attr_rd ( addr_hi, addr_lo ) puthex(v) next_addr end loop addr_hi = sav_hi addr_lo = sav_lo end if if tup == 0x1a then var byte sav_hi, sav_lo, cor_hi, cor_lo putc = "C" putc = "O" putc = "R" putc = " " sav_hi = addr_hi sav_lo = addr_lo next_addr next_addr cor_lo = attr_rd ( addr_hi, addr_lo ) next_addr cor_hi = attr_rd ( addr_hi, addr_lo ) puthex( cor_hi ) puthex( cor_lo ) addr_hi = sav_hi addr_lo = sav_lo end if if tup == 0x1b then var byte sav_hi, sav_lo sav_hi = addr_hi sav_lo = addr_lo for lnk loop v = attr_rd ( addr_hi, addr_lo ) puthex(v) next_addr end loop addr_hi = sav_hi addr_lo = sav_lo end if for lnk loop next_addr end loop putc = 13 putc = 10 end loop putc = 13 putc = 10 end procedure parse_cis forever loop toggle_led delay_1ms ( 100 ) toggle_led delay_1ms ( 100 ) end loop