Schlagwort-Archiv: ASM

C64 Programm ARD Tagesschau

Für die C64 Freunde ist das WiC64 Projekt nichts neues mehr.
Damit bringt man recht einfach den C64 ins Internet und das über WLAN!

Hier mein „ARD Tagesschau RSS“ für den C64.
Dies ist bereits im Wic64 Portal vorhanden.
Man kann dies aber auch als Stand-alone ausführen.
So funktioniert es auch ohne Anmeldung am Wic64 portal.

Die ARD Tageschau RSS:

ARD_Tagesschau

Quellcode liegt auf GitHub.

YouTube Demo: https://www.youtube.com/watch?v=0tEC8y20XpE

Der PHP Code:
Der PHP-Code bereitet den RSS Feed so vor, dass dies auf dem C64 (PETSCII) dargestellt werden kann.
Da die Anbieter meistens keine permanenten Abfragen gestatten, wird der Feed nur alle 30 min. aktualisiert.
Deshalb werden lauter Cachedateien erzeugt.

.htaccess:
Die Datei ist nötig, um die URL sauber zu umschreiben.
Ohne diese Datei würde die URL so ausesehen:

www.domain.tld/nm.php?v=1

Durch die htaccess Datei sieht es nun so aus:

www.domain.tld/m/1

Was das Ganze für die ASM Programmierung leichter macht, da man nur einen Buchstaben austauschen muss und am Schluss die Zahl.

ASM Code:
Der ASM Code ist der Teil für den C64. Hier wurde die Schrift verändert, damit Umlaute und Sonderzeichen dargestellt werden können.
Verwendet habe ich C64 Studio 7.0, damit kann der Code kompiliert werden.
Dies ist aber nicht nötig, da ich im Release das Fertige .prg ablege.

Ich bin gespannt, was es nur so an Programmen für den Wic64 geben wird.
Deshalb stelle ich den Quellcode frei zur Verfügung.

Es wäre auch noch sehr schön, dieses Programm auf einem VIC-20 zu sehen. Aber leider besitze ich noch kein VIC-20 und auch kein Wic20.
Das macht das Portieren für mich schwer.
Vielleicht findet sich ja jemand : ).

C64 ASM Keyboard abfrage

Hier eine sehr einfache Anleitung, wie man am C64 eine Tastaturabfrage realisiert. Als Programmierumgebung habe ich das kostenlos Erhältliche c64Studio. Kurze Erklärung: jsr $ffe4 ist eine Kernel routine des C64. Damit kann man die Zeichen der Tastatur einlesen. Man muss hier beachten, das auch wenn keine Taste gedrückt wird nicht gewartet wird. Drueckt man keine taste wird 0 ausgelesen. Deshlab wird im diesen Beispiel bei 0 wieder in die loop zurück gesprungen. Solange bis nun der Herr darrüben endlich mal die Taste drückt : ).

beq loop ; wenn keine Taste gedrückt --> zurück zu loop

Der Rest ist im Code mit ; kommentiert. !to "Keyboard.prg",cbm

Hier der Coder + PRG zum Keyboard abfrage: )


*=$0801
;SYS 2064
!byte $0C,$08,$0A,$00,$9E,$20,$32,$30,$36,$34,$00,$00,$00,$00,$00

start:

lda #$01 ; Weißer Hintergrund/Fordergund
sta $d020
sta $d021
lda #$00 ; Text Schwarz
sta $0286
jsr $e544 ; Clr screen / Bildschirm leeren
lda #titel
sta $ff
jsr printtext ; Siehe printext unten
jmp loop ; schleife für Tastenabfrage

loop:

jsr $ffe4 ; Keyboard input abfragen
beq loop ; wenn keine Taste gedrückt –> zurück zu loop
cmp #81 ; taste q
beq do1 ; do1 audführen
cmp #67 ; taste c
beq do2 ;
cmp #69 ; taste e
beq exit ;funktion exit
jmp loop

do1:

lda #textq
sta $ff
jsr printtext ; Print text

jmp loop

do2:

lda #textc
sta $ff
jsr printtext ; Print text
jmp loop

exit:

lda #$0d
jsr $ffd2
jsr $ffd2
lda #$00
rts

 

printtext:

ldy #$00

printloop:

lda ($fe),y
cmp #$00
beq printdone
jsr $ffd2
iny
bne printloop
inc $ff
jmp printtext

printdone:

rts

titel:    !text $0e,“keyboard abfrage:“,$0d

!text $0e,“drucke taste q“,$0d
!byte $00

textq:  !text $0e,“das war taste q“,$0d

!text $0e,“und nun taste c“,$0d
!byte $00

textc:  !text $0e,“c funktioniert auch“,$0d

!text $0e,“dann druecken wir e fuer ende oder q“,$0d
!b