'Program to load 240x64 image to the external I2C eeprom 'COMPSys (c) 2002 'Author: Ranjit Diol 'Date: April 2002 'Note: Run this just once to load the eeprom ' ' 'Initialize vars and constants DEFINE LOADER_USED 1 'Required if using ISP DEFINE OSC 20 'OSC speed, you may have to tweak the 'strobe' 'routine's e_pause constant for other speeds ADCON1 = 7 'Make all pins digital, you may adjust as needed '***************************** 'Temp variables used x VAR BYTE y VAR BYTE 'Serial I/O definitions out_pin VAR PORTC.6 'Serial OUT pin in_pin VAR PORTC.7 'Serial IN pin ser_baud CON 32 '16448 = 19200 Baud INVERTED, 32 = NON INV ee_addr var word ee_addr1 var word ee_addr2 var word 'I2C EEprom scl VAR PORTC.3 'I2C SCL for ext eeprom sda VAR PORTC.4 'I2C SDA for ext eeprom ctl CON $A0 'EEprom control code 'Main Program main: SerOut2 out_pin,ser_baud,["Loading EEPROM, please wait....",10,13] x = 0 y = 0 ee_addr = 0 SerOut2 out_pin,ser_baud,["Address:",dec5 ee_addr,10,13] for x = 0 to 239 lookup x,[_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1f,$ff,$b0,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$03,$f0,$2f,$7c,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$1e,$1a,$00,$77,$80,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$e0,$62,$04,$df,$70,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$03,$06,$00,$ff,$ff,$8c,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$0c,$0e,$00,$3f,$5f,$c3,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$30,_ $14,$00,$f0,$cb,$c0,$c0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$40,$3e,$8f,_ $42,$6f,$e0,$20,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00_ ],y I2CWrite sda,scl,ctl,ee_addr,[y] pause 5 SerOut2 out_pin,ser_baud,[dec5 ee_addr,10,13] ee_addr = ee_addr + 1 next x for x = 0 to 239 lookup x,[_ $03,$c0,$f8,$70,$e7,$e1,$f0,$00,$00,$00,$01,$80,$bf,$7f,$88,$f7,_ $e0,$18,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$07,$e1,_ $fc,$70,$e7,$f3,$f8,$00,$00,$00,$02,$00,$e5,$3f,$47,$f7,$f0,$04,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$0e,$73,$de,$79,_ $e7,$73,$98,$00,$00,$00,$04,$01,$94,$b8,$1c,$7f,$fc,$02,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$0e,$03,$8e,$79,$e7,$73,_ $87,$1d,$f0,$00,$08,$03,$08,$02,$20,$3e,$84,$01,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$0e,$03,$8e,$69,$67,$f1,$f3,$1b,_ $98,$00,$10,$01,$c1,$e8,$01,$3c,$3e,$00,$80,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$0e,$03,$8e,$6f,$67,$e0,$fb,$bb,$c0,$00,_ $20,$03,$90,$80,$4e,$7b,$82,$00,$40,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$0e,$63,$8e,$6f,$67,$00,$3b,$b9,$f0,$00,$40,$03,_ $c8,$80,$18,$7c,$df,$00,$20,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$0e,$73,$de,$66,$67,$03,$39,$b0,$78,$00,$80,$03,$b2,$df,_ $7c,$76,$e3,$00,$10,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00_ ],y I2CWrite sda,scl,ctl,ee_addr,[y] pause 5 SerOut2 out_pin,ser_baud,[dec5 ee_addr,10,13] ee_addr = ee_addr + 1 next x for x = 0 to 239 lookup x,[_ $07,$e1,$fc,$66,$67,$03,$f9,$f3,$38,$00,$80,$03,$d9,$fd,$f4,$77,_ $ff,$00,$10,$00,$00,$00,$1c,$03,$c3,$f0,$00,$00,$00,$00,$03,$c0,_ $f8,$66,$67,$01,$f0,$e1,$f0,$01,$00,$03,$fc,$7f,$fb,$f1,$87,$00,_ $08,$00,$00,$00,$1c,$07,$e3,$f8,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$e0,$00,$01,$00,$07,$fa,$f3,$f4,$00,$ff,$00,$08,$00,_ $00,$00,$1c,$0e,$73,$9c,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $03,$e0,$00,$02,$00,$07,$b9,$40,$00,$00,$7f,$80,$04,$00,$00,$00,_ $1c,$0e,$03,$9c,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$03,$c0,_ $00,$04,$00,$07,$f8,$40,$00,$00,$1f,$00,$02,$00,$00,$00,$1c,$0e,_ $03,$9c,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$04,_ $00,$07,$b0,$40,$00,$00,$3f,$00,$02,$00,$00,$00,$1c,$0e,$03,$9c,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$04,$00,$07,_ $70,$00,$00,$00,$03,$00,$02,$00,$00,$00,$1c,$0e,$63,$9c,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$08,$00,$07,$10,$00,_ $00,$00,$0b,$00,$01,$00,$00,$00,$1c,$0e,$73,$9c,$00,$00,$00,$00_ ],y I2CWrite sda,scl,ctl,ee_addr,[y] pause 5 SerOut2 out_pin,ser_baud,[dec5 ee_addr,10,13] ee_addr = ee_addr + 1 next x for x = 0 to 239 lookup x,[_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$08,$00,$0e,$00,$00,$00,$00,_ $07,$00,$01,$00,$00,$00,$1f,$c7,$e3,$f8,$00,$00,$00,$00,$00,$3f,_ $00,$00,$00,$38,$1c,$00,$00,$08,$00,$0e,$00,$00,$00,$00,$0f,$00,_ $01,$00,$00,$00,$1f,$c3,$c3,$f0,$00,$00,$00,$00,$00,$7f,$80,$00,_ $00,$38,$1c,$00,$00,$10,$00,$0e,$00,$00,$00,$00,$0f,$00,$00,$80,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$f3,$80,$00,$00,$38,_ $00,$00,$00,$10,$00,$1e,$00,$00,$00,$00,$0d,$00,$00,$80,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$e0,$3b,$7e,$77,$3b,$9c,$78,_ $00,$10,$00,$16,$00,$00,$00,$00,$03,$00,$00,$80,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$e7,$be,$ff,$7f,$bf,$dc,$fc,$00,$10,_ $00,$d6,$00,$00,$00,$00,$17,$00,$00,$80,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$e7,$b8,$e7,$73,$b9,$dd,$ce,$00,$10,$00,$e6,_ $03,$38,$00,$00,$1b,$00,$00,$80,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$e3,$b8,$1f,$73,$b9,$dd,$c0,$00,$10,$01,$5c,$00,$7c,_ $00,$00,$0f,$00,$00,$80,$00,$07,$fe,$3c,$3c,$0f,$0f,$03,$c0,$00_ ],y I2CWrite sda,scl,ctl,ee_addr,[y] pause 5 SerOut2 out_pin,ser_baud,[dec5 ee_addr,10,13] ee_addr = ee_addr + 1 next x for x = 0 to 239 lookup x,[_ $00,$f3,$b8,$e7,$73,$b9,$dd,$ce,$00,$10,$00,$86,$00,$c0,$00,$7f,_ $07,$00,$00,$80,$00,$07,$fe,$7e,$7e,$1f,$9f,$87,$e0,$00,$00,$7f,_ $b8,$ff,$7f,$b9,$dc,$fc,$00,$10,$00,$96,$07,$fe,$00,$fb,$0f,$00,_ $00,$80,$00,$08,$70,$ee,$77,$3b,$9d,$ce,$70,$00,$00,$3e,$38,$77,_ $77,$39,$dc,$78,$00,$10,$00,$46,$0f,$c9,$01,$b0,$07,$a0,$00,$87,_ $39,$c8,$70,$e0,$77,$38,$01,$ce,$00,$00,$00,$00,$00,$00,$70,$00,_ $00,$00,$00,$10,$00,$dc,$01,$e5,$03,$fe,$0e,$00,$00,$83,$39,$88,_ $70,$ec,$7f,$3b,$03,$8e,$00,$00,$00,$00,$00,$00,$70,$00,$00,$00,_ $00,$10,$00,$16,$00,$dc,$04,$d7,$04,$e0,$00,$83,$bb,$90,$70,$fe,_ $37,$3f,$83,$8e,$00,$00,$00,$00,$00,$00,$70,$00,$00,$00,$00,$10,_ $00,$76,$02,$00,$05,$e2,$0b,$00,$00,$83,$ab,$90,$70,$ee,$07,$3b,_ $81,$ce,$60,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$08,$00,$36,_ $00,$00,$08,$3c,$0a,$00,$01,$01,$ef,$10,$70,$ee,$77,$3b,$9d,$ce,_ $70,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$08,$00,$26,$00,$00,_ $08,$40,$0f,$20,$01,$01,$c7,$20,$70,$7e,$7e,$1f,$9f,$87,$e0,$00_ ],y I2CWrite sda,scl,ctl,ee_addr,[y] pause 5 SerOut2 out_pin,ser_baud,[dec5 ee_addr,10,13] ee_addr = ee_addr + 1 next x for x = 0 to 239 lookup x,[_ $00,$03,$f0,$00,$00,$00,$00,$00,$00,$08,$00,$0e,$00,$00,$00,$38,_ $0c,$c0,$01,$01,$c7,$20,$70,$3c,$3c,$0f,$0f,$03,$c0,$00,$00,$03,_ $f8,$00,$00,$00,$00,$00,$00,$04,$00,$02,$00,$00,$00,$00,$0d,$00,_ $02,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$03,$9c,$00,_ $00,$00,$00,$00,$00,$04,$00,$00,$00,$00,$00,$00,$07,$80,$02,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$03,$9c,$78,$76,$e1,_ $e0,$00,$00,$04,$00,$0c,$00,$00,$00,$00,$1d,$00,$02,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$03,$9c,$fc,$7f,$f3,$f0,$00,_ $00,$02,$00,$00,$00,$00,$10,$00,$11,$00,$04,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$03,$9d,$ce,$77,$77,$38,$00,$00,$01,_ $00,$00,$00,$06,$14,$00,$02,$00,$08,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$03,$9d,$fe,$77,$77,$38,$00,$00,$01,$00,$02,_ $00,$21,$e8,$00,$24,$00,$08,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$03,$9d,$c0,$77,$77,$38,$00,$00,$00,$80,$00,$01,$c0,_ $00,$00,$2c,$00,$10,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00_ ],y I2CWrite sda,scl,ctl,ee_addr,[y] pause 5 SerOut2 out_pin,ser_baud,[dec5 ee_addr,10,13] ee_addr = ee_addr + 1 next x for x = 0 to 239 lookup x,[_ $00,$03,$f8,$fe,$77,$73,$f0,$00,$00,$00,$80,$01,$00,$00,$00,$80,_ $20,$00,$10,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$03,_ $f0,$7c,$77,$71,$e0,$00,$00,$00,$40,$01,$00,$e0,$00,$40,$40,$00,_ $20,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$20,$00,$00,$3f,$09,$40,$40,$00,$40,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$10,$00,$80,$1c,$2f,$00,$80,$00,$80,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$08,$00,$40,$20,$18,$00,$80,$01,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $04,$00,$60,$17,$f0,$01,$00,$02,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$02,$00,_ $30,$08,$08,$02,$00,$04,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$80,$08,$04,_ $10,$04,$00,$18,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00_ ],y I2CWrite sda,scl,ctl,ee_addr,[y] pause 5 SerOut2 out_pin,ser_baud,[dec5 ee_addr,10,13] ee_addr = ee_addr + 1 next x for x = 0 to 239 lookup x,[_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$40,$04,$03,$e0,$08,_ $00,$20,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$30,$02,$00,$00,$20,$00,$c0,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$0c,$01,$00,$00,$80,$03,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$03,$00,$40,$03,$00,$0c,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$e0,$20,$04,$00,$70,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$1c,$18,$18,$03,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $03,$e1,$c0,$7c,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_ $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1f,_ $ff,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00_ ],y I2CWrite sda,scl,ctl,ee_addr,[y] pause 5 SerOut2 out_pin,ser_baud,[dec5 ee_addr,10,13] ee_addr = ee_addr + 1 next x SerOut2 out_pin,ser_baud,[dec5 ee_addr,10,13,"All done!",10,13] end