VOID FIDOSDM::SetHWM (ULONG ulMsg) { int fd; CHAR Temp[128]; struct dosdate_t d_date; struct dostime_t d_time; FIDOMSG Hdr; sprintf (Temp, "%s1.msg", BasePath); if ((fd = sopen (Temp, O_WRONLY|O_BINARY|O_CREAT|O_TRUNC, SH_DENYNO, S_IREAD|S_IWRITE)) != -1) { memset (&Hdr, 0, sizeof (FIDOMSG)); strcpy (Hdr.From, "MsgBase"); strcpy (Hdr.To, "Nobody in particular"); strcpy (Hdr.Subject, "Re: Whatsa high water mark?"); _dos_getdate (&d_date); _dos_gettime (&d_time); sprintf (Hdr.Date, "%2d %3.3s %02d %02d:%02d:%02d", d_date.day, fidoMonths[d_date.month - 1], d_date.year % 100, d_time.hour, d_time.minute, d_time.second); Hdr.Up = (USHORT)ulMsg; Hdr.Attrib = MSGPRIVATE|MSGSENT|MSGREAD; write (fd, &Hdr, sizeof (FIDOMSG)); strcpy (Temp, "\r\nThis message is used to store the high water mark\r\n"); write (fd, Temp, strlen (Temp) + 1); close (fd); } }
DWORD _Day1970 () { static struct _dosdate_t ddate; _dos_getdate (&ddate); return (((ddate.year - 1970) * 365) + ((ddate.year - 1968) / 4) + (DayOfYear (ddate.month, ddate.day, ddate.year) - 1)); }
char *curDateLong(void) { struct dosdate_t d; char *date, *h, *p; _dos_getdate(&d); if((date = nls_makedate(0, d.year, d.month, d.day)) == 0) { error_out_of_memory(); return 0; } if((h = getString(TEXT_WEEKDAY_SHORT_NAME_SUNDAY + d.dayofweek)) == 0) { free(date); error_out_of_memory(); return 0; } if((p = realloc(h, strlen(h) + strlen(date) + 2)) == 0) { free(h); free(date); error_out_of_memory(); return 0; } strcpy(stpcat(p, " "), date); free(date); return p; }
void main() { struct dosdate_t date; struct dostime_t time; /* Get and display the current date and time */ _dos_getdate( &date ); _dos_gettime( &time ); printf( "The date (MM-DD-YYYY) is: %d-%d-%d\n", date.month, date.day, date.year ); printf( "The time (HH:MM:SS) is: %.2d:%.2d:%.2d\n", time.hour, time.minute, time.second ); /* Change it to the turn of the century */ date.year = 1999; date.month = 12; date.day = 31; time.hour = 23; time.minute = 59; _dos_setdate( &date ); _dos_settime( &time ); printf( "New date (MM-DD-YYYY) is: %d-%d-%d\n", date.month, date.day, date.year ); printf( "New time (HH:MM:SS) is: %.2d:%.2d:%.2d\n", time.hour, time.minute, time.second ); }
int parsedate(char *s) { struct dosdate_t d; unsigned char leap; int nums[3], items; assert(s); /* Parse at maximum three numbers */ s = parsenum(s, 3, &items, nums); if (!s || *s) /* general error or too many characters */ return 0; _dos_getdate(&d); /* fetch current info */ switch (items) { case 0: /* empty line --> always OK */ return 1; case 1: /* single number --> day only */ d.day = nums[0]; break; case 3: /* three numbers --> year, month & day */ d.year = nums[2]; /* fall through */ case 2: /* two numbers --> month & day */ d.day = nums[1], d.month = nums[0]; break; } /* if only entered two digits for year, assume 1900's */ if (d.year <= 99) d.year += 1900; leap = (!(d.year % 4) && (d.year % 100)) || !(d.year % 400); if ((d.month >= 1 && d.month <= 12) && (d.day >= 1 && d.day <= months[leap][d.month]) && (d.year >= 1980 && d.year <= 2099)) { _dos_setdate(&d); return 1; } return 0; }
void main(void) { //clrscr(); struct dostime_t t; struct dosdate_t d; do{ clrscr(); _dos_gettime(&t); _dos_getdate(&d); printf("the current date is %02d-%02d-%02d\n",d.day,d.month,d.year); printf("the current time is %02d:%02d:%02d:%02d\n",t.hour,t.minute,t.second,t.hsecond); delay(1); }while(!kbhit()); }
/* DATE DATE DATE DATE DATE DATE DATE DATE DATE DATE DATE DATE DATE */ #include <dos.h> /* for following date functions only */ void what_date() { /* Watcom */ struct dosdate_t adate; _dos_getdate( &adate ); this_month = adate.month; this_year = adate.year; /* Borland struct date adate; getdate( &adate ); this_month = adate.da_mon; this_year = adate.da_year; */ return; }
USHORT TUser::Age () { USHORT RetVal = 0; struct dosdate_t d_date; _dos_getdate (&d_date); if (BirthDay != 0 && BirthMonth != 0 && BirthYear > 1880 && BirthYear < d_date.year) { RetVal = (USHORT)(d_date.year - BirthYear); if (d_date.month < BirthMonth) RetVal--; else if (d_date.month == BirthMonth && d_date.day < BirthDay) RetVal--; } return (RetVal); }
int cmd_date(char *rest) { char s[40]; if (!rest || !*rest) { struct dosdate_t d; _dos_getdate(&d); displayString(TEXT_MSG_CURRENT_DATE, day_strings[d.dayofweek], d.month, d.day, d.year); rest = NULL; } while (1) /*forever loop */ { if (!rest) { if ((rest = getMessage(TEXT_MSG_ENTER_DATE)) == NULL) return 1; /* failed, error message on screan already */ fputs(rest, stdout); /* put onto screen */ free(rest); fgets(s, sizeof(s), stdin); if (cbreak) return 1; if (parsedate(s)) return 0; } else { if (parsedate(rest)) return 0; } displayString(TEXT_ERROR_INVALID_DATE); // force input the next time around. rest = NULL; } }
//static DWORD LoadOldKey(char* filename,CPtrArray* array,DWORD appID) //static DWORD LoadOldKey(char* filename, HDATA& hRootData, DWORD appID) static DWORD LoadOldKey(DWORD appID, const char* filename, DWORD* level, BOOL* valid, HDATA& hRootData) { DWORD ret=0; AVP_KeyHeader avpKeyHeader; int handle; unsigned bytes; unsigned char *cbuf; DWORD Level=0; BOOL Valid=TRUE; BOOL platf=FALSE; if(_dos_open(filename,O_RDONLY,&handle)) return ret; if(_dos_read(handle,(void far *)&avpKeyHeader,sizeof(avpKeyHeader),&bytes) ||avpKeyHeader.Magic!=AVP_KEY_MAGIC||avpKeyHeader.Version!=3 ||((cbuf=(unsigned char *)Malloc(avpKeyHeader.CompressedSize))==0)) { _dos_close(handle); return ret; } //if(KeyHeader.CompressedCRC==CalcSum((BYTE*)cbuf,KeyHeader.CompressedSize)) if(((avpKey=(struct _AVP_Key *)Malloc(avpKeyHeader.UncompressedSize))==NULL) ||_dos_read(handle,(void *)cbuf,avpKeyHeader.CompressedSize,&bytes)) { _dos_close(handle); Free(cbuf); return ret; } _dos_close(handle); if(avpKeyHeader.CompressedCRC==CalcSum((BYTE*)cbuf,avpKeyHeader.CompressedSize)) { for(int i=0;i<avpKeyHeader.CompressedSize;i++) cbuf[i]^=(BYTE)i; if(avpKeyHeader.UncompressedSize==unsqu(cbuf,(unsigned char *)avpKey) )//&&!FFake) { avp_key_present=1; switch(appID) { case AVP_APID_SCANNER_WIN_95: platf=!!(avpKey->Platforms & KEY_P_WIN95); break; case AVP_APID_SCANNER_WIN_NTWS: platf=!!(avpKey->Platforms & KEY_P_WINNT); break; case AVP_APID_MONITOR_WIN_95: platf=!!(avpKey->Platforms & KEY_P_WIN95) && !!(avpKey->Options & KEY_O_MONITOR); break; case AVP_APID_MONITOR_WIN_NTWS: platf=!!(avpKey->Platforms & KEY_P_WINNT) && !!(avpKey->Options & KEY_O_MONITOR); break; case AVP_APID_OS_2: platf=!!(avpKey->Platforms & KEY_P_OS2); break; case AVP_APID_SCANNER_DOS_LITE: platf=!!(avpKey->Platforms & KEY_P_DOSLITE); break; case AVP_APID_NOVELL: platf=!!(avpKey->Platforms & KEY_P_NOVELL); break; case AVP_APID_SCANNER_DOS_32: case AVP_APID_SCANNER_DOS_16: platf=!!(avpKey->Platforms & KEY_P_DOS); break; case AVP_APID_CONTROLCENTER: case AVP_APID_UPDATOR: platf=!!(avpKey->Platforms & KEY_P_WIN95) || !!(avpKey->Platforms & KEY_P_WINNT); break; case AVP_APID_INSPECTOR: case AVP_APID_WEBINSPECTOR: case AVP_APID_EXCHANGE: case AVP_APID_NT_SERVER: default: break; } if(platf) { ret=FN_MINIMAL; ret|=FN_OPTIONS; if(avpKey->Options & KEY_O_REMOTELAUNCH)ret|=FN_NETWORK; if(avpKey->Options & KEY_O_REMOTESCAN) ret|=FN_NETWORK; if(!(avpKey->Options & KEY_O_DISINFECT))ret&=~FN_DISINFECT; if(!(avpKey->Options & KEY_O_UNPACK)) ret&=~FN_UNPACK; if(!(avpKey->Options & KEY_O_EXTRACT)) ret&=~FN_EXTRACT; struct dosdate_t stCurrent; //SYSTEMTIME stCurrent; SYSTEMTIME stExpir; _dos_getdate(&stCurrent); //GetSystemTime(&stCurrent); memset(&stExpir,0,sizeof(struct dosdate_t));//SYSTEMTIME)); stExpir.wYear =avpKey->ExpirYear; stExpir.wMonth=(unsigned char)avpKey->ExpirMonth; stExpir.wDay =(unsigned char)avpKey->ExpirDay; if(stCurrent.year > stExpir.wYear) Valid=FALSE; else if(stCurrent.year < stExpir.wYear) ; else if(stCurrent.month > stExpir.wMonth) Valid=FALSE; else if(stCurrent.month < stExpir.wMonth) ; else if(stCurrent.day > stExpir.wDay) Valid=FALSE; //if(stCurrent.year >stExpir.wYear) goto time_bad; //if(stCurrent.year <stExpir.wYear) goto time_ok; //if(stCurrent.month>stExpir.wMonth)goto time_bad; //if(stCurrent.month<stExpir.wMonth)goto time_ok; //if(stCurrent.day >stExpir.wDay) goto time_bad; //if(stCurrent.day <stExpir.wDay) goto time_ok; //time_bad: // if(!!(avpKey->Flags & KEY_F_INFOEVERYLAUNCH) // || !(avpKey->Flags & KEY_F_REGISTERED) // || !CheckSelfExpir(stExpir)) // goto clo; // ret=0; // else // ret &= ~FN_UPDATES; //time_ok: if(!CheckSelfExpir(stExpir)) Valid=FALSE; else { if(avpKey->Options & KEY_O_DISINFECT) { Level=10; if((avpKey->Options & KEY_O_UNPACK)||(avpKey->Options & KEY_O_EXTRACT)) Level=20; if((avpKey->Options & KEY_O_REMOTELAUNCH)||(avpKey->Options & KEY_O_REMOTESCAN)) Level=30; } else { if(avpKey->Flags & KEY_F_INFOEVERYLAUNCH) Valid=FALSE; else Level=5; } } if(DATA_Init_Library((void*(*)(unsigned int))Malloc,Free)) { hRootData=DATA_Add(0,0,AVP_PID_KEYROOT,0,0); if(hRootData) { DATA_Add(hRootData,0,PID_FILENAME,(DWORD)filename,0); HDATA hInfo; hInfo=DATA_Add(hRootData,0,AVP_PID_KEYINFO,0,0); //OemToChar(buf+Key->RegNumberOffs, buf+Key->RegNumberOffs); //OemToChar(buf+Key->CopyInfoOffs, buf+Key->CopyInfoOffs); //OemToChar(buf+Key->SupportOffs, buf+Key->SupportOffs); DATA_Add(hInfo,0, PID_SERIALSTR,(DWORD)avpKey+avpKey->RegNumberOffs,0); DATA_Add(hInfo,0, AVP_PID_KEYPLPOSNAME, (DWORD)"AVP Key v1.0", 0); DATA_Add(hInfo,0, AVP_PID_KEYLICENCEINFO,(DWORD)avpKey+avpKey->CopyInfoOffs,0); DATA_Add(hInfo,0, AVP_PID_KEYSUPPORTINFO,(DWORD)avpKey+avpKey->SupportOffs,0); if(stExpir.wDay!=0) DATA_Add(hInfo,0, AVP_PID_KEYEXPDATE, (DWORD)&stExpir, sizeof(AVP_date)); } } } } else ret=0; if(!(avpKey->Flags&KEY_F_REGISTERED)||!(avpKey->Platforms&KEY_P_DOS)) ret=0; } else ret=0; //clo: Free(cbuf); if(ret) { if(level) *level=MAX(*level, Level); if(valid) *valid|=Valid; } return ret; }
//$$$$$$$$$$$$$$$$$$$$$$$$ void active_status_bar(int i,int j) //defaultvalue i== { //int row=13; struct dostime_t t; _dos_gettime(&t); struct dosdate_t d; _dos_getdate(&d); window(1,2,80,23); textbackground(1); clrscr(); window(1,24,80,25); textbackground(7); clrscr(); switch(j){ case 1: gotoxy(1,1); textcolor(4); cprintf(Status[i]); gotoxy(14,1); textcolor(0); cprintf( Status_Expressoin[i]); break; case 2: gotoxy(1,1); textcolor(4); cprintf(file_list1[i]); cprintf(file_list2[i]); gotoxy(14,1); textcolor(0); cprintf( File_Status_Expressoin[i]); break; case 3: gotoxy(1,1); textcolor(4); cprintf(PROGRAMMER_list1[i]); gotoxy(17,1); textcolor(0); cprintf( PROGRAMMER_Status_Expressoin[i]); break; case 4: gotoxy(1,1); textcolor(4); cprintf(""); gotoxy(17,1); textcolor(0); cprintf( PROGRAMMER_Status_Expressoin[i]); break; case 5: gotoxy(1,1); textcolor(4); cprintf(project_list1[i]); cprintf(project_list2[i]); gotoxy(17,1); textcolor(0); cprintf(Project_Status_Expressoin[i]); break; case 6: gotoxy(1,1); textcolor(4); cprintf(project_list1[i]); cprintf(project_list2[i]); gotoxy(17,1); textcolor(0); cprintf(Project_Status_Expressoin[i]); break; case 7: gotoxy(1,1); textcolor(4); cprintf(project_list1[i]); cprintf(project_list2[i]); gotoxy(17,1); textcolor(0); cprintf(Project_Status_Expressoin[i]); break; } textcolor(6); gotoxy(57,1); cprintf("%d - %d - %d ", d.month,d.day,d.year); cprintf(" %2d : %02d", t.hour, t.minute); window(1,25,80,25); textbackground(1); clrscr(); }
USHORT FIDOSDM::ReadHeader (ULONG ulMsg) { int dd, yy, hr, mn, sc; USHORT RetVal = FALSE, i; CHAR mm[4]; MSGINDEX *msgIndex; struct dosdate_t date; struct dostime_t time; New (); if ((msgIndex = (MSGINDEX *)Index.First ()) != NULL) do { if (msgIndex->Number == ulMsg) { sprintf (LastFile, "%s%s", BasePath, msgIndex->FileName); if ((fp = _fsopen (LastFile, "rb", SH_DENYNO)) != NULL) { RetVal = TRUE; Current = ulMsg; memset (&msgHdr, 0, sizeof (msgHdr)); fread (&msgHdr, sizeof (msgHdr), 1, fp); fclose (fp); sprintf (FromAddress, "%d/%d", msgHdr.OrigNet, msgHdr.OrigNode); sprintf (ToAddress, "%d/%d", msgHdr.DestNet, msgHdr.DestNode); for (i = 0; i < 7; i++) { if (!strncmp (fidoDays[i], msgHdr.Date, 3)) break; } if (i < 7) { sscanf (&msgHdr.Date[4], "%2d %3s %2d %2d:%2d", &dd, mm, &yy, &hr, &mn); sc = 0; } else sscanf (msgHdr.Date, "%2d %3s %2d %2d:%2d:%02d", &dd, mm, &yy, &hr, &mn, &sc); Written.Day = (UCHAR)dd; for (i = 0; i < 12; i++) { if (!stricmp (fidoMonths[i], mm)) { Written.Month = (UCHAR)(i + 1); break; } } if (Written.Month < 1 || Written.Month > 12) Written.Month = 1; if ((Written.Year = (USHORT)(yy + 1900)) < 1990) Written.Year += 100; Written.Hour = (UCHAR)hr; Written.Minute = (UCHAR)mn; Written.Second = (UCHAR)sc; _dos_getdate (&date); _dos_gettime (&time); Arrived.Day = date.day; Arrived.Month = date.month; Arrived.Year = (USHORT)date.year; Arrived.Hour = time.hour; Arrived.Minute = time.minute; Arrived.Second = time.second; strcpy (From, msgHdr.From); strcpy (To, msgHdr.To); strcpy (Subject, msgHdr.Subject); Crash = (UCHAR)((msgHdr.Attrib & MSGCRASH) ? TRUE : FALSE); FileAttach = (UCHAR)((msgHdr.Attrib & MSGFILE) ? TRUE : FALSE); FileRequest = (UCHAR)((msgHdr.Attrib & MSGFRQ) ? TRUE : FALSE); Hold = (UCHAR)((msgHdr.Attrib & MSGHOLD) ? TRUE : FALSE); KillSent = (UCHAR)((msgHdr.Attrib & MSGKILL) ? TRUE : FALSE); Local = (UCHAR)((msgHdr.Attrib & MSGLOCAL) ? TRUE : FALSE); Private = (UCHAR)((msgHdr.Attrib & MSGPRIVATE) ? TRUE : FALSE); ReceiptRequest = (UCHAR)((msgHdr.Attrib & MSGRRQ) ? TRUE : FALSE); Received = (UCHAR)((msgHdr.Attrib & MSGREAD) ? TRUE : FALSE); Sent = (UCHAR)((msgHdr.Attrib & MSGSENT) ? TRUE : FALSE); Original = msgHdr.Reply; Reply = msgHdr.Up; break; } } } while ((msgIndex = (MSGINDEX *)Index.Next ()) != NULL); return (RetVal); }
USHORT FIDOSDM::Read (ULONG ulMsg, class TCollection &MsgText, SHORT nWidth) { int fz, fn, fo, tz, tn, to, dd, yy, hr, mn, sc; USHORT RetVal = FALSE, SkipNext; USHORT ToPoint, ToZone, FromPoint, FromZone; CHAR mm[4]; SHORT i, nReaded, nCol; MSGINDEX *msgIndex; struct dosdate_t date; struct dostime_t time; New (); MsgText.Clear (); ToPoint = ToZone = FromPoint = FromZone = 0; fp = NULL; if ((msgIndex = (MSGINDEX *)Index.First ()) != NULL) do { if (msgIndex->Number == ulMsg) { sprintf (LastFile, "%s%s", BasePath, msgIndex->FileName); if ((fp = _fsopen (LastFile, "rb", SH_DENYNO)) != NULL) { RetVal = TRUE; Current = ulMsg; break; } } } while ((msgIndex = (MSGINDEX *)Index.Next ()) != NULL); if (RetVal == TRUE && fp != NULL) { memset (&msgHdr, 0, sizeof (msgHdr)); fread (&msgHdr, sizeof (msgHdr), 1, fp); for (i = 0; i < 7; i++) { if (!strncmp (fidoDays[i], msgHdr.Date, 3)) break; } if (i < 7) { sscanf (&msgHdr.Date[4], "%2d %3s %2d %2d:%2d", &dd, mm, &yy, &hr, &mn); sc = 0; } else sscanf (msgHdr.Date, "%2d %3s %2d %2d:%2d:%02d", &dd, mm, &yy, &hr, &mn, &sc); Written.Day = (UCHAR)dd; for (i = 0; i < 12; i++) { if (!stricmp (fidoMonths[i], mm)) { Written.Month = (UCHAR)(i + 1); break; } } if (Written.Month < 1 || Written.Month > 12) Written.Month = 1; if ((Written.Year = (USHORT)(yy + 1900)) < 1990) Written.Year += 100; Written.Hour = (UCHAR)hr; Written.Minute = (UCHAR)mn; Written.Second = (UCHAR)sc; _dos_getdate (&date); _dos_gettime (&time); Arrived.Day = date.day; Arrived.Month = date.month; Arrived.Year = (USHORT)date.year; Arrived.Hour = time.hour; Arrived.Minute = time.minute; Arrived.Second = time.second; strcpy (From, msgHdr.From); strcpy (To, msgHdr.To); strcpy (Subject, msgHdr.Subject); Crash = (UCHAR)((msgHdr.Attrib & MSGCRASH) ? TRUE : FALSE); FileAttach = (UCHAR)((msgHdr.Attrib & MSGFILE) ? TRUE : FALSE); FileRequest = (UCHAR)((msgHdr.Attrib & MSGFRQ) ? TRUE : FALSE); Hold = (UCHAR)((msgHdr.Attrib & MSGHOLD) ? TRUE : FALSE); KillSent = (UCHAR)((msgHdr.Attrib & MSGKILL) ? TRUE : FALSE); Local = (UCHAR)((msgHdr.Attrib & MSGLOCAL) ? TRUE : FALSE); Private = (UCHAR)((msgHdr.Attrib & MSGPRIVATE) ? TRUE : FALSE); ReceiptRequest = (UCHAR)((msgHdr.Attrib & MSGRRQ) ? TRUE : FALSE); Received = (UCHAR)((msgHdr.Attrib & MSGREAD) ? TRUE : FALSE); Sent = (UCHAR)((msgHdr.Attrib & MSGSENT) ? TRUE : FALSE); Original = msgHdr.Reply; Reply = msgHdr.Up; pLine = szLine; nCol = 0; Current = ulMsg; SkipNext = FALSE; do { nReaded = (SHORT)fread (szBuff, 1, sizeof (szBuff), fp); for (i = 0, pBuff = szBuff; i < nReaded && *pBuff != '\0'; i++, pBuff++) { if (*pBuff == '\r') { *pLine = '\0'; if (!strncmp (szLine, "\001FMPT ", 6)) FromPoint = (USHORT)atoi (&szLine[6]); else if (!strncmp (szLine, "\001TOPT ", 6)) ToPoint = (USHORT)atoi (&szLine[6]); else if (!strncmp (szLine, "\001INTL ", 6)) { sscanf (&szLine[6], "%d:%d/%d %d:%d/%d", &tz, &tn, &to, &fz, &fn, &fo); if (tn == msgHdr.DestNet && to == msgHdr.DestNode) ToZone = (USHORT)tz; if (fn == msgHdr.OrigNet && fo == msgHdr.OrigNode) FromZone = (USHORT)fz; } else if (!strncmp (szLine, "\001FLAGS ", 7)) { if (strstr (szLine, "DIR")) Direct = TRUE; } if (pLine > szLine && SkipNext == TRUE) { pLine--; while (pLine > szLine && *pLine == ' ') *pLine-- = '\0'; if (pLine > szLine) MsgText.Add (szLine); } else if (SkipNext == FALSE) MsgText.Add (szLine); SkipNext = FALSE; pLine = szLine; nCol = 0; } else if (*pBuff != '\n') { *pLine++ = *pBuff; nCol++; if (nCol >= nWidth) { *pLine = '\0'; if (strchr (szLine, ' ') != NULL) { while (nCol > 1 && *pLine != ' ') { nCol--; pLine--; } if (nCol > 0) { while (*pLine == ' ') pLine++; strcpy (szWrp, pLine); } *pLine = '\0'; } else szWrp[0] = '\0'; MsgText.Add (szLine); strcpy (szLine, szWrp); pLine = strchr (szLine, '\0'); nCol = (SHORT)strlen (szLine); SkipNext = TRUE; } } } } while (nReaded != 0 && i >= nReaded); sprintf (FromAddress, "%u:%u/%u.%u", FromZone, msgHdr.OrigNet, msgHdr.OrigNode, FromPoint); sprintf (ToAddress, "%u:%u/%u.%u", ToZone, msgHdr.DestNet, msgHdr.DestNode, ToPoint); fclose (fp); } return (RetVal); }
void funccall::ss() { int v; struct dostime_t t; struct dosdate_t d; do { textbackground(BLUE); textcolor(MAGENTA); _setcursortype(_NORMALCURSOR); clrscr(); textcolor(GREEN); box(4,4,4,4); box(4,4,6,6); textcolor(GREEN+BLINK); gotoxy(11,7); cputs("CREEPER"); delay(502); _dos_gettime(&t); _dos_getdate(&d); box(21,6,52,4,222); gotoxy(54,6); printf("DATE:%2d/%02d/%02d\n",d.day,d.month,d.year); gotoxy(54,7); printf("Time:%2d:%02d:%02d.%02d\n",t.hour,t.minute,t.second,t.hsecond); gotoxy(25,9); textcolor(WHITE+BLINK); cputs(">>>> SCREEN SAVERS >>>>"); box(35,10,20,11); textcolor(WHITE); gotoxy(22,12); cputs("1. COLOUR BOX"); gotoxy(22,13); cputs("2. WELCOME NOTE"); gotoxy(22,14); cputs("3. CREEPER BOOTING"); gotoxy(22,15); cputs("4. CREEPER ALL THE WAY"); gotoxy(22,16); cputs("0. MAIN MENU"); gotoxy(25,18); cputs("ENTER THE CHOICE NUMBER : "); v=int(getche()-48); delay(100); if(v) { switch(v) { case 1: colbox(); break; case 2: wel(); break; case 3: intro(); break; case 4: crepalltheway(); break; default: gotoxy(27,20); cputs("INVALID ENTRY"); delay(1000); break; }} }while(v!=0); }
//------------------------------------------------------------------------- // freed_main() //------------------------------------------------------------------------- void freed_main() { // Setup for APOGEECD thingie. // InitDestPath(); // Make sure there's room to play the game // CheckDiskSpace(DISK_SPACE_NEEDED,CANT_PLAY_TXT,cds_dos_print); // Which version is this? (SHAREWARE? 1-3? 1-6?) // CheckForEpisodes(); std::string arg; switch (::g_args.check_argument(MainStrs, arg)) { #if IN_DEVELOPMENT || TECH_SUPPORT_VERSION case 0: // quick run gamestate.flags |= GS_QUICKRUN; case 1: // no wait gamestate.flags |= GS_NOWAIT; break; #endif case 2: // starting level gamestate.flags |= GS_STARTLEVEL; starting_level=scan_atoi(arg.c_str()); break; case 3: gamestate.flags |= GS_STARTLEVEL; starting_episode=scan_atoi(arg.c_str())-1; break; case 4: fprint(cinfo_text); printf("\n" " Version: %s\n" "COMPILE DATE: %s\n\n", __BLAKE_VERSION__,__DATE__); exit(0); break; case 5: ShowSystem(); exit(0); break; #if IN_DEVELOPMENT #ifdef DEBUG_VALUE case 6: debug_value=scan_atoi(g_argv[i]); break; #endif #endif case 7: gamestate.flags |= GS_TICS_FOR_SCORE; break; case 8: // gamestate.flags |= GS_MEM_FOR_SCORE; break; case 9: PowerBall = 1; break; case 11: gamestate.flags |= GS_STARTLEVEL; starting_difficulty=scan_atoi(arg.c_str())-1; break; case 10: gamestate.flags |= GS_MUSIC_TEST; break; case 12: gamestate.flags |= GS_SHOW_OVERHEAD; break; } #if BETA_TEST // // THIS IS FOR BETA ONLY! // _dos_getdate(&d); if ((d.year > BETA_YEAR) || ((d.year == BETA_YEAR) && (d.month > BETA_MONTH)) || ((d.year == BETA_YEAR) && (d.month == BETA_MONTH) && (d.day >= BETA_DAY))) { FILE *out; char name[20]="VSWAP."; strcat(name,extension); out = fopen(name,"w"); fprintf(out,"\n\n SELF DESTRUCTED \n"); fclose(out); remove("vswap.bs1"); fprint(dver_text); exit(0); } #endif InitGame (); bufferofs=SCREENSIZE; PreDemo(); }
void funccall::mmenu() { int v; struct dostime_t t; struct dosdate_t d; do { textbackground(BLUE); textcolor(MAGENTA); _setcursortype(_NORMALCURSOR); clrscr(); textcolor(GREEN); box(4,4,4,4); box(4,4,6,6); textcolor(GREEN+BLINK); gotoxy(11,7); cputs("CREEPER"); delay(502); _dos_gettime(&t); _dos_getdate(&d); box(21,6,52,4,222); gotoxy(54,6); printf("DATE:%2d/%02d/%02d\n",d.day,d.month,d.year); gotoxy(54,7); printf("Time:%2d:%02d:%02d.%02d\n",t.hour,t.minute,t.second,t.hsecond); gotoxy(29,9); textcolor(WHITE+BLINK); cputs(">>>> MENU >>>>"); for(int i=0;i<13;++i) { box(1+(6*i),1+i,3,11); delay(70); box(1+6*i,1+i,3,11,int(' ')); } box(76,14,3,11); textcolor(WHITE); gotoxy(5,12); cputs("1. CONTROL PANEL"); gotoxy(5,14); cputs("2. SCREEN SAVERS"); gotoxy(5,16); cputs("3. ENTERTAINMENT"); gotoxy(5,18); cputs("4. OFFICE"); gotoxy(28,20); cputs("0. EXIT"); gotoxy(25,22); cputs("ENTER THE CHOICE NUMBER : "); v=int(getche()-48); delay(100); if(v) { switch(v) { case 1: contpan(); break; case 2: ss(); break; case 3: entertainment(); break; case 4: of_beg(); break; default: gotoxy(55,22); cputs("INVALID ENTRY"); delay(1000); break; }} }while(v!=0); }
static DWORD LoadKey(DWORD appID, const char* filename, DWORD* level, BOOL* valid, HDATA& hRootData) { DWORD ret=0; DWORD Level=0; BOOL Valid=TRUE; if(sign_check_file(filename,1,0,0,0)) { int f; if(_dos_open(filename,O_RDONLY,&f)) return ret; DWORD count; DWORD val=0; _dos_read(f,(void far *)&val,4,(unsigned int*)&count); _dos_close(f); if(count!=4 || val!='wsLK') return ret; if(!DATA_Init_Library((void*(*)(unsigned int))Malloc,Free)) return ret; hRootData=DATA_Add(0,0,AVP_PID_KEYROOT,0,0); if(!hRootData) return ret; DATA_Add(hRootData,0,PID_FILENAME,(DWORD)filename,0); HDATA hInfo; hInfo=DATA_Add(hRootData,0,AVP_PID_KEYINFO,0,0); DATA_Add(hInfo,0, PID_SERIALSTR, (DWORD)"Corrupted", 0); return ret; } _AvpReadFile =AvpReadFile; _AvpWriteFile =AvpWriteFile; _AvpCloseHandle=AvpCloseHandle; _AvpCreateFile =AvpCreateFile; _AvpGetFileSize=AvpGetFileSize; if(!KLDT_Init_Library((void*(*)(unsigned int))Malloc,Free)) return ret; if(!DATA_Init_Library((void*(*)(unsigned int))Malloc,Free)) return ret; AVP_dword dseq[5]; if(!KLDT_DeserializeUsingSWM( filename, &hRootData ))return ret; if(hRootData==NULL) return ret; ret=TRUE; AVP_dword pid; pid=MAKE_AVP_PID(appID, AVP_APID_GLOBAL, avpt_dword, 0); if(AVP_PID_KEYROOT!=DATA_Get_Id( hRootData, 0 ) || !DATA_Get_Val( hRootData, DATA_Sequence(dseq,pid,0), 0, &Level, sizeof(Level)) ) { DATA_Remove( hRootData, 0 ); hRootData=0; return ret; } // ret|=FN_MINIMAL; // if(level>=10) ret|=FN_UPDATES; // if(level>=20) ret|=FN_OPTIONS; // if(level>=30) ret|=FN_FULL; struct dosdate_t stCurrent; SYSTEMTIME stExpir; _dos_getdate(&stCurrent); memset(&stExpir,0,sizeof(SYSTEMTIME)); if( !DATA_Get_Val( hRootData, DATA_Sequence(dseq,AVP_PID_KEYINFO,AVP_PID_KEYEXPDATE,0),0,&stExpir,sizeof(AVP_date)) ) goto dr; AVP_dword keynumber[3]; DATA_Get_Val(hRootData,DATA_Sequence(dseq,AVP_PID_KEYINFO,AVP_PID_KEYSERIALNUMBER,0), 0, keynumber, sizeof(keynumber)); char buf[0x20]; _sprintf(buf,"%04d-%06d-%08d",keynumber[0],keynumber[1],keynumber[2]); DATA_Add(hRootData,DATA_Sequence(dseq,AVP_PID_KEYINFO,0), PID_SERIALSTR, (DWORD)buf,0); BOOL keyIsTrial; keyIsTrial=(DATA_Find(hRootData, DATA_Sequence(dseq,AVP_PID_KEYINFO,AVP_PID_KEYISTRIAL,0)))?1:0; AVP_dword PLPos; PLPos=0; DATA_Get_Val( hRootData, DATA_Sequence(dseq,AVP_PID_KEYINFO,AVP_PID_KEYPLPOS,0), 0, &PLPos, sizeof(AVP_dword)); if(stCurrent.year > stExpir.wYear) Valid=FALSE; else if(stCurrent.year < stExpir.wYear) ; else if(stCurrent.month > stExpir.wMonth) Valid=FALSE; else if(stCurrent.month < stExpir.wMonth) ; else if(stCurrent.day > stExpir.wDay) Valid=FALSE; if(Valid) { AVP_dword life; if( DATA_Get_Val( hRootData, DATA_Sequence(dseq,AVP_PID_KEYINFO,AVP_PID_KEYLIFESPAN,0), 0, &life, sizeof(AVP_dword)) ) { //if(!CheckKeyUseTime(keynumber,life,stExpir,keyIsTrial?&PLPos:NULL))Valid=FALSE; } } if(!Valid &&( keyIsTrial|| !CheckSelfExpir(stExpir))) Level=0; DATA_Set_Val(hRootData,DATA_Sequence(dseq,AVP_PID_KEYINFO,AVP_PID_KEYEXPDATE,0), 0, (DWORD)&stExpir, sizeof(AVP_date)); dr: DATA_Add(hRootData,0,PID_FILENAME,(DWORD)filename,0); if(ret){ if(level) *level=MAX(*level, Level); if(valid) *valid|=Valid; } return ret; }
USHORT PACKET::ReadHeader (ULONG ulMsg) { int dd, yy, hr, mn, sc; USHORT RetVal = FALSE, i; CHAR mm[4]; PKTINDEX *pktIndex; struct dosdate_t date; struct dostime_t time; New (); if ((pktIndex = (PKTINDEX *)Index.First ()) != NULL) { do { if (pktIndex->Number == ulMsg) { fseek (fp, pktIndex->Position, SEEK_SET); break; } } while ((pktIndex = (PKTINDEX *)Index.Next ()) != NULL); } memset (&msgHdr, 0, sizeof (MSGHDR)); fread (&msgHdr, sizeof (MSGHDR), 1, fp); if (msgHdr.Version == 2) { RetVal = TRUE; if (pkt2Hdr.Capability != pkt2Hdr.CWValidation || !(pkt2Hdr.Capability & 0x0001)) { sprintf (FromAddress, "%d:%d/%d.%d", pkt2Hdr.OrigZone, msgHdr.OrigNet, msgHdr.OrigNode, 0); sprintf (ToAddress, "%d:%d/%d.%d", pkt2Hdr.DestZone, msgHdr.DestNet, msgHdr.DestNode, 0); } else { sprintf (FromAddress, "%d:%d/%d.%d", pkt2Hdr.OrigZone, msgHdr.OrigNet, msgHdr.OrigNode, pkt2Hdr.OrigPoint); sprintf (ToAddress, "%d:%d/%d.%d", pkt2Hdr.DestZone, msgHdr.DestNet, msgHdr.DestNode, pkt2Hdr.DestPoint); } GetLine (); sscanf (Line, "%2d %3s %2d %2d:%2d:%02d", &dd, mm, &yy, &hr, &mn, &sc); Written.Day = (UCHAR)dd; for (i = 0; i < 12; i++) { if (!stricmp (pktMonths[i], mm)) { Written.Month = (UCHAR)(i + 1); break; } } if (Written.Month < 1 || Written.Month > 12) Written.Month = 1; if ((Written.Year = (USHORT)(yy + 1900)) < 1990) Written.Year += 100; Written.Hour = (UCHAR)hr; Written.Minute = (UCHAR)mn; Written.Second = (UCHAR)sc; _dos_getdate (&date); _dos_gettime (&time); Arrived.Day = date.day; Arrived.Month = date.month; Arrived.Year = (USHORT)date.year; Arrived.Hour = time.hour; Arrived.Minute = time.minute; Arrived.Second = time.second; GetLine (); strcpy (To, Line); GetLine (); strcpy (From, Line); GetLine (); strcpy (Subject, Line); } return (RetVal); }
USHORT PACKET::Open (PSZ pszName, USHORT doScan) { int c; USHORT RetVal = FALSE, i; PSZ pszAddress; ULONG Position; PKTINDEX pktIndex; struct dosdate_t date; struct dostime_t time; TotalMsgs = 0L; Index.Clear (); if (fp != NULL) fclose (fp); if ((fp = fopen (pszName, "r+b")) == NULL) fp = fopen (pszName, "w+b"); strcpy (FileName, pszName); if (fp != NULL) { setvbuf (fp, NULL, _IOFBF, 4096L); if (filelength (fileno (fp)) == 0L) { memset (&pkt2Hdr, 0, sizeof (PKT2HDR)); _dos_getdate (&date); _dos_gettime (&time); pkt2Hdr.Version = 2; pkt2Hdr.CWValidation = 0x100; pkt2Hdr.Capability = 0x0001; pkt2Hdr.ProductL = 0x4E; pkt2Hdr.Day = date.day; pkt2Hdr.Month = (UCHAR)(date.month - 1); pkt2Hdr.Year = (USHORT)date.year; pkt2Hdr.Hour = time.hour; pkt2Hdr.Minute = time.minute; pkt2Hdr.Second = time.second; pszAddress = ToAddress; if (strchr (pszAddress, ':') != NULL) { pkt2Hdr.DestZone2 = pkt2Hdr.DestZone = (USHORT)atoi (pszAddress); pszAddress = strchr (pszAddress, ':') + 1; } if (strchr (pszAddress, '/') != NULL) { pkt2Hdr.DestNet = (USHORT)atoi (pszAddress); pszAddress = strchr (pszAddress, '/') + 1; } pkt2Hdr.DestNode = (USHORT)atoi (pszAddress); if (strchr (pszAddress, '.') != NULL) { pszAddress = strchr (pszAddress, '.') + 1; pkt2Hdr.DestPoint = (USHORT)atoi (pszAddress); } pszAddress = FromAddress; if (strchr (pszAddress, ':') != NULL) { pkt2Hdr.OrigZone2 = pkt2Hdr.OrigZone = (USHORT)atoi (pszAddress); pszAddress = strchr (pszAddress, ':') + 1; } if (strchr (pszAddress, '/') != NULL) { pkt2Hdr.OrigNet = (USHORT)atoi (pszAddress); pszAddress = strchr (pszAddress, '/') + 1; } pkt2Hdr.OrigNode = (USHORT)atoi (pszAddress); if (strchr (pszAddress, '.') != NULL) { pszAddress = strchr (pszAddress, '.') + 1; pkt2Hdr.OrigPoint = (USHORT)atoi (pszAddress); } memcpy (pkt2Hdr.Password, Password, 8); fwrite (&pkt2Hdr, sizeof (PKT2HDR), 1, fp); memset (&msgHdr, 0, sizeof (MSGHDR)); fwrite (&msgHdr, 2, 1, fp); sprintf (FromAddress, "%d:%d/%d.%d", pkt2Hdr.OrigZone, pkt2Hdr.OrigNet, pkt2Hdr.OrigNode, pkt2Hdr.OrigPoint); sprintf (ToAddress, "%d:%d/%d.%d", pkt2Hdr.DestZone, pkt2Hdr.DestNet, pkt2Hdr.DestNode, pkt2Hdr.DestPoint); fflush (fp); fseek (fp, filelength (fileno (fp)) - sizeof (MSGHDR), SEEK_SET); RetVal = TRUE; } else { fread (&pkt2Hdr, sizeof (PKT2HDR), 1, fp); if (pkt2Hdr.Version == 2) { if (pkt2Hdr.Rate == 2) { memcpy (&pkt22Hdr, &pkt2Hdr, sizeof (PKT22HDR)); sprintf (FromAddress, "%d:%d/%d.%d", pkt22Hdr.OrigZone, pkt22Hdr.OrigNet, pkt22Hdr.OrigNode, pkt22Hdr.OrigPoint); if (pkt22Hdr.OrigDomain[0] != '\0') { strcat (FromAddress, "@"); strcat (FromAddress, pkt22Hdr.OrigDomain); } sprintf (ToAddress, "%d:%d/%d.%d", pkt22Hdr.DestZone, pkt22Hdr.DestNet, pkt22Hdr.DestNode, pkt22Hdr.DestPoint); if (pkt22Hdr.DestDomain[0] != '\0') { strcat (ToAddress, "@"); strcat (ToAddress, pkt22Hdr.DestDomain); } RetVal = TRUE; } else { //kj swab ((char *)&pkt2Hdr.CWValidation, (char *)&i, 2); pkt2Hdr.CWValidation = i; if (pkt2Hdr.Capability != pkt2Hdr.CWValidation || !(pkt2Hdr.Capability & 0x0001)) { sprintf (FromAddress, "%d:%d/%d.%d", pkt2Hdr.OrigZone, pkt2Hdr.OrigNet, pkt2Hdr.OrigNode, 0); sprintf (ToAddress, "%d:%d/%d.%d", pkt2Hdr.DestZone, pkt2Hdr.DestNet, pkt2Hdr.DestNode, 0); } else { sprintf (FromAddress, "%d:%d/%d.%d", pkt2Hdr.OrigZone, pkt2Hdr.OrigNet, pkt2Hdr.OrigNode, pkt2Hdr.OrigPoint); sprintf (ToAddress, "%d:%d/%d.%d", pkt2Hdr.DestZone, pkt2Hdr.DestNet, pkt2Hdr.DestNode, pkt2Hdr.DestPoint); } memcpy (Password, pkt2Hdr.Password, sizeof (pkt2Hdr.Password)); Password[sizeof (pkt2Hdr.Password)] = '\0'; RetVal = TRUE; } } } } if (RetVal == TRUE) { Date.Day = (UCHAR)pkt2Hdr.Day; Date.Month = (UCHAR)(pkt2Hdr.Month + 1); Date.Year = (USHORT)pkt2Hdr.Year; Date.Hour = (UCHAR)pkt2Hdr.Hour; Date.Minute = (UCHAR)pkt2Hdr.Minute; Date.Second = (UCHAR)pkt2Hdr.Second; } if (RetVal == TRUE && fp != NULL && doScan == TRUE) { do { memset (&pktIndex, 0, sizeof (PKTINDEX)); pktIndex.Position = ftell (fp); memset (&msgHdr, 0, sizeof (MSGHDR)); fread (&msgHdr, sizeof (MSGHDR), 1, fp); if (msgHdr.Version == 2) { // Date and time while ((c = fgetc (fp)) != '\0' && c != EOF) ; // To while ((c = fgetc (fp)) != '\0' && c != EOF) ; // From while ((c = fgetc (fp)) != '\0' && c != EOF) ; // Subject while ((c = fgetc (fp)) != '\0' && c != EOF) ; // Text body while ((c = fgetc (fp)) != '\0' && c != EOF) ; TotalMsgs++; pktIndex.Number = TotalMsgs; Index.Add (&pktIndex, sizeof (PKTINDEX)); } else if (msgHdr.Version != 0) { while ((c = fgetc (fp)) != EOF && c != 0) ; if (c == 0) { Position = ftell (fp); memset (&msgHdr, 0, sizeof (MSGHDR)); fread (&msgHdr, sizeof (MSGHDR), 1, fp); fseek (fp, Position, SEEK_SET); } else msgHdr.Version = 0; } } while (msgHdr.Version != 0); } return (RetVal); }
USHORT PACKET::Add (class TCollection &MsgText) { int f1, f2, f3, f4, t1, t2, t3, t4; USHORT RetVal = TRUE, AddedIntl = FALSE, IsEchomail = FALSE; CHAR Temp[64], *pszText, *pszAddress, *p; PKTINDEX pktIndex; struct dosdate_t d_date; struct dostime_t d_time; memset (&pktIndex, 0, sizeof (PKTINDEX)); fflush (fp); fseek (fp, filelength (fileno (fp)) - 2L, SEEK_SET); pktIndex.Number = TotalMsgs + 1; pktIndex.Position = ftell (fp); memset (&msgHdr, 0, sizeof (msgHdr)); msgHdr.Version = 2; f1 = f2 = f3 = f4 = 0; pszAddress = FromAddress; if (strchr (pszAddress, ':') != NULL) { f1 = atoi (pszAddress); pszAddress = strchr (pszAddress, ':') + 1; } if (strchr (pszAddress, '/') != NULL) { f2 = (USHORT)atoi (pszAddress); pszAddress = strchr (pszAddress, '/') + 1; } f3 = (USHORT)atoi (pszAddress); if ((p = strchr (pszAddress, '@')) != NULL) *p++ = '\0'; if (strchr (pszAddress, '.') != NULL) { pszAddress = strchr (pszAddress, '.') + 1; f4 = (USHORT)atoi (pszAddress); } msgHdr.OrigNet = (USHORT)f2; msgHdr.OrigNode = (USHORT)f3; t1 = t2 = t3 = t4 = 0; pszAddress = ToAddress; if (strchr (pszAddress, ':') != NULL) { t1 = atoi (pszAddress); pszAddress = strchr (pszAddress, ':') + 1; } if (strchr (pszAddress, '/') != NULL) { t2 = (USHORT)atoi (pszAddress); pszAddress = strchr (pszAddress, '/') + 1; } t3 = (USHORT)atoi (pszAddress); if ((p = strchr (pszAddress, '@')) != NULL) *p++ = '\0'; if (strchr (pszAddress, '.') != NULL) { pszAddress = strchr (pszAddress, '.') + 1; t4 = (USHORT)atoi (pszAddress); } msgHdr.DestNet = (USHORT)t2; msgHdr.DestNode = (USHORT)t3; if (Crash == TRUE) msgHdr.Attrib |= MSGCRASH; if (FileAttach == TRUE) msgHdr.Attrib |= MSGFILE; if (FileRequest == TRUE) msgHdr.Attrib |= MSGFRQ; if (Hold == TRUE) msgHdr.Attrib |= MSGHOLD; if (KillSent == TRUE) msgHdr.Attrib |= MSGKILL; if (Local == TRUE) msgHdr.Attrib |= MSGLOCAL; if (Private == TRUE) msgHdr.Attrib |= MSGPRIVATE; if (ReceiptRequest == TRUE) msgHdr.Attrib |= MSGRRQ; if (Received == TRUE) msgHdr.Attrib |= MSGREAD; if (Sent == TRUE) msgHdr.Attrib |= MSGSENT; fwrite (&msgHdr, sizeof (MSGHDR), 1, fp); _dos_getdate (&d_date); _dos_gettime (&d_time); if (Written.Day == 0) Written.Day = d_date.day; if (Written.Month == 0) Written.Month = d_date.month; if (Written.Year == 0) Written.Year = (USHORT)d_date.year; if (Written.Hour == 0) Written.Hour = d_time.hour; if (Written.Minute == 0) Written.Minute = d_time.minute; if (Written.Second == 0) Written.Second = d_time.second; sprintf (Line, "%2d %3.3s %02d %02d:%02d:%02d", Written.Day, pktMonths[Written.Month - 1], Written.Year % 100, Written.Hour, Written.Minute, 0); fwrite (Line, strlen (Line) + 1, 1, fp); fwrite (To, strlen (To) + 1, 1, fp); fwrite (From, strlen (From) + 1, 1, fp); fwrite (Subject, strlen (Subject) + 1, 1, fp); if ((pszText = (PSZ)MsgText.First ()) != NULL) { if (!strncmp (pszText, "AREA:", 5)) IsEchomail = TRUE; } if (IsEchomail == FALSE) { if (f1 != t1) { sprintf (Temp, "\001INTL %d:%d/%d %d:%d/%d\r", t1, t2, t3, f1, f2, f3); fwrite (Temp, strlen (Temp), 1, fp); AddedIntl = TRUE; } if (f4 != 0) { sprintf (Temp, "\001FMPT %u\r", f4); fwrite (Temp, strlen (Temp), 1, fp); } if (t4 != 0) { sprintf (Temp, "\001TOPT %u\r", t4); fwrite (Temp, strlen (Temp), 1, fp); } } if ((pszText = (PSZ)MsgText.First ()) != NULL) do { if (IsEchomail == FALSE) { if (!strncmp (pszText, "\001FMPT ", 6)) continue; else if (!strncmp (pszText, "\001TOPT ", 6)) continue; else if (!strncmp (pszText, "\001INTL ", 6) && AddedIntl == TRUE) continue; } fwrite (pszText, strlen (pszText), 1, fp); fwrite ("\r", 1, 1, fp); } while ((pszText = (PSZ)MsgText.Next ()) != NULL); fwrite ("\000\000\000", 3, 1, fp); Index.Add (&pktIndex, sizeof (PKTINDEX)); return (RetVal); }
void funccall::contpan() { int v; struct dostime_t t; struct dosdate_t d; do { textbackground(BLUE); textcolor(MAGENTA); _setcursortype(_NORMALCURSOR); clrscr(); textcolor(GREEN); box(4,4,4,4); box(4,4,6,6); textcolor(GREEN+BLINK); gotoxy(11,7); cputs("CREEPER"); delay(502); _dos_gettime(&t); _dos_getdate(&d); box(21,6,52,4,222); gotoxy(54,6); printf("DATE:%2d/%02d/%02d\n",d.day,d.month,d.year); gotoxy(54,7); printf("Time:%2d:%02d:%02d.%02d\n",t.hour,t.minute,t.second,t.hsecond); gotoxy(25,9); textcolor(WHITE+BLINK); cputs(">>>> CONTROL PANEL >>>>"); box(35,10,20,11); textcolor(WHITE); gotoxy(22,12); cputs("1. CHANGE PASSWORD"); gotoxy(22,14); cputs("2. CHANGE WELCOME NOTE"); gotoxy(22,16); cputs("0. MAIN MENU"); gotoxy(25,18); cputs("ENTER THE CHOICE NUMBER : "); v=int(getche()-48); delay(100); if(v) { switch(v) { case 1: chngpass(); break; case 2: chngwel(); break; default: gotoxy(27,20); cputs("INVALID ENTRY"); delay(1000); break; }} }while(v!=0); }
int qse_gettime (qse_ntime_t* t) { #if defined(_WIN32) SYSTEMTIME st; FILETIME ft; ULARGE_INTEGER li; /* * MSDN: The FILETIME structure is a 64-bit value representing the * number of 100-nanosecond intervals since January 1, 1601 (UTC). */ GetSystemTime (&st); if (SystemTimeToFileTime (&st, &ft) == FALSE) return -1; li.LowPart = ft.dwLowDateTime; li.HighPart = ft.dwHighDateTime; /* li.QuadPart is in the 100-nanosecond intervals */ t->sec = (li.QuadPart / (QSE_NSECS_PER_SEC / 100)) - EPOCH_DIFF_SECS; t->nsec = (li.QuadPart % (QSE_NSECS_PER_SEC / 100)) * 100; return 0; #elif defined(__OS2__) APIRET rc; DATETIME dt; qse_btime_t bt; /* Can I use DosQuerySysInfo(QSV_TIME_LOW) and * DosQuerySysInfo(QSV_TIME_HIGH) for this instead? * Maybe, resolution too low as it returns values * in seconds. */ rc = DosGetDateTime (&dt); if (rc != NO_ERROR) return -1; bt.year = dt.year - QSE_BTIME_YEAR_BASE; bt.mon = dt.month - 1; bt.mday = dt.day; bt.hour = dt.hours; bt.min = dt.minutes; bt.sec = dt.seconds; /*bt.msec = dt.hundredths * 10;*/ bt.isdst = -1; /* determine dst for me */ if (qse_timelocal (&bt, t) <= -1) return -1; t->nsec = QSE_MSEC_TO_NSEC(dt.hundredths * 10); return 0; #elif defined(__DOS__) struct dostime_t dt; struct dosdate_t dd; qse_btime_t bt; _dos_gettime (&dt); _dos_getdate (&dd); bt.year = dd.year - QSE_BTIME_YEAR_BASE; bt.mon = dd.month - 1; bt.mday = dd.day; bt.hour = dt.hour; bt.min = dt.minute; bt.sec = dt.second; /*bt.msec = dt.hsecond * 10; */ bt.isdst = -1; /* determine dst for me */ if (qse_timelocal (&bt, t) <= -1) return -1; t->nsec = QSE_MSEC_TO_NSEC(dt.hsecond * 10); return 0; #elif defined(macintosh) unsigned long tv; GetDateTime (&tv); t->sec = tv; tv->nsec = 0; return 0; #elif defined(HAVE_GETTIMEOFDAY) struct timeval tv; int n; /* TODO: consider using clock_gettime() if it's avaialble.. -lrt may be needed */ n = QSE_GETTIMEOFDAY (&tv, QSE_NULL); if (n == -1) return -1; t->sec = tv.tv_sec; t->nsec = QSE_USEC_TO_NSEC(tv.tv_usec); return 0; #else t->sec = QSE_TIME (QSE_NULL); t->nsec = 0; return 0; #endif }
void funccall::entertainment() { int v; struct dostime_t t; struct dosdate_t d; do { textbackground(BLUE); textcolor(MAGENTA); _setcursortype(_NORMALCURSOR); clrscr(); textcolor(GREEN); box(4,4,4,4); box(4,4,6,6); textcolor(GREEN+BLINK); gotoxy(11,7); cputs("CREEPER"); delay(502); _dos_gettime(&t); _dos_getdate(&d); box(21,6,52,4,222); gotoxy(54,6); printf("DATE:%2d/%02d/%02d\n",d.day,d.month,d.year); gotoxy(54,7); printf("Time:%2d:%02d:%02d.%02d\n",t.hour,t.minute,t.second,t.hsecond); gotoxy(25,9); textcolor(WHITE); cputs(">>> CREEPERTAINMENT >>>"); textcolor(WHITE); gotoxy(2,2); cputs(">>>> LETS TAKE ENTERTAINMENT TO NEXT LEVEL >>>>"); box(35,10,20,11); textcolor(WHITE); gotoxy(22,12); cputs("1. MUSIC"); gotoxy(22,14); cputs("2. GAMES"); gotoxy(22,16); cputs("0. MAIN MENU"); gotoxy(25,18); cputs("ENTER THE CHOICE NUMBER : "); v=int(getche()-48); delay(100); if(v) { switch(v) { case 1: music(); break; case 2: game(); break; default: gotoxy(27,20); cputs("INVALID ENTRY"); delay(1000); break; }} }while(v!=0); }
VOID TRoute::MakeArcMailName (PSZ pszAddress, CHAR Flag) { USHORT i, Found; CHAR *p; class TAddress Addr; class TOutbound *Out; struct stat statbuf; struct dosdate_t d_date; _dos_getdate (&d_date); Addr.Parse (pszAddress); if (Addr.Zone == 0 || Cfg->MailAddress.Zone == Addr.Zone) { if (Addr.Point != 0) sprintf (ArcMailName, "%s\\%04x%04x.pnt\\%08lx.%s", Outbound, Addr.Net, Addr.Node, StringCrc32 (Addr.String, 0xFFFFFFFFL), Exts[d_date.dayofweek]); else sprintf (ArcMailName, "%s\\%08lx.%s", Outbound, StringCrc32 (Addr.String, 0xFFFFFFFFL), Exts[d_date.dayofweek]); } else { if (Addr.Point != 0) sprintf (ArcMailName, "%s.%03x\\%04x%04x.pnt\\%08lx.%s", Outbound, Addr.Zone, Addr.Net, Addr.Node, StringCrc32 (Addr.String, 0xFFFFFFFFL), Exts[d_date.dayofweek]); else sprintf (ArcMailName, "%s.%03x\\%08lx.%s", Outbound, Addr.Zone, StringCrc32 (Addr.String, 0xFFFFFFFFL), Exts[d_date.dayofweek]); } Found = FALSE; if ((p = strchr (ArcMailName, '\0')) != NULL) { p--; for (i = '0'; i <= '9' && Found == FALSE; i++) { *p = (CHAR)i; if (stat (ArcMailName, &statbuf) == 0) { Found = TRUE; if (statbuf.st_size == 0L) { unlink (ArcMailName); if (++i > '9') i = '0'; *p = (CHAR)i; } } } if (Found == FALSE) *p = '0'; } if ((Out = new TOutbound (Cfg->Outbound)) != NULL) { if (Cfg->MailAddress.First () == TRUE) Out->DefaultZone = Cfg->MailAddress.Zone; Found = FALSE; Out->Add (Addr.Zone, Addr.Net, Addr.Node, Addr.Point, Addr.Domain); if (Out->First () == TRUE) do { if (!stricmp (Out->Complete, ArcMailName)) { Found = TRUE; break; } } while (Out->Next () == TRUE); if (Found == FALSE) { Out->New (); Out->Zone = Addr.Zone; Out->Net = Addr.Net; Out->Node = Addr.Node; Out->Point = Addr.Point; strcpy (Out->Domain, Addr.Domain); strcpy (Out->Name, &ArcMailName[strlen (ArcMailName) - 12]); strcpy (Out->Complete, ArcMailName); Out->Status = Flag; Out->ArcMail = TRUE; Out->TruncateAfter = TRUE; Out->Add (); Out->Update (); } delete Out; } }