<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://satyria.de/arm/index.php?action=history&amp;feed=atom&amp;title=Das_Terminal_%28PI5%29</id>
	<title>Das Terminal (PI5) - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://satyria.de/arm/index.php?action=history&amp;feed=atom&amp;title=Das_Terminal_%28PI5%29"/>
	<link rel="alternate" type="text/html" href="https://satyria.de/arm/index.php?title=Das_Terminal_(PI5)&amp;action=history"/>
	<updated>2026-06-25T08:43:25Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in C und Assembler mit Raspberry</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://satyria.de/arm/index.php?title=Das_Terminal_(PI5)&amp;diff=734&amp;oldid=prev</id>
		<title>Satyria: /* Steuerzeichen beachten */</title>
		<link rel="alternate" type="text/html" href="https://satyria.de/arm/index.php?title=Das_Terminal_(PI5)&amp;diff=734&amp;oldid=prev"/>
		<updated>2024-11-29T12:09:33Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Steuerzeichen beachten&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 29. November 2024, 13:09 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l42&quot;&gt;Zeile 42:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 42:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Beim Zeichnen von Texten müssen wir verschiedene Steuerzeichen berücksichtigen, wie zum Beispiel &amp;quot;neue Zeile&amp;quot; (Enter), &amp;quot;Tab&amp;quot; und &amp;quot;Backspace&amp;quot;. Diese Steuerzeichen fangen wir ab und reagieren entsprechend darauf:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Beim Zeichnen von Texten müssen wir verschiedene Steuerzeichen berücksichtigen, wie zum Beispiel &amp;quot;neue Zeile&amp;quot; (Enter), &amp;quot;Tab&amp;quot; und &amp;quot;Backspace&amp;quot;. Diese Steuerzeichen fangen wir ab und reagieren entsprechend darauf:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;1. Neue Zeile (`\n`): Wenn das Zeichen ein Zeilenumbruch (`\n`) ist, setzen wir den Cursor an den Anfang der nächsten Zeile:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;1. Neue Zeile (`\n`):&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Wenn das Zeichen ein Zeilenumbruch (`\n`) ist, setzen wir den Cursor an den Anfang der nächsten Zeile:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     //Vergleiche auf Zeilenumbruch&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     //Vergleiche auf Zeilenumbruch&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l62&quot;&gt;Zeile 62:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 64:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	b 7f&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	b 7f&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;2. Zeilenanfang (`\r`): Wenn das Zeichen ein Wagenrücklauf (`\r`) ist, setzen wir den Cursor an den Anfang der aktuellen Zeile:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;2. Zeilenanfang (`\r`):&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Wenn das Zeichen ein Wagenrücklauf (`\r`) ist, setzen wir den Cursor an den Anfang der aktuellen Zeile:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;1:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;1:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l75&quot;&gt;Zeile 75:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 79:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	b 7f&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	b 7f&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;3. Tabulator (`\t`): Wenn das Zeichen ein Tabulator (`\t`) ist, bewegen wir den Cursor um vier Positionen nach rechts:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;3. Tabulator (`\t`):&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Wenn das Zeichen ein Tabulator (`\t`) ist, bewegen wir den Cursor um vier Positionen nach rechts:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;2:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;2:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l91&quot;&gt;Zeile 91:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 97:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	b 7f&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	b 7f&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;4. Rückschritt (`\b`): Wenn das Zeichen ein Rückschritt (`\b`) ist, bewegen wir den Cursor um ein Zeichen nach links, es sei denn, der Cursor steht bereits am Anfang der Zeile:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;4. Rückschritt (`\b`):&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Wenn das Zeichen ein Rückschritt (`\b`) ist, bewegen wir den Cursor um ein Zeichen nach links, es sei denn, der Cursor steht bereits am Anfang der Zeile:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;3:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;3:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l111&quot;&gt;Zeile 111:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 119:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	b 7f&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	b 7f&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;5. Seitenvorschub (`\f`): Wenn das Zeichen ein Seitenvorschub (`\f`) ist, löschen wir den Bildschirm. Früher wurde dieses Zeichen verwendet, um zum Beispiel auf Nadeldruckern eine neue Seite zu beginnen. Hier verwenden wir es, um den Bildschirm zu löschen:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;5. Seitenvorschub (`\f`):&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Wenn das Zeichen ein Seitenvorschub (`\f`) ist, löschen wir den Bildschirm. Früher wurde dieses Zeichen verwendet, um zum Beispiel auf Nadeldruckern eine neue Seite zu beginnen. Hier verwenden wir es, um den Bildschirm zu löschen:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;4:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;4:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l123&quot;&gt;Zeile 123:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 133:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	b 7f&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	b 7f&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;6. Normales Zeichen: Wenn das Zeichen kein Steuerzeichen ist, zeichnen wir es an der aktuellen Cursor-Position und bewegen den Cursor um eine Position nach rechts. Wenn das Ende der Zeile erreicht ist, setzen wir den Cursor an den Anfang der nächsten Zeile:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;6. Normales Zeichen:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Wenn das Zeichen kein Steuerzeichen ist, zeichnen wir es an der aktuellen Cursor-Position und bewegen den Cursor um eine Position nach rechts. Wenn das Ende der Zeile erreicht ist, setzen wir den Cursor an den Anfang der nächsten Zeile:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;asm&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;6:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;6:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Satyria</name></author>
	</entry>
	<entry>
		<id>https://satyria.de/arm/index.php?title=Das_Terminal_(PI5)&amp;diff=733&amp;oldid=prev</id>
		<title>Satyria am 29. November 2024 um 12:08 Uhr</title>
		<link rel="alternate" type="text/html" href="https://satyria.de/arm/index.php?title=Das_Terminal_(PI5)&amp;diff=733&amp;oldid=prev"/>
		<updated>2024-11-29T12:08:12Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://satyria.de/arm/index.php?title=Das_Terminal_(PI5)&amp;amp;diff=733&amp;amp;oldid=732&quot;&gt;Änderungen zeigen&lt;/a&gt;</summary>
		<author><name>Satyria</name></author>
	</entry>
	<entry>
		<id>https://satyria.de/arm/index.php?title=Das_Terminal_(PI5)&amp;diff=732&amp;oldid=prev</id>
		<title>Satyria am 29. November 2024 um 11:22 Uhr</title>
		<link rel="alternate" type="text/html" href="https://satyria.de/arm/index.php?title=Das_Terminal_(PI5)&amp;diff=732&amp;oldid=prev"/>
		<updated>2024-11-29T11:22:13Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 29. November 2024, 12:22 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Zeile 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== Das Terminal ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Nachdem wir nun Zeichen auf den Bildschirm anzeigen können, werden wir ein Terminal bauen. Ein Terminal ist ein Bereich auf dem Bildschirm, in dem Texte angezeigt werden können und später auch Eingaben erfolgen können. Ein Beispiel für ein Terminal ist die Eingabeaufforderung, die beim Starten von Linux erscheint.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== Wie sieht ein Terminal aus? ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Zuerst müssen wir uns überlegen, wie das Terminal aussehen soll. Da wir die Bildschirmauflösung kennen, verwenden wir diese. Unsere Schriftart (Font) hat eine Größe von 8x8 Pixeln pro Zeichen. Damit die Zeichen nicht zu eng beieinander stehen, nutzen wir im Terminal eine Auflösung von 8x10 Pixeln pro Zeichen.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;syntaxhighlight lang=&quot;asm&quot;&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#define CHAR_WIDTH 8&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#define CHAR_HEIGHT 10&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Damit können wir festlegen, wie viele Zeichen in einer Zeile und wie viele Zeilen auf dem Bildschirm dargestellt werden können:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;syntaxhighlight lang=&quot;asm&quot;&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#define NUM_COLS (SCREEN_X / CHAR_WIDTH)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;#define NUM_ROWS (SCREEN_Y / CHAR_HEIGHT)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Um die aktuelle Position des Cursors (die Stelle, an der das nächste Zeichen erscheinen wird) zu speichern, definieren wir unter &amp;lt;syntaxhighlight lang=&quot;asm&quot; inline&amp;gt;.section .data&amp;lt;/syntaxhighlight&amp;gt; zwei Variablen. Diese setzen wir anfangs auf 0,0 (oben links):&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;// Terminal&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;cursor_x:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	.int 0&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;cursor_y:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	.int 0&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;//&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;// screen.S&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;// screen.S&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Satyria</name></author>
	</entry>
	<entry>
		<id>https://satyria.de/arm/index.php?title=Das_Terminal_(PI5)&amp;diff=728&amp;oldid=prev</id>
		<title>Satyria: Die Seite wurde neu angelegt: „// // screen.S //  #include &quot;config.h&quot; #include &quot;base.h&quot; #include &quot;mailbox.h&quot;  #define maxZeichen 240 #define maxZeilen 108  /* Dimension */ #define FONT_WIDTH  8  #define FONT_HEIGHT 8  #define FONT_MAX 256  .section .text  // bolean Init_Screen (void) // .globl Init_Screen Init_Screen: 	stp x29, x30, [sp, -16]! 	mov x29, sp  	ldr w0,=BCM_MAILBOX_PROP_OUT		//Kanal 	ldr x1,=pScreen						//ScreenStruktur 1:	 	bl BcmMailBox_Write					//Rufe die Mailbox auf…“</title>
		<link rel="alternate" type="text/html" href="https://satyria.de/arm/index.php?title=Das_Terminal_(PI5)&amp;diff=728&amp;oldid=prev"/>
		<updated>2024-11-29T11:10:23Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „// // screen.S //  #include &amp;quot;config.h&amp;quot; #include &amp;quot;base.h&amp;quot; #include &amp;quot;mailbox.h&amp;quot;  #define maxZeichen 240 #define maxZeilen 108  &lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Dimension: &lt;/span&gt; #define FONT_WIDTH  8  #define FONT_HEIGHT 8  #define FONT_MAX 256  .section .text  // bolean Init_Screen (void) // .globl Init_Screen Init_Screen: 	stp x29, x30, [sp, -16]! 	mov x29, sp  	ldr w0,=BCM_MAILBOX_PROP_OUT		//Kanal 	ldr x1,=pScreen						//ScreenStruktur 1:	 	bl BcmMailBox_Write					//Rufe die Mailbox auf…“&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;//&lt;br /&gt;
// screen.S&lt;br /&gt;
//&lt;br /&gt;
&lt;br /&gt;
#include &amp;quot;config.h&amp;quot;&lt;br /&gt;
#include &amp;quot;base.h&amp;quot;&lt;br /&gt;
#include &amp;quot;mailbox.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#define maxZeichen 240&lt;br /&gt;
#define maxZeilen 108&lt;br /&gt;
&lt;br /&gt;
/* Dimension */&lt;br /&gt;
#define FONT_WIDTH  8 &lt;br /&gt;
#define FONT_HEIGHT 8 &lt;br /&gt;
#define FONT_MAX 256&lt;br /&gt;
&lt;br /&gt;
.section .text&lt;br /&gt;
&lt;br /&gt;
// bolean Init_Screen (void)&lt;br /&gt;
//&lt;br /&gt;
.globl Init_Screen&lt;br /&gt;
Init_Screen:&lt;br /&gt;
	stp x29, x30, [sp, -16]!&lt;br /&gt;
	mov x29, sp&lt;br /&gt;
&lt;br /&gt;
	ldr w0,=BCM_MAILBOX_PROP_OUT		//Kanal&lt;br /&gt;
	ldr x1,=pScreen						//ScreenStruktur&lt;br /&gt;
1:	&lt;br /&gt;
	bl BcmMailBox_Write					//Rufe die Mailbox auf&lt;br /&gt;
&lt;br /&gt;
	ldr x0,=m_nBufferPtr				//lade die Speicheradresse&lt;br /&gt;
	ldr w0,[x0]&lt;br /&gt;
	cmp w0,#0&lt;br /&gt;
	beq 1b&lt;br /&gt;
	&lt;br /&gt;
	and w0,w0,#0x3FFFFFFF				//Passe die Adresse an&lt;br /&gt;
	ldr x1,=graphicsAddress				//und sichere sie&lt;br /&gt;
	str w0,[x1]&lt;br /&gt;
	&lt;br /&gt;
	ldp x29, x30, [sp], 16&lt;br /&gt;
	ret&lt;br /&gt;
&lt;br /&gt;
// void DrawPixel(u32 x, u32 y)&lt;br /&gt;
// Zeichne einen Pixel auf den Bildschirm&lt;br /&gt;
.globl DrawPixel&lt;br /&gt;
DrawPixel:&lt;br /&gt;
	stp x29, x30, [sp, -16]!&lt;br /&gt;
	stp x10, x11, [sp, -16]!&lt;br /&gt;
	mov x29, sp&lt;br /&gt;
&lt;br /&gt;
    //Überprüfe, ob der Pixel in den Screen passt&lt;br /&gt;
	cmp w0,#SCREEN_X&lt;br /&gt;
	bge 1f&lt;br /&gt;
	cmp w1,#SCREEN_Y&lt;br /&gt;
	bge 1f&lt;br /&gt;
&lt;br /&gt;
    //Berechne Position des Pixels: graphicsAddress+(((SCREEN_X*y)+x)*4)&lt;br /&gt;
	mov w10,SCREEN_X&lt;br /&gt;
	mul w10,w10,w1&lt;br /&gt;
	add w10,w10,w0&lt;br /&gt;
	lsl w10,w10,#2&lt;br /&gt;
	ldr x11,=graphicsAddress&lt;br /&gt;
	ldr w11,[x11]&lt;br /&gt;
	add w10,w10,w11&lt;br /&gt;
&lt;br /&gt;
    //Schreibe die Farbe in die Position&lt;br /&gt;
	ldr x11,=DrawColor&lt;br /&gt;
	ldr w11,[x11]&lt;br /&gt;
	str w11,[x10]&lt;br /&gt;
1:&lt;br /&gt;
	ldp x10, x11, [sp], 16&lt;br /&gt;
	ldp x29, x30, [sp], 16&lt;br /&gt;
	ret&lt;br /&gt;
&lt;br /&gt;
//u32 GetPixel(u32 x, u32 y)&lt;br /&gt;
//Abfrage, der Farbe des Pixels im Screen&lt;br /&gt;
.globl GetPixel&lt;br /&gt;
GetPixel:&lt;br /&gt;
	stp x29, x30, [sp, -16]!&lt;br /&gt;
	stp x10, x11, [sp, -16]!&lt;br /&gt;
	mov x29, sp&lt;br /&gt;
    &lt;br /&gt;
    //Überprüfe, ob der Pixel im Screen ist&lt;br /&gt;
	cmp w0,#SCREEN_X&lt;br /&gt;
	bge 1f&lt;br /&gt;
	cmp w1,#SCREEN_Y&lt;br /&gt;
	bge 1f&lt;br /&gt;
&lt;br /&gt;
    //Berechne Position des Pixels: graphicsAddress+(((SCREEN_X*y)+x)*4)&lt;br /&gt;
	mov w10,SCREEN_X&lt;br /&gt;
	mul w10,w10,w1&lt;br /&gt;
	add w10,w10,w0&lt;br /&gt;
	lsl w10,w10,#2&lt;br /&gt;
	ldr x11,=graphicsAddress&lt;br /&gt;
	ldr w11,[x11]&lt;br /&gt;
	add w10,w10,w11&lt;br /&gt;
&lt;br /&gt;
    //Lade die Farbe des Pixels nach w0&lt;br /&gt;
	ldr w0,[x10]&lt;br /&gt;
	b 2f&lt;br /&gt;
&lt;br /&gt;
1:&lt;br /&gt;
    //Wenn Position des Pixel nicht im Screen ist, dann NULL zurück &lt;br /&gt;
	mov w0,#0&lt;br /&gt;
&lt;br /&gt;
2:&lt;br /&gt;
	ldp x10, x11, [sp], 16&lt;br /&gt;
	ldp x29, x30, [sp], 16&lt;br /&gt;
	ret&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//void SetDrawColor(u8 r, u8 g, u8 b)&lt;br /&gt;
//definiert die Zeichenfarbe&lt;br /&gt;
.globl SetDrawColor&lt;br /&gt;
SetDrawColor:&lt;br /&gt;
	stp x29, x30, [sp, -16]!&lt;br /&gt;
	mov x29, sp&lt;br /&gt;
&lt;br /&gt;
    //Berechne die Farbe mit: (0xFF &amp;lt;&amp;lt; 24) | (r &amp;lt;&amp;lt; 16) | (g &amp;lt;&amp;lt; 8) | b;&lt;br /&gt;
	mov w3,#0xFF&lt;br /&gt;
	lsl w3,w3,#24&lt;br /&gt;
	lsl w0,w0,#16&lt;br /&gt;
	lsl w1,w1,#8&lt;br /&gt;
	orr w3,w3,w0&lt;br /&gt;
	orr w3,w3,w1&lt;br /&gt;
	orr w3,w3,w2&lt;br /&gt;
	&lt;br /&gt;
    //Und lege sie in der Variablen &amp;quot;DrawColor&amp;quot; ab&lt;br /&gt;
	ldr x0,=DrawColor&lt;br /&gt;
	str w3,[x0]&lt;br /&gt;
&lt;br /&gt;
	ldp x29, x30, [sp], 16&lt;br /&gt;
	ret&lt;br /&gt;
&lt;br /&gt;
//void SetFrontColor(u8 r, u8 g, u8 b)&lt;br /&gt;
//definiere die Vordergrundfarbe, für zum Beispiel des Chars&lt;br /&gt;
.globl SetFrontColor&lt;br /&gt;
SetFrontColor:&lt;br /&gt;
	stp x29, x30, [sp, -16]!&lt;br /&gt;
	mov x29, sp&lt;br /&gt;
    &lt;br /&gt;
    //Berechne die Farbe mit: (0xFF &amp;lt;&amp;lt; 24) | (r &amp;lt;&amp;lt; 16) | (g &amp;lt;&amp;lt; 8) | b;&lt;br /&gt;
	mov w3,#0xFF&lt;br /&gt;
	lsl w3,w3,#24&lt;br /&gt;
	lsl w0,w0,#16&lt;br /&gt;
	lsl w1,w1,#8&lt;br /&gt;
	orr w3,w3,w0&lt;br /&gt;
	orr w3,w3,w1&lt;br /&gt;
	orr w3,w3,w2&lt;br /&gt;
	&lt;br /&gt;
    //Und lege sie in der Variablen &amp;quot;FrontColor&amp;quot; ab&lt;br /&gt;
	ldr x0,=FrontColor&lt;br /&gt;
	str w3,[x0]&lt;br /&gt;
&lt;br /&gt;
	ldp x29, x30, [sp], 16&lt;br /&gt;
	ret&lt;br /&gt;
&lt;br /&gt;
//void SetBackColor(u8 r, u8 g, u8 b)&lt;br /&gt;
//definiere die Hintergrundfarbe, für zum Beispiel des Chars&lt;br /&gt;
.globl SetBackColor&lt;br /&gt;
SetBackColor:&lt;br /&gt;
	stp x29, x30, [sp, -16]!&lt;br /&gt;
	mov x29, sp&lt;br /&gt;
    &lt;br /&gt;
    //Berechne die Farbe mit: (0xFF &amp;lt;&amp;lt; 24) | (r &amp;lt;&amp;lt; 16) | (g &amp;lt;&amp;lt; 8) | b;&lt;br /&gt;
	mov w3,#0xFF&lt;br /&gt;
	lsl w3,w3,#24&lt;br /&gt;
	lsl w0,w0,#16&lt;br /&gt;
	lsl w1,w1,#8&lt;br /&gt;
	orr w3,w3,w0&lt;br /&gt;
	orr w3,w3,w1&lt;br /&gt;
	orr w3,w3,w2&lt;br /&gt;
	&lt;br /&gt;
    //Und lege sie in der Variablen &amp;quot;BackColor&amp;quot; ab&lt;br /&gt;
	ldr x0,=BackColor&lt;br /&gt;
	str w3,[x0]&lt;br /&gt;
&lt;br /&gt;
	ldp x29, x30, [sp], 16&lt;br /&gt;
	ret&lt;br /&gt;
&lt;br /&gt;
//void DrawChar(char c, u32 x0, u32 y0)&lt;br /&gt;
//Zeichnet einen Char an die Position x0, y0 auf den Screen&lt;br /&gt;
.globl DrawChar&lt;br /&gt;
DrawChar:&lt;br /&gt;
	stp x29, x30, [sp, -16]!&lt;br /&gt;
	stp x20, x21, [sp, -16]!&lt;br /&gt;
	stp x10, x11, [sp, -16]!&lt;br /&gt;
	stp x12, x13, [sp, -16]!&lt;br /&gt;
	stp x14, x15, [sp, -16]!&lt;br /&gt;
	mov x29, sp&lt;br /&gt;
	&lt;br /&gt;
    Sichere zunächst die Position&lt;br /&gt;
	mov w20,w1	// x0&lt;br /&gt;
	mov w21,w2	// y0&lt;br /&gt;
&lt;br /&gt;
    //Berechne den Zeiger auf das richtige Zeichen &lt;br /&gt;
	ldr x10,=font&lt;br /&gt;
	lsl w0,w0,#3&lt;br /&gt;
	add x10,x10,x0&lt;br /&gt;
&lt;br /&gt;
    //for (w11 = 0; w11 &amp;lt; FONT_HEIGHT; w11++)&lt;br /&gt;
	mov w11,#0&lt;br /&gt;
1:&lt;br /&gt;
	cmp w11,#FONT_HEIGHT&lt;br /&gt;
	bge 2f&lt;br /&gt;
&lt;br /&gt;
    //for (w12 = 0; w12 &amp;lt; FONT_WIDTH; w12++)&lt;br /&gt;
	mov w12,#0&lt;br /&gt;
3:&lt;br /&gt;
	cmp w12,#FONT_WIDTH&lt;br /&gt;
	bge 4f&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
    //Überprüfe das Bit nach folgender Formel:&lt;br /&gt;
    //(Zeile &amp;gt;&amp;gt; (7 - BitPos)) &amp;amp; 1;&lt;br /&gt;
	ldrb w13,[x10,x11]&lt;br /&gt;
	mov w14,#7&lt;br /&gt;
	sub w14,w14,w12&lt;br /&gt;
	lsr w13,w13,w14&lt;br /&gt;
	and w13,w13,#1&lt;br /&gt;
    //Wenn Ergebniss 0 ist, dann Hintergrund zeichnen&lt;br /&gt;
	cbz w13,5f&lt;br /&gt;
&lt;br /&gt;
    //Ansonsten in der Vordergrundfarbe&lt;br /&gt;
	ldr x13,=FrontColor&lt;br /&gt;
	ldr w13,[x13]&lt;br /&gt;
	ldr x14,=DrawColor&lt;br /&gt;
	str w13,[x14]&lt;br /&gt;
	b 6f&lt;br /&gt;
	&lt;br /&gt;
5:&lt;br /&gt;
	ldr x13,=BackColor&lt;br /&gt;
	ldr w13,[x13]&lt;br /&gt;
	ldr x14,=DrawColor&lt;br /&gt;
	str w13,[x14]&lt;br /&gt;
&lt;br /&gt;
6:&lt;br /&gt;
    //Zeichne den Pixel an die Position&lt;br /&gt;
	mov w0,w12&lt;br /&gt;
	add w0,w0,w20&lt;br /&gt;
	mov w1,w11&lt;br /&gt;
	add w1,w1,w21&lt;br /&gt;
	bl DrawPixel&lt;br /&gt;
&lt;br /&gt;
    //end_for w12&lt;br /&gt;
	add w12,w12,#1&lt;br /&gt;
	b 3b&lt;br /&gt;
4:&lt;br /&gt;
    //end_for w11&lt;br /&gt;
	add w11,w11,#1&lt;br /&gt;
	b 1b&lt;br /&gt;
2:&lt;br /&gt;
	ldp x14, x15, [sp], 16&lt;br /&gt;
	ldp x12, x13, [sp], 16&lt;br /&gt;
	ldp x10, x11, [sp], 16&lt;br /&gt;
	ldp x20, x21, [sp], 16&lt;br /&gt;
	ldp x29, x30, [sp], 16&lt;br /&gt;
	ret&lt;br /&gt;
&lt;br /&gt;
//**********************************************************&lt;br /&gt;
// Konsole&lt;br /&gt;
//**********************************************************&lt;br /&gt;
&lt;br /&gt;
// Dimensionen für die Konsole&lt;br /&gt;
#define CHAR_WIDTH 8&lt;br /&gt;
#define CHAR_HEIGHT 10&lt;br /&gt;
#define NUM_COLS (SCREEN_X / CHAR_WIDTH)&lt;br /&gt;
#define NUM_ROWS (SCREEN_Y / CHAR_HEIGHT)&lt;br /&gt;
&lt;br /&gt;
//void ClearScreen()&lt;br /&gt;
//Löscht den Inhalt des Screens in der Hintergrundfarbe&lt;br /&gt;
.globl ClearScreen&lt;br /&gt;
ClearScreen:&lt;br /&gt;
	stp x29, x30, [sp, -16]!&lt;br /&gt;
	stp x10, x11, [sp, -16]!&lt;br /&gt;
	mov x29, sp&lt;br /&gt;
&lt;br /&gt;
    //Setze die Zeichenfarbe auf die Hintergrundfarbe&lt;br /&gt;
    ldr x10,=BackColor&lt;br /&gt;
	ldr w10,[x10]&lt;br /&gt;
	ldr x11,=DrawColor&lt;br /&gt;
	str w10,[x11]&lt;br /&gt;
&lt;br /&gt;
    //for (w11 = 0; w11 &amp;lt; SCREEN_Y; w11++)&lt;br /&gt;
	mov w11,#0&lt;br /&gt;
1:&lt;br /&gt;
	cmp w11,#SCREEN_Y&lt;br /&gt;
	bge 2f&lt;br /&gt;
&lt;br /&gt;
    //for (w10 = 0; w10 &amp;lt; SCREEN_X; w10++)&lt;br /&gt;
	mov w10,#0&lt;br /&gt;
3:&lt;br /&gt;
	cmp w10,#SCREEN_X&lt;br /&gt;
	bge 4f&lt;br /&gt;
&lt;br /&gt;
    //DrawPixel(x, y);&lt;br /&gt;
	mov w0,w10&lt;br /&gt;
	mov w1,w11&lt;br /&gt;
	bl DrawPixel&lt;br /&gt;
&lt;br /&gt;
    //end_for w10&lt;br /&gt;
	add w10,w10,#1&lt;br /&gt;
	b 3b&lt;br /&gt;
4:&lt;br /&gt;
    //end_for w11&lt;br /&gt;
	add w11,w11,#1&lt;br /&gt;
	b 1b&lt;br /&gt;
2:&lt;br /&gt;
    //Setze cursor_x auf 0&lt;br /&gt;
    mov x10,#0&lt;br /&gt;
    ldr x11,=cursor_x&lt;br /&gt;
    str w10,[x11]&lt;br /&gt;
    //Setze cursor_y auf 0&lt;br /&gt;
    ldr x11,=cursor_y&lt;br /&gt;
    str w10,[x11]&lt;br /&gt;
&lt;br /&gt;
	ldp x10, x11, [sp], 16&lt;br /&gt;
	ldp x29, x30, [sp], 16&lt;br /&gt;
	ret&lt;br /&gt;
&lt;br /&gt;
//void MoveCursor(u32 x, u32 y)&lt;br /&gt;
//Setze den Cursor auf eine neue Position&lt;br /&gt;
.globl MoveCursor&lt;br /&gt;
MoveCursor:&lt;br /&gt;
	stp x29, x30, [sp, -16]!&lt;br /&gt;
	stp x10, x11, [sp, -16]!&lt;br /&gt;
	mov x29, sp&lt;br /&gt;
&lt;br /&gt;
    //Setze cursor_x auf x&lt;br /&gt;
	ldr x10,=cursor_x&lt;br /&gt;
	str w0,[x10]&lt;br /&gt;
    //Setze cursor_y auf y&lt;br /&gt;
	ldr x10,=cursor_y&lt;br /&gt;
	str w1,[x10]&lt;br /&gt;
&lt;br /&gt;
	ldp x10, x11, [sp], 16&lt;br /&gt;
	ldp x29, x30, [sp], 16&lt;br /&gt;
	ret&lt;br /&gt;
&lt;br /&gt;
//void DrawCharAtCursor(char c)&lt;br /&gt;
//Zeichne den Char an die aktuelle Position in der Konsole&lt;br /&gt;
//Berücksichtige auch Sonderzeichen&lt;br /&gt;
.globl DrawCharAtCursor&lt;br /&gt;
DrawCharAtCursor:&lt;br /&gt;
	stp x29, x30, [sp, -16]!&lt;br /&gt;
	mov x29, sp&lt;br /&gt;
&lt;br /&gt;
    //Vergleiche auf Zeilenumbruch&lt;br /&gt;
	cmp w0,#&amp;#039;\n&amp;#039;&lt;br /&gt;
    //Wenn nicht, weitere Abfrage&lt;br /&gt;
	bne 1f&lt;br /&gt;
&lt;br /&gt;
    //Setze den cursor_x auf 0&lt;br /&gt;
	ldr x1,=cursor_x&lt;br /&gt;
	mov w2,#0&lt;br /&gt;
	str w2,[x1]&lt;br /&gt;
&lt;br /&gt;
    //Und den cursor_y um eins höher, für die Zeile&lt;br /&gt;
	ldr x1,=cursor_y&lt;br /&gt;
	ldr w2,[x1]&lt;br /&gt;
	add w2,w2,#1&lt;br /&gt;
	str w2,[x1]&lt;br /&gt;
&lt;br /&gt;
	b 7f&lt;br /&gt;
1:&lt;br /&gt;
    //Vergleiche auf Carriage Return&lt;br /&gt;
	cmp w0,#&amp;#039;\r&amp;#039;&lt;br /&gt;
	bne 2f&lt;br /&gt;
    //Setzt den Cursor an den Anfang der aktuellen Zeile.&lt;br /&gt;
	ldr x1,=cursor_x&lt;br /&gt;
	mov w2,#0&lt;br /&gt;
	str w2,[x1]&lt;br /&gt;
&lt;br /&gt;
	b 7f&lt;br /&gt;
2:&lt;br /&gt;
    //Vergleiche, ob TAB angezeigt werden soll&lt;br /&gt;
	cmp w0,#&amp;#039;\t&amp;#039;&lt;br /&gt;
	bne 3f&lt;br /&gt;
&lt;br /&gt;
    //Erhöht den cursor_x um 4&lt;br /&gt;
    //DOTO: Fester Wert in allen Zeilen&lt;br /&gt;
	ldr x1,=cursor_x&lt;br /&gt;
	ldr w2,[x1]&lt;br /&gt;
	add w2,w2,#4&lt;br /&gt;
	str w2,[x1]&lt;br /&gt;
&lt;br /&gt;
	b 7f&lt;br /&gt;
3:&lt;br /&gt;
    //Vergleich auf Backspace&lt;br /&gt;
	cmp w0,#&amp;#039;\b&amp;#039;&lt;br /&gt;
	bne 4f&lt;br /&gt;
&lt;br /&gt;
    //Bewegt den Cursor um ein Zeichen nach links&lt;br /&gt;
    //nur wenn cursor_x &amp;gt; 0 ist&lt;br /&gt;
	ldr x1,=cursor_x&lt;br /&gt;
	ldr w2,[x1]&lt;br /&gt;
	cmp w2,#0&lt;br /&gt;
	ble 8f&lt;br /&gt;
&lt;br /&gt;
    // cursor_x -1&lt;br /&gt;
	sub w2,w2,#1&lt;br /&gt;
	str w2,[x1]&lt;br /&gt;
8:&lt;br /&gt;
	b 7f&lt;br /&gt;
4:&lt;br /&gt;
    //Vergleich auf Form Feed)&lt;br /&gt;
	cmp w0,#&amp;#039;\f&amp;#039;&lt;br /&gt;
	bne 5f&lt;br /&gt;
&lt;br /&gt;
    // Neue Seite&lt;br /&gt;
	bl ClearScreen&lt;br /&gt;
&lt;br /&gt;
	b 7f&lt;br /&gt;
5:&lt;br /&gt;
    //Vergleich auf ESC-Zeichen&lt;br /&gt;
	cmp w0,#27&lt;br /&gt;
	bne 6f&lt;br /&gt;
&lt;br /&gt;
    // ESC-Zeichen erkannt, muss aber zuvor Abgefangen werden.&lt;br /&gt;
&lt;br /&gt;
	b 7f&lt;br /&gt;
6:&lt;br /&gt;
    //Wenn hier angelangt, müsste es sich um ein druckbares Zeichen handeln&lt;br /&gt;
&lt;br /&gt;
    // Char in w0&lt;br /&gt;
	mov w0,w0&lt;br /&gt;
    // Berechnung der x-Pos (cursor_x * CHAR_WIDTH)&lt;br /&gt;
	ldr x1,=cursor_x&lt;br /&gt;
	ldr w1,[x1]&lt;br /&gt;
	mov w2,#CHAR_WIDTH&lt;br /&gt;
	mul w1,w1,w2&lt;br /&gt;
    // Berechnung der y-Pos (cursor_y * CHAR_HEIGHT)&lt;br /&gt;
	ldr x2,=cursor_y&lt;br /&gt;
	ldr w2,[x2]&lt;br /&gt;
	mov w3,#CHAR_HEIGHT&lt;br /&gt;
	mul w2,w2,w3&lt;br /&gt;
	bl DrawChar&lt;br /&gt;
    //Addiere cursor_x um 1&lt;br /&gt;
	ldr x0,=cursor_x&lt;br /&gt;
	ldr w1,[x0]&lt;br /&gt;
	add w1,w1,#1&lt;br /&gt;
	str w1,[x0]&lt;br /&gt;
    // Wenn cursor_x &amp;gt;= NUM_COLS ist&lt;br /&gt;
	cmp w1,NUM_COLS&lt;br /&gt;
	blt 9f&lt;br /&gt;
    // dann cursor_x = 0&lt;br /&gt;
	ldr x0,=cursor_x&lt;br /&gt;
	mov w1,#0&lt;br /&gt;
	str w1,[x0]&lt;br /&gt;
    &lt;br /&gt;
    // und neue Zeile (cursor_y + 1)&lt;br /&gt;
	ldr x0,=cursor_y&lt;br /&gt;
	ldr w1,[x0]&lt;br /&gt;
	add w1,w1,#1&lt;br /&gt;
	str w1,[x0]&lt;br /&gt;
9:&lt;br /&gt;
&lt;br /&gt;
7:  //Für alle:&lt;br /&gt;
    //Wenn cursor_y &amp;gt;= max Anzahl Zeilen&lt;br /&gt;
	ldr x0,=cursor_y&lt;br /&gt;
	ldr w1,[x0]&lt;br /&gt;
	cmp w1,NUM_ROWS&lt;br /&gt;
	blt 10f&lt;br /&gt;
&lt;br /&gt;
    //Dann Scrolle den Bildscirm&lt;br /&gt;
	bl ScrollScreen&lt;br /&gt;
&lt;br /&gt;
    //Setze die Cursorposition auf Vorletzte Zeile (cursor_y = NUM_ROWS - 1)&lt;br /&gt;
	mov w0,NUM_ROWS&lt;br /&gt;
	sub w0,w0,#1&lt;br /&gt;
	ldr x1,=cursor_y&lt;br /&gt;
	str w0,[x1]&lt;br /&gt;
10:&lt;br /&gt;
	ldp x29, x30, [sp], 16&lt;br /&gt;
	ret&lt;br /&gt;
&lt;br /&gt;
// void ProcessEscSequence(const char* seq)&lt;br /&gt;
// Bearbeite ESC-Funktionen&lt;br /&gt;
.globl ProcessEscSequence&lt;br /&gt;
ProcessEscSequence:&lt;br /&gt;
	stp x29, x30, [sp, -16]!&lt;br /&gt;
	mov x29, sp&lt;br /&gt;
&lt;br /&gt;
// Beispiel: &amp;quot;\033[1m&amp;quot; -&amp;gt; Setzt die Vordergrundfarbe auf Rot&lt;br /&gt;
&lt;br /&gt;
//DOTO: https://gist.github.com/fnky/458719343aabd01cfb17a3a4f7296797&lt;br /&gt;
//Color Name	Foreground Color Code	Background Color Code&lt;br /&gt;
//Black	30	40&lt;br /&gt;
//Red	31	41&lt;br /&gt;
//Green	32	42&lt;br /&gt;
//Yellow	33	43&lt;br /&gt;
//Blue	34	44&lt;br /&gt;
//Magenta	35	45&lt;br /&gt;
//Cyan	36	46&lt;br /&gt;
//White	37	47&lt;br /&gt;
//Default	39	49&lt;br /&gt;
//Reset	0	0&lt;br /&gt;
//&lt;br /&gt;
//# Set style to bold, red foreground.&lt;br /&gt;
//\033[1;31mHello&lt;br /&gt;
//# Set style to dimmed white foreground with red background.&lt;br /&gt;
//\033[2;37;41mWorld&lt;br /&gt;
&lt;br /&gt;
// Unterstützung nur für Farben: ESC[xm -&amp;gt; x = Farbe&lt;br /&gt;
    // Nur wenn seq[0] = &amp;#039;[&amp;#039; und seq[2] = &amp;#039;m&amp;#039; entspricht&lt;br /&gt;
	ldrb w1,[x0]&lt;br /&gt;
	cmp w1,&amp;#039;[&amp;#039;&lt;br /&gt;
	bne 1f&lt;br /&gt;
	ldrb w1,[x0,2]&lt;br /&gt;
	cmp w1,&amp;#039;m&amp;#039;&lt;br /&gt;
	bne 1f&lt;br /&gt;
&lt;br /&gt;
    //Werte seq[1] aus:&lt;br /&gt;
	ldrb w1,[x0,1]&lt;br /&gt;
&lt;br /&gt;
    // Wenn 0&lt;br /&gt;
	cmp w1,&amp;#039;0&amp;#039;&lt;br /&gt;
	bne 2f&lt;br /&gt;
    //dann FrontColor = Schwarz&lt;br /&gt;
	mov w0,#0&lt;br /&gt;
	mov w1,#0&lt;br /&gt;
	mov w2,#0&lt;br /&gt;
	bl SetFrontColor&lt;br /&gt;
	b 1f	&lt;br /&gt;
2:&lt;br /&gt;
    // Wenn 1&lt;br /&gt;
	cmp w1,&amp;#039;1&amp;#039;&lt;br /&gt;
	bne 3f&lt;br /&gt;
    //dann FrontColor = Rot&lt;br /&gt;
	mov w0,#0xFF&lt;br /&gt;
	mov w1,#0&lt;br /&gt;
	mov w2,#0&lt;br /&gt;
	bl SetFrontColor&lt;br /&gt;
	b 1f	&lt;br /&gt;
3:&lt;br /&gt;
    // Wenn 2&lt;br /&gt;
	cmp w1,&amp;#039;2&amp;#039;&lt;br /&gt;
	bne 4f&lt;br /&gt;
    //dann FrontColor = Grün&lt;br /&gt;
	mov w0,#0&lt;br /&gt;
	mov w1,#0xFF&lt;br /&gt;
	mov w2,#0&lt;br /&gt;
	bl SetFrontColor&lt;br /&gt;
	b 1f	&lt;br /&gt;
4:&lt;br /&gt;
    // Wenn 3&lt;br /&gt;
	cmp w1,&amp;#039;3&amp;#039;&lt;br /&gt;
	bne 5f&lt;br /&gt;
    //dann FrontColor = Gelb&lt;br /&gt;
	mov w0,#0xFF&lt;br /&gt;
	mov w1,#0xFF&lt;br /&gt;
	mov w2,#0&lt;br /&gt;
	bl SetFrontColor&lt;br /&gt;
	b 1f	&lt;br /&gt;
5:&lt;br /&gt;
    // Wenn 4&lt;br /&gt;
	cmp w1,&amp;#039;4&amp;#039;&lt;br /&gt;
	bne 6f&lt;br /&gt;
    //dann FrontColor = Blau&lt;br /&gt;
	mov w0,#0&lt;br /&gt;
	mov w1,#0&lt;br /&gt;
	mov w2,#0xFF&lt;br /&gt;
	bl SetFrontColor&lt;br /&gt;
	b 1f	&lt;br /&gt;
6:&lt;br /&gt;
    // Wenn 5&lt;br /&gt;
	cmp w1,&amp;#039;5&amp;#039;&lt;br /&gt;
	bne 7f&lt;br /&gt;
    //dann FrontColor = Magenta&lt;br /&gt;
	mov w0,#0xFF&lt;br /&gt;
	mov w1,#0&lt;br /&gt;
	mov w2,#0xFF&lt;br /&gt;
	bl SetFrontColor&lt;br /&gt;
	b 1f	&lt;br /&gt;
7:&lt;br /&gt;
    // Wenn 6&lt;br /&gt;
	cmp w1,&amp;#039;6&amp;#039;&lt;br /&gt;
	bne 8f&lt;br /&gt;
    //dann FrontColor = Cyan&lt;br /&gt;
	mov w0,#0&lt;br /&gt;
	mov w1,#0xFF&lt;br /&gt;
	mov w2,#0xFF&lt;br /&gt;
	bl SetFrontColor&lt;br /&gt;
	b 1f	&lt;br /&gt;
8:&lt;br /&gt;
    // Wenn 7&lt;br /&gt;
	cmp w1,&amp;#039;7&amp;#039;&lt;br /&gt;
	bne 1f&lt;br /&gt;
    //dann FrontColor = Weiß&lt;br /&gt;
	mov w0,#0xFF&lt;br /&gt;
	mov w1,#0xFF&lt;br /&gt;
	mov w2,#0xFF&lt;br /&gt;
	bl SetFrontColor&lt;br /&gt;
//	b 1f	&lt;br /&gt;
&lt;br /&gt;
1:&lt;br /&gt;
	ldp x29, x30, [sp], 16&lt;br /&gt;
	ret&lt;br /&gt;
&lt;br /&gt;
//void ScrollScreen()&lt;br /&gt;
// Schiebe den Inhalt des Screens um eine Zeichenzeile nach oben&lt;br /&gt;
.globl ScrollScreen&lt;br /&gt;
ScrollScreen:&lt;br /&gt;
	stp x29, x30, [sp, -16]!&lt;br /&gt;
	stp x10, x11, [sp, -16]!&lt;br /&gt;
	mov x29, sp&lt;br /&gt;
//{&lt;br /&gt;
//    for (u32 y = 1; y &amp;lt; NUM_ROWS; y++)&lt;br /&gt;
	mov x10,#1&lt;br /&gt;
1:&lt;br /&gt;
	cmp x10,#NUM_ROWS&lt;br /&gt;
	bge 2f&lt;br /&gt;
//    {&lt;br /&gt;
//        for (u32 x = 0; x &amp;lt; NUM_COLS; x++)&lt;br /&gt;
	mov x11,#0&lt;br /&gt;
3:&lt;br /&gt;
	cmp x11,#NUM_COLS&lt;br /&gt;
	bge 4f&lt;br /&gt;
//        {&lt;br /&gt;
//            DrawColor = GetPixel(x * CHAR_WIDTH, y * CHAR_HEIGHT);&lt;br /&gt;
	mov w0,w11&lt;br /&gt;
	mov w2,#CHAR_WIDTH&lt;br /&gt;
	mul w0,w0,w2&lt;br /&gt;
	mov w1,w10&lt;br /&gt;
	mov w2,#CHAR_HEIGHT&lt;br /&gt;
	mul w1,w1,w2&lt;br /&gt;
	bl GetPixel&lt;br /&gt;
	ldr x1,=DrawColor&lt;br /&gt;
	str w0,[x1]&lt;br /&gt;
//            DrawPixel(x * CHAR_WIDTH, (y - 1) * CHAR_HEIGHT);&lt;br /&gt;
	mov w0,w11&lt;br /&gt;
	mov w2,#CHAR_WIDTH&lt;br /&gt;
	mul w0,w0,w2&lt;br /&gt;
	mov w1,w10&lt;br /&gt;
	sub w1,w1,#1&lt;br /&gt;
	mov w2,#CHAR_HEIGHT&lt;br /&gt;
	mul w1,w1,w2&lt;br /&gt;
	bl DrawPixel&lt;br /&gt;
//        }&lt;br /&gt;
	add x11,x11,#1&lt;br /&gt;
	b 3b&lt;br /&gt;
4:&lt;br /&gt;
//    }&lt;br /&gt;
	add x10,x10,#1&lt;br /&gt;
	b 1b&lt;br /&gt;
2:&lt;br /&gt;
//    // Clear the last line&lt;br /&gt;
//    for (u32 x = 0; x &amp;lt; NUM_COLS; x++)&lt;br /&gt;
	mov w10,#0&lt;br /&gt;
5:&lt;br /&gt;
	cmp w10,NUM_COLS&lt;br /&gt;
	bge 6f &lt;br /&gt;
//    {&lt;br /&gt;
//        DrawChar(&amp;#039; &amp;#039;, x * CHAR_WIDTH, (NUM_ROWS - 1) * CHAR_HEIGHT);&lt;br /&gt;
	mov w0,#&amp;#039; &amp;#039;&lt;br /&gt;
	mov w1,w10&lt;br /&gt;
	mov w3,#CHAR_WIDTH&lt;br /&gt;
	mul w1,w1,w3&lt;br /&gt;
	mov w2,#NUM_ROWS&lt;br /&gt;
	sub w2,w2,#1&lt;br /&gt;
	mov w3,#CHAR_HEIGHT&lt;br /&gt;
	mul w2,w2,w3&lt;br /&gt;
	bl DrawChar&lt;br /&gt;
//    }&lt;br /&gt;
	add w10,w10,#1&lt;br /&gt;
	b 5b&lt;br /&gt;
6:&lt;br /&gt;
//}&lt;br /&gt;
	ldp x10, x11, [sp], 16&lt;br /&gt;
	ldp x29, x30, [sp], 16&lt;br /&gt;
	ret&lt;br /&gt;
&lt;br /&gt;
//void DrawString(const char* str) {&lt;br /&gt;
.globl DrawString&lt;br /&gt;
DrawString:&lt;br /&gt;
	stp x29, x30, [sp, -16]!&lt;br /&gt;
	stp x10, x11, [sp, -16]!&lt;br /&gt;
	mov x29, sp&lt;br /&gt;
&lt;br /&gt;
	mov x10,x0&lt;br /&gt;
//    while (*str)&lt;br /&gt;
2:&lt;br /&gt;
	ldrb w0,[x10]&lt;br /&gt;
	cmp w0,#0&lt;br /&gt;
	beq 1f&lt;br /&gt;
//    {&lt;br /&gt;
//        if (*str == &amp;#039;\033&amp;#039;) ToDo: Komplett nach DrawCharAtCursor verlegen (Flexibler)&lt;br /&gt;
	cmp w0,#27&lt;br /&gt;
	bne 3f&lt;br /&gt;
//        { // ESC-Zeichen erkannt&lt;br /&gt;
//            const char* esc_seq = ++str;&lt;br /&gt;
	add x10,x10,#1&lt;br /&gt;
	mov x0,x10&lt;br /&gt;
//            ProcessEscSequence(esc_seq);&lt;br /&gt;
	bl ProcessEscSequence&lt;br /&gt;
//            str += 3; // Überspringen der ESC-Sequenz&lt;br /&gt;
	add x10,x10,#3&lt;br /&gt;
	b 4f&lt;br /&gt;
//        }&lt;br /&gt;
3:&lt;br /&gt;
//        else&lt;br /&gt;
//        {&lt;br /&gt;
//            DrawCharAtCursor(*str++);&lt;br /&gt;
	//ldr w0,[x10]&lt;br /&gt;
	bl DrawCharAtCursor&lt;br /&gt;
	add x10,x10,#1&lt;br /&gt;
//        }&lt;br /&gt;
//    }&lt;br /&gt;
4:&lt;br /&gt;
	b 2b&lt;br /&gt;
//}&lt;br /&gt;
1:&lt;br /&gt;
	ldp x10, x11, [sp], 16&lt;br /&gt;
	ldp x29, x30, [sp], 16&lt;br /&gt;
	ret&lt;br /&gt;
&lt;br /&gt;
//**********************************************************&lt;br /&gt;
// Data&lt;br /&gt;
//**********************************************************&lt;br /&gt;
.section .data&lt;br /&gt;
.align 16&lt;br /&gt;
pScreen:&lt;br /&gt;
		.int pScreen_end - pScreen&lt;br /&gt;
		.int CODE_REQUEST&lt;br /&gt;
&lt;br /&gt;
		.int PROPTAG_ALLOCATE_BUFFER&lt;br /&gt;
		.int 8&lt;br /&gt;
		.int 4&lt;br /&gt;
m_nBufferPtr:&lt;br /&gt;
		.int 0&lt;br /&gt;
m_nBufferSize:&lt;br /&gt;
		.int 0&lt;br /&gt;
 &lt;br /&gt;
 .int PROPTAG_END	&lt;br /&gt;
pScreen_end:&lt;br /&gt;
&lt;br /&gt;
.align 2&lt;br /&gt;
graphicsAddress:&lt;br /&gt;
	.int 0&lt;br /&gt;
DrawColor:&lt;br /&gt;
	.int 0xFFFFFFFF&lt;br /&gt;
FrontColor: &lt;br /&gt;
	.int 0xFFFFFFFF&lt;br /&gt;
BackColor:&lt;br /&gt;
	.int 0&lt;br /&gt;
&lt;br /&gt;
// Terminal&lt;br /&gt;
cursor_x:&lt;br /&gt;
	.int 0&lt;br /&gt;
cursor_y:&lt;br /&gt;
	.int 0&lt;br /&gt;
&lt;br /&gt;
.ltorg&lt;br /&gt;
font:&lt;br /&gt;
.include &amp;quot;ms8x8font.fon&amp;quot;&lt;/div&gt;</summary>
		<author><name>Satyria</name></author>
	</entry>
</feed>