| English | Português (Brasil) |
Um programa contém:
program;type;const;var;begin;end;Exemplo:
program Minimal;
const
DefaultBackgroundColor: nes_color = $21;
var
BackgroundColor: nes_color;
FrameCounter: byte;
RenderingEnabled: boolean;
procedure Initialize(Start: byte; Enabled: boolean);
begin
FrameCounter := Start;
RenderingEnabled := Enabled;
end;
begin
BackgroundColor := DefaultBackgroundColor;
Initialize($00, true);
nes.set_background_color(BackgroundColor);
nes.run;
end.
As seções de declaração devem aparecer nesta ordem: type, const e var,
seguidas por procedimentos e funções
intercalados. O bloco principal contém
a sequência de inicialização de nível superior e pode continuar com a lógica
da thread principal sincronizada por quadros após nes.run.
A seção type pode declarar enumerações nominais e
records de layout fixo. Campos de record podem usar qualquer enum
declarado na seção; campos record aninhados continuam não suportados.
Os registros estáticos nes.on_update(Procedure) e nes.on_vblank(Procedure),
quando presentes, pertencem à sequência incondicional de inicialização de nível
superior antes de nes.run. Consulte Callbacks de quadro.
O comando opcional nes.load_background() também é uma instrução incondicional
de inicialização de nível superior antes de nes.run. Ele não recebe argumentos
e requer dados de nametable configurados.
Atualizações de fundo em runtime limitadas podem ser preparadas a partir do código principal ou de procedimentos. Suas operações que modificam a fila não são permitidas no caminho de um callback de VBlank; a consulta simples de estouro é segura nesse contexto.