1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
/*
* Copyright (C) Samuel Thibault <samuel.thibault@ens-lyon.org>
*
* This program is free software ; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation ; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with the program ; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#define P(a,b,c,d,e,f,g,h) \
printf("%c", h*1+g*2+f*4+e*8+d*16+c*32+b*64+a*128)
#define _P(a) P(a)
#define P2(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p) \
P(a,b,c,d,e,f,g,h); \
P(i,j,k,l,m,n,o,p)
#define _P2(a) P2(a)
#define DO_SPC() \
P(0,0,0,0,0,0,0,0)
#define DO_SPC2() \
P2(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
#define _DO_DOTS(__x, __y) do { \
int x = (__x), y = __y;\
_P(DESSIN); \
} while(0)
#define _DO_DOTS1(__x,__y) do { \
int x = (__x), y = (__y); \
_P2(DESSIN1); \
} while(0)
#define _DO_DOTS2(__x,__y) do { \
int x = (__x), y = (__y); \
_P2(DESSIN2); \
} while(0)
#define DO_DOTS(n,m) \
_DO_DOTS( \
!!(i&(1<<(n-1))), \
!!(i&(1<<(m-1))) \
)
#define DO_DOTS1(n,m) \
_DO_DOTS1( \
!!(i&(1<<(n-1))), \
!!(i&(1<<(m-1))) \
)
#define DO_DOTS2(n,m) \
_DO_DOTS2( \
!!(i&(1<<(n-1))), \
!!(i&(1<<(m-1))) \
)
|