VBXE + Action! – Mapa atrybutów.

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…

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj /  Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj /  Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj /  Zmień )

Połączenie z %s