Ready for reading by JAVA.
[timetab.git] / FORMAT
blob384e1a05bb21c6dec2377acc1e4467e117c3b4ac
1 0000            file header
2                         +0      magic string
3                         +20     copyright
4                         +3f     0d 0a 1a
5                         +42.l   probably UNIX timestamp of file generation
6                         +46.l   0000000a or 0000000b
7                         +4a.w   version (major,minor)
8                         +4c.l   ?? (some 00's and ff's)
9                         +50.l   ?? (days since 1.1.1900)
10                         +54.l   start of validity (days)
11                         +58.l   end of validity (days)
12                         +5c.l   day of first day remark (days)
13                         +60.l   day of last day remark (days)
14 0001.l->0002.b  database names [lang]
15 0003.l->0004.b  copyright messages [lang]
16 0005.l->0006.b  auxilliary file names [fileid]
17 0007            ?
18 0008.l->0009.b  station names [statid]
19 0010.l          index to the map
20 0011.w          unique ID of the station 
21 0012.b          first letter of station name [statid]
22 0013.b          second letter of station name [statid]
23 0014.w          ? [statid]
24 0015.w          ? [statid] range 0 - 9
25 0016.w          index to 0017 [statid]  (sometimes ~0)
26 0017.l          index to 0018 [0016]
27 0018.b          country codes [0017]
28 0019.w          index to 0020 but shifted by +1 [statid]        (PID only)
29 0020.l          index to 0021 [0019]                            (PID only)
30 0021.b          zone names, "80" for "P" [0020]                 (PID only)
31 0022.w          all 1's [statid]        (VLAK only)
32 0023.l          ? [statid]
33 0024            0
34 0025.l          index for 0026 and 0027 [statid]
35 0026.w          list of neighbors  [0025]
36 0027.l          distances to neighbors [0025]
37 0028            0
38 0029.l          index for 0030 [statid]         (VLAK only)
39 0030.l          ? pointers to 0026 [0029]       (VLAK only)
40 0031.w          index to 0032 and 0033 [statid]
41 0032.w          ? [0031]
42 0033.b          ? [0031]
43 0034-0038       0
45 1xxx            station name tables, not decoded yet
47 2000.l->2001.b  table of equivalents (?)
48 2002-2005       0
50 3000            8 byte header; first long is the number of trains
51 3001.l->3002.l  The Timetable [train]
52                         ABCD Ettt tttt tttt ssss ssss ssss ssss
53                                 t = minutes since midnight
54                                 s = station number
55                         Only in first item:
56                         ABCD 1ttt tttt tttt xxxx xxxx xxxx xxxx
57                                 goes like train x, but t seconds later
58                         A = ?
59                         B = ?
60                         C = over midnight
61                         D = ?
62                         E = ?
63 3003            header
64 3004.l          train numbers [train]   (xor ~0 if textual, then points to 3005)
65 3005.l->3006.b  textual train numbers   (seen in PID only)
66 3007            header
67 3008.l          train names [train]     (xor ~0 and points to 3009)
68 3009.l->3010.b  train name texts
69 3011.l          train flags [train]     (low 23 bits are train type mask)
71 4000.l->4001.b  train type abbreviations for language 0 [type]
72 4002.l->4003.l  train type names for language 0 [type]
73 ... the same for other languages
75 5000.l          mapping train -> remark block [train]
76 5001.l->5002.w  remark blocks
77 5003.l->5004.b  remark texts for language 0
78 ... the same for other languages
80 5100.w          mapping train -> time remark block [train]
81 5101-...        0 (3*num_lang blocks)
83 5200.12         ???
84 5201.8          ???
86 5202.l->5203.b  station remarks for language 0
87 ... the same for other languages
88 5300.l          ???
89 5301.l          ???
90 5302.w          ???
92 6000            header
93 6001.l->6002.l  metrage, but only for selected trains (index to 6002 in bytes!)  [train]
94                         meters since start
95                         negative numbers denote ???
96 6003            0
97 6004.8          ???                             (VLAK only)
99 6100.l          train -> line name [train]      (BUS only)
100 6101.l->6102.b  line name texts for language 0
101 ... the same for other languages, but usually empty
103 6200.l          train -> company name [train]   (BUS only)
104 6201.l->6202.b  line name texts for language 0
105 ... the same for other languages, but usually empty
107 7xxx            time remark bitmap per day
109 8000            block of 390 zeroes
110 8001.l          ???  a short table
111 8002.l          ???  a short table
112 8003            4 bytes
114 VLAK:
115 9000.b          ???  a short table
116 9001.b          ???  173 bytes
117 9002            0
118 9003            0
119 9004.l          ???  [neighbor?]
120 9005.l          ???  [9004]
121 9006.w          ???
122 9007.w          ???
123 9008.l          ???
124 9009.b          ???  [?]
125 9010.b          ???  [?]
126 9011            ???
127 9012            ???
128 9013.w          ???  160 items
129 9014.w          ???  [statid]
130 9015.w          ???  [statid]
131 9016            0
132 9017            0
133 9018            0
134 9019            trailer
136 BUS:
137 9000.14         ???
138 9001.w          ???  [?]
139 9002.l          ???  [?]
140 9003.b          ???  [?]
141 9004.b          ???  [?]
142 9005-9015       0
143 9016.w          ???  [?]
144 9017.w          ???  [statid]
145 9018.w          ???  [statid]
146 9019            trailer
148 PID:
149 9000...         nothing interesting here