diff options
author | Juan J. Martinez <jjm@usebox.net> | 2021-05-03 08:21:10 +0100 |
---|---|---|
committer | Juan J. Martinez <jjm@usebox.net> | 2021-05-03 10:00:00 +0100 |
commit | c3b0fa04a663fe233765b83d3be41a42aa08c25d (patch) | |
tree | 0befda349001ef6ce306b39378f9c70ad917363e /lib/cpcrslib/cpc_PutSp.s | |
download | return-of-traxtor-cpc-main.tar.gz return-of-traxtor-cpc-main.zip |
Diffstat (limited to 'lib/cpcrslib/cpc_PutSp.s')
-rw-r--r-- | lib/cpcrslib/cpc_PutSp.s | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/lib/cpcrslib/cpc_PutSp.s b/lib/cpcrslib/cpc_PutSp.s new file mode 100644 index 0000000..0ddbf10 --- /dev/null +++ b/lib/cpcrslib/cpc_PutSp.s @@ -0,0 +1,54 @@ +.globl _cpc_PutSp + +_cpc_PutSp:: ; dibujar en pantalla el sprite + ; Entradas bc-> Alto Ancho + ; de-> origen + ; hl-> destino + ; Se alteran hl, bc, de, af + + LD IX,#2 + ADD IX,SP + LD E,0 (IX) + LD D,1 (IX) + LD A,3 (IX) + LD L,4 (IX) + LD H,5 (IX) + + LD (#ancho0+1),A ;actualizo rutina de captura + ;ld (anchot+1),a ;actualizo rutina de dibujo + SUB #1 + CPL + LD (#suma_siguiente_linea0+1),A ;COMPARTEN LOS 2 LOS MISMOS VALORES. + + LD A,2 (IX) + ;JP cpc_putsp0 + +pc_PutSp0: + .DB #0XFD + LD H,A ;ALTO, SE PUEDE TRABAJAR CON HX DIRECTAMENTE + LD B,#7 +ancho0: +loop_alto_2_pc_PutSp0: + LD C,#4 +loop_ancho_2_pc_PutSp0: + LD A,(DE) + LD (HL),A + INC DE + INC HL + DEC C + JP NZ,loop_ancho_2_pc_PutSp0 + .DB #0XFD + DEC H + RET Z + +suma_siguiente_linea0: +salto_linea_pc_PutSp0: + LD C,#0XFF ;&07F6 ;SALTO LINEA MENOS ANCHO + ADD HL,BC + JP nc,loop_alto_2_pc_PutSp0 ;sig_linea_2zz ;si no desborda va a la siguiente linea + LD BC,#0XC050 + + ADD HL,BC + LD B,#7 ;SÓLO SE DARÍA UNA DE CADA 8 VECES EN UN SPRITE + JP loop_alto_2_pc_PutSp0 + |