CURSO DE ASSEMBLER

ATARI Lo que nos ha unido en el tiempo. XL XE ST 2600 7800 Jaguar Lynx.
Avatar de Usuario
admin
Site Admin
Site Admin
Mensajes: 33
Registrado: Mar Nov 07, 2006 2:44 pm
Reputación: 2
Ubicación: CACHILLULLO

CURSO DE ASSEMBLER

Mensaje por admin »

Cualquier duda, sugerencia o problema relacionado con el CURSO DE ASEMBLER.

http://www.retrogames.cl/clases.html
Avatar de Usuario
Sunny
hard player
hard player
Mensajes: 349
Registrado: Mar Nov 07, 2006 3:29 pm
Reputación: 0
Ubicación: En cualquier fecha entre 1983 y 1988

Mensaje por Sunny »

Seria posible que alguien ponga un Link con una buena pagina de Curso Ataribasic?
Avatar de Usuario
parche
expert
expert
Mensajes: 1639
Registrado: Mar Nov 07, 2006 2:50 pm
Reputación: 0
Contactar:

Mensaje por parche »

Yo recuerdo haber escaneado un curso re bueno. Vamos a ver si encuentro donde dejarlo ya que pal foro sería muy pesado. Como 100 Mb :(
Avatar de Usuario
WillySoft
expert
expert
Mensajes: 657
Registrado: Mar Nov 07, 2006 10:02 pm
Reputación: 2

Curso de Assembler Atari 8-bits: capítulo 8.

Mensaje por WillySoft »

Estimados,

Después de mucho tiempo fuera de las canchas, anuncio la publicación de un nuevo capítulo del curso de assembler del atari 8-bits (más vale tarde que nunca). Adjunto el link:

http://www.retrogames.cl/cap8.html

Agradeceré sus críticas y comentarios al respecto. Espero les guste. ¡Saludos!
miltonshows

Mensaje por miltonshows »

Que gusto que vuelvas con aportes de este tipo nos ayudan N :-D :-D
Avatar de Usuario
WillySoft
expert
expert
Mensajes: 657
Registrado: Mar Nov 07, 2006 10:02 pm
Reputación: 2

Mensaje por WillySoft »

Bueno, la idea es que a alguno le den ganas de programar algún jueguito para el 8-bits. Total, es cosa de ponerle el empeño.
Avatar de Usuario
parche
expert
expert
Mensajes: 1639
Registrado: Mar Nov 07, 2006 2:50 pm
Reputación: 0
Contactar:

Re: Curso de Assembler Atari 8-bits: capítulo 8.

Mensaje por parche »

WillySoft escribió:Estimados,

Después de mucho tiempo fuera de las canchas, anuncio la publicación de un nuevo capítulo del curso de assembler del atari 8-bits (más vale tarde que nunca). Adjunto el link:

http://www.retrogames.cl/cap8.html

Agradeceré sus críticas y comentarios al respecto. Espero les guste. ¡Saludos!
8B*

Vamos a tener una versión nueva de AscrNet Soft :-D

Taba weno ya que te soltaran en la pega ]-)
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 »

esta buena la animación pero quede mariado con los cuadritos ::bur

tio willy, lo que no entendi donde o como pones las coordenadas x,y en la pantalla , algo asi como position en basic :P

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

Mensaje por WillySoft »

AsCrNet escribió:esta buena la animación pero quede mariado con los cuadritos ::bur

tio willy, lo que no entendi donde o como pones las coordenadas x,y en la pantalla , algo asi como position en basic :P

saludos
Si te fijas, la rutina no posiciona caracteres en la pantalla, eso se ve en el capítulo 9. Lo que hace acá es modificar el diseño del caracter "espacio", por una sucesión de cuadros, según la tabla de font.

Ahora, respecto a tu pregunta, lo que se hace es ubicar en la memoria dónde está el primer caracter de la pantalla (supongamos que la posición está almacenada en la variable "pantalla"). Luego, como cada línea es de 40 caracteres, se puede utilizar la fórmula:

pantalla + 40*y + x

Saludos.
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 »

aaa hay esta el truco XD entonces poner algo en coordenadas seria la etiqueta vbd.coloca.caracter :-D

ahora tengo dos dudas mas :8-

1. como hago un peek en asm ?@
2. y por ultimo como cambio la DL , por ejemplo un gr.2 para presentar algo y despues un gr. 12 para el games ?@

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

Mensaje por WillySoft »

AsCrNet escribió:aaa hay esta el truco XD entonces poner algo en coordenadas seria la etiqueta vbd.coloca.caracter :-D

ahora tengo dos dudas mas :8-

1. como hago un peek en asm ?@
2. y por ultimo como cambio la DL , por ejemplo un gr.2 para presentar algo y despues un gr. 12 para el games ?@

saludos
1. Capítulo 4.
2. El listado del capítulo nueve crea una DL. Puedes utilizar distintos valores para obtener diferentes gráficos.
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 »

aaaaa ahora entendi

LDA 88 -----> seria 64

STA 88
LDA #65 <---- seria 65

mmm, no me explique bien :8- no es cambiar el DL , si no definir otra pantalla mas.
en basic seria :

Código: Seleccionar todo

10 GRAPHICS 2
20 ? #6;"OA"
30 IF PEEK(53279)<>6 THEN GOTO 30
40 GRAPHICS 1
50 ? #6;"XAU"
60 IF PEEK(53279)<>6 THEN GOTO 60
70 GOTO 10
hay sip :-°
Tidus
expert
expert
Mensajes: 778
Registrado: Mar Nov 07, 2006 3:17 pm
Reputación: 0
Ubicación: Media cuadra metro lo Vial

Mensaje por Tidus »

Sugiero que el codigo "assembler" que se escriba sea hecho como "codigo" y no como html. Se veria mejor ...

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

Mensaje por WillySoft »

Bueno, voy a hacer un ejemplo más práctico. Acá hay un modo gráfico diferente del ejemplo del capítulo 9:

Código: Seleccionar todo

	.opt no list
contador = 4
num.estados = 40
pt.1=$CB
random=$d20a
columnas=40
filas =24
	
	*=$6000
inicio
	lda #<dl
	sta $230
	lda #>dl
	sta $231
	ldy #<vbd
	ldx #>vbd
	lda #7
	jsr $e45c
loop
	jmp loop

dl
	.byte $70,$70,$70
	.byte $46
	.word PANTALLA
	.byte 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6
	.byte $41
	.word dl

PANTALLA
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "
	.sbyte "                                        "

tabla.caracteres
	.sbyte "1234567890ABCDEFGHIJ1234567890ABCDEFGHIJ"
tabla.posx
	.byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
tabla.posy
	.byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
tabla.sentidos
	.byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
tabla.estados
	.byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

vbd.contador
	.byte contador
vbd
	dec vbd.contador
	beq vbd.no.fin
	jmp vbd.fin
vbd.no.fin
	lda #contador
	sta vbd.contador
	ldx #$00	;Primer estado
vbd.loop.estados
	lda tabla.estados,x
	bne vbd.modifica.estado
	lda random
	bpl vbd.no.siguiente.estado
	jmp vbd.siguiente.estado
vbd.no.siguiente.estado
	lda #$01
	sta tabla.estados,x
	lda random
	and #$01
	beq vbd.estado.izquierda
	lda #columnas-1
vbd.estado.izquierda
	sta tabla.posx,x
	sta tabla.sentidos,x

vbd.elige.y
	lda random
	cmp #4
	bmi vbd.elige.y
	cmp #filas-2
	bcs vbd.elige.y

	jmp vbd.fin.elige.y

	ldy #num.estados
vbd.loop.elige.y
	cmp tabla.posy-1,y
	beq vbd.elige.y
	dey
	bne vbd.loop.elige.y

vbd.fin.elige.y
	sta tabla.posy,x
vbd.modifica.estado
	jsr vbd.borra.caracter
	lda tabla.sentidos,x
	beq vbd.derecha
vbd.izquierda
	lda tabla.posx,x
	bne vbd.izquierda.no.termina
	lda #$0
	sta tabla.sentidos,x
	sta tabla.posy,x
	sta tabla.posx,x
	sta tabla.estados,x
	jmp vbd.siguiente.estado
vbd.izquierda.no.termina
	dec tabla.posx,x
	jmp vbd.coloca.caracter
vbd.derecha
	lda tabla.posx,x
	cmp #columnas-1
	bne vbd.derecha.no.termina
	lda #$0
	sta tabla.sentidos,x
	sta tabla.posy,x
	sta tabla.posx,x
	sta tabla.estados,x
	jmp vbd.siguiente.estado
vbd.derecha.no.termina
	inc tabla.posx,x
vbd.coloca.caracter
	lda #<PANTALLA
	sta pt.1
	lda #>PANTALLA
	sta pt.1+1
	lda tabla.posy,x
	beq vbd.loop.posy.fin
	tay
vbd.loop.posy
	lda pt.1
	clc
	adc #columnas
	sta pt.1
	lda pt.1+1
	adc #0
	sta pt.1+1
	dey
	bne vbd.loop.posy
vbd.loop.posy.fin
	lda tabla.posx,x
	tay
	lda tabla.caracteres,x
	sta (pt.1),y

vbd.siguiente.estado
	inx
	cpx #num.estados
	beq vbd.fin
	jmp vbd.loop.estados
vbd.fin
	jmp $e462

vbd.borra.caracter
	lda #<PANTALLA
	sta pt.1
	lda #>PANTALLA
	sta pt.1+1
	lda tabla.posy,x
	beq vbd.borra.caracter.loop.posy.fin
	tay
vbd.borra.caracter.loop.posy
	lda pt.1
	clc
	adc #columnas
	sta pt.1
	lda pt.1+1
	adc #0
	sta pt.1+1
	dey
	bne vbd.borra.caracter.loop.posy
vbd.borra.caracter.loop.posy.fin
	lda tabla.posx,x
	tay
	lda #$00
	sta (pt.1),y
	rts

	*=$2e0
	.word inicio
	.opt list
¿Captas cuál fue la diferencia?
Avatar de Usuario
WillySoft
expert
expert
Mensajes: 657
Registrado: Mar Nov 07, 2006 10:02 pm
Reputación: 2

Mensaje por WillySoft »

Tidus escribió:Sugiero que el codigo "assembler" que se escriba sea hecho como "codigo" y no como html. Se veria mejor ...

:-D :-D :-D :-D
Buen punto. En mi texto original (archivo Word), el código lo tengo con un font diferente.

¿Es posible implementar esto, ZZT?
Responder