Kristoffer Eriksson
<5357>
· Text 2409 · w8 · kommentar
1985-12-30 03:26
Ärende: Nya kommandon
Du ska INTE hoppa någon speciell stanns efter kompilering (Syntaxkoll)
av instruktionerna, utan bara göra RET, såvida det inte finns anledning
att ge ett felmeddelande i stället. Tänk på att det är instruktioner
(med eller utan radnummer) du behandlar, inte kommandon (RUN, LIST odyl).
HL pekar in i inmatningsbufferten närmast efter instruktionsordet som
har blivit "förbruka" när instruktionen identifierades. DE pekar på
kompileringsbufferten där internkoden ska byggas upp. När du har gått
igenom instruktionen ska HL ha stegats igenom alla data som hör till
instruktionen, och alltså peka på nästa instruktion (":", ELSE ...) eller
radslut (CR). När du gjort RET fortsätter systemet med övriga instruktioner
på raden, och om HL pekar på galna saker får man förstås ett felmeddelande.
Början av parametrarna brukar INTE bli sabbade, sker något sådant är
det nog ditt eget fel.
Att hoppa direkt ut i kommandomode är nog rätt besvärligt, det gäller
ju att återställa stacken och sån't, dessutom är det ju olika adresser
på olika versioner av BASIC-prommarna (tänk om det kommer någon ny
version, fast det gör det väl inte). Om du måste ut ändå kan du kanske
använda ett felanrop? RST 16; DEFB felkod eller LD A,felkod; CALL 18.