Уголок Wiz'а

Обсуждение разнообразных вопросов, не подходящих по тематике в другие разделы.
Сообщение
Автор
Wiz
ШИЗО
Благодарил (а): 45 раз
Поблагодарили: 35 раз

№ 11940 Сообщение Wiz » 31 авг 2016 02:35

Изображение

Wiz
ШИЗО
Благодарил (а): 45 раз
Поблагодарили: 35 раз

№ 11941 Сообщение Wiz » 31 авг 2016 02:36

Изображение

Wiz
ШИЗО
Благодарил (а): 45 раз
Поблагодарили: 35 раз

№ 11942 Сообщение Wiz » 31 авг 2016 02:38

Изображение

Wiz
ШИЗО
Благодарил (а): 45 раз
Поблагодарили: 35 раз

№ 11943 Сообщение Wiz » 31 авг 2016 02:42

Изображение

Wiz
ШИЗО
Благодарил (а): 45 раз
Поблагодарили: 35 раз

№ 11944 Сообщение Wiz » 31 авг 2016 02:44

Изображение

Wiz
ШИЗО
Благодарил (а): 45 раз
Поблагодарили: 35 раз

№ 11945 Сообщение Wiz » 31 авг 2016 02:50

Изображение

Wiz
ШИЗО
Благодарил (а): 45 раз
Поблагодарили: 35 раз

№ 11946 Сообщение Wiz » 31 авг 2016 02:51

Изображение

Wiz
ШИЗО
Благодарил (а): 45 раз
Поблагодарили: 35 раз

№ 11947 Сообщение Wiz » 31 авг 2016 02:52

Изображение

Wiz
ШИЗО
Благодарил (а): 45 раз
Поблагодарили: 35 раз

№ 11948 Сообщение Wiz » 31 авг 2016 02:54

Изображение

Wiz
ШИЗО
Благодарил (а): 45 раз
Поблагодарили: 35 раз

№ 11949 Сообщение Wiz » 31 авг 2016 02:55

Изображение

Wiz
ШИЗО
Благодарил (а): 45 раз
Поблагодарили: 35 раз

№ 11950 Сообщение Wiz » 31 авг 2016 02:57

Изображение

Wiz
ШИЗО
Благодарил (а): 45 раз
Поблагодарили: 35 раз

№ 11951 Сообщение Wiz » 31 авг 2016 02:58

Как молоды мы были...как искренне любили...

а теперь состарились уже...

Wiz
ШИЗО
Благодарил (а): 45 раз
Поблагодарили: 35 раз

№ 11952 Сообщение Wiz » 31 авг 2016 02:59

Изображение

Wiz
ШИЗО
Благодарил (а): 45 раз
Поблагодарили: 35 раз

№ 11953 Сообщение Wiz » 31 авг 2016 03:01

Изображение

Wiz
ШИЗО
Благодарил (а): 45 раз
Поблагодарили: 35 раз

№ 11954 Сообщение Wiz » 31 авг 2016 03:17

(CONNECT_DATA=(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))(SERVICE_NAME=dbglobal)) * (ADDRESS=(PROTOCOL=tcp)(HOST=195.***.***.***)(PORT=2967)) * establish * dbglobal * 0
(CONNECT_DATA=(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))(SERVICE_NAME=dbglobal)) * (ADDRESS=(PROTOCOL=tcp)(HOST=195.***.***.***)(PORT=2968)) * establish * dbglobal * 12518
TNS-12518: TNS: процесс прослушивания не может отсоединить клиента
TNS-12560: TNS:ошибка адаптера протокола
(CONNECT_DATA=(SID=DBGLOBAL)(CID=(PROGRAM=D:\oracle\product\10.2.0\db_1\perl\5.8.3\bin\MSWin32-x86-multi-thread\perl.exe)(HOST=DBGLOBAL)(USER=SYSTEM))) (ADDRESS=(PROTOCOL=tcp)(HOST=195.***.***.***)(PORT=2970)) * establish * DBGLOBAL * 12518
TNS-12518: TNS: процесс прослушивания не может отсоединить клиента
TNS-12560: TNS:ошибка адаптера протокола
service_update * dbglobal * 0
ping * 0
(CONNECT_DATA=(CID=(PROGRAM=)(HOST=)(USER=SYSTEM))(COMMAND=status)(ARGUMENTS=64)(SERVICE=(ADDRESS=(PROTOCOL=TCP)(HOST=DBGLOBAL)(PORT=1521)))(VERSION=169870336)) * status * 0
(CONNECT_DATA=(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))(SERVICE_NAME=dbglobal)) * (ADDRESS=(PROTOCOL=tcp)(HOST=195.***.***.***)(PORT=2973)) * establish * dbglobal * 12518
TNS-12518: TNS: процесс прослушивания не может отсоединить клиента
TNS-12560: TNS:ошибка адаптера протокола
(CONNECT_DATA=(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))(SERVICE_NAME=dbglobal)) * (ADDRESS=(PROTOCOL=tcp)(HOST=195.***.***.***)(PORT=2974)) * establish * dbglobal * 12518
TNS-12518: TNS: процесс прослушивания не может отсоединить клиента
TNS-12560: TNS:ошибка адаптера протокола

Wiz
ШИЗО
Благодарил (а): 45 раз
Поблагодарили: 35 раз

№ 11955 Сообщение Wiz » 31 авг 2016 03:23

это "Бога нет!" называется ???

Изображение

Wiz
ШИЗО
Благодарил (а): 45 раз
Поблагодарили: 35 раз

№ 11956 Сообщение Wiz » 31 авг 2016 03:29

После этого кто-то посмеет сказать, что Бога нет, и это всё само собой образовалось?

Изображение

Wiz
ШИЗО
Благодарил (а): 45 раз
Поблагодарили: 35 раз

№ 11957 Сообщение Wiz » 31 авг 2016 03:35

Ученые: Вселенная не могла возникнуть сама

http://sokrovennik.com/news/nauka_i_mir ... iknut-sama

Все чаще мы можем слышать заявления ученых о том, что наша Вселенная настолько сложна и уникальна, что она просто не могла возникнуть в ходе естественного эволюционного процесса. Перебежчики «из науки в религию» не скрывают своих убеждений и открыто соглашаются с тем, что к созданию мира приложил руку некий «высший разум», который мы привыкли называть Богом. Даже самые закоренелые атеисты, будучи не в силах постичь принципы строения материи, поднимают «белый флаг» в знак примирения науки и религии. Согласно исследованиям маститых ученых, наш мир настолько сложен, что человеческий разум вообще не в состоянии его познать и объяснить.
Изображение
Все чаще ученые с мировыми именами становятся лауреатами Темплтоновской премии – это британская награда, основанная в 1973 году, которая дается за вклад в примирение науки и религии. Темплтоновская премия по своему размеру крупнее Нобелевской и составляет 1,4 млн долларов. Как раз в этом году ее лауреатом стал ученый Мартин Джон Рис. Британский физик удостоился такой чести за то, что его научные работы, которых написано более пятисот, существенно примиряют науку и религию.

Интересно то, что Рис до сих пор является атеистом и вовсе не стремился в ходе своих исследований доказать существование Создателя. Тем не менее, от премии он не отказался. Все дело в том, что его работы посвящены новейшим научным направлениям – теории параллельных миров, теории формирования галактик и функционирования черных дыр. В своих трудах ученый приходит к выводу, что ответ на вопрос «Как возникла Вселенная» найти невозможно, так как она неимоверно сложна и практически непознаваема. Именно за это утверждение ученый удостоился высшей оценки верующих.

Сознательные перебежчики

Некоторые ученые открыто заявляют о том, что Вселенная не могла возникнуть сама, и сознательно принимают сторону религии. Например, один из столпов научного атеизма – философ Энтони Флю – недавно выступил с речью, которая потрясла всех. Маститый ученый на 80-м году жизни отказался от своих атеистических воззрений и признал, что ошибался. Такой вывод, по словам ученого, он сделал на основе генетических исследований. Согласно генетикам, одна молекула ДНК содержит информацию, которая не уместится даже на 1 триллионе компакт-дисков. Автор этого открытия – Лед Эдлман, ученый из Южнокалифорнийского университета. Сама вероятность того, что столь сложная структура могла возникнуть сама, практически равна нулю. Ученые бессильны понять эту систему, а уж тем более создать на ее основе жизнь. Это приводит их к выводу, что жизнь возникла благодаря некоему мощному интеллекту, который нам неведом.

По словам Энтони Флю, огромный объем генетического кода и содержащейся в нем информации свидетельствует о том, что ДНК является искусственным творением. В частности, он приводит в качестве аргументов слова других известных ученых-генетиков – Фрэнсиса Крика и Джина Майерса. Знаменитые исследователи генома человека уверены: строение ДНК настолько совершенное и сложное, что за этим чувствуется мощный интеллект.

Физики и математики не отстают от генетиков. Вышеупомянутый Джон Рис в своих работах обосновывает то, что вся Вселенная является невероятно сложной и продуманной структурой, которая просто не могла возникнуть сама по себе. Ему вторит французский физик Бернар Эспанья, который исследовал жизнь на уровне квантовой механики. Он также удостоился Темплтоновской премии за «философское значение квантовой физики». Польский математик Михал Хеллер получил премию за то, что доказал существование высшего разума с помощью математики. Сам Хеллер немного не согласен с такой формулировкой, а свою концепцию объясняет так: «Речь идет о взгляде на науку с точки зрения религии: если Бог создал мир, а ученые способны исследовать его с помощью математики, значит Бог мыслит математически».

PRO и CONTRA

В ответ ученым, отрекшимся от атеизма, их непримиримые коллеги продолжают отстаивать постулат о том, что вера в Бога совершенно не оправдана. По их словам, доказать существование или отсутствие высшего разума в принципе невозможно, а атеизм является признаком здорового, независимого мышления. Лидеры научного атеистического подхода – профессор этологии Ричард Доукинс, нейробиолог Сэм Харрис и Кристофер Хитченс – активно пропагандируют свой образ мыслей и пишут множество книг на эту тему, например: «Бог как иллюзия», «Конец веры», «Бог не великий» и др. По их словам, то, что наука не может доказать отсутствие Бога, не значит, что он в самом деле существует.

Однако пока атеисты остаются в меньшинстве. Ученых, признавших версию создания Вселенной высшим разумом, значительно больше, и их количество с каждым годом растет. Возможно, в ближайшее время мы услышим еще не одно заявление ученых о том, что наука бессильна перед величием Вселенной. Для того чтобы это понять, не обязательно быть ученым и всю жизнь изучать квантовую механику. Достаточно рассудить здраво. Теория Большого взрыва утверждает, что материя, возникшая в результате взрыва, случайным образом сформировала все мироздание. Все мы знаем, что такое взрыв и какова вероятность того, что после него что-нибудь само сложится и превратится в слаженный механизм. Это все равно, что утверждать, будто в результате взрыва на часовом заводе из разлетевшихся осколков могут образоваться часы.

Взгляните на жизнь по-новому с книгами Анастасии Новых. Вы откроете для себя не только физические, но и духовные законы Вселенной, узнаете множество тайн и загадок человеческой истории и, возможно, пересмотрите свои убеждения о возможностях человека. Все книги доступны для бесплатного скачивания с нашего сайта, вам остается только перейти в соответствующий раздел. Также имеются и аудио форматы некоторых частей этих уникальных книг.
Читайте об этом подробнее в книгах Анастасии Новых:

""

– Совершенно верно. И если вы внимательно следите за работой академика Бехтеревой как человека и ученого, то увидите, что, изучая всю свою жизнь мозг человека, она приходит к выводу, что знает практически малую толику о нем, о его возможностях. И, тем не менее, чем больше она углубляется в изучение мозга, тем больше и больше, базируясь на исключительной сложности и сверхизбыточности мозга, склоняется к идее о его внеземном происхождении, то есть к истинному первоисточнику. И я больше чем уверен, что скоро она публично об этом заявит. Так же, как заявили об этом великие ученые всего мира и не только в сфере изучения психики, но и других естественных наук. К примеру, Эйнштейн, Тесла, Вернадский, Циолковский и остальные ученые с большой буквы. Этот список огромен и его можно долго перечислять. Но все эти люди пришли к тому, что человек уникальное и очень загадочное существо и никак не мог эволюционно зародиться на Земле от какой-то там инфузории-туфельки!
— Анастасия НОВЫХ Сэнсэй I

Wiz
ШИЗО
Благодарил (а): 45 раз
Поблагодарили: 35 раз

№ 11958 Сообщение Wiz » 31 авг 2016 03:39

Изображение

Wiz
ШИЗО
Благодарил (а): 45 раз
Поблагодарили: 35 раз

№ 11959 Сообщение Wiz » 31 авг 2016 08:02

Rectopedis_Erectus: да, Господи!

Изображение

https://www.youtube.com/watch?v=M5yX5i6iP8c 

А чего ты постоянно ноешь?

Wiz
ШИЗО
Благодарил (а): 45 раз
Поблагодарили: 35 раз

№ 11960 Сообщение Wiz » 31 авг 2016 08:06

Изображение

Wiz
ШИЗО
Благодарил (а): 45 раз
Поблагодарили: 35 раз

№ 11961 Сообщение Wiz » 31 авг 2016 08:07

Изображение

Wiz
ШИЗО
Благодарил (а): 45 раз
Поблагодарили: 35 раз

№ 11962 Сообщение Wiz » 31 авг 2016 08:12

// ДЕКОДИРУЕТ ФАЙЛ С СИНКЛЕРА
// моно 8 бит 44100 Гц
//#include <windows.h>
#include <fstream.h>
#include <string.h>
#include "zxserver.rh"
#include "zxserver.h"
#include "resource.h"

typedef unsigned char BYTE;

DWORD GetTotalIndex();
void RescanTapeCatalog();

char CurrentFileName[256]={0};
extern HWND hmain_hwnd;

/*
на частоте 44100 Гц 8 бит моно
при записи сигнала непосредственно с ЭВМ ZX-Spectrum
при уровне записи, превы. номинальные был получен сигнал
очень близок к прямоугольному
были получены след. данные:
количество выборок:
пилот: 26-27
синхросигнал: 8
логич "0": 9-10
логич "1": 20-21
Из этих значений строится логика программы
*/

int PILOT_MIN=22,
PILOT_MAX=36,
PILOT_WAIT=300,

SYNC_MIN=4,
SYNC_MAX=18,

ZERO_MIN=15,
ZERO_MAX=31, // ONE и ZERO по сумме двух фронтов

ONE_MIN=36,
ONE_MAX=54;

unsigned char BASE_LINE;


int counter; //содержит размер данного блока
int TapNumber=0;

ofstream ofl; //декодированные данные

//static int sign=1;
//int c=0;


extern char CurrentFileName[256];

int GetNum(int);

void ListShort(char *s);

//установка временных значений из формы
void LoadTimeValue(void)
{
PILOT_MIN=GetNum(IDC_PILOTMIN);
PILOT_MAX=GetNum(IDC_PILOTMAX);
PILOT_WAIT=GetNum(IDC_PILOTWAIT);
SYNC_MIN=GetNum(IDC_SYNCMIN);
SYNC_MAX=GetNum(IDC_SYNCMAX);
ZERO_MIN=GetNum(IDC_ZEROMIN);
ZERO_MAX=GetNum(IDC_ZEROMAX);
ONE_MIN=GetNum(IDC_ONEMIN);
ONE_MAX=GetNum(IDC_ONEMAX);
BASE_LINE=GetNum(IDC_BASE_LINE);
}

void List(char *);

int front();

extern int EnableReadFromFile;

//декодирует один файл
// 0 ok. Блок прочитан и его CRC-summ=0
// 1 CRC-summ != 0
int DecodeZX()
{
WaitPilot:

List("Wait pilot...");
int pilot=0; //означает длину пилот-сигнала
int fnt;

//ожидаем пилота
do {
fnt=front();

if (fnt>=PILOT_MIN && fnt<=PILOT_MAX) pilot++;
else pilot=0;

} while (pilot < PILOT_WAIT); //достаточно для синхронизации

List("Pilot stable.");

//теперь ждем импульса синхронизации
while (1)
{
fnt=front();

//пришел первый импульс синхронизации ?
if (fnt>=SYNC_MIN && fnt<=SYNC_MAX)
{
//со вторым импульсом ок ? (лежит в допустимых пределах)
fnt=front();
if (fnt>=SYNC_MIN && fnt<=SYNC_MAX)
{
List("Sync ok. Read data...");
break;
}
else
{
char str[80];
wsprintfA(str, "Sync bad (%i)", fnt);
List(str);
goto WaitPilot;
}
}

if (! (fnt>=PILOT_MIN && fnt<=PILOT_MAX))
{
char str[80];
wsprintfA(str,"Pilot break (%i)", fnt);


if (EnableReadFromFile)
{
extern ifstream file;
char buf[16];
wsprintfA(buf, ", addr=%i", file.tellg());
strcat(str,buf);
}

List(str);
goto WaitPilot;
}
}

counter=0; //счетчик байт
unsigned char crc=0; //crc-summa
//читаем данные
do {
unsigned char data=0; //сам принятый байт

for(int c=0; c<8; c++)
{
fnt=front();
int fnt2=front();

int a=fnt+fnt2;

//сумма двух фронтов соответствует лог. "1" ?
if (a>=ONE_MIN && a<=ONE_MAX)
{
data<<=1;
data|=1;
}
else if (a>=ZERO_MIN && a<=ZERO_MAX)
{
data<<=1;
}
else //если длительность фронта не соответствует 1 и 0
{
char str[80];
wsprintf(str, "end at %i bit", c);
List(str);
wsprintf(str, "fr1=%i fr2=%i sum=%i", fnt,fnt2,fnt+fnt2);
List(str);

//если режим чтения из файла
if (EnableReadFromFile)
{
extern ifstream file;
char buf[16];
//выдаем ошибочное место в файле
wsprintf(buf, "File position=%i", file.tellg());
List(buf);
}

// else
// List("Failure. Data break");
goto EndOfData;

}
}
ofl.put(data);
crc^=data;
counter++;
if ( (counter%1024) == 0 )
{
char buf[80];
wsprintfA(buf, "Read %i Kb", counter/1024);
List(buf);
}

} while (1);

EndOfData:

char str[80];
wsprintfA(str, "Read %i bytes", counter);
List(str);

//если crc сумма в порядке (равна 0)
if (!crc)
{
List("CRC summ ok");
wsprintf(str, "Read %i bytes okey", counter);
ListShort(str);

return 0;
}
//если crc сумма ошибочна (не ноль)
else
{
List("Warning! CRC summ error ");//<<crc<<")\n";
return 1;
}
}

unsigned long ZxDecode(unsigned long)
{
int err;
do {

char file[80];
wsprintfA(file,"out%03i.tap", TapNumber);

strcpy(CurrentFileName, file);

ofl.open(file,ios::binary);
if (!ofl)
{
List("Can't create file. Exit task");
return 0;
}

ofl.put(' '); ofl.put(' '); //резерв для длины (.tap)

//декодируем
err=DecodeZX();

//записываем в *.tap файл в самое его начало длину последующего блока
ofl.seekp(0);
ofl.put(char(counter%256));
ofl.put(char(counter/256));
ofl.seekp(0, ios::end);
int fileSize=ofl.tellp(); //получаем общий размер файла
ofl.close();

if (fileSize==2)
{
DeleteFile(file);
}
else// НЕ пустой файл ?
{
TapNumber++;
}

RescanTapeCatalog();

//выполняем комманду.
{
//открываем заново файл
ifstream cm(file, ios::binary);
cm.get(); cm.get(); //пропускаем длина файла
if (cm.get()==0 && fileSize==21) //заголовок ? (вообще-то 19, но 2 байта размер)
{
char *name;
int type=cm.get(); //читаем тип блока,к-ый опис. заголовок
if (type == 0) name="Program:";
if (type == 1 || type == 2) name="Array:";
if (type == 3) name="Bytes:";


char buf[11]; //резерв для имени
for(int i=0; i<10; i++)
buf=cm.get();

buf=0;

char res[255]="\x0";
strcat(res,name);
strcat(res,buf);
List(res);
ListShort(res);
int bsize=BYTE(cm.get())+BYTE(cm.get())*256;

char zm[20];
wsprintfA(zm,"Wait %i bytes", bsize);
ListShort(zm);

wsprintfA(res,"Block size=%i", bsize);
List(res);


//WinExec(buf, SW_NORMAL);
}
cm.close();
}

//log<<'<'<<file<< ">\n";
List(file);

HWND hlist=GetDlgItem(hmain_hwnd, IDC_LIST);
SendMessage(hlist, LB_ADDSTRING, 0,(WPARAM)file);


List(" ");

} while (err != -1);

return 0;
}

Wiz
ШИЗО
Благодарил (а): 45 раз
Поблагодарили: 35 раз

№ 11963 Сообщение Wiz » 31 авг 2016 08:15

/* ZX-Server
Основная идея - принимать с ZX-Spectrum'a
блоки данных и обрабатывать их.
Обмен такой же как и с магнитофоном
*/

#include <windows.h>

#include <stdlib.h>
#include <fstream.h>

#include "zxserver.rh"
#include "cstring.h"
#include "zxserver.h"
#include "resource.h"

PIPE pipe;

int sign=1;
int c=0;

extern int TapNumber;

ifstream file;

extern ofstream ofl;

HWND hmain_hwnd=0;

//ofstream log("front.log");

void InitDialogBox();

HGLOBAL hglob;

HANDLE hThread;

extern char CurrentFileName[256];

//разрешать чтение не с саудн карты а из файла
BOOL EnableReadFromFile=FALSE;

extern BYTE BASE_LINE;

ofstream wav("wavfile.pcm");

HPEN hpen_back;
HPEN hpen_draw;


void LoadTimeValue(void);
void List(char *s);
void OnIDC_STOP();

void Mes(char *a)
{
MessageBox(NULL, a, "Сообщение",
MB_OK | MB_ICONINFORMATION);

}

void fatal(char *s)
{
MessageBox(NULL,s,"FATAL ERROR",NULL);
ExitProcess(0);
}


BYTE PIPE::Read()
{
if (first==NULL)
{
int err_code=WaitForSingleObject(can_read,
INFINITE);
if (err_code == WAIT_FAILED)
fatal("WaitForSingleObject -> WAIT_FAILED");
}

//в случае непредвиденное ситуации -
//пришло событие на разрещении чтения
//но указатель начала списка все еще обнулен
if (first == NULL ) fatal("PIPE::Read() - first == NULL");

//читаем данные

//здесь ошибка!!!
BYTE r=first->data[read_index];

read_index++;
total_index++;
if (read_index == first->size)
{
//обнуляем счетчик
read_index=0;

//удаляем данные в блоке
delete first->data;

// всего один блок ?
if (last == first)
{
delete first;
first=NULL;
last=NULL;
ResetEvent(can_read); //???
}
else
{
BLOCK * bl=first;
first=bl->next;
delete bl;
}


}
else if (read_index > first->size)
{
fatal("pipe::read = read_index > first->size");
}
return r;
}

//добавить в конец
void PIPE::add(char * src, int size)
{
//выделяем память для struct новогоблока
BLOCK * bl = new BLOCK;
//if (!bl)
bl->data=new BYTE[size];
if (!bl->data) fatal("PIPE::add - out of memory");
memcpy(bl->data,src,size);

// wav.write(bl->data, size);

bl->size=size;
bl->next=NULL;

//если нет объектов в списке
if (first==NULL)
{
first=bl;
last=bl;
}
else
{
last->next=bl;
last=bl;
}

SetEvent(can_read); //теперь можно читать
}


//возращает количество выборок одного знака
int front()
{
while (1)
{
if (c>200) { c=0; return -1;} //возвращаем слишком больш

BYTE n;
if (EnableReadFromFile)
{
n=file.get();
if (file.eof()) //достигнут конец файла
{
OnIDC_STOP();
EnableReadFromFile=FALSE; //сбрасываем автоматически

file.close();
List(".PCM file closed");

int sz=ofl.tellp();
ofl.close();

ExitThread(-1);
}
}
else
{
n=pipe.Read();
}
if (n>=BASE_LINE && sign==1) c++;
else if(n<BASE_LINE && sign==-1) c++;
else
{
int ret=c;
c=1;
sign*=-1;
// log<<ret<<' ';
return ret;
}
}
}


HWND hdlg,
hdlg_setting;


DWORD ZxDecode(DWORD);

//флаг.
int InStop=TRUE;

int BlockPrepareIn=0;

HWAVEIN waveIn;

//заголовки трех блоков
WAVEHDR HdrIn0;
WAVEHDR HdrIn1;
WAVEHDR HdrIn2;

//сами блоки
BYTE *buf0;
BYTE *buf1;
BYTE *buf2;

//длина записывающего буфера
int Recbuflen;

void ListShort(char *s)
{
char str[256];

strcpy(str,s);
SendDlgItemMessage(hdlg, IDC_SHORT_LOG, EM_REPLACESEL, 0, (long)str);
SendDlgItemMessage(hdlg, IDC_SHORT_LOG, EM_REPLACESEL, 0, (long)"\r\n");
}


void List(char *s)
{
char str[256];

SYSTEMTIME st;
GetLocalTime(&st);
wsprintf(str, "%02i:%02i:%02i ",
st.wHour,st.wMinute,st.wSecond);
strcat(str, s);

SendDlgItemMessage(hdlg, IDC_EDIT, EM_REPLACESEL, 0, (long)str);
SendDlgItemMessage(hdlg, IDC_EDIT, EM_REPLACESEL, 0, (long)"\r\n");
ofstream ofl("status.log", ios::app);
ofl<<s;
ofl<<endl;
ofl.close();
}

void List(STRING &s)
{
List(s.Get());
}


//добавляет в очердь след. буфер
void AddBuffer(WAVEHDR * hdr)
{
if (
waveInPrepareHeader(waveIn, hdr,
sizeof(WAVEHDR))
)
{
List("AddBuffer: Ошибка при вызове функции waveInPrepareHeader");
return;
}

BlockPrepareIn++;

if (waveInAddBuffer(waveIn, hdr, sizeof(WAVEHDR)))
List("AddBuffer: Ошибка при вызове функции waveInAddBuffer");
}


//запрещает кнопку
void Disable(int ID, HWND h=hdlg)
{
HWND hwnd=GetDlgItem(h, ID);
EnableWindow(hwnd, FALSE);
}

//разрещает кнопку
void Enable(int ID,HWND h=hdlg)
{
HWND hwnd=GetDlgItem(h, ID);
EnableWindow(hwnd, TRUE);
}


//возвращает ошибку в текстовом виде
void MMTextErrorIn(int wError)
{
char buf[1024];
waveInGetErrorText(wError, buf, 1024);
Mes(buf);
}

//возвращает числовое значение,
//находящеесе в элементе формы idc
int GetNumber(int idc)
{
char buf[10];
GetDlgItemText(hdlg, idc, buf, 9);
return atoi(buf);
}

//возвращает числовое значение,
//находящеесе в элементе формы idc
int GetNum(int idc)
{
char buf[10];
GetDlgItemText(hdlg_setting, idc, buf, 9);
return atoi(buf);
}


//устанавливает числовое значение num,
//находящеесе в элементе idc формы hdlg
int SetNumber(int idc, int num)
{
char buf[50];
itoa(num,buf,10);
SetDlgItemText(hdlg, idc, buf);
return 0;
}

//устанавливает числовое значение num,
//находящеесе в элементе idc формы hdlg_setting
int SetNum(int idc, int num)
{
char buf[50];
itoa(num,buf,10);
SetDlgItemText(hdlg_setting, idc, buf);
return 0;
}


void OnIDC_STOP()
{
InStop=TRUE;

if (!EnableReadFromFile)
{
if(waveInReset(waveIn))
{
List("OnIDC_STOP -> ошибка функции waveInReset");
return;
}
}

Enable(IDC_START);
Disable(IDC_STOP);

HWND h=hdlg_setting;
Enable(IDC_PILOTMIN, h);
Enable(IDC_PILOTMAX, h);
Enable(IDC_PILOTWAIT, h);
Enable(IDC_SYNCMIN, h);
Enable(IDC_SYNCMAX, h);
Enable(IDC_ONEMAX, h);
Enable(IDC_ONEMIN, h);
Enable(IDC_ZEROMIN, h);
Enable(IDC_ZEROMAX, h);

}

void InitButtons()
{
Disable(IDC_START);
Enable(IDC_STOP);

HWND h=hdlg_setting;
Disable(IDC_PILOTMIN, h);
Disable(IDC_PILOTMAX, h);
Disable(IDC_PILOTWAIT, h);
Disable(IDC_SYNCMIN, h);
Disable(IDC_SYNCMAX, h);
Disable(IDC_ONEMAX, h);
Disable(IDC_ONEMIN, h);
Disable(IDC_ZEROMIN, h);
Disable(IDC_ZEROMAX, h);
Disable(IDC_BASE_LINE, h);

LoadTimeValue();

}

BOOL OnIDC_START()
{
if (IsDlgButtonChecked(hdlg, IDC_USE_PCM_FILE))
{
char filename[128];
GetDlgItemText(hdlg, IDC_EDIT_PCM_FILE, filename,127);
//открываем файл
file.open(filename, ios::binary);
if (!file)
{
Mes("Невозможно открыть файл");
return FALSE;
}

EnableReadFromFile=TRUE;

InitButtons();

return TRUE;
}


Recbuflen=GetNumber(IDC_BUFFERLENGTH);
if (Recbuflen<256 || Recbuflen>200000)
{
Mes("Значение поля Buffer Len \n"
"должно быть в пределах 256..200000");
return FALSE;
}

hglob=GlobalAlloc(GMEM_FIXED, Recbuflen*3);
if (!hglob) Mes("Out of Memory");
BYTE * addr=(BYTE*)GlobalLock(hglob);

//выделяем память под блоки
buf0=addr;
buf1=addr+Recbuflen;
buf2=addr+Recbuflen*2;

//получаем частоту дескритизации
// int samplerate=GetNumber(IDC_SAMPLERATE);
int samplerate=44100;
// int samplerate=22050;


SetNumber(IDC_SAMPLERATE,samplerate);

if ( samplerate <4096 || samplerate > 44100 )
{
Mes("Значение частоты дескритизации \n"
"должно быть в пределах\n"
"4096 ... 44100");
return FALSE;
}

PCMWAVEFORMAT p;

p.wf.wFormatTag=WAVE_FORMAT_PCM;
p.wf.nChannels=1;
p.wf.nSamplesPerSec=samplerate;
p.wf.nAvgBytesPerSec=p.wf.nSamplesPerSec;
p.wf.nBlockAlign=1;
p.wBitsPerSample=8;

class A
{
public:
char *s;
A(char *d): s(d) {}
};

class B
{
public:
char *s;
B(char *d): s(d) {}
};

try {
if (waveInOpen(
&waveIn,
//ВНИМАНИЕ ! ВОТ ЗДЕСЬ МОЖЕТ БЫТЬ КРОЕТССЯ ФИШКА
// В КАЧЕСТВЕ ЗАПИСИ
// WAVE_MAPPER,
0,
(WAVEFORMATEX*)&p,
DWORD(hdlg),
0,
CALLBACK_WINDOW)
)
{
throw("Невозможно открыть записывающие устройство!\r\n"
"Скорее всего звуковая карта занята другим приложением.");
}

HdrIn0.lpData=LPSTR(buf0);
HdrIn0.dwBufferLength=Recbuflen;

HdrIn1.lpData=LPSTR(buf1);
HdrIn1.dwBufferLength=Recbuflen;

HdrIn2.lpData=LPSTR(buf2);
HdrIn2.dwBufferLength=Recbuflen;

AddBuffer(&HdrIn0);
AddBuffer(&HdrIn1);
AddBuffer(&HdrIn2);

if (waveInStart(waveIn))
{
throw(B("OnIDC_START Ошибка при попытке записи звука (функция waveInStart)"));
}

InStop=FALSE;

InitButtons();
return TRUE;
}

catch (char *str)
{ Mes(str);

return FALSE;
}
catch (A d)
{
waveInClose(waveIn);
Mes(d.s);
return FALSE;
}
catch (B d)
{
waveInClose(waveIn);
Mes(d.s);
return FALSE;
}

}

LONG WINAPI MainWndProc(HWND hwnd, UINT msg, WPARAM wParam,
LPARAM lParam)
{
return DefWindowProc(hwnd, msg, wParam, lParam);
}

class REGISTRY
{
HKEY hkey;
public:
~REGISTRY() { RegCloseKey(hkey);}
REGISTRY()
{
DWORD dis=REG_CREATED_NEW_KEY;
if (RegCreateKeyEx(
HKEY_CURRENT_USER,// handle to open key
"SOFTWARE\\ZxServer\\TimeSetting", // subkey name
0,// reserved
0,// class string
REG_OPTION_NON_VOLATILE,// // special options
KEY_CREATE_SUB_KEY|KEY_QUERY_VALUE|KEY_SET_VALUE, // desired security access
NULL, //LPSECURITY_ATTRIBUTES inheritance
&hkey, // result key handle
&dis // disposition value buffer
) != ERROR_SUCCESS)
{
Mes("error open key");
}
// else Mes("reg ok");
}
void Set(char *s, DWORD val)
{
RegSetValueEx(hkey, s, 0,
REG_DWORD, (BYTE*)&val, sizeof(val));
}
DWORD Get(char *s)
{
DWORD val;
DWORD typ=REG_DWORD;
DWORD size=4;
RegQueryValueEx(hkey, s, 0,
&typ, (BYTE*)&val, &size);
return val;
}
};


BOOL WINAPI SettingDialogProc(HWND hwnd, UINT msg, WPARAM wParam,
LPARAM lParam)
{
switch (msg)
{
case WM_INITDIALOG:
return TRUE;

case WM_COMMAND:
{
switch ( HIWORD(wParam))
{
case EN_CHANGE:
//Mes("EN_CHANGE");
break;
}

switch (wParam)
{
case IDC_LOAD_REGISTRY:
{
REGISTRY Reg;
SetNum(IDC_PILOTMIN,Reg.Get("PilotMin"));
SetNum(IDC_PILOTMAX,Reg.Get("PilotMax"));
SetNum(IDC_PILOTWAIT,Reg.Get("PilotWait"));
SetNum(IDC_SYNCMIN,Reg.Get("SyncMin"));
SetNum(IDC_SYNCMAX,Reg.Get("SyncMax"));
SetNum(IDC_ZEROMIN,Reg.Get("ZeroMin"));
SetNum(IDC_ZEROMAX,Reg.Get("ZeroMax"));
SetNum(IDC_ONEMIN,Reg.Get("OneMin"));
SetNum(IDC_ONEMAX,Reg.Get("OneMax"));
SetNum(IDC_BASE_LINE, Reg.Get("BaseLine"));
break;
}

case IDC_DEFAULT:
{
InitDialogBox();
break;;
}


case IDC_SAVE_REGISTRY:
{

REGISTRY Reg;

Reg.Set("PilotMin", GetNum(IDC_PILOTMIN));
Reg.Set("PilotMax", GetNum(IDC_PILOTMAX));
Reg.Set("PilotWait", GetNum(IDC_PILOTWAIT));
Reg.Set("SyncMin", GetNum(IDC_SYNCMIN));
Reg.Set("SyncMax", GetNum(IDC_SYNCMAX));
Reg.Set("ZeroMin", GetNum(IDC_ZEROMIN));
Reg.Set("ZeroMax", GetNum(IDC_ZEROMAX));
Reg.Set("OneMin", GetNum(IDC_ONEMIN));
Reg.Set("OneMax", GetNum(IDC_ONEMAX));
Reg.Set("BaseLine", GetNum(IDC_BASE_LINE));
break;
}
}
break;
}
}
return FALSE;
}

void InitDialogBox()
{
SetNum(IDC_PILOTMIN,21);
SetNum(IDC_PILOTMAX,36);
SetNum(IDC_PILOTWAIT,300);

SetNum(IDC_SYNCMIN,4);
SetNum(IDC_SYNCMAX,18);
SetNum(IDC_SYNCMIN,4);

SetNum(IDC_ZEROMIN,15);
SetNum(IDC_ZEROMAX,28);

SetNum(IDC_ONEMIN,33);
SetNum(IDC_ONEMAX,54);

SetNum(IDC_BASE_LINE,128);

SetNumber(IDC_BUFFERLENGTH,1024);

SetDlgItemText(hdlg,IDC_EDIT_PCM_FILE,"sinclair.pcm");
}

void GenerateMp3File()
{

}

void DrawOscilog(HWND hdlg, BYTE * sound, int size)
{

HWND hos=GetDlgItem(hdlg, IDC_OSZILOG);
HDC hdc=GetDC(hos);


RECT rt;
GetClientRect(hos,&rt);
int max=rt.right-rt.left;
int hei=rt.bottom-rt.top;
int x=rt.left, center=rt.top+hei/2;

double scale=hei/256.0;

HPEN penGreen=CreatePen(PS_SOLID, 1, RGB(0,255,0)),
penBlack=CreatePen(PS_SOLID, 1, RGB(0,0,0));

HPEN oldPen=(HPEN)SelectObject(hdc,penGreen);

float step=float(size)/max,j=0;
//BYTE val=0;
int maxDB=0;
for(int i=0; i<max; i++,j+=step)
{
//рисуем черную линии
SelectObject(hdc,penBlack);
MoveToEx(hdc, x,center-hei/2,NULL);
LineTo(hdc,x, center+hei/2);

//рисуем зеленую линию
SelectObject(hdc,penGreen);
MoveToEx(hdc,x,center,NULL);

int val=int(sound[int(j)])-128;
if (val>maxDB) maxDB=val;

int k=int(val*scale);

LineTo(hdc, x,center+k);

x++;
}

SelectObject(hdc, oldPen);

DeleteObject(penGreen);
DeleteObject(penBlack);
ReleaseDC(hdlg,hdc);

// SetDlgItemInt(hdlg,IDC_MAX_SIGNAL_DB, maxDB, false);

}

BOOL WINAPI DialogProc(HWND hwnd, UINT msg, WPARAM wParam,
LPARAM lParam)
{
switch (msg)
{
//сообщение поступает при окончании записи
//одного из блоков данных
case MM_WIM_DATA:
{
//получаем указатель на структуру, описываюшую
//данный блок.
WAVEHDR * wh=(WAVEHDR*)lParam;

int err; //код ошибки

//освобождаем блок
err=waveInUnprepareHeader(waveIn, wh, sizeof(WAVEHDR));
if (err)
{
List("MM_WIM_DATA: Ошибка функции waveInUnprepareHeader");
MMTextErrorIn(err);
return 0;
}

//Уменьшаем счетчик блоков
BlockPrepareIn--;

// STRING s="BlockPreapreIn= ";
// s+=(WORD)BlockPrepareIn;
// List(s);

//если нажали стоп и все блоки освободил - закрываем
//устройство записи
if (InStop == TRUE && BlockPrepareIn==0)
{
if (waveInClose(waveIn))
{
List("MM_WIM_DATA: Устройство записи невозможно закрыть");
}
else
{
List("WaveInClose: ok");

GlobalUnlock(hglob);
GlobalFree(hglob);
}
}
else if (!InStop)
{
pipe.add(wh->lpData, wh->dwBufferLength);
//здесь пришли данные
AddBuffer(wh);

DrawOscilog(hwnd, (BYTE*)wh->lpData, wh->dwBufferLength);
}
return 0;
}

//сообщение поступает много раз в секунду
case WM_TIMER:
{
if (InStop) break;

MMTIME info;
memset(&info,0,sizeof(info));
info.wType=TIME_BYTES;

waveInGetPosition(waveIn, &info, sizeof(info));
SetNumber(IDC_POS, info.u.cb);

return 0;
}


case WM_COMMAND:
{
switch (LOWORD(wParam))
{

case IDC_GENERATE:
{
MessageBox(hwnd, "в процессе", "Генерация mp3 файла", MB_OK);
GenerateMp3File();
break;
}

case IDC_USE_SOUND_CARD:
{
//Disable(IDC_EDIT_PCM_FILE);
break;
}


case IDC_USE_PCM_FILE:
{
//Enable(IDC_EDIT_PCM_FILE);
break;
}

case CM_FILEHIDE:
{
ShowWindow(hwnd,FALSE);
break;
}


case IDOK:
if (InStop == FALSE)
SendMessage(hwnd, WM_COMMAND, IDC_STOP,0);

PostQuitMessage(0);
return 0;

case IDC_START:
if (OnIDC_START() == TRUE)
{
//пускаем задачу
//создаем задачу
DWORD threadID;
hThread=CreateThread(NULL, 0,
(LPTHREAD_START_ROUTINE)ZxDecode, NULL, 0, &threadID);
if (!hThread) throw("CreateThread fails");
}
return 0;

case IDC_STOP:
OnIDC_STOP();

ofl.close();

file.close();

TerminateThread(hThread, -2);
return 0;
}
return 0;
}

case WM_INITDIALOG:
return TRUE;

case WM_CLOSE:
PostQuitMessage(0);
return TRUE;
}
return 0;
}

void AddToListInfo(char * filename)
{
HWND hlist=GetDlgItem(hdlg, IDC_LIST);
//открываем заново файл
ifstream cm(filename, ios::binary);
cm.seekg(0, ios::end);
int fileSize=cm.tellg(); //получаем общий размер файла

cm.seekg(0, ios::beg);

cm.get(); cm.get(); //пропускаем длина файла

char *name="Data:";
char bsizetxt[32]="";
char fsizetxt[32]="";
itoa(fileSize-2, fsizetxt, 10);

char res[255]={0};

int bname=cm.get();

int type=cm.get(); //читаем тип блока,к-ый опис. заголовок

strcpy(res,name);

if (fileSize==21 && bname==0)
{

if (type == 0) name="Head(Program):";
if (type == 1 || type == 2) name="Head(Array):";
if (type == 3) name="Head(Bytes):";

char buf[11]={0}; //резерв для имени

for(int i=0; i<10; i++) buf=cm.get();

strcpy(res,name);
strcat(res,buf);

int bsize=BYTE(cm.get())+BYTE(cm.get())*256;

itoa(bsize, bsizetxt, 10);
}
char str[1024]={0};

strcpy(str,filename);
strcat(str," ");
strcat(str,res);
strcat(str," ");
strcat(str,bsizetxt);
strcat(str," (");
strcat(str,fsizetxt);
strcat(str,")");

SendMessage(hlist, LB_ADDSTRING, 0,(WPARAM)str);

int cnt=SendMessage(hlist, LB_GETCOUNT, 0,0);
SendMessage(hlist, LB_SETCURSEL, cnt-1,0);

cm.close();

}

void RescanTapeCatalog()
{
HWND hlist=GetDlgItem(hdlg, IDC_LIST);

SendMessage(hlist, LB_RESETCONTENT,0,0);

//поиск последнего файла *.tap
for(int i=0; i<999; i++)
{
char filename[80];
wsprintf(filename,"out%03i.tap",i);
ifstream ifl;
ifl.open(filename,ios::nocreate);
if (!ifl)
{
continue;
}
else
{
AddToListInfo(filename);
TapNumber=i;
}
}

TapNumber++;
}

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR CmdLine, int nCmdShow )
{

WNDCLASS wc;
memset(&wc, 0, sizeof(wc));
wc.hInstance=hInstance;
wc.lpszClassName="zxserverclass";
wc.lpfnWndProc=MainWndProc;
wc.hIcon=LoadIcon(NULL,IDI_APPLICATION);
if (!RegisterClass(&wc))
{
Mes("Не могу зарегистрировать класс!");
return -1;
}


try {

hdlg_setting=CreateDialog(hInstance, "DIALOG_2", NULL,
(DLGPROC) SettingDialogProc);

if (!hdlg_setting) throw("Не могу создать вторую диалоговую панель");

hdlg=CreateDialog(hInstance, "MyDialog", NULL,
(DLGPROC) DialogProc);

hmain_hwnd=hdlg;

if (!hdlg) throw("Не могу создать главную диалоговую панель");

CheckDlgButton(hdlg, IDC_USE_SOUND_CARD, TRUE);

// SendMessage(hdlg, WM_COMMAND, IDC_START,0);

SetFocus(GetDlgItem(hdlg, IDC_STOP));


UINT timer=SetTimer(hdlg, 1, 100, NULL);

if (!timer) throw("Не могу инициализровать таймер");

MSG msg;


CreateDirectory("TAPE",NULL);
SetCurrentDirectory("TAPE");

hpen_back=CreatePen(PS_SOLID, 1, RGB(0,0,0));
hpen_draw=CreatePen(PS_SOLID, 1, RGB(0,255,0));

RescanTapeCatalog();

InitDialogBox();

SendMessage(hdlg, WM_COMMAND, IDC_START,0);

while (GetMessage(&msg,0,0,0))
{
// DispatchMessage(&msg);

IsDialogMessage(hdlg, &msg);
IsDialogMessage(hdlg_setting, &msg);
//TranslateMessage(&msg);

}
KillTimer(hdlg, timer);
}//конец try
catch (char *s)
{
Mes(s);
}

return 0;
}




Wiz
ШИЗО
Благодарил (а): 45 раз
Поблагодарили: 35 раз

№ 11964 Сообщение Wiz » 31 авг 2016 08:22


Wiz
ШИЗО
Благодарил (а): 45 раз
Поблагодарили: 35 раз

№ 11965 Сообщение Wiz » 31 авг 2016 08:23

╚╝╚╝╚╝╚╝╚╝╚╝╚╝╚╝╚╝╚╝╚╝

Wiz
ШИЗО
Благодарил (а): 45 раз
Поблагодарили: 35 раз

№ 11966 Сообщение Wiz » 31 авг 2016 08:28

// Format_DiskA.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "Format_DiskA.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// The one and only application object

CWinApp theApp;


#include <Winioctl.h>
using namespace std;

#include <conio.h>


BOOL
GetDriveGeometry(HANDLE hDevice, DISK_GEOMETRY *pdg)
{
BOOL bResult; // results flag
DWORD junk; // discard results

/* hDevice = CreateFile("\\\\.\\PhysicalDrive0", // drive to open
0, // don't need any access to the drive
FILE_SHARE_READ | FILE_SHARE_WRITE, // share mode
NULL, // default security attributes
OPEN_EXISTING, // disposition
0, // file attributes
NULL); // don't copy any file's attributes
*/

if (hDevice == INVALID_HANDLE_VALUE) // we can't open the drive
{
return (FALSE);
}

bResult = DeviceIoControl(hDevice, // device we are querying
IOCTL_DISK_GET_DRIVE_GEOMETRY, // operation to perform
NULL, 0, // no input buffer, so pass zero
pdg, sizeof(*pdg), // output buffer
&junk, // discard count of bytes returned
(LPOVERLAPPED) NULL); // synchronous I/O

// CloseHandle(hDevice); // we're done with the handle

return (bResult);
}


bool ReadSector(HANDLE hFloppy, int cyl, int head, int sector)
{
DWORD fact;
int ONE_TRACK=18;
SetFilePointer(
hFloppy, cyl*ONE_TRACK*2*512+head*ONE_TRACK*512+sector*512, NULL, FILE_BEGIN);
BYTE buf[512];
ReadFile(hFloppy, buf, sizeof(buf),
&fact, NULL);
if (fact==sizeof(buf)) cout<<"+";
else cout<<"B";


return 1;

}


int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
int nRetCode = 0;

// initialize MFC and print and error on failure
if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
{
// TODO: change error code to suit your needs
cerr << _T("Fatal Error: MFC initialization failed") << endl;
nRetCode = 1;
}
else
{
// TODO: code your application's behavior here.
CString strHello;
strHello.LoadString(IDS_HELLO);
cout << (LPCTSTR)strHello << endl;
}



HANDLE hFloppy=CreateFile("\\\\.\\A:",
GENERIC_READ | GENERIC_WRITE,
0, NULL, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);

DISK_GEOMETRY pdg;
GetDriveGeometry(hFloppy, &pdg);


if (hFloppy == INVALID_HANDLE_VALUE)
{cout<<"can't open device a:\n";
getch(); return 1;}
else cout<<"Open ok!\n";

cout
<<"\nBytesPerSector -> " << pdg.BytesPerSector
<< "\nCylinders -> " << DWORD(pdg.Cylinders.QuadPart )

<< "\nMediaType ->" << int(pdg.MediaType)

<< "\nSectorsPerTrack -> " << pdg.SectorsPerTrack
<< "\nTrackPerCylinder -> "<<pdg.TracksPerCylinder ;


BYTE buf[512];
// cout<<"Read ";

cout<<endl;

FORMAT_PARAMETERS fops;
//FORMAT_EX_PARAMETERS fops;
//fops.FormatGapLength=100;
//fops.SectorNumber[0]=1;
//fops.SectorsPerTrack=18;

fops.StartCylinderNumber=3;
fops.EndCylinderNumber=3;

fops.StartHeadNumber=0;
fops.EndHeadNumber=0;

fops.MediaType=F3_1Pt44_512;

DWORD BytesReturned;

DWORD outbuffer[255];

cout<<"Start format...";
if (!DeviceIoControl(
hFloppy, // handle to device
IOCTL_DISK_FORMAT_TRACKS_EX, // dwIoControlCode
&fops,//lpInBuffer, // input buffer
sizeof(fops), // size of input buffer
&outbuffer, // lpOutBuffer
sizeof(outbuffer), // nOutBufferSize
&BytesReturned, // number of bytes returned
NULL)//(LPOVERLAPPED) lpOverlapped // OVERLAPPED structure
)
{
cout<<"Format error! "<< GetLastError()<<"\n";
}

else cout<<"Format ok!";

//а теперь поптыаемся считать содержимое дискеты

for(int cyl=0; cyl<80; cyl++)
{
cout<<"Cyl = "<<cyl<<'\n';

for(int head=0; head<2; head++)
{
cout<<"HEAD "<< head<<" -> ";
for(int sector=0; sector<18; sector++)
{
ReadSector(hFloppy, cyl, head, sector);
}
cout<<endl;
}
}

cout<<"\nPress any key to exit!\n";
getch();


CloseHandle(hFloppy);

return nRetCode;
}



Wiz
ШИЗО
Благодарил (а): 45 раз
Поблагодарили: 35 раз

№ 11967 Сообщение Wiz » 31 авг 2016 08:30

// Zorin.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "Zorin.h"
#include <conio.h>
#include "afx.h"

#ifdef _DEBUG
//#define new DEBUG_NEW
#endif
#include <vector>

// The one and only application object

CWinApp theApp;

using namespace std;

vector<INT> vect;

DWORD start;
DWORD end;
void _START()
{
start=GetTickCount();
}

void _END()
{
end=GetTickCount();
}

DWORD _LEN()
{
return end-start;
}

void main2()
{
}

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
try{
main2();
}
catch(CMemoryException &a)
{
int z=2;
z++;
}
/* catch(...)
{

cout<<"\nException (...)\n";
getch();
}
*/

// return 0;

cout<<"Are you sure to run non-destructive program ZORIN ?\n";
getch();
cout<<"Programm run's...wait\n";

int nRetCode = 0;

char *a;
bool FlagNewLine=false; //флаг, говоряший о том, что уже был перевод строки
HANDLE hSem;
cout<<"Create semaphore's...\n";
int count=0;
bool noblock=false;
bool FlagCantCreateSemaphore=false;//флаг, говорящий о том, что семафор создать не удалось

do {
hSem=CreateSemaphore(NULL,0,10,NULL);

//если не удалось создать семафор
if (hSem==NULL)
{

//если ранее уже не удавалось создать семафор
if (FlagCantCreateSemaphore==true)
{
end=GetTickCount();

DWORD time=end-start;

//если время с момента, когда не удалось созать семафор больше 1 секунды
if(time>1000)
{
//если ранее не было перевода строки
if (FlagNewLine==false)
{
//делаем перевод строки
//cout<<"\n";
FlagNewLine=true;
}
}

}
else
{
//устанавлифаем флаг, говорящий о том, что семафор создать не удалось
FlagCantCreateSemaphore=true;

//засекаем время, когда не удалось создать семафор
start=GetTickCount();
}

//cout<<"Can't create semaphore!";
Sleep(1);
noblock=true;
}
else
{
//удалось создать семафор
FlagCantCreateSemaphore=false;
FlagNewLine=false;
count++;

if ((count%1000 == 0) || noblock)
{
if (FlagNewLine)
{
cout<<"\n";
FlagNewLine=false;
}
cout<<count<<"\r";
if (kbhit())
{
if (getch()==27)
{
cout<<"\nBreaking...\n";
return -3;
}
}
}

}
} while(1);
//cout<<"\nCreated "<<count<<" semaphores"<<endl;
getch();

int mem=150;
do{
try
{
a=new char[1024*1024*mem];
if (a!=NULL)
{
break;
}
}
catch (...)
{
int a=3;
a++;
cout<<mem<<" fail \r";
mem--;
}
} while(1);
cout<<endl<<mem<<" ok\n";

const int MEGA=1024*1024;
rest:
_START();
DWORD size=mem*MEGA;
cout<<"Start Fill..\n";
for(int i=0; i<mem*MEGA; i++)
{
a=0;
}
_END();

cout<<"\nFill for(...) method: "<<_LEN()<<" ms"<<endl;
cout<<1000*mem/_LEN()<<" MBytes/sec"<<endl;


_START();
FillMemory(a,size,0);
_END();
cout<<"\nFillMemory() method: "<<_LEN()<<" ms "<<endl;
cout<<1000*mem/_LEN()<<" MBytes/sec"<<endl;


/* // initialize MFC and print and error on failure
if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
{
// TODO: change error code to suit your needs
_tprintf(_T("Fatal Error: MFC initialization failed\n"));
nRetCode = 1;
}
else
{
// TODO: code your application's behavior here.
}
*/

if (getch() != 27) goto rest;
cout<<endl<<"Exiting..."<<endl;
delete a;

return nRetCode;
}

class ZZ
{
};


Wiz
ШИЗО
Благодарил (а): 45 раз
Поблагодарили: 35 раз

№ 11968 Сообщение Wiz » 31 авг 2016 08:32

Изображение

Wiz
ШИЗО
Благодарил (а): 45 раз
Поблагодарили: 35 раз

№ 11969 Сообщение Wiz » 31 авг 2016 08:34

Изображение

Вернуться в «Общий форум»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя