software:diy:andere:machinecodetext
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
software:diy:andere:machinecodetext [18/11/2012 18:11] – ergänzt uxt | software: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 " | ||
+ | |||
+ | 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:// | ||
+ | |||
+ | <code asm> | ||
+ | 0100 B409 | ||
+ | 0102 BA0901 | ||
+ | 0105 CD21 | ||
+ | 0107 CD20 | ||
+ | 0109 4D45535341474524 | ||
+ | </ | ||
+ | |||
+ | === 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.\\ | ||
+ | |||
+ | | ||
+ | BLINDIN> | ||
+ | |||
+ | 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 < | ||
+ | |||
+ | <note classic> | ||
+ | Programme, die mit Hilfe von BLINDIN eingegeben werden, werden immer 2 Byte größer als der Programmcode, | ||
+ | Für das geschriebene Programm ist das aber ohne Bedeutung. | ||
+ | </ | ||
+ | |||
+ | 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 | ||
+ | </ | ||
+ | |||
+ | Arbeitsprinzip: | ||
===== 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 118: | Zeile 170: | ||
20 48 45 4C 4C 4F 20 57 | 20 48 45 4C 4C 4F 20 57 | ||
4F 52 4C 44 21 24 B4 4C | 4F 52 4C 44 21 24 B4 4C | ||
- | B0 00. | + | B0 00 CD 21. |
</ | </ | ||
HT2B.COM soll dann alle Zeichen paarweise auswerten und binär ausgeben. Das Ende der Datei erkennt HT2B an dem " | HT2B.COM soll dann alle Zeichen paarweise auswerten und binär ausgeben. Das Ende der Datei erkennt HT2B an dem " | ||
Zeile 131: | Zeile 183: | ||
FE C1 EB CE 00 C2 B4 02 | FE C1 EB CE 00 C2 B4 02 | ||
CD 21 B1 00 EB C4 B4 4C | CD 21 B1 00 EB C4 B4 4C | ||
- | B0 00. | + | B0 00 CD 21. |
</ | </ | ||
Aber nun müssen wir es erstmal erstellen, leider mühsam mit dem Printer Setup-Code, aber es lohnt sich, Augen zu und durch. Um die Zeile der Eingaberoutine des Setup-Codes möglichst kurz zu halten und alle Bytes unterbringen zu können, geben wir sie stufenweise ein, z.B.:\\ | Aber nun müssen wir es erstmal erstellen, leider mühsam mit dem Printer Setup-Code, aber es lohnt sich, Augen zu und durch. Um die Zeile der Eingaberoutine des Setup-Codes möglichst kurz zu halten und alle Bytes unterbringen zu können, geben wir sie stufenweise ein, z.B.:\\ | ||
Zeile 140: | Zeile 192: | ||
\006\000< | \006\000< | ||
- | \016\246\227\138\013\254\193\235\206\000\194 | + | \016\246\227\138\208\254\193\235\206\000\194 |
- | \180\002\205!\177\000\235\196\180L\176\000 | + | \180\002\205!\177\000\235\196\180L\176\000\205! |
- | Nun leiten wir die Druckausgabe in den Systemeinstellungen in eine Datei namens C:\HT2B.COM um, öffnen eine leere Text-Datei und drucken sie. Haben wir alles richtig gemacht und auf Laufwerk C: war genügend Platz, ist unser Programm fertig.\\ | + | Nun leiten wir die Druckausgabe in den Systemeinstellungen in eine Datei namens C:\HT2B.COM um, öffnen eine leere Text-Datei und drucken sie. Denken sie daran alle Druckereinstellungen auf " |
Was machen wir nun damit? Was macht HT2B.COM? Starten wir es.\\ | Was machen wir nun damit? Was macht HT2B.COM? Starten wir es.\\ | ||
\\ | \\ | ||
- | Geben sie C:HT2B in der DOS-Befehlszeile ein und drücken sie die Eingabetaste. HT2B erkennt nur Ziffern (0 bis 9) und die Zeichen A,B,C,D,E,F und den " | + | Geben sie C:HT2B in der DOS-Befehlszeile ein und drücken sie die Eingabetaste. HT2B erkennt nur Ziffern (0 bis 9) und die Zeichen A,B,C,D,E,F und den " |
- | | + | |
- | wie an sieht gibt HT2B, nachdem zwei gültige Zeichen eingegeben wurden, das entsrechende Byte aus. Um das Programm zu beenden drücken sie die < | + | wie man sieht gibt HT2B, nachdem zwei gültige Zeichen eingegeben wurden, das entsrechende Byte aus. Um das Programm zu beenden drücken sie die < |
\\ | \\ | ||
Wir wollen die Bytes aber nicht an der Konsole eingeben, und die Bildschirmausgabe bringt uns auch nichts. Nun, um das Programm klein und einfach zu halten, verwendet es nur die Standard Ein- und Ausgabe, Dateimanipulation würde viel Code brauchen. Aber kein Problem, lassen wir DOS die Arbeit machen und leiten die Ein- und Ausgabe mit Hilfe einer Stapelverarbeitungsdatei um: öffnen sie eine neue Datei in der Textverarbeitung und benennen sie sie HEX2COM.BAT: | Wir wollen die Bytes aber nicht an der Konsole eingeben, und die Bildschirmausgabe bringt uns auch nichts. Nun, um das Programm klein und einfach zu halten, verwendet es nur die Standard Ein- und Ausgabe, Dateimanipulation würde viel Code brauchen. Aber kein Problem, lassen wir DOS die Arbeit machen und leiten die Ein- und Ausgabe mit Hilfe einer Stapelverarbeitungsdatei um: öffnen sie eine neue Datei in der Textverarbeitung und benennen sie sie HEX2COM.BAT: | ||
Zeile 159: | Zeile 211: | ||
In der zweiten Zeile wird eine evtl. bereits oder noch vohandene Zieldatei gelöscht. In der dritten Zeile findet die Umleitung statt: HT2B erhält die Eingabe von der angegebenen *.HTX-Datei und schreibt das Ergebnis in die entsprechende *.COM Datei.\\ | In der zweiten Zeile wird eine evtl. bereits oder noch vohandene Zieldatei gelöscht. In der dritten Zeile findet die Umleitung statt: HT2B erhält die Eingabe von der angegebenen *.HTX-Datei und schreibt das Ergebnis in die entsprechende *.COM Datei.\\ | ||
\\ | \\ | ||
- | Haben sie die Quelldatei HALLO.HTX wie oben beschrieben erzeugt (nie den " | + | Haben sie die Quelldatei HALLO.HTX wie oben beschrieben erzeugt (nie den " |
HEX2COM HALLO | HEX2COM HALLO | ||
in die DOS Befehlszeile eingeben. HT2B wird dann die Datei HALLO.HTX auswerten und das Ergebnis in HALLO.COM ablegen.\\ | in die DOS Befehlszeile eingeben. HT2B wird dann die Datei HALLO.HTX auswerten und das Ergebnis in HALLO.COM ablegen.\\ | ||
Zeile 165: | Zeile 217: | ||
Unsere neue " | Unsere neue " | ||
Wer das Generieren von Opcode lernen will kann sich im Internet informieren, | Wer das Generieren von Opcode lernen will kann sich im Internet informieren, | ||
- | + | \\ | |
- | ===== 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 " | + | |
- | 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.\\ | + | |
- | + | ||
- | | + | |
- | BLINDIN> | + | |
- | + | ||
- | 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 < | + | |
- | + | ||
- | <note classic> | + | |
- | Programme, die mit Hilfe von BLINDIN eingegeben werden, werden immer 2 Byte größer als der Programmcode, | + | |
- | Für das geschriebene Programm ist das aber ohne Bedeutung. | + | |
- | </ | + | |
- | + | ||
- | Programm-Code: | + | |
- | + | ||
- | Dezimal: | + | |
- | 180 001 205 033 235 250\\ | + | |
- | + | ||
- | Hexadezimal: | + | |
- | B4 01 CD 21 EB FA\\ | + | |
software/diy/andere/machinecodetext.1353261039.txt.gz · Zuletzt geändert: 16/02/2024 17:02 (Externe Bearbeitung)