Modos de video COCO/DRAGON

Avatar de Usuario
luiscoco
Mensajes: 2328
Registrado: 15 May 2011 04:23
Ubicación: Caracas, Venezuela
Agradecido : 30 veces
Agradecimiento recibido: 44 veces
Contactar:

Modos de video COCO/DRAGON

Mensajepor luiscoco » 06 Jul 2014 16:50

Decidí abrir este hilo para investigar el VDG de la COCO/DRAGON, al parecer tiene mas de lo que dicen.
También estoy convencido que en el technicar refernce manual hay muchos errores
Aparte de esta disertación: viewtopic.php?f=10&t=200031174#p200057101
Los modos semigraficos no me cuadran
Imagen

Como se ve aqui los Semigraficos 6 se seleccionan con V0=0; V1=0;V2=0 y el FF22 con el bit 4 encendido (o sea 16) esto no funciona
Lo que si funciona es V0=1 asi que me parece que esta mal

También binaria-mente hay mas modos Semigraficos por ejemplo encendiendo V0 y V1 (no esta documentado)
Probare.

Avatar de Usuario
ron
Mensajes: 17110
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 491 veces
Agradecimiento recibido: 499 veces

Re: Modos de video COCO/DRAGON

Mensajepor ron » 06 Jul 2014 18:13

Lo suyo para Dragon o lo más estándar es: 256 x 192 (2 colores), 128 x 192 (4 colores)

Después de comprobar que hay modos de video que no son accesibles desde Basic, me quedo de momento con estos datos:

El modo basado en full colour scanline o modo "semi-gráfico" de 64 X 192 no es accesible desde Basic

32 X 16 - 9 colores disponibles
63 X 32 - 9 colores disponibles
128 X 96 - 2 sets de 2 colores
128 X 96 - 2 sets de 4 colores
128 X 192 - 2 sets de 2 colores
128 X 192 - 2 sets de 4 colores
256 X 192 - 2 sets de 2 colores


visto de otra manera :

256 X 192, 2 colores (PMODE 4, 4 páginas)
192 X 128, 4 colores (PMODE 3, 4 páginas)
192 X 128, 2 colores (PMODE 2, 2 páginas)
128 X 96, 4 colores (PMODE 1, 2 páginas)
128 X 96, 2 colores (PMODE 0, 1 página)
64 X 32, 9 colores, texto en 32 x 16


Código: Seleccionar todo

&00B6                Current PMODE
&00B7 y &00B8   Address of end of graphics page
&00B9               Number of bytes per line
&00BA               Address of top of graphics page
&00BC               Graphics page base address, contains &0E if Disk system else &06 (Star &0600 or disk &0E00)


Dragoncocoram.jpg


d64mem.jpg
d64mem.jpg (53.22 KiB) Visto 1631 veces

Avatar de Usuario
luiscoco
Mensajes: 2328
Registrado: 15 May 2011 04:23
Ubicación: Caracas, Venezuela
Agradecido : 30 veces
Agradecimiento recibido: 44 veces
Contactar:

Re: Modos de video COCO/DRAGON

Mensajepor luiscoco » 06 Jul 2014 18:33

El problema es que con DISK cambia la memoria gráfica y en vez de empezar en &h600=1536 empieza en &hE00=3584
Y no contentos con eso, en la zona libre entre &600 y &E00 grabaron cosas del DISK BASIC y no se pueden usar los semigraficos

Este programa prueba los modos


10 FORM=0TO 7
20 B=128
30 CLS
40 PRINT"MODOS SEMIGRAFICOS
50 PRINT"MODO ",M
60 INPUT "PRESIONE UNA TECLA";T
70 POKE&HFFC0,0:POKE&HFFC2,0:POKE&HFFC4,0
80 IF M AND 1 THEN POKE&HFFC1,0
90 IF M AND 2 THEN POKE&HFFC3,0
100 IF M AND 4 THEN POKE&HFFC5,0
110 FORA= &H400 TO &H5FF
120 POKEA,B
130 NEXT
140 B=B+1
150 IF B<130 THEN 110
160 A$=INKEY$:IF A$=""THEN 160
170 NEXTM

VDG.dsk
(157.5 KiB) Descargado 81 veces


Como se ve en el programa hay 8 modos Semigraficos y no como dice el manual

El modo 0 es el TEXTO normal y semigraficos 4
El modo 1 es semigraficos 6 (y no esta bien en el manual)
El modo 2 es semigraficos 8
El modo 3 No existe en el manual pero el programa muestra algo
El modo 4 es semigraficos 12
El modo 5 No existe en el manual pero el programa muestra algo
El modo 6 es semigraficos 24
El modo 7 No existe en el manual pero el programa muestra algo

Como se ve el modo 1 y 4 son idénticos
y el modo 5 y 7 también pero tienen un Borde que no se como se controla

VDG.dsk
(157.5 KiB) Descargado 81 veces

Inicio.PNG

MODO 0.PNG
MODO 0

MODO 1.PNG
MODO 1

MODO 2.PNG
MODO 2

MODO 3.PNG
MODO 3

MODO 4.PNG
MODO 4

MODO 5.PNG
MODO 5

MODO 6.PNG
MODO 6

MODO 7.PNG
MODO 7

Avatar de Usuario
luiscoco
Mensajes: 2328
Registrado: 15 May 2011 04:23
Ubicación: Caracas, Venezuela
Agradecido : 30 veces
Agradecimiento recibido: 44 veces
Contactar:

Re: Modos de video COCO/DRAGON

Mensajepor luiscoco » 06 Jul 2014 19:19

Solo pinto 512 bytes al principio con el valor de 129 para visualizar los bloques
Como se ven, las rallas en medio son el programa de basic

Avatar de Usuario
pser1
Mensajes: 2013
Registrado: 08 Dic 2012 18:34
Agradecido : 198 veces
Agradecimiento recibido: 181 veces

Re: Modos de video COCO/DRAGON

Mensajepor pser1 » 06 Jul 2014 22:18

Hola,

según el libro "Anatomy of the Dragon" los valores de la página escaneada son correctos.
Valores para semigráficos:
SAM PIA1
v2 v1 v0 7 6 5 4 3 2 1 0
0 0 0 0 X X 0 X U U U 32X64 9 COLORES 512 BYTES SG4
0 0 0 0 X X 1 C U U U 48X64 2 COLORES 512 BYTES SG6
0 1 0 0 X X 0 X U U U 64X64 9 COLORES 2048 BYTES SG8
1 0 0 0 X X 0 X U U U 96X64 9 COLORES 3072 BYTES SG12
1 1 0 0 X X 0 X U U U 192X64 9 COLORES 6144 BYTES SG24
Las letras significan:
C cambio de juego de colores (valores posibles 1 - 0)
X indiferente lo que pongamos
U no tocar estos bits

En el caso de gráficos, los valores son los siguientes
SAM PIA1
v2 v1 v0 7 6 5 4 3 2 1 0
0 0 1 1 0 0 0 C U U U 64X64 4 COLORES 1024 BYTES Modo 1F
0 0 1 1 0 0 1 C U U U 64X128 2 COLORES 1024 BYTES Modo 1T
0 1 0 1 0 1 0 C U U U 64X128 4 COLORES 2048 BYTES Modo 2F
0 1 1 1 0 1 1 C U U U 96X128 2 COLORES 1536 BYTES PMODE0
1 0 0 1 1 0 0 C U U U 96X128 4 COLORES 3072 BYTES PMODE1
1 0 1 1 1 0 1 C U U U 192X128 2 COLORES 3072 BYTES PMODE2
1 1 0 1 1 1 0 C U U U 192X128 4 COLORES 6144 BYTES PMODE3
1 1 1 1 1 1 1 C U U U 192X256 2 COLORES 6144 BYTES PMODE4

Para configurar la SAM con los valores de V0,V1,V2 yo uso esta subrutina:
--------------------------------------------------------------------------------------------
1000 PREPARAR LA SAM
1050 POKEV0+&HFFC0,0
1060 POKEV1+&HFFC2,0
1070 POKEV2+&HFFC4,0
1080 RETURN
-------------------------------------------------------------------------------------------

Para la PIA utilizo esta otra (con los valores de los BITs 3-4-5-6-7)
-----------------------------------------------------------------------------------------------
2000 PREPARAR EL VDG (PIA)
2050 A=PEEK(&HFF22)AND7: para no afectar los bits 0-1-2
2060 A=A+8*BIT3+16*BIT4+32*BIT5+64*BIT6+128*BIT7
2070 POKE&HFF22,A
2080 RETURN
-----------------------------------------------------------------------------------------------

El tema del inicio de memoria, realmente es el siguiente:
SIN unidad de discos la primera página gráfica es la siguiente a la de texto (que es $400-$5FF)
por lo tanto sería a partir de $600
CON la unidad de discos, las áreas de buffer y de variables se comen $600 bytes asi que la nueva dirección de inicio será $600+$600 = $C00 (3072 bytes = 3K)

Otro tema es que nosotros podemos decirle al sistema DONDE queremos que empiece la primera página de gráficos.
La página inicial se puede controlar a saltos de $200 bytes (512)
Yo utilizo esta rutina para definirla, entrada PG=página de gráficos inicial, por defecto $C00 = 3072 = 3K = 6 (bloques de 512bytes), haríamos PG=6
------------------------------------------------------------------------------------------------
3000 POSICIONA PIA PARA PRIMERA PAGINA GRAFICA
3010 POKE&HFFC6+(PG AND 1),0
3020 POKE&HFFC8+(PG AND 2)/2,0
3030 POKE&HFFCA+(PG AND 4)/4,0
3040 POKE&HFFCC+(PG AND 8)/8,0
3050 POKE&HFFCE+(PG AND16)/16,0
3060 POKE&HFFD0+(PG AND32)/32,0
3070 POKE&HFFD2+(PG AND64)/64,0
3080 RETURN
------------------------------------------------------------------------------------------------

saludos
pere

Avatar de Usuario
pser1
Mensajes: 2013
Registrado: 08 Dic 2012 18:34
Agradecido : 198 veces
Agradecimiento recibido: 181 veces

Re: Modos de video COCO/DRAGON

Mensajepor pser1 » 06 Jul 2014 22:26

Algunas observaciones.

El hecho de que Microsoft no pusiera comandos para acceder a todos los modos gráficos, NO significa que no se pueda trabajar con ellos en Basic.
El comando POKE es la puerta para hacer o deshacer cualquier cosa.
En mi post anterior están las rutinas que permiten configurar la SAM y la PIA a los valores que uno desee y la verdad es que hay algunos sorprendentes (no sirven para nada, pero están ahí)
En realidad se puede utilizar cualquier combinación de valores en ambos campos (SAM y PIA)

En lo que a posición inicial de memoria se refiere, hay que tener cuidado. Los semigráficos que solo usan 512 bytes suelen ir bien contra las posiciones $400-$5FF (texto estandar), pero cuando
nos metemos con modis que requieren mas de 512 bytes, si empezamos en $400 vamos a chocar de frente con el área del DOS, por ello adjunté la otra subrutina, para hacer siempre que se utilice una página por encima del sistema de discos (minimo PG=6)

saludos
pere

Avatar de Usuario
luiscoco
Mensajes: 2328
Registrado: 15 May 2011 04:23
Ubicación: Caracas, Venezuela
Agradecido : 30 veces
Agradecimiento recibido: 44 veces
Contactar:

Re: Modos de video COCO/DRAGON

Mensajepor luiscoco » 07 Jul 2014 01:21

Fijate en esta linea de semigraficos 6
pser1 escribió:0 0 0 0 X X 1 C U U U 48X64 2 COLORES 512 BYTES SG6

Dice que usa 512 bytes, y eso es imposible porque 48X64 que en realidad son 32 bytes de ancho por 48 de largo, y eso da 32X48=1536 bytes (ves que esta malo)

ademas si seteas el bit 4 del &FF20 no hace nada, solo si seteas el V0 ( &FFC1 ) pasa lo que debe.

Avatar de Usuario
pser1
Mensajes: 2013
Registrado: 08 Dic 2012 18:34
Agradecido : 198 veces
Agradecimiento recibido: 181 veces

Re: Modos de video COCO/DRAGON

Mensajepor pser1 » 07 Jul 2014 19:36

Hola Luis,

cuando hablamos de definición de 48x64 NO es lo mismo que cuando dices que trabajas en PMODE4 con 256x192
En el último caso hablamos de bits: cada 8 bits ocupan un byte, luego son 256/8 = 32 bytes por fila
32 bytes * 192 filas = 6144 bytes (como ya sabemos)

Ahora, en modo semigráfico-6, son 48 bloques (o tacos cuadrados) verticalmente por otros 64 bloques horizontales.
Cada caracter en modo SG-6 contiene información de SEIS bloques (o trozos cuadrados) un bit para cada uno y le quedan dos bits, uno para indicar si es gráfico o alfanumérico y el otro para el color (0-1) o sea que solamente dos colores.
Cada caracter alfanumérico contiene pues tres filas de dos columnas de bloques coloreables.
32 caracteres en una fila x 2 bloques = 64 bloques horizontales
16 caracteres verticales x 3 bloques = 48 bloques verticales conforme definición indica arriba
y esto se hace ocupando solamente 32*16 = 512 bytes como indica el documento (de $400 a $5FF)
La pega del byte alfa/gráfico es que cuando está a cero, por construcción del Dragón, el programa espera recibir de una ROM externa los caracteres alfanuméricos.
Al no existir tal ROM, lo que muestra en pantalla es el código de cada caracter no encontrado (de 0 a 127) como combinaciones de barritas verticales (raro, raro)

Saludos
pere

Avatar de Usuario
luiscoco
Mensajes: 2328
Registrado: 15 May 2011 04:23
Ubicación: Caracas, Venezuela
Agradecido : 30 veces
Agradecimiento recibido: 44 veces
Contactar:

Re: Modos de video COCO/DRAGON

Mensajepor luiscoco » 08 Jul 2014 01:19

Es cierto me había equivocado, son unos modos ciertamente complicadillos

Avatar de Usuario
pser1
Mensajes: 2013
Registrado: 08 Dic 2012 18:34
Agradecido : 198 veces
Agradecimiento recibido: 181 veces

Re: Modos de video COCO/DRAGON

Mensajepor pser1 » 08 Jul 2014 22:24

Hola Luis,

adjunto aquí un zip que contiene una imagen VDK para XRoar con los programas:
- SAM0-06.BAS sirve para ver las variantes con el modo 0 de SAM
- SAM1-06.BAS sirve para ver las variantes con el modo 1 de SAM
- SAM2-06.BAS sirve para ver las variantes con el modo 2 de SAM
En principio las posibilidades son (para cualquier valor de la SAM):
- Dos alfanuméricas (una con G0 = 0 y la otra con G0 = 1)
- Gráficas: Se puede variar el valor de la PIA con ocho valores distintos, de los cuales
los valores 3,5 y 7 generan el mismo modo y los valores 2,4 y 6 otro tanto.
Así que son diferentes: alfanuméricos 0,1
gráficos: 2,3,4,9
Como rareza en el modo SAM=0 hay dos variantes (2 y 3) que utilizan la mitad de bytes para llenar toda la anchura de pantalla (16 bytes)
Pokear en los siguientes 16 no muestra NADA en pantalla. Curioso, hay que saltar 16 bytes al final de cada línea!

En el modo SAM=1, hay 4 variantes (0,1,4,9) que muestran DOBLE imagen en pantalla, es decir cada vez que pokeamos un punto de memoria se
marcan DOS zonas de pantalla! Igualmente solo usa 16 bytes por línea ya que la parte derecha es idéntica a la de la izquierda.

En el modo SAM=2, hay 3 variantes (1,4,9) que muestran el mismo efecto descrito para el modo SAM=1

Aunque la pantalla de inicio de cada programa muestra las opciones, os cuento brevemente lo que se puede hacer:
- Seleccionamos una variante (0,1,2,3,4,9) recordad que las 5,6,7,8 son repeticiones
Con esto se llenará la pantalla con caracteres o bloques gráficos. Al final suena un pitido.
Ahora podemos pulsar "C" y cambiará el juego de colores (si es aplicable)
En su lugar podemos pulsar "X" y pasamos al modo de muestra simple
Cualquier otra tecla vuelve al menú principal.

El modo de muestra simple, dibuja en pantalla 8 bloques de texto/gráficos con una altura (eje Y) que depende de la anchura de cada modo.
Esto permite ver como se forman y cuanto ocupa cada valor pokeable. Empieza por 0 hasta 7 y aumenta de 8 en 8
Con cada tecla pulsada pasará a los siguentes valores (+8). Dándole 16 veces llegamos al valor 128 que es donde empiezan los gráficos.
Podéis modificar el programa y hacer que el valor inicial no sea 0 sino 64 por ejemplo.
En este modo seguiremos hasta que pulsemos "X" de nuevo, lo cual nos lleva al menú principal.

Podéis utilizar libremente el contenido del disco. Si modificáis uno de los programas podéis compartirlo en este hilo para todos los demás. Gracias

En el disco encontraréis el fuente en formato DiskDream de la rutina código máquina para hacer el borrado de pantallas semigráficas/gráficas
Además está un pequeño programa de muestra para cargar / grabar imágenes en PMODE3
Y un mini Basic para eliminar ficheros de disco protegidos, sin hartarse de escribir por teclado.

saludos
pere

Pd. Queda por currarse los modos para SAM 3-4-5-6-7, tiempo al tiempo ...
@Luis. Tú decides si este hilo sigue aquí o si por la concreción de PIA, SAM etc debería estar en la parte Dragón, o si quieres te copio este post en el otro lado en hilo nuevo, tu me dirás ...
Adjuntos
10-PruebasGraficas SAM 0-1-2.zip
Bloque SAM 0-1-2
(11.85 KiB) Descargado 71 veces

Avatar de Usuario
ron
Mensajes: 17110
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 491 veces
Agradecimiento recibido: 499 veces

Re: Modos de video COCO/DRAGON

Mensajepor ron » 08 Jul 2014 22:57

Gracias Pere !!! descargado y a probar.

¿ En Dragon cual es la mejor manera de mezclar gráficos y texto ?

Avatar de Usuario
luiscoco
Mensajes: 2328
Registrado: 15 May 2011 04:23
Ubicación: Caracas, Venezuela
Agradecido : 30 veces
Agradecimiento recibido: 44 veces
Contactar:

Re: Modos de video COCO/DRAGON

Mensajepor luiscoco » 09 Jul 2014 06:28

Para mi estos dos equipos son muy parecidos y los post de uno sirven para el otro, así que repetirlo no seria bueno, tal vez crear el post con alguna explicación y un link a este post.

Con respecto a lo que escribiste, tengo que digerirlo y probar, tu lo tiene fresquito y claro yo lo estoy reaprendiendo.

Y muchas gracias.

Para lo que dice ron, los programas generalmente usan gráficos y los caracteres los pintan, el modo texto tiene unos bloques de un cuarto de carácter a 8 colores que se puede usar para algunas cosas. en mis inicios puse anuncios de coco con una especie de vídeo publicitario, con gráficos de este tipo + texto y me quedo muy chulo a ver si lo encuentro y lo muestro.

También todos los semigraficos tienen texto el problema es la resolución unos 64 puntos de ancho coloreados de 2 en 2 a 8 colores + negro, aunque hacia abajo podía tener 192 a cualquiera de los 8 colores + negro en el modo semigraficos 24

Avatar de Usuario
luiscoco
Mensajes: 2328
Registrado: 15 May 2011 04:23
Ubicación: Caracas, Venezuela
Agradecido : 30 veces
Agradecimiento recibido: 44 veces
Contactar:

Re: Modos de video COCO/DRAGON

Mensajepor luiscoco » 11 Sep 2017 20:10

Volviendo al tema de los modos gráficos de la coco 1,2 y Dragon y también para el tema del nuevo Basic/Asembler hice un croquis y un programa para ayudar a entenderlos.

Color computer 1,2 Modos gráficos.png
Color computer 1,2 Modos gráficos.png (38.66 KiB) Visto 85 veces

Código: Seleccionar todo

10 PMODE4:PCLS:CIRCLE(100,100),50
20 CLS:P1=65478:P2=65472:P3=65314
30 PRINT"FLECHAS DER/IZQ = VDG 0-7 3BITS";
40 PRINT"Q,A = VCR 0-15 BITS(4-7)
50 PRINT"0,1 = VCR BIT3 SCREEN,0/1
60 PRINT"FLECHAS ARR/ABA=PAGE:0-127 6BITS
70 FORA=0TO255:POKE&H500+A,A:NEXT
80 C$=INKEY$:IFC$=""THEN80
90 C=ASC(C$)
100 IFC=10THENPAGE=PAGE+1:GOSUB210
110 IFC=94THENPAGE=PAGE-1:GOSUB210
120 IFC=9THENIFMO<7THENMO=MO+1:GO SUB180ELSESOUND150,5
130 IFC=8THENIFMO>0THENMO=MO-1:GOSUB180ELSESOUND150,5
140 IFC$="1"ORC$="2"THENS=(S AND240)+(C-48)*8:GOSUB240
150 IFC$="Q"THENIFS>15THENS=S-16:GOSUB240ELSESOUND200,5
160 IFC$="A"THENIFS<240THENS=S+16:GOSUB240ELSESOUND200,5
170 GOTO80
180 FORA=0TO2
190 IF(MO AND2^A)>0THENPOKEP2+A*2+1,0ELSEPOKEP2+A*2,0
200 NEXT:RETURN
210 FORA=0TO6
220 IF(PA AND 2^A)>0THENPOKEP1+A*2+1,0ELSEPOKEP1+A*2,0
230 NEXT:RETURN
240 POKEP3,S OR(PEEK(P3)AND7):RETURN


video.zip
(4.27 KiB) Descargado 3 veces

Avatar de Usuario
luiscoco
Mensajes: 2328
Registrado: 15 May 2011 04:23
Ubicación: Caracas, Venezuela
Agradecido : 30 veces
Agradecimiento recibido: 44 veces
Contactar:

Re: Modos de video COCO/DRAGON

Mensajepor luiscoco » 11 Sep 2017 20:23

Ahora bien los V0,V1,V2 son mas o menos el tamaño usado por la gráfica, pero no cuadra del todo (extraño)
Si nos fijamos el la columna a la izquierda de estos registros, esta su valor en decimal, que si lo duplicamos por 2(columna X2) lo que es lo mismo que correrlos un bit, casi es idéntico a la cantidad de paginas usadas en el gráfico.

No existen los modos 1,3,5,7 en semigraficos, (estudiarlo)
En graficos, existe un tamaño no usado el 7, que tiene mas resolución pero distorsiona el dibujo de un circulo que puse en los programas (hay que estudiarlo), tampoco el modo 0 en gráficos (poca memoria)
----------------------------------
Luego del $FF22 el:
Bit 3 es la paleta
Bit 4 es GM0 = 0=4 Colores; 1 =2 Colores
Bit 5 es GM1
Bit 6 es GM2
Bit 7 es Alfanumérico o Trafico

El GM 0-2 juntos dan los valores del 0 al 7 o modos gráficos
------------------------------------

Con respecto el PMODE propongo algunas numeraciones para los 13 modos gráficos o mas, de los cuales el BASIC solo usa 5


Volver a “Tandy CoCo”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado