ورود

View Full Version : سورس فارسی ساز تحت داس



mzjahromi
پنج شنبه 18 اسفند 1384, 15:29 عصر
شاید این روزا دیگه کسی به این چیزا نیاز نداشته باشه ولی اینو می ذارم اینجا شاید بدرد بعضی از دوستان بخوره


#include<dos.h>
void persian(void);
void resetcrst(void);
void main(int argc,char** argv)
{
if(argc!=2)
persian();
else if(argv[1][0]=='0')
resetcrst();
else if(argv[1][0]=='1')
persian();
}
void resetcrst(void)
{
union REGS r;
r.h.ah=0x11; /*for return english form*/
r.h.al=0x14;
r.h.bl=0;
int86(0x10,&r,&r);
}
void persian(void)
{
struct REGPACK t;
static unsigned char a[10][16]={
{0X0,0X0,0X0,0X0,0X0,0,0X18,0X24,0X24,0X18,0,0X0,0 X0,0X0,0X0,0X0}, //0
{0,0,0,0X40,0XE0,0XE0,0X70,0X30,0X30,0X10,0X10,0X1 0,0X0,0X0,0X0,0X0}, //1
{0,0,0,0X44,0XFC,0XF8,0X60,0X30,0X30,0X10,0X10,0X1 0,0X0,0X0,0X0,0X0},//2
{0,0,0,0X49,0XFF,0XF6,0X60,0X30,0X30,0X10,0X10,0X1 0,0X0,0X0,0X0,0X0},//3
{0,0,0,0X4E,0XF0,0XFE,0X7C,0X30,0X30,0X10,0X10,0X1 0,0X0,0X0,0X0,0X0},//4
{0,0,0,0X30,0X38,0X2C,0X44,0X42,0X82,0X92,0XFE,0X6 C,0X0,0X0,0X0}, //5
{0,0,0,0X40,0X7C,0X3C,0X04,0X04,0X04,0X06,0X07,0X0 3,0X0,0X0,0X0}, //6
{0,0,0,0X41,0X63,0X63,0X36,0X14,0X14,0X08,0X08,0X0 8,0X0,0X0,0X0}, //7
{0,0,0,0X08,0X08,0X08,0X14,0X14,0X36,0X63,0X63,0X4 1,0X0,0X0,0X0}, //8
{0,0,0,0X70,0XF8,0X88,0XF8,0X78,0X08,0X0C,0X0E,0X0 6,0X0,0X0,0X0} //9
};
t.r_ax=0x1110;
t.r_bx=0x1000;
t.r_cx=10;
t.r_dx=0x0080;
t.r_es=FP_SEG(a);
t.r_bp=FP_OFF(a);
intr(0x10,&t);

t.r_ax=0x1110;
t.r_bx=0x1000;
t.r_cx=10;
t.r_dx=0x0030;
t.r_es=FP_SEG(a);
t.r_bp=FP_OFF(a);
intr(0x10,&t);

static unsigned char b[38][16]={
{0,0,0X0,0X0,0x0,0,0,0x0,0x0,0xff,0,0x0,0,0,0,0}, //‹
{0X1E,0X21,0X21,0X20,0X10,0X08,0X04,0X04,0X04,0X0, 0X04,0X0,0X0,0X0,0}, // Œ
{0x02,0x3c,0x40,0x00,0x10,0x10,0x10,0x10,0x10,0x10 ,0x10,0,0,0,0,0}, // چ
{0,0,0X0C,0X10,0x3C,0,0,0x01,0x01,0xfe,0,0x0,0,0,0 ,0}, //ژ
{0x0,0,0x0,0X06,0X09,0X08,0X06,0x08,0X02,0X04,0x0, 0x00}, //ڈ
{0,0,0x18,0x1c,0x10,0x10,0x10,0x10,0x10,0x10,0x10, 0,0,0,0,0}, // گ
{0,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0, 0,0,0,0}, // ‘
{0,0,0,0,0,0,0x40,0x81,0x81,0x7e,0,0x10,0,0,0,0}, // ’
{0,0,0,0,0,0,0,0x01,0x01,0xfe,0,0x10,0,0,0,0}, // “
{0,0,0,0,0,0,0x40,0x81,0x81,0x7e,0,0x14,0x08,0,0,0 }, // ”
{0,0,0,0,0,0,0,0x01,0x01,0xfe,0,0x14,0x8,0,0,0}, // •
{0,0,0,0,0,0x0a,0x40,0x81,0x81,0x7e,0,0,0,0,0,0}, // –
{0,0,0,0,0,0x0a,0,0x01,0x01,0xfe,0,0,0,0,0,0}, // —
{0,0,0,0,04,0x0a,0x40,0x81,0x81,0x7e,0,0,0,0,0,0}, // ک
{0,0,0,0,04,0x0a,0,0x01,0x01,0xfe,0,0,0,0,0,0}, // ™
{0,0,0,0,0,0,8,0X14,0X02,0X3F,0X40,0X88,0X80,0X42, 0X3C,0}, // ڑ
{0,0,0,0,0,0,8,0X14,0X02,0XFF,0X0,0X08,0,0,0,0}, // ›
{0,0,0,0,0,0,8,0X14,0X02,0X3F,0X40,0X94,0X88,0X42, 0X3C,0}, // œ
{0,0,0,0,0,0,8,0X14,0X02,0XFF,0X00,0X14,0X08,0X00, 0X00,0}, // ‌
{0,0,0,0,0,0,8,0X14,0X02,0X3F,0X40,0X80,0X80,0X42, 0X3C,0}, // ‍
{0,0,0,0,0,0,8,0X14,0X02,0XFF,0X0,00,0,0,0,0}, // ں
{0,0,0,0,8,0,8,0X14,0X02,0X3F,0X40,0X80,0X80,0X42, 0X3C,0}, // *
{0,0,0,0,8,0,8,0X14,0X02,0XFF,0,0,0,0,0,0}, // ،
{0,0,0,0,0,0X08,0X04,0X02,0X21,0X3F,0,0X00,0X00,0, 0,0}, // ¢
{0,0,0,0x08,0,0X08,0X04,0X02,0X21,0X3F,0,0X00,0X00 ,0,0,0}, // £
{0,0,0,0,0,0x0,0,0X0,0X01,0X01,0X01,0X02,0X24,0X18 ,0}, // ¤
{0,0,0,0,0,0x0,0X01,0X00,0X01,0X01,0X01,0X02,0X24, 0X18,0}, // ¥
{0,0,0,0,0,0x02,0X05,0X00,0X01,0X01,0X01,0X02,0X24 ,0X18,0}, // ¦
{0x0,0X0,0X0,0X0,0X0,0x0,0X0,0X15,0X15,0X4A,0X88,0 x84,0X84,0X78,0x0,0X0},// §
{0x0,0X0,0X0,0X0,0X0,0x0,0X0,0X15,0X15,0XEA,0X0,0x 0,0X0,0X0,0x0,0X0}, // ¨
{0,0x0,0X0,0X0,0X04,0X0A,0X0,0X15,0X15,0X4A,0X88,0 x84,0X84,0X78,0x0,0X0},// ©
{0x0,0X0,0X0,0X0,0X04,0x0A,0X0,0X15,0X15,0XEA,0X0, 0x0,0X0,0X0,0x0,0X0}, // ھ
{0,0,0,0,0,0,0X06,0X29,0X31,0X9E,0X90,0x88,0X88,0X 70}, // «
{0,0,0,0,0,0,0X06,0X29,0X31,0XFE,0X0,0x0,0X0,0}, // ¬
{0,0,0,0X08,0,0,0X06,0X29,0X31,0X9E,0X90,0x88,0X88 ,0X70}, // *
{0,0,0,0X08,0,0,0X06,0X29,0X31,0XFE,0X0,0x0,0X0,0} , // ®
{0,0,0X20,0X20,0X20,0X20,0X26,0X29,0X31,0XFE,0X0,0 x0,0X0,0} // ¯
};
t.r_ax=0x1110;
t.r_bx=0x1000;
t.r_cx=38;
t.r_dx=139;
t.r_es=FP_SEG(b);
t.r_bp=FP_OFF(b);
intr(0x10,&t);

static unsigned char c[31][16]={
{0,0,0X20,0X24,0X20,0X20,0X26,0X29,0X31,0XFE,0X0,0 x0,0X0,0}, // à
{0,0,0,0,0,0X0E,0X10,0X10,0X08,0X3e,0X40,0X80,0X80 ,0X42,0X3C,0}, // ل
{0,0,0,0,0,0X0E,0X11,0X0A,0X0C,0X33,0X40,0X80,0X80 ,0X42,0X3C,0}, // â
{0,0,0,0,0,0X0E,0X11,0X0A,0X0C,0XF3,0X0,0X0,0X0,0X 0,0X0,0}, // م
{0,0,0,0,0,0X0E,0X10,0X10,0X08,0XFe,0X0,0X0,0X0,0X 0,0X0,0}, // ن
{0,0,0X08,0,0,0X0E,0X10,0X10,0X08,0X3e,0X40,0X80,0 X80,0X42,0X3C,0}, // ه
{0,0,0,0X04,0,0X0E,0X11,0X0A,0X0C,0X33,0X40,0X80,0 X80,0X42,0X3C,0}, // و
{0,0,0,0X04,0,0X0E,0X11,0X0A,0X0C,0XF3,0X0,0X0,0X0 ,0X0,0X0,0}, // ç
{0,0,0X08,0,0,0X0E,0X10,0X10,0X08,0XFe,0X0,0X0,0X0 ,0X0,0X0,0}, // è
{0X0,0X0,0X0,0X04,0X0,0,0X06,0X09,0X09,0X47,0X81,0 X7E,0X0,0X0,0X0,0}, // é
{0X0,0X0,0X0,0X04,0X0,0,0X06,0X09,0X09,0X0FE,0,0X0 ,0X0,0X0,0X0,0X0}, //ê
{0X0,0X0,0X0,0X0A,0X0,0,0X06,0X09,0X09,0X47,0X81,0 X81,0X82,0X44,0X38,0}, //ë
{0X0,0X0,0X0,0X0A,0X0,0,0X06,0X09,0X09,0X0FE,0,0X0 ,0X0,0X0,0X0,0X0}, //ى
{0,0,0X03,0X04,0X08,0X08,0X06,0X41,0X81,0X7E,0X0,0 X0,0X0,0X0,0X00,0X0}, // ی
{0,0,0X03,0X04,0X08,0X08,0X06,0X01,0X01,0XFE,0X0,0 X0,0X0,0X0,0X00,0X0}, // î
{0,0X08,0X13,0X04,0X08,0X08,0X06,0X41,0X81,0X7E,0X 0,0X0,0X0,0X0,0X00,0X0}, //ï
{0,0X08,0X13,0X04,0X08,0X08,0X06,0X01,0X01,0XFE,0X 0,0X0,0X0,0X0,0X00,0X0},//ً
{0X0,0X01,0X01,0X01,0X01,0X01,0X01,0X01,0X01,0X81, 0X81,0X82,0X44,0X38,0},//ٌ
{0X0,0X21,0X21,0X21,0X21,0X21,0X11,0X9,0X05,0X3E,0 X0,0X0,0X0,0X0,0}, //ٍ
{0X0,0X01,0X01,0X01,0X01,0X01,0X01,0X01,0X01,0XFE, 0X0,0X0,0X0,0X0,0}, //َ
{0,0,0,0,0,0,0X0E,0X11,0X71,0X8E,0X80,0X80,0X40,0X 40,0X20,0X20}, //ô
{0,0,0,0,0,0,0X0E,0X11,0X31,0XCE,0X0,0X0,0X0,0X0,0 X0,0X0}, //ُ
{0X0,0X0,0X0,0X0,0X0,0,0X0,0X0,0X08,0X41,0X81,0X81 ,0X82,0X44,0X38,0}, //ِ
{0,0,0,0,0,0X08,0,0x01,0x01,0xfe,0,0x0,0,0,0,0}, // ÷
{0,0,0,0,0,0x0,0,0X06,0X09,0X09,0X07,0X02,0X24,0X1 8,0}, // ّ
{0,0,0,0,0X00,0X0C,0X12,0X11,0X11,0X0E,0X0,0X0,0X0 ,0X0,0}, //ù
{0,0,0,0,0,0X0E,0X11,0X16,0X18,0XF3,0X24,0X12,0X0C ,0X00,0X0}, //ْ
{0X0,0X0,0X0,0X0,0X10,0X18,0X2C,0X4A,0X52,0XBC,0X0 ,0X0,0X0,0X0,0X0,0}, //û
{0,0,0,0,0,0,0X0,0X0,0X0,0X07,0X48,0X88,0X86,0X81, 0X81,0X7E}, //ü
{0,0,0,0,0,0,0X0,0X0,0X0,0X07,0X48,0X88,0X86,0X81, 0X81,0X7E}, //‎
{0,0,0,0,0,0,0,0x01,0x01,0xfe,0,0x14,0,0,0,0} // ‏
};
t.r_ax=0x1110;
t.r_bx=0x1000;
t.r_cx=31;
t.r_dx=224;
t.r_es=FP_SEG(c);
t.r_bp=FP_OFF(c);
intr(0x10,&t);
}

d_shahhoseini
پنج شنبه 28 اردیبهشت 1385, 05:18 صبح
آقای محمد ذوالقدر متشکر

mzjahromi
پنج شنبه 28 اردیبهشت 1385, 17:47 عصر
آقای محمد ذوالقدر متشکر
موفق باشید

لطفاً برنامه پیانو
بابا بی خیال
اونکه دیگه چیزی نیست.
البته بستگی به این داره که تو چه سطحی بخواهید.
اون موقع ها یه دونه نوشتم ولی خیلی ابتدائیه و توی PCSpeaker هم صدا پخش میکنه
اگه کارت رو راه می اندازه بفرستم

parsidev
شنبه 06 خرداد 1385, 02:48 صبح
بسیار بسیار ممنون!

rasep1983
پنج شنبه 18 خرداد 1385, 09:10 صبح
حقیقتا جای تشکر داشت .....ما هم ممنون

کامبیز رزم پور
دوشنبه 06 شهریور 1385, 15:04 عصر
مرسی از ای
--------------------
مرسی از برنامه ای که نوشتی

dkhatibi
سه شنبه 12 دی 1385, 14:25 عصر
یک توضیح در مورد چگونگی به وجود اومدن حروف می فرمایید

alireza643
سه شنبه 12 دی 1385, 16:02 عصر
راست میگن اگر راجع به برنامه و کار کردش برای ما تازه کارها هم یه توضیحی بدید خیلی خوبه

mzjahromi
سه شنبه 12 دی 1385, 18:00 عصر
خیلی ساده است
ببینید
هر ردیف مربوط به یک حرف است
{0X0,0X0,0X0,0X0,0X0,0,0X18,0X24,0X24,0X18,0,0X0,0 X0,0X0,0X0,0X0}, //0
فرض کنید هر حرف از یک ماتریس مربعی تشکیل شده. هر بیت نمایانگر یک پیکسل روشن یا خاموش هست.
هر عدد(0x##) شامل تعدادی بیت است که یک ردیف از این ماتریس را تشکیل می دهد و سایر اعداد ردیفهای دیگر این ماتریس را تشکیل میدهند.
امیدوارم توضیح در حدی بوده باشه که بتونید کد رو اونطوری که میخواهید تغییر دهید

saeid99
دوشنبه 04 آذر 1387, 17:42 عصر
سلام دوست گرامي
اين كدها رو چطور بايد استفاده كرد؟
من اگه بخوام يه رشته رو بطور فارسي به عنوان ورودي از كاربر بگيرم بازم جواب ميده؟
اگه جواب ميده ممنون ميشم يه مثال خيلي خيلي ساده بزنيد؟؟
ممنونم

saeid99
یک شنبه 10 آذر 1387, 16:52 عصر
'كسي جواب مارو نميده؟!