SYMBOL LS_NIBBLE = B2
SYMBOL MS_NIBBLE = B3
'#COM 8 'AXE027 CABLE
#TERMINAL 9600
'#PICAXE 20X2
#PICAXE 28X2
#SLOT 0
#NO_DATA
#NO_TABLE
#REVISION 255
PAUSE 100
READFIRMWARE B0
GOSUB DEC_to_ASCII_HEX
SERTXD ("FIRMWARE: ",MS_NIBBLE,".",LS_NIBBLE,CR,LF)
READSILICON B0
SERTXD ("PICAXE ")
B0 = B0 & %11100000
IF B0 = %00100000 THEN
SERTXD ("20X2 PIC18F14K22")
ELSEIF B0 = %01000000 THEN
SERTXD ("28X2-5V PIC18F2520")
ELSEIF B0 = %01100000 THEN
SERTXD ("40X2-5V PIC18F4520")
ELSEIF B0 = %11000000 THEN
SERTXD ("28X2-3V PIC18F25K20")
ELSEIF B0 = %11100000 THEN
SERTXD ("40X2-3V PIC18F45K20")
ELSEIF B0 = %10000000 THEN
SERTXD ("28X2 PIC18F25K22")
ELSEIF B0 = %10100000 THEN
SERTXD ("40X2 PIC18F45K22")
ENDIF
READSILICON B0
SERTXD (CR,LF,"Microchip Silicon Die Version = %",#BIT4,#BIT3,#BIT2,#BIT1,#BIT0,CR,LF)
READREVISION B0
GOSUB DEC_to_ASCII_HEX
SERTXD ("REVISION: $",MS_NIBBLE,LS_NIBBLE,CR,LF)
END
DEC_to_ASCII_HEX:
LS_NIBBLE = B0 & %00001111
MS_NIBBLE = B0 & %11110000 / 16
LOOKUP LS_NIBBLE,("0123456789ABCDEF"),LS_NIBBLE
LOOKUP MS_NIBBLE,("0123456789ABCDEF"),MS_NIBBLE
RETURN