mit folgendem Basic-Programm kann man in Turbobasic XL einen Farbverlauf sehen...
Da sieht mal erst, wie lahm dieses Basic ist.
Code: Alles auswählen
DO
PAUSE %0
FOR A=0 TO 4:NEXT A
POKE 53274,14
FOR A=4 TO 14 STEP 2:POKE 53274,A
NEXT A
POKE 53274,0
LOOP
Code: Alles auswählen
loop
lda vcount ; Zeile vom aktuellen Rasterstrahl
sta wsync ; warte auf nächste Zeile
sta colbk ; Hintergrundfarbe setzen
; sta colpf2 ; falls auch die Vordergrundfarbe gesetzt werden soll.
jmp loop
In (m)einer Hochsprache würde der Code so aussehen:
Code: Alles auswählen
PROGRAM farblauf
LOMEM $4000,runad
byte vcount=$D40B
byte wsync=$D40A
byte colbk=$D01A
begin
while 1!=0 do
begin
wsync:=0
colbk:=vcount
end
end
Einmal durch den Compiler getrieben, sieht das Ergebnis so aus, die ersten 19 Zeilen habe ich mal entfernt. Schön an meinem Compiler, er versucht den zugrunde liegenden Source als Kommentare mit einzubinden.
Code: Alles auswählen
?WHILE1
;
; while 1!=0 do
;
LDY #<0
CPY #<1 ; (14)
BNE ?THEN1 ; (26)
?FA1
JMP ?WEND1
?THEN1
;
; wsync:=0
;
LDY #<0
STY WSYNC
;
; colbk:=vcount
;
LDY VCOUNT
STY COLBK
JMP ?WHILE1
?WEND1
Es ist nicht das Optimum, aber verdammt nah dran und brauchbar schnell. Dafür ist der Source-Code kürzer und besser lesbar.
LG
Lars