PofoWiki

Die ultimative Informationsquelle zum ATARI Portfolio

Benutzer-Werkzeuge

Webseiten-Werkzeuge


software:diy:andere:machinecodetext

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
software:diy:andere:machinecodetext [18/11/2012 22:11] – code korrigiert uxtsoftware:diy:andere:machinecodetext [12/09/2022 21:09] (aktuell) – [MESSAGE.COM] Korrigiert, umformuliert, Quelllisting eingefügt bttr
Zeile 101: Zeile 101:
 Man sage nicht, der Portfolio biete keine eingebauten Programmier-Möglichkeiten!\\ Man sage nicht, der Portfolio biete keine eingebauten Programmier-Möglichkeiten!\\
 \\ \\
 +==== OPCODES ====
  
  
 +=== MESSAGE.COM ===
 +Gibt Meldung aus.
  
 +Dieses Programm kann mit dem Text-Editor bearbeitet werden. Ab Byte 10 (077 bzw. 4D) beginnt die auszugebende Meldung, die bis zu 226 Zeichen lang sein kann und immer mit "$" (036 bzw. 24) enden muss. Das Zeichen "$" selbst wird dabei nicht mit ausgegeben. Ein Tabulator kann mit ASCII 009 erzeugt werden.
  
 +Dezimal:\\
 +180 009 186 009 001 205 033 205 032 077 069 083 083 065 071 069 036
 +
 +Hexadezimal:\\
 +B4 09 BA 09 01 CD 21 CD 20 4D 45 53 53 41 47 45 24
 +
 +Ein mit dem [[https://github.com/swanlizard/a72|A72-Assembler]] erstelltes Listing des Quellcodes:
 +
 +<code asm>
 +0100 B409                       MOV     AH,9
 +0102 BA0901                     MOV     DX,OFFSET MESSAGE
 +0105 CD21                       INT     21H
 +0107 CD20                       INT     20H
 +0109 4D45535341474524   MESSAGE DB      "MESSAGE$"
 +</code>
 +
 +=== BLINDIN.COM ===
 +Einfache Eingabe-Routine die Zeichen nicht übersetzt (anders als ECHO), zur Eingabe von ASCII-Werten mit der numerischen Tastatur (Alt_nnn). Durch Umleiten in eine Datei lassen sich so ASCII-Werte auch unter 32 eingeben.\\
 +
 + Beispiel:\\
 +BLINDIN>USERIN.TXT\\
 +
 +Die Zeichen werden bereits während der Eingabe in die Datei USERIN.TXT geschrieben. Leider kann man die eingegebenen Zeichen nicht sehen, sie werden aber als reine ASCII-Werte gespeichert.\\
 +Abgebrochen wird die Aufzeichnung mit <key>Ctrl</key>+<key>c</key>.\\
 +
 +<note classic>
 +Programme, die mit Hilfe von BLINDIN eingegeben werden, werden immer 2 Byte größer als der Programmcode, da BLINDIN am Ende "^C" (ASCII) anhängt.
 +Für das geschriebene Programm ist das aber ohne Bedeutung.
 +</note>
 +
 +Programm-Code:\\
 +
 +Dezimal:\\
 +180 001 205 033 235 250\\
 +
 +Hexadezimal:\\
 +B4 01 CD 21 EB FA\\
 +
 +In Debug sieht der Quellcode dazu so aus:
 +
 +<code asm>
 +xxxx:0100 B401          MOV     AH,01
 +xxxx:0102 CD21          INT     21
 +xxxx:0104 EBFA          JMP     0100
 +</code>
 +
 +Arbeitsprinzip: Die [[https://fd.lod.bz/rbil/interrup/dos_kernel/2101.html|DOS-Funktion 01h]] ("READ CHARACTER FROM STANDARD INPUT, WITH ECHO") wird in einer Schleife ohne Abbruchbedingung aufgerufen. Funktion 01h prüft aber selbst, ob der Anwender <key>Strg</key>+<key>c</key> für einen Abbruch gedrückt hat.
 ===== HT2B.COM ===== ===== HT2B.COM =====
 Schön und gut, mit dem Printer Setup-Code haben wir also eine Möglichkeit Binärdateien zu erzeugen, die jegliche 8-Bit-Werte enthalten können (0..255). Aber mal ehrlich, die Lust am Programmieren ist schnell dahin, wenn man Byte für Byte in der nötigen Syntax (\xxx) eintippen muss. Außerdem ist die Darstellung der bereits eingegebenen Bytes nicht gerade komfortabel.\\ Schön und gut, mit dem Printer Setup-Code haben wir also eine Möglichkeit Binärdateien zu erzeugen, die jegliche 8-Bit-Werte enthalten können (0..255). Aber mal ehrlich, die Lust am Programmieren ist schnell dahin, wenn man Byte für Byte in der nötigen Syntax (\xxx) eintippen muss. Außerdem ist die Darstellung der bereits eingegebenen Bytes nicht gerade komfortabel.\\
Zeile 166: Zeile 217:
 Unsere neue "Entwicklungsumgebung" besteht aus den Dateien HT2B.COM und HEX2COM.BAT. Nun können wir uns den schwierigen Umgang mit dem Printer Setup-Code für immer sparen und komfortabel jegliche Programme bis zu einer Größe von 32KB erzeugen (der Texteditor kann nur Dateien bis 64KB handhaben und man braucht mindestens 2 Zeichen pro Byte). Voraussetzung ist natürlich, man kennt sich mit Opcode-generierung für den 8086-Prozessor aus, oder man hat eine Quelle zum abtippen.\\ Unsere neue "Entwicklungsumgebung" besteht aus den Dateien HT2B.COM und HEX2COM.BAT. Nun können wir uns den schwierigen Umgang mit dem Printer Setup-Code für immer sparen und komfortabel jegliche Programme bis zu einer Größe von 32KB erzeugen (der Texteditor kann nur Dateien bis 64KB handhaben und man braucht mindestens 2 Zeichen pro Byte). Voraussetzung ist natürlich, man kennt sich mit Opcode-generierung für den 8086-Prozessor aus, oder man hat eine Quelle zum abtippen.\\
 Wer das Generieren von Opcode lernen will kann sich im Internet informieren, z.B. [[http://www.c-jump.com/CIS77/CPU/x86/lecture.html#X77_0330_intel_manual_opcode_bytes|hier]]\\ Wer das Generieren von Opcode lernen will kann sich im Internet informieren, z.B. [[http://www.c-jump.com/CIS77/CPU/x86/lecture.html#X77_0330_intel_manual_opcode_bytes|hier]]\\
- +\\
-===== OPCODES ===== +
- +
- +
-==== MESSAGE.COM ==== +
-Gibt Meldung aus.\\ +
-Dezimal:\\ +
-180 009 186 009 001 205 033 205 032 077 069 083 083 065 071 069 036\\ +
-Die ersten 9 Bytes sind Opcode, der Rest ist der Text der Meldung, in diesem Fall "MESSAGE$" (muß mit "$" (036) enden!)\\ +
-Dieses Programm kann mit dem Text-Editor bearbeitet werden, der Text (ab Byte 10) kann dann bis zu 226 Zeichen lang sein (ASCII 009 ist der Tabulator, in der Textverarbeitung 8 Zeichen breit, in der DOS-Befehlszeile 4). +
- +
-==== BLINDIN.COM ==== +
-Einfache Eingabe-Routine die Zeichen nicht übersetzt (anders als ECHO), zur Eingabe von ASCII-Werten mit der numerischen Tastatur (Alt_nnn). Durch Umleiten in eine Datei lassen sich so ASCII-Werte auch unter 32 eingeben.\\ +
- +
- Beispiel:\\ +
-BLINDIN>USERIN.TXT\\ +
- +
-Die Zeichen werden bereits während der Eingabe in die Datei USERIN.TXT geschrieben. Leider kann man die eingegebenen Zeichen nicht sehen, sie werden aber als reine ASCII-Werte gespeichert.\\ +
-Abgebrochen wird die Aufzeichnung mit <key>Ctrl</key>+<key>c</key>.\\ +
- +
-<note classic> +
-Programme, die mit Hilfe von BLINDIN eingegeben werden, werden immer 2 Byte größer als der Programmcode, da BLINDIN am Ende "^C" (ASCII) anhängt. +
-Für das geschriebene Programm ist das aber ohne Bedeutung. +
-</note> +
- +
-Programm-Code:\\ +
- +
-Dezimal:\\ +
-180 001 205 033 235 250\\ +
- +
-Hexadezimal:\\ +
-B4 01 CD 21 EB FA\\+
  
software/diy/andere/machinecodetext.txt · Zuletzt geändert: 12/09/2022 21:09 von bttr