No i jest, pierwszy eksperyment w Action! + VBXE: obrazek w tle:
set 14=$8000
set $491=$8000
include "H1:RUNTIME.ACT"
proc CIOVE=$E4DF(byte areg, xreg)
proc delay()
card i
for i=0 to 30000 do od
return
proc main()
byte vc=$D640
int i byte memcont=$D65E, membank=$D65F
byte psel=$D645, csel=$D644, cr=$D646, cg=$D647, cb=$D648
byte xdla0=$D641, xdla1=$D642, xdla2=$D643
byte blt0=$D650, blt1=$D651, blt2=$D652, bltst=$D653
byte bkg=710, curinh=752
byte iocb1cmd=850
card iocb1buf=852, iocb1len=856
byte array xdl=[98 136 219 0 2 0 64 1 17 223]
;clrscr blitterlist
byte array clrscr=
[ 0 0 0 ;src addr
0 0 ;src step y
0 ;src step x
0 0 0 ;dst addr ($0000 up)
64 1 ;dst step y (320)
1 ;dst step x
63 1 ;width (320-1)
239 ;height (240-1)
0 ;and mask
0 ;xor mask
0 ;collision and mask
0 ;zoom
0 ;pattern
0 ] ;control
if vc<>$10 then
printe("No VBXE FX found")
delay()
[$4C $C2AA] ;warm reset
fi
memcont=$A8 ;memac at $A000, cpu access
membank=128+20
moveblock($A000, xdl, 10)
xdla0=0 xdla1=64 xdla2=1
moveblock($A100, clrscr, 21)
blt0=0 blt1=65 blt2=1
bltst=1 ;blitter start will clear scr
while bltst <> 0 do od ;let's wait till
;blitter finishes
graphics(0)
bkg=0 curinh=1 put(31)
close(1)
open(1,"D1:AN.PAL",4,0)
psel=1 csel=0
for i=0 to 255 do
cr=getd(1) cg=getd(1) cb=getd(1)
od
close(1)
open(1,"D1:AN.PIC",4,0)
iocb1cmd=7
iocb1buf=$A000
iocb1len=$1000
for i=2 to 18 do
membank=128+i
CIOVE(0,$10)
od
close(1)
vc=3
printe("Hej czesc! Daj cos zjesc!")
do od
return

Więcej informacji w tym wątku:
http://atarionline.pl/forum/comments.php?DiscussionID=2623&page=1#Item_15
Z moich przemyśleń dodam tylko uwagę na temat adresu overlay w xdl. Adres overlay w tym przykładzie to 0 2 0, czyli 2^9=512. Obrazek kopiujemy od adresu $2000=8192 i jeśli ustawiłbym overlay na 0 32 0 to obraz wyświetlany byłby od samej góry, brzydko trochę, nie? Przy pierwszym podejściu ustawiałem ten adres na 0 0 0 i zastanawiałem się, czemu obrazek jest przesunięty? Po dwóch tygodniach naszła mnie właściwa myśl… Otóż, adres overlay musi być taki, aby 8192-adres było podzielne przez 320 (tada!). Czyli np. jeśli chcemy przed obrazkiem 24 linie, to 8192-24*320=512. W powyższym przykładzie blitter zeruje pamięć od $0000 więc mamy ładną ramkę przed i po obrazku.