Autor Tema: Dudas en Ensamblador  (Leído 97196 veces)

CPULoyal

  • Commodorista
  • ***
  • Mensajes: 56
  • SYS $FFED
    • Ver Perfil
Re:Dudas en Ensamblador
« Respuesta #90 en: Julio 17, 2014, 00:06:25 »
  como dices CPULoyal los caracteres en multicolor los tengo controlados pero todavia no se como darle color a cada uno, a ver si me pongo con ello (es que todavia no me he puesto) ya que he tenido un finde un poco liado.

  He estado mas con cuestiones artisticas como habreis visto,...todos los limites de pantalla y superacion de 255 por parte del disparo esta sin hacer...

   Saludos.

Bueno, para darte otro empujoncito hacia la aplicación del 4º color te amplio el ejemplo que te puse la vez anterior.

Hay un detalle interesante en el uso de la memoria de color. Como te expliqué, el par de bits 11 en la definición de los caracteres indica que el color a usar será el asignado por la memoria de color a partir de la dirección fija para los 4 bancos de video $D800 (55296).

Ahora bien, la Commodore 64 tiene una paleta de 16 colores para video, y en los modos de hires puedes asignar cualquiera de ellos asignando el valor del 0 al 15, de acuerdo al valor elegido.

Sin embargo, en modo multicolor y solo cuando ya está configurado, la paleta de colores se reduce a los 8 primeros colores, pero usando los valores del 8 al 15, porque el bit 3 indica el modo hires para ese carácter en particular, usando la relación 1 a 1 de memoria de pantalla y memoria de color.

Puedes notarlo en el ciclo de prueba que puse. Es visible pese a que el retardo no es muy prolongado.

Saludos

Código: [Seleccionar]
00001  0000             *=$C000
00002  C000  AD 0E DC   BGNPRG     LDA $DC0E           ;ACCEDEMOS A LA MEMORIA DE CARACTERES
00003  C003  29 FE                 AND #$FE            ;DESCONECTANDO TEMPORALMENTE INTERRUPCIONES
00004  C005  8D 0E DC              STA $DC0E           ;Y KERNAL
00005  C008  A5 01                 LDA $01
00006  C00A  29 FB                 AND #$FB
00007  C00C  85 01                 STA $01
00008  C00E  A0 00      BGNCPY     LDY #$00            ;HACEMOS UNA COPIA DE LOS PRIMEROS 64 (512 BYTES)
00009  C010  A2 02                 LDX #$02            ;CARACTERES DESDE $D000 A $3000
00010  C012  F0 1E                 BEQ CPYRMNBY        ;EL REGISTRO X CONTIENE EL TOTAL DE PÁGINAS A
00011  C014  A9 00                 LDA #$00            ;COPIAR (CADA PÁGINA ES IGUAL A 256 BYTES)
00012  C016  85 FB                 STA $FB
00013  C018  A9 D0                 LDA #$D0
00014  C01A  85 FC                 STA $FC
00015  C01C  A9 00                 LDA #$00
00016  C01E  85 FD                 STA $FD
00017  C020  A9 30                 LDA #$30
00018  C022  85 FE                 STA $FE
00019  C024  B1 FB      KEEPCPY1   LDA ($FB),Y         ;CICLO DE COPIA EN BLOQUES DE 256 BYTES
00020  C026  91 FD                 STA ($FD),Y
00021  C028  C8                    INY
00022  C029  D0 F9                 BNE KEEPCPY1
00023  C02B  E6 FC                 INC $FC             ;PREPARAMOS LOS APUNTADORES A LA SIGUIENTE PÁGINA
00024  C02D  E6 FE                 INC $FE             ;Y COMPROBAMOS SI AÚN QUEDAN PÁGINAS POR COPIAR
00025  C02F  CA                    DEX
00026  C030  D0 F2                 BNE KEEPCPY1
00027  C032  A2 00      CPYRMNBY   LDX #$00            ;COPIAR LOS BYTES RESTANTES DE LA PÁGINA
00028  C034  F0 08                 BEQ CHRRTN          ;NUEVAMENTE EL REGISTRO X CONTIENE EL NÚMERO DE
00029  C036  B1 FB      KEEPCPY2   LDA ($FB),Y         ;BYTES FALTANTES
00030  C038  91 FD                 STA ($FD),Y
Código: [Seleccionar]
00031  C03A  C8                    INY
00032  C03B  CA                    DEX
00033  C03C  D0 F8                 BNE KEEPCPY2
00034  C03E  A5 01      CHRRTN     LDA $01             ;RESTAURAMOS INTERRUPCIONES Y KERNAL
00035  C040  09 04                 ORA #$04
00036  C042  85 01                 STA $01
00037  C044  AD 0E DC              LDA $DC0E
00038  C047  09 01                 ORA #$01
00039  C049  8D 0E DC              STA $DC0E
00040  C04C  AD 18 D0              LDA $D018           ;HABILITAMOS LA MEMORIA DE CARACTERES EN
00041  C04F  29 F0                 AND #$F0            ;LA DIRECCIÓN $3000
00042  C051  09 0C                 ORA #$0C
00043  C053  8D 18 D0              STA $D018
00044  C056  AD 16 D0              LDA $D016           ;HABILITAMOS MODO MULTICOLOR
00045  C059  09 10                 ORA #$10
00046  C05B  8D 16 D0              STA $D016
00047  C05E  A9 00                 LDA #$00            ;COLOR BACKGROUND 0
00048  C060  8D 21 D0              STA $D021
00049  C063  A9 02                 LDA #$02            ;COLOR BACKGROUND 1
00050  C065  8D 22 D0              STA $D022
00051  C068  A9 07                 LDA #$07            ;COLOR BACKGROUND 2
00052  C06A  8D 23 D0              STA $D023
00053  C06D  A9 BD                 LDA <CHRDEF         ;REDEFINIMOS LOS PRIMEROS 4 CARACTERES
00054  C06F  85 FB                 STA $FB             ;DEL CONJUNTO DESDE DATOS ALMACENADOS
00055  C071  A9 C0                 LDA >CHRDEF         ;EN LA DIRECCIÓN CHRDEF ($C0BD)
00056  C073  85 FC                 STA $FC
00057  C075  A9 00                 LDA #$00
00058  C077  85 FD                 STA $FD
00059  C079  A9 30                 LDA #$30
00060  C07B  85 FE                 STA $FE
Código: [Seleccionar]
00061  C07D  A0 00                 LDY #$00
00062  C07F  A2 20                 LDX #$20
00063  C081  B1 FB      KEEPCPY3   LDA ($FB),Y
00064  C083  91 FD                 STA ($FD),Y
00065  C085  C8                    INY
00066  C086  CA                    DEX
00067  C087  D0 F8                 BNE KEEPCPY3
00068  C089  A9 00                 LDA #$00
00069  C08B  8D 00 04              STA $0400           ;COMO EJEMPLO MOSTRAMOS LOS CARACTERES
00070  C08E  A9 01                 LDA #$01            ;REDEFINIDOS EN LA DIRECCIÓN $0400
00071  C090  8D 01 04              STA $0401           ;DE LA MEMORIA DE PANTALLA
00072  C093  A9 02                 LDA #$02
00073  C095  8D 02 04              STA $0402
00074  C098  A9 03                 LDA #$03
00075  C09A  8D 03 04              STA $0403
00076  C09D  A2 00                 LDX #$00            ;HACEMOS UNA PEQUEÑA RUTINA PARA CAMBIAR LOS
00077  C09F  A0 00                 LDY #$00            ;LOS COLORES DE LOS CARACTERES EN UN CICLO
00078  C0A1  A9 00                 LDA #$00            ;A LA MEMORIA $D800
00079  C0A3  8E 00 D8   CYCCLRS    STX $D800
00080  C0A6  E8                    INX
00081  C0A7  8E 01 D8              STX $D801
00082  C0AA  E8                    INX
00083  C0AB  8E 02 D8              STX $D802
00084  C0AE  E8                    INX
00085  C0AF  8E 03 D8              STX $D803
00086  C0B2  C8         LOOP1      INY                 ;INTRODUCIMOS UN RETRASO PARA VER EL CAMBIO
00087  C0B3  C0 FF                 CPY #$FF
00088  C0B5  D0 FB                 BNE LOOP1
00089  C0B7  A0 00                 LDY #$00
00090  C0B9  4C A3 C0              JMP CYCCLRS
00091  C0BC  60                    RTS
00092  C0BD  14 7D 7D   CHRDEF     BYTE    20,125,125,125,105,105,20,0
00093  C0C5  14 6D 6D              BYTE    20,109,109,109,109,109,109,20
00094  C0CD  14 69 69              BYTE    20,105,105,105,125,125,125,20
00095  C0D5  14 79 79              BYTE    20,121,121,121,121,121,121,20
00096  C0DD             
00097  C0DD
« última modificación: Julio 24, 2014, 17:45:23 por CPULoyal »

R. INTERNATIONAL

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 1018
  • THE NEW IRON AGE HAS COME!!
    • Ver Perfil
Re:Dudas en Ensamblador
« Respuesta #91 en: Julio 17, 2014, 15:42:09 »

    MADRE MIA!!!

CPULoyal

  • Commodorista
  • ***
  • Mensajes: 56
  • SYS $FFED
    • Ver Perfil
Re:Dudas en Ensamblador
« Respuesta #92 en: Julio 17, 2014, 16:45:55 »
Aclarando sobre el bit 3 en la memoria de color. Si el bit 3 tiene el valor de 1, entonces se interpreta que ese carácter está en modo multicolor. Ésto significa simplemente que tienes el valor de 8 de inicio, al cual le sumas el código de color que desea asignar, es decir, del 0 al 7.
Por otro lado, si el bit 3 tiene un valor de 0, entonces se interpreta que el carácter está en hires, pero de igual modo, solo puedes usar los primeros 7 colores, asignando los valores del 0 al 7.
¿Qué significa ésto? Significa que, en modo multicolor, puedes mezclar caracteres en hires y multicolor libremente. Claro que te obliga a definir tu conjunto de caracteres para usar esta característica, limitado a los dos primeros colores Background 0 y color de memoria carácter, en aquellos en hires.

Saludos.
« última modificación: Julio 17, 2014, 17:22:30 por CPULoyal »

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 10478
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Re:Dudas en Ensamblador
« Respuesta #93 en: Julio 17, 2014, 17:03:27 »
Ese modo mixto es muy lindo!

R. INTERNATIONAL

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 1018
  • THE NEW IRON AGE HAS COME!!
    • Ver Perfil
Re:Dudas en Ensamblador
« Respuesta #94 en: Julio 19, 2014, 00:11:22 »
 He tenido un ratito y he mejorado el Sprite de Bieno...os lo adjunto en la respuesta.

Bieno

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 3032
  • PRINT"ADORA A TU COMMODORE"
    • Ver Perfil
    • bieno64
Re:Dudas en Ensamblador
« Respuesta #95 en: Julio 19, 2014, 01:24:26 »
Mejor  :)

R. INTERNATIONAL

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 1018
  • THE NEW IRON AGE HAS COME!!
    • Ver Perfil
Re:Dudas en Ensamblador
« Respuesta #96 en: Julio 20, 2014, 00:41:45 »
 Os adjunto en ésta respuesta la ultima actualizacion en la que ya se ve en su totalidad la idea de Pastbytes y el juego ya está TOTALMENTE en Español, también he mejorado el Sprite de Carlos levemente y es restayrado el sprite que me mando Laddh.

   Saludos!

R. INTERNATIONAL

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 1018
  • THE NEW IRON AGE HAS COME!!
    • Ver Perfil
Re:Dudas en Ensamblador
« Respuesta #97 en: Julio 21, 2014, 13:06:16 »
 Carlos, no se si te acordaras que en el tema de superar los 255 por un sprite nos quedamos en que modifique levemente una rutina que me distes:

:label
    lda $d010   ; cargo el registro que controla los octavos bits de la coordenada X
    ora #%1000000 ; pongo el primer bit (sprite 0) a 1

ahora pone:

label
   lda #%00000001
   sta $d010
...

No es buena idea, te funcionará mientras sólo uses el sprite 0 pero cuando tengas alguno mas estarás machacando lo que hay en los demás bits del registro $d010.

Prueba con lo siguiente y te debería funcionar igual, manteniendo inalterables el resto de bits de $d010:

lda $d010
ora #%00000001
sta $d010


 Pues ya he hecho la modificacion que me dijiste y funciona perpectamente y como dices no machaco los demas bits de los sprites restantes,..ahora me queda empezar a mostrar mas sprites y a gestionarlo en todos.

  Gracias.

R. INTERNATIONAL

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 1018
  • THE NEW IRON AGE HAS COME!!
    • Ver Perfil
Re:Dudas en Ensamblador
« Respuesta #98 en: Septiembre 17, 2014, 12:47:59 »
  buenas,...estoy de vacaciones y voy a recuperar éste hilo,....me quede en el tema de los chars multicolor,..se mostrarlos pero todavia no se darle el color que quiero (color char) a cada uno,...voy a remontar el hilo y a empollarmelo de nuevo..

  Creo que simplemente me tengo que aclarar el tema que he visto en los listados de configurar los cuatro primeros chars o algo asi, que todavia no se como va la historia para que pueda controlar el color char a mi antojo.

   En breve consultas que quiero cerrar esto y ponerme con la colision de sprites.

  Una ultima cosa, a Caligula le he dado un gran meneo!!!
« última modificación: Septiembre 18, 2014, 11:21:32 por R. INTERNATIONAL »

R. INTERNATIONAL

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 1018
  • THE NEW IRON AGE HAS COME!!
    • Ver Perfil
Re:Dudas en Ensamblador
« Respuesta #99 en: Septiembre 18, 2014, 08:55:25 »
A ver si me podeis ayudar, os cuento hasta donde se....yo tengo un programita de ejemplo,..en él cargo el paquete de fuentes (que ya he diseñado yo con el cuneiform) y que ya estan diseñadas en modo multicolor y cada char contiene algun pixel con char color.

   El paquete de fuentes son cargadas en el banco 0 entre las posiciones $0800 a la $1000,...el programa luego configura el modo texto y aplica los dos multicolor char:

 LDA #$12
   STA $D018
   LDA #$1B
   STA $D011
   LDA #$18
   STA $D016
   
   ; COLORES MULTICOLOR CHARS
   LDA #$07     ; AMARILLO      
        STA $D022     ; BACKGROUND COLOR 2
        LDA #$08    ; NARANJA   
        STA $D023     ; BACKGROUND COLOR 3

   Hasta aqui todo va bien,......ahora cargo el char "A" por ejemplo y lo cargo en la posicion de pantalla $0400 (arriba del todo a la izquierda del todo en la pantalla).....

         LDA #$01     ; LETRA A      
         STA $0400    ; POSICION DE PANTALLA

  El char (letra A) se me muestra en pantalla y en la posicion que yo quiero, pero el color Char me sale en azul (imagino que el color por defecto si no esta configurado),..me he fijado en listados anteriores de Laddh y CPULoyal, haceis algo que no se hacer,...es configurar los cuatro primeros caracteres..

  El caso y de forma sencilla, segun el listado que he mostrado, que me falta por poner simplemente para que la A salga con el color char que yo quiero,...simplemente es saber que lineas me falta,...no necesito un Macro listado!!

   Un saludo y mil gracias.

R. INTERNATIONAL

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 1018
  • THE NEW IRON AGE HAS COME!!
    • Ver Perfil
Re:Dudas en Ensamblador
« Respuesta #100 en: Septiembre 18, 2014, 09:43:26 »


  Os adjunto una imagen del char por si acaso fuera necesario,...vereis que en el cuneiform los color char 2 y 3 (amarillo y naranja) se me muestran en el cuneiform sin problemas,...el color blanco seria el color char que todavia no se darle color y que en el cuneiform se me muestra en blanco y en el programita que os he mostrado al sacarla en pantalla lo hace en azul..

        LDA #$07     ; AMARILLO     
        STA $D022     ; BACKGROUND COLOR 2
        LDA #$08    ; NARANJA   
        STA $D023     ; BACKGROUND COLOR 3

  Si configuro el color que quiero segun las posiciones de memoria color, que en este caso al mostrarse en $0400 seria la $D800 si me pone el color que quiero, pero al no hacer la configuracion de los cuatro primeros chars (que no se como se hace) que hacias Laddh y CPULoyal en vuestros listados,.......el char se me convierte en monocolor y vuelve a la definicion de punto por punto (no ladrillado)

   Bueno un saludo.

Carlos

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 631
    • Ver Perfil
Re:Dudas en Ensamblador
« Respuesta #101 en: Septiembre 18, 2014, 17:21:36 »
Rulas, has tocado los registros con los colores comunes pero te falta la parte de manipular la memoria de color: http://retroinvaders.com/commodoremania/foro/index.php/topic,1080.msg13177.html#msg13177

CPULoyal

  • Commodorista
  • ***
  • Mensajes: 56
  • SYS $FFED
    • Ver Perfil
Re:Dudas en Ensamblador
« Respuesta #102 en: Septiembre 18, 2014, 18:14:23 »
Como Carlos te ha referido, el color que te falta aplicar es el de la memoria de color. Lo usual, en cuanto a la asignación de memoria de color, es usar una tabla en la que almacenes los colores que usaras en la pantalla, si es que son muy variados, o bien cambiar el color solo en las partes de tu imagen que lo requieren. Puesto que cada pantalla es de 1000 caracteres (40x25), tienes que asignar otros tantos bytes a cada posición para el color.
Así que, digamos que tienes las siguientes premisas. La memoria de color se mantiene fija para todos los bancos, es decir; a partir de la dirección $D800 y  hasta $DBFF (sí, esos son 1024 bytes, pero solo se usan 1000). Por otro lado tu memoria de pantalla está en la posición por defecto, $0400.

Código: [Seleccionar]
BGNCPY      LDY #$00            ;HACEMOS UNA COPIA DESDE LA TABLA (4 PAGINAS)
                  LDX #$04            ;EL REGISTRO X CONTIENE EL TOTAL DE PÁGINAS A
                  BEQ CPYRMNBY    ;COPIAR (CADA PÁGINA ES IGUAL A 256 BYTES)
                  LDA <TBLCOLOR           
                  STA $FB
                  LDA >TBLCOLOR
                  STA $FC               ;LA DIRECCION DE LA MEMORIA DE COLOR INICIA EN $D800
                  LDA #$00
                  STA $FD
                  LDA #$D8
                  STA $FE
KEEPCPY1   LDA ($FB),Y         ;CICLO DE COPIA EN BLOQUES DE 256 BYTES
                  STA ($FD),Y
                  INY
                  BNE KEEPCPY1
                  INC $FC             ;PREPARAMOS LOS APUNTADORES A LA SIGUIENTE PÁGINA
                  INC $FE             ;Y COMPROBAMOS SI AÚN QUEDAN PÁGINAS POR COPIAR
                  DEX
                  BNE KEEPCPY1
CPYRMNBY  LDX #$00            ;COPIAR LOS BYTES RESTANTES DE LA PÁGINA
                  BEQ CHRRTN        ;NUEVAMENTE EL REGISTRO X CONTIENE EL NÚMERO DE
KEEPCPY2   LDA ($FB),Y         ;BYTES FALTANTES
                  STA ($FD),Y
                  INY
                  DEX
                  BNE KEEPCPY2
                  RTS
TBLCOLOR BYTE 00, 01, 02, 03, 04, 05, 06, 07, 08
                 BYTE ... (HASTA COMPLETAR LOS 1000 BYTES DE COLOR)

Opcionalmente, si quieres asignar un solo color, un código como el siguiente te ayudaría a hacerlo:

Código: [Seleccionar]
INITSCRN   LDX #$00    ; USAMOS X PARA LLENAR LAS 4 PÁGINAS DE LA MEMORIA DE COLOR
CLEAR       LDA#$01      ; EL ACUMULADOR ES EL COLOR QUE ASIGNAREMOS A CADA CARACTER
                 STA $D800,X 
                 STA $D900,X
                 STA $DA00,X
                 STA $DAE8,X
                 INX
                 BNE CLEAR
                 RTS           

Cualquiera de los métodos que uses requiere que planees la asignación de colores para simplificar el código o para que definas adecuadamente los valores de las tablas.

Saludos

R. INTERNATIONAL

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 1018
  • THE NEW IRON AGE HAS COME!!
    • Ver Perfil
Re:Dudas en Ensamblador
« Respuesta #103 en: Septiembre 18, 2014, 20:12:56 »
  todo el tema de la memoria de color me lo controlo, lo que no se porque no me muestra el color,..creo que tus listados me van a venir muy bien,...voy a cenar y los pruebo,..me queda una duda,..no entiendo bien la ultima linea...

TBLCOLOR  BYTE 00, 01, 02, 03, 04, 05, 06, 07, 08
                  BYTE ... (HASTA COMPLETAR LOS 1000 BYTES DE COLOR)

y dudo ya que yo tengo la posicion de memoria en $d800 si tengo que tambiar TBLCOLOR por $$d800,..por ejemplo en las lineas..

                  LDA <TBLCOLOR           
                  STA $FB
                  LDA >TBLCOLOR
                  STA $FC               ;LA DIRECCION DE LA MEMORIA DE COLOR INICIA EN $D800

  Poner...

                  LDA <$D800         
                  STA $FB
                  LDA >$D800
                  STA $FC               ;LA DIRECCION DE LA MEMORIA DE COLOR INICIA EN $D800

  me doy cuenta que aqui hay mucha chica en estas lineas....
                  LDA <TBLCOLOR           
                  STA $FB
                  LDA >TBLCOLOR
                  STA $FC               ;LA DIRECCION DE LA MEMORIA DE COLOR INICIA EN $D800
                  LDA #$00
                  STA $FD
                  LDA #$D8
                  STA $FE

  He imagino que el tema de copiar las paginas sera totalmente necesario.....???......

   Hablamos....

R. INTERNATIONAL

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 1018
  • THE NEW IRON AGE HAS COME!!
    • Ver Perfil
Re:Dudas en Ensamblador
« Respuesta #104 en: Septiembre 18, 2014, 22:14:49 »
 CPULoyal he estado probando con el listado y al compilarlo me dice que no defino CHRRTN,...he estado probando de todo pero al final no me funciona,...estoy un poco desesperado...

  Voy a comenzar de nuevo porque me estoy liando...Yo quiero mostrar dos letras A en las posiciones $0400 y $0403,..configuro el modo texto, asigno los colores 1 y 2 del modo multicolor char (amarillo y naranja),..aplico color Verde en las posiciones $D800 y $d8003 y luego muestro las letras A en las posiciones dichas que es arriba a la izquierda....aqui el sencillo listado:

Código: [Seleccionar]
; FIJA MODO TEXTO
LDA #$12
STA $D018
LDA #$1B
STA $D011
LDA #$08
STA $D016
; COLORES MULTICOLOR CHARS
        LDA #$07     ; AMARILLO     
        STA $D022    ; BACKGROUND COLOR 1
        LDA #$08    ; NARANJA   
        STA $D023    ; BACKGROUND COLOR 2
; DA COLOR VERDE A POSICIONES DONDE SE MUESTRA LETRA A
LDA #$05    ; COLOR VERDE     
        STA $D800   ; POSICION DE VIDEO COLOR
STA $D803   ; POSICION DE VIDEO COLOR
; MUESTRA DOS LETRAS A EN LAS POSICIONES ARRIBA IZQUIERDA
LDA #$01    ; LETRA A     
        STA $0400   ; POSICION DE PANTALLA
STA $0403   ; POSICION DE PANTALLA

  Si arranco esto, me muestra las letras pero al aplicarles el color me las convierte en modo multicolor con la definicion punto por punto, sin el efecto ladrillado, esto lo hace solo si le apllico el color tal y como esta en el lprograma....

   Lo que necesito saber es Que le incluyo o que lineas le incluyo a este programa para que me muestren en el char A que muestro en la pantalla en las posiciones $0400 y $0403 en color verde,...repito, es simplemente saber que lineas le tengo que agregar al programa para que eso ocurra....

  Aqui os adjunto un archivo prg para que veais lo que ocurre si lo compilais y como se muestran las letras A,..que nada tiene que ver con la foto del char que adjunte respuestas atras..
« última modificación: Septiembre 18, 2014, 22:17:45 por R. INTERNATIONAL »