Forth-Spezialisten bitte vortreten!

  • Nein, es geht nicht im Forth, aber eine Sprache mit Forth-ähnlicher Syntax, also UPN:

    Ich habe mir vor ein paar Tagen den Semi-Compiler PL1 (Quellcode für A86-Assembler ist ebenfalls enthalten) heruntergeladen und ein wenig damit rumprobiert.


    Ich kam dann auf die Idee, ein Tool zum Auslesen und Anzeigen der Interruptvektortabelle zu basteln. In Assembler oder (Turbo) Pascal kein Problem, aber mit PL1 will es mir nicht gelingen.


    Den Befehl "0 seg" kann ich nicht verwenden, weil dieser nicht das Segment für Peek (und Poke) auf 0 setzt, sondern stattdessen das aktuelle Segment zurückgibt. :( (Natürlich erst eine Weile den Fehler gesucht, bevor ich noch mal in die Anleitung geschaut habe.) Also habe ich es mit Int21.35 versucht, aber ich schaffe es nicht, an den Zeiger in ES:BX zu kommen.


    Ich habe erfolglos viele Varianten ausprobiert. Da ich von Forth bzw. UPN nicht wirklich Ahnung habe, tippe ich darauf, dass ich da einfach noch ein Verständnisproblem habe, was sich auf dem Stack tut. Wäre daher dankbar, wenn sich das jemand mit mehr (Forth-)Erfahrung angucken würde.


    Nachfolgend mein (nicht optimierter) Bastel-Code:

    Atari Portfolio, Highscreen Handy Organizer, HP 95LX, HP 200LX, HP 1000CX, OmniBook 800CT, Sharp PC-3000, ThinkPad 770, ThinkPad R500

  • Also mit Forth oder UPN hat diese Programmiersprache nur entfernt zu tun.

    Ich würde da eher ein richtiges Forth nehmen, wenn die Spezialfunktionen für den Portfolio nicht unbedingt benötigt werden.

    Ich vermutet, dass da im code irgendwo ein % Zeichen fehlt.


    Aber ich habe es mal ausprobiert und mich etwas mit dem Editor herumgeärgert.

    Das folgende Fragment sollte den Vektor für interrupt 0x08 holen und dann alle Registerinhalte (in dezimal) ausgeben (ES:BX) sind dann an offset 14 und 2 abzuholen:

  • Martin Hepperle Danke. Ich werde es die Tage ausprobieren. Die Syntax macht mir definitiv zu schaffen. Komme halt von Pascal und x86 Assembler. Das ist irgendwie überschaubarer für mich.


    Und ja, der Editor ist "etwas seltsam". ich habe deswegen mit einem externen Editor gearbeitet und den Quellcode dann bloß noch mit "merge datei" in PL1 reingeladen und dann abgefeuert.

    Atari Portfolio, Highscreen Handy Organizer, HP 95LX, HP 200LX, HP 1000CX, OmniBook 800CT, Sharp PC-3000, ThinkPad 770, ThinkPad R500