rem Memblock Functionality rem Standard Setup Code for all examples sync on : sync rate 0 : backdrop off set text font "arial" : set text size 16 set text to bold : set text transparent rem Set values SoundNumber=1+rnd(3) ImageNumber=1+rnd(3) BitmapNumber=1+rnd(3) MeshNumber=1+rnd(3) rem Load media load sound "gun.wav",SoundNumber load image "face.bmp",ImageNumber load bitmap "face.bmp",BitmapNumber load mesh "mesh.x",MeshNumber rem Main loop do rem Produce random values MemblockNumber=1+rnd(254) MemblockTo=1+rnd(254) FromPos=rnd(100) ToPos=FromPos+1+rnd(50) SizeInBytes=202+rnd(10240) TenBytes=10 ByteValue=rnd(255) WordValue=rnd(65535) DWORDValue=rnd(22000000) FloatValue=rnd(10000)/100.0 rem Try each command at random r=rnd(4) if MEMBLOCK EXIST(MemblockNumber)=0 if r=0 then MAKE MEMBLOCK MemblockNumber, SizeInBytes if r=1 then MAKE MEMBLOCK FROM SOUND MemblockNumber, SoundNumber if r=2 then MAKE MEMBLOCK FROM IMAGE MemblockNumber, ImageNumber if r=3 then MAKE MEMBLOCK FROM BITMAP MemblockNumber, BitmapNumber if r=4 then MAKE MEMBLOCK FROM MESH MemblockNumber, MeshNumber endif if MEMBLOCK EXIST(MemblockNumber)=1 if r=1 then DELETE SOUND SoundNumber if r=2 then DELETE IMAGE ImageNumber if r=3 then DELETE BITMAP BitmapNumber if r=4 then DELETE MESH MeshNumber endif if MEMBLOCK EXIST(MemblockNumber)=1 if r=0 then WRITE MEMBLOCK BYTE MemblockNumber, ToPos, ByteValue if r=0 then WRITE MEMBLOCK WORD MemblockNumber, ToPos, WordValue if r=0 then WRITE MEMBLOCK DWORD MemblockNumber, ToPos, DWORDValue if r=0 then WRITE MEMBLOCK FLOAT MemblockNumber, ToPos, FloatValue if r=1 then MAKE SOUND FROM MEMBLOCK SoundNumber, MemblockNumber if r=2 then MAKE IMAGE FROM MEMBLOCK ImageNumber, MemblockNumber if r=3 then MAKE BITMAP FROM MEMBLOCK BitmapNumber, MemblockNumber if r=4 then MAKE MESH FROM MEMBLOCK MeshNumber, MemblockNumber if r=4 then CHANGE MESH FROM MEMBLOCK MeshNumber, MemblockNumber endif if MEMBLOCK EXIST(MemblockNumber)=1 and MEMBLOCK EXIST(MemblockTo)=1 if rnd(5)=1 then COPY MEMBLOCK MemblockNumber, MemblockTo, FromPos, ToPos, TenBytes endif rem Display data cls print "MEMBLOCK EXPRESSION DATA" print print "memblock:";MemblockNumber print "exist:";MEMBLOCK EXIST(MemblockNumber) if MEMBLOCK EXIST(MemblockNumber)=1 print "ptr:";GET MEMBLOCK PTR(MemblockNumber) print "size:";GET MEMBLOCK SIZE(MemblockNumber) print "byte:";MEMBLOCK BYTE(MemblockNumber, FromPos) print "word:";MEMBLOCK WORD(MemblockNumber, FromPos) print "dword:";MEMBLOCK DWORD(MemblockNumber, FromPos) print "float:";MEMBLOCK FLOAT(MemblockNumber, FromPos) endif rem Show/play media if MEMBLOCK EXIST(MemblockNumber)=1 if r=1 then PLAY SOUND SoundNumber : SLEEP 100 if r=2 then PASTE IMAGE ImageNumber,0,0 : SLEEP 100 if r=3 then COPY BITMAP BitmapNumber,0 : SLEEP 100 if r=4 then MAKE OBJECT 1,MeshNumber,0 : SYNC : DELETE OBJECT 1 : SLEEP 100 endif rem Delete memblocks if MEMBLOCK EXIST(MemblockNumber)=1 then DELETE MEMBLOCK MemblockNumber if MEMBLOCK EXIST(MemblockTo)=1 then DELETE MEMBLOCK MemblockTo rem Update screen sync rem End loop loop