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
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
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
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