Aigo เดธเตเดตเดฏเด‚ เดŽเตปเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเด‚เด—เต เดฌเดพเดนเตเดฏ HDD เดกเตเดฐเตˆเดตเต เดฑเดฟเดตเต‡เดดเตโ€Œเดธเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดนเดพเด•เตเด•เต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดญเดพเด—เด‚ 2: เดธเตˆเดชเตเดฐเดธเต เดชเดฟเดŽเดธเตเด’เดธเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เด’เดฐเต เดกเด‚เดชเต เดŽเดŸเตเด•เตเด•เตฝ

เดฌเดพเดนเตเดฏ เดธเตเดตเดฏเด‚-เดŽเตปเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเด‚เด—เต เดกเตเดฐเตˆเดตเตเด•เตพ เดนเดพเด•เตเด•เต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดฒเต‡เด–เดจเดคเตเดคเดฟเดจเตเดฑเต† เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต†เดฏเตเด‚ เด…เดตเดธเดพเดจเดคเตเดคเต†เดฏเตเด‚ เดญเดพเด—เดฎเดพเดฃเดฟเดคเต. เด…เดŸเตเดคเตเดคเดฟเดŸเต† เด’เดฐเต เดธเดนเดชเตเดฐเดตเตผเดคเตเดคเด•เตป เดŽเดจเดฟเด•เตเด•เต เด’เดฐเต เดฆเต‡เดถเดธเตเดจเต‡เดนเดฟ (Aigo) SK8671 เดนเดพเตผเดกเต เดกเตเดฐเตˆเดตเต เด•เตŠเดฃเตเดŸเตเดตเดจเตเดจเตเดตเต†เดจเตเดจเต เดžเดพเตป เดจเดฟเด™เตเด™เดณเต† เด“เตผเดฎเตเดฎเดฟเดชเตเดชเดฟเด•เตเด•เดŸเตเดŸเต†, เด…เดคเต เดคเดฟเดฐเดฟเดšเตเดšเต†เดŸเตเด•เตเด•เดพเตป เดžเดพเตป เดคเต€เดฐเตเดฎเดพเดจเดฟเดšเตเดšเต, เด‡เดชเตเดชเต‹เตพ เด…เดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเดจเตเดจ เด•เดพเดฐเตเดฏเด™เตเด™เตพ เดžเดพเตป เดชเด™เตเด•เดฟเดŸเตเดจเตเดจเต. เด•เต‚เดŸเตเดคเตฝ เดตเดพเดฏเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต, เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚ เดตเดพเดฏเดฟเด•เตเด•เตเด• เด†เดฆเตเดฏ เดญเดพเด—เด‚ เดฒเต‡เด–เดจเด™เตเด™เตพ.

4. เดžเด™เตเด™เตพ เด†เดจเตเดคเดฐเดฟเด• PSoC เดซเตเดฒเดพเดทเต เดกเตเดฐเตˆเดตเดฟเตฝ เดจเดฟเดจเตเดจเต เด’เดฐเต เดกเด‚เดชเต เดŽเดŸเตเด•เตเด•เดพเตป เดคเตเดŸเด™เตเด™เตเดจเตเดจเต
5. ISSP เดชเตเดฐเต‹เดŸเตเดŸเต‹เด•เตเด•เต‹เตพ
โ€“ 5.1. เดŽเดจเตเดคเดพเดฃเต ISSP
โ€“ 5.2. เดกเต€เดฎเดฟเดธเตเดฑเตเดฑเดฟเดซเตˆเดฏเดฟเด‚เด—เต เดตเต†เด•เตเดŸเดฑเตเด•เตพ
โ€“ 5.3. เดชเดฟเดŽเดธเตเด’เดธเดฟเดฏเตเดฎเดพเดฏเดฟ เด†เดถเดฏเดตเดฟเดจเดฟเดฎเดฏเด‚
โ€“ 5.4. เด“เตบ-เดšเดฟเดชเตเดชเต เดฐเดœเดฟเดธเตเดฑเตเดฑเดฑเตเด•เดณเตเดŸเต† เดเดกเดจเตเดฑเดฟเดซเดฟเด•เตเด•เต‡เดทเตป
โ€“ 5.5. เดธเตเดฐเด•เตเดทเดพ เดฌเดฟเดฑเตเดฑเตเด•เตพ
6. เด†เดฆเตเดฏ (เดชเดฐเดพเดœเดฏเดชเตเดชเต†เดŸเตเดŸ) เด†เด•เตเดฐเดฎเดฃเด‚: ROMX
7. เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต† เด†เด•เตเดฐเดฎเดฃเด‚: เด•เต‹เตพเดกเต เดฌเต‚เดŸเตเดŸเต เดŸเตเดฐเต‡เดธเดฟเด‚เด—เต
โ€“ 7.1. เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตฝ
โ€“ 7.2. เดซเดฒเด‚ เดตเดพเดฏเดฟเด•เตเด•เตเดจเตเดจเต
โ€“ 7.3. เดซเตเดฒเดพเดทเต เดฌเตˆเดจเดฑเดฟ เดชเตเดจเตผเดจเดฟเตผเดฎเตเดฎเดพเดฃเด‚
โ€“ 7.4. เดชเดฟเตป เด•เต‹เดกเต เดธเด‚เดญเดฐเดฃ โ€‹โ€‹เดตเดฟเดฒเดพเดธเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเตเดจเตเดจเต
โ€“ 7.5. เดฌเตเดฒเต‹เด•เตเด•เต เดจเดฎเตเดชเตผ 126-เดจเตเดฑเต† เด’เดฐเต เดกเด‚เดชเต เดŽเดŸเตเด•เตเด•เตฝ
โ€“ 7.6. เดชเดฟเตป เด•เต‹เดกเต เดตเต€เดฃเตเดŸเต†เดŸเตเด•เตเด•เตฝ
8. เด…เดŸเตเดคเตเดคเดคเต เดŽเดจเตเดคเดพเดฃเต?
9. เด‰เดชเดธเด‚เดนเดพเดฐเด‚

Aigo เดธเตเดตเดฏเด‚ เดŽเตปเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเด‚เด—เต เดฌเดพเดนเตเดฏ HDD เดกเตเดฐเตˆเดตเต เดฑเดฟเดตเต‡เดดเตโ€Œเดธเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดนเดพเด•เตเด•เต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดญเดพเด—เด‚ 2: เดธเตˆเดชเตเดฐเดธเต เดชเดฟเดŽเดธเตเด’เดธเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เด’เดฐเต เดกเด‚เดชเต เดŽเดŸเตเด•เตเด•เตฝ


4. เดžเด™เตเด™เตพ เด†เดจเตเดคเดฐเดฟเด• PSoC เดซเตเดฒเดพเดทเต เดกเตเดฐเตˆเดตเดฟเตฝ เดจเดฟเดจเตเดจเต เด’เดฐเต เดกเด‚เดชเต เดŽเดŸเตเด•เตเด•เดพเตป เดคเตเดŸเด™เตเด™เตเดจเตเดจเต

เด…เดคเดฟเดจเดพเตฝ, PIN เด•เต‹เดกเต PSoC- เดฏเตเดŸเต† เดซเตเดฒเดพเดทเต เดกเต†เดชเตโ€Œเดธเดฟเตฝ เดธเด‚เดญเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเต เดŽเดฒเตเดฒเดพเด‚ เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต ([เด†เดฆเตเดฏ เดญเดพเด—เด‚]() เตฝ เดžเด™เตเด™เตพ เดธเตเดฅเดพเดชเดฟเดšเตเดšเดคเตเดชเต‹เดฒเต†). เด…เดคเดฟเดจเดพเตฝ, เดˆ เดซเตเดฒเดพเดทเต เดกเต†เดชเตโ€Œเดฑเตเดฑเตเด•เตพ เดจเดพเด‚ เดตเดพเดฏเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เด†เดตเดถเตเดฏเดฎเดพเดฏ เดœเต‹เดฒเดฟเดฏเตเดŸเต† เดฎเตเตปเดญเดพเด—เด‚:

  • เดฎเตˆเด•เตเดฐเต‹เด•เตบเดŸเตเดฐเต‹เดณเดฑเตเดฎเดพเดฏเดฟ "เด†เดถเดฏเดตเดฟเดจเดฟเดฎเดฏเด‚" เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เตเด•;
  • เดˆ "เด†เดถเดฏเดตเดฟเดจเดฟเดฎเดฏเด‚" เดชเตเดฑเดคเตเดคเตเดจเดฟเดจเตเดจเตเดณเตเดณ เดตเดพเดฏเดจเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดธเด‚เดฐเด•เตเดทเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดŸเดฟเดŸเตเดŸเตเดฃเตเดŸเต‹ เดŽเดจเตเดจเต เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เดฎเดพเตผเด—เตเด—เด‚ เด•เดฃเตเดŸเต†เดคเตเดคเตเด•;
  • เดธเด‚เดฐเด•เตเดทเดฃเด‚ เดฎเดฑเดฟเด•เดŸเด•เตเด•เดพเตป เด’เดฐเต เดตเดดเดฟ เด•เดฃเตเดŸเต†เดคเตเดคเตเด•.

เดธเดพเดงเตเดตเดพเดฏ เด’เดฐเต เดชเดฟเตป เด•เต‹เดกเดฟเดจเดพเดฏเดฟ เดจเต‹เด•เตเด•เตเดจเตเดจเดคเต เด…เตผเดคเตเดฅเดฎเดพเด•เตเด•เตเดจเตเดจ เดฐเดฃเตเดŸเต เดธเตเดฅเดฒเด™เตเด™เดณเตเดฃเตเดŸเต:

  • เด†เดจเตเดคเดฐเดฟเด• เดซเตเดฒเดพเดทเต เดฎเต†เดฎเตเดฎเดฑเดฟ;
  • SRAM, เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเต เดจเตฝเด•เดฟเดฏ เดชเดฟเตป เด•เต‹เดกเตเดฎเดพเดฏเดฟ เดคเดพเดฐเดคเดฎเตเดฏเด‚ เดšเต†เดฏเตเดฏเดพเตป เดชเดฟเตป เด•เต‹เดกเต เดธเด‚เดญเดฐเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚.

เดฎเตเดจเตเดจเต‹เดŸเตเดŸเต เดจเต‹เด•เตเด•เตเดฎเตเดชเต‹เตพ, ISSP เดชเตเดฐเต‹เดŸเตเดŸเต‹เด•เตเด•เต‹เดณเดฟเดจเตเดฑเต† เดฐเต‡เด–เดชเตเดชเต†เดŸเตเดคเตเดคเดพเดคเตเดค เด•เดดเดฟเดตเตเด•เตพ เดฎเดพเดฑเตเดฑเดฟเดฎเดฑเดฟเดšเตเดšเดคเดฟเดจเต เดถเต‡เดทเด‚, "เด•เต‹เตพเดกเต เดฌเต‚เดŸเตเดŸเต เดŸเตเดฐเต†เดฏเตโ€Œเดธเดฟเด‚เด—เต" เดŽเดจเตเดจ เดนเดพเตผเดกเตโ€Œเดตเต†เดฏเตผ เด†เด•เตเดฐเดฎเดฃเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด…เดคเดฟเดจเตเดฑเต† เดธเตเดฐเด•เตเดทเดพ เดธเด‚เดตเดฟเดงเดพเดจเดคเตเดคเต† เดฎเดฑเดฟเด•เดŸเดจเตเดจเต - เด†เดจเตเดคเดฐเดฟเด• PSoC เดซเตเดฒเดพเดทเต เดกเตเดฐเตˆเดตเดฟเดจเตเดฑเต† เด’เดฐเต เดกเด‚เดชเต เดŽเดŸเตเด•เตเด•เดพเตป เดŽเดจเดฟเด•เตเด•เต เด‡เดชเตเดชเต‹เดดเตเด‚ เด•เดดเดฟเดžเตเดžเตเดตเต†เดจเตเดจเต เดžเดพเตป เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด‚. เดฏเดฅเดพเตผเดคเตเดฅ เดชเดฟเตป เด•เต‹เดกเต เดจเต‡เดฐเดฟเดŸเตเดŸเต เดกเด‚เดชเต เดšเต†เดฏเตเดฏเดพเตป เด‡เดคเต เดŽเดจเตเดจเต† เด…เดจเตเดตเดฆเดฟเดšเตเดšเต.

$ ./psoc.py 
syncing: KO OK
[...]
PIN: 1 2 3 4 5 6 7 8 9

เด…เดตเดธเดพเดจ เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เด•เต‹เดกเต:

5. ISSP เดชเตเดฐเต‹เดŸเตเดŸเต‹เด•เตเด•เต‹เตพ

5.1 เดŽเดจเตเดคเดพเดฃเต ISSP

เด’เดฐเต เดฎเตˆเด•เตเดฐเต‹เด•เตบเดŸเตเดฐเต‹เดณเดฑเตเดฎเดพเดฏเตเดณเตเดณ "เด†เดถเดฏเดตเดฟเดจเดฟเดฎเดฏเด‚" เดŽเดจเตเดจเดคเดฟเดจเต เดตเตเดฏเดคเตเดฏเดธเตเดค เด•เดพเดฐเตเดฏเด™เตเด™เตพ เด…เตผเดคเตเดฅเดฎเดพเด•เตเด•เดพเด‚: "เดตเต†เดฃเตเดŸเตผ เดฎเตเดคเตฝ เดตเต†เดฃเตเดŸเตผ เดตเดฐเต†" เด’เดฐเต เดธเต€เดฐเดฟเดฏเตฝ เดชเตเดฐเต‹เดŸเตเดŸเต‹เด•เตเด•เต‹เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเตเดณเตเดณ เด‡เดŸเดชเต†เดŸเตฝ เดตเดฐเต† (เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดฎเตˆเด•เตเดฐเต‹เดšเดฟเดชเตเดชเดฟเดจเตเดฑเต† เดชเดฟเดเดธเดฟเด•เตเด•เตเดณเตเดณ ICSP).

เด‡เดคเดฟเดจเดพเดฏเดฟ เดธเตˆเดชเตเดฐเดธเดฟเดจเต เด…เดคเดฟเดจเตเดฑเต‡เดคเดพเดฏ เดชเตเดฐเตŠเดชเตเดฐเตˆเดฑเตเดฑเดฑเดฟ เดชเตเดฐเต‹เดŸเตเดŸเต‹เด•เตเด•เต‹เตพ เด‰เดฃเตเดŸเต, เด‡เดคเดฟเดจเต† ISSP (เด‡เตป-เดธเดฟเดธเตเดฑเตเดฑเด‚ เดธเต€เดฐเดฟเดฏเตฝ เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เดชเตเดฐเต‹เดŸเตเดŸเต‹เด•เตเด•เต‹เตพ) เดŽเดจเตเดจเต เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเต, เด‡เดคเต เดญเดพเด—เดฟเด•เดฎเดพเดฏเดฟ เดตเดฟเดตเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดธเดพเด™เตเด•เต‡เดคเดฟเด• เดธเตเดชเต†เดธเดฟเดซเดฟเด•เตเด•เต‡เดทเตป. เดชเต‡เดฑเตเดฑเดจเตเดฑเต US7185162 เดšเดฟเดฒ เดตเดฟเดตเดฐเด™เตเด™เดณเตเด‚ เดจเตฝเด•เตเดจเตเดจเต. HSSP เดŽเดจเตเดจ เดชเต‡เดฐเดฟเตฝ เด’เดฐเต เด“เดชเตเดชเตบเดธเต‹เดดเตเดธเต เดคเดคเตเดคเตเดฒเตเดฏเดตเตเด‚ เด‰เดฃเตเดŸเต (เดžเด™เตเด™เตพ เด‡เดคเต เด•เตเดฑเดšเตเดšเต เด•เดดเดฟเดžเตเดžเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด‚). ISSP เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดฐเต€เดคเดฟเดฏเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต:

  • PSoC เดฑเต€เดฌเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเด•;
  • เดˆ PSoC-เดฏเตเดŸเต† เดธเต€เดฐเดฟเดฏเตฝ เดกเดพเดฑเตเดฑเดพ เดชเดฟเดจเตเดจเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดœเดฟเด•เต เดจเดฎเตเดชเตผ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเด•; เดฌเดพเดนเตเดฏ เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เดฎเต‹เดกเดฟเตฝ เดชเตเดฐเดตเต‡เดถเดฟเด•เตเด•เดพเตป;
  • เด•เดฎเดพเตปเดกเตเด•เตพ เด…เดฏเดฏเตเด•เตเด•เตเด•, เด…เดต "เดตเต†เด•เตเดฑเตเดฑเดฑเตเด•เตพ" เดŽเดจเตเดจเต เดตเดฟเดณเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจ เดฒเต‹เด‚เด—เต เดฌเดฟเดฑเตเดฑเต เดธเตเดŸเตเดฐเดฟเด‚เด—เตเด•เดณเดพเดฃเต.

ISSP เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเตป เดˆ เดตเต†เด•เตเดฑเตเดฑเดฑเตเด•เดณเต† เด’เดฐเตเดชเดฟเดŸเดฟ เด•เดฎเดพเตปเดกเตเด•เตพเด•เตเด•เต เดฎเดพเดคเตเดฐเด‚ เดจเดฟเตผเดตเดšเดฟเด•เตเด•เตเดจเตเดจเต:

  • เด†เดฐเด‚เดญเดฟเด•เตเด•เตเด•-1
  • เด†เดฐเด‚เดญเดฟเด•เตเด•เตเด•-2
  • Initialize-3 (3V, 5V เด“เดชเตเดทเดจเตเด•เตพ)
  • เดเดกเดฟ-เดธเต†เดฑเตเดฑเดชเตเดชเต
  • เดฑเต€เดกเต-เดเดกเดฟ-เดตเต‡เดกเต
  • SET-BLOCK-NUM: 10011111010ddddddd111, เด‡เดตเดฟเดŸเต† dddddddd=block #
  • เดฌเตพเด•เตเด•เต เดฎเดพเดฏเตเด•เตเด•เตเด•
  • เดชเตเดฐเต‹เด—เตเดฐเดพเด‚-เดฌเตเดฒเต‹เด•เตเด•เต
  • เดตเต†เดฐเดฟเดซเตˆ-เดธเต†เดฑเตเดฑเดชเตเดชเต
  • เดฑเต€เดกเต-เดฌเตˆเดฑเตเดฑเต: 10110aaaaZDDDDDDDDZ1, เด‡เดตเดฟเดŸเต† DDDDDDDD = เดกเดพเดฑเตเดฑ เด”เดŸเตเดŸเต, aaaaa = เดตเดฟเดฒเดพเดธเด‚ (6 เดฌเดฟเดฑเตเดฑเตเด•เตพ)
  • เดŽเดดเตเดคเตเด•-เดฌเตˆเดฑเตเดฑเต: 10010aaaaaddddddd111, เด‡เดตเดฟเดŸเต† dddddddd = เดกเดพเดฑเตเดฑ เด‡เตป, aaaaa = เดตเดฟเดฒเดพเดธเด‚ (6 เดฌเดฟเดฑเตเดฑเตเด•เตพ)
  • เดธเตเดฐเด•เตเดทเดฟเดค
  • เดšเต†เด•เตเด•เตเดธเด‚-เดธเต†เดฑเตเดฑเดชเตเดชเต
  • เดฑเต€เดกเต-เดšเต†เด•เตเด•เตโ€Œเดธเด‚: 10111111001ZDDDDDDDDZ110111111000ZDDDDDDDDZ1, เด‡เดตเดฟเดŸเต† DDDDDDDDDDDDDDD = เดกเดพเดฑเตเดฑ เด”เดŸเตเดŸเต: เด‰เดชเด•เดฐเดฃ เดšเต†เด•เตเด•เตเดธเด‚
  • เดฎเดพเดฏเตเด•เตเด•เตเด• เดฌเตเดฒเต‹เด•เตเด•เต

เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, Initialize-2 เดจเตเดณเตเดณ เดตเต†เด•เตเดฑเตเดฑเตผ:

1101111011100000000111 1101111011000000000111
1001111100000111010111 1001111100100000011111
1101111010100000000111 1101111010000000011111
1001111101110000000111 1101111100100110000111
1101111101001000000111 1001111101000000001111
1101111000000000110111 1101111100000000000111
1101111111100010010111

เดŽเดฒเตเดฒเดพ เดตเต†เด•เตโ€ŒเดŸเดฑเตเด•เตพเด•เตเด•เตเด‚ เด’เดฐเต‡ เดจเต€เดณเดฎเตเดฃเตเดŸเต: 22 เดฌเดฟเดฑเตเดฑเตเด•เตพ. HSSP เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเดจเดฟเตฝ ISSP-เดฏเต† เด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดšเดฟเดฒ เด…เดงเดฟเด• เดตเดฟเดตเดฐเด™เตเด™เตพ เด‰เดฃเตเดŸเต: "เด’เดฐเต ISSP เดตเต†เด•เตเดฑเตเดฑเตผ เดŽเดจเตเดจเดคเต เด’เดฐเต เด•เต‚เดŸเตเดŸเด‚ เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เดณเต† เดชเตเดฐเดคเดฟเดจเดฟเดงเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดฌเดฟเดฑเตเดฑเต เดธเต€เด•เตเดตเตปเดธเดฒเตเดฒเดพเดคเต† เดฎเดฑเตเดฑเตŠเดจเตเดจเตเดฎเดฒเตเดฒ."

5.2 เดกเต€เดฎเดฟเดธเตเดฑเตเดฑเดฟเดซเตˆเดฏเดฟเด‚เด—เต เดตเต†เด•เตเดŸเดฑเตเด•เตพ

เด‡เดตเดฟเดŸเต† เดŽเดจเตเดคเดพเดฃเต เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเดคเต†เดจเตเดจเต เดจเดฎเตเด•เตเด•เต เด•เดฃเตเดŸเต†เดคเตเดคเดพเด‚. เดคเตเดŸเด•เตเด•เดคเตเดคเดฟเตฝ, เด‡เดคเต‡ เดตเต†เด•เตโ€ŒเดŸเดฑเตเด•เตพ M8C เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เดณเตเดŸเต† เด…เดธเด‚เดธเตโ€Œเด•เตƒเดค เดชเดคเดฟเดชเตเดชเดพเดฃเต†เดจเตเดจเต เดžเดพเตป เด…เดจเตเดฎเดพเดจเดฟเดšเตเดšเต, เดŽเดจเตเดจเดพเตฝ เดˆ เดธเดฟเดฆเตเดงเดพเดจเตเดคเด‚ เดชเดฐเดฟเดถเต‹เดงเดฟเดšเตเดš เดถเต‡เดทเด‚, เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เดณเตเดŸเต† เด’เดชเตโ€Œเด•เต‹เดกเตเด•เตพ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดจเตเดจเดฟเดฒเตเดฒเต†เดจเตเดจเต เดžเดพเตป เด•เดฃเตเดŸเต†เดคเตเดคเดฟ.

เดชเดฟเดจเตเดจเต† เดฎเตเด•เดณเดฟเดฒเต† เดตเต†เด•เตเดฑเตเดฑเตผ เด—เต‚เด—เดฟเตพ เดšเต†เดฏเตเดคเต เดจเต‹เด•เตเด•เดฟ เดˆ เดฐเดšเดฏเดฟเดคเดพเดตเต เดตเดฟเดถเดฆเดฎเดพเดฏเดฟ เดชเดฑเดฏเตเดจเตเดจเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเดฒเตเด‚ เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฏ เดšเดฟเดฒ เดจเตเดฑเตเด™เตเด™เตเด•เตพ เดจเตฝเด•เตเดจเตเดจ เด’เดฐเต เดชเด เดจเด‚: โ€œเด“เดฐเต‹ เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เดณเตเด‚ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเต เดจเดพเดฒเต เด“เตผเดฎเตเดฎเดชเตเดชเต†เดŸเตเดคเตเดคเดฒเตเด•เดณเดฟเตฝ เด’เดจเตเดจเตเดฎเดพเดฏเดฟ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดจเตเดจ เดฎเต‚เดจเตเดจเต เดฌเดฟเดฑเตเดฑเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเดพเดฃเต (เดฑเดพเดฎเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเดพเดฏเดฟเด•เตเด•เตเด•, เดฑเดพเดฎเดฟเดฒเต‡เด•เตเด•เต เดŽเดดเตเดคเตเด•, เดฐเดœเดฟเดธเตเดฑเตเดฑเตผ เดตเดพเดฏเดฟเด•เตเด•เตเด•, เดฐเดœเดฟเดธเตเดฑเตเดฑเตผ เดŽเดดเตเดคเตเด•). เดคเตเดŸเตผเดจเตเดจเต 8 เด…เดกเตเดฐเดธเต เดฌเดฟเดฑเตเดฑเตเด•เตพ เด‰เดฃเตเดŸเต, เดคเตเดŸเตผเดจเตเดจเต 8 เดกเดพเดฑเตเดฑ เดฌเดฟเดฑเตเดฑเตเด•เตพ (เดตเดพเดฏเดฟเด•เตเด•เตเด• เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดŽเดดเตเดคเตเด•), เด’เดŸเตเดตเดฟเตฝ เดฎเต‚เดจเตเดจเต เดธเตเดฑเตเดฑเต‹เดชเตเดชเต เดฌเดฟเดฑเตเดฑเตเด•เตพ.

เด…เดชเตเดชเต‹เตพ เดธเต‚เดชเตเดชเตผเดตเตˆเดธเดฑเดฟ เดฑเต‹เด‚ (SROM) เดตเดฟเดญเดพเด—เดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเดณเดฐเต† เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฏ เดšเดฟเดฒ เดตเดฟเดตเดฐเด™เตเด™เตพ เดถเต‡เด–เดฐเดฟเด•เตเด•เดพเตป เดŽเดจเดฟเด•เตเด•เต เด•เดดเดฟเดžเตเดžเต. เดธเดพเด™เตเด•เต‡เดคเดฟเด• เดฎเดพเดจเตเดตเตฝ. เด‰เดชเดฏเต‹เด•เตเดคเตƒ เดธเตเดฅเดฒเดคเตเดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เด•เต‹เดกเดฟเดจเดพเดฏเดฟ เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟ เดซเด‚เด—เตโ€Œเดทเดจเตเด•เตพ (Syscall-เดจเต เดธเดฎเดพเดจเดฎเดพเดฏ เดฐเต€เดคเดฟเดฏเดฟเตฝ) เดจเตฝเด•เตเดจเตเดจ PSoC-เดฏเดฟเดฒเต† เดนเดพเตผเดกเต-เด•เต‹เดกเตเดšเต†เดฏเตโ€Œเดค ROM เด†เดฃเต SROM:

  • 00h:SWBootReset
  • 01 เดฎเดฃเดฟเด•เตเด•เต‚เตผ: เดฑเต€เดกเตเดฌเตเดฒเต‹เด•เตเด•เต
  • 02 เดฎเดฃเดฟเด•เตเด•เต‚เตผ: เดฑเตˆเดฑเตเดฑเตเดฌเตเดฒเต‹เด•เตเด•เต
  • 03h: EraseBlock
  • 06 เดฎเดฃเดฟเด•เตเด•เต‚เตผ: เดŸเต‡เดฌเดฟเตพ เดฑเต€เดกเต
  • 07 เดฎเดฃเดฟเด•เตเด•เต‚เตผ: เดšเต†เด•เตเด•เตเดธเด‚
  • 08 เดฎเดฃเดฟเด•เตเด•เต‚เตผ: เด•เดพเดฒเดฟเดฌเตเดฐเต‡เดฑเตเดฑเต0
  • 09 เดฎเดฃเดฟเด•เตเด•เต‚เตผ: เด•เดพเดฒเดฟเดฌเตเดฐเต‡เดฑเตเดฑเต1

เดตเต†เด•เตโ€ŒเดŸเตผ เดชเต‡เดฐเตเด•เตพ SROM เดซเด‚เด—เตโ€Œเดทเดจเตเด•เดณเตเดฎเดพเดฏเดฟ เดคเดพเดฐเดคเดฎเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต†, เดˆ เดชเตเดฐเต‹เดŸเตเดŸเต‹เด•เตเด•เต‹เตพ เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจ เดตเดฟเดตเดฟเดง เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เดณเต† เดชเตเดฐเดคเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจ SROM เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดจเดฎเตเด•เตเด•เต เดฎเดพเดชเตเดชเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚. เด‡เดคเดฟเดจเต เดจเดจเตเดฆเดฟ, ISSP เดตเต†เด•เตเดฑเตเดฑเดฑเตเด•เดณเตเดŸเต† เด†เดฆเตเดฏเดคเตเดคเต† เดฎเต‚เดจเตเดจเต เดฌเดฟเดฑเตเดฑเตเด•เตพ เดจเดฎเตเด•เตเด•เต เดกเต€เด•เต‹เดกเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚:

  • 100 => "wrem"
  • 101 => โ€œrdmemโ€
  • 110 => "wrreg"
  • 111 => "rdreg"

เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, PSoC-เดฏเตเดฎเดพเดฏเตเดณเตเดณ เดจเต‡เดฐเดฟเดŸเตเดŸเตเดณเตเดณ เด†เดถเดฏเดตเดฟเดจเดฟเดฎเดฏเดคเตเดคเดฟเดฒเต‚เดŸเต† เดฎเดพเดคเตเดฐเดฎเต‡ เด“เตบ-เดšเดฟเดชเตเดชเต เดชเตเดฐเด•เตเดฐเดฟเดฏเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ เดงเดพเดฐเดฃ เดฒเดญเดฟเด•เตเด•เตเด•เดฏเตเดณเตเดณเต‚.

5.3 เดชเดฟเดŽเดธเตเด’เดธเดฟเดฏเตเดฎเดพเดฏเดฟ เด†เดถเดฏเดตเดฟเดจเดฟเดฎเดฏเด‚

เดกเดฟเตผเด•เตเด•เต เดชเต†เดŸเตเดฐเต—เดŸเตเดŸเตเดธเตเด•เดฟ เด‡เดคเดฟเดจเด•เด‚ เด‰เดณเตเดณเดคเดฟเดจเดพเตฝ เดชเต‹เตผเดŸเตเดŸเต เดšเต†เดฏเตเดคเต Arduino-เดฒเต† เดธเตˆเดชเตเดฐเดธเดฟเดจเตเดฑเต† HSSP เด•เต‹เดกเต, เด•เต€เดฌเต‹เตผเดกเต เดฌเต‹เตผเดกเดฟเดจเตเดฑเต† ISSP เด•เดฃเด•เตเดฑเตเดฑเดฑเดฟเดฒเต‡เด•เตเด•เต เด•เดฃเด•เตเดฑเตเดฑเตเดšเต†เดฏเตเดฏเดพเตป เดžเดพเตป Arduino Uno เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต.

เดŽเดจเตเดฑเต† เด—เดตเต‡เดทเดฃเดคเตเดคเดฟเดจเดฟเดŸเดฏเดฟเตฝ, เดžเดพเตป เดกเดฟเตผเด•เตเด•เดฟเดจเตเดฑเต† เด•เต‹เดกเต เด…เตฝเดชเตเดชเด‚ เดฎเดพเดฑเตเดฑเดฟ. เดจเดฟเด™เตเด™เตพเด•เตเด•เต GitHub-เตฝ เดŽเดจเตเดฑเต† เดชเดฐเดฟเดทเตโ€Œเด•เตเด•เดฐเดฃเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเดพเดจเดพเด•เตเด‚: เด‡เดตเดฟเดŸเต† เด†เตผเดกเตเดตเดฟเดจเต‹เดฏเตเดฎเดพเดฏเดฟ เด†เดถเดฏเดตเดฟเดจเดฟเดฎเดฏเด‚ เดจเดŸเดคเตเดคเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด…เดจเตเดฌเดจเตเดง เดชเตˆเดคเตเดคเตบ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด‚ เดŽเดจเตเดฑเต† เดถเต‡เด–เดฐเดคเตเดคเดฟเตฝ cypress_psoc_tools.

เด…เดคเดฟเดจเดพเตฝ, Arduino เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต, เดžเดพเตป เด†เดฆเตเดฏเด‚ "เด†เดถเดฏเดตเดฟเดจเดฟเดฎเดฏ"เดคเตเดคเดฟเดจเดพเดฏเดฟ "เด”เดฆเตเดฏเต‹เด—เดฟเด•" เดตเต†เด•เตเดฑเตเดฑเดฑเตเด•เตพ เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดคเต. VERIFY เด•เดฎเดพเตปเดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดžเดพเตป เด‡เดจเตเดฑเต‡เดฃเตฝ เดฑเต‹เด‚ เดตเดพเดฏเดฟเด•เตเด•เดพเตป เดถเตเดฐเดฎเดฟเดšเตเดšเต. เดชเตเดฐเดคเต€เด•เตเดทเดฟเดšเตเดšเดคเตเดชเต‹เดฒเต†, เดŽเดจเดฟเด•เตเด•เต เด‡เดคเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดžเตเดžเดฟเดฒเตเดฒ. เดซเตเดฒเดพเดทเต เดกเตเดฐเตˆเดตเดฟเดจเตเดณเตเดณเดฟเตฝ เดฑเต€เดกเต เดชเตเดฐเตŠเดŸเตเดŸเด•เตเดทเตป เดฌเดฟเดฑเตเดฑเตเด•เตพ เดธเดœเต€เดตเดฎเดพเด•เตเด•เดฟเดฏเดคเดฟเดจเดพเดฒเดพเด•เดพเด‚.

เดชเดฟเดจเตเดจเต€เดŸเต เดฎเต†เดฎเตเดฎเดฑเดฟ/เดฐเดœเดฟเดธเตโ€Œเดฑเตเดฑเดฑเตเด•เตพ เดŽเดดเตเดคเตเดจเตเดจเดคเดฟเดจเตเด‚ เดตเดพเดฏเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฎเดพเดฏเดฟ เดžเดพเตป เดŽเดจเตเดฑเต† เดธเตเดตเดจเตเดคเด‚ เดฒเดณเดฟเดคเดฎเดพเดฏ เดตเต†เด•เตโ€ŒเดŸเดฑเตเด•เตพ เดธเตƒเดทเตโ€ŒเดŸเดฟเดšเตเดšเต. เดซเตเดฒเดพเดทเต เดกเตเดฐเตˆเดตเต เดชเดฐเดฟเดฐเด•เตเดทเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เด™เตเด•เดฟเดฒเตเด‚ เดจเดฎเตเด•เตเด•เต เดฎเตเดดเตเดตเตป SROM เดตเดพเดฏเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเดฎเต†เดจเตเดจเดคเต เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด•!

5.4 เด“เตบ-เดšเดฟเดชเตเดชเต เดฐเดœเดฟเดธเตเดฑเตเดฑเดฑเตเด•เดณเตเดŸเต† เดเดกเดจเตเดฑเดฟเดซเดฟเด•เตเด•เต‡เดทเตป

"เดกเดฟเดธเตเด…เดธเด‚เดฌเตเดฒเดฟเด‚เด—เต เดšเต†เดฏเตเดค" เดตเต†เด•เตเดฑเตเดฑเดฑเตเด•เตพ เดจเต‹เด•เตเด•เดฟเดฏ เดถเต‡เดทเด‚, เดชเดฐเดฟเดฐเด•เตเดทเดฏเต† เดฎเดฑเดฟเด•เดŸเดจเตเดจเต เดจเต‡เดฐเดฟเดŸเตเดŸเต เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจ M0C เด’เดชเตโ€Œเด•เต‹เดกเตเด•เตพ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด‰เดชเด•เดฐเดฃเด‚ เดฐเต‡เด–เดชเตเดชเต†เดŸเตเดคเตเดคเดพเดคเตเดค เดฐเดœเดฟเดธเตเดฑเตเดฑเดฑเตเด•เตพ (8xF0-8xFA) เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเตเดฃเตเดŸเต†เดจเตเดจเต เดžเดพเตป เด•เดฃเตเดŸเต†เดคเตเดคเดฟ. "ADD", "MOV A, X", "PUSH" เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ "JMP" เดŽเดจเตเดจเดฟเด™เตเด™เดจเต† เดตเดฟเดตเดฟเดง เด’เดชเตโ€Œเด•เต‹เดกเตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เด‡เดคเต เดŽเดจเตเดจเต† เด…เดจเตเดตเดฆเดฟเดšเตเดšเต. เด…เดตเตผเด•เตเด•เต เดจเดจเตเดฆเดฟ (เด…เดตเตผ เดฐเดœเดฟเดธเตเดฑเตเดฑเดฑเตเด•เดณเดฟเตฝ เด‰เดฃเตเดŸเดพเด•เตเด•เตเดจเตเดจ เดชเดพเตผเดถเตเดตเดซเดฒเด™เตเด™เตพ เดจเต‹เด•เตเด•เตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต†) เดฐเต‡เด–เดชเตเดชเต†เดŸเตเดคเตเดคเดพเดคเตเดค เดฐเดœเดฟเดธเตเดฑเตเดฑเดฑเตเด•เดณเดฟเตฝ เดเดคเตŠเด•เตเด•เต†เดฏเดพเดฃเต เดฏเดฅเดพเตผเดคเตเดฅ เดฐเดœเดฟเดธเตเดฑเตเดฑเดฑเตเด•เดณเต†เดจเตเดจเต เดจเดฟเตผเดฃเตเดฃเดฏเดฟเด•เตเด•เดพเตป เดŽเดจเดฟเด•เตเด•เต เด•เดดเดฟเดžเตเดžเต (A, X, SP, PC).

เดคเตฝเดซเดฒเดฎเดพเดฏเดฟ, HSSP_disas.rb เดŸเต‚เตพ เดธเตƒเดทเตโ€ŒเดŸเดฟเดšเตเดš โ€œเดกเดฟเดธเด‚เดฌเตเดฒเดฟเด‚เด—เต เดšเต†เดฏเตโ€Œเดคโ€ เด•เต‹เดกเต เด‡เดคเตเดชเต‹เดฒเต† เด•เดพเดฃเดชเตเดชเต†เดŸเตเดจเตเดจเต (เดตเตเดฏเด•เตเดคเดคเดฏเตเด•เตเด•เดพเดฏเดฟ เดžเดพเตป เด…เดญเดฟเดชเตเดฐเดพเดฏเด™เตเด™เตพ เดšเต‡เตผเดคเตเดคเต):

--== init2 ==--
[DE E0 1C] wrreg CPU_F (f7), 0x00   # ัะฑั€ะพั ั„ะปะฐะณะพะฒ
[DE C0 1C] wrreg SP (f6), 0x00      # ัะฑั€ะพั SP
[9F 07 5C] wrmem KEY1, 0x3A     # ะพะฑัะทะฐั‚ะตะปัŒะฝั‹ะน ะฐั€ะณัƒะผะตะฝั‚ ะดะปั SSC
[9F 20 7C] wrmem KEY2, 0x03     # ะฐะฝะฐะปะพะณะธั‡ะฝะพ
[DE A0 1C] wrreg PCh (f5), 0x00     # ัะฑั€ะพั PC (MSB) ...
[DE 80 7C] wrreg PCl (f4), 0x03     # (LSB) ... ะดะพ 3 ??
[9F 70 1C] wrmem POINTER, 0x80      # RAM-ัƒะบะฐะทะฐั‚ะตะปัŒ ะดะปั ะฒั‹ั…ะพะดะฝั‹ั… ะดะฐะฝะฝั‹ั…
[DF 26 1C] wrreg opc1 (f9), 0x30        # ะžะฟะบะพะด 1 => "HALT"
[DF 48 1C] wrreg opc2 (fa), 0x40        # ะžะฟะบะพะด 2 => "NOP"
[9F 40 3C] wrmem BLOCKID, 0x01  # BLOCK ID ะดะปั ะฒั‹ะทะพะฒะฐ SSC
[DE 00 DC] wrreg A (f0), 0x06       # ะฝะพะผะตั€ "Syscall" : TableRead
[DF 00 1C] wrreg opc0 (f8), 0x00        # ะžะฟะบะพะด ะดะปั SSC, "Supervisory SROM Call"
[DF E2 5C] wrreg CPU_SCR0 (ff), 0x12    # ะะตะดะพะบัƒะผะผะตะฝั‚ะธั€ะพะฒะฐะฝะฝะฐั ะพะฟะตั€ะฐั†ะธั: ะฒั‹ะฟะพะปะฝะธั‚ัŒ ะฒะฝะตัˆะฝะธะน ะพะฟะบะพะด

5.5 เดธเตเดฐเด•เตเดทเดพ เดฌเดฟเดฑเตเดฑเตเด•เตพ

เดˆ เด˜เดŸเตเดŸเดคเตเดคเดฟเตฝ เดŽเดจเดฟเด•เตเด•เต เด‡เดคเดฟเดจเด•เด‚ เดคเดจเตเดจเต† PSoC เดฏเตเดฎเดพเดฏเดฟ เด†เดถเดฏเดตเดฟเดจเดฟเดฎเดฏเด‚ เดจเดŸเดคเตเดคเดพเตป เด•เดดเดฟเดฏเตเด‚, เดŽเดจเตเดจเดพเตฝ เดซเตเดฒเดพเดทเต เดกเตเดฐเตˆเดตเดฟเดจเตเดฑเต† เดธเตเดฐเด•เตเดทเดพ เดฌเดฟเดฑเตเดฑเตเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดถเตเดตเดธเดจเต€เดฏเดฎเดพเดฏ เดตเดฟเดตเดฐเด™เตเด™เตพ เด‡เดชเตเดชเต‹เดดเตเด‚ เดŽเดจเดฟเด•เตเด•เดฟเดฒเตเดฒ. เดธเด‚เดฐเด•เตเดทเดฃเด‚ เดธเดœเต€เดตเดฎเดพเด•เตเด•เดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต‹ เดŽเดจเตเดจเต เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดพเตป เดธเตˆเดชเตเดฐเดธเต เด‰เดชเด•เดฐเดฃเดคเตเดคเดฟเดจเตเดฑเต† เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเต เด’เดฐเต เดฎเดพเตผเด—เดตเตเด‚ เดจเตฝเด•เตเดจเตเดจเดฟเดฒเตเดฒ เดŽเดจเตเดจ เดตเดธเตเดคเตเดค เดŽเดจเตเดจเต† เดตเดณเดฐเต† เด†เดถเตเดšเดฐเตเดฏเดชเตเดชเต†เดŸเตเดคเตเดคเดฟ. เดธเตˆเดชเตเดฐเดธเต เดจเตฝเด•เดฟเดฏ เดŽเดšเตเดšเตเดŽเดธเตเดŽเดธเตเดชเดฟ เด•เต‹เดกเต เดกเดฟเตผเด•เตเด•เต เดคเดจเตเดฑเต† เดชเดฐเดฟเดทเตโ€Œเด•เตเด•เดฐเดฃเด‚ เดชเตเดฑเดคเตเดคเดฟเดฑเด•เตเด•เดฟเดฏเดคเดฟเดจเต เดถเต‡เดทเด‚ เด…เดชเตโ€Œเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตโ€Œเดคเตเดตเต†เดจเตเดจเต เดฎเดจเดธเดฟเดฒเดพเด•เตเด•เดพเตป เดžเดพเตป เด—เต‚เด—เดฟเดณเดฟเดฒเต‡เด•เตเด•เต เด†เดดเดคเตเดคเดฟเตฝ เด•เตเดดเดฟเดšเตเดšเต. เด…เดคเตเด•เต†เดพเดฃเตเดŸเต! เดˆ เดชเตเดคเดฟเดฏ เดตเต†เด•เตเดฑเตเดฑเตผ เดชเตเดฐเดคเตเดฏเด•เตเดทเดชเตเดชเต†เดŸเตเดŸเต:

[DE E0 1C] wrreg CPU_F (f7), 0x00
[DE C0 1C] wrreg SP (f6), 0x00
[9F 07 5C] wrmem KEY1, 0x3A
[9F 20 7C] wrmem KEY2, 0x03
[9F A0 1C] wrmem 0xFD, 0x00 # ะฝะตะธะทะฒะตัั‚ะฝั‹ะต ะฐั€ะณัƒะผะตะฝั‚ั‹
[9F E0 1C] wrmem 0xFF, 0x00 # ะฐะฝะฐะปะพะณะธั‡ะฝะพ
[DE A0 1C] wrreg PCh (f5), 0x00
[DE 80 7C] wrreg PCl (f4), 0x03
[9F 70 1C] wrmem POINTER, 0x80
[DF 26 1C] wrreg opc1 (f9), 0x30
[DF 48 1C] wrreg opc2 (fa), 0x40
[DE 02 1C] wrreg A (f0), 0x10   # ะฝะตะดะพะบัƒะผะตะฝั‚ะธั€ะพะฒะฐะฝะฝั‹ะน syscall !
[DF 00 1C] wrreg opc0 (f8), 0x00
[DF E2 5C] wrreg CPU_SCR0 (ff), 0x12

เดˆ เดตเต†เด•เตเดฑเตเดฑเตผ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต (psoc.py-เดฏเดฟเดฒเต† read_security_data เด•เดพเดฃเตเด•), 0x80-เตฝ SRAM-เตฝ เดจเดฎเตเด•เตเด•เต เดŽเดฒเตเดฒเดพ เดธเต†เด•เตเดฏเต‚เดฐเดฟเดฑเตเดฑเดฟ เดฌเดฟเดฑเตเดฑเตเด•เดณเตเด‚ เดฒเดญเดฟเด•เตเด•เตเด‚, เด‡เดตเดฟเดŸเต† เด’เดฐเต เดธเด‚เดฐเด•เตเดทเดฟเดค เดฌเตเดฒเต‹เด•เตเด•เดฟเดจเต เดฐเดฃเตเดŸเต เดฌเดฟเดฑเตเดฑเตเด•เตพ เด‰เดฃเตเดŸเต.

เดซเดฒเด‚ เดจเดฟเดฐเดพเดถเดพเดœเดจเด•เดฎเดพเดฃเต: เดŽเดฒเตเดฒเดพเด‚ "เดฌเดพเดนเตเดฏ เดตเดพเดฏเดจเดฏเตเด‚ เดŽเดดเตเดคเตเดคเตเด‚ เด…เดชเตเดฐเดพเดชเตเดคเดฎเดพเด•เตเด•เตเด•" เดฎเต‹เดกเดฟเตฝ เดชเดฐเดฟเดฐเด•เตเดทเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เด…เดคเดฟเดจเดพเตฝ, เดžเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เดซเตเดฒเดพเดทเต เดกเตเดฐเตˆเดตเดฟเตฝ เดจเดฟเดจเตเดจเต เด’เดจเตเดจเตเด‚ เดตเดพเดฏเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒเต†เดจเตเดจเต เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ, เดžเด™เตเด™เตพเด•เตเด•เต เด’เดจเตเดจเตเด‚ เดŽเดดเตเดคเดพเดจเตเด‚ เด•เดดเดฟเดฏเดฟเดฒเตเดฒ (เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด…เดตเดฟเดŸเต† เด’เดฐเต เดฑเต‹เด‚ เดกเดฎเตเดชเตผ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเดพเตป). เดธเด‚เดฐเด•เตเดทเดฃเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเด•เตเด•เดพเดจเตเดณเตเดณ เดเด• เดฎเดพเตผเด—เด‚ เดฎเตเดดเตเดตเตป เดšเดฟเดชเตเดชเตเด‚ เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เดฎเดพเดฏเตเด•เตเด•เตเด• เดŽเดจเตเดจเดคเดพเดฃเต. ๐Ÿ™

6. เด†เดฆเตเดฏ (เดชเดฐเดพเดœเดฏเดชเตเดชเต†เดŸเตเดŸ) เด†เด•เตเดฐเดฎเดฃเด‚: ROMX

เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดจเดฎเตเด•เตเด•เต เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดŸเตเดฐเดฟเด•เตเด•เต เดชเดฐเต€เด•เตเดทเดฟเด•เตเด•เดพเด‚: เด…เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเดคเดฎเดพเดฏ เด’เดชเตโ€Œเด•เต‹เดกเตเด•เตพ เดŽเด•เตโ€Œเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเต เด‰เดณเตเดณเดคเดฟเดจเดพเตฝ, เดซเตเดฒเดพเดทเต เดฎเต†เดฎเตเดฎเดฑเดฟ เดตเดพเดฏเดฟเด•เตเด•เดพเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ ROMX เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเต เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเดฐเตเดคเต? เดˆ เดธเดฎเต€เดชเดจเดคเตเดคเดฟเดจเต เดจเดฒเตเดฒ เดตเดฟเดœเดฏเดธเดพเดงเตเดฏเดคเดฏเตเดฃเตเดŸเต. เด•เดพเดฐเดฃเด‚, SROM-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดกเดพเดฑเตเดฑ เดตเดพเดฏเดฟเด•เตเด•เตเดจเตเดจ เดฑเต€เดกเตเดฌเตเดฒเต‹เด•เตเด•เต เดซเด‚เด—เตเดทเตป (เด‡เดคเต เดตเต†เด•เตโ€ŒเดŸเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต) เด…เดคเต ISSP-เดฏเดฟเตฝ เดจเดฟเดจเตเดจเดพเดฃเต‹ เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเดคเต†เดจเตเดจเต เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจเต. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, ROMX เด’เดชเตโ€Œเด•เต‹เดกเดฟเดจเต เด…เดคเตเดคเดฐเดฎเตŠเดฐเต เดชเดฐเดฟเดถเต‹เดงเดจ เด‰เดฃเตเดŸเดพเด•เดฃเดฎเต†เดจเตเดจเดฟเดฒเตเดฒ. เด…เดคเดฟเดจเดพเตฝ เด‡เดคเดพ เดชเตˆเดคเตเดคเตบ เด•เต‹เดกเต (เด†เตผเดกเตเดตเดฟเดจเต‹ เด•เต‹เดกเดฟเดฒเต‡เด•เตเด•เต เด•เตเดฑเดšเตเดšเต เดนเต†เตฝเดชเตเดชเตผ เด•เตเดฒเดพเดธเตเด•เตพ เดšเต‡เตผเดคเตเดคเดคเดฟเดจเต เดถเต‡เดทเด‚):

for i in range(0, 8192):
    write_reg(0xF0, i>>8)       # A = 0
    write_reg(0xF3, i&0xFF)     # X = 0
    exec_opcodes("x28x30x40")    # ROMX, HALT, NOP
    byte = read_reg(0xF0)       # ROMX reads ROM[A|X] into A
    print "%02x" % ord(byte[0]) # print ROM byte

เดจเดฟเตผเดญเดพเด—เตเดฏเดตเดถเดพเตฝ เดˆ เด•เต‹เดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ. ๐Ÿ™ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด…เดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต, เดชเด•เตเดทเต‡ เด”เดŸเตเดŸเตโ€ŒเดชเตเดŸเตเดŸเดฟเตฝ (0x28 0x30 0x40) เดžเด™เตเด™เตพเด•เตเด•เต เดžเด™เตเด™เดณเตเดŸเต† เดธเตเดตเดจเตเดคเด‚ เด’เดชเตโ€Œเด•เต‹เดกเตเด•เตพ เดฒเดญเดฟเด•เตเด•เตเด‚! เด‰เดชเด•เดฐเดฃเดคเตเดคเดฟเดจเตเดฑเต† เด…เดจเตเดฌเดจเตเดง เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เดตเดพเดฏเดจ เดชเดฐเดฟเดฐเด•เตเดทเดฏเตเดŸเต† เด’เดฐเต เด˜เดŸเด•เดฎเดพเดฃเต†เดจเตเดจเต เดžเดพเตป เด•เดฐเตเดคเตเดจเตเดจเดฟเดฒเตเดฒ. เด‡เดคเตŠเดฐเต เดŽเดžเตเดšเดฟเดจเต€เดฏเดฑเดฟเด‚เด—เต เดŸเตเดฐเดฟเด•เตเด•เต เดชเต‹เดฒเต†เดฏเดพเดฃเต: เดฌเดพเดนเตเดฏ เด’เดชเตโ€Œเด•เต‹เดกเตเด•เตพ เดŽเด•เตโ€Œเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ, เดฑเต‹เด‚ เดฌเดธเต เด’เดฐเต เดคเดพเตฝเด•เตเด•เดพเดฒเดฟเด• เดฌเดซเดฑเดฟเดฒเต‡เด•เตเด•เต เดฑเต€เดกเดฏเดฑเด•เตโ€ŒเดŸเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

7. เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต† เด†เด•เตเดฐเดฎเดฃเด‚: เด•เต‹เตพเดกเต เดฌเต‚เดŸเตเดŸเต เดŸเตเดฐเต‡เดธเดฟเด‚เด—เต

ROMX เดŸเตเดฐเดฟเด•เตเด•เต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเดคเตเดคเดคเดฟเดจเดพเตฝ, เดˆ เดŸเตเดฐเดฟเด•เตเด•เดฟเดจเตเดฑเต† เดฎเดฑเตเดฑเตŠเดฐเต เดตเตเดฏเดคเดฟเดฏเดพเดจเดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดžเดพเตป เดšเดฟเดจเตเดคเดฟเด•เตเด•เดพเตป เดคเตเดŸเด™เตเด™เดฟ - เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฃเดคเตเดคเดฟเตฝ เดตเดฟเดตเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต "เด’เดฐเต เดฎเตˆเด•เตเดฐเต‹เด•เตบเดŸเตเดฐเต‹เดณเดฑเดฟเดจเตเดฑเต† เดซเต‡เด‚เดตเต†เดฏเตผ เดชเดฐเดฟเดฐเด•เตเดทเดฏเดฟเตฝ เดตเดณเดฐเต†เดฏเดงเดฟเด•เด‚ เดตเต†เดณเดฟเดšเตเดšเด‚ เดตเต€เดถเตเดจเตเดจเต".

7.1. เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตฝ

ISSP เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเตป CHECKSUM-SETUP-เดจเดพเดฏเดฟ เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดตเต†เด•เตเดฑเตเดฑเตผ เดจเตฝเด•เตเดจเตเดจเต:

[DE E0 1C] wrreg CPU_F (f7), 0x00
[DE C0 1C] wrreg SP (f6), 0x00
[9F 07 5C] wrmem KEY1, 0x3A
[9F 20 7C] wrmem KEY2, 0x03
[DE A0 1C] wrreg PCh (f5), 0x00
[DE 80 7C] wrreg PCl (f4), 0x03
[9F 70 1C] wrmem POINTER, 0x80
[DF 26 1C] wrreg opc1 (f9), 0x30
[DF 48 1C] wrreg opc2 (fa), 0x40
[9F 40 1C] wrmem BLOCKID, 0x00
[DE 00 FC] wrreg A (f0), 0x07
[DF 00 1C] wrreg opc0 (f8), 0x00
[DF E2 5C] wrreg CPU_SCR0 (ff), 0x12

เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเดจเดฟเตฝ (เด‡เดฑเตเดฑเดพเดฒเดฟเด•เตเดธเต เดฎเตˆเตป) เด…เดตเดคเดฐเดฟเดชเตเดชเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเตเดชเต‹เดฒเต† เด‡เดคเต SROM เดซเด‚เด—เตโ€Œเดทเดจเต† 0x07 เดŽเดจเตเดจเต เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเต:

เดˆ เดซเด‚เด—เตโ€Œเดทเตป เดšเต†เด•เตเด•เตโ€Œเดธเด‚ เดธเตเดฅเดฟเดฐเต€เด•เดฐเดฃเด‚. เดชเต‚เดœเตเดฏเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดซเตเดฒเดพเดทเต เดฌเดพเด™เตเด•เดฟเดฒเต† เด‰เดชเดฏเต‹เด•เตเดคเตƒ-เดจเดฟเตผเดฆเดฟเดทเตเดŸ เดฌเตเดฒเต‹เด•เตเด•เตเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเดคเตเดคเดฟเดจเตเดฑเต† 16-เดฌเดฟเดฑเตเดฑเต เดšเต†เด•เตเด•เตเดธเด‚ เด‡เดคเต เด•เดฃเด•เตเด•เดพเด•เตเด•เตเดจเตเดจเต. เดšเต†เด•เตเด•เตเดธเด‚ เด•เดฃเด•เตเด•เดพเด•เตเด•เตเดฎเตเดชเต‹เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เต‡เดฃเตเดŸ เดฌเตเดฒเต‹เด•เตเด•เตเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚ เด•เตˆเดฎเดพเดฑเดพเตป BLOCKID เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. "1" เดจเตเดฑเต† เดฎเต‚เดฒเตเดฏเด‚ เดฌเตเดฒเต‹เด•เตเด•เต เดชเต‚เดœเตเดฏเดคเตเดคเดฟเดจเดพเดฏเตเดณเตเดณ เดšเต†เด•เตเด•เตเดธเด‚ เดฎเดพเดคเตเดฐเดฎเต‡ เด•เดฃเด•เตเด•เดพเด•เตเด•เต‚; เด…เดคเต‡เดธเดฎเดฏเด‚ เดซเตเดฒเดพเดทเต เดฌเดพเด™เตเด•เดฟเดจเตเดฑเต† เดŽเดฒเตเดฒเดพ 0 เดฌเตเดฒเต‹เด•เตเด•เตเด•เดณเตเดŸเต†เดฏเตเด‚ เด†เด•เต† เดšเต†เด•เตเด•เตเดธเด‚ เด•เดฃเด•เตเด•เดพเด•เตเด•เดพเตป "256" เด•เดพเดฐเดฃเดฎเดพเด•เตเด‚. 16-เดฌเดฟเดฑเตเดฑเต เดšเต†เด•เตเด•เตเดธเด‚ KEY1, KEY2 เดŽเดจเตเดจเดฟเดต เดตเดดเดฟ เดคเดฟเดฐเดฟเด•เต† เดจเตฝเด•เตเดจเตเดจเต. KEY1 เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ เดšเต†เด•เตเด•เตโ€Œเดธเดคเตเดคเดฟเดจเตเดฑเต† เดฒเต‹-เด“เตผเดกเตผ 8 เดฌเดฟเดฑเตเดฑเตเด•เดณเตเด‚ KEY2 เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ เด‰เดฏเตผเดจเตเดจ เด“เตผเดกเตผ 8 เดฌเดฟเดฑเตเดฑเตเด•เดณเตเด‚ เดธเด‚เดญเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดจเดฟเดฐเดตเดงเดฟ เดซเตเดฒเดพเดทเต เดฌเดพเด™เตเด•เตเด•เดณเตเดณเตเดณ เด‰เดชเด•เดฐเดฃเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ, เดšเต†เด•เตเด•เตเดธเด‚ เดซเด‚เด—เตเดทเตป เด“เดฐเต‹เดจเตเดจเดฟเดจเตเด‚ เดชเตเดฐเดคเตเดฏเต‡เด•เด‚ เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเต. FLS_PR1 เดฐเดœเดฟเดธเตเดฑเตเดฑเดฑเดพเดฃเต เด‡เดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เดฌเดพเด™เตเด•เต เดจเดฎเตเดชเตผ เดธเดœเตเดœเต€เด•เดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต (เดŸเดพเตผเด—เต†เดฑเตเดฑเต เดซเตเดฒเดพเดทเต เดฌเดพเด™เตเด•เตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸ เดฌเดฟเดฑเตเดฑเต เดธเดœเตเดœเต€เด•เดฐเดฟเดšเตเดšเต).

เด‡เดคเตŠเดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดšเต†เด•เตเด•เตเดธเด‚ เด†เดฃเต†เดจเตเดจเต เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด•: เดฌเตˆเดฑเตเดฑเตเด•เตพ เด’เดจเตเดจเดฟเดจเตเดชเตเดฑเด•เต† เด’เดจเตเดจเดพเดฏเดฟ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต; เดซเดพเตปเดธเดฟ CRC เดตเตˆเดšเดฟเดคเตเดฐเตเดฏเด™เตเด™เดณเตŠเดจเตเดจเตเดฎเดฟเดฒเตเดฒ. เด•เต‚เดŸเดพเดคเต†, M8C เด•เต‹เดฑเดฟเดจเต เดตเดณเดฐเต† เดšเต†เดฑเดฟเดฏ เดฐเดœเดฟเดธเตเดฑเตเดฑเดฑเตเด•เตพ เด‰เดฃเตเดŸเต†เดจเตเดจเต เด…เดฑเดฟเดžเตเดžเตเด•เตŠเดฃเตเดŸเต, เดšเต†เด•เตเด•เตเดธเด‚ เด•เดฃเด•เตเด•เดพเด•เตเด•เตเดฎเตเดชเต‹เตพ, เด‡เดจเตเดฑเตผเดฎเต€เดกเดฟเดฏเดฑเตเดฑเต เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ เด…เดคเต‡ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เดณเดฟเตฝ เดฐเต‡เด–เดชเตเดชเต†เดŸเตเดคเตเดคเตเดฎเต†เดจเตเดจเต เดžเดพเตป เด…เดจเตเดฎเดพเดจเดฟเดšเตเดšเต, เด…เดคเต เด†เดคเตเดฏเดจเตเดคเดฟเด•เดฎเดพเดฏเดฟ เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เด•เตเด‚: KEY1 (0xF8) / KEY2 ( 0xF9).

เด…เดคเดฟเดจเดพเตฝ เดธเดฟเดฆเตเดงเดพเดจเตเดคเดคเตเดคเดฟเตฝ เดŽเดจเตเดฑเต† เด†เด•เตเดฐเดฎเดฃเด‚ เด‡เดคเตเดชเต‹เดฒเต† เด•เดพเดฃเดชเตเดชเต†เดŸเตเดจเตเดจเต:

  1. เดžเด™เตเด™เตพ ISSP เดตเดดเดฟ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต.
  2. CHECKSUM-SETUP เดตเต†เด•เตเดฑเตเดฑเตผ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดžเด™เตเด™เตพ เดšเต†เด•เตเด•เตเดธเด‚ เด•เดฃเด•เตเด•เตเด•เต‚เดŸเตเดŸเตฝ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเต.
  3. เด’เดฐเต เดจเดฟเดถเตเดšเดฟเดค เดธเดฎเดฏเดคเตเดคเดฟเดจเต เดถเต‡เดทเด‚ เดžเด™เตเด™เตพ เดชเตเดฐเต‹เดธเดธเตผ เดฑเต€เดฌเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต เดŸเดฟ.
  4. เดจเดฟเดฒเดตเดฟเดฒเต† เดšเต†เด•เตเด•เตเดธเด‚ เดธเดฟ เดฒเดญเดฟเด•เตเด•เดพเตป เดžเด™เตเด™เตพ เดฑเดพเด‚ เดตเดพเดฏเดฟเด•เตเด•เตเดจเตเดจเต.
  5. 3, 4 เด˜เดŸเตเดŸเด™เตเด™เตพ เด†เดตเตผเดคเตเดคเดฟเด•เตเด•เตเด•, เด“เดฐเต‹ เดคเดตเดฃเดฏเตเด‚ T เด•เตเดฑเดšเตเดšเต เดตเตผเดฆเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเด•.
  6. เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดฎเตเดฎเตเดชเดคเตเดคเต† เดšเต†เด•เตเด•เตเดธเด‚ เดธเดฟ เด•เตเดฑเดšเตเดšเตเด•เตŠเดฃเตเดŸเต เดžเด™เตเด™เตพ เด’เดฐเต เดซเตเดฒเดพเดทเต เดกเตเดฐเตˆเดตเดฟเตฝ เดจเดฟเดจเตเดจเต เดกเดพเดฑเตเดฑ เดตเต€เดฃเตเดŸเต†เดŸเตเด•เตเด•เตเดจเตเดจเต.

เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เด’เดฐเต เดชเตเดฐเดถเตเดจเดฎเตเดฃเตเดŸเต: เดฑเต€เดฌเต‚เดŸเตเดŸเดฟเดจเต เดถเต‡เดทเด‚ เดจเดฎเตเดฎเตพ เด…เดฏเดฏเตโ€Œเด•เตเด•เต‡เดฃเตเดŸ Initialize-1 เดตเต†เด•เตเดฑเตเดฑเตผ KEY1, KEY2 เดŽเดจเตเดจเดฟเดต เดชเตเดจเดฐเดพเดฒเต‡เด–เดจเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต:

1100101000000000000000  # ะœะฐะณะธั, ะฟะตั€ะตะฒะพะดัั‰ะฐั PSoC ะฒ ั€ะตะถะธะผ ะฟั€ะพะณั€ะฐะผะผะธั€ะพะฒะฐะฝะธั
nop
nop
nop
nop
nop
[DE E0 1C] wrreg CPU_F (f7), 0x00
[DE C0 1C] wrreg SP (f6), 0x00
[9F 07 5C] wrmem KEY1, 0x3A # ะบะพะฝั‚ั€ะพะปัŒะฝะฐั ััƒะผะผะฐ ะฟะตั€ะตะทะฐะฟะธัั‹ะฒะฐะตั‚ัั ะทะดะตััŒ
[9F 20 7C] wrmem KEY2, 0x03 # ะธ ะทะดะตััŒ
[DE A0 1C] wrreg PCh (f5), 0x00
[DE 80 7C] wrreg PCl (f4), 0x03
[9F 70 1C] wrmem POINTER, 0x80
[DF 26 1C] wrreg opc1 (f9), 0x30
[DF 48 1C] wrreg opc2 (fa), 0x40
[DE 01 3C] wrreg A (f0), 0x09   # SROM-ั„ัƒะฝะบั†ะธั 9
[DF 00 1C] wrreg opc0 (f8), 0x00    # SSC
[DF E2 5C] wrreg CPU_SCR0 (ff), 0x12

เดˆ เด•เต‹เดกเต เด•เดพเดฒเดฟเดฌเตเดฐเต‡เดฑเตเดฑเต1 (SROM เดซเด‚เด—เตโ€Œเดทเตป 9) เดŽเดจเตเดจเต เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต† เดžเด™เตเด™เดณเตเดŸเต† เดตเดฟเดฒเดฏเต‡เดฑเดฟเดฏ เดšเต†เด•เตเด•เตโ€Œเดธเด‚ เดชเตเดจเดฐเดพเดฒเต‡เด–เดจเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต... เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เดฎเต‹เดกเดฟเตฝ เดชเตเดฐเดตเต‡เดถเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดจเดฎเตเด•เตเด•เต เดฎเดพเดœเดฟเด•เต เดจเดฎเตเดชเตผ (เดฎเตเด•เดณเดฟเดฒเตเดณเตเดณ เด•เต‹เดกเดฟเดจเตเดฑเต† เดคเตเดŸเด•เตเด•เด‚ เดฎเตเดคเตฝ) เด…เดฏเดšเตเดšเต SRAM เดตเดพเดฏเดฟเด•เตเด•เดพเดจเดพเด•เตเดฎเต‹? เด…เดคเต†, เด…เดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต! เดˆ เด†เด•เตเดฐเดฎเดฃเด‚ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจ Arduino เด•เต‹เดกเต เดตเดณเดฐเต† เดฒเดณเดฟเดคเดฎเดพเดฃเต:

case Cmnd_STK_START_CSUM:
    checksum_delay = ((uint32_t)getch())<<24;
    checksum_delay |= ((uint32_t)getch())<<16;
    checksum_delay |= ((uint32_t)getch())<<8;
    checksum_delay |= getch();
    if(checksum_delay > 10000) {
        ms_delay = checksum_delay/1000;
        checksum_delay = checksum_delay%1000;
    }
    else {
        ms_delay = 0;
    }
    send_checksum_v();
    if(checksum_delay)
        delayMicroseconds(checksum_delay);
    delay(ms_delay);
    start_pmode();

  1. checkum_delay เดตเดพเดฏเดฟเด•เตเด•เตเด•.
  2. เดšเต†เด•เตเด•เตเดธเด‚ เด•เดฃเด•เตเด•เตเด•เต‚เดŸเตเดŸเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด• (send_checksum_v).
  3. เด’เดฐเต เดจเดฟเดถเตเดšเดฟเดค เด•เดพเดฒเดฏเดณเดตเดฟเดจเดพเดฏเดฟ เด•เดพเดคเตเดคเดฟเดฐเดฟเด•เตเด•เตเด•; เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดชเต‹เดฐเดพเดฏเตเดฎเด•เตพ เด•เดฃเด•เตเด•เดฟเดฒเต†เดŸเตเด•เตเด•เตเดจเตเดจเต:
    • เด…เดคเต เดŽเดจเตเดคเดพเดฃเต†เดจเตเดจเต เด•เดฃเตเดŸเต†เดคเตเดคเตเดจเตเดจเดคเต เดตเดฐเต† เดžเดพเตป เด’เดฐเตเดชเดพเดŸเต เดธเดฎเดฏเด‚ เดชเดพเดดเดพเด•เตเด•เดฟ เดฎเตˆเด•เตเดฐเต‹เดธเต†เด•เตเด•เตปเดกเต เดตเตˆเด•เตเด‚ 16383 ฮผs เด•เดตเดฟเดฏเดพเดคเตเดค เด•เดพเดฒเดคเดพเดฎเดธเดคเตเดคเต‹เดŸเต† เดฎเดพเดคเตเดฐเด‚ เดถเดฐเดฟเดฏเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต;
    • เดฎเตˆเด•เตเดฐเต‹เดธเต†เด•เตเด•เตปเดกเตเด•เดณเตเดŸเต† เด•เดพเดฒเดคเดพเดฎเดธเด‚, 0 เด’เดฐเต เด‡เตปเดชเตเดŸเตเดŸเดพเดฏเดฟ เด…เดคเดฟเดฒเต‡เด•เตเด•เต เดจเตฝเด•เดฟเดฏเดพเตฝ, เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เดคเต†เดฑเตเดฑเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเต เดžเดพเตป เด•เดฃเตเดŸเต†เดคเตเดคเตเดจเตเดจเดคเตเดตเดฐเต† เด…เดคเต‡ เดธเดฎเดฏเด‚ เดตเต€เดฃเตเดŸเตเด‚ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เดฟ!
  4. เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เดฎเต‹เดกเดฟเดฒเต‡เด•เตเด•เต PSoC เดฑเต€เดฌเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเด• (เด‡เดจเต€เดทเตเดฏเดฒเตˆเดธเต‡เดทเตป เดตเต†เด•เตเดฑเตเดฑเดฑเตเด•เตพ เด…เดฏเดฏเตเด•เตเด•เดพเดคเต† เดžเด™เตเด™เตพ เดฎเดพเดœเดฟเด•เต เดจเดฎเตเดชเตผ เด…เดฏเดฏเตเด•เตเด•เตเด•).

เดชเตˆเดคเตเดคเดฃเดฟเดฒเต† เด…เดตเดธเดพเดจ เด•เต‹เดกเต:

for delay in range(0, 150000):  # ะทะฐะดะตั€ะถะบะฐ ะฒ ะผะธะบั€ะพัะตะบัƒะฝะดะฐั…
    for i in range(0, 10):      # ะบะพะปะธั‡ะตัั‚ะฒะพ ัั‡ะธั‚ั‹ะฒะฐะฝะธั ะดะปั ะบะฐะถะดะพะนะธะท ะทะฐะดะตั€ะถะตะบ
        try:
            reset_psoc(quiet=True)  # ะฟะตั€ะตะทะฐะณั€ัƒะทะบะฐ ะธ ะฒั…ะพะด ะฒ ั€ะตะถะธะผ ะฟั€ะพะณั€ะฐะผะผะธั€ะพะฒะฐะฝะธั
            send_vectors()      # ะพั‚ะฟั€ะฐะฒะบะฐ ะธะฝะธั†ะธะฐะปะธะทะธั€ัƒัŽั‰ะธั… ะฒะตะบั‚ะพั€ะพะฒ
            ser.write("x85"+struct.pack(">I", delay)) # ะฒั‹ั‡ะธัะปะธั‚ัŒ ะบะพะฝั‚ั€ะพะปัŒะฝัƒัŽ ััƒะผะผัƒ + ะฟะตั€ะตะทะฐะณั€ัƒะทะธั‚ัŒัั ะฟะพัะปะต ะทะฐะดะตั€ะถะบะธ
            res = ser.read(1)       # ัั‡ะธั‚ะฐั‚ัŒ arduino ACK
        except Exception as e:
            print e
            ser.close()
            os.system("timeout -s KILL 1s picocom -b 115200 /dev/ttyACM0 2>&1 > /dev/null")
            ser = serial.Serial('/dev/ttyACM0', 115200, timeout=0.5) # ะพั‚ะบั€ั‹ั‚ัŒ ะฟะพัะปะตะดะพะฒะฐั‚ะตะปัŒะฝั‹ะน ะฟะพั€ั‚
            continue
        print "%05d %02X %02X %02X" % (delay,      # ัั‡ะธั‚ะฐั‚ัŒ RAM-ะฑะฐะนั‚ั‹
                read_regb(0xf1),
                read_ramb(0xf8),
                read_ramb(0xf9))

เดšเตเดฐเตเด•เตเด•เดคเตเดคเดฟเตฝ, เดˆ เด•เต‹เดกเต เดŽเดจเตเดคเดพเดฃเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต:

  1. PSoC เดฑเต€เดฌเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต (เด…เดคเตŠเดฐเต เดฎเดพเดœเดฟเด•เต เดจเดฎเตเดชเตผ เด…เดฏเดฏเตเด•เตเด•เตเดจเตเดจเต).
  2. เดชเต‚เตผเดฃเตเดฃ เด‡เดจเต€เดทเตเดฏเดฒเตˆเดธเต‡เดทเตป เดตเต†เด•เตเดฑเตเดฑเดฑเตเด•เตพ เด…เดฏเดฏเตเด•เตเด•เตเดจเตเดจเต.
  3. Arduino เดซเด‚เด—เตโ€Œเดทเดจเต† Cmnd_STK_START_CSUM (0x85) เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเต, เด‡เดตเดฟเดŸเต† เดฎเตˆเด•เตเดฐเต‹เดธเต†เด•เตเด•เตปเดกเตเด•เดณเดฟเดฒเต† เด•เดพเดฒเดคเดพเดฎเดธเด‚ เด’เดฐเต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเดพเดฏเดฟ เด•เตˆเดฎเดพเดฑเตเดจเตเดจเต.
  4. เดšเต†เด•เตเด•เตเดธเด‚ (0xF8, 0xF9) เดŽเดจเตเดจเดฟเดตเดฏเตเด‚ เดฐเต‡เด–เดชเตเดชเต†เดŸเตเดคเตเดคเดพเดคเตเดค เดฐเดœเดฟเดธเตเดฑเตเดฑเดฑเตเด‚ 0xF1 เดตเดพเดฏเดฟเด•เตเด•เตเดจเตเดจเต.

เดˆ เด•เต‹เดกเต 10 เดฎเตˆเด•เตเดฐเต‹เดธเต†เด•เตเด•เตปเดกเดฟเตฝ 1 เดคเดตเดฃ เดจเดฟเตผเดตเตเดตเดนเดฟเด•เตเด•เตเดจเตเดจเต. 0xF1 เด‡เดตเดฟเดŸเต† เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต, เด•เดพเดฐเดฃเด‚ เดšเต†เด•เตเด•เตเดธเด‚ เด•เดฃเด•เตเด•เดพเด•เตเด•เตเดฎเตเดชเต‹เตพ เดฎเดพเดฑเดฟเดฏ เด’เดฐเต‡เดฏเตŠเดฐเต เดฐเดœเดฟเดธเตเดฑเตเดฑเดฑเดพเดฃเดฟเดคเต. เด’เดฐเตเดชเด•เตเดทเต‡ เด‡เดคเต เด—เดฃเดฟเดค เดฒเต‹เดœเดฟเด•เต เดฏเต‚เดฃเดฟเดฑเตเดฑเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เดคเดพเตฝเด•เตเด•เดพเดฒเดฟเด• เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดพเดฏเดฟเดฐเดฟเด•เตเด•เดพเด‚. Arduino เดœเต€เดตเดจเตเดฑเต† เดฒเด•เตเดทเดฃเด™เตเด™เตพ เด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจเดคเต เดจเดฟเตผเดคเตเดคเตเดฎเตเดชเต‹เตพ Picocom เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต Arduino เดชเตเดจเดƒเดธเดœเตเดœเดฎเดพเด•เตเด•เดพเตป เดžเดพเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เดตเตƒเดคเตเดคเดฟเด•เต†เดŸเตเดŸ เดนเดพเด•เตเด•เต เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด• (เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเดพเดฃเต†เดจเตเดจเต เด…เดฑเดฟเดฏเดฟเดฒเตเดฒ).

7.2 เดซเดฒเด‚ เดตเดพเดฏเดฟเด•เตเด•เตเดจเตเดจเต

เดชเตˆเดคเตเดคเตบ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดจเตเดฑเต† เดซเดฒเด‚ เด‡เดคเตเดชเต‹เดฒเต† เด•เดพเดฃเดชเตเดชเต†เดŸเตเดจเตเดจเต (เดตเดพเดฏเดจเด•เตเดทเดฎเดคเดฏเตเด•เตเด•เดพเดฏเดฟ เดฒเดณเดฟเดคเดฎเดพเด•เตเด•เดฟเดฏเดคเต):

DELAY F1 F8 F9  # F1 โ€“ ะฒั‹ัˆะตัƒะฟะพะผัะฝัƒั‚ั‹ะน ะฝะตะธะทะฒะตัั‚ะฝั‹ะน ั€ะตะณะธัั‚ั€
                  # F8 ะผะปะฐะดัˆะธะน ะฑะฐะนั‚ ะบะพะฝั‚ั€ะพะปัŒะฝะพะน ััƒะผะผั‹
                  # F9 ัั‚ะฐั€ัˆะธะน ะฑะฐะนั‚ ะบะพะฝั‚ั€ะพะปัŒะฝะพะน ััƒะผะผั‹

00000 03 E1 19
[...]
00016 F9 00 03
00016 F9 00 00
00016 F9 00 03
00016 F9 00 03
00016 F9 00 03
00016 F9 00 00  # ะบะพะฝั‚ั€ะพะปัŒะฝะฐั ััƒะผะผะฐ ัะฑั€ะฐัั‹ะฒะฐะตั‚ัั ะฒ 0
00017 FB 00 00
[...]
00023 F8 00 00
00024 80 80 00  # 1-ะน ะฑะฐะนั‚: 0x0080-0x0000 = 0x80 
00024 80 80 00
00024 80 80 00
[...]
00057 CC E7 00   # 2-ะน ะฑะฐะนั‚: 0xE7-0x80: 0x67
00057 CC E7 00
00057 01 17 01  # ะฟะพะฝัั‚ะธั ะฝะต ะธะผะตัŽ, ั‡ั‚ะพ ะทะดะตััŒ ะฟั€ะพะธัั…ะพะดะธั‚
00057 01 17 01
00057 01 17 01
00058 D0 17 01
00058 D0 17 01
00058 D0 17 01
00058 D0 17 01
00058 F8 E7 00  # ะกะฝะพะฒะฐ E7?
00058 D0 17 01
[...]
00059 E7 E7 00
00060 17 17 00  # ะฅะผะผะผะผะผะผ
[...]
00062 00 17 00
00062 00 17 00
00063 01 17 01  # ะ, ะดะพัˆะปะพ! ะ’ะพั‚ ะพะฝ ะถะต ะฟะตั€ะตะฝะพั ะฒ ัั‚ะฐั€ัˆะธะน ะฑะฐะนั‚
00063 01 17 01
[...]
00075 CC 17 01  # ะ˜ั‚ะฐะบ, 0x117-0xE7: 0x30

เดชเดฑเดžเตเดžเตเดตเดฐเตเดจเตเดจเดคเต, เดžเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เดชเตเดฐเดถเตโ€ŒเดจเดฎเตเดฃเตเดŸเต: เดžเด™เตเด™เตพ เด’เดฐเต เดฏเดฅเดพเตผเดคเตเดฅ เดšเต†เด•เตเด•เตโ€Œเดธเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดพเดฃเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเต เดŽเดจเตเดจเดคเดฟเดจเดพเตฝ, เด’เดฐเต เดจเตพ เดฌเตˆเดฑเตเดฑเต เดฑเต€เดกเต เดฎเต‚เดฒเตเดฏเด‚ เดฎเดพเดฑเตเดฑเดฟเดฒเตเดฒ. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดฎเตเดดเตเดตเตป เด•เดฃเด•เตเด•เตเด•เต‚เดŸเตเดŸเตฝ เดจเดŸเดชเดŸเดฟเด•เตเดฐเดฎเดตเตเด‚ (8192 เดฌเตˆเดฑเตเดฑเตเด•เตพ) 0,1478 เดธเต†เด•เตเด•เตปเดกเต (เด“เดฐเต‹ เดคเดตเดฃ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดฎเตเดชเต‹เดดเตเด‚ เดšเต†เดฑเดฟเดฏ เดตเตเดฏเดคเตเดฏเดพเดธเด™เตเด™เดณเต‹เดŸเต†) เดŽเดŸเตเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเตฝ, เด’เดฐเต เดฌเตˆเดฑเตเดฑเดฟเดจเต เดเด•เดฆเต‡เดถเด‚ 18,04 ฮผs เดคเตเดฒเตเดฏเดฎเดพเดฃเต, เด‰เดšเดฟเดคเดฎเดพเดฏ เดธเดฎเดฏเด™เตเด™เดณเดฟเตฝ เดšเต†เด•เตเด•เตเดธเด‚ เดฎเต‚เดฒเตเดฏเด‚ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดพเตป เดจเดฎเตเด•เตเด•เต เดˆ เดธเดฎเดฏเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚. เด†เดฆเตเดฏ เดฑเดฃเตเดฃเตเด•เตพเด•เตเด•เดพเดฏเดฟ, เดŽเดฒเตเดฒเดพเด‚ เดตเดณเดฐเต† เดŽเดณเตเดชเตเดชเดคเตเดคเดฟเตฝ เดตเดพเดฏเดฟเด•เตเด•เตเดจเตเดจเต, เด•เดพเดฐเดฃเด‚ เด•เดฎเตเดชเตเดฏเต‚เดŸเตเดŸเต‡เดทเดฃเตฝ เดจเดŸเดชเดŸเดฟเด•เตเดฐเดฎเดคเตเดคเดฟเดจเตเดฑเต† เดฆเตˆเตผเด˜เตเดฏเด‚ เดŽเดฒเตเดฒเดพเดฏเตเดชเตเดชเต‹เดดเตเด‚ เดเดคเดพเดฃเตเดŸเต เดคเตเดฒเตเดฏเดฎเดพเดฃเต. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดˆ เดกเดฎเตเดชเดฟเดจเตเดฑเต† เด…เดตเดธเดพเดจเด‚ เด•เตƒเดคเตเดฏเดค เด•เตเดฑเดตเดพเดฃเต, เด•เดพเดฐเดฃเด‚ เด“เดฐเต‹ เดฑเดฃเตเดฃเดฟเดฒเตเดฎเตเดณเตเดณ "เดšเต†เดฑเดฟเดฏ เดธเดฎเดฏ เดตเตเดฏเดคเดฟเดฏเดพเดจเด™เตเด™เตพ" เดชเตเดฐเดพเดงเดพเดจเตเดฏเดฎเตผเดนเดฟเด•เตเด•เตเดจเตเดจเต:

134023 D0 02 DD
134023 CC D2 DC
134023 CC D2 DC
134023 CC D2 DC
134023 FB D2 DC
134023 3F D2 DC
134023 CC D2 DC
134024 02 02 DC
134024 CC D2 DC
134024 F9 02 DC
134024 03 02 DD
134024 21 02 DD
134024 02 D2 DC
134024 02 02 DC
134024 02 02 DC
134024 F8 D2 DC
134024 F8 D2 DC
134025 CC D2 DC
134025 EF D2 DC
134025 21 02 DD
134025 F8 D2 DC
134025 21 02 DD
134025 CC D2 DC
134025 04 D2 DC
134025 FB D2 DC
134025 CC D2 DC
134025 FB 02 DD
134026 03 02 DD
134026 21 02 DD

เด…เดคเดพเดฏเดคเต เด“เดฐเต‹ เดฎเตˆเด•เตเดฐเต‹เดธเต†เด•เตเด•เตปเดกเต เด•เดพเดฒเดคเดพเดฎเดธเดคเตเดคเดฟเดจเตเด‚ 10 เดกเด‚เดชเตเด•เตพ. เด’เดฐเต เดซเตเดฒเดพเดทเต เดกเตเดฐเตˆเดตเดฟเดจเตเดฑเต† เดŽเดฒเตเดฒเดพ 8192 เดฌเตˆเดฑเตเดฑเตเด•เดณเตเด‚ เดกเด‚เดชเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดฎเตŠเดคเตเดคเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดจ เดธเดฎเดฏเด‚ เดเด•เดฆเต‡เดถเด‚ 48 เดฎเดฃเดฟเด•เตเด•เต‚เดฑเดพเดฃเต.

7.3 เดซเตเดฒเดพเดทเต เดฌเตˆเดจเดฑเดฟ เดชเตเดจเตผเดจเดฟเตผเดฎเตเดฎเดพเดฃเด‚

เดŽเดฒเตเดฒเดพ เดธเดฎเดฏ เดตเตเดฏเดคเดฟเดฏเดพเดจเด™เตเด™เดณเตเด‚ เด•เดฃเด•เตเด•เดฟเดฒเต†เดŸเตเดคเตเดคเต เดซเตเดฒเดพเดทเต เดกเตเดฐเตˆเดตเดฟเดจเตเดฑเต† เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เด•เต‹เดกเต เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เดชเตเดจเตผเดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจ เด•เต‹เดกเต เดŽเดดเตเดคเตเดจเตเดจเดคเต เดžเดพเตป เด‡เดคเตเดตเดฐเต† เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเด•เตเด•เดฟเดฏเดฟเดŸเตเดŸเดฟเดฒเตเดฒ. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดˆ เด•เต‹เดกเดฟเดจเตเดฑเต† เด†เดฐเด‚เดญเด‚ เดžเดพเตป เด‡เดคเดฟเดจเด•เด‚ เดชเตเดจเดƒเดธเตเดฅเดพเดชเดฟเดšเตเดšเต. เดžเดพเตป เด…เดคเต เดถเดฐเดฟเดฏเดพเดฏเดฟ เดšเต†เดฏเตเดคเตเดตเต†เดจเตเดจเต เด‰เดฑเดชเตเดชเดพเด•เตเด•เดพเตป, m8cdis เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดžเดพเตป เด…เดคเต เดกเดฟเดธเตเด…เดธเด‚เดฌเตเดฒเดฟเด‚เด—เต เดšเต†เดฏเตเดคเต:

0000: 80 67   jmp  0068h     ; Reset vector
[...]
0068: 71 10   or  F,010h
006a: 62 e3 87 mov  reg[VLT_CR],087h
006d: 70 ef   and  F,0efh
006f: 41 fe fb and  reg[CPU_SCR1],0fbh
0072: 50 80   mov  A,080h
0074: 4e    swap A,SP
0075: 55 fa 01 mov  [0fah],001h
0078: 4f    mov  X,SP
0079: 5b    mov  A,X
007a: 01 03   add  A,003h
007c: 53 f9   mov  [0f9h],A
007e: 55 f8 3a mov  [0f8h],03ah
0081: 50 06   mov  A,006h
0083: 00    ssc
[...]
0122: 18    pop  A
0123: 71 10   or  F,010h
0125: 43 e3 10 or  reg[VLT_CR],010h
0128: 70 00   and  F,000h ; Paging mode changed from 3 to 0
012a: ef 62   jacc 008dh
012c: e0 00   jacc 012dh
012e: 71 10   or  F,010h
0130: 62 e0 02 mov  reg[OSC_CR0],002h
0133: 70 ef   and  F,0efh
0135: 62 e2 00 mov  reg[INT_VC],000h
0138: 7c 19 30 lcall 1930h
013b: 8f ff   jmp  013bh
013d: 50 08   mov  A,008h
013f: 7f    ret

เดคเดฟเด•เดšเตเดšเตเด‚ เดตเดฟเดถเตเดตเดธเดจเต€เดฏเดฎเดพเดฏเดฟ เดคเต‹เดจเตเดจเตเดจเตเดจเต!

7.4 เดชเดฟเตป เด•เต‹เดกเต เดธเด‚เดญเดฐเดฃ โ€‹โ€‹เดตเดฟเดฒเดพเดธเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเตเดจเตเดจเต

เด‡เดชเตเดชเต‹เตพ เดจเดฎเตเด•เตเด•เต เด†เดตเดถเตเดฏเดฎเตเดณเตเดณ เดธเดฎเดฏเด™เตเด™เดณเดฟเตฝ เดšเต†เด•เตเด•เตเดธเด‚ เดตเดพเดฏเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเดจเตเดจเดคเดฟเดจเดพเตฝ, เด…เดคเต เดŽเด™เตเด™เดจเต†, เดŽเดตเดฟเดŸเต†เดฏเดพเดฃเต เดฎเดพเดฑเตเดจเตเดจเดคเต เดŽเดจเตเดจเต เดจเดฎเตเด•เตเด•เต เดŽเดณเตเดชเตเดชเดคเตเดคเดฟเตฝ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดพเด‚:

  • เดคเต†เดฑเตเดฑเดพเดฏ เดชเดฟเตป เด•เต‹เดกเต เดจเตฝเด•เตเด•;
  • เดชเดฟเตป เด•เต‹เดกเต เดฎเดพเดฑเตเดฑเตเด•.

เด†เดฆเตเดฏเด‚, เดเด•เดฆเต‡เดถ เดธเตเดฑเตเดฑเต‹เดฑเต‡เดœเต เดตเดฟเดฒเดพเดธเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเดพเตป, เดฑเต€เดฌเต‚เดŸเตเดŸเดฟเดจเต เดถเต‡เดทเด‚ เดžเดพเตป 10 เดŽเด‚เดŽเดธเต เด‡เตปเด•เตเดฐเดฟเดฎเต†เดจเตเดฑเตเด•เดณเดฟเตฝ เด’เดฐเต เดšเต†เด•เตเด•เตเดธเด‚ เดกเด‚เดชเต เดŽเดŸเตเดคเตเดคเต. เดชเดฟเดจเตเดจเต† เดžเดพเตป เดคเต†เดฑเตเดฑเดพเดฏ เดชเดฟเตป เดจเตฝเด•เดฟ เด…เดคเต เดคเดจเตเดจเต† เดšเต†เดฏเตเดคเต.

เดชเดฒ เดฎเดพเดฑเตเดฑเด™เตเด™เดณเตเด‚ เด‰เดฃเตเดŸเดพเดฏเดคเดฟเดจเดพเตฝ เดซเดฒเด‚ เด…เดคเตเดฐ เดธเตเด–เด•เดฐเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเดฟเดฒเตเดฒ. เดŽเดจเตเดจเดพเตฝ เด…เดตเดธเดพเดจเด‚, เดšเต†เด•เตเด•เตเดธเด‚ 120000 ยตs เดจเตเด‚ 140000 ยตs เดจเตเด‚ เด‡เดŸเดฏเดฟเตฝ เดŽเดตเดฟเดŸเต†เดฏเต†เด™เตเด•เดฟเดฒเตเด‚ เด•เดพเดฒเดคเดพเดฎเดธเด‚ เดตเดฐเตเดคเตเดคเดฟเดฏเดคเดพเดฏเดฟ เดŽเดจเดฟเด•เตเด•เต เดจเดฟเตผเดฃเตเดฃเดฏเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดžเตเดžเต. เดŽเดจเตเดจเดพเตฝ เดžเดพเตป เด…เดตเดฟเดŸเต† เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเดšเตเดš "เดชเดฟเตปเด•เต‹เดกเต" เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เดคเต†เดฑเตเดฑเดพเดฏเดฟเดฐเตเดจเตเดจเต - เดฎเตˆเด•เตเดฐเต‹เดธเต†เด•เตเด•เตปเดกเต เดจเดŸเดชเดŸเดฟเด•เตเดฐเดฎเด™เตเด™เดณเตเดŸเต† เด•เดพเดฒเดคเดพเดฎเดธเดคเตเดคเดฟเดจเตเดฑเต† เด’เดฐเต เด†เตผเดŸเตเดŸเดฟเดซเดพเด•เตเดฑเตเดฑเต เด•เดพเดฐเดฃเด‚, เด…เดคเดฟเดฒเต‡เด•เตเด•เต 0 เดจเตฝเด•เตเดฎเตเดชเต‹เตพ เดตเดฟเดšเดฟเดคเตเดฐเดฎเดพเดฏ เด•เดพเดฐเตเดฏเด™เตเด™เตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

เดคเตเดŸเตผเดจเตเดจเต, เดเด•เดฆเต‡เดถเด‚ 3 เดฎเดฃเดฟเด•เตเด•เต‚เตผ เดšเต†เดฒเดตเดดเดฟเดšเตเดšเดคเดฟเดจเต เดถเต‡เดทเด‚, SROM เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เดณเดฟเดจเต เดšเต†เด•เตเด•เตโ€Œเดธเด‚ เด’เดฐเต เด‡เตปเดชเตเดŸเตเดŸเดพเดฏเดฟ เด’เดฐเต เด†เตผเด—เตเดฏเตเดฎเต†เดจเตเดฑเต เดฒเดญเดฟเด•เตเด•เตเดจเตเดจเตเดฃเตเดŸเต†เดจเตเดจเต เดžเดพเตป เด“เตผเดคเตเดคเต, เด…เดคเต เดšเต†เด•เตเด•เตโ€Œเดธเดคเตเดคเดฟเดจเตเดณเตเดณ เดฌเตเดฒเต‹เด•เตเด•เตเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เตเดจเตเดจเต! เด…เดคเต. PIN เด•เต‹เดกเดฟเดจเตเดฑเต† เดธเด‚เดญเดฐเดฃ โ€‹โ€‹เดตเดฟเดฒเดพเดธเดตเตเด‚ "เดคเต†เดฑเตเดฑเดพเดฏ เดถเตเดฐเดฎเด™เตเด™เตพ" เด•เต—เดฃเตเดŸเดฑเตเด‚ 64-เดฌเตˆเดฑเตเดฑเต เดฌเตเดฒเต‹เด•เตเด•เต เดตเดฐเต† เด•เตƒเดคเตเดฏเดคเดฏเต‹เดŸเต† เดจเดฎเตเด•เตเด•เต เดŽเดณเตเดชเตเดชเดคเตเดคเดฟเตฝ เดชเตเดฐเดพเดฆเต‡เดถเดฟเด•เดตเตฝเด•เตเด•เดฐเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚.

เดŽเดจเตเดฑเต† เดชเตเดฐเดพเดฐเด‚เดญ เด“เดŸเตเดŸเด™เตเด™เตพ เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดซเดฒเด‚ เดจเตฝเด•เดฟ:

Aigo เดธเตเดตเดฏเด‚ เดŽเตปเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเด‚เด—เต เดฌเดพเดนเตเดฏ HDD เดกเตเดฐเตˆเดตเต เดฑเดฟเดตเต‡เดดเตโ€Œเดธเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดนเดพเด•เตเด•เต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดญเดพเด—เด‚ 2: เดธเตˆเดชเตเดฐเดธเต เดชเดฟเดŽเดธเตเด’เดธเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เด’เดฐเต เดกเด‚เดชเต เดŽเดŸเตเด•เตเด•เตฝ

เดคเตเดŸเตผเดจเตเดจเต เดžเดพเตป เดชเดฟเตป เด•เต‹เดกเต "123456" เดŽเดจเตเดจเดคเดฟเตฝ เดจเดฟเดจเตเดจเต "1234567" เด†เด•เตเด•เดฟ เดฎเดพเดฑเตเดฑเดฟ:

Aigo เดธเตเดตเดฏเด‚ เดŽเตปเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเด‚เด—เต เดฌเดพเดนเตเดฏ HDD เดกเตเดฐเตˆเดตเต เดฑเดฟเดตเต‡เดดเตโ€Œเดธเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดนเดพเด•เตเด•เต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดญเดพเด—เด‚ 2: เดธเตˆเดชเตเดฐเดธเต เดชเดฟเดŽเดธเตเด’เดธเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เด’เดฐเต เดกเด‚เดชเต เดŽเดŸเตเด•เตเด•เตฝ

เด…เด™เตเด™เดจเต†, PIN เด•เต‹เดกเตเด‚ เดคเต†เดฑเตเดฑเดพเดฏ เดถเตเดฐเดฎเด™เตเด™เดณเตเดŸเต† เด•เต—เดฃเตเดŸเดฑเตเด‚ เดฌเตเดฒเต‹เด•เตเด•เต เดจเดฎเตเดชเตผ 126-เตฝ เดธเต‚เด•เตเดทเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดพเดฏเดฟ เดคเต‹เดจเตเดจเตเดจเตเดจเต.

7.5 เดฌเตเดฒเต‹เด•เตเด•เต เดจเดฎเตเดชเตผ 126-เดจเตเดฑเต† เด’เดฐเต เดกเด‚เดชเต เดŽเดŸเตเด•เตเด•เตฝ

เดฌเตเดฒเต‹เด•เตเด•เต #126, เดšเต†เด•เตเด•เตเดธเด‚ เด•เดฃเด•เตเด•เตเด•เต‚เดŸเตเดŸเดฒเดฟเดจเตเดฑเต† เด†เดฐเด‚เดญเด‚ เดฎเตเดคเตฝ, 125x64x18 = 144000ฮผs เดšเตเดฑเตเดฑเดณเดตเดฟเตฝ เดŽเดตเดฟเดŸเต†เดฏเต†เด™เตเด•เดฟเดฒเตเด‚ เดŽเดจเตเดฑเต† เดชเต‚เตผเดฃเตเดฃ เดกเดฎเตเดชเดฟเตฝ เดธเตเดฅเดฟเดคเดฟเดšเต†เดฏเตเดฏเดฃเด‚, เด…เดคเต เดคเดฟเด•เดšเตเดšเตเด‚ เดตเดฟเดถเตเดตเดธเดจเต€เดฏเดฎเดพเดฃเต†เดจเตเดจเต เดคเต‹เดจเตเดจเตเดจเตเดจเต. เดคเตเดŸเตผเดจเตเดจเต, เดจเดฟเดฐเดตเดงเดฟ เด…เดธเดพเดงเตเดตเดพเดฏ เดกเดฎเตเดชเตเด•เตพ เดธเตเดตเดฎเต‡เดงเดฏเดพ เดตเต‡เตผเดคเดฟเดฐเดฟเดšเตเดšเต†เดŸเตเดคเตเดคเดคเดฟเดจเต เดถเต‡เดทเด‚ ("เดšเต†เดฑเดฟเดฏ เดธเดฎเดฏ เดตเตเดฏเดคเดฟเดฏเดพเดจเด™เตเด™เตพ" เดถเต‡เด–เดฐเดฃเด‚ เด•เดพเดฐเดฃเด‚), เดŽเดจเดฟเด•เตเด•เต เดˆ เดฌเตˆเดฑเตเดฑเตเด•เตพ เดฒเดญเดฟเด•เตเด•เตเดจเตเดจเดคเต เด…เดตเดธเดพเดจเดฟเดšเตเดšเต (145527 ฮผs เดฒเต‡เดฑเตเดฑเตปเดธเดฟเดฏเดฟเตฝ):

Aigo เดธเตเดตเดฏเด‚ เดŽเตปเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเด‚เด—เต เดฌเดพเดนเตเดฏ HDD เดกเตเดฐเตˆเดตเต เดฑเดฟเดตเต‡เดดเตโ€Œเดธเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดนเดพเด•เตเด•เต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดญเดพเด—เด‚ 2: เดธเตˆเดชเตเดฐเดธเต เดชเดฟเดŽเดธเตเด’เดธเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เด’เดฐเต เดกเด‚เดชเต เดŽเดŸเตเด•เตเด•เตฝ

PIN เด•เต‹เดกเต เดŽเตปเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดšเต†เดฏเตเดฏเดพเดคเตเดค เดฐเต‚เดชเดคเตเดคเดฟเดฒเดพเดฃเต เดธเต‚เด•เตเดทเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต เดŽเดจเตเดจเดคเต เดตเตเดฏเด•เตเดคเดฎเดพเดฃเต! เดˆ เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ, เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚, ASCII เด•เต‹เดกเตเด•เดณเดฟเตฝ เดŽเดดเตเดคเดฟเดฏเดฟเดŸเตเดŸเดฟเดฒเตเดฒ, เดŽเดจเตเดจเดพเตฝ เด…เดคเต เดฎเดพเดฑเตเดจเตเดจเดคเตเดชเต‹เดฒเต†, เด…เดต เด•เดชเตเดชเดพเดธเดฟเดฑเตเดฑเต€เดตเต เด•เต€เดฌเต‹เตผเดกเดฟเตฝ เดจเดฟเดจเตเดจเต เดŽเดŸเตเดคเตเดค เดฑเต€เดกเดฟเด‚เด—เตเด•เดณเต† เดชเตเดฐเดคเดฟเดซเดฒเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต.

เด…เดตเดธเดพเดจเด‚, เดฎเต‹เดถเด‚ เดถเตเดฐเดฎ เด•เต—เดฃเตเดŸเตผ เดŽเดตเดฟเดŸเต†เดฏเดพเดฃเต เดธเด‚เดญเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต†เดจเตเดจเต เด•เดฃเตเดŸเต†เดคเตเดคเดพเตป เดžเดพเตป เด•เตเดฑเดšเตเดšเต เดชเดฐเดฟเดถเต‹เดงเดจเด•เตพ เดจเดŸเดคเตเดคเดฟ. เดซเดฒเด‚ เด‡เดคเดพ:

Aigo เดธเตเดตเดฏเด‚ เดŽเตปเด•เตเดฐเดฟเดชเตเดฑเตเดฑเดฟเด‚เด—เต เดฌเดพเดนเตเดฏ HDD เดกเตเดฐเตˆเดตเต เดฑเดฟเดตเต‡เดดเตโ€Œเดธเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดนเดพเด•เตเด•เต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดญเดพเด—เด‚ 2: เดธเตˆเดชเตเดฐเดธเต เดชเดฟเดŽเดธเตเด’เดธเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เด’เดฐเต เดกเด‚เดชเต เดŽเดŸเตเด•เตเด•เตฝ

0xFF - "15 เดถเตเดฐเดฎเด™เตเด™เตพ" เดŽเดจเตเดจเดพเดฃเต เด…เตผเดคเตเดฅเดฎเดพเด•เตเด•เตเดจเตเดจเดคเต, เด“เดฐเต‹ เดชเดฐเดพเดœเดฏ เดถเตเดฐเดฎเดคเตเดคเดฟเดฒเตเด‚ เด‡เดคเต เด•เตเดฑเดฏเตเดจเตเดจเต.

7.6 เดชเดฟเตป เด•เต‹เดกเต เดตเต€เดฃเตเดŸเต†เดŸเตเด•เตเด•เตฝ

เดฎเต‡เตฝเดชเตเดชเดฑเดžเตเดžเดต เด’เดฐเตเดฎเดฟเดšเตเดšเต เดšเต‡เตผเด•เตเด•เตเดจเตเดจ เดŽเดจเตเดฑเต† เดตเตƒเดคเตเดคเดฟเด•เต†เดŸเตเดŸ เด•เต‹เดกเต เด‡เดคเดพ:

def dump_pin():
  pin_map = {0x24: "0", 0x25: "1", 0x26: "2", 0x27:"3", 0x20: "4", 0x21: "5",
        0x22: "6", 0x23: "7", 0x2c: "8", 0x2d: "9"}
  last_csum = 0
  pin_bytes = []
  for delay in range(145495, 145719, 16):
    csum = csum_at(delay, 1)
    byte = (csum-last_csum)&0xFF
    print "%05d %04x (%04x) => %02x" % (delay, csum, last_csum, byte)
    pin_bytes.append(byte)
    last_csum = csum
  print "PIN: ",
  for i in range(0, len(pin_bytes)):
    if pin_bytes[i] in pin_map:
      print pin_map[pin_bytes[i]],
  print

เด…เดคเดฟเดจเตเดฑเต† เดจเดฟเตผเดตเตเดตเดนเดฃเดคเตเดคเดฟเดจเตเดฑเต† เดซเดฒเด‚ เด‡เดคเดพ:

$ ./psoc.py 
syncing: KO OK
Resetting PSoC: KO Resetting PSoC: KO Resetting PSoC: OK
145495 53e2 (0000) => e2
145511 5407 (53e2) => 25
145527 542d (5407) => 26
145543 5454 (542d) => 27
145559 5474 (5454) => 20
145575 5495 (5474) => 21
145591 54b7 (5495) => 22
145607 54da (54b7) => 23
145623 5506 (54da) => 2c
145639 5506 (5506) => 00
145655 5533 (5506) => 2d
145671 554c (5533) => 19
145687 554e (554c) => 02
145703 554e (554e) => 00
PIN: 1 2 3 4 5 6 7 8 9

เดนเต‚เดฑเต‡! เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต!

เดžเดพเตป เด‰เดชเดฏเต‹เด—เดฟเดšเตเดš เดฒเต‡เดฑเตเดฑเตปเดธเดฟ เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ เด’เดฐเต เดจเดฟเตผเดฆเตเดฆเดฟเดทเตโ€ŒเดŸ PSoC-เดฏเตโ€Œเด•เตเด•เต เดชเตเดฐเดธเด•เตเดคเดฎเดพเด•เดพเตป เดธเดพเดงเตเดฏเดคเดฏเตเดฃเตเดŸเต - เดžเดพเตป เด‰เดชเดฏเต‹เด—เดฟเดšเตเดš เด’เดจเตเดจเต.

8. เด…เดŸเตเดคเตเดคเดคเต เดŽเดจเตเดคเดพเดฃเต?

เด…เดคเดฟเดจเดพเตฝ, เดจเดฎเตเดฎเตเดŸเต† เดเด—เต‹ เดกเตเดฐเตˆเดตเดฟเดจเตเดฑเต† เดชเดถเตเดšเดพเดคเตเดคเดฒเดคเตเดคเดฟเตฝ เดชเดฟเดŽเดธเตเด’เดธเดฟ เดตเดถเดคเตเดคเต เดธเด‚เด—เตเดฐเดนเดฟเด•เตเด•เดพเด‚:

  • เดธเด‚เดฐเด•เตเดทเดฟเดคเดฎเดพเดฏเดฟ เดตเดพเดฏเดฟเดšเตเดšเดพเดฒเตเด‚ เดจเดฎเตเด•เตเด•เต SRAM เดตเดพเดฏเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚;
  • เด’เดฐเต เด•เต‹เตพเดกเต เดฌเต‚เดŸเตเดŸเต เดŸเตเดฐเต†เดฏเตโ€Œเดธเต เด…เดฑเตเดฑเดพเด•เตเด•เต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเตเด‚ เดชเดฟเตป เด•เต‹เดกเต เดจเต‡เดฐเดฟเดŸเตเดŸเต เดตเดพเดฏเดฟเดšเตเดšเตเด‚ เดจเดฎเตเด•เตเด•เต เด†เดจเตเดฑเดฟ-เดธเตเดตเตˆเดชเตเดชเต เดชเดฐเดฟเดฐเด•เตเดทเดฏเต† เดฎเดฑเดฟเด•เดŸเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚.

เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดธเดฎเดจเตเดตเดฏ เดชเตเดฐเดถเตโ€Œเดจเด™เตเด™เตพ เด•เดพเดฐเดฃเด‚ เดžเด™เตเด™เดณเตเดŸเต† เด†เด•เตเดฐเดฎเดฃเดคเตเดคเดฟเดจเต เดšเดฟเดฒ เดชเต‹เดฐเดพเดฏเตเดฎเด•เดณเตเดฃเตเดŸเต. เด‡เดคเต เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดฐเต€เดคเดฟเดฏเดฟเตฝ เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเดพเด‚:

  • "เด•เต‹เตพเดกเต เดฌเต‚เดŸเตเดŸเต เดŸเตเดฐเต‡เดธเต" เด†เด•เตเดฐเดฎเดฃเดคเตเดคเดฟเดจเตเดฑเต† เดซเดฒเดฎเดพเดฏเดฟ เดฒเดญเดฟเดšเตเดš เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดกเดพเดฑเตเดฑ เดถเดฐเดฟเดฏเดพเดฏเดฟ เดกเต€เด•เต‹เดกเต เดšเต†เดฏเตเดฏเดพเตป เด’เดฐเต เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟ เดŽเดดเตเดคเตเด•;
  • เด•เต‚เดŸเตเดคเตฝ เด•เตƒเดคเตเดฏเดฎเดพเดฏ เดธเดฎเดฏ เด•เดพเดฒเดคเดพเดฎเดธเด‚ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป เด’เดฐเต FPGA เด—เดพเดกเตโ€Œเดœเต†เดฑเตเดฑเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด• (เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ Arduino เดนเดพเตผเดกเตโ€Œเดตเต†เดฏเตผ เดŸเตˆเดฎเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•);
  • เดฎเดฑเตเดฑเตŠเดฐเต เด†เด•เตเดฐเดฎเดฃเดคเตเดคเดฟเดจเต เดถเตเดฐเดฎเดฟเด•เตเด•เตเด•: เดฎเดจเดƒเดชเต‚เตผเดตเตเดตเด‚ เดคเต†เดฑเตเดฑเดพเดฏ เดชเดฟเตป เด•เต‹เดกเต เดจเตฝเด•เตเด•, เดฑเต€เดฌเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดคเต เดฑเดพเด‚ เดกเด‚เดชเต เดšเต†เดฏเตเดฏเตเด•, เดคเดพเดฐเดคเดฎเตเดฏเดคเตเดคเดฟเดจเดพเดฏเดฟ เดถเดฐเดฟเดฏเดพเดฏ เดชเดฟเตป เด•เต‹เดกเต เดฑเดพเดฎเดฟเตฝ เดธเด‚เดฐเด•เตเดทเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดฎเต†เดจเตเดจเต เดชเตเดฐเดคเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, Arduino-เดฏเดฟเตฝ เด‡เดคเต เดšเต†เดฏเตเดฏเดพเตป เด…เดคเตเดฐ เดŽเดณเตเดชเตเดชเดฎเดฒเตเดฒ, เด•เดพเดฐเดฃเด‚ Arduino เดธเดฟเด—เตเดจเตฝ เดฒเต†เดตเตฝ 5 เดตเต‹เตพเดŸเตเดŸเต เด†เดฃเต, เด…เดคเต‡เดธเดฎเดฏเด‚ เดžเด™เตเด™เตพ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจ เดฌเต‹เตผเดกเต 3,3 เดตเต‹เตพเดŸเตเดŸเต เดธเดฟเด—เตเดจเดฒเตเด•เดณเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต.

เดตเดพเดฏเดฟเด•เตเด•เดพเดตเตเดจเตเดจ เดชเดฐเดฟเดฐเด•เตเดทเดฏเต† เดฎเดฑเดฟเด•เดŸเด•เตเด•เดพเตป เดตเต‹เตพเดŸเตเดŸเต‡เดœเต เดฒเต†เดตเดฒเดฟเตฝ เดชเตเดฒเต‡ เดšเต†เดฏเตเดฏเตเด• เดŽเดจเตเดจเดคเดพเดฃเต เดฐเดธเด•เดฐเดฎเดพเดฏ เด’เดฐเต เด•เดพเดฐเตเดฏเด‚. เดˆ เดธเดฎเต€เดชเดจเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เด•เตƒเดคเตเดฏเดฎเดพเดฏ เดธเดฎเดฏ เด•เดพเดฒเดคเดพเดฎเดธเด™เตเด™เดณเตเดณเตเดณ เด’เดฐเต เดšเต†เด•เตเด•เตเดธเด‚ เดตเดพเดฏเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดชเด•เดฐเด‚ เดซเตเดฒเดพเดทเต เดกเตเดฐเตˆเดตเดฟเตฝ เดจเดฟเดจเตเดจเต เดžเด™เตเด™เตพเด•เตเด•เต เด•เตƒเดคเตเดฏเดฎเดพเดฏ เดกเดพเดฑเตเดฑ เดจเต‡เดŸเดพเดจเดพเด•เตเด‚.

SROM เด’เดฐเตเดชเด•เตเดทเต‡ เดฑเต€เดกเตเดฌเตเดฒเต‹เด•เตเด•เต เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เตพ เดตเดดเดฟ เด—เดพเตผเดกเต เดฌเดฟเดฑเตเดฑเตเด•เตพ เดตเดพเดฏเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเตฝ, เดžเด™เตเด™เตพเด•เตเด•เตเด‚ เด‡เดคเตเดคเดจเตเดจเต† เดšเต†เดฏเตเดฏเดพเด‚ เดตเดฟเดตเดฐเดฟเดšเตเดšเต เดฆเดฟเดฎเดฟเดคเตเดฐเดฟ เดจเต†เดกเต‹เดธเตเดชเดพเดธเต‹เดตเดฟเดจเตเดฑเต† เดฌเตเดฒเต‹เด—เดฟเตฝ - เด•เตเดฐเดฟเดธเต เด—เต†เตผเดฒเดฟเตปเดธเตเด•เดฟเดฏเตเดŸเต† เด†เด•เตเดฐเดฎเดฃเดคเตเดคเดฟเดจเตเดฑเต† เดชเตเดจเตผเดจเดฟเตผเดฎเตเดฎเดพเดฃเด‚, เด•เต‹เตบเดซเดฑเตปเดธเดฟเตฝ เดชเตเดฐเด–เตเดฏเดพเดชเดฟเดšเตเดšเต "REcon เดฌเตเดฐเดธเตเดธเตฝเดธเต 2017".

เดšเต†เดฏเตเดฏเดพเดตเตเดจเตเดจ เดฎเดฑเตเดฑเตŠเดฐเต เดฐเดธเด•เดฐเดฎเดพเดฏ เด•เดพเดฐเตเดฏเด‚ เดšเดฟเดชเตเดชเดฟเตฝ เดจเดฟเดจเตเดจเต เด•เต‡เดธเต เดชเตŠเดŸเดฟเด•เตเด•เตเด• เดŽเดจเตเดจเดคเดพเดฃเต: เด’เดฐเต SRAM เดกเด‚เดชเต เดŽเดŸเตเด•เตเด•เตเด•, เดฐเต‡เด–เด•เดณเดฟเดฒเตเดฒเดพเดคเตเดค เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เดณเตเด•เดณเตเด‚ เด•เต‡เดŸเตเดชเดพเดŸเตเด•เดณเตเด‚ เดคเดฟเดฐเดฟเดšเตเดšเดฑเดฟเดฏเตเด•.

9. เด‰เดชเดธเด‚เดนเดพเดฐเด‚

เด…เดคเดฟเดจเดพเตฝ, เดˆ เดกเตเดฐเตˆเดตเดฟเดจเตเดฑเต† เดธเด‚เดฐเด•เตเดทเดฃเด‚ เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเดคเต เดตเดณเดฐเต†เดฏเดงเดฟเด•เด‚ เด…เดตเดถเต‡เดทเดฟเด•เตเด•เตเดจเตเดจเต, เด•เดพเดฐเดฃเด‚ เด‡เดคเต PIN เด•เต‹เดกเต เดธเด‚เดญเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด’เดฐเต เดธเดพเดงเดพเดฐเดฃ ("เด•เดพเด เดฟเดจเตเดฏเด‚" เด…เดฒเตเดฒ) เดฎเตˆเด•เตเดฐเต‹เด•เตบเดŸเตเดฐเต‹เดณเตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต... เด•เต‚เดŸเดพเดคเต†, เดกเดพเดฑเตเดฑเดฏเตเดฎเดพเดฏเดฟ เด•เดพเดฐเตเดฏเด™เตเด™เตพ เดŽเด™เตเด™เดจเต† เดชเต‹เด•เตเดจเตเดจเต เดŽเดจเตเดจเต เดžเดพเตป (เด‡เดคเตเดตเดฐเต†) เดจเต‹เด•เตเด•เดฟเดฏเดฟเดŸเตเดŸเดฟเดฒเตเดฒ เดˆ เด‰เดชเด•เดฐเดฃเดคเตเดคเดฟเตฝ เดŽเตปเด•เตเดฐเดฟเดชเตเดทเตป!

เดŽเดฏเตโ€Œเด—เต‹เดฏเตโ€Œเด•เตเด•เดพเดฏเดฟ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดŽเดจเตเดคเดพเดฃเต เดถเตเดชเดพเตผเดถ เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด•? เดŽเตปเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดšเต†เดฏเตเดค HDD เดกเตเดฐเตˆเดตเตเด•เดณเตเดŸเต† เดฐเดฃเตเดŸเต เดฎเต‹เดกเดฒเตเด•เตพ เดตเดฟเดถเด•เดฒเดจเด‚ เดšเต†เดฏเตเดค เดถเต‡เดทเด‚, 2015 เตฝ เดžเดพเตป เดจเดฟเตผเดฎเตเดฎเดฟเดšเตเดšเต เด…เดตเดคเดฐเดฃเด‚ SyScan-เตฝ, เด…เดคเดฟเตฝ เด…เดฆเตเดฆเต‡เดนเด‚ เดจเดฟเดฐเดตเดงเดฟ เดฌเดพเดนเตเดฏ HDD เดกเตเดฐเตˆเดตเตเด•เดณเตเดŸเต† เดธเตเดฐเด•เตเดทเดพ เดชเตเดฐเดถเตโ€Œเดจเด™เตเด™เตพ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด…เดตเดฏเดฟเตฝ เดŽเดจเตเดคเต†เดฒเตเดฒเดพเด‚ เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเดพเด‚ เดŽเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดถเตเดชเดพเตผเดถเด•เตพ เดจเตฝเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดคเต. ๐Ÿ™‚

เดˆ เด—เดตเต‡เดทเดฃเดคเตเดคเดฟเดจเดพเดฏเดฟ เดžเดพเตป เดฐเดฃเตเดŸเต เดตเดพเดฐเดพเดจเตเดคเตเดฏเด™เตเด™เดณเตเด‚ เดจเดฟเดฐเดตเดงเดฟ เดตเตˆเด•เตเดจเตเดจเต‡เดฐเด™เตเด™เดณเตเด‚ เดšเต†เดฒเดตเดดเดฟเดšเตเดšเต. เด†เด•เต† เดเด•เดฆเต‡เดถเด‚ 40 เดฎเดฃเดฟเด•เตเด•เต‚เตผ. เดคเตเดŸเด•เตเด•เด‚ เดฎเตเดคเตฝ (เดžเดพเตป เดกเดฟเดธเตเด•เต เดคเตเดฑเดจเตเดจเดชเตเดชเต‹เตพ) เด…เดตเดธเดพเดจเด‚ เดตเดฐเต† (เดชเดฟเตป เด•เต‹เดกเต เดกเด‚เดชเต) เดŽเดฃเตเดฃเตเดจเตเดจเต. เด…เดคเต‡ 40 เดฎเดฃเดฟเด•เตเด•เต‚เดฑเดฟเตฝ เดžเดพเตป เดˆ เดฒเต‡เด–เดจเด‚ เดŽเดดเตเดคเดพเตป เดšเต†เดฒเดตเดดเดฟเดšเตเดš เดธเดฎเดฏเดตเตเด‚ เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจเต. เดตเดณเดฐเต† เด†เดตเต‡เดถเด•เดฐเดฎเดพเดฏ เด’เดฐเต เดฏเดพเดคเตเดฐเดฏเดพเดฏเดฟเดฐเตเดจเตเดจเต เด…เดคเต.

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•