Programm

Aus C64-Wiki
(Weitergeleitet von BASIC-Programm)
Wechseln zu: Navigation, Suche

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 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]

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 (bei Commodore im KERNAL integriert).
  • 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]

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. Die Abfolge von verschiedenen BASIC-Befehlen (siehe auch C64-Befehle) wird hier BASIC-Programm genannt. Da das BASIC auf Commodore-Computern gleichzeitig als Kommandosprache des Betriebssystems genutzt wird, ist es nicht erforderlich, eine zusätzliche Programmierumgebung (wie Quellcode-Editor mit Compiler und Linker) zu nutzen. Alle 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 direkt sichtbar gemacht werden. 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, die entsprechend nummeriert (im Bereich 0..63999) und geordnet sind
  • besteht aus einem oder mehreren BASIC-Befehlen
  • ist startbar mit RUN
  • ist mit der Dateiendung 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 (+)
  • kann mit NEW im Speicher gelöscht werden (+)
0 POKE 53280,0

Ein einfaches BASIC-Programm, ändert die Farbe des Bildschirmrahmens

Dadurch, dass die Programmiersprache beim C64 auch Teil des Betriebssystems ist, lassen sich normale BASIC-Programme mit den Tasten RUN/STOP  oder RUN/STOP+RESTORE  einfach unterbrechen oder sie brechen im Falle eines Fehlers mit einer Fehlermeldung selbstständig ab. Dies soll einerseits dem Programmierer die Fehlerbehebung erleichtern, aber andererseits verhindern, dass das BASIC-Programm verloren geht. Allerdings ermöglicht es auch den Programmbenutzern das Erforschen und Verändern des BASIC-Quellcodes. Dies lässt sich allerdings auch durch entsprechende Softwareschutzmaßnahmen für BASIC-Programme verhindern.


Übersicht der BASIC-RAM-Speicherbereiche

Die Angaben gelten für die Computer im Grundzustand!

Computer:       | Dezimal:     | Hexadezimal: | Anmerkung:
=================================================================================================
C64             | 02049-40959  | $0801-$9FFF  |
----------------+--------------+--------------+--------------------------------------------------
C128            | 07169-129534 | $1C01-$1F9FE | BASIC-RAM (*Verschiebung 
                |              |              | bei Grafiknutzung!) aufgeteilt in 
                |*16385-129534 |*$4001-$1F9FE | 2 Bänke (je 2 64-KByte-Chips) 
                |              |              | zu BASIC-Text- und BASIC-Variablen-RAM
----------------+--------------+--------------+--------------------------------------------------
VC20            | 04096-07679  | $1000-$1DFF  | frei: 3583 Byte,
VC20 3 KByte    | 01025-07680  | $0401-$1E00  | 6655 Byte bei Einsatz einer 
                |              |              | 3 KByte Speichererweiterung
VC20 ab 8 KByte | 04609~32768? | $1201~$8000? | frei: 11775, 19967, 28159 Byte 
                |              |              | ?eventuell kleiner je nach zusätzlichem Speicher!
----------------+--------------+--------------+--------------------------------------------------
C16/116         | 04096~06143# | $1000~$3FFF# | BASIC-RAM (#bei Grafiknutzung 
                |              |              |  wird dieser Bereich nach unten verkleinert!)
----------------+--------------+--------------+--------------------------------------------------
Plus/4          | 04096-64768  | $1000-$FD00  | BASIC-RAM Anfang 
                |*16385-64768  |*$4001-$FD00  | (*bei Grafiknutzung wird dieser 
                |              |              | Bereich nach oben verschoben!)
----------------+--------------+--------------+--------------------------------------------------
CBM505          | 00002-64093  | $0002-$FA5D  | Bank 1 bei 64 KByte
----------------+--------------+--------------+--------------------------------------------------
CBM510/610/710  | 00002-64093  | $0002-$FA5D  | Bank 1: BASIC-Text
  128 KByte     | 00002-64189  | $0002-$FABD  | Bank 2: Variablen, Arrays, Strings
----------------+--------------+--------------+--------------------------------------------------
CBM520/620/720  | 00002-64093  | $0002-$FA5D  | Bank 1: BASIC-Text
  256 KByte     | 00002-64255  | $0002-$FAFF  | Bank 2: Arrays
                | 32768-64255  | $8000-$FAFF  | Bank 3: Variablen
                | 00002-64189  | $0002-$FABD  | Bank 4: Strings
----------------+--------------+--------------+--------------------------------------------------
PET Urzustand   | 01024-08191  | $0400-$1FFF  | Minimal; Grundkonfiguration, frei: 
                |              |              | 7167 Byte
PET             | 01024~32767~ | $0400~$7FFF~ | Maximal; ~je nach Speicheraufrüstung 
                |              |              | kann er kleiner sein!

Maschinensprache-Programme[Bearbeiten]

Es ist ebenfalls möglich, auf den Commodore-Heimcomputern wie C64/128 oder VC20 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 Angabe des Speicherbereichs, sondern sichert immer jenen Bereich, den das im Speicher befindliche BASIC-Programm belegt. Die Dateiendung auf Diskette für Maschinensprache-Programme auf dem C64/128 ist ebenfalls PRG.

Da reine Maschinesprache 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]

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 Programme[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 nicht immer klar trennbare, grobe Klassifizierung gängiger Schadprogramme:

  • Dialer: Einwahlprogramm für die Verbindung ins Internet, das unerlaubt eine teure Telefoneinwahlnummer nutzt.
  • Spyware: Programm zum Ausspionieren von Daten eines Benutzers und dessen Nutzungsverhalten am Computer.
  • Trojaner: Programm, das vorgaukelt, etwas (Nützliches) zu sein, das es aber nicht ist und versteckt Dinge tut (Daten übermittelt oder manipuliert, Computer unter fremder Kontrolle stellt, weitere Programme nachlädt etc.).
  • Wurm: meist ein eigenständiges Programm, das sich sich typischerweise über ein Computernetzwerk verbreitet und ggf. benachbarte Netzwerke und alle darin genutzten Computersysteme befällt und mitunter diese stört oder sonstige unerwünschte Aktionen durchführt.
  • Virus: Programmcode, der sich sich an andere Programme anhängt bzw. sich dort einnistet und diese damit infiziert. Neben der Weiterverbreitung sind mitunter auch unerwünschte bis zu zerstörerische Aktionen inkludiert.