> > 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 “
