Información de acceso rápido:
- Visite el canal de #retroinformatica en freenode.org.
- Publicado browdsk: Script para Linux para acceder de forma simple a contenidos en archivos .DSK de MSX a través de nuestro filemanager favorito.
- Publicado manual para cambiar la unidad de 5.25 por una de 3.5 en un epson QX-10 o QX16.
- Nuevo artículo: Tarjeta Adaptador Video Sinclair Spectrum (gomas y plus). Con este adaptador usted puede conectar el Spectrum por vídeo compuesto a su televisor sin necesidad de abrirlo o instalarle hack alguno. Además dispone de un miniamplificador para cargas de dispositivos mp3.
- Nuevo artículo: Cable MIDI/Joystick para conectar dispositivos MIDI a un PC usando el conector DB15 MIDI/Joystick.
- Nueva política de tratamiento de datos referentes a la construcción de periféricos de esta web y código fuente del software.
- Publicado software diferenciador en nuestro repositorio (compara dos archivos generando un fichero con la posición de todas las diferencias y en que difieren uno y otro. Valido para buscar cheats con un editor hexadecimal con snapshoots.
- Publicado switch80, un programa para conseguir poner el MSX a 80 columnas bajo MSXDOS o CPM, para mayor compatibilidad visual con todos los programas de CPM. Es una adaptación de una porción de código de TermAS (terminal de dev.petalus.net para MSX). Permite poner la consola a 80 o a 40 ejecutando el programa switch.com.
- Conversor de Tap a TZX para Linux de dev.petalus.net (incluye código fuente). La diferencia respecto a otros programas de similar utilidad es la de estar programado en turbopascal, permitiendo su compilación en una amplia variedad de plataformas y sistemas operativos, a través de freepascal/turbopascal, y minimizando los posibles cambios en una hipotética necesidad de adaptación.
- OpenMSX GUI: Publicamos OMSXGui, que es un lanzador para Linux de OpenMSX compilado con librerías estáticas, con selectores de discos, cartuchos y ficheros de casete, así como del modelo de MSX a emular. Pretende ser una alternativa sencilla para plataformas donde resulta dificil compilar OpenMSXCatapult o no existen esos binarios.
- Publicamos Palutils, que es un conjunto de herramientas residentes (TSR) basadas en el cambio de paleta para poder simular un monitor de fósforo verde/blanco así como realizar funciones de inversión del vídeo, o reforzamiento de los colores para monitores que han perdido brillo. Se incluye código fuente y ejecutables para DOS y un ejemplo compilable para Linux.
- Publicamos un conjunto de scripts para cruzar el popular editor SciTE (Linux/Win) con el compilador BASIC de Boriel para ZXSpectrum. Mediante estos scripts, un emulador y las herramientas necesarias se consigue un completo IDE para desarrollar programas.
- Actualización del artículo "Creación y amplificación para cargas con MP3". Incluye formas de generar archivos MP3 con el Lame de forma reconocible por las máquinas.
- Nueva revisión del FakeDos 0.3. Incluye una versión preliminar aunque funcional de la shell "comandante vaporatorius" que es un menú al estilo del frontend del fatware.
- Mapa general de artículos en el menú Sitemap.
Petalus: Información y documentos de retroinformática
Visualizador de SCR para PC
- Detalles
- Creado en Martes, 09 Marzo 2010 19:42
- Última actualización en Martes, 24 Agosto 2010 20:33
- Escrito por Administrator
- Visitas: 1135
Mediante esta rutina en pascal, se pueden visualizar ficheros SCR capturados por algún emulador.
Descripción: Por completar (artículo inacabado).
Descargas: Está disponible esta rutina como programa y como unidad.
Ejemplo: Este programa en pascal representa en pantalla una imagen capturada procendente de un archivo .SCR.
Uses graph,dos,crt;
{ Programa para leer y dibujar en la pantalla archivos .SCR procedentes de un emu de Sinclair }
Var
FromF, ToF: file;
NumRead, NumWritten: Word;
Buf: array[1..1] of Char;
pal: array[1..767] of Char;
ct,ck:integer;x,y:integer;co:integer;cf:integer;ford:integer;
GC:INTEGER;r:integer;
Function gpa(x:integer):integer;
var sa:integer;
begin
sa:=0;
if x>55 then sa:=7 else
if x>47 then sa:=14 else
if x>39 then sa:=11 else
if x>31 then sa:=10 else
if x>23 then sa:=13 else
if x>15 then sa:=4 else
if x>7 then sa:=9 else sa:=7;
gpa:=sa;
end;
Function ginc(x:integer):integer;
var se:integer;sa:integer;
begin
se:=x;sa:=0;
if se>55 then se:=se-56;
if se>47 then se:=se-47;
if se>39 then se:=se-39;
if se>31 then se:=se-31;
if se>23 then se:=se-24;
if se>15 then se:=se-16;
if se>7 then se:=se-10;
if se=0 then sa:=0;
if se=1 then sa:=9;
if se=2 then sa:=4;
if se=3 then sa:=13;
if se=4 then sa:=10;
if se=5 then sa:=11;
if se=6 then sa:=14;
if se=7 then sa:=15;
if se=8 then sa:=7;
if se=9 then sa:=7;
ginc:=sa;
end;
PROCEDURE PUTPIXELD (X,Y,NU,co,cu:INTEGER);
BEGIN
IF NU>127 THEN BEGIN PUTPIXEL (X+0,Y,co);NU:=NU-128;END else PUTPIXEL (X+0,Y,cu);
IF NU>63 THEN BEGIN PUTPIXEL (X+1,Y,co);NU:=NU-64;END else PUTPIXEL (X+1,Y,cu);
IF NU>31 THEN BEGIN PUTPIXEL (X+2,Y,co);NU:=NU-32;END else PUTPIXEL (X+2,Y,cu);
IF NU>15 THEN BEGIN PUTPIXEL (X+3,Y,co);NU:=NU-16;END else PUTPIXEL (X+3,Y,cu);
IF NU>7 THEN BEGIN PUTPIXEL (X+4,Y,co);NU:=NU-8;END else PUTPIXEL (X+4,Y,cu);
IF NU>3 THEN BEGIN PUTPIXEL (X+5,Y,co);NU:=NU-4;END else PUTPIXEL (X+5,Y,cu);
IF NU>1 THEN BEGIN PUTPIXEL (X+6,Y,co);NU:=NU-2;END else PUTPIXEL (X+6,Y,cu);
IF NU>0 THEN BEGIN PUTPIXEL (X+7,Y,co);NU:=NU-1;END else PUTPIXEL (X+7,Y,cu);
END;
begin
if paramstr(1)='' then begin
WRITELN ('Emulador de memoria de pantalla de Sinclair ZX-SPECTRUM. Pr Vaporatorius 1995.');
WRITELN ('VISOR DE FICHEROS SCR. VERSION 0.5');
WRITELN;
writeln ('Sintaxis : ViSCR nombrefichero.scr');
halt (0);
end;
Assign(FromF, ParamStr(1));
{$i-}
Reset(FromF, 1);
{$i+}
if ioresult<>0 then begin
writeln ('error: fichero ',paramstr(1),' no encontrado...');
halt (1);
end;
for r:=1 to 6144 do blockread (fromf,buf,sizeof(buf),numread);
blockread (fromf,pal,sizeof(pal),numread);
reset (fromf,1);
ct:=0;ck:=0;
initgraph (ct,ck,'d:\borlandp\bgi');
co:=0;cf:=0;ford:=0;
x:=0;y:=0; GC:=0;
repeat
begin
BlockRead(FromF, Buf, SizeOf(Buf), NumRead);
putpixelD (x*8,y*8+CF+FORD*8,ord(buf[1]),ginc(ord(pal[1+x+y*32])),gpa(ord(pal[1+x+y*32])));
inc (x);
if x>31 then begin X:=0;Y:=Y+1 end;
IF Y>7 THEN IF CF>6 THEN BEGIN FORD:=FORD+8;Y:=0;X:=0;CF:=0;END;
IF Y>7 THEN BEGIN X:=0;Y:=0;CF:=CF+1;END;INC (GC);
IF GC=6144 tHEN NUMREAD:=0;
end;
until ((NumRead = 0) OR (EOF(FROMF)));
Close(FromF);
readln;
closegraph;
end.