C 64
Tips und Tricks

Blinker

Das Programm ist etwa 130 Byte lang und frei im Speicher des C 64 verschiebbar. Mit dem Befehl

SYS Startadresse, Anzahl der Menüpunkte (maximal 9), Anfangszeile werden Zahlen von 1 bis 9 am linken Bildschirmrand dargestellt. Diese Zahlen blinken so lange, bis eine dieser Zahlen eingegeben wird. Fehleingaben werden ignoriert. Die eingegebene Zahl wird im ASCII-Format in die Speicherstelle 251 geschrieben und kann mit dem Befehl PEEK(251) vom Basic ausgelesen und weiterverarbeitet werden. Bei einem Fehler in dem SYS-Befehl wird eine »0« in die Speicherstelle 251 geschrieben.

Nach dem Start mit RUN muß dem C 64 mitgeteilt werden, ab welcher Adresse das Programm stehen soll.

Was das Programm leistet, zeigt das folgende Demoprogramm. Dazu müssen Sie in Zeile 50 der Variablen BL die Startadresse des Maschinenprogramms zuordnen.

(P K. Bhattacharya/ah)
10 print"{clr}{wht}"
11 input "staradresse={rght}{rght}{rght}{rght}828{left}{left}{left}{left}{left}";bl
20 fori=bltobl+132:readx:s=s+x:pokei,x:next:ifs<>19188thenprint"fehler":goto107
100 data32,253,174,32,158,183,134,253,224,10,176,113,224,1,144,109,32,253
101 data174,32,158,183,134,254,165,253,10,24,101,254,201,26,176,91,165,253
102 data9,48,133,252,166,254,160,0,24,32,240,255,169,48,133,250,230,250,165
103 data2,240,4,169,18,133,199,165,250,32,210,255,169,13,32,210,255,165,250
104 data197,252,240,7,169,13,32,210,255,208,223,162,103,165,198,240,15,32
105 data180,229,133,251,197,252,240,29,176,4,201,49,176,23,136,208,234,202
106 data208,231,165,2,240,5,138,133,2,240,175,230,2,208,171,169,0,133,251
107 data96,0,0,0:pokev,14:end
Listing 1. Listing zum Programm Blinker. Bei der Eingabe bitte Seite 54 beachten
10 a$=chr$(18):a$=a$+chr$(176)
20 fori=1to38:a$=a$+chr$(192):next:a$=a$+chr$(174):a$=a$+chr$(221)
30 fori=1to38:a$=a$+chr$(32):next:a$=a$+chr$(221):a$=a$+chr$(173)
40 fori=1to38:a$=a$+chr$(192):next:a$=a$+chr$(189)
50 :bl=828:s$="{home}{down}{down}{down}{down}{down}{down}":l$="    ":v=53280
60 fori=0to3:reada$(i):next:fori=0to3:readb$(i):next
70 fori=0to3:readt$(i):next:fori=0to3:readf$(i):next
80 fori=0to5:readd$(i):next
90 :pokev,6:print"{clr}";chr$(14)chr$(8)chr$(5)
100 x$=b$(0):gosub500:prints$;:fori=0to3:printl$a$(i):print:next:sysbl,4,6
110 fb=val(chr$(peek(251))):onfbgoto150,200,250,2000
120 goto100
150 x$=b$(1):gosub500:prints$;:fori=0to3:printl$t$(i):print:next:sysbl,4,6
160 fb=val(chr$(peek(251))):on-(fb=4)goto100:goto400
200 x$=b$(2):gosub500:prints$;:fori=0to3:printl$f$(i):print:next:sysbl,4,6
210 fb=val(chr$(peek(251))):on-(fb=4)goto100:goto400
250 x$=b$(3):gosub500:prints$;:fori=0to5:printl$d$(i):print:next:sysbl,6,6
260 fb=val(chr$(peek(251))):on-(fb=6)goto100:goto400
400 print"{home}":fori=0to18:print:next:printl$l$"Bitte eine Taste drucken"
410 poke198,0:wait198,255:goto100
500 rem
510 ln=len(x$):print"{clr}";a$;"{home}{down}";spc((40-ln)/2);x$chr$(146);"{down}{down}":return
1000 data "Arbeit mit Tastatur","Arbeit mit Diskette","Arbeit mit Drucker"
1010 data "Ende","MENUE","TASTATUR","DISKETTE","DRUCKER"
1020 data "Lesen","Schreiben","Editieren","Menue"
1030 data "Directory","Load","Save","Menue"
1040 data "Briefkopf","Grusswort","Titel","Seitenzahl","Text","Menue"
2000 pokev,14:printchr$(9):end
Listing 2. Demo-Listing zum Programm Blinker. Bei der Eingabe bitte Seite 54 beachten
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →