Fallout2 Opcode Playground

Opcodes: 8000-801F, 8020-803F, 8040-805F,
8060-807F, 8080-809F, 80A0-80BF, 80C0-80DF,
80E0-80FF, 8100-811F, 8120-813F, 8140-8155
 
List Opcodes:Used in Fallout 2Named
Known to DecompilerDescribed

Descriptions for 8030

Opcode8030, while p1 do begin
>> subfunction   while p1 do begin

Author: legacy information

22.06.02 13:29:01

8030; while; адрес перехода, условие; результат не возвращается.
Условный переход, если условие ложно. От предыдущей команды отличается тем, что при истинном условии не удаляет адрес перехода из стека, что обеспечивает в скриптах механизм циклов (для следующей итерации производится безусловный переход на код, вычисляющий условие).

8030 - как известно, эта команда практически идентична 802F. Но у нее есть одна особенность - если переход по ней не происходит, то адрес перехода остается в стеке. Используется это для организации циклов в таком виде:
00000000: C001 00000006
00000001: <вычисление условия>
00000002: 8030
00000003: <тело цикла>
00000004: C001 00000001 - переход сразу на вычисление условия, т.к. адрес сохранился в стеке.
00000005: 8004
00000006: <выход из цикла>