Display MoreAn alle COMAL-80 begeisterte Mitglieder!
Wer das hier im COMAL-80 ohne POKE & PEEK schafft, bekommt 0.75 Schljiwowica direkt nach Hause geschickt {aus Kroatien!}
Also keine billig Variante, sondern COMAL-80-Qualitäts-Schljiwowica!
{Ich selber werde es auch probieren!
}
Code Display More0010 USE system 0020 USE graphics 0030 textbackground(0); textborder(0) 0040 PAGE 0050 a$:="commodore c64 - last true 8-bit pc!"; textcolor(0) 0060 PRINT AT 2,21-(LEN(a$)/2): ""18""+""142""+a$ 0070 DIM code(11) 0080 RESTORE colors 0090 FOR a:=1 TO 11 DO 0100 READ palette 0110 code(a):=palette 0120 ENDFOR a 0130 colors: 0140 DATA 0,6,14,11,12,4,4,12,11,14,6 0150 LOOP 0160 FOR a:=0 TO 47 DO 0170 FOR b:=1 TO 11 DO POKE 55328+b+a,code(b) 0180 TIME 0 // wer moechte 0190 WHILE TIME<0 DO NULL 0200 ENDFOR a 0210 ENDLOOPIch habe eben etwas mit deinem Code herum probiert. Dabei ist mir folgendes aufgefallen:
Die Zeilen 80 und 130 sind unnötig; READ beginnt so oder so mit dem 1. DATA Statement.
Man benötigt nicht beide Packages.
- Entweder USE graphics und dann, wie in Zeilen 30 und 50 textbackground(0), textborder(0) und textcolor(0)
- oder USE system und in Zeile 30 einmal textcolors(0,0,0)
Ich verwende textcolors so gut wie nie {programmiere meistens mit dem C128, 80-Zeichen Bildschirm und habe dann auch noch textmode(0) drin damit es zum 40-Zeichenbildschirm umschaltet}
Mit individuellen Befehlen habe ich das irgendwie besser unter Kontrolle.
READ und DATA ... Ja, da bin ich der Macht der Gewohnheit zum Opfer gefallen ![]()
Aber, danke! Ich dachte schon keiner schaut sich meine Bemühungen an. ![]()
Hier noch eine Version, als PROZEDUR:
Das kann man einfach in eigene Programme einbinden. Keine verschachtelte Schleife mehr reagiert schneller auf key$ abfragen.
{Start-Variable ist mehr als Null wenn ich Z. Bsp. eine 40 Zeichen Textzeile habe und nicht will, dass die Farben einfach aus dem Nichts auf dem Text erscheinen, sondern, so wie jetzt, drüber fahren. Dann muss ich achten, dass insgesamt drei Zeilen dafür verwendet werden. Beispiel : 40 Zeichen Text, 10 Farben ergibt Start = 10 {mehr geht auch wenn man so eine Art Verzögerung
haben möchte. Der Text muss also einen Abstand von min. einer {leeren} Zeile haben, oben und unten!}
0010 USE system
0020 USE graphics
0030 textbackground(0); textborder(0); xa#:=0
0040 PAGE
0050 b$:="!hier werden sie geholfen!"; textcolor(0)
0060 PRINT AT 12,21-(LEN(b$)/2): ""18""+""142""+b$
0070 dim code(11)
0080 for a:=1 to 7 do
0090 read palette
0100 code(a):=palette
0110 endfor a
0120 data 0,6,11,12,12,11,6
0130 loop
0140 regenbogen(11,0,1)
0150 endloop
0160 proc regenbogen(zeile,start,delay)
0170 if zeile=0 and start<>0 then
0180 print ""28"start > 0 ab zeile 1[2] moeglich!"
0190 end
0200 endif
0210 if zeile=24 and start<>0 then
0220 print ""28"start > 0 ab zeile 23[24] moeglich!"
0230 end
0240 endif
0250 xa#:=xa#+1
0260 if xa#>39+start then xa#:=1
0270 for b:=1 to 7 do poke (55296+40*zeile)+b+xa#-start,code(b)
0280 time 0 // wer moechte
0290 while time<delay do null
0300 endproc regenbogen
Display More