|
| Modul-Entry |
B: Beschreibung, I: Eingabe-, O: Ausgabeparameter |
|
| ADD32.MAC |
| ADD32 |
B: |
Addition zweier Zahlen |
| |
I: |
Registerpaar BC zeigt auf erste Zahl, Paar DE auf zweite und Paar HL auf Ergebnis |
| |
O: |
Summe in Ergebnis abgelegt. Bei Überlauf ist die Carry Flag gesetzt. |
|
| SUB32.MAC |
| SUB32 |
B: |
Subtraktion zweier Zahlen |
| |
I: |
Registerpaar BC zeigt auf erste Zahl, Paar DE auf Subtrahenden und Paar HL auf Ergebnis |
| |
O: |
Differenz in Ergebnis abgelegt. Bei Überlauf ist die Carry Flag gesetzt. |
|
| MUL32.MAC |
| MUL32 |
B: |
Multiplikation zweier Zahlen |
| |
I: |
Registerpaar BC zeigt auf erste Zahl, Paar DE auf zweite und Paar HL auf Ergebnis |
| |
O: |
Produkt in Ergebnis abgelegt. Bei Überlauf ist die Carry Flag gesetzt. |
|
| DIV32.MAC |
| DIV32 |
B: |
Division zweier Zahlen |
| |
I: |
Registerpaar BC zeigt auf Dividenden, Paar DE auf Divisor und Paar HL auf Ergebnis |
| |
O: |
Quotient in Ergebnis abgelegt. Bei Überlauf oder Division durch Null ist die Carry Flag gesetzt. |
|
| MOD32.MAC |
| MOD32 |
B: |
Ermitteln des Restes zweier 32 Bit Zahlen |
| |
I: |
Registerpaar BC zeigt auf Dividenden, Paar DE auf Divisor und Paar HL auf Ergebnis |
| |
O: |
Rest in Ergebnis abgelegt. Bei Überlauf, negativem Divisor oder Division durch Null ist die Carry Flag gesetzt. |
|
| NEG32.MAC |
| NEG32 |
B: |
Negation einer Zahl |
| |
I: |
Registerpaar HL zeigt auf die Zahl |
| |
O: |
Zahl negiert |
|
| SHL32.MAC |
| SHL32 |
B: |
Links schieben einer Zahl |
| |
I: |
Registerpaar HL zeigt auf die Zahl |
| |
O: |
Zahl um eine Stelle nach links geschoben |
|
| SHR32.MAC |
| SHR32 |
B: |
Rechts schieben einer Zahl |
| |
I: |
Registerpaar HL zeigt auf die Zahl |
| |
O: |
Zahl um eine Stelle nach rechts geschoben |
|
| DIN32.MAC |
| DIN32 |
B: |
Umwandlung einer Zeichenkette in eine vorzeichenlose 32 Bit Zahl |
| |
I: |
Registerpaar DE zeigt auf die Zeichenkette, HL zeigt auf die ganze Zahl und Register B hält das Endzeichen der Kette. Steht in Register B -1, dann wird die Wandlung beim ersten nicht-numerischen Zeichen beendet. |
| |
O: |
Resultat in der ganzen Zahl abgelegt. Bei Zahlenfehler oder Überlauf ist die Carry Flag gesetzt. Das Registerpaar zeigt auf das nächste Zeichen hinter der Zahl |
|
| SIN32.MAC |
| SIN32 |
B: |
Umwandlung einer Zeichenkette in eine 32 Bit Zahl mit Vorzeichen |
| |
I: |
Registerpaar DE zeigt auf die Zeichenkette, HL zeigt auf die ganze Zahl und Register B hält das Endzeichen der Kette. Steht in Register B -1, dann wird die Wandlung beim ersten nicht-numerischen Zeichen beendet. |
| |
O: |
Resultat in der ganzen Zahl abgelegt. Bei Zahlenfehler oder Überlauf ist die Carry Flag gesetzt. Das Registerpaar zeigt auf das nächste Zeichen hinter der Zahl |
|
| DOUT32.MAC |
| DOUT32 |
B: |
Wandlung einer vorzeichenlosen 32 Bit Zahl in eine Zeichenkette |
| |
I: |
Registerpaar DE zeigt auf die Zeichenkette, HL zeigt auf die ganze Zahl und Register B hält das Endzeichen der Kette |
| |
O: |
Zeichenkette abgeschlossen mit Zeichen in Register B. Das Registerpaar HL zeigt auf den Abschluss |
|
| SOUT32.MAC |
| SOUT32 |
B: |
Wandlung einer 32 Bit Zahl mit Vorzeichen in eine Zeichenkette |
| |
I: |
Registerpaar DE zeigt auf die Zeichenkette, HL zeigt auf die ganze Zahl und Register B hält das Endzeichen der Kette |
| |
O: |
Zeichenkette abgeschlossen mit Zeichen in Register B. Das Registerpaar HL zeigt auf den Abschluss |
|
| C1632.MAC |
| C1632 |
B: |
Expandieren einer 16 Bit Zahl in eine 32 Bit Zahl mit Vorzeichen |
| |
I: |
Registerpaar HL hält die 16 Bit Zahl, Registerpaar DE zeigt auf die 32 Bit Zahl |
| |
O: |
32 Bit Zahl aus 16 Bit Zahl konstruiert |
|
| C3216.MAC |
| C3216 |
B: |
Verkürzen einer 32 Bit Zahl in eine 16 Bit Zahl |
| |
I: |
Registerpaar DE zeigt auf die 32 Bit Zahl |
| |
O: |
Registerpaar HL hält die 16 Bit Zahl |
|
| C32FL.MAC |
| C32FL |
B: |
Wandeln einer 32 Bit Zahl in eine Fließkommazahl |
| |
I: |
Registerpaar DE zeigt auf die 32 Bit Zahl, HL zeigt auf die Fließkommazahl |
| |
O: |
Fließkommazahl konstruiert aus ganzer Zahl |
|
| CFL32.MAC |
| CFL32 |
B: |
Wandeln einer Fließkommazahl in eine 32 Bit Zahl |
| |
I: |
Registerpaar HL zeigt auf die 32 Bit Zahl, DE zeigt auf die Fließkommazahl |
| |
O: |
Ganze Zahl konstruiert aus Fließkommazahl. Carry Flag gesetzt bei nicht möglicher Konvertierung |
|
|
Die bisherigen Routinen sind die für die Programmierschnittstelle.
Die folgenden Routinen sind die internen, von den obigen Routinen aufgerufenen Module.
|
|
|
| ADDI32.MAC |
| $ADD32 |
B: |
Addition zweier Zahlen |
| |
I: |
Register HL und BC halten die zweite Zahl. Die erste Zahl liegt auf dem Stack. |
| |
O: |
Register HL und BC halten die Summe. Bei Überlauf ist die Carry Flag gesetzt. |
|
| SUBI32.MAC |
| $SUB32 |
B: |
Subtraktion zweier Zahlen |
| |
I: |
Register HL und BC halten die zweite Zahl. Die erste Zahl liegt auf dem Stack. |
| |
O: |
Register HL und BC halten die Differenz. Bei Überlauf ist die Carry Flag gesetzt. |
|
| MULI32.MAC |
| $MUL32 |
B: |
Multiplikation zweier Zahlen |
| |
I: |
Register HL und BC halten die zweite Zahl. Die erste Zahl liegt auf dem Stack. |
| |
O: |
Register HL und BC halten das Produkt. Bei Überlauf ist die Carry Flag gesetzt. |
|
| DIVI32.MAC |
| $DIV32 |
B: |
Division zweier Zahlen |
| |
I: |
Register HL und BC halten die zweite Zahl. Die erste Zahl liegt auf dem Stack. |
| |
O: |
Register HL und BC halten den Quotienten. Bei Überlauf oder Division durch Null ist die Carry Flag gesetzt. |
|
| MODI32.MAC |
|
B: |
Ermitteln des Restes zweier 32 Bit Zahlen |
| |
I: |
Register HL und BC halten die zweite Zahl. Die erste Zahl liegt auf dem Stack. |
| |
O: |
Register HL und BC halten den Rest. Bei Überlauf, negativem Divisor oder Division durch Null ist die Carry Flag gesetzt. |
|
| SHLI32.MAC |
| $SHL32 |
B: |
Links schieben einer Zahl |
| |
I: |
Registerpaar IX zeigt auf die Zahl |
| |
O: |
Zahl um eine Stelle nach links geschoben |
|
| SHRI32.MAC |
| $SHR32 |
B: |
Rechts schieben einer Zahl |
| |
I: |
Registerpaar IX zeigt auf die Zahl |
| |
O: |
Zahl um eine Stelle nach rechts geschoben |
|
| NEGI32.MAC |
| $NEG32 |
B: |
Negation einer Zahl |
| |
I: |
Register HL und BC halten die Zahl. |
| |
O: |
Register HL und BC halten die negative Zahl. |
|
| OP32.MAC |
| $OP32 |
B: |
Register laden und Operation ausführen |
| |
I: |
Registerpaar BC zeigt auf erste Zahl, Paar DE auf zweite Zahl und Paar HL hält die Adresse der auszuführenden Routine. Auf dem Stack liegt die Adresse des Ergebnisses |
| |
O: |
Angeforderte Operation wird ausgeführt |
| $LOD32 |
B: |
Laden einer 32-Bit Zahl |
| |
I: |
Register HL zeigt auf die Zahl |
| |
O: |
Register DE und BC halten die Zahl |
| $STO32 |
B: |
Speichern einer 32-Bit Zahl |
| |
I: |
Register DE und BC halten die Zahl, Register HL zeigt auf die Speicheradresse |
| |
O: |
Zahl unter Speicheradresse abgelegt. |
|
| FIX32.MAC |
| $FIX32 |
B: |
Interne Routine für Division und Modulo |
|