home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Game Killer
/
Game_Killer.bin
/
719.STATRECS.DES
< prev
next >
Wrap
Text File
|
1993-02-04
|
11KB
|
814 lines
; DESCRIPTION FILE FOR STATIC SCENERY RECORDS
;
; This file contains the descriptions of records used in static scenery
; files. It is intended to be called by actual description files
; jump over subroutines
>START #J
; *******************************
; * ROUTINE FOR VAR NAME OUTPUT *
; *******************************
:VAR_MARK
2 -
>VM_0284 #I V!0x0282
0 #T _Counter ; no numerical output, only var name
>VAL_HEX #M ; mark VAL_HEX as value output routine
0 #E
:VM_0284
>VM_0286 #I V!0x0284
0 #T _CrashFlag
>VAL_HEX #M
0 #E
:VM_0286
>VM_0288 #I V!0x0286
0 #T _MapView
>VAL_HEX #M
0 #E
:VM_0288
>VM_028A #I V!0x0288
0 #T _FuelBox
>VAL_HEX #M
0 #E
:VM_028A
>VM_028C #I V!0x028A
0 #T _Version
>VAL_HEX #M
0 #E
:VM_028C
>VM_0290 #I V!0x028C
0 #T _Time
>VAL_TIME #M
0 #E
:VM_0290
>VM_0292 #I V!0x0290
0 #T _LoEast
>VAL_HEX #M
0 #E
:VM_0292
>VM_0294 #I V!0x0292
0 #T _HiEast_
>VAL_C #M
0 #E
:VM_0294
>VM_0296 #I V!0x0294
0 #T _LoAlt
>VAL_I1 #M
0 #E
:VM_0296
>VM_0298 #I V!0x0296
0 #T _HiAlt__
>VAL_ALT #M
0 #E
:VM_0298
>VM_029A #I V!0x0298
0 #T _LoNorth
>VAL_HEX #M
0 #E
:VM_029A
>VM_029C #I V!0x029A
0 #T _HiNorth
>VAL_C #M
0 #E
:VM_029C
>VM_029E #I V!0x029C
0 #T _DeltaEast
>VAL_DC #M
0 #E
:VM_029E
>VM_02A0 #I V!0x029E
0 #T _DeltaAlt
>VAL_DC #M
0 #E
:VM_02A0
>VM_02E2 #I V!0x02A0
0 #T _DeltaNorth
>VAL_DC #M
0 #E
:VM_02E2
>VM_02EF #I V!0x02E2
0 #T _Surface
>VAL_COL #M
0 #E
:VM_02EF
>VM_02F6 #I V!0x02EF
0 #T _MSL_Alt
>VAL_I #M
0 #E
:VM_02F6
>VM_02F8 #I V!0x02F6
0 #T _Inner_Marker
>VAL_HEX #M
0 #E
:VM_02F8
>VM_02FA #I V!0x02F8
0 #T _Outer_Marker
>VAL_HEX #M
0 #E
:VM_02FA
>VM_02FC #I V!0x02FA
0 #T _Middle_Marker
>VAL_HEX #M
0 #E
:VM_02FC
>VM_02FE #I V!0x02FC
0 #T _Glideslope
>VAL_GLI #M
0 #E
:VM_02FE
>VM_HEX #I V!0x02FE
0 #T _Course
>VAL_DEG #M
0 #E
:VM_HEX ; standard var output
2 X- var_
>VAL_HEX #M
0 #E
; *********************************
; * ROUTINES FOR VAR VALUE OUTPUT *
; *********************************
:VAL_ALT ; VALUE AS ALTITUDE HI WORD
2 -
0 #R V*256
4 I-
0 #E
:VAL_C ; AS COORDINATE
2 C
0 #E
:VAL_COL ; AS A COLOUR
2 -
>COLOUR #C
0 #E
:VAL_DC ; AS DELTA COORD
2 c
4 J- (|m)
0 #E
:VAL_DEG ; AS DEGREE
2 G
0 #E
:VAL_GLI ; AS GLIDESLOPE
2 -
0 #R V*256 VASI slope is in 1/10 degrees
0 #R V/10
4 J-
0 #E
:VAL_HEX ; AS HEX
2 X
0 #E
:VAL_I ; AS AN INTEGER
2 I
0 #E
:VAL_I1 ; AS INTEGER, 1 BYTE DECIMAL
2 J
0 #E
:VAL_TIME ; AS TIME
2 E |00#Day#Dusk#03#Night
0 #E
; *********************
; * OTHER SUBROUTINES *
; *********************
; outputs a delta point with 3 delta and 3 actual coordinates
:REF_XYZ
2 c |E
0 #R V+X add delta to ref. point coord
4 C- (|)
2 c |A
0 #R V+Z
4 J- (|)
2 c |N
0 #R V+Y
4 C- (|)
0 #E
; inserts a link point and outputs offset and real address
:LINK_PT
2 i$
0 #R V+Q add record offset to field value
3 X- at_ print skip-to point
0 #E
; converts colour codes;
:COLOUR
0 #R V&0x0F ; reset hi nibbles
1 E- |Black#D.Green#D.Blue#D.Cyan#Orange#L.Grey#L.Blue#Cyan#Brown#Yellow#D.Grey#L.Green#Red#Gold#??#White
0 #E
; *************************
; * EXECUTION BEGINS HERE *
; *************************
:START
; -- 00h Strobe --
0 -R #Strobe:
>REF_XYZ #C
; -- 01h Move to 3D point --
1 -R #Moveto
>REF_XYZ #C
; -- 02h Draw to 3D point --
2 -R #Drawto
>REF_XYZ #C
; -- 03h Simple runway --
3 -R #Strip:
1 G |,
2 -
0 #R V*2 field is length / 2
2 I- |m_long,
2 -
0 #R V*2 field is width / 2
2 I- |m_wide
; -- 04h ?? --
4 -R #Point_list:
; loop until a 0xFF byte found
:04LOOP
1 I
>04LOOP #I V!0xFF
; -- 05h NDB --
5 -R #NDB:
2 X __|kHz,
4 C |E
4 C |N
; -- 07h ?? --
7 XR #|_???
; -- 0Bh JUMP --
11 -R #Jump
>LINK_PT #C
; build in A the address of the following record
0 #R A=Q
0 #R A+3
; dump to next link point, if next rec is not equal to it
>0B_NXT #I A=@
-1 D #Embedded:_
:0B_NXT
; -- 0Ch ?? --
12 XR #|_???
1 X
1 X
; -- 0Eh/8Eh JUMP ON JUMP
; code for 8Eh jumps to code for 0Eh
142 -R #Delayed_CALL
>0E_COD #J
14 -R #Delayed_call
:0E_COD
>LINK_PT #C
; -- 0Fh ?? --
15 -R #ExecProc
1 X no._|,
1 I class_|,
2 i address_
0 #R V+Q add record offset to field value
3 X- at_|, print skip-to point
1 I nest_level_
; -- 10h ?? --
16 -R #Jump
>LINK_PT #C
1 X on_pt._no._
1 X -_vect._no._
; -- 12h Line colour --
18 -R #Line_colour:
1 -
>COLOUR #C
; -- 13h Line multi-colour --
19 -R #Line_colour:
1 X day_|,
1 X dusk_|,
1 X night_|,
1 X (
1 X
1 X |,
1 X
1 X
1 X |)
; -- 14h Surface multi-colour --
20 -R #Surface_colour:
1 X day_|,
1 X dusk_|,
1 X night_|,
1 X (
1 X
1 X |,
1 X
1 X
1 X |)
;
; -- 15h Axis roto-translation --
;
21 -R #Rotation:_
2 gS |p
2 gT |b
2 GU |h,
0 #T #___tran.
>REF_XYZ #C
0 #T _Call
>LINK_PT #C
;
; -- 16h Axis rotation --
;
22 -R #Rotation:_
2 gS |p
2 gT |b
2 GU |h;
0 #T _Call
>LINK_PT #C
;
; -- 17h Return --
;
23 XR #RET
0 #H --------------------
;
; -- 18h Call --
;
24 XR #Call
>LINK_PT #C
;
; -- 19h Return --
;
25 XR #RET
0 #H --------------------
;
; -- 1Ah Equ vars --
;
26 -R #Set
>VAR_MARK #C
>VAR_MARK #C =
;
; -- 1Bh Line night colour on --
;
27 -R #Line_night_colour_ON
;
; -- 1Ch Line night colour OFF --
;
28 -R #Line_night_colour_OFF
;
; -- 1Dh VOR --
;
29 -R #VOR:
2 Y 1|MHz,
4 CX |E
4 CY |N
;
; -- 1Eh ATC --
;
30 -R #ATC:
2 I$ |_bytes;
2 Y 1|MHz,
1 I runways:_
1 I
1 I
1 I |;
1 X
3 S "|"(??),_text:
-1 S #"|"
;
; -- 1Fh Call --
;
31 XR #Call
>LINK_PT #C
;
; -- 20h Jump on var value --
;
32 -R #Jump
>LINK_PT #C
>VAR_MARK #C on
0 #N outside
0 #N -
;
; -- 21h Jump on 2 var values --
;
33 -R #Jump
>LINK_PT #C
>VAR_MARK #C #__on
0 #N outside
0 #N -
>VAR_MARK #C OR
0 #N outside
0 #N -
;
; -- 22h Jump on 3 var values --
;
34 -R #Jump
>LINK_PT #C
>VAR_MARK #C #__on
0 #N outside
0 #N -
>VAR_MARK #C #____
0 #N outside
0 #N -
>VAR_MARK #C #____
0 #N outside
0 #N -
;
; -- 23h Jump if NAND --
;
35 -R #Jump
>LINK_PT #C
>VAR_MARK #C if_NOT_(
2 X AND_|)
;
; -- 24h Reference point --
;
36 -R #---_REF._PT:
1 IS scale:_|,
4 CX |E
4 JZ |m
4 CY |N
;
; -- 25h Set variable --
;
37 -R #Set
>VAR_MARK #C
0 #N to
;
; -- 27h Control vector --
;
39 -R #Vector
2 c |x
2 c |z
2 c |y,
1 X as_pt._no_
;
; -- 28h Jump on var compare --
;
40 -R #Jump
1 -
0 #R A=V store flag for later
>LINK_PT #C
>VAR_MARK #C if output var1
>28_04 #I A!2
0 #T _> if A==2, test is >
>28_var2 #J
:28_04
>28_?? #I A!4
0 #T _< if A==4, test is <
:28_var2
>VAR_MARK #C
>28_NXT #J
:28_??
0 #R V=A restore flag
1 X- |??
2 X value_
:28_NXT
;
; -- 29h Close path --
;
41 -R #Close_path
;
; -- 2Ah Dotted line --
;
42 -R #Dotted_Line:
0 #T #___from
>REF_XYZ #C
0 #T #_____to
>REF_XYZ #C
1 - #
0 #R V*2 field is point # / 2
2 I- __|_dots
;
; -- 2Bh Dashed line --
;
43 -R #Dashed_line:
0 #T #___from
>REF_XYZ #C
0 #T #_____to
>REF_XYZ #C
1 I #__|_dashes
;
; -- 2Eh ?? --
;
46 XR #|_???
2 X
;
; -- 2Fh Path --
;
47 -R #Path
;
; -- 30h --
;
48 XR #
7 D ???
;
; -- 31h 3D point --
;
49 -R #Pt.
1 I |:
>REF_XYZ #C
;
; -- 32h Move to 3D point --
;
50 -R #Move_to_pt_no.
1 I
;
; -- 33h Draw to 3D point --
;
51 -R #Draw_to_pt_no.
1 I
;
; -- 35h Draw dot --
;
53 -R #Dot
1 i at_pt._
;
; -- 36h ?? --
;
54 XR #|_???
1 D
;
; -- 3Bh Set elevation level --
;
59 -R #Elev._level_at
4 J |m
;
; -- 3Ch ?? --
;
60 XR #|_???
3 D
;
; -- 3Dh Jump if outside area --
;
61 -R #Jump
>LINK_PT #C
4 C #__if_outside_|E_-
4 C |E,
4 C |N_-
4 C |N
;
; -- 3Eh Jump if outside area --
;
62 -R #===JUMP
>LINK_PT #C
2 C if_outside_|N
2 C |E
2 I +-|FSu
0 #R V*256 FSu to meters
4 I- (|m) print m value without reloading field
;
; -- 40h/C0h Move to point --
; both jump to code for 41h
;
192 -R #MOVEto
>REF_XY #J
64 -R #Moveto
>REF_XY #J
;
; -- 41h Draw to point --
;
65 -R #Drawto
:REF_XY
2 c |E
0 #R V+X add delta to ref. point coord
4 C- (|)
2 c |N
0 #R V+Y
4 C- (|)
;
; -- 42h Jump if outside area --
;
66 -R #Jump
>LINK_PT #C
2 C if_outside_
2 C -_|E,
2 C
2 C -_|N
;
; -- 43h ?? --
;
67 -R #Jump
>LINK_PT #C
4 C -_|E
4 J |m
4 C |N
14 D #__???
;
; -- 44h Array of points --
;
68 -R #Point_array:
1 i from_point_
0 #T #___from
>REF_XYZ #C
0 #T #_____to
>REF_XYZ #C
1 I #__|_points
;
; -- 45h Thermal generator --
;
69 -R #Thermal:
2 I$ (|_bytes)
4 CX |E
4 JZ |m
4 CY |N
2 GD |;
1 X |(?)
2 I #__width:_|m,
2 X |(??)
2 I therm._height:_|ft,
2 X |(??)
2 I length:_|m
9 D #__???
;
; -- 47h ?? --
;
71 XR #
7 D ???
;
; -- 49h Runways end lights --
;
73 -R #End_lights:
4 C |E
4 J |m
4 C |N
2 G #__|,
1 X lights:_
1 I strobe_length:_
2 -
0 #R V/10 VASI glideslope is in 1/10 deg
2 I- VASI_gl.:_|°
1 X |(?)
;
; -- 4Ah ?? --
;
74 XR #Surface
;
; -- 4Bh Jump4B --
;
75 XR #Jump
>LINK_PT #C
;
; -- 4Ch ?? --
;
76 XR #|_???
1 D
;
; -- 4Dh ?? --
;
77 XR #|_???
2 I$ (|_bytes,
4 C |E
4 Y |m
4 C |N)
-1 D #
;
; -- 4Eh ?? --
;
78 XR #
3 D ???
;
; -- 4Fh ILS --
;
79 -R #ILS:
2 Y 1|MHz,
4 CX |E
4 CY |N,
2 -
0 #R V*256 course is in 1/3 degrees
0 #R V/3
4 J- course:_|°
2 -
0 #R V*256 glide slope is in 1/9100 degrees
0 #R V/9100
2 J- gl.:_|°
;
; -- 50/D0h Runway --
;
208 -R #RUNWAY:
>50_COD #J
80 -R #Runway:
:50_COD
4 CX |E
4 JZ |m
4 CY |N;
1 B design_elements:_|
1 X #___Col:_rwy_|,
1 X edge_|,
1 X thrsh_|,
1 X touchd_|,
1 X fixd_|,
1 X dash_|,
1 X no._
1 I #___rwy_no.:_|
1 E |no_des.#LEFT/RIGHT#RIGHT/LEFT#CENTER
1 X #___dnside_lights:_
2 -
0 #R V*256 VASI slope is in 1/10 degrees
0 #R V/10
4 J- VASI_slope:_|°
1 X #___upside_lights:_
2 -
0 #R V*256 VASI slope is in 1/10 degrees
0 #R V/10
4 J- VASI_slope:_|°
2 G #___direction:_|,
2 I witdh:_|m,
2 I length:_|m
;
; -- 51h Side list end --
;
81 -R #Side_list_end
;
; -- 52h ?? --
;
82 XR #
1 X | ???
;
; -- 53h Building --
;
83 -R #Building
-1 D
;
; -- 58h 3D text --
;
88 -R #3D_Text
8 D ???
1 I #___size:_
32 S #---text:_"|",
1 X |(??)
;
; -- 5Ah 3D triangle --
;
90 -R #Triangle vector
2 i |y
2 i |z
2 i |x;
1 I points:_
1 I
1 I
;
; -- 62h ?? --
;
98 XR #
9 D ???
;
; -- 6Fh ?? --
;
111 XR #
10 D ???
;
; -- 79h End --
;
121 -R #END
0 #H ====================