Kolejny „przełomowy” przykład na podstawie kodu Rybags’a w Basicu. Film ponizej pokazuje szybkosc dzialania w Atari Basic vs Action!
set 14=$8000 set $491=$8000 include "H1:RUNTIME.ACT" proc main() byte vc=$D640, memcont=$D65E, membank=$D65F byte xdla0=$D641, xdla1=$D642, xdla2=$D643 byte pointer p=$A000 byte i, j, curinh=752 int bc, lum, ls card cs if vc<>$10 then printe("Brak VBXE FX") do od fi memcont=$A8 membank=128 p^=40 p==+1 p^=14 p==+1 p^=7 p==+1 p^=0 p==+1 p^=16 p==+1 p^=0 p==+1 p^=0 p==+1 p^=0 p==+1 p^=0 p==+1 p^=0 p==+1 p^=7 p==+1 p^=7 p==+1 p^=2 p==+1 p^=255 p==+1 for i=0 to 75 step 3 do p^=40 p==+1 p^=0 p==+1 p^=7 p==+1 od p^=0 p==+1 p^=128 membank=129 for i=0 to 23 do cs=$A000+i*80 lum=6 ls=2 bc=0 for j=0 to 39 do p=cs+j*4 p^=0 p==+1 p^=lum p==+1 lum==+ls if lum=15 or lum=6 then ls=-ls fi p^=bc p==+1 bc==+12 if bc>255 then bc==-255 fi p^=0 od od xdla0=0 xdla1=0 xdla2=0 graphics(0) curinh=1 vc=3 printf("%EVBXE is cool!") do od return
Różne wartości MAPSTEP i przyrostu bc dają różne efekty:
Od razu przychodzi do głowy żeby te wartości zmieniać w VBI…