Alguien sabe DLI?

Para cualquier plataforma ATARI, computadores o consolas.
Avatar de Usuario
AsCrNet
hard player
hard player
Mensajes: 472
Registrado: Mar Nov 07, 2006 2:45 pm
Reputación: 0
Ubicación: PHO
Contactar:

Alguien sabe DLI?

Mensaje por AsCrNet »

hola atarianos

hace días que estoy de cabeza con los DLI "DISPLAY LIST INTERRUPTS" en el atari pero no cacho cual es la lógica para crear los datos ;-(

Código: Seleccionar todo

10 DLIST=PEEK(560)+256*PEEK(561)
20 POKE DLIST+15,130
30 FOR l=0 TO 19:
40 READ A:POKE 1536+1,A:NEXT I
50 DATA 72,138,72,169,80,162,88
60 DATA 141,10,212,141,23,208
70 DATA 142,24,208,104,170,104,64
80 POKE 512,0:POKE 513,6
90 POKE 54286, 192
la idea como se sabe que hace los data en las líneas 50 a 70, ?@ , yo creo que es Assembler o no ?@ en atariarchiver.org hay varios libros pero ninguno habla claro "me refiero a los datas" y algunos tiene un ejemplo en assembler y no funciona ;-(
mi idea es tirar 3 colores en pantalla como la bandera argentina por ejemplo , pero la franja del medio mas chica :-°

espero que alguien me pueda ayudar :-°

saludos :-°
Avatar de Usuario
parche
expert
expert
Mensajes: 1639
Registrado: Mar Nov 07, 2006 2:50 pm
Reputación: 0
Contactar:

Mensaje por parche »

AscrNet

Pasate el fuente en Assembler y el tips del Willy pa configurar el Edit Plus

Me cambié de PC y se me olvidó copiarlo :8-

Y te ayudo. :wink:
Avatar de Usuario
WillySoft
expert
expert
Mensajes: 657
Registrado: Mar Nov 07, 2006 10:02 pm
Reputación: 2

Mensaje por WillySoft »

Mira, el Display List Interrupt consiste básicamente son rutinas rápidas (de pocos ciclos de máquina), que se realizan mientras los chips gráficos del Atari (ANTIC y GTIA) generan la pantalla. Con ello, puedes cambiar algunos registros de hardware para cambiar los colores de la pantalla. Eso sí, tiene que estar correctamente sincronizado con los chips gráficos, de modo de generar en el momento preciso en que se inicia la línea que dibuja. Esto se logra ingresando un valor a la posición WSYNC ($D40A).

Para habilitar una DLI, esto se hace generando un display list que avise en qué línea comenzará la interrupción. Esto se hace sumando 128 ($80 en hexadecimal) a la línea anterior a la que tu quieras modificar los registros. Además, se coloca el vector de la dirección de la DLI en las posiciones $200 y $201 (512 y 513 en decimal) y un $C0 en NMIEN ($D40E).

Aquí te envío un ejemplo:

Código: Seleccionar todo

WSYNC = $D40A
COLBK = $D01A	
NMIEN = $D40E
VDSLST = $200	
SDLSTL = $230
COLOR4 = $2C8
	
	* = $6000
DL
	.byte $70,$70,$70,$70,$70,$70,$70,$70+$80
	.byte $41
	.word DL
inicio
	lda #<dl
	sta sdlstl
	lda #>dl
	sta sdlstl+1
	lda #<dli
	sta vdslst
	lda #>dli
	sta vdslst+1
	lda #$c0
	sta nmien
	lda #$00
	sta color4
loop
	jmp loop


dli
	pha
	txa
	pha
	ldx #$0
dli.loop
	lda tabla.colores,x
	sta wsync
	sta colbk
	inx
	cpx #16
	bne dli.loop
	pla
	tax
	pla
	rti

tabla.colores
	.byte 0,2,4,6,8,10,12,14,14,12,10,8,6,4,2,0
	
	*=$2e0
	.word inicio
Cualquier duda, me avisas.
Última edición por WillySoft el Mié Nov 29, 2006 11:23 am, editado 2 veces en total.
Avatar de Usuario
AsCrNet
hard player
hard player
Mensajes: 472
Registrado: Mar Nov 07, 2006 2:45 pm
Reputación: 0
Ubicación: PHO
Contactar:

Mensaje por AsCrNet »

WillySoft escribió:Aquí te envío un ejemplo:

Código: Seleccionar todo

WSYNC = $D40A
COLBK = $D01A	
NMIEN = $D40E
VDSLST = $200	
SDLSTL = $230
COLOR4 = $2C8
	
	* = $6000
DL
	.byte $70,$70,$70,$70,$70,$70,$70,$70+$80
	.byte $41
	.word DL
inicio
	lda #<dl>dl
	sta sdlstl+1
	lda #<dli>dli
	sta vdslst+1
	lda #$c0
	sta nmien
	lda #$00
	sta color4
loop
	jmp loop


dli
	pha
	txa
	pha
	ldx #$0
dli.loop
	lda tabla.colores,x
	sta wsync
	sta colbk
	inx
	cpx #16
	bne dli.loop
	pla
	tax
	pla
	rti

tabla.colores
	.byte 0,2,4,6,8,10,12,14,14,12,10,8,6,4,2,0
	
	*=$2e0
	.word inicio
Cualquier duda, me avisas.
gracias don WillySoft, pero este ejemplo lo copie y lo pege al editplus y lo compile con el OMC y solo queda la pantalla en negro :(

pero eso es la idea hacer colores con DLI :-°

saludos
Avatar de Usuario
parche
expert
expert
Mensajes: 1639
Registrado: Mar Nov 07, 2006 2:50 pm
Reputación: 0
Contactar:

Mensaje por parche »

Willy

Tu curso de Assembler estará disponible pronto?

Me cambié de PC en la pega y no recuerdo los parámetros para configurar el Edit Plus.

Gracias!
Avatar de Usuario
WillySoft
expert
expert
Mensajes: 657
Registrado: Mar Nov 07, 2006 10:02 pm
Reputación: 2

Mensaje por WillySoft »

AsCrNet escribió:
gracias don WillySoft, pero este ejemplo lo copie y lo pege al editplus y lo compile con el OMC y solo queda la pantalla en negro :(

pero eso es la idea hacer colores con DLI :-°

saludos
Ya vi por qué. Hay un error en la pegada que hice del original al post que envié. Fue por usar el símolo "menor que" y "Mayor que". Envío versión corregida:

Código: Seleccionar todo

WSYNC = $D40A
COLBK = $D01A	
NMIEN = $D40E
VDSLST = $200	
SDLSTL = $230
COLOR4 = $2C8
	
	* = $6000
DL
	.byte $70,$70,$70,$70,$70,$70,$70,$70+$80
	.byte $41
	.word DL
inicio
	lda #dl&255
	sta sdlstl
	lda #dl/256
	sta sdlstl+1
	lda #dli&255
	sta vdslst
	lda #dli/256
	sta vdslst+1
	lda #$c0
	sta nmien
	lda #$00
	sta color4
loop
	jmp loop


dli
	pha
	txa
	pha
	ldx #$0
dli.loop
	lda tabla.colores,x
	sta wsync
	sta colbk
	inx
	cpx #16
	bne dli.loop
	pla
	tax
	pla
	rti

tabla.colores
	.byte 0,2,4,6,8,10,12,14,14,12,10,8,6,4,2,0
	
	*=$2e0
	.word inicio
Espero funcione ahora, saludos.
Avatar de Usuario
parche
expert
expert
Mensajes: 1639
Registrado: Mar Nov 07, 2006 2:50 pm
Reputación: 0
Contactar:

Mensaje por parche »

parche escribió:Willy

Tu curso de Assembler estará disponible pronto?

Me cambié de PC en la pega y no recuerdo los parámetros para configurar el Edit Plus.

Gracias!
willy escribió: cri cri
Soy invisible, soy invisible ::C)
Avatar de Usuario
WillySoft
expert
expert
Mensajes: 657
Registrado: Mar Nov 07, 2006 10:02 pm
Reputación: 2

Mensaje por WillySoft »

¿¿¿Alguien más dijo algo???
Avatar de Usuario
parche
expert
expert
Mensajes: 1639
Registrado: Mar Nov 07, 2006 2:50 pm
Reputación: 0
Contactar:

Mensaje por parche »

WillySoft escribió:¿¿¿Alguien más dijo algo???
No te preocupes, ya vi que lo publicaron.

No te molesto más :8-
Avatar de Usuario
AsCrNet
hard player
hard player
Mensajes: 472
Registrado: Mar Nov 07, 2006 2:45 pm
Reputación: 0
Ubicación: PHO
Contactar:

Mensaje por AsCrNet »

Gracias master WillySoft esta muy bueno el ejemplo :-° pero era algo mas simple :8- , por el momento tengo un programita que genera los data para DLI basicos :wink:

mira tengo la siguiente duda, hay alguna forma de hacer caracteres para el modo 11 mas rapidos que el envisionpc y lo otro cuales son los colores esos que usan los juegos como el draconus, zybex, ninja comando, ... etc. es como hacer un efecto mas 3d :-°

P.D: parche la configuración esta en http://www.retrogames.cl/cap1.html por si acaso ]-)

saludos
Avatar de Usuario
parche
expert
expert
Mensajes: 1639
Registrado: Mar Nov 07, 2006 2:50 pm
Reputación: 0
Contactar:

Mensaje por parche »

AsCrNet escribió:P.D: parche la configuración esta en http://www.retrogames.cl/cap1.html por si acaso ]-)

saludos
Que ya la vi ohhhhh :8-

Gracias por contestarme AsrcNet, pensé que era invisible! @(
Avatar de Usuario
ZZT
Site Admin
Site Admin
Mensajes: 10895
Registrado: Mar Nov 07, 2006 2:45 pm
Reputación: 8
Ubicación: La Florida-Santiago-Chile
Contactar:

Mensaje por ZZT »

parche escribió:Gracias por contestarme AsrcNet, pensé que era invisible! @(
Tai pelao, no flaco ::jua ::jua ::jua ::jua ::jua ::jua ::jua ::jua
Avatar de Usuario
WillySoft
expert
expert
Mensajes: 657
Registrado: Mar Nov 07, 2006 10:02 pm
Reputación: 2

Mensaje por WillySoft »

AsCrNet escribió:mira tengo la siguiente duda, hay alguna forma de hacer caracteres para el modo 11 mas rapidos que el envisionpc y lo otro cuales son los colores esos que usan los juegos como el draconus, zybex, ninja comando, ... etc. es como hacer un efecto mas 3d :-°
Bueno, una forma de hacer caracteres más rápidos en dibujándolos con algún programa de dibujo, como el Rambrandt, para después grabar dicho archivo en formato micropainter. Después lo puedes convertir en caracteres con un utilitario del Envision. (el original, no el EnvisionPC) Es una alternativa al menos.

Respecto a los colores, lo que hace el Draconus, por ejemplo, es utilizar un color y tres grados de brillo. Eso lo puedes implementar usando número hexadecimales. Ejemplo: tres grados de gris: $02,$06,$0A. Tres grados de rojo: $42,$46,$4A. Las "hexadecenas" te indican el color, y las "hexaunidades", el brillo.
Avatar de Usuario
WillySoft
expert
expert
Mensajes: 657
Registrado: Mar Nov 07, 2006 10:02 pm
Reputación: 2

Mensaje por WillySoft »

parche escribió:Gracias por contestarme AsrcNet, pensé que era invisible! @(
Parche, para qué contestar una pregunta que se respondía sola, ¿ah?
Avatar de Usuario
ZZT
Site Admin
Site Admin
Mensajes: 10895
Registrado: Mar Nov 07, 2006 2:45 pm
Reputación: 8
Ubicación: La Florida-Santiago-Chile
Contactar:

Mensaje por ZZT »

WillySoft escribió:
parche escribió:Gracias por contestarme AsrcNet, pensé que era invisible! @(
Parche, para qué contestar una pregunta que se respondía sola, ¿ah?
::jua ::jua ::jua ::jua ::jua ::jua No se pk me acordé del Hombre Invisible ::jua ::jua ::jua::jua ::jua ::jua ::jua ::jua

Cuento aparte, que hay de crear caracteres con algún otro programa, yo usaba el create a font, el mismo que usé para redefinir los caracteres del programa controlador de luces (la imagen que uso como firma).
Responder