home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 6 / AACD06.ISO / AACD / Emulation / ZXAMSpectrum / ZXAM_Rexx / Español / SaveScreen.zxam < prev    next >
Text File  |  1995-07-31  |  4KB  |  119 lines

  1. /* este script graba la pantalla del spectrum como IFF sin compresión */
  2.     
  3.     address command
  4.     
  5.     if ~show(ports,ZXAM_REXX) then do
  6.         requestchoice 'title "ZXAM Script error..." body "No encuentro el puerto del emulador!!" gadgets "AARGH!"'
  7.         exit 0
  8.         end
  9.  
  10.     /* Almacenar el estado inicial del emulador */
  11.     running=zxamactrun()    /* 1=en marcha */
  12.     zxamstop()              /* lo paramos */
  13.  
  14. /* Usamos el requester del emulador para pedir nombre del fichero */
  15.     
  16.     cajon=""  /* aqui puedes meter el path que uses para pantallas */
  17.     
  18.     oldcajon=zxamactloadpath()    /* guardamos el path del requester */
  19.     oldpattern=zxamactpattern()    /* guardamos el pattern del requester */
  20.     zxampattern('(#?.iff|#?.pic)')  /* filtro para mostrar solo pantallas */
  21.     
  22.     nombre=zxamsaverequester('Nombre para grabar el IFF...',cajon)
  23.     
  24.     zxampattern(oldpattern)        /* recuperamos el pattern */
  25.     zxamloadpath(oldcajon)        /* recuperamos el path */    
  26.     
  27.     if nombre='' then do
  28.         exit    /* selección cancelada */
  29.         end
  30.     
  31. /* Abrimos el fichero */
  32.  
  33.     if ~OPEN('fichero',nombre,'Write') then exit 0
  34.     
  35.     oldname=zxamactname()        /* guardamos nombre y formato */
  36.     oldformat=zxamactformat()
  37.     
  38.     zxamnameformat('    (GRABANDO PANTALLA IFF)','')
  39.     
  40. /* cabecera identificadora. indica tamaño TODO menos 'FORM' */
  41.     dummy=writech('fichero','FORM')
  42.     dummy=writech('fichero','000060a8'x)    /* tamaño total */
  43.     dummy=writech('fichero','ILBM')
  44.  
  45. /* chunk ANNO */
  46.     dummy=writech('fichero','ANNO')
  47.     dummy=writech('fichero','00000033'x)    /* tamaño 51 caracteres */
  48.     dummy=writech('fichero','Saved by ZXAM Spectrum Emulator AGA (by Toni Pomar)')
  49.     dummy=writech('fichero','00'x)        /* pad para alinear */
  50.  
  51. /* chunk BMHD, o sea, bloque indicador de tamaño página */
  52.     dummy=writech('fichero','BMHD')
  53.     dummy=writech('fichero','00000014'x)    /* tamaño 20 */
  54.     dummy=writech('fichero','0100'x)    /* ancho */
  55.     dummy=writech('fichero','00c0'x)    /* alto */
  56.     dummy=writech('fichero','0000'x)    /* pos x */
  57.     dummy=writech('fichero','0000'x)    /* pos y */
  58.     dummy=writech('fichero','04'x)        /* nro bitplanos */
  59.     dummy=writech('fichero','00'x)        /* masking */
  60.     dummy=writech('fichero','00'x)        /* compression */
  61.     dummy=writech('fichero','00'x)        /* Pad1 */
  62.     dummy=writech('fichero','0000'x)    /* color transparente */
  63.     dummy=writech('fichero','2c2c'x)    /* aspect 44:44 */
  64.     dummy=writech('fichero','0140'x)    /* ancho página fuente (320) */
  65.     dummy=writech('fichero','0100'x)    /* alto página fuente (256) */
  66.  
  67. /* chunk CAMG, o sea, modo de pantalla (PAL:Baja resolución) */
  68.     dummy=writech('fichero','CAMG')
  69.     dummy=writech('fichero','00000004'x)    /* tamaño 4 */
  70.     dummy=writech('fichero','00000000'x)    /* 00021000 = PAL:Baja resolución */
  71.  
  72. /* chunk CMAP, o sea, mapa de colores */
  73.  
  74.     dummy=writech('fichero','CMAP')
  75.     dummy=writech('fichero','00000030'x)    /* tamaño 48 (16 colores*3 bytes) */
  76.     
  77.     /* color del borde */
  78.     /* El color (0 a 7) es el índice para la tabla de colores */
  79.     /* que creamos en forma de cadena MUY larga */
  80.         dummy=writech('fichero',x2c(substr('000000000099990000aa00aa00aa0000bbbbcccc00dddddd',(zxamgetreg(bor)*6)+1,6)))
  81.     
  82.     dummy=writech('fichero','000099'x)    /* color 1 */
  83.     dummy=writech('fichero','990000'x)    /* color 2 */
  84.     dummy=writech('fichero','aa00aa'x)    /* color 3 */
  85.     dummy=writech('fichero','00aa00'x)    /* color 4 */
  86.     dummy=writech('fichero','00bbbb'x)    /* color 5 */
  87.     dummy=writech('fichero','cccc00'x)    /* color 6 */
  88.     dummy=writech('fichero','dddddd'x)    /* color 7 */
  89.     dummy=writech('fichero','000000'x)    /* color 8 */
  90.     dummy=writech('fichero','0000aa'x)    /* color 9 */
  91.     dummy=writech('fichero','bb0000'x)    /* color 10 */
  92.     dummy=writech('fichero','cc00cc'x)    /* color 11 */
  93.     dummy=writech('fichero','00cc00'x)    /* color 12 */
  94.     dummy=writech('fichero','00dddd'x)    /* color 13 */
  95.     dummy=writech('fichero','eeee00'x)    /* color 14 */
  96.     dummy=writech('fichero','ffffff'x)    /* color 15 */
  97.     
  98.  
  99. /* chunk BODY, o sea, bitplanos en formato entrelazado */
  100.  
  101.     dummy=writech('fichero','BODY')
  102.     dummy=writech('fichero','00006000'x)    /* tamaño 6144*4 (4 bpls de 256*192) */
  103.  
  104. /* usamos una funcion especial del emulador para sacar la pantalla en 4 bitplanos */
  105.  
  106.     dummy=writech('fichero',zxamgetscr())
  107.  
  108.     dummy=close('fichero')
  109.     
  110.     if oldname='' then
  111.         zxamclearnameformat()
  112.     else
  113.         zxamnameformat(oldname,oldformat)
  114.     
  115.     /* dejar el emulador como estaba */
  116.     if running=1 then zxamrun()
  117.  
  118.     exit
  119.