100 REMark /-----------------------------------------------------------\
110 REMark | GMOVE demo for the Sinclair QL and compatible systems.    |
120 REMark | Uses the SuperBASIC extension GMOVE by Linus B Torvalds.  |
130 REMark | (c) 2009 COWO ELECTRONIC, written by Urs Koenig.          |
140 REMark \-----------------------------------------------------------/
150 :
160 pInit
170 pMain
180 STOP
190 :
200 DEFine PROCedure pInit
210    dev$="mdv1_"
220    xsrc%=0
230    ysrc%=0
240    xobj%=238
250    yobj%=128
260    PAPER#0,2:INK#0,7:CSIZE#0,2,1
270    OPEN#3,"scr_512x230a0x0"
280    MODE 4
290 END DEFine 
300 :
310 DEFine PROCedure pMain
320    pLoadScreen
330    REPeat loop
340       pMoveObject
350    END REPeat loop
360 END DEFine 
370 :
380 DEFine PROCedure pLoadScreen
390    LBYTES dev$&"fractal3d_scr",131072
400    LBYTES dev$&"animationdisk_obj",131072
410    CURSOR#0,0,28
420    PRINT#0,"GMOVE demo for the Sinclair QL and compatible systems."
430    PRINT#0,"Uses the SuperBASIC extension GMOVE written in 1986 by Linus B Torvalds."
440 END DEFine 
450 :
460 DEFine PROCedure pMoveObject
470    xdst%=RND(512-xobj%)
480    ydst%=RND(230-yobj%)
490    CURSOR#0,450,28:PRINT#0,"       "
500    CURSOR#0,450,28:PRINT#0,xdst%;" "; ydst%
510    REMark Here the GMOVE software blitter of Linus Torvalds will be used
520    GMOVE#3,xsrc%,ysrc%,xobj%,yobj% TO xdst%,ydst%
530    xsrc%=xdst%
540    ysrc%=ydst%
550 END DEFine 
560 :
570 DEFine PROCedure pSaveIt
580    LOCal app$,path$,bak$,bas$,file$,dest$
590    app$="GMOVE_demo"
600    path$="mdv1_"
610    bak$="_bak"
620    bas$="_bas"
630    file$=path$&app$&bas$
640    dest$=path$&app$&bak$
650    DELETE dest$
660    DELETE file$
670    SAVE file$
680 END DEFine 
690 :
700 DEFine PROCedure pMakeObj
710    pInit
720    LBYTES "mdv1_animationdisk_scr",131072
730    PAN#3,260
740    PAN#3,-264
750    SCROLL#3,-2
760    SBYTES "mdv1_animationdisk_obj",131072,yobj%*128
770    LBYTES "mdv1_animationdisk_obj",131072
780 END DEFine 
