| English | Português (Brasil) |
Diagnósticos de geração de código utilizam o intervalo E5000-E5999.
Gatilho:
python -m nes_pascal.cli examples/minimal.nsp -o build/minimal.nes
com o cc65 ausente no PATH.
Saída esperada do compilador:
E5001: missing toolchain component: ca65 and ld65.
PATH.Gatilho:
ca65 ou ld65 rejeita sua entrada gerada
Saída esperada do compilador:
E5002: ca65 failed.
<tool output>
$0300-$07FF. A fonte de regressão focada é
tests/fixtures/diagnostics/user_ram_exhausted.nsp, utilizada com um layout interno
de teste deliberadamente restrito.Saída esperada do compilador:
E5003 program.nsp:5:5
User RAM cannot allocate Second: requested 1 byte, but 0 bytes remain in User RAM.
tests/fixtures/diagnostics/temporary_ram_exhausted.nsp, cuja
expressão aninhada necessita de 17 bytes temporários.Saída esperada do compilador:
E5004 temporary_ram_exhausted.nsp:1:1
Expression and loop code requires 17 temporary bytes, but the Zero Page temporaries region has only 16 bytes available.
$00FF, reservas sobrepostas, uma
região além de $07FF ou um shadow de OAM não alinhado a página.MemoryLayoutSettings malformados; nenhuma opção pública de CLI altera esses valores.Saída esperada do compilador:
E5005 <input>:1:1
The OAM shadow region must start on a 256-byte page boundary.
Saída esperada do compilador:
E5006 <input>:1:1
Generated segment for User RAM requires 1281 bytes, but its RAM region contains 1280 bytes.
$0100-$01FF) do que a ABI permite. Cada JSR ativo
reserva dois bytes para o endereço de retorno; a capacidade restante mantém 10
bytes para frames de JSR do runtime e folga de NMI, portanto a profundidade
máxima suportada de chamadas de fonte é 123. Recursão é rejeitada antes com
E3014, então este diagnóstico só ocorre para cadeias de chamadas acíclicas
longas.tests/test_functions.py
(124 funções encadeadas pelo caminho mais profundo emitem este diagnóstico).Saída esperada do compilador:
E5007 <input>:1:1
Callable nesting depth of 124 exceeds the supported maximum of 123. Each nested procedure or function call consumes two bytes of the 256-byte NES hardware stack for its JSR return address, and 10 bytes are reserved for runtime and NMI stack usage.