Se me olvidó revisionar lineas.asm

This commit is contained in:
antoniovillena 2016-07-08 18:09:47 +02:00
parent 832423579d
commit f617fed43b
2 changed files with 278 additions and 0 deletions

View File

@ -0,0 +1,57 @@
#include "lodepng.c"
#include <stdio.h>
#include <stdlib.h>
unsigned char *image, *pixel, output[0x300];
unsigned error, i, j, k, l, celda, fondo, tinta, outpos= 0;
FILE *fo;
int check(int value){
return value==0 || value==192 || value==255;
}
int tospec(int r, int g, int b){
return g>>7<<2 | r>>7<<1 | b>>7;
}
int main(int argc, char *argv[]){
error= lodepng_decode32_file(&image, &i, &j, "fuente6x8.png");
if( error )
printf("\nError %u: %s\n", error, lodepng_error_text(error)),
exit(-1);
if( i!= 96 || j!= 48 )
printf("\nError. Incorrect size, must be 96x48\n"),
exit(-1);
fo= fopen("fuente6x8.bin", "wb+");
if( !fo )
printf("\nCannot create output file\n"),
exit(-1);
for ( i= 0; i < 6; i++ )
for ( j= 0; j < 16; j++ ){
pixel= &image[((j|i<<7)*6)<<2];
fondo= tinta= tospec(pixel[0], pixel[1], pixel[2]);
for ( k= 0; k < 8; k++ ){
celda= 0;
for ( l= 0; l < 6; l++ ){
pixel= &image[((j|i<<7)*6 + k*96 + l)<<2];
if( !(check(pixel[0]) && check(pixel[1]) && check(pixel[2]))
|| ((char)pixel[0]*-1 | (char)pixel[1]*-1 | (char)pixel[2]*-1)==65 )
printf("\nThe pixel (%d, %d) has an incorrect color\n" , j*6+l, i*8+k),
exit(-1);
if( tinta != tospec(pixel[0], pixel[1], pixel[2]) )
if( fondo != tospec(pixel[0], pixel[1], pixel[2]) ){
if( tinta != fondo )
printf("\nThe pixel (%d, %d) has a third color in the cell\n", j*6+l, i*8+k),
exit(-1);
tinta= tospec(pixel[0], pixel[1], pixel[2]);
}
celda<<= 1;
celda|= fondo != tospec(pixel[0], pixel[1], pixel[2]);
}
output[outpos++]= celda<<2;
}
}
fwrite(output, outpos, 1, fo);
fclose(fo);
printf("\nDone\n");
free(image);
}

221
firmware/scroll/lineas.asm Normal file
View File

@ -0,0 +1,221 @@
macro linea src1, src2, src3, dst1, dst2, dst3
ld sp, $4005+$800*src1+$100*src3+$20*src2
pop hl
pop de
pop bc
pop af
exx
pop hl
pop de
pop bc
ld sp, $4013+$800*dst1+$100*dst3+$20*dst2
push bc
push de
push hl
exx
push af
push bc
push de
push hl
ld sp, $4013+$800*src1+$100*src3+$20*src2
pop hl
pop de
pop bc
pop af
ld sp, $401b+$800*dst1+$100*dst3+$20*dst2
push af
push bc
push de
push hl
endm
linea 0, 0, 1, 0, 0, 0
linea 0, 0, 2, 0, 0, 1
linea 0, 0, 3, 0, 0, 2
linea 0, 0, 4, 0, 0, 3
linea 0, 0, 5, 0, 0, 4
linea 0, 0, 6, 0, 0, 5
linea 0, 0, 7, 0, 0, 6
linea 0, 1, 0, 0, 0, 7
linea 0, 1, 1, 0, 1, 0
linea 0, 1, 2, 0, 1, 1
linea 0, 1, 3, 0, 1, 2
linea 0, 1, 4, 0, 1, 3
linea 0, 1, 5, 0, 1, 4
linea 0, 1, 6, 0, 1, 5
linea 0, 1, 7, 0, 1, 6
linea 0, 2, 0, 0, 1, 7
linea 0, 2, 1, 0, 2, 0
linea 0, 2, 2, 0, 2, 1
linea 0, 2, 3, 0, 2, 2
linea 0, 2, 4, 0, 2, 3
linea 0, 2, 5, 0, 2, 4
linea 0, 2, 6, 0, 2, 5
linea 0, 2, 7, 0, 2, 6
linea 0, 3, 0, 0, 2, 7
linea 0, 3, 1, 0, 3, 0
linea 0, 3, 2, 0, 3, 1
linea 0, 3, 3, 0, 3, 2
linea 0, 3, 4, 0, 3, 3
linea 0, 3, 5, 0, 3, 4
linea 0, 3, 6, 0, 3, 5
linea 0, 3, 7, 0, 3, 6
linea 0, 4, 0, 0, 3, 7
linea 0, 4, 1, 0, 4, 0
linea 0, 4, 2, 0, 4, 1
linea 0, 4, 3, 0, 4, 2
linea 0, 4, 4, 0, 4, 3
linea 0, 4, 5, 0, 4, 4
linea 0, 4, 6, 0, 4, 5
linea 0, 4, 7, 0, 4, 6
linea 0, 5, 0, 0, 4, 7
linea 0, 5, 1, 0, 5, 0
linea 0, 5, 2, 0, 5, 1
linea 0, 5, 3, 0, 5, 2
linea 0, 5, 4, 0, 5, 3
linea 0, 5, 5, 0, 5, 4
linea 0, 5, 6, 0, 5, 5
linea 0, 5, 7, 0, 5, 6
linea 0, 6, 0, 0, 5, 7
linea 0, 6, 1, 0, 6, 0
linea 0, 6, 2, 0, 6, 1
linea 0, 6, 3, 0, 6, 2
linea 0, 6, 4, 0, 6, 3
linea 0, 6, 5, 0, 6, 4
linea 0, 6, 6, 0, 6, 5
linea 0, 6, 7, 0, 6, 6
linea 0, 7, 0, 0, 6, 7
linea 0, 7, 1, 0, 7, 0
linea 0, 7, 2, 0, 7, 1
linea 0, 7, 3, 0, 7, 2
linea 0, 7, 4, 0, 7, 3
linea 0, 7, 5, 0, 7, 4
linea 0, 7, 6, 0, 7, 5
linea 0, 7, 7, 0, 7, 6
linea 1, 0, 0, 0, 7, 7
linea 1, 0, 1, 1, 0, 0
linea 1, 0, 2, 1, 0, 1
linea 1, 0, 3, 1, 0, 2
linea 1, 0, 4, 1, 0, 3
linea 1, 0, 5, 1, 0, 4
linea 1, 0, 6, 1, 0, 5
linea 1, 0, 7, 1, 0, 6
linea 1, 1, 0, 1, 0, 7
linea 1, 1, 1, 1, 1, 0
linea 1, 1, 2, 1, 1, 1
linea 1, 1, 3, 1, 1, 2
linea 1, 1, 4, 1, 1, 3
linea 1, 1, 5, 1, 1, 4
linea 1, 1, 6, 1, 1, 5
linea 1, 1, 7, 1, 1, 6
linea 1, 2, 0, 1, 1, 7
linea 1, 2, 1, 1, 2, 0
linea 1, 2, 2, 1, 2, 1
linea 1, 2, 3, 1, 2, 2
linea 1, 2, 4, 1, 2, 3
linea 1, 2, 5, 1, 2, 4
linea 1, 2, 6, 1, 2, 5
linea 1, 2, 7, 1, 2, 6
linea 1, 3, 0, 1, 2, 7
linea 1, 3, 1, 1, 3, 0
linea 1, 3, 2, 1, 3, 1
linea 1, 3, 3, 1, 3, 2
linea 1, 3, 4, 1, 3, 3
linea 1, 3, 5, 1, 3, 4
linea 1, 3, 6, 1, 3, 5
linea 1, 3, 7, 1, 3, 6
linea 1, 4, 0, 1, 3, 7
linea 1, 4, 1, 1, 4, 0
linea 1, 4, 2, 1, 4, 1
linea 1, 4, 3, 1, 4, 2
linea 1, 4, 4, 1, 4, 3
linea 1, 4, 5, 1, 4, 4
linea 1, 4, 6, 1, 4, 5
linea 1, 4, 7, 1, 4, 6
linea 1, 5, 0, 1, 4, 7
linea 1, 5, 1, 1, 5, 0
linea 1, 5, 2, 1, 5, 1
linea 1, 5, 3, 1, 5, 2
linea 1, 5, 4, 1, 5, 3
linea 1, 5, 5, 1, 5, 4
linea 1, 5, 6, 1, 5, 5
linea 1, 5, 7, 1, 5, 6
linea 1, 6, 0, 1, 5, 7
linea 1, 6, 1, 1, 6, 0
linea 1, 6, 2, 1, 6, 1
linea 1, 6, 3, 1, 6, 2
linea 1, 6, 4, 1, 6, 3
linea 1, 6, 5, 1, 6, 4
linea 1, 6, 6, 1, 6, 5
linea 1, 6, 7, 1, 6, 6
linea 1, 7, 0, 1, 6, 7
linea 1, 7, 1, 1, 7, 0
linea 1, 7, 2, 1, 7, 1
linea 1, 7, 3, 1, 7, 2
linea 1, 7, 4, 1, 7, 3
linea 1, 7, 5, 1, 7, 4
linea 1, 7, 6, 1, 7, 5
linea 1, 7, 7, 1, 7, 6
linea 2, 0, 0, 1, 7, 7
linea 2, 0, 1, 2, 0, 0
linea 2, 0, 2, 2, 0, 1
linea 2, 0, 3, 2, 0, 2
linea 2, 0, 4, 2, 0, 3
linea 2, 0, 5, 2, 0, 4
linea 2, 0, 6, 2, 0, 5
linea 2, 0, 7, 2, 0, 6
linea 2, 1, 0, 2, 0, 7
linea 2, 1, 1, 2, 1, 0
linea 2, 1, 2, 2, 1, 1
linea 2, 1, 3, 2, 1, 2
linea 2, 1, 4, 2, 1, 3
linea 2, 1, 5, 2, 1, 4
linea 2, 1, 6, 2, 1, 5
linea 2, 1, 7, 2, 1, 6
linea 2, 2, 0, 2, 1, 7
linea 2, 2, 1, 2, 2, 0
linea 2, 2, 2, 2, 2, 1
linea 2, 2, 3, 2, 2, 2
linea 2, 2, 4, 2, 2, 3
linea 2, 2, 5, 2, 2, 4
linea 2, 2, 6, 2, 2, 5
linea 2, 2, 7, 2, 2, 6
linea 2, 3, 0, 2, 2, 7
linea 2, 3, 1, 2, 3, 0
linea 2, 3, 2, 2, 3, 1
linea 2, 3, 3, 2, 3, 2
linea 2, 3, 4, 2, 3, 3
linea 2, 3, 5, 2, 3, 4
linea 2, 3, 6, 2, 3, 5
linea 2, 3, 7, 2, 3, 6
linea 2, 4, 0, 2, 3, 7
linea 2, 4, 1, 2, 4, 0
linea 2, 4, 2, 2, 4, 1
linea 2, 4, 3, 2, 4, 2
linea 2, 4, 4, 2, 4, 3
linea 2, 4, 5, 2, 4, 4
linea 2, 4, 6, 2, 4, 5
linea 2, 4, 7, 2, 4, 6
linea 2, 5, 0, 2, 4, 7
linea 2, 5, 1, 2, 5, 0
linea 2, 5, 2, 2, 5, 1
linea 2, 5, 3, 2, 5, 2
linea 2, 5, 4, 2, 5, 3
linea 2, 5, 5, 2, 5, 4
linea 2, 5, 6, 2, 5, 5
linea 2, 5, 7, 2, 5, 6
linea 2, 6, 0, 2, 5, 7
linea 2, 6, 1, 2, 6, 0
linea 2, 6, 2, 2, 6, 1
linea 2, 6, 3, 2, 6, 2
linea 2, 6, 4, 2, 6, 3
linea 2, 6, 5, 2, 6, 4
linea 2, 6, 6, 2, 6, 5
linea 2, 6, 7, 2, 6, 6
linea 2, 7, 0, 2, 6, 7
linea 2, 7, 1, 2, 7, 0
linea 2, 7, 2, 2, 7, 1
linea 2, 7, 3, 2, 7, 2
linea 2, 7, 4, 2, 7, 3
linea 2, 7, 5, 2, 7, 4
linea 2, 7, 6, 2, 7, 5
linea 2, 7, 7, 2, 7, 6