Fecha actual Mar May 21, 2013 8:26 am


Turbo carga (programación y dudas)

Programando el Amstrad en Ensamblador.
Reglas del Foro Debido a que hay varios temas pidiendo ayuda para programar en ensamblador máquinas distintas al Amstrad CPC, con micro distinto al Z80 y que incluso dependen del sistema operativo, nos vemos en la necesidad de poner por escrito que estos posts son bienvenidos pero que no es el lugar adecuado ya que por estos lares nos dedicamos más al ensamblador del Z80, un microprocesador de 8 bits que tuvo su gran auge en ordenadores y consolas de los años 80.

De todas formas, esto no quita que alguien que sepa del asunto pueda postear alguna respuesta pero es más fácil encontrar foros dedicados a programar en ensamblador en Windows o MS-DOS que ayudarán más que nosotros:
http://www.lawebdelprogramador.com/news ... nsamblador
  • Autor
  • Mensaje
Desconectado

pepe2

Lechoncillo

Lechoncillo

  • Mensajes: 1
  • Registrado: Mar Dic 01, 2009 6:47 pm

Turbo carga (programación y dudas)

NotaMar Dic 01, 2009 6:55 pm

Hola a todos.

Seguramente recordareis aquellos juegos que disponían de la famosa "turbo carga", en los que durante la carga se podía ver un efecto de colores en el borde de la pantalla. La carga era mucho más rápida (el ruido del cassete así lo confirmaba).

Pues bien, ¿ cómo es posible que una carga que utiliza recursos gráficos durante la misma sea más veloz que otra que no realiza ningún efecto gráfico ?

¿ Cómo se realiza este efecto, se trata de una ilusión óptica ?
¿ sería posible realizar dicho efecto en un PC ?

Gracias.
Desconectado
Avatar de Usuario

Mode 2

Master of The Forum

Master of The Forum

  • Mensajes: 1449
  • Registrado: Lun Oct 10, 2005 7:01 pm
  • Ubicación: Sevilla, años 80.

Re: Turbo carga (programación y dudas)

NotaMar Dic 01, 2009 9:18 pm

Hombre, no estoy muy puesto en el tema pero me imagino que uno se desempeñará más en el tema del hardware destinado a mostrar por la pantalla esos efectos y otro en el tema de entrada de los datos que vienen del casete.

Por lo que tengo entendido la carga turbo elimina todos los espacios entre bloques así como sus cabeceras y creo que tiene una mayor velocidad de reproducción por eso lo de ser más rápido.

De todos modos, que te lo cuente mejor algun fiera del foro.

Saludos!!
Visita mi rastrillo retro actualizado para cambio/venta en: http://retrocambia-con-mode2.es.tl/

'Si el Pac-Man hubiese influido a nuestra generación, estaríamos todos corriendo en salas oscuras, masticando píldoras mágicas y escuchando músicas electrónicas repetitivas.'
Desconectado
Avatar de Usuario

Artaburu

Trasteador

Trasteador

  • Mensajes: 5264
  • Registrado: Vie Oct 07, 2005 5:18 pm
  • Ubicación: En un país tropical.

Re: Turbo carga (programación y dudas)

NotaMié Dic 02, 2009 9:00 am

Holas, yo no se mucho (más bien nada) de cargadores turbo pero por lo de los colores se realiza tan rápido que apenas se nota en la carga :D
Por otra parte, el hacerlo más rápido que el cargador normal se basa en recortar los tiempos necesarios para detectar un 0 o un 1...
Si sabes inglés, aquí tienes mucha información de un cargador turbo... además, el programador suele entrar en el foro e igual te aclara tus dudas. También hay otro figura que se ha currado un cargador turbo y posiblemente de eche una mano:

http://code.google.com/p/otla/
Salu2,
Arta
Conectado
Avatar de Usuario

robcfg

Forum Addict

Forum Addict

  • Mensajes: 439
  • Registrado: Jue Abr 03, 2008 4:32 pm

Re: Turbo carga (programación y dudas)

NotaMié Dic 02, 2009 11:57 am

Tambien un poco desde la ignorancia, pero con cierto conocimiento, me atreveria a decir que el tema del borde se consigue simplemente cambiando el color del borde sin esperar a que se produzca el refresco vertical.

Al igual que se ven las imagenes cortadas cuando se actualizan sin esperar al refresco, el color del borde va cambiando segun la informacion que el cargador recibe del casete mientras el haz de electrones va recorriendo la pantalla.

Edito:Ademas, para cambiar el color del borde solo hace falta una instruccion out dirigida al puerto correcto y con el valor deseado (si la memoria no me falla), asi que se pueden ejecutar unas pñocas sin que afecte al rendimiento de la carga.
Desconectado
Avatar de Usuario

Sabrewulf

Forero habitual

Forero habitual

  • Mensajes: 109
  • Registrado: Vie Jun 13, 2008 11:38 am
  • Ubicación: Madrid, Spain

Re: Turbo carga (programación y dudas)

NotaMié Dic 02, 2009 3:44 pm

En primer lugar, indicar que 'turbo' y 'colores en el borde' son conceptos que no van unidos.

1. Carga turbo: el Amstrad tiene por defecto dos velocidades de grabación: 1.000 baudios (speed write 0) y 2.000 baudios (speed write 1), pero el procesador z80 admite un rango entre 1.000 y 4.000 baudios, aunque todo lo que esté por encima de 2.000 baudios puede resultar problemático a la hora de cargar.

2. Colores en el borde: creo que robcfg está en lo cierto, es simplemente una instrucción Out durante el ciclo de carga, que no supone velocidad de proceso.

Lo que comúnmente se denomina cargadores turbo en Amstrad son simplemente la adaptación de la rutina de carga estándar del Spectrum, que era de 1.500 baudios. Al eliminar las pausas entre bloques se reducía considerablemente el tiempo de carga, pero eso se podía hacer directamente con el firmware del Amstrad (dirección &BCA1) sin necesidad de recurrir a cargadores tipo Spectrum, aunque lo de las rayas resultaba entretenido. O:)
Desprotegido por Abraxas- Madrid
Desconectado
Avatar de Usuario

syx

Master of The Forum

Master of The Forum

  • Mensajes: 1136
  • Registrado: Mié Sep 02, 2009 8:55 am

Re: Turbo carga (programación y dudas)

NotaMié Dic 02, 2009 9:06 pm

Hi!

En este hilo, puedes ver algunos ejemplos de un cargador turbo que he hecho, cuando esté más testeado (hasta ahora solo se ha probado en un par de cpcs con cintas reales y estas que son adaptadores de mp3) publicaré los fuentes y las herramientas.

Como sabiamente te han indicado más arriba, el cambio del color del borde y la carga turbo no son inseparables, de hecho hay cargadores que no hacen nada, otros reproducen música durante la carga, muestran las instrucciones del programa ó añaden un contador... yo tengo uno que va haciendo cosas raras con el crtc, pero esa es una de mis paranoyas :mrgreen:

En cuanto a tus preguntas:
pepe2 escribió:Pues bien, ¿ cómo es posible que una carga que utiliza recursos gráficos durante la misma sea más veloz que otra que no realiza ningún efecto gráfico ?

Bueno recursos, lo que se dice recursos, no es que consuma muchos, se puede cambiar el color del borde en apenas una docena de ciclos.

Simplificándolo mucho, una rutina de carga de cinta lo que hace es tomar muestras de forma periódica del puerto del cassette. Así que en realidad los cambios de colores del borde ó cualquier otro efecto adicional forman parte del tiempo que se espera entre cada uno de las muestras anteriormente citados. A mayor velocidad de carga menor será ese tiempo entre muestras y menor será el tiempo que tendremos disponibles para hacer efectos llamativos que hagan más amena la espera hasta que nuestro programa se haya cargado.

pepe2 escribió:¿ Cómo se realiza este efecto, se trata de una ilusión óptica ?

Es una cosa que no tiene ningún misterio, si tienes el winape, abre su ensamblador, pega el siguiente trozo de código, ensambla y haz un call &4000
Código: Seleccionar todo
    ORG  #4000
    DI
bucle_colores
    LD   A,R                         
    LD   BC,#7F10
    OUT  (C),C                         
    OUT  (C),A
    JP   bucle_colores


Pues nada espero que te haya sido útil la explicación.

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados


La Comunidad Española
ESP Soft, juegos para tu CPC Foro de Amstrad CPC Todos los juegos para CPC en un CD El portal del CPC Web dedicada al Amstrad CPC (utilidades) Información útil para el CPC (talleres) El sitio del Amstrad CPC Mundo CPC Pree Play then any Key CPC Basic
CPC-Topsites rss