#include "complex.h" #include "screen.h" //extern word_s k_alg; //extern s_alg *p_alg; typedef struct {word_s kod; word_s tek; alg_str *p_alg1; }bbaj; word_s xybaj[4][2]={278,129,278,180,278,231,278,84}; bbaj *bufbaj[4]; #define BSC bufbaj[nscr] #define PBAJ ((c_ptr+BSC->p_alg1->inp[i].nc)->a_ptr+BSC->p_alg1->inp[i].nz) #define PBA1 ((c_ptr+BSC->p_alg1->inp[BSC->tek].nc)->a_ptr+BSC->p_alg1->inp[BSC->tek].nz) void dinbaj(word_s x),ygol(word_s x); word_s klapan(word_s kodalg,word_s nscr) { word_s ii; request_resource(ekran,0*HZ); if((bufbaj[nscr]=(bbaj *)calloc(1,sizeof(bbaj)))==NULL) {eprintf(RED_,"₯β ― ¬οβ¨ €«ο Š‹€€€");release_resource(ekran);return 0;} ramka(); pcxDisplayLib("MKLAP.PCX",0,31,640); // pcxLibDisplay("grad.pcl",,0,31,0); BSC->p_alg1=p_alg1+kodalg; change_timer(period_tm[nscr],2*HZ,1); BSC->tek=3; ygol(nscr); dinbaj(nscr); release_resource(ekran); while(!endrun) {BSC->kod=read_wpipe(scr_chn[nscr],t_out_v*HZ); if(list_func(BSC->kod)){ii=BSC->kod; free(bufbaj[nscr]); return(ii);} var_obj(BSC->kod,nscr); //SWITCH if(BSC->kod==Up || BSC->kod==Left) {for(;;) {if(--BSC->tek<0)BSC->tek=3; if(BSC->p_alg1->inp[BSC->tek].tip==ANALOG){ygol(nscr);dinbaj(nscr);break;} } goto m1; } if(BSC->kod==Down || BSC->kod==Right) {for(;;) {if(++BSC->tek>3)BSC->tek=0; if(BSC->p_alg1->inp[BSC->tek].tip==ANALOG){ygol(nscr);dinbaj(nscr);break;} } goto m1; } if(BSC->kod==MORE || BSC->kod==LESS || BSC->kod==QMORE || BSC->kod==QLESS) {if(cur_so[nscr]){key[nscr]=BSC->kod;set_so(BSC->kod,nscr);}goto m1;} if(BSC->kod==Tab) {if(cur_so[nscr]){key[nscr]=BSC->kod;switch_so(Tab,nscr);}goto m1;} if(BSC->kod==MAN || BSC->kod==AUTO || BSC->kod==CAS) {key[nscr]=BSC->kod;set_mode(BSC->kod,nscr);goto m1;} if(BSC->kod==ENTER) if(BSC->p_alg1->koef[14]&&BSC->p_alg1->koef[2] &&!((c_ptr+BSC->p_alg1->inp[1].nc)->a_ptr+BSC->p_alg1->inp[1].nz)->var_cod) BSC->p_alg1->koef[11]=1; m1: if(check_flag(period_fl[nscr])) { clear_flag(period_fl[nscr]); request_resource(ekran,0*HZ); if(screen!=nscr)set_screen(nscr); dinbaj(nscr); if(screen!=nscr)set_screen(screen); release_resource(ekran); } } return 0; } void dinbaj(word_s nscr) {word_s col,i; for(i=0;i<4;i++) { col=2; if(BSC->p_alg1->inp[i].tip==ANALOG) {if(PBAJ->novalid)col=8; else if(PBAJ->bound_al)col=12; else if(PBAJ->bound_reg)col=14; if(i==BSC->tek)_setcolor(7);else _setcolor(0); _rectangle(_GFILLINTERIOR,xybaj[i][0]+2,xybaj[i][1]+2,xybaj[i][0]+74,xybaj[i][1]+12); fgtext(col,xybaj[i][0]+3,xybaj[i][1]+2,"%s",PBAJ->cipher); _setcolor(0); _rectangle(_GFILLINTERIOR,xybaj[i][0]+1,xybaj[i][1]+13,xybaj[i][0]+75,xybaj[i][1]+23); fgtext(col,xybaj[i][0]+3,xybaj[i][1]+13,formt(),PBAJ->var_tech); } } dinam_analog(PBA1,7,nscr); i=0; _setcolor(0);_rectangle(_GFILLINTERIOR,160,127,230,137); _setcolor(2);_rectangle(_GFILLINTERIOR,141,91,143,191);_setcolor(12); switch((word_s)BSC->p_alg1->koef[14]) {case 0:break; case 1:_rectangle(_GFILLINTERIOR,141,91,143,191-(word_s)(100.*BSC->p_alg1->koef[13]/(PBAJ->max_sc-PBAJ->min_sc))); fgtext(12,160,127,formt(),BSC->p_alg1->koef[13]); break; case 2:_rectangle(_GFILLINTERIOR,141,191-(word_s)(100.*BSC->p_alg1->koef[13]/(PBAJ->max_sc-PBAJ->min_sc)),143,191); fgtext(12,160,127,formt(),BSC->p_alg1->koef[13]); break; case 3:_rectangle(_GFILLINTERIOR,141,91,143,191); fgtext(12,160,127,formt(),BSC->p_alg1->koef[13]); break; } if(BSC->p_alg1->koef[11]) {_setcolor(7); _rectangle(_GFILLINTERIOR,106,284,106+(word_s)(358.*BSC->p_alg1->koef[12]/BSC->p_alg1->koef[2]),288); } else{_setcolor(0);_rectangle(_GFILLINTERIOR,106,284,464,288);} } void ygol(word_s nscr) {_setcolor(0);_rectangle(_GFILLINTERIOR,575,86,638,318); p_a[nscr]=PBA1; p_d[nscr]=NULL; p_c[nscr]=c_ptr+BSC->p_alg1->inp[BSC->tek].nc; stat_analog(PBA1,7);set_vso(7,nscr);image_cont(7,nscr); eprintf(GREEN_,PBA1->name); }