#include "conio.h"
#include "dos.h"
#include "string.h"
#include "stdlib.h"
#include "screen.cpp"
#define KEY_INT 0x16
#define KEY_BACKSPACE 0x08
#define KEY_RETURN 0x0d
#define KEY_TAB 0x09
#define KEY_SPACE 0x20
#define NULL 0x00
#define TRUE 1
UCHAR *getString(Screen *scr, UCHAR *str, UCHAR max);
UCHAR *getPwdString(Screen *scr, UCHAR *pwd, UCHAR max);
int main(void)
{
Screen *layar = new Screen();
UCHAR *nama, nama2[21], *sandi=0, *login, login2[21];
UCHAR i, re;
unsigned short int cocok;
awal:
layar->cls();
layar->setMode(0x03);
layar->setCursorPos(5,9);
layar->writeString("username : ");
layar->setCursorPos(5,21);
nama = getString(layar, nama2, 20);
layar->setCursorPos(6,9);
layar->writeString("password : ");
layar->setCursorPos(6,21);
strcpy(sandi, "13101277");
login = getPwdString(layar, login2, 20);
cocok = strcmp(sandi, login);
if (cocok == 0)
{
for (i=9; i<=29; i++)
{
layar->setCursorPos( 8,i);layar->writeChar(0xc4);
layar->setCursorPos(10,i);layar->writeChar(0xc4);
}
layar->setCursorPos( 8, 9);layar->writeChar(0xda);
layar->setCursorPos( 8,29);layar->writeChar(0xbf);
layar->setCursorPos(10, 9);layar->writeChar(0xc0);
layar->setCursorPos(10,29);layar->writeChar(0xd9);
layar->setCursorPos( 9, 9);layar->writeChar(0xb3);
layar->setCursorPos( 9,29);layar->writeChar(0xb3);
for (i=10; i<=28; i++)
{
layar->setAttribute(0x0e);
layar->setCursorPos( 9,i);layar->writeChar(0xdb);
delay(500);
}
layar->cls();
layar->setAttribute(0x07);
layar->setCursorPos(5,9);layar->writeString("Selamat Datang, ");
layar->setAttribute(0x0e);layar->writeString(nama);
}
else
{
layar->setAttribute(0x0e);
layar->setCursorPos(8,9);layar->writeString("password salah");
layar->setAttribute(0x07);
layar->setCursorPos(10,9);layar->writeString("re-type password [Y/T] : ");
layar->setCursorPos(10,45);
re = getch();
if (re == 'Y' || re == 'y')
{
goto awal;
}
else
{
return EXIT_SUCCESS;
}
}
asm mov ah, 0x00;
asm int KEY_INT;
delete layar;
return EXIT_SUCCESS;
}
UCHAR *getString(Screen *scr, UCHAR *str, UCHAR max)
{
UCHAR key, i, x, y;
key = i = 0;
while (TRUE)
{
asm mov ah, 0x00;
asm int KEY_INT;
asm mov key, al;
if ((key == KEY_BACKSPACE) && (i > 0))
{
scr->getCursorPos(&y, &x);
scr->setCursorPos(y, --x);
scr->writeChar(KEY_SPACE);
*(str + i) = NULL; i--;
}
if ((key >= 32) && (key <= 126) && (i < max))
{
scr->getCursorPos(&y, &x);
scr->writeChar(key);
scr->setCursorPos(y, ++x);
*(str + i) = key; i++;
}
if ((key == KEY_TAB) && (i < max))
{
scr->getCursorPos(&y, &x);
scr->writeChar(KEY_SPACE);
scr->setCursorPos(y, ++x);
*(str + i) = KEY_SPACE; i++;
}
if (key == KEY_RETURN)
{
*(str + i) = NULL;
break;
}
if (i == max) *(str + i) = NULL;
}
return str;
}
UCHAR *getPwdString(Screen *scr, UCHAR *pwd, UCHAR max)
{
UCHAR key, i, x, y;
key = i = 0;
while (TRUE)
{
asm mov ah, 0x00;
asm int KEY_INT;
asm mov key, al;
if ((key == KEY_BACKSPACE) && (i > 0))
{
scr->getCursorPos(&y, &x);
scr->setCursorPos(y, --x);
scr->writeChar(KEY_SPACE);
*(pwd + i) = NULL; i--;
}
if ((key >= 32) && (key <= 126) && (i < max))
{
scr->getCursorPos(&y, &x);
scr->writeChar('*');
scr->setCursorPos(y, ++x);
*(pwd + i) = key; i++;
}
if ((key == KEY_TAB) && (i < max))
{
scr->getCursorPos(&y, &x);
scr->writeChar('*');
scr->setCursorPos(y, ++x);
*(pwd + i) = KEY_TAB; i++;
}
if (key == KEY_RETURN)
{
*(pwd + i) = NULL;
break;
}
if (i == max) *(pwd + i) = NULL;
}
return pwd;
}
created by Tauvick22@gmail.com
Tidak ada komentar:
Posting Komentar