#include "complex.h" #include "mnemos.h" #include "stdlib.h" #include "gr_def.h" #include "screen.h" extern mpred *ptr_mpred; //#define DO (DOMI+N_DO[nscr])-> #define ST (STATI+N_S)-> #define DI1 (DINA +N_D)-> #define DI2 (ptr_mpred +N_D)-> #define getrandom( min, max ) ((rand() % (word_s)((max) - (min))) + (min) + 1) extern statim *STATI;extern word_s KOLST; extern dinami *DINA;extern word_s KOLDI; extern domim *DOMI;extern word_s KOLDO; extern struct fillsettingstype fiT; extern struct textsettingstype ttT; extern struct linesettingstype lsT,lsP; struct viewporttype view_ekr[2]={ {0,0,639,349,1},{0,0,319,199,1 } }; extern controller *c_ptr; extern wpipeptr kan[]; extern char mas_v1[580]; word_s uu4,uu5,x8,T_S_P,col_AP,PR_PCX=0; extern void ch_color(int x,int y, int color); extern void setlinestyle (word_s linestyle,word_s thickness); extern void bar (short a,short b,short c,short d); extern void getlinesettings(struct linesettingstype *li); extern void linet( short a,short b,short c,short d); //extern word_s cdecl gprintd(word_s xl, word_s yl, char *fmt,...); extern void getfillsettings (struct fillsettingstype *fi); word_s f10(word_s A,word_s B); word_s PCX_(char *im,word_s x,word_s y, word_s n_s); char st[81]; unsigned char d_kod; word_s T_DIN[DISPLAY],NOM=0,TEK_D; //T_DIN[4]={-2,-2,-2,-2} word_s SPEEDX=8,SPEEDY[2]={10,8}; word_s P_P_Z; word_s stil=0,c_risT,c_fonT,col; word_s N_DO[DISPLAY], N_Z_K[DISPLAY],T_N_K[DISPLAY],N_D[DISPLAY]; //N_D[4]={0,0,0,0} word_s MaxColors; /* The maximum # of colors available */ word_s MaxX, MaxY,MinX,MinY; /* The maximum resolution of the screen */ double AR=0.775; float TEK_ZN; extern char str1[]; extern word_s kolreg[]; char VXOD[][5] = { "HОРМ","HРШ ","БЛК ","ДБЛК","ВКЛ ","ВЫКЛ", "ОТКР","ЗАКР","МУФТ","МЕСТ","ДИСТ","<1>","<0>" }; extern char *on_n[5]; extern char *of_n[5]; /******* начало TASKFIRE.C ***** TASKFIRE.C *****************/ #define _BLACK_ 0 #define _BLUE_ 1 #define _GREEN_ 2 #define _CYAN_ 3 #define _RED_ 4 #define _MAGENTA_ 5 #define _BROWN_ 6 #define _WHITE_ 7 #define _GRAY_ 8 #define _LIGHTBLUE_ 9 #define _LIGHTGREEN_ 10 #define _LIGHTCYAN_ 11 #define _LIGHTRED_ 12 #define _LIGHTMAGENTA_ 13 #define _YELLOW_ 14 #define _BRIGHTWHITE_ 15 void taskfire(); void set_fire_col(word_s k,word_s m,word_s x,word_s y); void start_fire(word_s nscr,word_s nom_fire,word_s x_min,word_s y_min,word_s x_max,word_s y_max,word_s c_bor); void stop_fire(word_s nscr,word_s nom_fire); void clear_fire(word_s nscr); word_s fire_cols[16] = { _YELLOW_, _YELLOW_, _YELLOW_, _YELLOW_, _LIGHTRED_, _LIGHTRED_, _LIGHTRED_, _RED_, _RED_, _BROWN_, _GRAY_, _GRAY_, _GRAY_, _GRAY_, _GRAY_, _GRAY_ }; float bnd_col_fire[5][2] = { { 43.0, 85.0 }, { 45.0, 80.0 }, { 50.0, 75.0 }, { 45.0, 65.0 }, { 43.0, 58.0 } }; tcbptr fire_tcb = NULL; word_s nscr_fire[4] = { 0,0,0,0 }; struct fire_dat { word_s nom_fire; word_s x_min; word_s x_max; word_s y_min; word_s y_max; word_s c_bor; } fire_parm[4][4]; //------------------------------------------------------------------- void taskfire() { word_s flf,i,j,k,m,x,y,work; float angle; angle=0.268; // 0.268 = tan угла 15 grad while(!endrun) { flf=0; for(i=0; i>3); mask = 0x80 >> (x & 0x07); cent=100.0*rand()/RAND_MAX; if(cent <= bnd_col_fire[m][0]) col=fire_cols[k+1]; else if(cent <= bnd_col_fire[m][1]) col=fire_cols[k]; else col=fire_cols[k+2]; wb=*addr; // чтение в задвижки tsk_outp(0x3cf,mask); // маска битов tsk_outp(0x3c5,15); // маска каpт - все *addr = 0x00; // чистка tsk_outp(0x3c5,(char)col); // маска каpт - цвет *addr = 0xff; // запись цвета } //------------------------------------------------------------------- void start_fire(word_s nscr,word_s nom_fire,word_s x_min,word_s y_min,word_s x_max,word_s y_max,word_s c_bor) { word_s i,j; if(fire_tcb==NULL) { for(i=0; i<2; i++) for(j=0; j<4; j++) fire_parm[i][j].nom_fire=0; fire_tcb = create_task(NULL,(funcptr)taskfire,NULL,STK_TSK,PRI_STD-55,NULL,"FIRE"); } fire_parm[nscr][nom_fire].c_bor=c_bor; fire_parm[nscr][nom_fire].y_max=y_max; fire_parm[nscr][nom_fire].x_max=x_max; fire_parm[nscr][nom_fire].y_min=y_min; fire_parm[nscr][nom_fire].x_min=x_min; fire_parm[nscr][nom_fire].nom_fire=1; nscr_fire[nscr] = 1; start_task(fire_tcb); } //------------------------------------------------------------------- void stop_fire(word_s nscr,word_s nom_fire) { word_s x1,y1,x2,y2,dtan; if(fire_parm[nscr][nom_fire].nom_fire==0) return; fire_parm[nscr][nom_fire].nom_fire=0; dtan=14; // 14 = 50*tan(15grad) request_resource(ekran,0L); if(nscr!=screen)set_screen(nscr); _setcolor(fire_parm[nscr][nom_fire].c_bor); switch(fire_parm[nscr][nom_fire].x_max) { case 1 : // FIRE_F вверх x1=fire_parm[nscr][nom_fire].x_min-dtan; y1=fire_parm[nscr][nom_fire].y_min-50; x2=fire_parm[nscr][nom_fire].x_min+dtan; y2=fire_parm[nscr][nom_fire].y_min; break; case 2 : // вниз x1=fire_parm[nscr][nom_fire].x_min-dtan; y1=fire_parm[nscr][nom_fire].y_min; x2=fire_parm[nscr][nom_fire].x_min+dtan; y2=fire_parm[nscr][nom_fire].y_min+50; break; case 3 : // вправо x1=fire_parm[nscr][nom_fire].x_min; y1=fire_parm[nscr][nom_fire].y_min-dtan; x2=fire_parm[nscr][nom_fire].x_min+50; y2=fire_parm[nscr][nom_fire].y_min+dtan; break; case 4 : // влево x1=fire_parm[nscr][nom_fire].x_min-50; y1=fire_parm[nscr][nom_fire].y_min-dtan; x2=fire_parm[nscr][nom_fire].x_min; y2=fire_parm[nscr][nom_fire].y_min+dtan; break; case 0 : x1=0; y1=0; x2=0; y2=0; break; // никуда default: // FIRE x1=fire_parm[nscr][nom_fire].x_min; y1=fire_parm[nscr][nom_fire].y_max; x2=fire_parm[nscr][nom_fire].x_max; y2=fire_parm[nscr][nom_fire].y_max-50; } _rectangle(_GFILLINTERIOR,x1,y1,x2,y2); if(nscr!=screen)set_screen(screen); release_resource(ekran); } //------------------------------------------------------------------- void clear_fire(word_s nscr) { word_s i; for(i=0; i<4; i++) fire_parm[nscr][i].nom_fire=0; nscr_fire[nscr] = 0; } //------------------------------------------------------------------- /******* конец TASKFIRE.C ***** TASKFIRE.C **************/ // п/п вывода элементов статики МС начиная с номеРа записи N_S по номеР K_S // вывод некотоРых элементов дан в QC ,a как комментаРий в ТС void OT_I_DO(word_s N_S,word_s K_S,word_s nscr) { word_s N_L,P_L,P_N,P_K,K_LI; K_S++; P_L=0; K_LI=0; uu5=0; uu4=0; N_L=0; while (N_S!=K_S) { do { if(ST TIP==VST_LIB) { P_L=1; P_N=N_S+1; P_K=K_S; N_L=ST s3; K_LI=ST s4+1; uu5=ST s5; uu4=ST s6; if( ST s2!=-1) { _setcolor( ST s2); c_risT= ST s2; } if(ST s2>0) { c_risT=ST s2; _setcolor(ST s2); } N_S=N_L; } if(ST TIP !=KORRECT) { if(P_L!=1) { if(ST COL!=c_risT) _setcolor(c_risT=ST COL); } if(ST STIL!=stil) { switch(ST STIL%4) { case 0: lsT.linestyle=0xFFFF; break; case 1: lsT.linestyle=0xE7E7; break; case 2: lsT.linestyle=0xFC30; break; case 3: lsT.linestyle=0xFFC0; if(ST STIL==7) lsT.linestyle=-3; break; } lsT.thickness=(ST STIL/4)*2+1; setlinestyle(lsT.linestyle,lsT.thickness); stil=ST STIL; } switch(ST TIP) { case FON: c_fonT=ST s2; bar(ST s3,ST s4,ST s5,ST s6); _setcolor(MaxColors-1); rectangle(MinX=ST s3,MinY=ST s4,MaxX=ST s5,MaxY=ST s6); break; case 0: break; case C_L : linet(ST s2+uu5,ST s3+uu4,ST s4+uu5,ST s5+uu4); break; case C_R : rectangle(ST s2+uu5,ST s3+uu4,ST s4+uu5,ST s5+uu4); break; case RECT_3 : bar(ST s2+uu5,ST s3+uu4,ST s4+uu5,ST s5+uu4); rectangle(ST s2+uu5,ST s3+uu4,ST s4+uu5,ST s5+uu4); linet(ST s2+uu5,ST s3+uu4,ST s2+uu5+ST s6,ST s3+uu4-(word_s)(ST s6*AR)); linet(ST s4+uu5,ST s3+uu4,ST s4+uu5+ST s6,ST s3+uu4-(word_s)(ST s6*AR)); linet(ST s4+uu5,ST s5+uu4,ST s4+uu5+ST s6,ST s5+uu4-(word_s)(ST s6*AR)); linet(ST s2+uu5+ST s6,ST s3+uu4-(word_s)(ST s6*AR),ST s4+uu5+ST s6,ST s3+uu4-(word_s)(ST s6*AR)); linet(ST s4+uu5+ST s6,ST s3+uu4-(word_s)(ST s6*AR),ST s4+uu5+ ST s6,ST s5+uu4-(word_s)(ST s6*AR)); break; case C_OKNO : bar(ST s2+uu5,ST s3+uu4,ST s4+uu5,ST s5+uu4); break; case C_D : getlinesettings(&lsP); _arc(ST s2-ST s6+uu5,ST s3-(word_s)(ST s6*AR)+uu4,ST s2+ST s6+uu5, ST s3+(word_s)(ST s6*AR)+uu4,ST s7+uu5,ST s8+uu4,ST s9+uu5,ST s10+uu4); setlinestyle(lsP.linestyle,lsP.thickness); break; case C_T: fgtext(_getcolor(),ST s2+uu5+1,ST s3+uu4-2,(unsigned char *)&ST s4); // outtextxy(ST s2+uu5,ST s3+uu4,(unsigned char *)&ST s4); break; case C_F : ch_color(ST s2+uu5, ST s3+uu4,fiT.color= ST s4 ); break; case C_CIR : _ellipse( _GBORDER,ST s5+uu5,ST s6+uu4,ST s7+uu5,ST s8+uu4); break; case C_P : linet(ST s2+uu5,ST s3+uu4,ST s4+uu5,ST s5+uu4); break; case C_AV : AVTOGRAF(N_S,nscr); break; case V_PCX : PCX_((char *)&ST s4,ST s2,ST s3,640); break; } } else { switch(ST s2) { case A_O : break; } } N_S++; N_L++; } while(N_LPR_UP && (DINA+i)->PR_SIFR) { kolreg[nscr]++; if((DINA+i)->P_E){x3=(DINA+i)->X_SIFR; y3=(DINA+i)->Y_SIFR-2; } else {x3=(DINA+i)->X_SIFR-10; y3=(DINA+i)->Y_SIFR-2; } if(kolreg[nscr]<9) fgtext(15,x3,y3,"%1d",kolreg[nscr]); else if(kolreg[nscr]<17) fgtext(7,x3,y3,"%1d",kolreg[nscr]-8); } /*******************************************************************/ K_D++; nom_fire=0; while(f10(N_D,K_D)==0) { N_Z_K[nscr]=DI1 NOM_PAR; T_N_K[nscr]=DI1 N_KO; if(DI1 FOR_DIN != MOTOR && DI1 FOR_DIN != KLAP && DI1 FOR_DIN != FIRE && DI1 FOR_DIN != FIRE_F) { if(((DINA+N_D)->PR_UP==1 && (!(DINA+N_D)->P_E)) && (DINA+N_D)->PR_SIFR==1) { switch(ANAL mod_cod) { case R_MAN : re = 'Р'; break; case R_AUTO : re = 'A'; break; case R_CAS : re = 'K'; break; case R_PULT : re = 'П'; break; default : re = ' '; } fgtext(0,(DINA+N_D)->X_SIFR-10,(DINA+N_D)->Y_SIFR+9,"█"); fgtext(15,(DINA+N_D)->X_SIFR-10,(DINA+N_D)->Y_SIFR+9,"%c",re); } TEK_ZN=ANAL var_tech; col_AP=GREEN; T_S_P=0; if(ANAL novalid) { col_AP=8; T_S_P=3; } else { if(ANAL bound_al) { col_AP=LIGHTRED; T_S_P=2; } else { if(ANAL bound_reg) { col_AP=YELLOW; T_S_P=1; } } } _setcolor(col_AP); //------------ if(DI1 PR_SIFR==1 && /*(T_S_P==2 || T_S_P==1 || P_P_Z==0) &&*/ (DI1 PR_UP!=1 || !DI1 P_E)) { temp=_getcolor(); if(p_a[nscr]==(c_ptr+T_N_K[nscr])->a_ptr+ N_Z_K[nscr] && temp==GREEN) temp=LIGHTGREEN; if(ANAL glimmer1&& !ANAL novalid) {fgtext(temp,DI1 X_SIFR+1,DI1 Y_SIFR-2,"%s",ANAL cipher); ANAL glimmer1 =0;} else if(ANAL glimmer&& !ANAL novalid) {fgtext(GRAY_,DI1 X_SIFR+1,DI1 Y_SIFR-2,"%s",ANAL cipher); ANAL glimmer1 =1;} } //------------ if(DI1 PR_SIFR==1 && (DI1 T_S_P !=T_S_P || P_P_Z==0) && (DI1 PR_UP!=1 || !DI1 P_E)) { fgtext(_getcolor(),DI1 X_SIFR+1,DI1 Y_SIFR-2,"%s",ANAL cipher); } if(DI1 PR_ZN==1 || DI1 FOR_DIN==TEK_ZN_ST) { bar(DI1 X_ZN,DI1 Y_ZN-1,DI1 X_ZN+8*SPEEDX,DI1 Y_ZN+8); fgtext(_getcolor(),DI1 X_ZN+1,DI1 Y_ZN-2,formt(),TEK_ZN); if(TEK_ZN>ANAL max_sc){bar(DI1 X_ZN+7*SPEEDX,DI1 Y_ZN-1,DI1 X_ZN+8*SPEEDX,DI1 Y_ZN+8);fgtext(WHITE_,DI1 X_ZN+1+56,DI1 Y_ZN-2,"");} if(TEK_ZNtypcontr==VIRT&&DISK nom_var>0) { algb=p_alg1+DISK nom_var-1; if((formuls1+algb->form)->tip==1) {tip=floor(algb->koef[3]); if(tip<0&&tip>4) tip=0; if(algb->inp[1].tip==DIGIT) if(algb->inp[3].tip==DIGIT) {col=YELLOW_; text="ERR "; ptrd1=(c_ptr+algb->inp[1].nc)->d_ptr+algb->inp[1].nz; if(ptrd1->val_par&&!ptrd1->novalid){ col=LIGHTGREEN; text= on_n[tip]; } ptrd1=(c_ptr+algb->inp[3].nc)->d_ptr+algb->inp[3].nz; if(ptrd1->val_par&&!ptrd1->novalid) if(col!=LIGHTGREEN){ col=LIGHTRED; text= of_n[tip]; } else {col=YELLOW_; text="ERR ";} } else {col=YELLOW_; ptrd1=(c_ptr+algb->inp[1].nc)->d_ptr+algb->inp[1].nz; if(ptrd1->val_par&&!ptrd1->novalid) { col=LIGHTGREEN; text= on_n[tip]; } if(!ptrd1->val_par&&!ptrd1->novalid){ col=LIGHTRED; text= of_n[tip]; } } } } break; case 1 : if(DISK val_par==0) { text= VXOD[0]; col=LIGHTGREEN; } else { text= VXOD[1]; col=LIGHTRED; } break; case 2 : if(DISK val_par==1) { text= VXOD[2]; col=LIGHTGREEN; } else { text= VXOD[3]; col=LIGHTRED; } break; case 3 : if(DISK val_par==1) { text= VXOD[4]; col=LIGHTGREEN; } else { text= VXOD[5]; col=LIGHTRED; } break; case 4 : if(DISK val_par==1) { text= VXOD[4]; col=LIGHTGREEN; } else { text= VXOD[5]; col=LIGHTRED; } break; case 5 : if(DISK val_pr3==1) { text= VXOD[8]; col=LIGHTRED; } else {if(DISK val_pr2==1){ text= VXOD[7]; col=LIGHTRED; } else { text= VXOD[6]; col=LIGHTGREEN; } } break; } if(!col) break; _setcolor(col); if(DI1 PR_ZN) { bar(DI1 X_ZN,DI1 Y_ZN-1,DI1 X_ZN+32,DI1 Y_ZN+7); fgtext(_getcolor(),DI1 X_ZN+1,DI1 Y_ZN-2,text); if(DISK type_par > 3) { bar(DI1 X_ZN+40,DI1 Y_ZN-1,DI1 X_ZN+72,DI1 Y_ZN+7); if(DISK val_pr4) text= VXOD[9]; else text= VXOD[10]; fgtext(_getcolor(),DI1 X_ZN+41,DI1 Y_ZN-2,text); } } if(DI1 PR_SIFR==1 && (DI1 PR_UP!=1 || !DI1 P_E)) { // if(N_D==T_DIN[nscr]) _putimage(DI1 X_SIFR,DI1 Y_SIFR-1,mas_v1,XOR_PUT); fgtext(_getcolor(),DI1 X_SIFR+1,DI1 Y_SIFR-2,"%s",DISK cipher); // if(N_D==T_DIN[nscr]) _putimage(DI1 X_SIFR,DI1 Y_SIFR-1,mas_v1,XOR_PUT); } if(DI1 PR_OK) { ch_color(DI1 X_MIN, DI1 Y_MIN,col); } } break; case DIAGRY: if(P_P_Z==0) { if(DI1 X_MAX-DI1 X_MIN<4) y3=0; else if(DI1 X_MAX-DI1 X_MIN<8) y3=2; else if(DI1 X_MAX-DI1 X_MIN<20) y3=4; else if(DI1 X_MAX-DI1 X_MIN<60) y3=10; else y3=10; _setcolor(WHITE_); linet(DI1 X_MIN,DI1 Y_MAX,DI1 X_MAX,DI1 Y_MAX); if(DI1 Y_MAX-DI1 Y_MIN>5) linet(DI1 X_MIN,DI1 Y_MAX-1,DI1 X_MAX,DI1 Y_MAX-1); tmp1=(DI1 X_MAX-DI1 X_MIN)/y3; for(i=0; i5) linet(DI1 X_MIN+1,DI1 Y_MIN,DI1 X_MIN+1,DI1 Y_MAX); tmp1=(DI1 Y_MAX-DI1 Y_MIN)/y3; for(i=0; i=ANAL max_sc) p_zn=1.; else p_zn=(TEK_ZN-ANAL min_sc)/ks; p_zn=(DI1 X_MAX-DI1 X_MIN-2)*p_zn; if(p_zn<0.) p_zn=0.; if(p_zn) { _setcolor(DI1 C_ZAP); _rectangle(_GFILLINTERIOR,DI1 X_MIN+1,DI1 Y_MIN+1,DI1 X_MIN+1+p_zn,DI1 Y_MAX-1); } if(p_zn<(DI1 X_MAX-DI1 X_MIN-2)) { _setcolor(DI1 O_ZAP); _rectangle(_GFILLINTERIOR,DI1 X_MIN+1+p_zn,DI1 Y_MIN+1,DI1 X_MAX-1,DI1 Y_MAX-1); } break; case PROGR_BAR_Y: if(P_P_Z==0) {_setcolor(15); _rectangle (_GBORDER,DI1 X_MIN,DI1 Y_MIN,DI1 X_MAX,DI1 Y_MAX); } ks=ANAL max_sc-ANAL min_sc; if(ks==0.) break; if(TEK_ZN <= ANAL min_sc) p_zn=0.; else if(TEK_ZN >= ANAL max_sc) p_zn=1.; else p_zn=(TEK_ZN-ANAL min_sc)/ks; p_zn=(DI1 Y_MAX-DI1 Y_MIN-2)*p_zn; if(p_zn<0.) p_zn=0.; if(p_zn) { _setcolor(DI1 C_ZAP); _rectangle(_GFILLINTERIOR,DI1 X_MIN+1,DI1 Y_MAX-1-p_zn,DI1 X_MAX-1,DI1 Y_MAX-1); } if(p_zn<(DI1 Y_MAX-DI1 Y_MIN-2)) { _setcolor(DI1 O_ZAP); _rectangle(_GFILLINTERIOR,DI1 X_MIN+1,DI1 Y_MIN+1,DI1 X_MAX-1,DI1 Y_MAX-1-p_zn); } break; case TEK_ZN_ST: setlinestyle(-1,1); if(1) { //if(ANAL dif_var==1 || P_P_Z==0) { rectangle(DI1 X_SIFR-4,DI1 Y_SIFR-4,DI1 X_SIFR+74,DI1 Y_SIFR+SPEEDY[KEYSCR]*2); } break; case TEK_ZNAC: break; case TEXT_D: if(P_P_Z==0) { _setcolor(DI1 C_BOR); fgtext(_getcolor(),DI1 X_KUR+1,DI1 Y_KUR-2,DI1 IMJ); } break; case ZAP_PROC : if(1) { //if(ANAL dif_var==1 || P_P_Z==0) { PROC(N_D,nscr); } break; } DI1 T_S_P=T_S_P; N_D++; } P_P_Z=1; } /*-------------------------------------------------------------------*/ void PROC(word_s N_D,word_s nscr) { word_s i,x7,y3,x3; float p_zn,ks; if(P_P_Z==0) DI2 X_PRED[nscr]=DI1 Y_MAX; // if(DI1 FOR_RAS==1) // { ks=(ANAL max_sc-ANAL min_sc)/100; p_zn=(TEK_ZN-ANAL min_sc)/ks; p_zn=DI1 Y_MAX-(DI1 Y_MAX-DI1 Y_MIN)*p_zn/100; y3=p_zn; if(y3<= DI1 Y_MIN) y3=DI1 Y_MIN+1; x7=(DI1 X_MIN+DI1 X_MAX )>>1; if(y3 >= DI1 Y_MAX) y3=DI1 Y_MAX-1; x3=DI2 X_PRED[nscr]; if(x3!=y3) { if(P_P_Z==0) { if(DI1 O_ZAP==0) i=c_fonT; else i=DI1 O_ZAP; ch_color(x7,y3,i); } if(y3 57) { switch(d_kod) { case 'D' : if(x-SPEEDX>MinX) x=x-SPEEDX; break; case 'F' : if(x+SPEEDXMinY) y=y-SPEEDY[KEYSCR]; break; case 'H' : if(y+SPEEDY[KEYSCR]MinX) x=x-SPEEDX; if(y-SPEEDY[KEYSCR]>MinY) y=y-SPEEDY[KEYSCR]; break; case 'G' : if(x-SPEEDX>MinX) x=x-SPEEDX; if(y+SPEEDY[KEYSCR]MinY) y=y-SPEEDY[KEYSCR]; break; case 'I' : if(x+SPEEDXMinX) x--; break; case '6' : if(x!=MaxX) x++; break; case '2' : if(y>MinY) y--; break; case '8' : if(y!=MaxY) y++; break; case '1' : if(x>MinX) x--; if(y>0) y--; break; case '7' : if(x>MinX) x--; if(y!=MaxY) y++; break; case '3' : if(x!=MaxX) x++; if(y>0) y--; break; case '9' : if(x!=MaxX) x++; if (y!=MaxY) y++; break; } _setcolor(c_risT);_setpixel(x,y); } x3=x; y3=y; i++; } setlinestyle(lsP.linestyle,lsP.thickness); return ; } /*-------------------------------------------------------------------*/ /* п/п установка начальных значений паРаметРов гРафики */ void UST_N_UST(void) { extern struct textsettingstype ttN; extern struct linesettingstype lsN,lsT; setlinestyle(lsN.linestyle,lsN.thickness); stil=0; getlinesettings(&lsT); getfillsettings(&fiT); } /*-------------------------------------------------------------------*/ word_s PCX_(char *im,word_s x,word_s y, word_s n_s) { word_s kz=0; if(PR_PCX!=1) { // pcxSetDisplay(pcxEGA_10); // pcxSetMode(pcxGRAPHICS); PR_PCX=1; } if((kz=pcxDisplayLib(im,x,y,n_s))!=0) { // if((kz=pcxLibDisplay("grad.pcl",im,x,y,n_s))!=0) { eprintf(RED_,"Мнем. %d %s не найдена",kz,im); } return 0; } //-------------------------------------------------------------------