VIC-20. Video de juegos y otras cosas.

dancresp
Mensajes: 5334
Registrado: 13 Nov 2010 02:08
Agradecido : 148 veces
Agradecimiento recibido: 285 veces

VIC-20. Video de juegos y otras cosas.

Mensajepor dancresp » 14 Jul 2011 14:36

La verdad es que este ordenador nunca me deja de sorprender, y viendo este video me sigo preguntando como se lo hace para presentar juegos con color en alta resolución, entre otras cosas.

http://youtu.be/tV7A_PwXEX0

http://youtu.be/YJoQYgoPgVQ

http://youtu.be/hjlI_NmYVpQ

http://youtu.be/fKUSTAG0Gzg

Davidgs
Mensajes: 497
Registrado: 23 Mar 2011 20:27

Re: VIC-20. Video de juegos y otras cosas.

Mensajepor Davidgs » 14 Jul 2011 19:36

Es un espectáculo, con lo limitado que parece y lo que hace... Yo aprendí BASIC en uno, en el colegio pero nunca lo tuve. Mi primer commodore fue el 64C. Y aun lo disfruto.
Muy buenos los Videos.

Avatar de Usuario
ron
Mensajes: 18342
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 1528 veces
Agradecimiento recibido: 1291 veces

Re: VIC-20. Video de juegos y otras cosas.

Mensajepor ron » 14 Jul 2011 21:27

El VIC20 tiene un modo de graficos a color de alta resolución, el problema es que aparte de que muy poca gente sabe usarlo , de mano es dificil.

Tengo un programa de hace tiempo, que si tenéis la paciencia de teclearlo o pasar/convertirlo a formato cinta o disco y usarlo en un emu os hará salir de dudas.

Código: Seleccionar todo

999 END
1000 REM INITIALISE HI-RES
1001 PRINT CHR$(147)
1002 POKE 36879,8
1003 IF PEEK(36869)=253 THEN GOTO 1015
1004 POKE 36869,253
1005 POKE 36867,PEEK(36867) OR 128
1006 POKE 55,0
1007 POKE 56,19
1008 POKE 51,0
1009 POKE 52,19
1010 CLR
1011 PRINT CHR$(147);"INITIALISING HI-RES"
1012 FOR I=0 TO 2047
1013 POKE 5120+I,PEEK(32768+I)
1014 NEXT I
1015 RETURN
1100 REM PLOT PIXEL
1101 X%=X/8
1102 Y%=Y/8
1103 P=7680+X%+22*Y%
1104 Q=PEEK(P)
1105 IF Q>127 THEN GOTO 1114
1106 CN=CN+1
1107 S=5120+8*(127+CN)
1108 T=5120+8*Q
1109 FOR I=0 TO 7
1110 POKE I+S,PEEK(I+T)
1111 NEXT
1112 Q=127+CN
1113 POKE P,Q
1114 C=5120+8*Q+(Y AND 7)
1115 POKE C,PEEK(C) OR (2^(7-(X AND 7)))
1116 RETURN


Imagen

http://yourcomputeronline.wordpress.com/2010/11/14/high-resolution-displays-on-the-vic-20/

y aquí está bastante bien explicado.

dancresp
Mensajes: 5334
Registrado: 13 Nov 2010 02:08
Agradecido : 148 veces
Agradecimiento recibido: 285 veces

Re: VIC-20. Video de juegos y otras cosas.

Mensajepor dancresp » 14 Jul 2011 23:05

¿"@$%&?

Interesante.

¿Y funciona con cualquier cantidad de memoria? Supongo que no.



Avatar de Usuario
ron
Mensajes: 18342
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 1528 veces
Agradecimiento recibido: 1291 veces

Re: VIC-20. Video de juegos y otras cosas.

Mensajepor ron » 17 Jul 2011 09:37

a ver wally dancresp !!!

El VIC20 venía con 5 KB de RAM, pero 1.5 KB son utilizados por el sistema para varias cosas, como el video.

Random Access Memory (built-in): 5K built-in of which 3.5k (3583 bytes) available for BASIC language programming
Random Access Memory (optional): up to 37k of additional RAM with 27.5k (28159 bytes) available for BASIC language programming
Display area: 23 rows x 22 characters, 176x184 pixels with one bit per pixel depth, 88x184 with two bit per pixel depth
Colors: 16


Imagen

Al ampliar el VIC 20, el sistema operativo asigna automáticamente el área de memoria RAM de $ 1E00-$ 1fff para este propósito.

Sin embargo, cuando la memoria RAM extra se añade al sistema ( $ 2000 ) se hace necesario cambiar la asignación de la memoria RAM de vídeo a la zona de los $ 1000 - $ 11FF.

La razón de tener que mover la RAM de vídeo no es más que la zona del programa debe ser un bloque continuo de memoria RAM.

En el Vic20 sin expandir el área del programa es de $ 1000 - $ 1DFF, con un paquete estándar de memoria RAM de 3K es de $ 0400 - $ 1DFF, y con un nivel pack 8K RAM es de $ 1200 - $ 3FFF.

El VIC20 utiliza una pantalla de 22 caracteres por línea y cuenta con 23 líneas. Por lo tanto, la memoria RAM de vídeo tiene que ser 506 posiciones.

En la práctica, con 512 posiciones asignadas, siempre hay posiciones que no han sido utilizadas.

La variable de sistema $ 0288, decimal 648, es utilizada por el sistema para mantener el byte alto de la dirección de la base actual de la memoria RAM de vídeo y en vic20 sin ampliar el valor de esta posición es de 30, que corresponde a la dirección base de $ 1E00 .

Todo este rollo es para decirte que da igual que cantidad de Ram pongas en el vic20, la de video va a ser siempre la misma. Lo único que hace es reubicarla. Si el programa a ejecutar te cabe en la RAM disponible, funcionará.

Para estas cosas lo mejor es probar emuladores y cambiarles las configuraciones, es como mejor se aprende.

Memory Map

The VIC-20's 6502 Microprocessor can directly address 64KB of memory.

A stock VIC-20 has 5K RAM, and 20K ROM built-in. Furthermore 4K of the address range access I/O devices, including the VIC chip. The I/O area also contains 1K of 4-bit values serving as Color RAM.

A range of 256 bytes, with the base address also divisible by 256 is called a page.

The memory map is divided in 8 blocks, each 8K in length, and numbered 0 to 7.

1 KB low Memory RAM (built-in) in Block 0

- $0000-$00FF: Zeropage

- $0100-$01FF: CPU Stack

- $0200-$03FF: KERNAL and BASIC working areas


3 KB open area in Block 0

- $0400-$07FF: 1 KB, accessed by RAM1 line

- $0800-$0BFF: 1 KB, accessed by RAM2 line

- $0C00-$0FFF: 1 KB, accessed by RAM3 line


4 KB Main RAM (built-in) in Block 0

- $1000-$1FFF: 4 KB, Main RAM


8 KB Expansion Blocks in Blocks 1..3

- $2000-$3FFF: 8 KB, Expansion Block 1, accessed by BLK1 line

- $4000-$5FFF: 8 KB, Expansion Block 2, accessed by BLK2 line

- $6000-$7FFF: 8 KB, Expansion Block 3, accessed by BLK3 line


4 KB ROM, and 4 KB I/O Chip Areas in Block 4

- $8000-$8FFF: 4 KB, Character ROM

- $9000-$900F: VIC Chip Registers

- $9110-$911F: 6522 VIA Chip #1 Registers

- $9120-$912F: 6522 VIA Chip #2 Registers

- $9400-$97FF: Color RAM (1K of 4 bit nibbles) Note Color is mapped to $9600-$97FF on an unexpanded VIC, otherwise it is at $9400-95FF.

- $9800-$9BFF: 1 KB, I/O Expansion 2, accessed by I/O2 line

- $9C00-$9FFF: 1 KB, I/O Expansion 3, accessed by I/O3 line


8 KB Expansion Area in Block 5

- $A000-$BFFF: 8 KB, Expansion Block 5, accessed by BLK5 line. Often used for ROM cartridges. Allows autostart sequence.


16 KB ROM Areas in Blocks 6, and 7

- $C000-$DFFF: 8 KB, Block 6, Basic Interpreter ROM

- $E000-$FFFF: 8 KB, Block 7, Kernel ROM

dancresp
Mensajes: 5334
Registrado: 13 Nov 2010 02:08
Agradecido : 148 veces
Agradecimiento recibido: 285 veces

Re: VIC-20. Video de juegos y otras cosas.

Mensajepor dancresp » 18 Jul 2011 14:42

Esto me lo he de leer con detenimiento, porque el ejemplo parece que explica como redefinir los carácteres, no como usar la Hi-Res que utilizar algunos juegos, que permiten que un gráfico este compuesto por varios colores simultáneamente y se muevan pixel a pixel.

Sea como sea, la memoria gráfica ocupa unos 500 bytes, pero hacen falta otros 500 más para almacenar los atributos de color. Pero si se usa la alta resolución, la cantidad de memoria necesaria se dispara y en la máquina con 5KB dudo que no se pueda usar.

Avatar de Usuario
ron
Mensajes: 18342
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 1528 veces
Agradecimiento recibido: 1291 veces

Re: VIC-20. Video de juegos y otras cosas.

Mensajepor ron » 18 Jul 2011 22:40

Bueno la versión original de 5 Kb deja 3,5 útiles para Basic y el resto básicamente es para el video y variables del sistema.


Volver a “Commodore Vic20”

¿Quién está conectado?

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