Programm

Aus C64-Wiki
Zur Navigation springenZur Suche springen
Laden und Starten, sowie Bearbeitung eines BASIC-Programms auf dem Commodore 64.

Ein Programm (kurz für Computerprogramm) ist in der Regel eine sinnvolle Verknüpfung von Befehlen, Anweisungen und Methoden, das nach dem Programmstart selbstständig ausgeführt wird. Je nach den verwendeten Befehlen einer Programmiersprache (wie beispielsweise BASIC oder Maschinensprache beim C64) werden Daten in den Speicher eingelesen, diese vom Prozessor verarbeitet und dann auf einen Datenträger abgespeichert bzw. auf Peripherie-Geräte ausgegeben.
Programme werden üblicherweise auch als Software - in einer etwas allgemeineren Bedeutung - bezeichnet.


Programmtypen[Bearbeiten | Quelltext bearbeiten]

Je nach Zweck werden Programme unterschieden und bekommen eine verständliche Typenbezeichnung:

  • Anwendung: Allgemein ein Programm zur Verarbeitung von Daten, ist oft aber im Kontext kommerzieller, technisch-wissenschaftlicher Datenverarbeitung angesiedelt.
  • Betriebssystem: Programm, das den Betrieb eines Computers ermöglicht, d.h. alle Komponenten und Ressourcen (CPU, Speicher, Peripherie etc.) des Systems zur Benutzung einbindet und verwaltet (ggf. mit Benutzeroberfläche). Es bedient sich mitunter einem BIOS um hardware-nahe Ein-/Ausgabefunktionen abzuwickeln.
  • Benutzeroberfläche: Programm(e) zur vereinfachten oder besseren textuellen oder grafisch orientierten Bedienung des Computers wie z.B. GEOS (siehe auch GUI).
  • BIOS (engl. Kurzwort für Basic Input Output System): Basisprogramm zur Einstellung und Überwachung der einzelnen Hardware-Komponenten eines Computers (vergleichbar mit dem KERNAL bei Commodore).
  • Computerspiel: Programm zur Unterhaltung und zum Zeitvertreib des Benutzers.
  • Demo: Programm zur Demonstration eines Spiels oder Anwendung oder was man aus dem Rechner mit Tricks und cleverer Programmierung an Leistung heraus holen kann.
  • Entwicklungsumgebung: Programm(e) zur Eingabe von Quellcode einer Programmiersprache und zur Entwicklung von anderen Programme.
  • Treiber: Programm zur Nutzung zusätzlicher Hardware üblicherweise im Zusammenhang mit einem Betriebssystem.
  • Utility (siehe auch: engl. Tool, zu dt. Werkzeug): ein nützliches bzw. hilfreiches Programm zur Bewältigung einer spezielleren Aufgabe, wie Datenmanipulationen, zur Fehlereingrenzung bei Wartungsaufgaben, Programmentwicklung, etc.


BASIC-Programme[Bearbeiten | Quelltext bearbeiten]

Beim C64 und bei den früheren Commodore-Heimcomputern (PET 2001, VC 20, C116, C128/D/DCR oder Plus/4) ist die Programmiersprache BASIC fest eingebaut. BASIC wird auf Commodore-Computern als allgemeine Kommandosprache des Betriebssystems (im sogenannten Direktmodus, ähnlich der Eingabeaufforderung bei anderen Betriebssystemen) genutzt. Zum Schreiben eines Programms ist es nicht erforderlich, eine zusätzliche Programmierumgebung (wie Quellcode-Editor mit Compiler und Linker) zu nutzen. Eine Abfolge von verschiedenen BASIC-Befehlen inklusive Zeilennummern wird hier BASIC-Programm genannt. BASIC-Programme können auf den o. g. Commodore-Computern nach dem Laden mit dem LOAD-Befehl, der es in den Speicher an den Anfang des BASIC-RAM lädt, vor einem etwaigen Start mit dem Befehl RUN mit Hilfe des LIST-Befehls am Bildschirm ausgegeben werden, sofern kein Softwareschutz das Auflisten verhindert. Für die Ausführung der BASIC-Programme ist der eingebaute BASIC-Interpreter zuständig.

Ein BASIC-Programm ist gekennzeichnet durch folgende Merkmale (ein mit "+" markierter Punkt gilt eventuell nicht bei softwaregeschützten BASIC-Programmen):

  • besteht aus einer oder mehreren Programmzeilen mit entsprechend angeordneten Zeilennummern (im Bereich 0..63999).
  • besteht aus einem oder mehreren BASIC-Befehlen.
  • ist startbar mit RUN.
  • ist mit dem Dateityp PRG (Abkürzung für PRoGramm) auf Diskette abgespeichert.
  • kann von Datenträgern mit LOAD ["<Programmname>"] [,<Gerätenummer>] geladen werden. (+)
  • kann auf Datenträger mit SAVE ["<Programmname>"] [,<Gerätenummer>] gespeichert werden. (+)
  • befindet sich normalerweise beim C64 ab Speicherstelle 2049 ($0801) bis max. Speicherstelle 40959 ($9FFF) - siehe auch BASIC-RAM. (+)
  • kann mit NEW im Speicher gelöscht werden. (+)

Normale BASIC-Programme lassen sich mit den Tasten RUN/STOP  oder RUN/STOP+RESTORE  unterbrechen. Ebenso brechen sie im Falle eines Fehlers mit einer Fehlermeldung ab. Die Programme bleiben bei dieser Unterbrechung im Speicher. Dies erleichtert einerseits dem Programmierer die Fehlerbehebung (engl. Debugging) und andererseits können interessierte Anwender sich den Programmcode anschauen. Weiterhin ermöglicht es bestehenden BASIC-Programme sehr einfach zu erweitern, zu manipulieren oder umzuschreiben.


Ein kurzes BASIC-Programm-Beispiel:
Das folgende kleine BASIC-Programm schreibt immerfort den Text " * ICH BIN DER COMMODORE 64" auf dem Bildschirm. Abbruch nur mit der Taste RUN/STOP  möglich.

0 PRINT " * ICH BIN DER COMMODORE 64";:GOTO 0

Maschinensprache-Programme[Bearbeiten | Quelltext bearbeiten]

Es ist ebenfalls möglich, auf den Commodore-Heimcomputern wie C64/128 oder VC-20 direkt Maschinensprache-Programme zu schreiben. Dies ginge indirekt und sehr umständlich mit einer Reihe von POKE-Befehlen, etwas einfacher mit einem Maschinensprachemonitor oder dem Laden von fertigen Programmen mit Hilfe von LOAD ["<Programmname>"] [,<Gerätenummer>],1. Gestartet werden Maschinensprache-Programme hauptsächlich mit dem BASIC-Befehl SYS <Speicheradresse> oder indirekt mit USR(<Zahl>) und machmal durch das Laden eines Programms mit Autostart-Eigenschaft. Das Speichern eines Maschinenspracheprogramms ohne Hilfsmittel ist etwas schwierig, da ein beliebiger aber festgelegter Speicherbereich auf einen Datenträger gesichert werden muss, wofür es beim C64 aber keinen Befehl gibt. Der SAVE-Befehl der BASIC-Version erlaubt keine direkte Angabe des Speicherbereichs, sondern sichert immer jenen Bereich, den das im Speicher befindliche BASIC-Programm belegt (mit entsprechende Tricks über POKEs wäre dies aber realisierbar!). Die Dateiendung auf Diskette für Maschinensprache-Programme auf dem C64/128 ist ebenfalls PRG.

Da reine Maschinensprache nur aus Bits (0 und 1) besteht und dies recht schwierig einzugeben ist, wird oft ein symbolischer Assembler oder eine höhere Programmiersprache, die zu Maschinensprache übersetzt werden kann, verwendet. So existiert ein für den Menschen leichter lesbarer und wartbarer Quelltext des Programms, der mit Hilfe des Assemblers oder Compilers für die verwendete Programmiersprache, Maschinensprache erzeugt.

Andere Programme[Bearbeiten | Quelltext bearbeiten]

Programme in anderen Programmiersprachen wie Assembler oder C werden zunächst in einem Quellcode-Editor geschrieben. Danach werden diese kompiliert und gelinkt, damit eigenständig lauffähige Programme entstehen. Anschließend werden sie getestet und auftretende Fehler gesucht (engl. Debugging), die dann wieder im Quellcode beseitigt werden (siehe Programmierung).
Die kompilierten Programme lassen sich nicht mehr so einfach verändern oder manipulieren. Der Nachteil kompilierter Programme ist, dass Programmierfehler stärker ins Gewicht fallen, da im schlimmsten Fall der ganze Computer abstürzt und ihn nur noch ein Hardware-Reset oder der Ein-Ausschalter wieder arbeiten lässt.

Schädliche oder lästige Programme[Bearbeiten | Quelltext bearbeiten]

Neben den nützlichen Programmen gibt es seit den 1980er Jahren auch Programme, die den Computernutzer mutwillig schädigen oder zumindest dessen Computer inklusive der dort vorhandenen Informationen missbrauchen wollen. Allerdings kommt in diesem Zusammenhang für Commodore-Heimcomputer-Anwender bisher nur ein solcher Computervirus in Frage, der auf Daten von Diskette oder Datasette zugreifen kann.


Eine Übersicht der verschiedenen Arten von Schadsoftware kann in diesem Artikel nachgelesen werden. Es werden nicht nur Vertreter aus den C64-Zeiten, sondern auch zeitgemäße Arten von Malware aufgezählt.


Weblinks[Bearbeiten | Quelltext bearbeiten]

WP-W11.png Wikipedia: Computerprogramm
WP-W11.png Wikipedia: Computer program Sprache:english
WP-W11.png Wikipedia: Schadprogramm
WP-W11.png Wikipedia: Malware Sprache:english