Logische Verknuepfungen
Suche
Index
FAQ
Kontakt
Zurück

6. Logische Verknuepfungen
        Eine Verarbeitung logischer Groessen ist zwar vom Commodore-BASIC nicht direkt
        vorgesehen, ist aber bedingt moeglich. Zur Verfuegung stehen die Verknuepfungen
        AND, OR und NOT. Ein exclusives OR (XOR oder in Assembler-Mnemonics EOR) ist aus
        BASIC nicht direkt moeglich. Entsprechende ROM-Routinen existieren dahernicht.

        Die im Folgenden beschriebenen Routinen erwarten ihre Argumente als reelle
        Zahlen in den Floating-Akkumulatoren #1 und #2. Das Ergebnis steht nach Aufruf
        der jeweiligen Routine als reelle Zahl im FAC1.

        Die verwendeten ROM-Routinen und Speicherplaetze sind:

         Name   2001   3001   8001   Beschreibung
         --------------------------------------------------------
         AND    $CED9  $CECB  $C089  FAC1 = FAC1 AND FAC2
         NOT    $CDE8  $CDCF  $BECC  FAC1 = NOT FAC1
         OR     $CED6  $CEC8  $C086  FAC1 = FAC1 OR FAC2

         FAC1   $B0-B5 $5E-63 $5E-63 Floating Akkumulator #i
         FAC2   $B8-BD $66-6B $66-6B Floating Akkumulator #2


6.1 Operator AND
        Zwei reelle Zahlen in FAC1 und FAC2 werden durch AND miteinander verknuepft. Das Ergebnis
        wird als reelle Zahl in FAC1 geschrieben.
        Verfahren: beide reellen Zahlen werden nacheinander im FAC1 in ganze Zahlen (zwei Bytes)
        umgewandelt. Die resultierenden ganzen Zahlen werden ueber AND verbunden, das Ergebnis
        wird als ganze Zahl im FAC1 abgelegt und abschliessend in eine reelle Zahl umgewandelt.
        Der FAC2 wird nicht veraendert.

	        JSR AND    ;FAC1 = FAC1 AND FAC2

6.2 Operator OR
        Zwei reelle Zahlen in FACI und FAC2 werden durch OR miteinander verknuepft. Das Ergebnis
        wird als reelle Zahl in FAC1 geschrieben.
        Verfahren: beide reellen Zahlen werden nacheinander im FAC1 in ganze Zahlen (zwei Bytes)
        umgewandelt. Die resultierenden ganzen Zahlen werden ueber OR verbunden, das Ergebnis
        wird als ganze Zahl im FAC1 abgelegt und absch1iessend in eine reelle Zahl umgewandelt.
        Der FAC2 wird nicht veraendert.

        	JSR OR	;FAC1 = FAC1 OR FAC2

6.3 Operator NOT
        Eine reelle Zahl wird im FAC1 in eine ganze Zahl (zwei Bytes) umgewandelt. Beide Bytes werden
        im FAC1 negiert (EOR mit $FF, jedes Bit wird "umgedreht", 1 wird 0 und 0 wird 1). Die ganze
        Zahl im FAC1 wird abschliessend in eine reelle Zahl umgewandelt. Der FAC2 wird nicht benoetigt.

        JSR NOT  ;FAC1 = NOT FAC1

 

Letzte Änderung: 2019-01-04 10:06:17
  Rubrik:  CBM PET
Rubriken-Übersicht
 6 Besucher online 

Valid XHTML 1.0 Transitional Valid CSS!