8.1.2. Vnitřní interpret NEXT

section id="ff1802.next" xreflabel="next", xref.ff1802.next

Jako první se podíváme na smyčku vnitřního interpretu a rozebereme si ji. Jak jsem již zmínil, tato implemetace FORTHu používá technologii nepřímo zřetězeného kódu a proto vychází z kódu:

next:   (ip+)→w
        jump (w+)

Nyní tedy vlastní kód smyčky. První část, instrukci (ip+)→w.

000235 0091                          ; NEXT INNER INTERPRETER
000236 0091 D3                       SEP R3          ; LEAVE RC AT NEXT
                                     ; (ip+)→w     # store instruction address
                                     ;               # to w
000237 0092 4A               NEXT:   LDA RA          ; (IP+)
000238 0093 BB                       PHI RB          ; →W.hi
000239 0094 4A                       LDA RA          ; (IP+)
000240 0095 AB                       PLO RB          ; →W.lo

První instrukce není součástí konstrukce získáni adresy dalšího slova, je zde jako součást mechanizmu volání vnitřního interpretu NEXT a uzavírá smyčku tohoto interpretu. Význam dalších instrukcí je zřejmý z komentářů, přečteme dva bajty tvořící slovo na adrese ukazované IP (RA) a uložíme do registru W (RB). Následující, pokračování dokončuje smyčku vnitřního interpretu.

                                     ; (w+)→pc
000241 0096 4B               WBR:    LDA RB          ; (W+)
000242 0097 B3                       PHI R3          ; → PC.hi
000243 0098 4B                       LDA RB          ; (W+)
000244 0099 A3                       PLO R3          ; → PC.lo
000245 009A 3091                     BR NEXT - 1     ; Continue on PC

Čtyři instrukce zajistí operaci (w+)→pc tedy načtení adresy v poli CF a její uložení do čítače instrukcí PC. Po vykonání tohoto kódu registr W ukazuje na PF vykonávaného slova. Poslední instrukce realizuje současně uzavření smyčky vnitřního interpretu a převedení řízení (skok) na získanou adresu jenž je uložena PC.