Hardcoded values
If you look at DOOM2.EXE v1.9 with a hex editor, you'll see at offset 0x89064 the beginning of a table of unsigned 16-bit LE values which correspond to the counter values.
Pos |
Hex pair |
Value
|
0 |
00 00 |
0
|
1 |
A2 1A |
6818
|
2 |
E4 19 |
6628
|
3 |
31 19 |
6449
|
4 |
87 18 |
6279
|
5 |
C7 17 |
6087
|
6 |
12 17 |
5906
|
7 |
68 16 |
5736
|
8 |
C7 15 |
5575
|
9 |
2F 15 |
5423
|
10 |
9F 14 |
5279
|
11 |
00 14 |
5120
|
12 |
6B 13 |
4971
|
13 |
DE 12 |
4830
|
14 |
59 12 |
4697
|
15 |
CA 11 |
4554
|
16 |
53 11 |
4435
|
17 |
D3 10 |
4307
|
18 |
5A 10 |
4186
|
19 |
DA 0F |
4058
|
20 |
6E 0F |
3950
|
21 |
FC 0E |
3836
|
22 |
90 0E |
3728
|
23 |
1F 0E |
3615
|
24 |
BF 0D |
3519
|
25 |
5A 0D |
3418
|
26 |
FB 0C |
3323
|
27 |
98 0C |
3224
|
28 |
3B 0C |
3131
|
29 |
E3 0B |
3043
|
30 |
90 0B |
2960
|
31 |
3B 0B |
2875
|
|
Pos |
Hex pair |
Value
|
32 |
EA 0A |
2794
|
33 |
97 0A |
2711
|
34 |
49 0A |
2633
|
35 |
00 0A |
2560
|
36 |
B5 09 |
2485
|
37 |
6F 09 |
2415
|
38 |
2C 09 |
2348
|
39 |
E9 08 |
2281
|
40 |
A5 08 |
2213
|
41 |
69 08 |
2153
|
42 |
29 08 |
2089
|
43 |
F0 07 |
2032
|
44 |
B7 07 |
1975
|
45 |
7E 07 |
1918
|
46 |
48 07 |
1864
|
47 |
12 07 |
1810
|
48 |
DD 06 |
1757
|
49 |
AD 06 |
1709
|
50 |
7B 06 |
1659
|
51 |
4C 06 |
1612
|
52 |
1D 06 |
1565
|
53 |
F1 05 |
1521
|
54 |
C6 05 |
1478
|
55 |
9B 05 |
1435
|
56 |
73 05 |
1395
|
57 |
4B 05 |
1355
|
58 |
24 05 |
1316
|
59 |
00 05 |
1280
|
60 |
DA 04 |
1242
|
61 |
B7 04 |
1207
|
62 |
95 04 |
1173
|
63 |
74 04 |
1140
|
|
Pos |
Hex pair |
Value
|
64 |
53 04 |
1107
|
65 |
33 04 |
1075
|
66 |
15 04 |
1045
|
67 |
F7 03 |
1015
|
68 |
DA 03 |
986
|
69 |
BF 03 |
959
|
70 |
A3 03 |
931
|
71 |
89 03 |
905
|
72 |
6F 03 |
879
|
73 |
56 03 |
854
|
74 |
3D 03 |
829
|
75 |
26 03 |
806
|
76 |
0F 03 |
783
|
77 |
F8 02 |
760
|
78 |
E3 02 |
739
|
79 |
CE 02 |
718
|
80 |
B9 02 |
697
|
81 |
A5 02 |
677
|
82 |
92 02 |
658
|
83 |
80 02 |
640
|
84 |
6D 02 |
621
|
85 |
5C 02 |
604
|
86 |
4A 02 |
586
|
87 |
3A 02 |
570
|
88 |
29 02 |
553
|
89 |
1A 02 |
538
|
90 |
0A 02 |
522
|
91 |
FB 01 |
507
|
92 |
ED 01 |
493
|
93 |
DF 01 |
479
|
94 |
D1 01 |
465
|
95 |
C4 01 |
452
|
|
Pos |
Hex pair |
Value
|
96 |
B7 01 |
439
|
97 |
AB 01 |
427
|
98 |
9F 01 |
415
|
99 |
93 01 |
403
|
100 |
87 01 |
391
|
101 |
7C 01 |
380
|
102 |
71 01 |
369
|
103 |
67 01 |
359
|
104 |
5C 01 |
348
|
105 |
53 01 |
339
|
106 |
49 01 |
329
|
107 |
3F 01 |
319
|
108 |
36 01 |
310
|
109 |
2E 01 |
302
|
110 |
25 01 |
293
|
111 |
1D 01 |
285
|
112 |
14 01 |
276
|
113 |
0D 01 |
269
|
114 |
05 01 |
261
|
115 |
FD 00 |
253
|
116 |
F6 00 |
246
|
117 |
EF 00 |
239
|
118 |
E8 00 |
232
|
119 |
E2 00 |
226
|
120 |
DB 00 |
219
|
121 |
D5 00 |
213
|
122 |
CF 00 |
207
|
123 |
C9 00 |
201
|
124 |
C3 00 |
195
|
125 |
BE 00 |
190
|
126 |
B8 00 |
184
|
127 |
B3 00 |
179
|
|
After the 128th value, there are several null bytes. This really looks like the table containing all the counter values that get programmed into the 8253 chip. This also shows that there are valid values above 95 -- the doc included with Andrew Apted & Simon Howard's specifications said that it "is not known if higher values are supported" -- I think this shows that they most certainly are. --Gez 18:40, 24 January 2014 (UTC)
- The same table exists in strife1.exe v1.2 @ dseg03:0009A09C and is xref'd from a DMX subroutine at cseg01:0004BC79.Here is the code in the immediate vicinity of the access. --Quasar 07:04, 25 January 2014 (UTC)