Help!?! (Borland C for MS DOS)
6 отговора
285 прегледа
Help!?! (Borland C for MS DOS)
Kak moga da izpylnq dve funkcii paralelno? V smisal imam opredeleni oblasti ot ekrana koito trqbva da bydat obnovqvani periodi4no (na vsqka minuta). Problema moje li da se reshi izcqlo na c/c++ ili trqbva da se izpolzva ASM?
P.S. compilatora s koito rabotq e Borland C/C++ v.3.11 for MS DOS
P.S. compilatora s koito rabotq e Borland C/C++ v.3.11 for MS DOS
Re: Help!?! (Borland C for MS DOS)
в дос нямаш мултитаскинг и не можеш да изпълняваш паралелно функции. можеш обаче да прихванеш таймета и да изпълняваш функциите по него
Re: Help!?! (Borland C for MS DOS)
tova dobre, mo moje li da se napravi na C (i kak) ili trqbva da se napishe na ASM
Re: Help!?! (Borland C for MS DOS)
хм, на С доколкото знам прекъсване не се прихваща. можеш да направиш само прихващането на асм, а функцията да е на с. а не ти ли върши работа безкраен цикъл? е, ще заемаш процесора на 100%, ама на кого му пука? ако си забелязал турбо паскал и вероятно и с работят така.
прихваща се на С и още как!
само че трябва да си пускал някога bc-то, за да знаеш. търси в help-a за getvect и setvect. няма да го paste-вам тука, макар че е кратко. има и начин да се правят копроцедури, което е полезно полякога под дос, със setjmp и longjmp, ама тва е малко встрани от темата. сполай ви!
Re: прихваща се на С и още как!
верно че не съм писал много на с под дос. но това са библиотеки, самия език с не прихваща прекъсване като модула 2 да речем. иначе това може и без библиотека да се направи - имената на функциите са указатели. не знам числено как се изразяват в bc, ама все ще има начин да се докопа сегманта и офсета. след това се цопват в таблицата...
Re: прихваща се на С и още как!
ами да, естествено, че може и без библиотеки да се направи, обаче просто тогава ще направиш ръчно, това което хората вече са написали за теб под формата на библиотека. указателите към функции са 32-битови числа (далечни указатели). сегментът и офсетът може да се вземат с макросите FP_SEG и FP_OFF.