below began drafting right after previous but was interruption. storage cable coming soon, maybe tomorrow
so! What are the t60 magi boardview files?
I don’t really know. If you websearch for T60 schematics you might find these boardview files sometimes. There are two, .CST and .LST . The .LST file lists all the parts. The .CST file delineates the structure of the PCB. These are likely some internal format used by IBM back when they actually made thinkpads.
It’s nice to work with a board where you have detailed data like this.
The .CST file is broken into binary sections placed end-to-end with trailing metadata. Most sections are the same format: they start with a string identifying them, and an integer number of fields. The fields then follow with infix delimiter constants — that is, each section has some constant bytes, and these bytes occur between every field, but not after or before. Most sections have fixed-length fields, but not all. Here are some idiosyncrasies: - The list of net names follows the list of footprints without a section header - The list of board edge lines follows the list of copper lines without a section header - The list of shapes has variable-length fields and may be missing entries
The list of shapes is the most complicated section. Each shape has a type and a list of parameters, which have different meaning depending on the type. Each shape has a unique number and some of the shapes reference others.
However, the use of the shape list is not complicated. Each component uses the same types of shapes. So you don’t need the whole thing parsed to use it.
Y’know I might be able to remember a lot of this if I keep typing unsure if I wo;;
file name: magi7_41w0904.CST // so far i’ve only looked at this file! 0000-0010: 48 09 ff ff-00 00 04 00-43 44 65 76-05 4c 33 20 H....... CDev.L3. 0000-0020: 20 20 13 1c-e6 07 01 df-20 00 00 01-80 05 51 38 ........ ......Q8
Here is the first group of items called CDev. All values are little-median.
// this header format is used repeatedly uint16_t num_entries; // 0x948 int16_t -1; // this is 0 in the trailing metadata int16_t 0; int16_t len_name; // 4 char name[len_name]; // “CDev”
// now entries start at 0x0c or so uint8_t len_refdes; // same for each dev. 5 char refdes[len_refdes]; // space-padded. “L3 “ // not immediately certain of the order of the following fields int16_t pos[2]; // x and y location in mils(inch/1000). 0x1c13, 0x07e6 uint16_t shape; // 0x