CURSO DE ASSEMBLER

ATARI Lo que nos ha unido en el tiempo. XL XE ST 2600 7800 Jaguar Lynx.

CURSO DE ASSEMBLER

Notapor admin el Vie Nov 10, 2006 7:57 pm

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

http://www.retrogames.cl/clases.html
Avatar de Usuario
admin
Site Admin
Site Admin
 
Mensajes: 33
Registrado: Mar Nov 07, 2006 5:44 pm
Ubicación: CACHILLULLO

Notapor Sunny el Vie Nov 10, 2006 8:24 pm

Seria posible que alguien ponga un Link con una buena pagina de Curso Ataribasic?
Avatar de Usuario
Sunny
hard player
hard player
 
Mensajes: 356
Registrado: Mar Nov 07, 2006 6:29 pm
Ubicación: En cualquier fecha entre 1983 y 1988

Notapor parche el Sab Nov 11, 2006 7:10 pm

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
parche
expert
expert
 
Mensajes: 1681
Registrado: Mar Nov 07, 2006 5:50 pm

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

Notapor WillySoft el Jue Sep 20, 2007 6:48 pm

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!
Avatar de Usuario
WillySoft
expert
expert
 
Mensajes: 647
Registrado: Mié Nov 08, 2006 1:02 am

Notapor miltonshows el Jue Sep 20, 2007 7:03 pm

Que gusto que vuelvas con aportes de este tipo nos ayudan N :-D :-D
miltonshows
 

Notapor WillySoft el Jue Sep 20, 2007 9:37 pm

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
WillySoft
expert
expert
 
Mensajes: 647
Registrado: Mié Nov 08, 2006 1:02 am

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

Notapor parche el Jue Sep 20, 2007 11:53 pm

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
parche
expert
expert
 
Mensajes: 1681
Registrado: Mar Nov 07, 2006 5:50 pm

Notapor AsCrNet el Mié Oct 17, 2007 1:49 am

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
AsCrNet
expert
expert
 
Mensajes: 500
Registrado: Mar Nov 07, 2006 5:45 pm
Ubicación: PHO

Notapor WillySoft el Mié Oct 17, 2007 12:13 pm

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
WillySoft
expert
expert
 
Mensajes: 647
Registrado: Mié Nov 08, 2006 1:02 am

Notapor AsCrNet el Mié Oct 17, 2007 1:17 pm

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
AsCrNet
expert
expert
 
Mensajes: 500
Registrado: Mar Nov 07, 2006 5:45 pm
Ubicación: PHO

Notapor WillySoft el Mié Oct 17, 2007 1:23 pm

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
WillySoft
expert
expert
 
Mensajes: 647
Registrado: Mié Nov 08, 2006 1:02 am

Notapor AsCrNet el Mié Oct 17, 2007 3:28 pm

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 :-°
Avatar de Usuario
AsCrNet
expert
expert
 
Mensajes: 500
Registrado: Mar Nov 07, 2006 5:45 pm
Ubicación: PHO

Notapor Tidus el Mié Oct 17, 2007 5:04 pm

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

:-D :-D :-D :-D
Tidus
expert
expert
 
Mensajes: 844
Registrado: Mar Nov 07, 2006 6:17 pm
Ubicación: Media cuadra metro lo Vial

Notapor WillySoft el Mié Oct 17, 2007 6:04 pm

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: 647
Registrado: Mié Nov 08, 2006 1:02 am

Notapor WillySoft el Mié Oct 17, 2007 6:06 pm

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?
Avatar de Usuario
WillySoft
expert
expert
 
Mensajes: 647
Registrado: Mié Nov 08, 2006 1:02 am

Siguiente

Volver a COMPUTADORES Y CONSOLAS

¿Quién está conectado?

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