Currently, this document is a place-holder until I get more info here.
Quick rundown of what I know about the Keyboard Component and the "6502 side" of things:
On the "CP-1600 side":
Also, here are some notes I've made while reading the 6502 ROM dumps.
Miscellaneous stuff noted about kbd component 6502 code Entry points: $C000 $C009 $CE79 (ref: code @ $C1E1 ... $C1F3) $C13B (ref: boot code @ $C23C) $CC16 (ref: boot code @ $C246) Subroutines: $C1E1 Set default ISR vector & init flag? (point $3E8 @ $CE79) $C363 Copy 12 bytes src=($96) to dst=($340 + A*12). $C498 Store "$340 + A*12" to $96/$97. Clear Y. X = A*12. $C926 Copy 12 bytes from $C91E to $340. $DFBE Block fill >255 w/ zero. Count in $96/$97. $90 used as tmp. $DFD2 Block fill with zero. Address in $94/$95, count in $90. $DFD4 Block fill with A. Address in $94/$95, count in $90. $DFDE Block-move 6 bytes. Src addr in $94/$95, Dst in $96/$97. $DFE0 Block-move Y bytes. Src addr in $94/$95, Dst in $96/$97. $DFEE Multiply A by 12, result in both A and X. Jump vectors: $94/$95 (ref: code @ $C9C2, $DC73) $96/$97 (ref: code @ $C12D) $98/$99 (ref: code @ $D221) $B1/$B2 (save area for $94/$95 vector? Ref code @ $C878) $E5/$E6 (save area for $94/$95 vector? Ref code @ $C3C5,$D152) $302 (ref: code @ $C3F3) $3D3 (ref: code @ $C06E) $3E8 (from IRQ routine. Ref code @ $C022) Jump table at $C2EF .. $C305 $C36B,$C371,$C376,$C381,$C340,$C399,$C3E8,$C3EE,$C3F3,$C3F6, $C40F,$C422, Jump table at $C731 .. $C772 $C81A,$C7AF,$C7E0,$C7EF,$C7AF,$C849,$C7AF,$CC0D,$C7AF,$C794, $C7B0,$C7C8,$C800,$C7FD,$C816,$C784,$C77F,$C7AF,$C7AF,$C789, $C7AF,$C773,$C824,$CB85,$CB9B,$CB2D,$CB44,$C893,$C43D,$C807, $C80F,$C790,$CBEE, Jump table at $C972 .. $C989 $CA01,$CA3E,$C9D2,$C9EB,$CA0C,$CA25,$CA54,$CA50,$CA78,$CA6E, $CA72,$CB0F, Jump table at $D2B1 .. $D2F4 $D116,$D337,$D34A,$D356,$D36B,$D36F,$D374,$D385,$D38D,$D39D, $D3A4,$D3C4,$D3DA,$D3E7,$D411,$D415,$D468,$D46D,$D476,$D489, $D496,$D621,$D673,$D676,$D728,$D786,$D843,$D981,$D9AC, Jump table at $DCB5 .. $DCBC $DCBD,$DCC8,$DCD3,$DCDE, Jump table at $DCE9 .. $DCF0: Not actually a jump table ??? # $DCF1,$DD08,$DD20,$DD38, RAM-based vector tables (?) at following locations: $342-ish (ref: code @ $C0EF, $C10E, $C6B3, $DF68, $DFAA) $348-ish (ref: code @ $C12D) $3BB-ish (ref: code @ $C2C2) Display buffer: Row 0: $B800 - $B827 Row 1: $B840 - $B867 Row 2: $B880 - $B8A7 Row 3: $B8C0 - $B8E7 Row 4: $B900 - $B927 Row 5: $B940 - $B967 Row 6: $B980 - $B9A7 Row 7: $B9C0 - $B9E7 Row 8: $BA00 - $BA27 Row 9: $BA40 - $BA67 Row 10: $BA80 - $BAA7 Row 11: $BAC0 - $BAE7 Row 12: $BB00 - $BB27 Row 13: $BB40 - $BB67 Row 14: $BB80 - $BBA7 Row 15: $BBC0 - $BBE7 Row 16: $BC00 - $BC27 Row 17: $BC40 - $BC67 Row 18: $BC80 - $BCA7 Row 19: $BCC0 - $BCE7 Row 20: $BD00 - $BD27 Row 21: $BD40 - $BD67 Row 22: $BD80 - $BDA7 Row 23: $BDC0 - $BDE7