C--

High-level languages programming questions
  • Паскаль нормальный, просто качать 50мб нехочется.

    Попробую портировать либы для смм. Каторые для Вин и Дос. НАпример для работы с графикой. Кучу алгоритмов скачал по графике.

    Потом портирую 2д физику и 2д движок. Он написан на паскале. Можно даже на асме портануть.

    Как вам дока?
  • Либа высчитывания синусов, косинусов и т.д. где-то была. Чуть позже выложу С-- с обновлёнными примерами и либами.
    Из хаоса в космос
  • Вот так годится?
    Attachments
    fpumath.h (5.54 KiB)
    Downloaded 327 times
    Last edited by Yaskhan on Thu Jul 23, 2009 7:12 pm, edited 1 time in total.
  • Вот еще
    Attachments
    libs.rar (5.96 KiB)
    Downloaded 283 times
  • Yaskhan wrote: Дайте кто нибудь шаблон для математика.н--
    с фпу, хоть с одним синусом.
    Вот что есть, в основном это работа с векторами, матрицами, кватернионами,
    все что касалось OpenGL, не помещал в архив. Все на асме, только адаптация под функции на C--
    math.zip (21.18 KiB)
    Downloaded 296 times
    Надеюсь пригодиться
  • Ух тыыыы........
    У тебя лежала такая вещь и ты никому не давал?!
  • Yaskhan wrote:Ух тыыыы........
    У тебя лежала такая вещь и ты никому не давал?!
    а не кому и не надо было.
    Да это все есть и даже больше на сайте Сфинкса,
    читай доку Михаила Шекера, быстро освоишь С--.
  • ОООООООй, оказывается математика вcтроена в компилятор )
    11.14 Встроенные в компилятор процедуры.


    Для некоторых процедур Вы не найдете их исходные тексты в библиотеках
    компилятора. Код этих процедур генерирует компилятор. Вот список этих
    процедур:

    ABORT_____________Прекращение выполнения программы
    atan_______________Вычислить арктангенс числа
    atan2______________Вычислить арктангенс числа
    ATEXIT_____________Зарегистрировать функцию выполняющуюся при выходе.
    cos________________Возвращает косинус угла
    EXIT_______________Закончить программу с кодом ошибки
    exp________________Возвращает экспоненту числа
    inp/inportb__________Считать один байт из порта
    inport______________Считать слово из порта
    inportd_____________Считать двойное слово из порта
    fabs________________Возвращает абсолютное значение числа
    log_________________Вычисляет натуральный логарифм числа
    log10_______________Вычисляет десятичный логарифм числа
    outp/outportb________Записать один байт в порт
    outport______________Записать слово в порт
    outportd_____________Записать двойное слово в порт
    sin__________________Возвращает синус угла
    sqrt_________________Извлечь квадратный корень через FPU.
    tan__________________Возвращает тангенс угла

    Размещение этих процедур непосредственно в компиляторе, связано с тем,
    что в настоящий момент компилятор может таким образом генерировать более
    эффективный код, чем если бы эти процедуры располагались в библиотеках.
    В будущем, по мере развития компилятора, эти процедуры постепенно будут
    выносится из компилятора в библиотеки.

    Но ничто не мешает Вам уже сейчас написать свои одноименные
    библиотечные процедуры. Встретив определение такой процедуры, компилятор не
    будет выдавать никаких сообщение, он просто будет применять Ваш вариант
    процедуры.
  • Немного украл из Дельфи. Надеюсь никто не засудит. Все на ассемблере.
    Attachments
    math.rar (53.58 KiB)
    Downloaded 277 times
  • Ерунда какая-то творится :(
    Пишу программу на C--, которая должна запустить другую программу.

    примерно так:

    Code: Select all

    
    #include "..\lib\kolibri.h--" 
    #include "..\lib\file_system.h--"
    #include "..\lib\memory.h--"
    
    
    
    void main()
    {	
    	dword id;
    
    loop()
    	{
    		switch(WaitEvent()) 
    		{
    			case evButton:
    				id=GetButtonID();					
    				
    				if (id==1) ExitProcess();
    				
    			break;
    		
    			case evKey:
    				RunProgram ("/sys/@menu",""); 
                    	break;
    			
    			case evReDraw:
    				draw_window();
    			break;
    		}
    	}
    	ExitProcess();
    }
    
    void draw_window()
    {
    	WindowRedrawStatus(1); 
    	DefineAndDrawWindow(300,176,300,223,0x34,0x10B2B4BF,0,0,"Start"); 
    	WriteText(120,150,0x80,0,"Press any key",0);
    	WindowRedrawStatus(2); 
    }
    
    stop:
    
    
    Компилируется.
    В Колибри работает замечательно. А в эмуляторе - нет. Запускается второй процесс KlbrInWin, и всё. Намертво зависают вдвоем.
    При том, что @panel и @menu работают превосходно в эмуляторе.

    Вопрос к тем, кто использовал RunProgram в С-- : а у вас в эмуляторе работало? или это у меня руки кривые?
  • У мя компилирует, запускается в эмуле. После нажатия запускается прога @menu, окно которой постоянно перерисовывается. Не знаю почему, пусть кто-то поумней расскажет. А вот следующий код работает отлично:

    Code: Select all

    #include "..\lib\kolibri.h--" 
    #include "..\lib\file_system.h--"
    #include "..\lib\memory.h--"
    
    
    
    void main()
    {   
       dword id;
       word key;
    
    loop()
       {
          switch(WaitEvent()) 
          {
             case evButton:
                id=GetButtonID();               
                if (id==1) ExitProcess();
    	       break;
          
             case evKey:
    		key = GetKey();
    		IF (key==013){ //Enter
    				RunProgram ("/sys/@menu",""); 
    		}
              break;
             
             case evReDraw:
                draw_window();
    	       break;
          }
       }
    }
    
    void draw_window()
    {
       WindowRedrawStatus(1); 
       DefineAndDrawWindow(300,176,300,223,0x34,0x10B2B4BF,0,0,"Start"); 
       WriteText(120,150,0x80,0,"Press any key",0);
       WindowRedrawStatus(2); 
    }
    
    stop:
    Из хаоса в космос
  • Leency, а можно твой эмулятор?
    твой вариант компилится, прога не вылетает, но всё равно не работает как надо :(
    вот такое чувство, что пути в конфиге прописаны у меня неправильно. но ведь panel (в котором путь так же прописан) отлично работает!
    уже пробовал и пути писать по-разному, например, пробовал /rd/1/shell
    не работает ни в какую :(
    правда я совсем без понятия, какой эмулятор я использую.. :( запутался в датах
  • Вот. Токо, тсссс!... Шоб diamond не спалил...
    Attachments
    KlbrInWin.zip (52.89 KiB)
    Downloaded 329 times
    Из хаоса в космос
  • Спасибо :)
    Кстати, засада была жестокой. Эта версия после указания правильных путей вообще работать отказалась.
    сравнил конфиги.

    в моей версии путь к рамдрайву "..\last\"
    а в той, что сделал конфиг - "C:\Documents and settings\" и так далее.
    перенес рамдрайв в папку без пробелов- и всё заработало.

    Такие вот дела :)
  • Who is online

    Users browsing this forum: No registered users and 21 guests