1
Ensamblador / Re:Rutinas de ensamblador con Laddh
« Último mensaje por Laddh en Hoy a las 22:07:15 »Siempre he utilizado el CBM Prg Studio, es cómodo, y tienes a mano los editores de sprites y caracteres.
La copa Emlyn Hughes se jugará en directo desde Arcandreu.
Sorteo,partidos y entrega de copa en directo.Será genial!!!
Competiremos con el mítico Biennodore 64.
Siento que este año no será on-line.
https://www.youtube.com/watch?v=lJYOnsrI1Z4
; 10 SYS (2064) línea para que autoarranque el programa
*=$0801
BYTE $0E, $08, $0A, $00, $9E, $20, $28, $32, $30, $36, $34, $29, $00, $00, $00
*=$0810 ;inicio del programa
v = $d000 ;variable que apunta al chip VIC, el que gestiona todo lo gráfico
jsr sprites ;llamamos a la rutina para presentar el sprite en pantalla
loop jsr raster_wait ;sin esto no veríamos nada, el código máquina es raaaaaapido
jsr PlayerControl ;la rutina para controlar el joystick
jmp loop ;vuelve al bucle principal
PlayerControl
LDA $DC00 ;LEEMOS JOY
AND #31 ;LA CUATRO DIRECCIONES ARRIBA ABAJO IZQ DER
CMP #30 ;MAS DIAGONALES Y FUEGO
BEQ ARR
CMP #29
BEQ ABJ
CMP #27
BEQ IZQ
CMP #23
BEQ DER
cmp #22
beq derar
cmp #21
beq derab
CMP #25
BEQ IZQab
CMP #26
BEQ IZQar
cmp #15
beq fuego
rts
arr dec v+1 ;coordenada vertical del sprite 0
rts
abj inc v+1
rts
izq dec v ;coordenada horizontal del sprite 0
rts
der inc v
rts
derar inc v
dec v+1
rts
derab inc v
inc v+1
rts
izqab dec v
inc v+1
rts
izqar dec v
dec v+1
rts
fuego inc $d020 ;cambia color del borde pantalla
rts
raster_wait ;espera línea raster 255, el raster pasa 50 veces por segundo
l LDA #$ff ;en pantalla
CMP $D012
BNE l
BIT $d011
BMI l
rts
sprites lda #1
sta v+21 ;activamos sprite 0
sta v+28 ;activamos modo multicolor del sprite 0
lda #192 ;puntero para indicar donde estan los datos del sprite, 192*64=12288
sta 2040
lda #1 ;color blanco a sprite 0
sta v+39
lda #14 ;color multicolor 1, para todos los sprites
sta v+37
lda #2 ;color multicolor 2, para todos los sprites
sta v+38
lda #100 ;coordenadas x,y del sprite 0
sta v
sta v+1
rts
*=12288 ; la forma del sprite
byte 9,86,0
byte 37,86,0
byte 149,86,0
byte 85,86,0
byte 85,170,170
byte 86,37,86
byte 86,37,86
byte 86,37,86
byte 86,37,90
byte 86,42,168
byte 86,42,168
byte 86,47,250
byte 86,47,254
byte 86,47,254
byte 86,47,254
byte 86,42,170
byte 85,170,0
byte 85,86,0
byte 149,86,0
byte 37,86,0
byte 9,86,0