Mit Action 2 Grafikscreens verwalten...
von atarineuling » So 8. Sep 2013, 23:10Ich habe den ACtion-Start auf $3000 hochgesetzt.
Ab $2000 habe ich einen Grafikscreen mit 3840 Byte.
1. Grafikscreen graphics(23) , Adresse bei savmsc (Adresse in adrg)
2. Grafikscreen dli entspricht graphics(23) ,ab 8192 (Adresse in adr)
Screen 2 (adr) ist sichtbar und Screen 1 (adrg) ist unsichtbar:
Joystick-Oben :
Auf 1 Zeichnen und nach 2 kopieren (den halben Screen 3840/2)
Joystick-unten:
Auf 1 Zeichnen und nach 2 kopieren (den halben Screen 3840/2)
Joystick-rechts:
savmsc=8192 , jetzt funktionieren die Grafikbefehle auf 2, mit poke(8192,255) die Kontrolle
Joystick-links:
savmsc=adrg, jetzt funktionieren die Grafikbefehle wieder auf 1
Auf 1 Zeichnen und nach 2 kopieren (den halben Screen 3840/2) , mit poke(adrg+6,255) die Kontrolle
Joystick-oben-rechts :
Screen 1 (adrg) ist sichtbar und Screen 2 (adr) ist unsichtbar
Joystick-oben-links :
Screen 2 (adr) ist sichtbar und Screen 1 (adrg) ist unsichtbar
Man kann ohne grosse Klemmzüge eine flimmerfreie bewegende Grafik erzeugen.
Ein Cockpit darstellen . Zb im unteren Screenteil (Screen 2, 8192) als Text decimale Werte als Anzeige für Armaturen und oben bewegende Grafik von einem Anflug eines Flugzeuges.
Bewegende Grafik durch umschalten oder kopieren....
Mehr Speicher, wenn die Runtime.act mit eingebunden wird.
Wenn ich das Modul drin habe zeigt mir Ramtop : $A000 an , ohne Modul und mit einbinden der Runtime.act, Ramtop: $C000. Mit diesen freien Speicher von $2000 - $C000 hat man viel Speicher zum spielen.
Wenn man den ACtion-Start auf $4000 hochsetzt kann man Screen1 ab $2000 und den Screen2 ab $3000 herstellen und lenkt die Grafikausgabe wie unten im Programm auf einen der beiden Screens.
Schon hat man die ganze Grafikspielerei aus seinen eigenen Speichbereich und $4000 - $C000 für den anderen Programmcode.
Gruss
Ab $2000 habe ich einen Grafikscreen mit 3840 Byte.
1. Grafikscreen graphics(23) , Adresse bei savmsc (Adresse in adrg)
2. Grafikscreen dli entspricht graphics(23) ,ab 8192 (Adresse in adr)
Screen 2 (adr) ist sichtbar und Screen 1 (adrg) ist unsichtbar:
Joystick-Oben :
Auf 1 Zeichnen und nach 2 kopieren (den halben Screen 3840/2)
Joystick-unten:
Auf 1 Zeichnen und nach 2 kopieren (den halben Screen 3840/2)
Joystick-rechts:
savmsc=8192 , jetzt funktionieren die Grafikbefehle auf 2, mit poke(8192,255) die Kontrolle
Joystick-links:
savmsc=adrg, jetzt funktionieren die Grafikbefehle wieder auf 1
Auf 1 Zeichnen und nach 2 kopieren (den halben Screen 3840/2) , mit poke(adrg+6,255) die Kontrolle
Joystick-oben-rechts :
Screen 1 (adrg) ist sichtbar und Screen 2 (adr) ist unsichtbar
Joystick-oben-links :
Screen 2 (adr) ist sichtbar und Screen 1 (adrg) ist unsichtbar
Man kann ohne grosse Klemmzüge eine flimmerfreie bewegende Grafik erzeugen.
Ein Cockpit darstellen . Zb im unteren Screenteil (Screen 2, 8192) als Text decimale Werte als Anzeige für Armaturen und oben bewegende Grafik von einem Anflug eines Flugzeuges.
Bewegende Grafik durch umschalten oder kopieren....
Mehr Speicher, wenn die Runtime.act mit eingebunden wird.
Wenn ich das Modul drin habe zeigt mir Ramtop : $A000 an , ohne Modul und mit einbinden der Runtime.act, Ramtop: $C000. Mit diesen freien Speicher von $2000 - $C000 hat man viel Speicher zum spielen.
Wenn man den ACtion-Start auf $4000 hochsetzt kann man Screen1 ab $2000 und den Screen2 ab $3000 herstellen und lenkt die Grafikausgabe wie unten im Programm auf einen der beiden Screens.
Schon hat man die ganze Grafikspielerei aus seinen eigenen Speichbereich und $4000 - $C000 für den anderen Programmcode.
Gruss
- Code: Alles auswählen
SET $E =$3000
SET $491=$3000
module
card dlist =560
byte dlst0= [ $70 $70 $70 $4D ]
card lms = [ 8192 ]
byte dlst1= [ $0D $0D $0D $0D $0D $0D $0D $0D $0D $0D
$0D $0D $0D $0D $0D $0D $0D $0D $0D $0D
$0D $0D $0D $0D $0D $0D $0D $0D $0D $0D
$0D $0D $0D $0D $0D $0D $0D $0D $0D $0D
$0D $0D $0D $0D $0D $0D $0D $0D $0D $0D
$0D $0D $0D $0D $0D $0D $0D $0D $0D $0D
$0D $0D $0D $0D $0D $0D $0D $0D $0D $0D
$0D $0D $0D $0D $0D $0D $0D $0D $0D $0D
$0D $0D $0D $0D $0D $0D $0D $0D $0D $0D
$0D $0D $0D $0D $0D $41 ]
card djmp= [ 0 ]
proc delay(card z)
card i
for i=0 to z
do
od
return
proc main()
byte joy0
card adr,adrg,len,dlistg
card savmsc=$58
len=3840/2
adr=8192
graphics(23)
adrg = savmsc
dlistg=dlist
color=1
djmp=@dlst0
dlist=@dlst0
zero (adr,3840)
do
joy0=stick(0)
delay(100)
if joy0=14 then
plot(0,0)
drawto(159,95)
moveblock (adr,adrg,len)
elseif joy0=13 then
plot(159,0)
drawto(0,95)
moveblock (adr,adrg,len)
elseif joy0=7 then
savmsc=8192
plot(80,0)
drawto(80,95)
poke(8192,255)
elseif joy0=11 then
savmsc=adrg
plot(90,0)
drawto(90,95)
poke(adrg+6,255)
moveblock (adr,adrg,len)
elseif joy0=6 then
dlist=dlistg
elseif joy0=10 then
dlist=@dlst0
fi
od
return