Hola Catoct!
Bienvenido al foro. Como dice mentalthink antes éramos más hablantes de español pero aún quedamos alguno.
El problema que te dice mental de tu código es que no haces un loop que lo ejecute de forma ininterrumpida hasta que le des a la tecla escape o ejecutes un END.
Tu código lo ejecuta una vez y lo pinta una sola vez y luego acaba el programa (cuando se acaba la ejecución del programa ya no se pinta más). Entonces debes poner tu función MAIN dentro de un loop y al final de cada ciclo del loop ejecutar siempre un showscreen porque si no no pintará nada. Así que tu código, que no he probado, debería tener este aspecto:
// --------------------------------- //
// Project: JacquardScroll1
// Start: Wednesday, March 23, 2016
// IDE Version: 12.308
// SETCURRENTDIR("Media") // go to media files
GLOBAL gwidth ,gheight
gwidth = 800
gheight = 600
SETSCREEN gwidth ,gheight,0
GLOBAL sprite, VistaGrandx1, VistaGrandy1, VistaGrandx2, VistaGrandy2 // Zone to view
VistaGrandx1 = 1 ; VistaGrandy1 = 1 ; VistaGrandx2 = 600 ; VistaGrandy2 = 430
GLOBAL speedH, speedW, imgX, scrW, imgWide, imgY, scrH, imgHeight
GLOBAL worldX, worldY ,MundoX, MundoY
GLOBAL mx,my, b1,b2 ,phi
GLOBAL tile
LOADFONT "smalfont2.png",1
SETFONT 1
GLOBAL map = GENSPRITE()
SYSTEMPOINTER TRUE
map=1 // sprite 1
LOADSPRITE "cachemir01.jpg", map //actualmente el tamaño es 1200*920. La imagen tiene que ser mas grande que lo que aparece en pantalla.
// salen 80 tiles X 60 de 16 pinxels
GETSPRITESIZE map, imgWide, imgHeight
scrW=imgWide ; scrH= imgHeight // <-------I do this solution, even it is was the best it works FOR my purpose.
imgX=0 ; imgY=0 ; speedW=4 ; speedH=4
//Esto seria para hacer un array de los tiles poniendo zonas
GLOBAL tilex,tiley
tilex= MOD (MundoX/16,imgWide)
tiley= MOD (MundoY/16,imgHeight)
//-------------------------------------------------------------------------
// inicio
LIMITFPS 60
//Un sprite A
//DRAWRECT 0,0,64,32,RGB(255,255,0)
//DRAWRECT 7,23,4,4,RGB(255,0,0)
//GRABSPRITE 0, 0,0,64,32
GLOBAL id =0
FUNCTION main:
VIEWPORT VistaGrandx1, VistaGrandy1, VistaGrandx2, VistaGrandy2
DRAWLINE VistaGrandx1-1,VistaGrandy1-1,VistaGrandx2+1,VistaGrandy1-1, RGB(0,0,255) // horizontal - arriba - derecha
DRAWLINE VistaGrandx2+1,VistaGrandy1-1,VistaGrandx2+1,VistaGrandy2+1, RGB(0,0,255) //vertical - derecha -abajo
DRAWLINE VistaGrandx2+1,VistaGrandy2+1,VistaGrandx1-1,VistaGrandy2+1, RGB(0,0,255) //horizontal -abajo izquiuierda
DRAWLINE VistaGrandx1-1,VistaGrandy2+1,VistaGrandx1-1,VistaGrandy1-1, RGB(0,0,255) //Vertical-arriba-izquierda
IF KEY(200) THEN imgY=imgY-speedH ; IF (imgY+scrH)<0 THEN imgY=imgY+scrH
IF KEY(208) THEN imgY=imgY+speedH ; IF imgY>0 THEN imgY=imgY-scrH
IF KEY(203) THEN imgX=imgX-speedW ; IF (imgX+scrW)<0 THEN imgX=imgX+scrW
IF KEY(205) THEN imgX=imgX+speedW ; IF imgX>0 THEN imgX=imgX-scrW
// Convert world coordinates into imgX AND imgY (the IF makes it handles POSITIVE world coordinates too)
MundoX = MOD (worldX,imgWide) ;MundoX = -imgX ; IF worldX < 0 THEN MundoX = imgX - imgWide
MundoY = MOD (worldX,imgHeight) ; MundoY = -imgY ; IF worldY < 0 THEN MundoY = imgY - imgHeight
GENSPRITE()
DRAWSPRITE map, imgX, imgY
DRAWSPRITE map, imgX, imgY+scrH
DRAWSPRITE map, imgX+scrW, imgY
DRAWSPRITE map, imgX+scrW, imgY+scrH
//-------------------
PRINT " imgX = "+imgX + " imgY = "+imgY,1,384 // no se ve el texto fuera del viewport
PRINT " worldX = "+MundoX + " worldY = "+MundoY,1,400
PRINT " tilex = "+tilex + " tiley = "+tiley+ "bla-bla-bla---bla"+map,1,416
//Cambiar el middlehandle del sprite
MOUSESTATE mx,my,b1,b2
IF b1=1
// DRAWRECT mx-1,my-1,20,20, RGB(0,255,0)
GRABSPRITE id, mx-1,my-1, 20,20
// USESCREEN 1 // con esto se cuelga
DRAWSPRITE id, mx-20,my // <-- ¿Como pongo esto en el fondo o blaground?
USEASBMP
// ¡USESCREEN -1 // con esto se cuelga
ENDIF
ENDFUNCTION
WHILE TRUE //Bucle infinito que ejecuta tu función main hasta que pulses ESC
main()
SHOWSCREEN
WEND