Die Floppy des Commodore 64 – C64-Wiki (2024)

Die Floppy des Commodore 64 und VC-20: Für Einsteiger und Aufsteiger

Sprachedeutsch
Autor(en)Hans Riedel, Claus Hentschel
VerlagFriedrich Kiehl Verlag GmbH, Ludwigshafen
Jahr1984
ISBNISBN 3-470-80431-1
NeupreisATS 232,- DM 29,80,-
Datenträger
Seitenzahl156
letzte Auflage1. Auflage
GenreProgrammieren, Hardware
Information

Inhaltsverzeichnis

  • 1 Beschreibung
  • 2 Inhaltsverzeichnis
  • 3 Leseprobe
  • 4 Meinung
  • 5 Siehe auch
  • 6 Weblinks

Das Buch "DIE FLOPPY DES COMMODORE 64 und VC-20" von Hans Riedel und Claus Hentschelversteht sich als Ergänzung zum Bedienungshandbuch der Floppy 1541.

Beschreibung[Bearbeiten | Quelltext bearbeiten]

Was im Handbuch bereits ausführlich behandelt wurde, ist hier nur kurz zitiert.Andere Fragen, z.B. aus den Bereichen

  • Dateitypen,
  • Programmierung der Floppy in Maschinensprache,
  • Logik der Befehlsübermittlung

werden dagegen ausführlich behandelt. Auch über die Technik der 1541 wird mit Abbildungen und Fotos informiert. Zu allen Themen gibt es dabei ausführlicheBeispiele. Auf 156 Seiten findet man so viel Nützliches zum Lernen oder Nachschlagen.Der Anhang enthält verschiedene Programme in Basic oder Maschinensprache zumEintippen, die zum Üben und Weiterentwickeln gedacht sind:

  • Backup
  • Datei-Kopierer
  • Relativ-Datei-Kopierer
  • Dis-Assembler
  • Hardcopy VC1526
  • Diskmonitor 1541

Inhaltsverzeichnis[Bearbeiten | Quelltext bearbeiten]

 SeiteVorwort ................................................................. 5 Einführung............................................................... 9 1 Beschreibung der 1541................................................ 10 1.1 Die Hardware .................................................... 10 1.2 Die Verbindung zum Commodore 64 ................................. 10 1.3 Anschluß und Inbetriebnahme...................................... 132 Die Diskette ........................................................ 14 2.1 Physikalischer Aufbau der Diskette .............................. 14 2.2 Logischer Aufbau der Diskette ................................... 15 2.3 Die Blockverkettung ............................................. 16 2.4 Die BAM (Block Availabilitiy Map)................................ 17 2.5 Das Directory (Inhaltsverzeichnis)............................... 223 Was speichert die 1541 .............................................. 25 3.1 Programmdateien ................................................. 25 3.1.1 BASIC-Programme ........................................... 26 3.1.2 Maschinenprogramme ........................................ 26 3.2 Sequentielle Dateien ............................................ 29 3.3 Relative Dateien ................................................ 32 3.3.1 Aufbau der relativen Datei ................................ 33 3.3.2 Arbeiten mit relativen Dateien ............................ 37 4 Wie arbeitet die 1541? .............................................. 44 4.1 Die Kanäle der 1541 ............................................. 44 4.2 Die Datenpuffer der 1541 ........................................ 47 4.3 Der Datentransport .............................................. 48 4.4 Der Fehlerkanal 15 .............................................. 50 4.5 Der Status ...................................................... 525 Die BASIC-Befehle zur Diskettenverwaltung ........................... 53 5.1 Allgemeiner Aufbau des Kommandos ................................ 53 5.2 Die Disketten-Kommandos ......................................... 55 5.2.1 Disketten anlegen/löschen ................................. 55 5.2.2 Disketten initialisieren .................................. 56 5.2.3 Disketten bereinigen ...................................... 57 5.3 Die Datei-Kommandos ............................................. 57 5.3.1 Dateien umbenennen auf der Diskette ....................... 57 5.3.2 Dateien kopieren auf der Diskette.......................... 58 5.3.3 Dateien löschen auf der Diskette .......................... 596 Die BASIC-Befehle zur Dateibearbeitung .............................. 60 6.1 Datenkanal öffnen ............................................... 60 6.2 Daten schreiben und lesen ....................................... 62 6.3 Umgang mit Status und Fehlermeldung ............................. 64 6.4 Datenkanal schließen ............................................ 65 7 Der Direktzugriff auf die Diskette .................................. 65 7.1 Vorbereitungen .................................................. 66 7.2 Der Ablauf des Direktzugriffs ................................... 70 7.3 Allgemeiner Aufbau der Kommandos ................................ 75 7.3.1 Block-Read................................................. 77 7.3.2 Block-Write................................................ 78 7.3.3 Block-Execute.............................................. 79 7.3.4 Buffer-Pointer............................................. 80 7.3.5 Block-Allocate............................................. 81 7.3.6 Block-Free................................................. 82 7.3.7 Memory-Read................................................ 83 7.3.8 Memory-Write............................................... 84 7.3.9 Memory-Execute............................................. 85 7.3.10 Der U1-Befehl ............................................ 86 7.3.11 Der U2-Befehl ............................................ 87 7.3.12 Die Sprungbefehle ........................................ 88 7.4 Anwendung der Kommandos ......................................... 898 Anwendungen des Direktzugriffs ...................................... 91 8.1 Ein Inhaltsverzeichnis .......................................... 92 8.2 Sortieren der Directory ......................................... 96 8.3 Ein Datei-Bett-Programm ......................................... 98 8.4 Ein Datei-Sicherungs-Programm ................................... 99 8.5 Ein Disketten-Manager .......................................... 1009 Programmierung der 1541 in Maschinensprache ........................ 103 9.1 Der Zugriff über logische Kanäle ............................... 104 9.2 Dateiverwaltung in Maschinensprache ............................ 109 9.2.1 Das "Umschalten" zwischen dem Benutzer und der 1541 ...... 109 9.2.2 Relative Dateien in Maschinensprache ..................... 111 9.2.3 Der Direktzugriff in Maschinensprache .................... 113 9.3 Das Zusammenspiel mit BASIC .................................... 115 9.4 Anwendungen .................................................... 117 9.4.1 Lesen eines Blocks in den Bildschirm ..................... 118 9.4.2 Schreiben eines Blocks vom Bildschirm .................... 123 9.4.3 Darstellen der gelesenen Bytes ........................... 12710 Die 1541 am VC20 ................................................... 131Anhang ................................................................. 133Sachwortregister ....................................................... 154Händler-Verzeichnis .................................................... 156

Leseprobe[Bearbeiten | Quelltext bearbeiten]

9.1 Der Zugriff über logische Kanäle

Wir wollen in diesem Abschnitt die Routinen des Betriebssystems des Commodore 64besprechen, die eine Umsetzung der BASIC-Befehle in Maschinensprache ermöglichen.Wir werden also Befehle wie OPEN, PRINT#Z, GET#, INPUT# und CLOSE in Maschinensprache nachbilden.

Beginnen wir mit der Beschreibung der Betriebssystem-Routinen des Commodore 64.Wir werden zuerst den Namen der Routine, dann die Ansprungadresse und anschließendeine Funktions-Beschreibung der Routine geben.

OPEN $FFC0 Öffnen eines Kanals im [[Commodore 64]]SETIN $FFC6 Kanalfestlegung für nachfolgende LesezugriffeSETOUT $FFC9 Kanalfestlegung für nachfolgende SchreibzugriffeCLRCHN $FFCC Rücksetzen der Kanäle auf Tastatur und BildschirmCHRIN $FFCF Lesen eines Zeichens über den LesekanalCHROUT $FFD2 Schreiben eines Zeichens über den SchreibkanalCLOSE $FFC3 Schließen eines KanalsSETLFS $FFBA Setzen der OPEN-ParameterSETNAM $FFBD Setzen des Kommando-Strings

Dies sind die Routinen, die es ermöglichen, die BASIC-Befehle zur Datei- und Disketten-Verwaltung nachzubilden. Sie werden im folgenden beschrieben und anhand von Beispielen erklärt.

Sämtliche Beispiele sind für den Commodore-Assembler aufgeführt. Bei Benutzung anderer Assembler für den Commodore 64, wie z.B. des MAE der Firma SM sind nur minimale Änderungen in der Syntax vorzunehmen. Grundsätzlich ist es ratsam, Maschinenprogrammierung nur mit einem Assembler vorzunehmen. Dies ist wesentlich übersichtlicher und vereinfacht die Programmierung ungemein.

OPENDiese Routine bildet exakt den BASIC-Befehl OPEN nach.Wie in BASIC benötigt auch diese Routine Parameter, und zwardie Kanalnummer LFN (Logical File Number),die Gerätenummer DN (Devise Number),die Sekundäradresse SA (Secondary Adress),den Kommando-String (optional).Diese Parameter müssen vor dem Aufruf der Routine OPEN feststehen!Das Betriebssystem des Commodore 64 besitzt auch dafür zwei Routinen,die die Parameter festlegen, also vorher aufgerufen werden massen.Es sind diesSETLFS und SETNAMSETLFS setzt beim Aufruf voraus, daß die Parameter LFN, DN und SA in dieser Reihenfolge im Akkumulator, dem X-Register und dem Y-Register stehen.SETNAM benötigt die Länge des Strings im Akkumulator sowie die Adresse des Strings in der Darstellung LSB und MSB im X-Registerund im Y-Register.

Erst nach diesen beiden Routinen kann die OPEN-Routine aufgerufen werden. Soll keinBefehls-String übergeben werden, so ist die SETNAM-Routine vorsichtshalber vorher miteiner Stringlänge von 0 aufzurufen.

Beispiele:

1. Kanal öffnen: OPEN 2,8,5

 LDA #2 ;Kanal 2 LDX #8 ;Geraetenummer 8 (Floppy 1541 LDY #5 ;Sekundaeradresse JSR SETLFS ;Parameter setzen LDA #0 ;Stringlaenge 0 (Stringadresse kann entfallen) JSR SETNAM ;Parameter setzen; JSR OPEN ;Kanal öffnen

2. Diskette formatieren: OPEN 15,8,15,"N:DISKETTE 2,D2"

 LDA #15 ;Kanal 15 LDX #8 ;Geraeteadresse 8 TAY ;Sekundaeradresse 15 JSR SETLFS ;Parameter setzen ; LDA #ENDKOM-KOMMND ;Laenge des Stringes KOMMND LDX #<KOMMND ;LSB der KOMMND-Adresse LDY #>KOMMND ;MSB der KOMMND-Adresse JSR SETNAM ;Parameter setzen ; JSR OPEN ;Kanal oeffnen und Kommando KOMMND senden . . . KOMMND .BYTE 'N:DISKETTE 2,D2' ENDDOM

3. Sequentielle Datei zum Schreiben öffnen: OPEN 3,8,3,"DATEI,S,W"

 LDA #3 LDX #8 TAX JSR SETLFS LDA #NAMEND-NAME LDX #<NAME LDY #>NAME JSR SETNAM JSR OPEN . . NAME .BYTE 'DATEI,S,W'

Meinung[Bearbeiten | Quelltext bearbeiten]

Petrus: Dieses Buch habe ich immer gern benutzt, weil es übersichtlich gegliedert ist und - obwohl recht dünn - viele Informationen für die Programmierung der 1541 enthält. Einziger Wermutstropfen: die schlechte Schriftqualität der Listings.

Siehe auch[Bearbeiten | Quelltext bearbeiten]

Die Floppy 1541 von Karsten Schramm

Weblinks[Bearbeiten | Quelltext bearbeiten]

Die Floppy des Commodore 64 – C64-Wiki (2024)

References

Top Articles
Latest Posts
Article information

Author: Nathanial Hackett

Last Updated:

Views: 6439

Rating: 4.1 / 5 (52 voted)

Reviews: 91% of readers found this page helpful

Author information

Name: Nathanial Hackett

Birthday: 1997-10-09

Address: Apt. 935 264 Abshire Canyon, South Nerissachester, NM 01800

Phone: +9752624861224

Job: Forward Technology Assistant

Hobby: Listening to music, Shopping, Vacation, Baton twirling, Flower arranging, Blacksmithing, Do it yourself

Introduction: My name is Nathanial Hackett, I am a lovely, curious, smiling, lively, thoughtful, courageous, lively person who loves writing and wants to share my knowledge and understanding with you.