Demo_mode_flag = ramaddr( [color= #ff0000;]$[/color][color= #ff0000;]FFFFFFF0[/color] ) [color= #adadad; font-style: italic;]; 1 if a demo is playing (2 bytes)[/color]
Demo_number = ramaddr( [color= #ff0000;]$[/color][color= #ff0000;]FFFFFFF2[/color] ) [color= #adadad; font-style: italic;]; which demo will play next (2 bytes)[/color]
Ending_demo_number = ramaddr( [color= #ff0000;]$[/color][color= #ff0000;]FFFFFFF4[/color] ) [color= #adadad; font-style: italic;]; zone for the ending demos (2 bytes, unused)[/color]
Graphics_Flags = ramaddr( [color= #ff0000;]$[/color][color= #ff0000;]FFFFFFF8[/color] ) [color= #adadad; font-style: italic;]; misc. bitfield[/color]
Debug_mode_flag = ramaddr( [color= #ff0000;]$[/color][color= #ff0000;]FFFFFFFA[/color] ) [color= #adadad; font-style: italic;]; (2 bytes)[/color]
Checksum_fourcc = ramaddr( [color= #ff0000;]$[/color][color= #ff0000;]FFFFFFFC[/color] ) [color= #adadad; font-style: italic;]; (4 bytes)[/color]
And here's another way to declare them:
phase [color= #ff0000;]$[/color][color= #ff0000;]FFFFFFF0[/color]
Demo_mode_flag: ds.[color= #00bfff;]w[/color] [color= #ff0000;]1[/color] [color= #adadad; font-style: italic;]; 1 if a demo is playing (2 bytes)[/color]
Demo_number: ds.[color= #00bfff;]w[/color] [color= #ff0000;]1[/color] [color= #adadad; font-style: italic;]; which demo will play next (2 bytes)[/color]
Ending_demo_number: ds.[color= #00bfff;]w[/color] [color= #ff0000;]1[/color] [color= #adadad; font-style: italic;]; zone for the ending demos (2 bytes, unused)[/color]
ds.[color= #00bfff;]w[/color] [color= #ff0000;]1[/color]
Graphics_Flags: ds.[color= #00bfff;]w[/color] [color= #ff0000;]1[/color] [color= #adadad; font-style: italic;]; misc. bitfield[/color]
Debug_mode_flag: ds.[color= #00bfff;]w[/color] [color= #ff0000;]1[/color] [color= #adadad; font-style: italic;]; (2 bytes)[/color]
Checksum_fourcc: ds.[color= #00bfff;]l[/color] [color= #ff0000;]1[/color] [color= #adadad; font-style: italic;]; (4 bytes)[/color]
dephase
![color= #00CC66;]org[/color] [color= #ff0000;]0[/color]
Notice how the unlabelled variable is easily noticeable. I believe this method would be better because we don't have to type the addresses for every variable. Also, it makes it easy to give several labels to the same location (this would be useful for *_End labels, amongst others).
However, I only tested this as well as Chunk_Table and Level_Layout. I don't quite understand the problem ramaddr tries to solve, but if this method makes it happen again, then we won't be able to use it.


07