Lösungen für die Probleme von Kapitel 5 der vollständigen Online-Datenbank für Informatik und des Internet-Karrierekurses von Anfang an

Losungen Fur Die Probleme Von Kapitel 5 Der Vollstandigen Online Datenbank Fur Informatik Und Des Internet Karrierekurses Von Anfang An



Probleme und ihre Lösungen

1) Schreiben Sie einen 6502-Assembler-Code, der alle Bits von CIA #2-Port A als Ausgabe und CIA #2-Port B als Eingabe macht.







Lösung:



LDA #$FF
STA DDRA2 ; $DD00 wird von $DD02 gesteuert
LDA #$00
STA DDRB2 ; $DD01 wird von $DD03 geleitet



2) Schreiben Sie einen 6502-Assembler-Code, der auf eine Tastaturtaste wartet, bis diese gedrückt wird.





Lösung:

WARTEN JSR GETIN
CMP #$00
FROSCH, WARTE



3) Schreiben Sie ein 6502-Assembler-Programm, das das „E“-Zeichen an den Commodore-64-Bildschirm sendet.

Lösung:

; Kanal einrichten
LDA #40 $; logische Dateinummer
LDX #$03 ; Die Gerätenummer für den Bildschirm ist $03
LDY #$FF ; keine Zweitadresse
JSR SETLFS; Richten Sie den richtigen Setup-Kanal ein
;
; Logische Datei öffnen
JSR OFFEN
; Kanal für die Ausgabe festlegen
LDX #$40 ; logische Dateinummer
JSR CHKOUT
;
; Ausgabezeichen auf dem Bildschirm
LDA #$05
JSR CHROUT
; Logische Datei schließen
LDA #40
JSR SCHLIESSEN

4) Schreiben Sie ein 6502-Assembler-Programm, das ein Zeichen von der Tastatur übernimmt und es an den Commodore-64-Bildschirm sendet, wobei der Tastencode und das Timing ignoriert werden.

Lösung:

; Kanal einrichten
LDA #40 $; logische Dateinummer
LDX #$03 ; Die Gerätenummer für den Bildschirm ist $03
LDY #$FF ; keine Zweitadresse
JSR SETLFS; Richten Sie den richtigen Setup-Kanal ein
;
; Logische Datei öffnen
JSR OFFEN
; Kanal für die Ausgabe einstellen
LDX #$40 ; logische Dateinummer
JSR CHKOUT
;
; Geben Sie Zeichen über die Tastatur ein
WARTEN JSR GETIN ; fügt $00 in A ein, wenn die Tastaturwarteschlange leer ist
CMP #$00 ; Wenn $00 an A gingen, dann ist Z beim Vergleich 1
BEQ WARTEN ; GETIN erneut aus der Warteschlange, wenn 0 zum Akkumulator ging
BNE PRNSCRN ; gehe zu PRNSCRN, wenn Z 0 ist, weil A nicht mehr $00 hat
; Ausgabezeichen auf dem Bildschirm
PRNSCRN JSR CHROUT ; Senden Sie das Zeichen in A an den Bildschirm
; Logische Datei schließen
LDA #40
JSR SCHLIESSEN

5) Schreiben Sie ein 6502-Assembler-Programm, das ein Byte von der Commodore-64-Diskette empfängt.

Lösung:

; Kanal einrichten
LDA #40 $; logische Dateinummer
LDX #$08 ; Gerätenummer für das erste Laufwerk
LDY #$02 ; sekundäre Adresse
JSR SETLFS; Richten Sie den richtigen Setup-Kanal ein
;
; Datei im Laufwerk hat einen Namen (bereits im Speicher)
LDA #$09
LDX #$01
LDY#$C1
JSR SETNAM
; Logische Datei öffnen
JSR OFFEN
; Kanal für die Ausgabe festlegen
LDX #$40 ; logische Dateinummer
JSR CHKIN ; zum Lesen
;
; Geben Sie Zeichen von der Festplatte ein
JSR CHRIS
; Logische Datei schließen
LDA #40
JSR SCHLIESSEN

6) Schreiben Sie ein 6502-Assembler-Programm, das eine Datei auf der Commodore-64-Diskette speichert.

Lösung:

; Kanal einrichten
LDA #40 $; logische Dateinummer
LDX #$08 ; Gerätenummer für das erste Laufwerk
LDY #$02 ; sekundäre Adresse
JSR SETLFS; Richten Sie den richtigen Setup-Kanal ein
;
; Name für Datei im Festplattenlaufwerk (bereits im Speicher bei $C301)
LDA #$09 ; Länge des Dateinamens
LDX #$01
LDY#$C3
JSR SETNAM
; Logische Datei öffnen
JSR OFFEN
; Kanal für die Ausgabe einstellen
LDX #$40 ; logische Dateinummer
JSR CHKOUT ; zum Schreiben
;
; Ausgabedatei auf die Festplatte
LDA #$01
STA 2 Mrd. $; TXTTAB
LDA #$C1
STA $2C
LDX #$00
LDY#$C2
LDA #2 Mrd. $
JSR SPEICHERN
; Logische Datei schließen
LDA #40
JSR SCHLIESSEN

7) Schreiben Sie ein 6502-Assembler-Programm, das eine Programmdatei von der Commodore-64-Diskette lädt und starten Sie es.

Lösung:

; Kanal einrichten
LDA #40 $; logische Dateinummer
LDX #$08 ; Gerätenummer für das erste Laufwerk
LDY #$02 ; sekundäre Adresse
JSR SETLFS ; Richten Sie den richtigen Setup-Kanal ein
;
; Name für Datei im Festplattenlaufwerk (bereits im Speicher bei $C301)
LDA #$09 ; Länge des Dateinamens
LDX #$01
LDY #$C3
JSR SETNAM
; Logische Datei öffnen
JSR OFFEN
; Kanal für den Eingang festlegen
LDX #$40 ; logische Dateinummer
JSR CHKIN ; zum Lesen
;
; Eingabedatei von der Festplatte
LDA #$00
JSR-LADUNG
; Logische Datei schließen
LDA #40
JSR SCHLIESSEN
; Geladenes Programm starten
JSR-START

8) Schreiben Sie ein 6502-Assembler-Programm, das das Byte „E“ (ASCII) an das Modem sendet, das an den benutzerkompatiblen RS-232-Anschluss des Commodore-64 angeschlossen ist.

Lösung:

; Kanal einrichten
LDA #40 $; logische Dateinummer
LDX #$02 ; Gerätenummer für RS-232
LDY #$FF ; keine Zweitadresse
JSR SETLFS; Richten Sie den richtigen Setup-Kanal ein
;
; Der Name für RS-232 ist ein Code, z. B. 0610 $
LDA #$02 ; Die Länge des Codes beträgt 2 Bytes
LDX #$10
LDY#$06
JSR SETNAM
;
; Logische Datei öffnen
JSR OFFEN
; Kanal für die Ausgabe festlegen
LDX #$40 ; logische Dateinummer
JSR CHKOUT
;
; Ausgabezeichen auf RS-232, z.B. Modem
LDA #45
JSR CHROUT
; Logische Datei schließen
LDA #40
JSR SCHLIESSEN

9) Erklären Sie, wie Zählen und Timing im Commodore-64-Computer erfolgen.

Lösung:

Siehe Kapitel 5 des Buches.

10) Erklären Sie, wie die Commodore-64-Systemeinheit 10 verschiedene unmittelbare Interrupt-Anforderungsquellen identifizieren kann, einschließlich der nicht maskierbaren Interrupt-Anforderungen.

Lösung:

Siehe Kapitel 5 des Buches.

11) Erklären Sie, wie ein Hintergrundprogramm mit einem Vordergrundprogramm im Com-modore-64-Computer ausgeführt werden kann.

Lösung:

Siehe Kapitel 5 des Buches.

12) Erklären Sie kurz, wie die Assemblerprogramme in einer Anwendung für den Commodore-64-Computer kompiliert werden können.

Lösung:

Siehe Kapitel 5 des Buches.

13) Erklären Sie kurz den Bootvorgang für den Commodore-64-Computer.

Lösung:

Siehe Kapitel 5 des Buches.