-
Notifications
You must be signed in to change notification settings - Fork 4
/
revs-silverstone.asm
2839 lines (2528 loc) · 138 KB
/
revs-silverstone.asm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
\ ******************************************************************************
\
\ REVS SILVERSTONE TRACK SOURCE
\
\ Revs was written by Geoffrey J Crammond and is copyright Acornsoft 1985
\
\ The code on this site has been reconstructed from a disassembly of the
\ original game binaries
\
\ The commentary is copyright Mark Moxon, and any misunderstandings or mistakes
\ in the documentation are entirely my fault
\
\ The terminology and notations used in this commentary are explained at
\ https://revs.bbcelite.com/terminology
\
\ The deep dive articles referred to in this commentary can be found at
\ https://revs.bbcelite.com/deep_dives
\
\ ------------------------------------------------------------------------------
\
\ This source file produces the following binary file:
\
\ * Silverstone.bin
\
\ ******************************************************************************
GUARD &7C00 \ Guard against assembling over screen memory
\ ******************************************************************************
\
\ Configuration variables
\
\ ******************************************************************************
CODE% = &5300 \ The assembly address of the track data
LOAD% = &70DB \ The load address of the track binary
\ ******************************************************************************
\
\ REVS SILVERSTONE TRACK
\
\ Produces the binary file Silverstone.bin that contains the Silverstone track.
\
\ ******************************************************************************
ORG CODE%
.trackData
\ ******************************************************************************
\
\ Name: Track section data (Part 1 of 2)
\ Type: Variable
\ Category: Track data
\ Summary: Data for the track sections
\ Deep dive: The track data file format
\ The Silverstone track
\ Matching the code to the driving model
\
\ ------------------------------------------------------------------------------
\
\ Silverstone consists of the following track sections:
\
\ 0 || Abbey Curve to Woodcote Corner (2/2)
\ 1 -> Woodcote Corner (1/3)
\ 2 <- Woodcote Corner (2/3)
\ 3 -> Woodcote Corner (3/3)
\ 4 || Woodcote Corner to Copse Corner
\ 5 -> Copse Corner
\ 6 || Copse Corner to Maggotts Curve (1/3)
\ 7 {} Copse Corner to Maggotts Curve (2/3)
\ 8 || Copse Corner to Maggotts Curve (3/3)
\ 9 <- Maggotts Curve
\ 10 || Maggotts Curve to Becketts Corner (1/2)
\ 11 || Maggotts Curve to Becketts Corner (2/2)
\ 12 -> Becketts Corner
\ 13 || Becketts Corner to Chapel Curve
\ 14 <- Chapel Curve
\ 15 || Hangar Straight (1/3)
\ 16 {} Hangar Straight (2/3)
\ 17 || Hangar Straight (3/3)
\ 18 -> Stowe Corner
\ 19 || Stowe Corner to Club Corner
\ 20 -> Club Corner
\ 21 || Club Corner to Abbey Curve
\ 22 <- Abbey Curve
\ 23 {} Abbey Curve to Woodcote Corner (1/2)
\
\ where each section is one of the following shapes:
\
\ || is a straight section that doesn't curve to the left or right, and has
\ the same gradient throughout the whole section
\
\ {} is a straight section in the sense that it doesn't curve to the left or
\ right, but the gradient changes within the section
\
\ -> is a section that curves to the right
\
\ <- is a section that curves to the left
\
\ The track data file format supports up to 26 sections, but Silverstone only
\ uses 24 of them.
\
\ This part defines the following aspects of these track sections:
\
\ trackSectionData Various data for the track section:
\
\ * Bits 0-2: Size of the track section list
\
\ Defines the number of entries that we store in the
\ track section list for this section, which is used
\ to calculate the coordinates of the track verges
\ (higher numbers mean more sections are calculated,
\ so higher numbers are used for more complex parts
\ of the track)
\
\ This value is given in the bottom nibble of the
\ track section data byte (bit 3 is ignored), i.e. the
\ second digit in the hexadecimal value
\
\ * Bits 4-7: Sign number
\
\ The number of the road sign (0 to 15) to show when
\ we enter this section, but only if the sign number
\ is different to the number in the previous section
\
\ This value is given in the top nibble of the track
\ section data byte, i.e. the first digit in the
\ hexadecimal value
\
\ xTrackSectionIHi High byte of the x-coordinate of the starting point of
\ the inner verge of each track section
\
\ yTrackSectionIHi High byte of the y-coordinate of the starting point of
\ the inner verge of each track section
\
\ zTrackSectionIHi High byte of the z-coordinate of the starting point of
\ the inner verge of each track section
\
\ xTrackSectionOHi High byte of the x-coordinate of the starting point of
\ the outside verge of each track section
\
\ trackSectionTurn The number of the segment towards the end of the section
\ where non-player cars should start turning in
\ preparation for the next section
\
\ zTrackSectionOHi High byte of the z-coordinate of the starting point of
\ the outside verge of each track section
\
\ trackDriverSpeed The maximum speed for non-player drivers on the next
\ section of the track
\
\ ******************************************************************************
\ Track section 0
EQUB &03 \ trackSectionData sign = 0, sectionListSize = 3
EQUB &D1 \ xTrackSectionIHi xTrackSectionI = &D120 = -12000
EQUB &0C \ yTrackSectionIHi yTrackSectionI = &0C80 = 3200
EQUB &0F \ zTrackSectionIHi zTrackSectionI = &0FA0 = 4000
EQUB &CF \ xTrackSectionOHi xTrackSectionO = &CFC0 = -12352
EQUB 96 \ trackSectionTurn
EQUB &0F \ zTrackSectionOHi zTrackSectionO = &0F94 = 3988
EQUB 136 \ trackDriverSpeed
\ Track section 1
EQUB &13 \ trackSectionData sign = 1, sectionListSize = 3
EQUB &CF \ xTrackSectionIHi xTrackSectionI = &CF94 = -12396
EQUB &0C \ yTrackSectionIHi yTrackSectionI = &0C80 = 3200
EQUB &3E \ zTrackSectionIHi zTrackSectionI = &3E08 = 15880
EQUB &CE \ xTrackSectionOHi xTrackSectionO = &CE34 = -12748
EQUB 18 \ trackSectionTurn
EQUB &3D \ zTrackSectionOHi zTrackSectionO = &3DFC = 15868
EQUB 0 \ trackDriverSpeed
\ Track section 2
EQUB &12 \ trackSectionData sign = 1, sectionListSize = 2
EQUB &D3 \ xTrackSectionIHi xTrackSectionI = &D325 = -11483
EQUB &0C \ yTrackSectionIHi yTrackSectionI = &0C80 = 3200
EQUB &46 \ zTrackSectionIHi zTrackSectionI = &4696 = 18070
EQUB &D2 \ xTrackSectionOHi xTrackSectionO = &D2C5 = -11579
EQUB 20 \ trackSectionTurn
EQUB &47 \ zTrackSectionOHi zTrackSectionO = &47E8 = 18408
EQUB 138 \ trackDriverSpeed
\ Track section 3
EQUB &22 \ trackSectionData sign = 2, sectionListSize = 2
EQUB &D6 \ xTrackSectionIHi xTrackSectionI = &D6B2 = -10574
EQUB &0C \ yTrackSectionIHi yTrackSectionI = &0C80 = 3200
EQUB &4A \ zTrackSectionIHi zTrackSectionI = &4A91 = 19089
EQUB &D5 \ xTrackSectionOHi xTrackSectionO = &D556 = -10922
EQUB 30 \ trackSectionTurn
EQUB &4A \ zTrackSectionOHi zTrackSectionO = &4AC9 = 19145
EQUB 33 \ trackDriverSpeed
\ Track section 4
EQUB &22 \ trackSectionData sign = 2, sectionListSize = 2
EQUB &DE \ xTrackSectionIHi xTrackSectionI = &DEAF = -8529
EQUB &0C \ yTrackSectionIHi yTrackSectionI = &0C80 = 3200
EQUB &4F \ zTrackSectionIHi zTrackSectionI = &4F4F = 20303
EQUB &DE \ xTrackSectionOHi xTrackSectionO = &DE9F = -8545
EQUB 98 \ trackSectionTurn
EQUB &50 \ zTrackSectionOHi zTrackSectionO = &50AE = 20654
EQUB 125 \ trackDriverSpeed
\ Track section 5
EQUB &33 \ trackSectionData sign = 3, sectionListSize = 3
EQUB &0F \ xTrackSectionIHi xTrackSectionI = &0FE7 = 4071
EQUB &0C \ yTrackSectionIHi yTrackSectionI = &0C80 = 3200
EQUB &51 \ zTrackSectionIHi zTrackSectionI = &515C = 20828
EQUB &0F \ xTrackSectionOHi xTrackSectionO = &0FD7 = 4055
EQUB 40 \ trackSectionTurn
EQUB &52 \ zTrackSectionOHi zTrackSectionO = &52BB = 21179
EQUB 26 \ trackDriverSpeed
\ Track section 6
EQUB &42 \ trackSectionData sign = 4, sectionListSize = 2
EQUB &17 \ xTrackSectionIHi xTrackSectionI = &17D8 = 6104
EQUB &0C \ yTrackSectionIHi yTrackSectionI = &0CCB = 3275
EQUB &4B \ zTrackSectionIHi zTrackSectionI = &4B09 = 19209
EQUB &19 \ xTrackSectionOHi xTrackSectionO = &1937 = 6455
EQUB 255 \ trackSectionTurn
EQUB &4B \ zTrackSectionOHi zTrackSectionO = &4B17 = 19223
EQUB 255 \ trackDriverSpeed
\ Track section 7
EQUB &53 \ trackSectionData sign = 5, sectionListSize = 3
EQUB &18 \ xTrackSectionIHi xTrackSectionI = &1864 = 6244
EQUB &0E \ yTrackSectionIHi yTrackSectionI = &0E53 = 3667
EQUB &3D \ zTrackSectionIHi zTrackSectionI = &3DE9 = 15849
EQUB &19 \ xTrackSectionOHi xTrackSectionO = &19C3 = 6595
EQUB 0 \ trackSectionTurn
EQUB &3D \ zTrackSectionOHi zTrackSectionO = &3DF7 = 15863
EQUB 0 \ trackDriverSpeed
\ Track section 8
EQUB &53 \ trackSectionData sign = 5, sectionListSize = 3
EQUB &18 \ xTrackSectionIHi xTrackSectionI = &1891 = 6289
EQUB &0E \ yTrackSectionIHi yTrackSectionI = &0E77 = 3703
EQUB &39 \ zTrackSectionIHi zTrackSectionI = &39B1 = 14769
EQUB &19 \ xTrackSectionOHi xTrackSectionO = &19F0 = 6640
EQUB 33 \ trackSectionTurn
EQUB &39 \ zTrackSectionOHi zTrackSectionO = &39BF = 14783
EQUB 255 \ trackDriverSpeed
\ Track section 9
EQUB &64 \ trackSectionData sign = 6, sectionListSize = 4
EQUB &19 \ xTrackSectionIHi xTrackSectionI = &199F = 6559
EQUB &0D \ yTrackSectionIHi yTrackSectionI = &0D9F = 3487
EQUB &20 \ zTrackSectionIHi zTrackSectionI = &2061 = 8289
EQUB &1A \ xTrackSectionOHi xTrackSectionO = &1AFE = 6910
EQUB 40 \ trackSectionTurn
EQUB &20 \ zTrackSectionOHi zTrackSectionO = &206F = 8303
EQUB 12 \ trackDriverSpeed
\ Track section 10
EQUB &64 \ trackSectionData sign = 6, sectionListSize = 4
EQUB &1B \ xTrackSectionIHi xTrackSectionI = &1BFA = 7162
EQUB &0D \ yTrackSectionIHi yTrackSectionI = &0D5F = 3423
EQUB &19 \ zTrackSectionIHi zTrackSectionI = &195D = 6493
EQUB &1D \ xTrackSectionOHi xTrackSectionO = &1D1B = 7451
EQUB 255 \ trackSectionTurn
EQUB &1A \ zTrackSectionOHi zTrackSectionO = &1A25 = 6693
EQUB 255 \ trackDriverSpeed
\ Track section 11
EQUB &73 \ trackSectionData sign = 7, sectionListSize = 3
EQUB &26 \ xTrackSectionIHi xTrackSectionI = &2612 = 9746
EQUB &0C \ yTrackSectionIHi yTrackSectionI = &0CC7 = 3271
EQUB &0A \ zTrackSectionIHi zTrackSectionI = &0AAB = 2731
EQUB &27 \ xTrackSectionOHi xTrackSectionO = &2733 = 10035
EQUB 21 \ trackSectionTurn
EQUB &0B \ zTrackSectionOHi zTrackSectionO = &0B73 = 2931
EQUB 116 \ trackDriverSpeed
\ Track section 12
EQUB &72 \ trackSectionData sign = 7, sectionListSize = 2
EQUB &2D \ xTrackSectionIHi xTrackSectionI = &2DC5 = 11717
EQUB &0C \ yTrackSectionIHi yTrackSectionI = &0C5B = 3163
EQUB &00 \ zTrackSectionIHi zTrackSectionI = &008B = 139
EQUB &2E \ xTrackSectionOHi xTrackSectionO = &2EDD = 11997
EQUB 39 \ trackSectionTurn
EQUB &01 \ zTrackSectionOHi zTrackSectionO = &015F = 351
EQUB 25 \ trackDriverSpeed
\ Track section 13
EQUB &72 \ trackSectionData sign = 7, sectionListSize = 2
EQUB &29 \ xTrackSectionIHi xTrackSectionI = &2965 = 10597
EQUB &0C \ yTrackSectionIHi yTrackSectionI = &0C4D = 3149
EQUB &F6 \ zTrackSectionIHi zTrackSectionI = &F67E = -2434
EQUB &29 \ xTrackSectionOHi xTrackSectionO = &29D3 = 10707
EQUB 24 \ trackSectionTurn
EQUB &F5 \ zTrackSectionOHi zTrackSectionO = &F52F = -2769
EQUB 255 \ trackDriverSpeed
\ Track section 14
EQUB &84 \ trackSectionData sign = 8, sectionListSize = 4
EQUB &17 \ xTrackSectionIHi xTrackSectionI = &1795 = 6037
EQUB &0C \ yTrackSectionIHi yTrackSectionI = &0C4D = 3149
EQUB &F0 \ zTrackSectionIHi zTrackSectionI = &F08E = -3954
EQUB &18 \ xTrackSectionOHi xTrackSectionO = &1803 = 6147
EQUB 40 \ trackSectionTurn
EQUB &EF \ zTrackSectionOHi zTrackSectionO = &EF3F = -4289
EQUB 20 \ trackDriverSpeed
\ Track section 15
EQUB &93 \ trackSectionData sign = 9, sectionListSize = 3
EQUB &11 \ xTrackSectionIHi xTrackSectionI = &11D8 = 4568
EQUB &0C \ yTrackSectionIHi yTrackSectionI = &0C0D = 3085
EQUB &EB \ zTrackSectionIHi zTrackSectionI = &EBFA = -5126
EQUB &13 \ xTrackSectionOHi xTrackSectionO = &1305 = 4869
EQUB 255 \ trackSectionTurn
EQUB &EB \ zTrackSectionOHi zTrackSectionO = &EB44 = -5308
EQUB 255 \ trackDriverSpeed
\ Track section 16
EQUB &A2 \ trackSectionData sign = 10, sectionListSize = 2
EQUB &F1 \ xTrackSectionIHi xTrackSectionI = &F126 = -3802
EQUB &07 \ yTrackSectionIHi yTrackSectionI = &07D5 = 2005
EQUB &B5 \ zTrackSectionIHi zTrackSectionI = &B5A9 = -19031
EQUB &F2 \ xTrackSectionOHi xTrackSectionO = &F253 = -3501
EQUB 0 \ trackSectionTurn
EQUB &B4 \ zTrackSectionOHi zTrackSectionO = &B4F3 = -19213
EQUB 0 \ trackDriverSpeed
\ Track section 17
EQUB &B1 \ trackSectionData sign = 11, sectionListSize = 1
EQUB &EF \ xTrackSectionIHi xTrackSectionI = &EFB2 = -4174
EQUB &07 \ yTrackSectionIHi yTrackSectionI = &07F7 = 2039
EQUB &B3 \ zTrackSectionIHi zTrackSectionI = &B33F = -19649
EQUB &F0 \ xTrackSectionOHi xTrackSectionO = &F0DF = -3873
EQUB 22 \ trackSectionTurn
EQUB &B2 \ zTrackSectionOHi zTrackSectionO = &B289 = -19831
EQUB 139 \ trackDriverSpeed
\ Track section 18
EQUB &B4 \ trackSectionData sign = 11, sectionListSize = 4
EQUB &E8 \ xTrackSectionIHi xTrackSectionI = &E8EA = -5910
EQUB &09 \ yTrackSectionIHi yTrackSectionI = &099B = 2459
EQUB &A7 \ zTrackSectionIHi zTrackSectionI = &A7FB = -22533
EQUB &EA \ xTrackSectionOHi xTrackSectionO = &EA17 = -5609
EQUB 52 \ trackSectionTurn
EQUB &A7 \ zTrackSectionOHi zTrackSectionO = &A745 = -22715
EQUB 24 \ trackDriverSpeed
\ Track section 19
EQUB &C3 \ trackSectionData sign = 12, sectionListSize = 3
EQUB &D8 \ xTrackSectionIHi xTrackSectionI = &D849 = -10167
EQUB &0A \ yTrackSectionIHi yTrackSectionI = &0A64 = 2660
EQUB &A5 \ zTrackSectionIHi zTrackSectionI = &A5A2 = -23134
EQUB &D7 \ xTrackSectionOHi xTrackSectionO = &D74A = -10422
EQUB 96 \ trackSectionTurn
EQUB &A4 \ zTrackSectionOHi zTrackSectionO = &A4AE = -23378
EQUB 151 \ trackDriverSpeed
\ Track section 20
EQUB &D2 \ trackSectionData sign = 13, sectionListSize = 2
EQUB &B6 \ xTrackSectionIHi xTrackSectionI = &B691 = -18799
EQUB &07 \ yTrackSectionIHi yTrackSectionI = &07F4 = 2036
EQUB &C8 \ zTrackSectionIHi zTrackSectionI = &C8FA = -14086
EQUB &B5 \ xTrackSectionOHi xTrackSectionO = &B592 = -19054
EQUB 49 \ trackSectionTurn
EQUB &C8 \ zTrackSectionOHi zTrackSectionO = &C806 = -14330
EQUB 28 \ trackDriverSpeed
\ Track section 21
EQUB &E2 \ trackSectionData sign = 14, sectionListSize = 2
EQUB &B6 \ xTrackSectionIHi xTrackSectionI = &B603 = -18941
EQUB &08 \ yTrackSectionIHi yTrackSectionI = &083E = 2110
EQUB &D7 \ zTrackSectionIHi zTrackSectionI = &D71E = -10466
EQUB &B4 \ xTrackSectionOHi xTrackSectionO = &B4F2 = -19214
EQUB 69 \ trackSectionTurn
EQUB &D7 \ zTrackSectionOHi zTrackSectionO = &D7FC = -10244
EQUB 255 \ trackDriverSpeed
\ Track section 22
EQUB &F2 \ trackSectionData sign = 15, sectionListSize = 2
EQUB &CF \ xTrackSectionIHi xTrackSectionI = &CF3F = -12481
EQUB &0B \ yTrackSectionIHi yTrackSectionI = &0B90 = 2960
EQUB &F5 \ zTrackSectionIHi zTrackSectionI = &F5FF = -2561
EQUB &CE \ xTrackSectionOHi xTrackSectionO = &CE2E = -12754
EQUB 36 \ trackSectionTurn
EQUB &F6 \ zTrackSectionOHi zTrackSectionO = &F6DD = -2339
EQUB 11 \ trackDriverSpeed
\ Track section 23
EQUB &F2 \ trackSectionData sign = 15, sectionListSize = 2
EQUB &D1 \ xTrackSectionIHi xTrackSectionI = &D1DE = -11810
EQUB &0C \ yTrackSectionIHi yTrackSectionI = &0C7D = 3197
EQUB &FD \ zTrackSectionIHi zTrackSectionI = &FDD2 = -558
EQUB &D0 \ xTrackSectionOHi xTrackSectionO = &D07E = -12162
EQUB 255 \ trackSectionTurn
EQUB &FD \ zTrackSectionOHi zTrackSectionO = &FDC5 = -571
EQUB 255 \ trackDriverSpeed
EQUB &03, &D1 \ These bytes appear to be unused (Silverstone only uses
EQUB &0C, &0F \ sections 0 to 23)
EQUB &CF, &60
EQUB &0F, &88
EQUB &00, &8E
EQUB &41, &40
EQUB &00, &00
EQUB &C9, &54
\ ******************************************************************************
\
\ Name: xTrackSignVector
\ Type: Variable
\ Category: Track data
\ Summary: The x-coordinate of the track sign vector for each sign, to be
\ scaled and added to the inner track section vector for the sign
\ Deep dive: The track data file format
\ The Silverstone track
\
\ ******************************************************************************
EQUB -10 \ Sign 0 = (-10 << 6, 8 << 4, 108 << 6) + section 0
EQUB -8 \ Sign 1 = ( -8 << 6, 8 << 4, 4 << 6) + section 2
EQUB 82 \ Sign 2 = ( 82 << 6, 8 << 4, 27 << 6) + section 3
EQUB -78 \ Sign 3 = (-78 << 6, 8 << 4, 3 << 6) + section 5
EQUB 7 \ Sign 4 = ( 7 << 6, 0 << 4, 8 << 6) + section 7
EQUB -4 \ Sign 5 = ( -4 << 6, 18 << 4, 75 << 6) + section 9
EQUB -39 \ Sign 6 = (-39 << 6, 17 << 4, 63 << 6) + section 12
EQUB 40 \ Sign 7 = ( 40 << 6, 8 << 4, 14 << 6) + section 14
EQUB -5 \ Sign 8 = ( -5 << 6, 8 << 4, -1 << 6) + section 14
EQUB -51 \ Sign 9 = (-51 << 6, -16 << 4, -79 << 6) + section 14
EQUB 39 \ Sign 10 = ( 39 << 6, -20 << 4, 53 << 6) + section 18
EQUB 23 \ Sign 11 = ( 23 << 6, 12 << 4, -16 << 6) + section 19
EQUB 48 \ Sign 12 = ( 48 << 6, 22 << 4, -59 << 6) + section 20
EQUB -6 \ Sign 13 = ( -6 << 6, 4 << 4, -16 << 6) + section 21
EQUB -46 \ Sign 14 = (-46 << 6, -16 << 4, -57 << 6) + section 22
EQUB 0 \ Sign 15 = ( 0 << 6, 8 << 4, 36 << 6) + section 23
\ ******************************************************************************
\
\ Name: zTrackSignVector
\ Type: Variable
\ Category: Track data
\ Summary: The z-coordinate of the track sign vector for each sign, to be
\ scaled and added to the inner track section vector for the sign
\ Deep dive: The track data file format
\ The Silverstone track
\
\ ******************************************************************************
EQUB 108 \ Sign 0 = (-10 << 6, 8 << 4, 108 << 6) + section 0
EQUB 4 \ Sign 1 = ( -8 << 6, 8 << 4, 4 << 6) + section 2
EQUB 27 \ Sign 2 = ( 82 << 6, 8 << 4, 27 << 6) + section 3
EQUB 3 \ Sign 3 = (-78 << 6, 8 << 4, 3 << 6) + section 5
EQUB 8 \ Sign 4 = ( 7 << 6, 0 << 4, 8 << 6) + section 7
EQUB 75 \ Sign 5 = ( -4 << 6, 18 << 4, 75 << 6) + section 9
EQUB 63 \ Sign 6 = (-39 << 6, 17 << 4, 63 << 6) + section 12
EQUB 14 \ Sign 7 = ( 40 << 6, 8 << 4, 14 << 6) + section 14
EQUB -1 \ Sign 8 = ( -5 << 6, 8 << 4, -1 << 6) + section 14
EQUB -79 \ Sign 9 = (-51 << 6, -16 << 4, -79 << 6) + section 14
EQUB 53 \ Sign 10 = ( 39 << 6, -20 << 4, 53 << 6) + section 18
EQUB -16 \ Sign 11 = ( 23 << 6, 12 << 4, -16 << 6) + section 19
EQUB -59 \ Sign 12 = ( 48 << 6, 22 << 4, -59 << 6) + section 20
EQUB -16 \ Sign 13 = ( -6 << 6, 4 << 4, -16 << 6) + section 21
EQUB -57 \ Sign 14 = (-46 << 6, -16 << 4, -57 << 6) + section 22
EQUB 36 \ Sign 15 = ( 0 << 6, 8 << 4, 36 << 6) + section 23
\ ******************************************************************************
\
\ Name: yTrackSignVector
\ Type: Variable
\ Category: Track data
\ Summary: The y-coordinate of the track sign vector for each sign, to be
\ scaled and added to the inner track section vector for the sign
\ Deep dive: The track data file format
\ The Silverstone track
\
\ ******************************************************************************
EQUB 8 \ Sign 0 = (-10 << 6, 8 << 4, 108 << 6) + section 0
EQUB 8 \ Sign 1 = ( -8 << 6, 8 << 4, 4 << 6) + section 2
EQUB 8 \ Sign 2 = ( 82 << 6, 8 << 4, 27 << 6) + section 3
EQUB 8 \ Sign 3 = (-78 << 6, 8 << 4, 3 << 6) + section 5
EQUB 0 \ Sign 4 = ( 7 << 6, 0 << 4, 8 << 6) + section 7
EQUB 18 \ Sign 5 = ( -4 << 6, 18 << 4, 75 << 6) + section 9
EQUB 17 \ Sign 6 = (-39 << 6, 17 << 4, 63 << 6) + section 12
EQUB 8 \ Sign 7 = ( 40 << 6, 8 << 4, 14 << 6) + section 14
EQUB 8 \ Sign 8 = ( -5 << 6, 8 << 4, -1 << 6) + section 14
EQUB -16 \ Sign 9 = (-51 << 6, -16 << 4, -79 << 6) + section 14
EQUB -20 \ Sign 10 = ( 39 << 6, -20 << 4, 53 << 6) + section 18
EQUB 12 \ Sign 11 = ( 23 << 6, 12 << 4, -16 << 6) + section 19
EQUB 22 \ Sign 12 = ( 48 << 6, 22 << 4, -59 << 6) + section 20
EQUB 4 \ Sign 13 = ( -6 << 6, 4 << 4, -16 << 6) + section 21
EQUB -16 \ Sign 14 = (-46 << 6, -16 << 4, -57 << 6) + section 22
EQUB 8 \ Sign 15 = ( 0 << 6, 8 << 4, 36 << 6) + section 23
\ ******************************************************************************
\
\ Name: xTrackSegmentI
\ Type: Variable
\ Category: Track data
\ Summary: Vector x-coordinates between two consecutive segments on the
\ inside of the track
\ Deep dive: The track data file format
\ The Silverstone track
\
\ ******************************************************************************
EQUB -4 \ Vector 0 = ( -4, 0, 120) Section 0
EQUB -2 \ Vector 1 = ( -2, 0, 120) Section 1
EQUB 2 \ Vector 2 = ( 2, 0, 120)
EQUB 6 \ Vector 3 = ( 6, 0, 120)
EQUB 10 \ Vector 4 = ( 10, 0, 120)
EQUB 14 \ Vector 5 = ( 14, 0, 119)
EQUB 18 \ Vector 6 = ( 18, 0, 119)
EQUB 21 \ Vector 7 = ( 21, 0, 118)
EQUB 25 \ Vector 8 = ( 25, 0, 117)
EQUB 29 \ Vector 9 = ( 29, 0, 116)
EQUB 33 \ Vector 10 = ( 33, 0, 115)
EQUB 37 \ Vector 11 = ( 37, 0, 114)
EQUB 40 \ Vector 12 = ( 40, 0, 113)
EQUB 44 \ Vector 13 = ( 44, 0, 112)
EQUB 48 \ Vector 14 = ( 48, 0, 110)
EQUB 51 \ Vector 15 = ( 51, 0, 109)
EQUB 60 \ Vector 16 = ( 60, 0, 104)
EQUB 74 \ Vector 17 = ( 74, 0, 94)
EQUB 87 \ Vector 18 = ( 87, 0, 83)
EQUB 97 \ Vector 19 = ( 97, 0, 70)
EQUB 106 \ Vector 20 = ( 106, 0, 56)
EQUB 113 \ Vector 21 = ( 113, 0, 41)
EQUB 114 \ Vector 22 = ( 114, 0, 38) Section 2
EQUB 110 \ Vector 23 = ( 110, 0, 49)
EQUB 105 \ Vector 24 = ( 105, 0, 59)
EQUB 99 \ Vector 25 = ( 99, 0, 68)
EQUB 92 \ Vector 26 = ( 92, 0, 77)
EQUB 84 \ Vector 27 = ( 84, 0, 86)
EQUB 75 \ Vector 28 = ( 75, 0, 93)
EQUB 66 \ Vector 29 = ( 66, 0, 100)
EQUB 57 \ Vector 30 = ( 57, 0, 106)
EQUB 46 \ Vector 31 = ( 46, 0, 111)
EQUB 36 \ Vector 32 = ( 36, 0, 115)
EQUB 25 \ Vector 33 = ( 25, 0, 117)
EQUB 28 \ Vector 34 = ( 28, 0, 116) Section 3
EQUB 46 \ Vector 35 = ( 46, 0, 111)
EQUB 63 \ Vector 36 = ( 63, 0, 102)
EQUB 79 \ Vector 37 = ( 79, 0, 91)
EQUB 87 \ Vector 38 = ( 87, 0, 82)
EQUB 91 \ Vector 39 = ( 91, 0, 78)
EQUB 94 \ Vector 40 = ( 94, 0, 74)
EQUB 97 \ Vector 41 = ( 97, 0, 70)
EQUB 100 \ Vector 42 = ( 100, 0, 66)
EQUB 103 \ Vector 43 = ( 103, 0, 62)
EQUB 105 \ Vector 44 = ( 105, 0, 57)
EQUB 108 \ Vector 45 = ( 108, 0, 53)
EQUB 110 \ Vector 46 = ( 110, 0, 48)
EQUB 112 \ Vector 47 = ( 112, 0, 43)
EQUB 114 \ Vector 48 = ( 114, 0, 38)
EQUB 115 \ Vector 49 = ( 115, 0, 33)
EQUB 117 \ Vector 50 = ( 117, 0, 28)
EQUB 118 \ Vector 51 = ( 118, 0, 23)
EQUB 119 \ Vector 52 = ( 119, 0, 18)
EQUB 119 \ Vector 53 = ( 119, 0, 13)
EQUB 120 \ Vector 54 = ( 120, 0, 8)
EQUB 120 \ Vector 55 = ( 120, 0, 5) Section 4
EQUB 120 \ Vector 56 = ( 120, 0, 2) Section 5
EQUB 120 \ Vector 57 = ( 120, 0, -5)
EQUB 119 \ Vector 58 = ( 119, 0, -12)
EQUB 119 \ Vector 59 = ( 119, 0, -18)
EQUB 117 \ Vector 60 = ( 117, 0, -25)
EQUB 116 \ Vector 61 = ( 116, 0, -31)
EQUB 114 \ Vector 62 = ( 114, 0, -38)
EQUB 112 \ Vector 63 = ( 112, 0, -44)
EQUB 109 \ Vector 64 = ( 109, 0, -50)
EQUB 106 \ Vector 65 = ( 106, 0, -56)
EQUB 103 \ Vector 66 = ( 103, 0, -62)
EQUB 99 \ Vector 67 = ( 99, 0, -68)
EQUB 95 \ Vector 68 = ( 95, 0, -73)
EQUB 91 \ Vector 69 = ( 91, 0, -78)
EQUB 85 \ Vector 70 = ( 85, 1, -84)
EQUB 78 \ Vector 71 = ( 78, 3, -91)
EQUB 71 \ Vector 72 = ( 71, 4, -97)
EQUB 63 \ Vector 73 = ( 63, 5, -102)
EQUB 55 \ Vector 74 = ( 55, 7, -107)
EQUB 46 \ Vector 75 = ( 46, 8, -111)
EQUB 38 \ Vector 76 = ( 38, 10, -114)
EQUB 28 \ Vector 77 = ( 28, 11, -117)
EQUB 19 \ Vector 78 = ( 19, 12, -118)
EQUB 10 \ Vector 79 = ( 10, 14, -120)
EQUB 5 \ Vector 80 = ( 5, 14, -120) Section 6
EQUB 5 \ Vector 81 = ( 5, 12, -120) Section 7
EQUB 5 \ Vector 82 = ( 5, 10, -120)
EQUB 5 \ Vector 83 = ( 5, 8, -120)
EQUB 5 \ Vector 84 = ( 5, 6, -120)
EQUB 5 \ Vector 85 = ( 5, 4, -120)
EQUB 5 \ Vector 86 = ( 5, 2, -120)
EQUB 5 \ Vector 87 = ( 5, 0, -120)
EQUB 5 \ Vector 88 = ( 5, -2, -120)
EQUB 5 \ Vector 89 = ( 5, -4, -120)
EQUB 5 \ Vector 90 = ( 5, -4, -120) Section 8
EQUB 7 \ Vector 91 = ( 7, -4, -120) Section 9
EQUB 11 \ Vector 92 = ( 11, -4, -119)
EQUB 16 \ Vector 93 = ( 16, -4, -119)
EQUB 20 \ Vector 94 = ( 20, -4, -118)
EQUB 24 \ Vector 95 = ( 24, -4, -118)
EQUB 28 \ Vector 96 = ( 28, -4, -117)
EQUB 32 \ Vector 97 = ( 32, -4, -116)
EQUB 36 \ Vector 98 = ( 36, -4, -114)
EQUB 40 \ Vector 99 = ( 40, -4, -113)
EQUB 44 \ Vector 100 = ( 44, -4, -112)
EQUB 48 \ Vector 101 = ( 48, -4, -110)
EQUB 52 \ Vector 102 = ( 52, -4, -108)
EQUB 56 \ Vector 103 = ( 56, -4, -106)
EQUB 59 \ Vector 104 = ( 59, -4, -104)
EQUB 63 \ Vector 105 = ( 63, -4, -102)
EQUB 67 \ Vector 106 = ( 67, -4, -100)
EQUB 68 \ Vector 107 = ( 68, -4, -99) Section 10
EQUB 73 \ Vector 108 = ( 73, -4, -96) Section 11
EQUB 68 \ Vector 109 = ( 68, -3, -99) Section 12
EQUB 59 \ Vector 110 = ( 59, -3, -105)
EQUB 49 \ Vector 111 = ( 49, -2, -110)
EQUB 38 \ Vector 112 = ( 38, -2, -114)
EQUB 27 \ Vector 113 = ( 27, -2, -117)
EQUB 16 \ Vector 114 = ( 16, -1, -119)
EQUB 5 \ Vector 115 = ( 5, -1, -120)
EQUB -6 \ Vector 116 = ( -6, 0, -120)
EQUB -17 \ Vector 117 = ( -17, 0, -119)
EQUB -26 \ Vector 118 = ( -26, 0, -117)
EQUB -33 \ Vector 119 = ( -33, 0, -115)
EQUB -40 \ Vector 120 = ( -40, 0, -113)
EQUB -46 \ Vector 121 = ( -46, 0, -111)
EQUB -53 \ Vector 122 = ( -53, 0, -108)
EQUB -59 \ Vector 123 = ( -59, 0, -105)
EQUB -65 \ Vector 124 = ( -65, 0, -101)
EQUB -71 \ Vector 125 = ( -71, 0, -97)
EQUB -76 \ Vector 126 = ( -76, 0, -93)
EQUB -82 \ Vector 127 = ( -82, 0, -88)
EQUB -87 \ Vector 128 = ( -87, 0, -83)
EQUB -91 \ Vector 129 = ( -91, 0, -78)
EQUB -96 \ Vector 130 = ( -96, 0, -72)
EQUB -100 \ Vector 131 = (-100, 0, -66)
EQUB -104 \ Vector 132 = (-104, 0, -60)
EQUB -107 \ Vector 133 = (-107, 0, -54)
EQUB -110 \ Vector 134 = (-110, 0, -48)
EQUB -113 \ Vector 135 = (-113, 0, -41)
EQUB -114 \ Vector 136 = (-114, 0, -38) Section 13
EQUB -113 \ Vector 137 = (-113, 0, -40) Section 14
EQUB -111 \ Vector 138 = (-111, -1, -45)
EQUB -109 \ Vector 139 = (-109, -1, -50)
EQUB -107 \ Vector 140 = (-107, -2, -55)
EQUB -104 \ Vector 141 = (-104, -2, -60)
EQUB -101 \ Vector 142 = (-101, -3, -64)
EQUB -99 \ Vector 143 = ( -99, -3, -68)
EQUB -95 \ Vector 144 = ( -95, -4, -73)
EQUB -92 \ Vector 145 = ( -92, -4, -77)
EQUB -89 \ Vector 146 = ( -89, -5, -81)
EQUB -85 \ Vector 147 = ( -85, -5, -85)
EQUB -81 \ Vector 148 = ( -81, -6, -88)
EQUB -77 \ Vector 149 = ( -77, -6, -92)
EQUB -73 \ Vector 150 = ( -73, -7, -95)
EQUB -69 \ Vector 151 = ( -69, -7, -98)
EQUB -64 \ Vector 152 = ( -64, -8, -101)
EQUB -62 \ Vector 153 = ( -62, -8, -103) Section 15
EQUB -62 \ Vector 154 = ( -62, -4, -103) Section 16
EQUB -62 \ Vector 155 = ( -62, 0, -103)
EQUB -62 \ Vector 156 = ( -62, 4, -103)
EQUB -62 \ Vector 157 = ( -62, 8, -103)
EQUB -62 \ Vector 158 = ( -62, 11, -103)
EQUB -62 \ Vector 159 = ( -62, 15, -103)
EQUB -62 \ Vector 160 = ( -62, 15, -103) Section 17
EQUB -65 \ Vector 161 = ( -65, 15, -101) Section 18
EQUB -70 \ Vector 162 = ( -70, 14, -97)
EQUB -76 \ Vector 163 = ( -76, 14, -93)
EQUB -81 \ Vector 164 = ( -81, 13, -89)
EQUB -86 \ Vector 165 = ( -86, 13, -84)
EQUB -90 \ Vector 166 = ( -90, 12, -79)
EQUB -94 \ Vector 167 = ( -94, 12, -74)
EQUB -99 \ Vector 168 = ( -99, 11, -68)
EQUB -102 \ Vector 169 = (-102, 11, -63)
EQUB -106 \ Vector 170 = (-106, 10, -57)
EQUB -108 \ Vector 171 = (-108, 10, -52)
EQUB -110 \ Vector 172 = (-110, 9, -49)
EQUB -111 \ Vector 173 = (-111, 9, -45)
EQUB -113 \ Vector 174 = (-113, 8, -41)
EQUB -114 \ Vector 175 = (-114, 8, -38)
EQUB -115 \ Vector 176 = (-115, 7, -34)
EQUB -116 \ Vector 177 = (-116, 7, -30)
EQUB -117 \ Vector 178 = (-117, 6, -26)
EQUB -118 \ Vector 179 = (-118, 6, -23)
EQUB -119 \ Vector 180 = (-119, 5, -19)
EQUB -119 \ Vector 181 = (-119, 5, -15)
EQUB -120 \ Vector 182 = (-120, 5, -11)
EQUB -120 \ Vector 183 = (-120, 4, -7)
EQUB -120 \ Vector 184 = (-120, 4, -3)
EQUB -120 \ Vector 185 = (-120, 3, 1)
EQUB -120 \ Vector 186 = (-120, 3, 5)
EQUB -120 \ Vector 187 = (-120, 2, 9)
EQUB -119 \ Vector 188 = (-119, 2, 13)
EQUB -119 \ Vector 189 = (-119, 1, 17)
EQUB -118 \ Vector 190 = (-118, 1, 20)
EQUB -118 \ Vector 191 = (-118, 0, 24)
EQUB -117 \ Vector 192 = (-117, 0, 28)
EQUB -115 \ Vector 193 = (-115, -1, 34)
EQUB -112 \ Vector 194 = (-112, -2, 42)
EQUB -109 \ Vector 195 = (-109, -2, 50)
EQUB -106 \ Vector 196 = (-106, -3, 57)
EQUB -101 \ Vector 197 = (-101, -4, 64)
EQUB -97 \ Vector 198 = ( -97, -5, 71)
EQUB -91 \ Vector 199 = ( -91, -6, 78)
EQUB -86 \ Vector 200 = ( -86, -6, 84)
EQUB -83 \ Vector 201 = ( -83, -6, 87) Section 19
EQUB -81 \ Vector 202 = ( -81, -6, 88) Section 20
EQUB -77 \ Vector 203 = ( -77, -5, 92)
EQUB -73 \ Vector 204 = ( -73, -5, 95)
EQUB -69 \ Vector 205 = ( -69, -4, 98)
EQUB -64 \ Vector 206 = ( -64, -4, 101)
EQUB -60 \ Vector 207 = ( -60, -3, 104)
EQUB -55 \ Vector 208 = ( -55, -3, 107)
EQUB -50 \ Vector 209 = ( -50, -2, 109)
EQUB -46 \ Vector 210 = ( -46, -2, 111)
EQUB -41 \ Vector 211 = ( -41, -1, 113)
EQUB -36 \ Vector 212 = ( -36, -1, 115)
EQUB -31 \ Vector 213 = ( -31, 0, 116)
EQUB -26 \ Vector 214 = ( -26, 0, 117)
EQUB -20 \ Vector 215 = ( -20, 1, 118)
EQUB -15 \ Vector 216 = ( -15, 1, 119)
EQUB -10 \ Vector 217 = ( -10, 2, 120)
EQUB -5 \ Vector 218 = ( -5, 2, 120)
EQUB 1 \ Vector 219 = ( 1, 3, 120)
EQUB 6 \ Vector 220 = ( 6, 3, 120)
EQUB 11 \ Vector 221 = ( 11, 4, 119)
EQUB 16 \ Vector 222 = ( 16, 4, 119)
EQUB 21 \ Vector 223 = ( 21, 5, 118)
EQUB 27 \ Vector 224 = ( 27, 5, 117)
EQUB 32 \ Vector 225 = ( 32, 6, 116)
EQUB 37 \ Vector 226 = ( 37, 6, 114)
EQUB 42 \ Vector 227 = ( 42, 7, 112)
EQUB 47 \ Vector 228 = ( 47, 7, 111)
EQUB 51 \ Vector 229 = ( 51, 8, 108)
EQUB 56 \ Vector 230 = ( 56, 8, 106)
EQUB 61 \ Vector 231 = ( 61, 9, 103)
EQUB 65 \ Vector 232 = ( 65, 9, 101)
EQUB 70 \ Vector 233 = ( 70, 10, 98)
EQUB 74 \ Vector 234 = ( 74, 10, 95)
EQUB 76 \ Vector 235 = ( 76, 10, 93) Section 21
EQUB 74 \ Vector 236 = ( 74, 11, 94) Section 22
EQUB 70 \ Vector 237 = ( 70, 12, 97)
EQUB 66 \ Vector 238 = ( 66, 13, 100)
EQUB 62 \ Vector 239 = ( 62, 14, 103)
EQUB 58 \ Vector 240 = ( 58, 14, 105)
EQUB 54 \ Vector 241 = ( 54, 15, 107)
EQUB 49 \ Vector 242 = ( 49, 16, 109)
EQUB 45 \ Vector 243 = ( 45, 17, 111)
EQUB 40 \ Vector 244 = ( 40, 18, 113)
EQUB 36 \ Vector 245 = ( 36, 18, 115)
EQUB 31 \ Vector 246 = ( 31, 19, 116)
EQUB 26 \ Vector 247 = ( 26, 20, 117)
EQUB 22 \ Vector 248 = ( 22, 17, 118)
EQUB 17 \ Vector 249 = ( 17, 13, 119)
EQUB 12 \ Vector 250 = ( 12, 10, 119)
EQUB 8 \ Vector 251 = ( 8, 7, 120)
EQUB 3 \ Vector 252 = ( 3, 3, 120)
EQUB -2 \ Vector 253 = ( -2, 0, 120)
EQUB -5 \ Vector 254 = ( -5, 0, 120) Section 23
EQUB 0 \ This byte appears to be unused
\ ******************************************************************************
\
\ Name: yTrackSegmentI
\ Type: Variable
\ Category: Track data
\ Summary: Vector y-coordinates between two consecutive segments on the
\ inside of the track
\ Deep dive: The track data file format
\ The Silverstone track
\
\ ******************************************************************************
EQUB 0 \ Vector 0 = ( -4, 0, 120) Section 0
EQUB 0 \ Vector 1 = ( -2, 0, 120) Section 1
EQUB 0 \ Vector 2 = ( 2, 0, 120)
EQUB 0 \ Vector 3 = ( 6, 0, 120)
EQUB 0 \ Vector 4 = ( 10, 0, 120)
EQUB 0 \ Vector 5 = ( 14, 0, 119)
EQUB 0 \ Vector 6 = ( 18, 0, 119)
EQUB 0 \ Vector 7 = ( 21, 0, 118)
EQUB 0 \ Vector 8 = ( 25, 0, 117)
EQUB 0 \ Vector 9 = ( 29, 0, 116)
EQUB 0 \ Vector 10 = ( 33, 0, 115)
EQUB 0 \ Vector 11 = ( 37, 0, 114)
EQUB 0 \ Vector 12 = ( 40, 0, 113)
EQUB 0 \ Vector 13 = ( 44, 0, 112)
EQUB 0 \ Vector 14 = ( 48, 0, 110)
EQUB 0 \ Vector 15 = ( 51, 0, 109)
EQUB 0 \ Vector 16 = ( 60, 0, 104)
EQUB 0 \ Vector 17 = ( 74, 0, 94)
EQUB 0 \ Vector 18 = ( 87, 0, 83)
EQUB 0 \ Vector 19 = ( 97, 0, 70)
EQUB 0 \ Vector 20 = ( 106, 0, 56)
EQUB 0 \ Vector 21 = ( 113, 0, 41)
EQUB 0 \ Vector 22 = ( 114, 0, 38) Section 2
EQUB 0 \ Vector 23 = ( 110, 0, 49)
EQUB 0 \ Vector 24 = ( 105, 0, 59)
EQUB 0 \ Vector 25 = ( 99, 0, 68)
EQUB 0 \ Vector 26 = ( 92, 0, 77)
EQUB 0 \ Vector 27 = ( 84, 0, 86)
EQUB 0 \ Vector 28 = ( 75, 0, 93)
EQUB 0 \ Vector 29 = ( 66, 0, 100)
EQUB 0 \ Vector 30 = ( 57, 0, 106)
EQUB 0 \ Vector 31 = ( 46, 0, 111)
EQUB 0 \ Vector 32 = ( 36, 0, 115)
EQUB 0 \ Vector 33 = ( 25, 0, 117)
EQUB 0 \ Vector 34 = ( 28, 0, 116) Section 3
EQUB 0 \ Vector 35 = ( 46, 0, 111)
EQUB 0 \ Vector 36 = ( 63, 0, 102)
EQUB 0 \ Vector 37 = ( 79, 0, 91)
EQUB 0 \ Vector 38 = ( 87, 0, 82)
EQUB 0 \ Vector 39 = ( 91, 0, 78)
EQUB 0 \ Vector 40 = ( 94, 0, 74)
EQUB 0 \ Vector 41 = ( 97, 0, 70)
EQUB 0 \ Vector 42 = ( 100, 0, 66)
EQUB 0 \ Vector 43 = ( 103, 0, 62)
EQUB 0 \ Vector 44 = ( 105, 0, 57)
EQUB 0 \ Vector 45 = ( 108, 0, 53)
EQUB 0 \ Vector 46 = ( 110, 0, 48)
EQUB 0 \ Vector 47 = ( 112, 0, 43)
EQUB 0 \ Vector 48 = ( 114, 0, 38)
EQUB 0 \ Vector 49 = ( 115, 0, 33)
EQUB 0 \ Vector 50 = ( 117, 0, 28)
EQUB 0 \ Vector 51 = ( 118, 0, 23)
EQUB 0 \ Vector 52 = ( 119, 0, 18)
EQUB 0 \ Vector 53 = ( 119, 0, 13)
EQUB 0 \ Vector 54 = ( 120, 0, 8)
EQUB 0 \ Vector 55 = ( 120, 0, 5) Section 4
EQUB 0 \ Vector 56 = ( 120, 0, 2) Section 5
EQUB 0 \ Vector 57 = ( 120, 0, -5)
EQUB 0 \ Vector 58 = ( 119, 0, -12)
EQUB 0 \ Vector 59 = ( 119, 0, -18)
EQUB 0 \ Vector 60 = ( 117, 0, -25)
EQUB 0 \ Vector 61 = ( 116, 0, -31)
EQUB 0 \ Vector 62 = ( 114, 0, -38)
EQUB 0 \ Vector 63 = ( 112, 0, -44)
EQUB 0 \ Vector 64 = ( 109, 0, -50)
EQUB 0 \ Vector 65 = ( 106, 0, -56)
EQUB 0 \ Vector 66 = ( 103, 0, -62)
EQUB 0 \ Vector 67 = ( 99, 0, -68)
EQUB 0 \ Vector 68 = ( 95, 0, -73)
EQUB 0 \ Vector 69 = ( 91, 0, -78)
EQUB 1 \ Vector 70 = ( 85, 1, -84)
EQUB 3 \ Vector 71 = ( 78, 3, -91)
EQUB 4 \ Vector 72 = ( 71, 4, -97)
EQUB 5 \ Vector 73 = ( 63, 5, -102)
EQUB 7 \ Vector 74 = ( 55, 7, -107)
EQUB 8 \ Vector 75 = ( 46, 8, -111)
EQUB 10 \ Vector 76 = ( 38, 10, -114)
EQUB 11 \ Vector 77 = ( 28, 11, -117)
EQUB 12 \ Vector 78 = ( 19, 12, -118)
EQUB 14 \ Vector 79 = ( 10, 14, -120)
EQUB 14 \ Vector 80 = ( 5, 14, -120) Section 6
EQUB 12 \ Vector 81 = ( 5, 12, -120) Section 7
EQUB 10 \ Vector 82 = ( 5, 10, -120)
EQUB 8 \ Vector 83 = ( 5, 8, -120)
EQUB 6 \ Vector 84 = ( 5, 6, -120)
EQUB 4 \ Vector 85 = ( 5, 4, -120)
EQUB 2 \ Vector 86 = ( 5, 2, -120)
EQUB 0 \ Vector 87 = ( 5, 0, -120)
EQUB -2 \ Vector 88 = ( 5, -2, -120)
EQUB -4 \ Vector 89 = ( 5, -4, -120)
EQUB -4 \ Vector 90 = ( 5, -4, -120) Section 8
EQUB -4 \ Vector 91 = ( 7, -4, -120) Section 9
EQUB -4 \ Vector 92 = ( 11, -4, -119)
EQUB -4 \ Vector 93 = ( 16, -4, -119)
EQUB -4 \ Vector 94 = ( 20, -4, -118)
EQUB -4 \ Vector 95 = ( 24, -4, -118)
EQUB -4 \ Vector 96 = ( 28, -4, -117)
EQUB -4 \ Vector 97 = ( 32, -4, -116)
EQUB -4 \ Vector 98 = ( 36, -4, -114)
EQUB -4 \ Vector 99 = ( 40, -4, -113)
EQUB -4 \ Vector 100 = ( 44, -4, -112)
EQUB -4 \ Vector 101 = ( 48, -4, -110)
EQUB -4 \ Vector 102 = ( 52, -4, -108)
EQUB -4 \ Vector 103 = ( 56, -4, -106)
EQUB -4 \ Vector 104 = ( 59, -4, -104)
EQUB -4 \ Vector 105 = ( 63, -4, -102)
EQUB -4 \ Vector 106 = ( 67, -4, -100)
EQUB -4 \ Vector 107 = ( 68, -4, -99) Section 10
EQUB -4 \ Vector 108 = ( 73, -4, -96) Section 11
EQUB -3 \ Vector 109 = ( 68, -3, -99) Section 12
EQUB -3 \ Vector 110 = ( 59, -3, -105)
EQUB -2 \ Vector 111 = ( 49, -2, -110)
EQUB -2 \ Vector 112 = ( 38, -2, -114)
EQUB -2 \ Vector 113 = ( 27, -2, -117)
EQUB -1 \ Vector 114 = ( 16, -1, -119)
EQUB -1 \ Vector 115 = ( 5, -1, -120)
EQUB 0 \ Vector 116 = ( -6, 0, -120)
EQUB 0 \ Vector 117 = ( -17, 0, -119)
EQUB 0 \ Vector 118 = ( -26, 0, -117)
EQUB 0 \ Vector 119 = ( -33, 0, -115)
EQUB 0 \ Vector 120 = ( -40, 0, -113)
EQUB 0 \ Vector 121 = ( -46, 0, -111)
EQUB 0 \ Vector 122 = ( -53, 0, -108)
EQUB 0 \ Vector 123 = ( -59, 0, -105)
EQUB 0 \ Vector 124 = ( -65, 0, -101)
EQUB 0 \ Vector 125 = ( -71, 0, -97)
EQUB 0 \ Vector 126 = ( -76, 0, -93)
EQUB 0 \ Vector 127 = ( -82, 0, -88)
EQUB 0 \ Vector 128 = ( -87, 0, -83)
EQUB 0 \ Vector 129 = ( -91, 0, -78)
EQUB 0 \ Vector 130 = ( -96, 0, -72)
EQUB 0 \ Vector 131 = (-100, 0, -66)
EQUB 0 \ Vector 132 = (-104, 0, -60)
EQUB 0 \ Vector 133 = (-107, 0, -54)
EQUB 0 \ Vector 134 = (-110, 0, -48)
EQUB 0 \ Vector 135 = (-113, 0, -41)
EQUB 0 \ Vector 136 = (-114, 0, -38) Section 13
EQUB 0 \ Vector 137 = (-113, 0, -40) Section 14
EQUB -1 \ Vector 138 = (-111, -1, -45)
EQUB -1 \ Vector 139 = (-109, -1, -50)
EQUB -2 \ Vector 140 = (-107, -2, -55)
EQUB -2 \ Vector 141 = (-104, -2, -60)
EQUB -3 \ Vector 142 = (-101, -3, -64)
EQUB -3 \ Vector 143 = ( -99, -3, -68)
EQUB -4 \ Vector 144 = ( -95, -4, -73)
EQUB -4 \ Vector 145 = ( -92, -4, -77)
EQUB -5 \ Vector 146 = ( -89, -5, -81)
EQUB -5 \ Vector 147 = ( -85, -5, -85)
EQUB -6 \ Vector 148 = ( -81, -6, -88)
EQUB -6 \ Vector 149 = ( -77, -6, -92)
EQUB -7 \ Vector 150 = ( -73, -7, -95)
EQUB -7 \ Vector 151 = ( -69, -7, -98)
EQUB -8 \ Vector 152 = ( -64, -8, -101)
EQUB -8 \ Vector 153 = ( -62, -8, -103) Section 15
EQUB -4 \ Vector 154 = ( -62, -4, -103) Section 16
EQUB 0 \ Vector 155 = ( -62, 0, -103)
EQUB 4 \ Vector 156 = ( -62, 4, -103)
EQUB 8 \ Vector 157 = ( -62, 8, -103)
EQUB 11 \ Vector 158 = ( -62, 11, -103)
EQUB 15 \ Vector 159 = ( -62, 15, -103)
EQUB 15 \ Vector 160 = ( -62, 15, -103) Section 17
EQUB 15 \ Vector 161 = ( -65, 15, -101) Section 18