説明
EEPROMの内容を編集できます。キー操作は以下の様になっています。
- ↑(カーソルキー) 1バイト前に戻る
- ↓(カーソルキー) 1バイト先に進む
- B 16バイト前に戻る
- F 16バイト先に進む
- 1 256バイト先に進む
- 4 256バイト前に戻る
- 2 1024バイト先に進む
- 5 1024バイト前に戻る
- 3 2048バイト先に進む
- 6 2048バイト前に戻る
- A アドレスを入力する
- リターンキー 数値を入力する。これにより内容が変更される
// EEPROM Editor
var adrs=10,max=64*2048,k=0;
function to16(n){
var a=n&15;
if(a<10){a=a+48;}else{a=a+55;}
return a;
}
function prtHex(n){
log(chr(to16(n>>4)),chr(to16(n)));
}
// EEPROM Write (1Byte)
function romW(value){
i2cw(0x50|(((adrs>>16)&1)<<2), (adrs&0xff00)>>8,adrs&0xff, value);
sleep(4);
}
// EEPROM Read (1Byte)
function romR(adrs){
var n, d=0x50|(((adrs>>16)&1)<<2);
i2cw(d,(adrs&0xff00)>>8,adrs&255);
sleep(4);i2cr(d,n);return n;
}
// Display 1 line
function pLine(a){
if((a<0)+(a>=max)){log("\n");return;}
var b=romR(a);
log(" ");prtHex(a>>16);prtHex(a>>8);prtHex(a);
log(" ");prtHex(b);log(" ");
if(b<32){b=46;}
log(chr(b),"\n");
}
// Memory Dump
function dump(){
var n=-10;
cls();
while(n<10){
pLine(adrs+n);
n=n+1;
}
lc(0,10);log(">");
}
// Inkey
function key(n){k=n;}
// Main
function main(){
var n=0;
if(k==30){n=-1;}
if(k==31){n=1;}
if((k==70)+(k==102)){n=16;}
if((k==66)+(k==98)){n=-16;}
if(k==49){n=256;}
if(k==52){n=-256;}
if(k==50){n=1024;}
if(k==53){n=-1024;}
if(k==51){n=2048;}
if(k==54){n=-2048;}
adrs=adrs+n;
if((k==65)+(k==97)){
lc(0,22);
log("Address? ");
adrs=input();
}
if(adrs<0){adrs=0;}
if(adrs>=max){adrs=max-1;}
if(k==10){
lc(0,22);
log("Enter value? ");
romW(input());
}
if(k!=0){dump();}
k=0;
setTout(main,10);
}
// Initialize
setKprs(key);
dump();
main();
目次に戻る