- •1. Предисловие.
- •2. Основные сведения, необходимые для создания программ на языке си.
- •3. Основные правила при работе с программами, написанными на языке cи.
- •4. Программная имитация системы автоматического управления.
- •5. Режимы работы системы автоматического управления.
- •6. Отображение параметров процесса управления.
- •7. Перечень и назначение подпрограмм системы автоматического управления.
- •8. Порядок разработки системы автоматического управления на основе образца.
- •9. Файлы входные режимов работы nn 3, 4, 5, 6.
- •Файл blackcs1.C. Регистрация процесса управления мо lvd-1.
- •Файл blackcs2.C. Регистрация процесса управления мо lvd-2.
- •Файл blackcs3.C. Регистрация процесса управления мо Автопилот.
- •11. Файл scont.C. Исходный текст программы scont.
- •12. Файл sys_cnst.H. Глобальные константы программы scont.C.
- •13. Файл sys_var.H. Глобальные переменные программы scont.C.
- •14. Файл sys_mus.H. Музыкальные подпрограммы программы scont.C.
- •15. Файл sys_prim.H. Графические примитивы программы scont.C.
- •16. Файл sys_dv0.H. Программная заглушка программы scont.C.
- •17. Файл moddv0.H. Музыкальный центр.
- •18. Файл moddv1.H. Электронная схема lvd-1.
- •19. Файл moddv2.H. Электронная схема lvd-2.
- •20. Файл moddv3.H. Автопилот.
- •Содержание.
11. Файл scont.C. Исходный текст программы scont.
[1] /*########################################################*/
[2] /*
[3] Copyright (C) 2008 by A.E.Stefanovich tel. 236-2729, 268-3916
[4] Moscow State University of the Instrumentation and Informatics
[5] MGUPI
[6] Chair Information Maintenance of Systems Robototechnical and Mechatronic
[7] IS 5
[8] */
[9] /*########################################################*/
[10] /*
[11] File: SCONT.c
[12] System of control automatic modernize with BLACK CASE and System Devises.
[13] */
[14] /*####################################### PROGRAMME */
[15] /*============== Includes of TURBOC.3_0 */
[16] #include <c:\TURBOC.3_0\include\stdio.h>
[17] #include <c:\TURBOC.3_0\include\conio.h>
[18] #include <c:\TURBOC.3_0\include\stdlib.h>
[19] #include <c:\TURBOC.3_0\include\graphics.h>
[20] #include <c:\TURBOC.3_0\include\dos.h>
[21] #include <c:\TURBOC.3_0\include\time.h>
[22] #include <c:\TURBOC.3_0\include\math.h>
[23] /*============== Includes of System */
[24] #include <c:\TURBOC.3_0\work\SYS_CNST.h> /* Global const */
[25] #include <c:\TURBOC.3_0\work\SYS_VAR.h> /* Global var */
[26] #include <c:\TURBOC.3_0\work\SYS_MUS.h> /* Music */
[27] #include <c:\TURBOC.3_0\work\SYS_PRIM.h> /* Primitives */
[28] /*============== Includes of System Devises. CONNECTION */
[29] /* #include <c:\TURBOC.3_0\work\SYSDV0.h> */ /* OFF */
[30] /* #include <c:\TURBOC.3_0\work\SYSDV1.h> */ /* OFF */
[31] /* #include <c:\TURBOC.3_0\work\SYSDV2.h> */ /* OFF */
[32] /* #include <c:\TURBOC.3_0\work\SYSDV3.h> */ /* OFF */
[33] #include <c:\TURBOC.3_0\work\SYSDV4.h> /* ON */
[34] #include <c:\TURBOC.3_0\work\SYSDV5.h> /* ON */
[35] #include <c:\TURBOC.3_0\work\SYSDV6.h> /* ON */
[36] #include <c:\TURBOC.3_0\work\SYSDV7.h> /* ON */
[37] /*============== Includes of Models. CONNECTION */
[38] /* Device 0: MUSIC CENTER */
[39] #include <c:\TURBOC.3_0\work\MODDV0.h> /* ON */
[40] /* Device 1: LVD_1 */
[41] #include <c:\TURBOC.3_0\work\MODDV1.h> /* ON */
[42] /* Device 2: LVD_2 */
[43] #include <c:\TURBOC.3_0\work\MODDV2.h> /* ON */
[44] /* Device 3: AUTOPILOT */
[45] #include <c:\TURBOC.3_0\work\MODDV3.h> /* ON */
[46] /* Device 4: */
[47]
[48] /* Device 5: */
[49]
[50] /* Device 6: */
[51]
[52] /* Device 7: */
[53]
[54] /*============== Includes of User. CONNECTON */
[55] /* Device 0: */
[56]
[57] /* Device 1: */
[58]
[59] /* Device 2: */
[60]
[61] /* Device 3: */
[62]
[63] /* Device 4: */
[64]
[65] /* Device 5: */
[66]
[67] /* Device 6: */
[68]
[69] /* Device 7: */
[70]
[71] /*============== Declarations */
[72] /*-------------- Common subroutines */
[73] int Graph_regime();
[74] int Text_regime();
[75] int Title_sheet();
[76] int Start_program(int dx,int dy);
[77] int End_program();
[78] /*-------------- Address bus subroutines */
[79] int Addbus3bit(int kx,int ky);
[80] int Logic_addbus3bit(int kx,int ky);
[81] /*-------------- Input subroutines */
[82] int Choice_regime_work();
[83] int Openfile_entry();
[84] int Openfile_exit(); /* NOT USE */
[85] int Hand_order_var1();
[86] int Hand_order_var2();
[87] int Hand_order_var3();
[88] int File_order_var3();
[89] int File_order_var4();
[90] int File_order_var5();
[91] int Get_time_pc_counted();
[92] int Get_date_pc_counted();
[93] int Get_number_commands();
[94] /*-------------- String subroutines */
[95] int String_int_ordered();
[96] int String_int_counted();
[97] int String_time_pc_ordered();
[98] int String_time_pc_counted();
[99] /*-------------- Output subroutines */
[100] /* Right windows for output information */
[101] int Wind_right_ini();
[102] int File_inp();
[103] int File_out(); /* NOT USE */
[104] int Regime();
[105] int Com_num();
[106] int Com_cnt();
[107] int Add_ord();
[108] int Com_ord();
[109] int Int_ord();
[110] int Int_cnt();
[111] int Time_ord();
[112] int Time_pc();
[113] int Error_sys();
[114] int Reserve();
[115] /* Left windows for output information */
[116] int Wind_left_ini();
[117] int Title_sys();
[118] int Address_bus(); /* Window for Address_bas */
[119] int Mes_exec(); /* Window for messages */
[120] int Device_bus(); /* Window for Device_bus */
[121] /*-------------- Subroutines for creation of windows */
[122] /* Window for output titles */
[123] int Wind_0
[124] (int col_rect,
[125] int *lx,int *ly,int *rx,int *ry
[126] /* Abs. co-ord. window for output */);
[127]
[128] /* Window for output DATA */
[129] int Wind_out
[130] (int lx,int ly,int rx,int ry,int bk_val,int col_val,char *str);
[131]
[132] /* Window for output DATA with text (1 floor) */
[133] int Wind_1
[134] (char *title,
[135] int col_rect,
[136] int bk_txt,int col_txt,
[137] int *lx,int *ly,int *rx,int *ry
[138] /* Abs. co-ord. window for output */);
[139]
[140] /* Window for output DATA with text (2 floor) */
[141] int Wind_2
[142] (char *title,
[143] int col_rect,
[144] int bk_txt,int col_txt,
[145] int *lx,int *ly,int *rx,int *ry
[146] /* Abs. co-ord. window for output */);
[147]
[148] /* Window for output drafts and picturs */
[149] int Wind_D
[150] (float compression_y,
[151] int col, int row,
[152] int col_rect,
[153] int *kx,int *ky,
[154] int *lx,int *ly,int *rx,int *ry
[155] /* Abs. co-ord. window for output */);
[156] /*-------------- Subroutine for display of the logic */
[157] int Bit
[158] (int x,int y,unsigned char bit); /* 0 or 1 */
[159] /*============== Global constants see include file SYSCON */
[160] /*============== Global variables see include file SYSVAR */
[161] /*============== Primitives see include file SYSPRIM */
[162] /*============== Music see include file SYSMUS */
[163] /*############################################# MAIN */
[164] void main()
[165] { /*------------------- Beguin Main() */
[166] Title_sheet();
[167] Flag_ini=NOT_INI;
[168]
[169] /*IIIIIIIIIIIIIIII USER'WORK (Input DATA) IIIIIIIIIIIIIIII*/
[170] Choice_regime_work(); /* User: Input Regime */
[171] /*============================= HAND REGIMES 0-2 */
[172] /* ######## REGIME 0: EXIT.
[173] User: Not work */
[174] if(Regime_work[0]=='0') exit(EXIT_SUCCESS);
[175] /* ######## REGIME 1: HAND COMMAND.
[176] User: Inp. address, command and interval */
[177] else
[178] if(Regime_work[0]=='1') Hand_order_var1();
[179] /* ######## REGIME 2: HAND TIME-HAND COMMAND.
[180] User: Inp. address, command and time */
[181] else
[182] if(Regime_work[0]=='2') Hand_order_var2();
[183] /*========================== AUTOMATIC REGIMES 3-6 */
[184] if((Regime_work[0]=='3') ||
[185] (Regime_work[0]=='4') ||
[186] (Regime_work[0]=='5') ||
[187] (Regime_work[0]=='6'))
[188] {
[189] /* User: Input name of the file entry */
[190] Openfile_entry();
[191] Get_number_commands();
[192] }
[193] /* ######## REGIME 3: COMMAND FILE-HAND INTERVAL CONST.
[194] User: Inp.interval */
[195] if(Regime_work[0]=='3') Hand_order_var3();
[196] /* ######## REGIME 4: COMMAND FILE-INTERVALS VARIABLE.
[197] User: Not work */
[198] /* ######## REGIME 5. COMMAND FILE with TIMES.
[199] User: Not work */
[200] /* ######## REGIME 6. STEP by STEP.
[201] User: press <ENTER> */
[202]
[203] /*IIIIIIIIIIIIIII INITIALISATION of BLACK CASES IIIIIIIIIIIIIIII*/
[204] Dev0_bc(); Dev1_bc(); Dev2_bc(); Dev3_bc();
[205] Dev4_bc(); Dev5_bc(); Dev6_bc(); Dev7_bc();
[206]
[207] /*IIIIIIIIIIIIIII INITIALISATION of WINDOWS IIIIIIIIIIIIIIII*/
[208] Graph_regime();
[209] /*---- Tables 1 (Left) */
[210] Left_x_1=0; /* Const. */
[211] Left_y_1=0; /* Variable */
[212] Right_x_1=Maxx*COMPRESSION_X; /* Const. */
[213] Right_y_1=0; /* Variable */
[214] /*---- Tables 2 (Right) */
[215] Left_x_2=(Maxx*COMPRESSION_X)+
[216] WIND_INTERVAL_X; /* Const. */
[217] Left_y_2=0; /* Variable */
[218] Right_x_2=Maxx; /* Const. */
[219] Right_y_2=0; /* Variable */
[220] /*----*/
[221] Wind_left_ini();
[222] Wind_right_ini();
[223] Flag_ini=YES_INI;
[224] /*----*/
[225] Regime();
[226] File_inp();
[227] /* File_out(); */
[228] if((Regime_work[0]=='3') ||
[229] (Regime_work[0]=='4') ||
[230] (Regime_work[0]=='5') ||
[231] (Regime_work[0]=='6'))
[232] Com_num();
[233]
[234] /*IIIIIIIIIIIIIIII EXECUTION of CONTROL IIIIIIIIIIIIIIII*/
[235] /* ######## REGIME 1: HAND COMMAND */
[236] if(Regime_work[0]=='1')
[237] {/*---- Beguin Regime 1 */
[238] Add_ord();
[239] Com_ord();
[240] Int_ord();
[241] for
[242] (Interval_counted=0;
[243] Interval_counted<Interval_ordered;
[244] Interval_counted++)
[245] {
[246] Get_time_pc_counted();
[247] Time_pc();
[248] Int_cnt();
[249] delay(1000);
[250] }
[251] /*** Site of the Driver() ***/
[252] Mes_exec();
[253] Address_bus();
[254] Device_bus();
[255] Counter_commands++;
[256] Com_cnt();
[257] /*---- Black Cases */
[258] if(A_dec==0) Dev0_bc();
[259] if(A_dec==1) Dev1_bc();
[260] if(A_dec==2) Dev2_bc();
[261] if(A_dec==3) Dev3_bc();
[262] if(A_dec==4) Dev4_bc();
[263] if(A_dec==5) Dev5_bc();
[264] if(A_dec==6) Dev6_bc();
[265] if(A_dec==7) Dev7_bc();
[266] /*----*/
[267] STOP;
[268] End_program(); /* --> EXIT */
[269] }/*----End Regime 1 */
[270]
[271] /* ######## REGIME 2: HAND TIME-HAND COMMAND */
[272] else
[273] if(Regime_work[0]=='2')
[274] {/*---- Beguin Regime 2 */
[275] Add_ord();
[276] Com_ord();
[277] Time_ord();
[278] for(;;)
[279] {
[280] Get_time_pc_counted();
[281] Time_pc();
[282] if(Time_pc_counted>=Time_ordered) break;
[283] delay(750);
[284] }
[285] /*** Site of the Driver() ***/
[286] Mes_exec();
[287] Address_bus();
[288] Device_bus();
[289] Counter_commands++;
[290] Com_cnt();
[291] /*---- Black Case */
[292] /* A_dec=A2*4+A1*2+A0*1; */
[293] if(A_dec==0) Dev0_bc();
[294] if(A_dec==1) Dev1_bc();
[295] if(A_dec==2) Dev2_bc();
[296] if(A_dec==3) Dev3_bc();
[297] if(A_dec==4) Dev4_bc();
[298] if(A_dec==5) Dev5_bc();
[299] if(A_dec==6) Dev6_bc();
[300] if(A_dec==7) Dev7_bc();
[301] /*----*/
[302] STOP; STOP;
[303] End_program(); /* --> EXIT */
[304] }/*---- End Regime 2 */
[305]
[306] /* ######## REGIME 3: COMMAND FILE-HAND INTERVAL CONST */
[307] else
[308] if(Regime_work[0]=='3')
[309] {/*---- Beguin Regime 3 */
[310] while(1)
[311] {/*----------------------------- Top while(1) */
[312] /* Input: A2,A1,A0,C2,C1,C0 */
[313] File_order_var3(); /* if(feof(Fp1)) -> EXIT */
[314] Add_ord();
[315] Com_ord();
[316] for
[317] (Interval_counted=0;
[318] Interval_counted<Interval_ordered;
[319] Interval_counted++)
[320] {
[321] Get_time_pc_counted();
[322] Int_ord();
[323] Int_cnt();
[324] Time_pc();
[325] delay(1000);
[326] }
[327] /*** Site of the Driver() ***/
[328] Mes_exec();
[329] Address_bus();
[330] Device_bus();
[331] Counter_commands++;
[332] Com_cnt();
[333] /*---- Black Case */
[334] /* A_dec=A2*4+A1*2+A0*1; */
[335] if(A_dec==0) Dev0_bc();
[336] if(A_dec==1) Dev1_bc();
[337] if(A_dec==2) Dev2_bc();
[338] if(A_dec==3) Dev3_bc();
[339] if(A_dec==4) Dev4_bc();
[340] if(A_dec==5) Dev5_bc();
[341] if(A_dec==6) Dev6_bc();
[342] if(A_dec==7) Dev7_bc();
[343] /*----*/
[344] }/*----------------------------- Down while(1) */
[345] }/*--- End regimes 3 */
[346]
[347] /* ######## REGIME 4: COMMAND FILE-INTERVALS VARIABLE */
[348] else
[349] if(Regime_work[0]=='4')
[350] {/*---- Beguin Regimes 4 */
[351] while(1)
[352] {/*----------------------------- Top while(1) */
[353] /* Input: A2,A1,A0,C2,C1,C0,Intrval_ordered */
[354] File_order_var4(); /* if(feof(Fp1)) -> EXIT */
[355] Add_ord();
[356] Com_ord();
[357] for
[358] (Interval_counted=0;
[359] Interval_counted<Interval_ordered;
[360] Interval_counted++)
[361] {
[362] Get_time_pc_counted();
[363] Int_ord();
[364] Int_cnt();
[365] Time_pc();
[366] delay(1000);
[367] }
[368] /*** Site of the Driver() ***/
[369] Mes_exec();
[370] Address_bus();
[371] Device_bus();
[372] Counter_commands++;
[373] Com_cnt();
[374] /*---- Black Case */
[375] /* A_dec=A2*4+A1*2+A0*1; */
[376] if(A_dec==0) Dev0_bc();
[377] if(A_dec==1) Dev1_bc();
[378] if(A_dec==2) Dev2_bc();
[379] if(A_dec==3) Dev3_bc();
[380] if(A_dec==4) Dev4_bc();
[381] if(A_dec==5) Dev5_bc();
[382] if(A_dec==6) Dev6_bc();
[383] if(A_dec==7) Dev7_bc();
[384] /*----*/
[385] }/*----------------------------- Down while(1) */
[386] }/*--- End regimes 4 */
[387]
[388] /* ######## REGIME 5. COMMAND FILE with TIMES */
[389] else
[390] if(Regime_work[0]=='5')
[391] {/*---- Beguin Regime 5 */
[392] while(1)
[393] {/*----------------------------- Top while(1) */
[394] File_order_var5(); /* if(feof(Fp1)) -> EXIT */
[395] Add_ord();
[396] Com_ord();
[397] Time_ord();
[398] for(;;)
[399] {
[400] Get_time_pc_counted();
[401] Time_pc();
[402] if(Time_pc_counted>=Time_ordered) break;
[403] delay(750);
[404] }
[405] /*** Site of the Driver() ***/
[406] Mes_exec();
[407] Address_bus();
[408] Device_bus();
[409] Counter_commands++;
[410] Com_cnt();
[411] /*---- Black Case */
[412] /* A_dec=A2*4+A1*2+A0*1; */
[413] if(A_dec==0) Dev0_bc();
[414] if(A_dec==1) Dev1_bc();
[415] if(A_dec==2) Dev2_bc();
[416] if(A_dec==3) Dev3_bc();
[417] if(A_dec==4) Dev4_bc();
[418] if(A_dec==5) Dev5_bc();
[419] if(A_dec==6) Dev6_bc();
[420] if(A_dec==7) Dev7_bc();
[421] /*----*/
[422] }/*----------------------------- Down while(1) */
[423] }/*--- End Regime 5 */
[424]
[425] /* ######## REGIME 6. STEP by STEP */
[426] else
[427] if(Regime_work[0]=='6')
[428] {/*---- Beguin Regime 6 */
[429] while(1)
[430] {/*----------------------------- Top while(1) */
[431] /* Input: A2,A1,A0,C2,C1,C0 */
[432] File_order_var3(); /* if(feof(Fp1)) -> EXIT */
[433] Add_ord();
[434] Com_ord();
[435] Get_time_pc_counted();
[436] Time_pc();
[437] STOP; /* End of one step. User: press <ENTER>! */
[438] /*** Site of the Driver() ***/
[439] Mes_exec();
[440] Address_bus();
[441] Device_bus();
[442] Counter_commands++;
[443] Com_cnt();
[444] Time_pc();
[445] /*---- Black Case */
[446] /* A_dec=A2*4+A1*2+A0*1; */
[447] if(A_dec==0) Dev0_bc();
[448] if(A_dec==1) Dev1_bc();
[449] if(A_dec==2) Dev2_bc();
[450] if(A_dec==3) Dev3_bc();
[451] if(A_dec==4) Dev4_bc();
[452] if(A_dec==5) Dev5_bc();
[453] if(A_dec==6) Dev6_bc();
[454] if(A_dec==7) Dev7_bc();
[455] /*----*/
[456] }/*----------------------------- Down while(1) */
[457] }/*--- End regime 6 */
[458] } /*------------------- End main */
[459]
[460] /*######################################### SUB_PROGRAMMS */
[461] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[462] int Graph_regime()
[463] {
[464] /*---- Variables */
[465] int gdriver=DETECT,gmode,errorcode;
[466] /*---- Graph. initialisation */
[467] initgraph(&gdriver,&gmode,"C:\\TURBOC.3_0\\BGI");
[468] errorcode=graphresult();
[469] if(errorcode != grOk)
[470] {
[471] gotoxy(1,24);
[472] textattr(LIGHTRED+(BLACK<<4));
[473] cprintf
[474] ("GRAPHICS ERROR: %s\n",grapherrormsg(errorcode));
[475] STOP;
[476] exit(EXIT_SUCCESS);
[477] }
[478] Maxx=getmaxx();
[479] Maxy=getmaxy();
[480] /*---- Installuserfont */
[481] Font[0]=installuserfont("bold");
[482] Font[1]=installuserfont("euro"); /* Cyr */
[483] Font[2]=installuserfont("lcom"); /* Cyr */
[484] Font[3]=installuserfont("litt");
[485] Font[4]=installuserfont("sans");
[486] Font[5]=installuserfont("scri"); /* Cyr manuscript */
[487] Font[6]=installuserfont("simp"); /* Cyr */
[488] Font[7]=installuserfont("tscr"); /* Cyr manuscript */
[489] return 0;
[490] }
[491] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[492] Text_regime()
[493] {
[494] closegraph();
[495] restorecrtmode();
[496] textbackground(BLACK);
[497] textcolor(WHITE);
[498] return 0;
[499] }
[500] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[501] int Title_sheet()
[502] {
[503] /*---- Variables */
[504] int x,y;
[505] /* int kx; */
[506] int ky;
[507] int col_rand;
[508] /*---- Graph. initialisation */
[509] Graph_regime();
[510] /*---- Scale of the title sheet */
[511] /* kx=Maxx/COL; */
[512] ky=Maxy/ROW;
[513] /*---- Title 1 */
[514] setcolor(YELLOW);
[515] setbkcolor(BLACK);
[516] settextstyle(SMALL_FONT,HORIZ_DIR,5);
[517] settextjustify(CENTER_TEXT,CENTER_TEXT);
[518] x=Maxx/2;
[519] y=1*ky;
[520] outtextxy(x,y,Title_1); /* MGAPI */
[521] /*---- Frame */
[522] x=0;
[523] y=2*ky;
[524] setcolor(WHITE);
[525] setlinestyle(SOLID_LINE,0,NORM_WIDTH);
[526] Rectangle2(x,y,Maxx,Maxy);
[527] setfillstyle(SOLID_FILL,BLUE);
[528] x=Maxx/2;
[529] y=Maxy/2;
[530] floodfill(x,y,WHITE);
[531] /*---- Text */
[532] settextjustify(CENTER_TEXT,CENTER_TEXT);
[533] setcolor(YELLOW);
[534] settextstyle(SMALL_FONT,HORIZ_DIR,6);
[535] x=Maxx/2;
[536] y=19*ky;
[537] outtextxy(x,y,Title_4); /* Group, Code ... */
[538]
[539] settextstyle(SMALL_FONT,HORIZ_DIR,5);
[540] x=Maxx/2;
[541] y=4*ky;
[542] outtextxy(x,y,Title_7); /* IS-4... */
[543]
[544] settextstyle(SMALL_FONT,HORIZ_DIR,5);
[545] setcolor(LIGHTGRAY);
[546] x=Maxx/2;
[547] y=21*ky;
[548] outtextxy(x,y,Title_6); /* Speciality... */
[549]
[550] x=Maxx/2;
[551] y=22*ky;
[552] outtextxy(x,y,Title_5); /* Discipline... */
[553]
[554] x=Maxx/2;
[555] y=23*ky;
[556] outtextxy(x,y,Title_8); /* Teacher... */
[557]
[558] x=Maxx/2;
[559] y=24*ky;
[560] outtextxy(x,y,Title_9); /* Year... */
[561] /* SYSTEM... */
[562] settextstyle(TRIPLEX_FONT,HORIZ_DIR,0);
[563] setusercharsize(2,3,2,1);
[564] settextjustify(CENTER_TEXT,CENTER_TEXT);
[565] x=Maxx/2;
[566] y=11*ky;
[567] setcolor(CYAN);
[568] outtextxy(x,y,Title_2);
[569] setcolor(LIGHTGRAY);
[570] outtextxy(x-1,y-1,Title_2);
[571] setcolor(WHITE);
[572] outtextxy(x-2,y-2,Title_2);
[573] /* imitator */
[574] y=y+textheight("S");
[575] setcolor(CYAN);
[576] setusercharsize(2,3,3,2);
[577] outtextxy(x,y,Title_11);
[578] setcolor(LIGHTGRAY);
[579] outtextxy(x-1,y-1,Title_11);
[580] setcolor(WHITE);
[581] outtextxy(x-2,y-2,Title_11);
[582] /* Student... */
[583] setcolor(YELLOW);
[584] settextstyle(SMALL_FONT,HORIZ_DIR,6);
[585] settextjustify(CENTER_TEXT,CENTER_TEXT);
[586] x=Maxx/2;
[587] y=18*ky;
[588] outtextxy(x,y,Title_3);
[589] /*-------- Blinks */
[590] while(bioskey(1)==0)
[591] {
[592] /*---- Happy Work */
[593] col_rand=random(16);
[594] setcolor(col_rand);
[595] settextstyle(SMALL_FONT,HORIZ_DIR,4);
[596] settextjustify(RIGHT_TEXT,BOTTOM_TEXT);
[597] x=Maxx-6;
[598] y=Maxy-18;
[599] outtextxy(x,y,"HAPPY WORK");
[600] x=Maxx-6;
[601] y=y+textheight("H");
[602] outtextxy(x,y," A E S ");
[603] /*---- Title blink */
[604] /*
[605] settextstyle(TRIPLEX_FONT,HORIZ_DIR,0);
[606] setusercharsize(2,3,2,1);
[607] settextjustify(CENTER_TEXT,CENTER_TEXT);
[608] x=Maxx/2;
[609] y=11*ky;
[610] setcolor(CYAN);
[611] outtextxy(x,y,Title_2);
[612] if(col_rand%2) setcolor(LIGHTRED);
[613] else
[614] if(!col_rand%2) setcolor(LIGHTMAGENTA);
[615] outtextxy(x-1,y-1,Title_2);
[616] setcolor(WHITE);
[617] outtextxy(x-2,y-2,Title_2);
[618] */
[619] /*----*/
[620] delay(1);
[621] }
[622] bioskey(0);
[623] return 0;
[624] }
[625] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[626] int Start_program(int dx,int dy)
[627] {
[628] settextstyle(TRIPLEX_FONT,HORIZ_DIR,0);
[629] setusercharsize(2,3,3,1);
[630] settextjustify(CENTER_TEXT,CENTER_TEXT);
[631] setcolor(LIGHTGREEN);
[632] outtextxy
[633] (dx/2+15,(dy/2-10)," S T A R T P R O G R A M M E ");
[634] /*----*/
[635] setcolor(GREEN);
[636] EllipseN
[637] (dx/2,dy/2,0,360,(dx/2-40),(dy/2-20),4);
[638] setcolor(WHITE);
[639] EllipseN
[640] (dx/2,dy/2,0,360,(dx/2-40)-4,(dy/2-20)-4,2);
[641] /*----*/
[642] return 0;
[643] }
[644] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[645] int End_program()
[646] {
[647] strcpy(Messages_exec," E N D P R O G R A M M E ");
[648] Mes_exec();
[649] STOP; STOP; exit(EXIT_SUCCESS);
[650] return 0;
[651] }
[652] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[653] int Addbus3bit(int kx,int ky)
[654] {
[655] clearviewport();
[656] /*---- Wires */
[657] setlinestyle(SOLID_LINE,0,NORM_WIDTH);
[658] setbkcolor(BLACK);
[659] setcolor(CYAN);
[660] setfillstyle(SOLID_FILL,LIGHTBLUE);
[661] /* A2 */
[662] line(6*kx,1*ky,54*kx,1*ky);
[663] fillellipse(54*kx,1*ky,2,1);
[664] line(54*kx,1*ky,54*kx,4*ky);
[665] /* A1 */
[666] line(6*kx,2*ky,50*kx,2*ky);
[667] fillellipse(50*kx,2*ky,2,1);
[668] line(50*kx,2*ky,50*kx,4*ky);
[669] /* A0 */
[670] line(6*kx,3*ky,46*kx,3*ky);
[671] fillellipse(46*kx,3*ky,2,1);
[672] line(46*kx,3*ky,46*kx,4*ky);
[673] /* ~A0 */
[674] line(6*kx,8*ky,46*kx,8*ky);
[675] fillellipse(46*kx,8*ky,2,1);
[676] line(46*kx,8*ky,46*kx,7*ky);
[677] /* ~A1 */
[678] line(6*kx,9*ky,50*kx,9*ky);
[679] fillellipse(50*kx,9*ky,2,1);
[680] line(50*kx,9*ky,50*kx,7*ky);
[681] /* ~A2 */
[682] line(6*kx,10*ky,54*kx,10*ky);
[683] fillellipse(54*kx,10*ky,2,1);
[684] line(54*kx,10*ky,54*kx,7*ky);
[685] /*---- To And 0 */
[686] line(7*kx,10*ky,7*kx,11*ky);
[687] fillellipse(7*kx,10*ky,2,1);
[688]
[689] line(8*kx,9*ky,8*kx,11*ky);
[690] fillellipse(8*kx,9*ky,2,1);
[691]
[692] line(9*kx,8*ky,9*kx,11*ky);
[693] fillellipse(9*kx,8*ky,2,1);
[694] /*---- To And 1 */
[695] line(12*kx,10*ky,12*kx,11*ky);
[696] fillellipse(12*kx,10*ky,2,1);
[697]
[698] line(13*kx,9*ky,13*kx,11*ky);
[699] fillellipse(13*kx,9*ky,2,1);
[700]
[701] line(14*kx,3*ky,14*kx,11*ky);
[702] fillellipse(14*kx,3*ky,2,1);
[703] /*---- To And 2 */
[704] line(17*kx,10*ky,17*kx,11*ky);
[705] fillellipse(17*kx,10*ky,2,1);
[706]
[707] line(18*kx,2*ky,18*kx,11*ky);
[708] fillellipse(18*kx,2*ky,2,1);
[709]
[710] line(19*kx,8*ky,19*kx,11*ky);
[711] fillellipse(19*kx,8*ky,2,1);
[712] /*---- To And 3 */
[713] line(22*kx,10*ky,22*kx,11*ky);
[714] fillellipse(22*kx,10*ky,2,1);
[715]
[716] line(23*kx,2*ky,23*kx,11*ky);
[717] fillellipse(23*kx,2*ky,2,1);
[718]
[719] line(24*kx,3*ky,24*kx,11*ky);
[720] fillellipse(24*kx,3*ky,2,1);
[721] /*---- To And 4 */
[722] line(27*kx,1*ky,27*kx,11*ky);
[723] fillellipse(27*kx,1*ky,2,1);
[724]
[725] line(28*kx,9*ky,28*kx,11*ky);
[726] fillellipse(28*kx,9*ky,2,1);
[727]
[728] line(29*kx,8*ky,29*kx,11*ky);
[729] fillellipse(29*kx,8*ky,2,1);
[730] /*---- To And 5 */
[731] line(32*kx,1*ky,32*kx,11*ky);
[732] fillellipse(32*kx,1*ky,2,1);
[733]
[734] line(33*kx,9*ky,33*kx,11*ky);
[735] fillellipse(33*kx,9*ky,2,1);
[736]
[737] line(34*kx,3*ky,34*kx,11*ky);
[738] fillellipse(34*kx,3*ky,2,1);
[739] /*---- To And 6 */
[740] line(37*kx,1*ky,37*kx,11*ky);
[741] fillellipse(37*kx,1*ky,2,1);
[742]
[743] line(38*kx,2*ky,38*kx,11*ky);
[744] fillellipse(38*kx,2*ky,2,1);
[745]
[746] line(39*kx,8*ky,39*kx,11*ky);
[747] fillellipse(39*kx,8*ky,2,1);
[748] /*---- To And 7 */
[749] line(42*kx,1*ky,42*kx,11*ky);
[750] fillellipse(42*kx,1*ky,2,1);
[751]
[752] line(43*kx,2*ky,43*kx,11*ky);
[753] fillellipse(43*kx,2*ky,2,1);
[754]
[755] line(44*kx,3*ky,44*kx,11*ky);
[756] fillellipse(44*kx,3*ky,2,1);
[757] /*---- To COMMUTATOR */
[758] line( 8*kx,14*ky, 8*kx,18*ky);
[759] line(13*kx,14*ky,13*kx,18*ky);
[760] line(18*kx,14*ky,18*kx,18*ky);
[761] line(23*kx,14*ky,23*kx,18*ky);
[762] line(28*kx,14*ky,28*kx,18*ky);
[763] line(33*kx,14*ky,33*kx,18*ky);
[764] line(38*kx,14*ky,38*kx,18*ky);
[765] line(43*kx,14*ky,43*kx,18*ky);
[766] /*---- Title */
[767] setcolor(CYAN);
[768] settextstyle(SMALL_FONT,HORIZ_DIR,FONT_DIM_DRAFT);
[769] settextjustify(LEFT_TEXT,CENTER_TEXT);
[770] outtextxy
[771] (46*kx,12*ky,
[772] " E-locks (addr) ");
[773] outtextxy
[774] (46*kx,17*ky,
[775] " Commutator ");
[776] /*---- NE */
[777] E("~",0,45,4,3,3,kx,ky);
[778] E("~",1,49,4,3,3,kx,ky);
[779] E("~",2,53,4,3,3,kx,ky);
[780] /*---- AND */
[781] E("&",0,6,11,4,3,kx,ky);
[782] E("&",1,11,11,4,3,kx,ky);
[783] E("&",2,16,11,4,3,kx,ky);
[784] E("&",3,21,11,4,3,kx,ky);
[785] E("&",4,26,11,4,3,kx,ky);
[786] E("&",5,31,11,4,3,kx,ky);
[787] E("&",6,36,11,4,3,kx,ky);
[788] E("&",7,41,11,4,3,kx,ky);
[789] /*---- COMMUTATORS */
[790] B("C",0,6,18,4,3,kx,ky);
[791] B("C",1,11,18,4,3,kx,ky);
[792] B("C",2,16,18,4,3,kx,ky);
[793] B("C",3,21,18,4,3,kx,ky);
[794] B("C",4,26,18,4,3,kx,ky);
[795] B("C",5,31,18,4,3,kx,ky);
[796] B("C",6,36,18,4,3,kx,ky);
[797] B("C",7,41,18,4,3,kx,ky);
[798] /*---- Entry */
[799] settextstyle(SMALL_FONT,VERT_DIR,FONT_DIM_DRAFT);
[800] settextjustify(CENTER_TEXT,CENTER_TEXT);
[801] setcolor(LIGHTGREEN);
[802] outtextxy(5*kx,1*ky,"2");
[803] outtextxy(5*kx,2*ky,"1");
[804] outtextxy(5*kx,3*ky,"0");
[805] setcolor(WHITE);
[806] outtextxy(5*kx, 8*ky,"0");
[807] outtextxy(5*kx, 9*ky,"1");
[808] outtextxy(5*kx,10*ky,"2");
[809] settextstyle(SMALL_FONT,HORIZ_DIR,FONT_DIM_DRAFT+1);
[810] setcolor(LIGHTGRAY);
[811] outtextxy(4*kx, 6*ky,"0");
[812] outtextxy(2.5*kx, 6*ky,"1");
[813] outtextxy(1*kx, 6*ky,"2");
[814] /*----*/
[815] return 0;
[816] }
[817] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[818] int Logic_addbus3bit(int kx,int ky)
[819] {
[820] /*---- Entry */
[821] Bit(1*kx, 2*ky,A2); /* bit A2 */
[822] Bit(2*kx+kx/2,2*ky,A1); /* bit A1 */
[823] Bit(3*kx+kx, 2*ky,A0); /* bit A0 */
[824] /*---- Invent. Entry */
[825] Bit(3*kx+kx, 9*ky,AI0); /* bit AI0 */
[826] Bit(2*kx+kx/2,9*ky,AI1); /* bit AI1 */
[827] Bit(1*kx, 9*ky,AI2); /* bit AI2 */
[828]
[829] /*---- Erase of Exits of the E-locks*/
[830] Bit( 7*kx,16*ky,0);
[831] Bit(12*kx,16*ky,0);
[832] Bit(17*kx,16*ky,0);
[833] Bit(22*kx,16*ky,0);
[834] Bit(27*kx,16*ky,0);
[835] Bit(32*kx,16*ky,0);
[836] Bit(37*kx,16*ky,0);
[837] Bit(42*kx,16*ky,0);
[838] /*---- Exits of the E-locks */
[839] if(AI2&AI1&AI0) Bit(7*kx, 16*ky,1); /* 000 */
[840] if(AI2&AI1& A0) Bit(12*kx,16*ky,1); /* 001 */
[841] if(AI2& A1&AI0) Bit(17*kx,16*ky,1); /* 010 */
[842] if(AI2& A1& A0) Bit(22*kx,16*ky,1); /* 011 */
[843] if( A2&AI1&AI0) Bit(27*kx,16*ky,1); /* 100 */
[844] if( A2&AI1& A0) Bit(32*kx,16*ky,1); /* 101 */
[845] if( A2& A1&AI0) Bit(37*kx,16*ky,1); /* 110 */
[846] if( A2& A1& A0) Bit(42*kx,16*ky,1); /* 111 */
[847] /*----*/
[848] return 0;
[849] }
[850] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[851] Choice_regime_work()
[852] {
[853] Text_regime();
[854] /*---- Variants */
[855] printf
[856] ("\n Regimes of the work:\n");
[857] printf
[858] ("\n---------------\n");
[859] printf
[860] ("\n 0 - Exit \n");
[861] printf
[862] ("\n 1 - Hand Command. \n");
[863] printf
[864] ("\n 2 - Hand Time - Hand Command.\n");
[865] printf
[866] ("\n 3 - Aut. Commands'file. Hand Interval const.\n");
[867] printf
[868] ("\n 4 - Aut. Commands'file and Intervals var.\n");
[869] printf
[870] ("\n 5 - Aut. Commands'file with Times.\n");
[871] printf
[872] ("\n 6 - Aut. Step by step.\n");
[873] printf
[874] ("\n---------------\n");
[875] /*---- Choice of the variant */
[876] do
[877] {
[878] BELL;
[879] cputs("\n\r Regime of the Work (1 - 6), Exit (0) --> ");
[880] scanf("%s",&Regime_work);
[881] } while(Regime_work[0]!='0' &&
[882] Regime_work[0]!='1' &&
[883] Regime_work[0]!='2' &&
[884] Regime_work[0]!='3' &&
[885] Regime_work[0]!='4' &&
[886] Regime_work[0]!='5' &&
[887] Regime_work[0]!='6' ||
[888] Regime_work[1]!='\0'
[889] );
[890] return 0;
[891] }
[892] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[893] int Openfile_entry()
[894] {
[895] BELL;
[896] cputs(" File_name_entry --> ");
[897] scanf("%s",&Fname_entry);
[898] if((Fp1=fopen(Fname_entry,"r"))==NULL)
[899] {
[900] ALERT_SIGNAL;
[901] perror("File_name_entry"); STOP;
[902] exit(EXIT_FAILURE);
[903] }
[904] return 0;
[905] }
[906] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[907] int Openfile_exit()
[908] {
[909] BELL;
[910] /*---- Var. File_name_exit */
[911] /*
[912] cputs(" File_name_exit --> ");
[913] scanf("%s",&Fname_exit);
[914] */
[915] /*---- Const File_name-exit */
[916] strcpy(Fname_exit,"Control.c");
[917] /*----*/
[918] if((Fp2=fopen(Fname_exit,"w"))==NULL)
[919] {
[920] ALERT_SIGNAL;
[921] perror("File_name_exit"); STOP;
[922] exit(EXIT_FAILURE);
[923] }
[924] /*----*/
[925] return 0;
[926] }
[927] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[928] int Hand_order_var1()
[929] {
[930] char c[80];
[931] /*============= Input*/
[932] /*---- Input address A0, A1, A2 */
[933] while(1)
[934] {
[935] BELL;
[936] cputs("\r Address A0 (0 or 1) --> ");
[937] scanf("%s",&c);
[938] if(c[0]=='1' && c[1]=='\0') {A0=1; AI0=0; break;}
[939] if(c[0]=='0' && c[1]=='\0') {A0=0; AI0=1; break;}
[940] }
[941] for(;;)
[942] {
[943] BELL;
[944] cputs("\r Address A1 (0 or 1) --> ");
[945] scanf("%s",&c);
[946] if(c[0]=='1' && c[1]=='\0') {A1=1; AI1=0; break;}
[947] if(c[0]=='0' && c[1]=='\0') {A1=0; AI1=1; break;}
[948] }
[949] do
[950] {
[951] BELL;
[952] cputs("\r Address A2 (0 or 1) --> ");
[953] scanf("%s",&c);
[954] if(c[0]=='1' && c[1]=='\0') {A2=1; AI2=0;}
[955] if(c[0]=='0' && c[1]=='\0') {A2=0; AI2=1;}
[956] }while(c[0]!='0' && c[0]!='1' || c[1]!='\0');
[957] /**/
[958] A_dec=A2*4+A1*2+A0*1;
[959] /*---- Input commands */
[960] while(1)
[961] {
[962] BELL;
[963] cputs("\r Command C0 (0 or 1) --> ");
[964] scanf("%s",&c);
[965] if(c[0]=='1' && c[1]=='\0') {C0=1; CI0=0; break;}
[966] if(c[0]=='0' && c[1]=='\0') {C0=0; CI0=1; break;}
[967] }
[968] for(;;)
[969] {
[970] BELL;
[971] cputs("\r Command C1 (0 or 1) --> ");
[972] scanf("%s",&c);
[973] if(c[0]=='1' && c[1]=='\0') {C1=1; CI1=0; break;}
[974] if(c[0]=='0' && c[1]=='\0') {C1=0; CI1=1; break;}
[975] }
[976] do
[977] {
[978] BELL;
[979] cputs("\r Command C2 (0 or 1) --> ");
[980] scanf("%s",&c);
[981] if(c[0]=='1' && c[1]=='\0') {C2=1; CI2=0;}
[982] if(c[0]=='0' && c[1]=='\0') {C2=0; CI2=1;}
[983] }while(c[0]!='0' && c[0]!='1' || c[1]!='\0');
[984] /**/
[985] C_dec=C2*4+C1*2+C0*1;
[986] /*---- Interval ordered */
[987] {
[988] BELL;
[989] cputs(" Interval_ordered (sec.) --> ");
[990] scanf("%ld",&Interval_ordered);
[991] }
[992] /*----*/
[993] Hint_ord=Interval_ordered/3600;
[994] Mint_ord=Interval_ordered%3600/60;
[995] Sint_ord=Interval_ordered%3600%60;
[996] /*---- Messages exec */
[997] strcpy(Messages_exec," ADD: ");
[998] itoa((A2*4+A1*2+A0*1),c,10);
[999] strcat(Messages_exec,c);
[1000] /*-*/
[1001] strcat(Messages_exec,", COM: ");
[1002] itoa((C2*4+C1*2+C0*1),c,10);
[1003] strcat(Messages_exec,c);
[1004] /*-*/
[1005] strcat(Messages_exec,", Interval (s): ");
[1006] itoa(Interval_ordered,c,10);
[1007] strcat(Messages_exec,c);
[1008] /*----*/
[1009] return 0;
[1010] }
[1011] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[1012] int Hand_order_var2()
[1013] {
[1014] char c[80];
[1015] /*============= Input*/
[1016] /*---- Input address A0, A1, A2 */
[1017] while(1)
[1018] {
[1019] BELL;
[1020] cputs("\r Address A0 (0 or 1) --> ");
[1021] scanf("%s",&c);
[1022] if(c[0]=='1' && c[1]=='\0') {A0=1; AI0=0; break;}
[1023] if(c[0]=='0' && c[1]=='\0') {A0=0; AI0=1; break;}
[1024] }
[1025] for(;;)
[1026] {
[1027] BELL;
[1028] cputs("\r Address A1 (0 or 1) --> ");
[1029] scanf("%s",&c);
[1030] if(c[0]=='1' && c[1]=='\0') {A1=1; AI1=0; break;}
[1031] if(c[0]=='0' && c[1]=='\0') {A1=0; AI1=1; break;}
[1032] }
[1033] do
[1034] {
[1035] BELL;
[1036] cputs("\r Address A2 (0 or 1) --> ");
[1037] scanf("%s",&c);
[1038] if(c[0]=='1' && c[1]=='\0') {A2=1; AI2=0;}
[1039] if(c[0]=='0' && c[1]=='\0') {A2=0; AI2=1;}
[1040] }while(c[0]!='0' && c[0]!='1' || c[1]!='\0');
[1041] /**/
[1042] A_dec=A2*4+A1*2+A0*1;
[1043] /*---- Input commands */
[1044] while(1)
[1045] {
[1046] BELL;
[1047] cputs("\r Command C0 (0 or 1) --> ");
[1048] scanf("%s",&c);
[1049] if(c[0]=='1' && c[1]=='\0') {C0=1; CI0=0; break;}
[1050] if(c[0]=='0' && c[1]=='\0') {C0=0; CI0=1; break;}
[1051] }
[1052] for(;;)
[1053] {
[1054] BELL;
[1055] cputs("\r Command C1 (0 or 1) --> ");
[1056] scanf("%s",&c);
[1057] if(c[0]=='1' && c[1]=='\0') {C1=1; CI1=0; break;}
[1058] if(c[0]=='0' && c[1]=='\0') {C1=0; CI1=1; break;}
[1059] }
[1060] do
[1061] {
[1062] BELL;
[1063] cputs("\r Command C2 (0 or 1) --> ");
[1064] scanf("%s",&c);
[1065] if(c[0]=='1' && c[1]=='\0') {C2=1; CI2=0;}
[1066] if(c[0]=='0' && c[1]=='\0') {C2=0; CI2=1;}
[1067] }while(c[0]!='0' && c[0]!='1' || c[1]!='\0');
[1068] /**/
[1069] C_dec=C2*4+C1*2+C0*1;
[1070] /*---- Order of the times */
[1071] for(;;)
[1072] {
[1073] BELL;
[1074] cputs("\n\r Time Hour (0-24) --> ");
[1075] cscanf("%2s",&c);
[1076] if((isdigit(c[0]))&&(isdigit(c[1]))&&(c[2]=='\0')||
[1077] (isdigit(c[0]))&&(c[1]=='\0'))
[1078] Ho=atoi(c);
[1079] else continue;
[1080] if(Ho<=24) break;
[1081] else continue;
[1082] }
[1083] for(;;)
[1084] {
[1085] BELL;
[1086] cputs("\n\r Time Min. (0-60) --> ");
[1087] cscanf("%2s",&c);
[1088] if((isdigit(c[0]))&&(isdigit(c[1]))&&(c[2]=='\0')||
[1089] (isdigit(c[0]))&&(c[1]=='\0'))
[1090] Mo=atoi(c);
[1091] else continue;
[1092] if(Mo<=60) break;
[1093] else continue;
[1094] }
[1095] for(;;)
[1096] {
[1097] BELL;
[1098] cputs("\n\r Time Sec. (0-60) --> ");
[1099] cscanf("%2s",&c);
[1100] if((isdigit(c[0]))&&(isdigit(c[1]))&&(c[2]=='\0')||
[1101] (isdigit(c[0]))&&(c[1]=='\0'))
[1102] So=atoi(c);
[1103] else continue;
[1104] if(So<=60) break;
[1105] else continue;
[1106] }
[1107] /*----*/
[1108] Time_ordered=(long int)(Ho*3600+Mo*60+So);
[1109] /*---- Messages exec */
[1110] strcpy(Messages_exec," ADD: ");
[1111] itoa((A2*4+A1*2+A0*1),c,10);
[1112] strcat(Messages_exec,c);
[1113] /*-*/
[1114] strcat(Messages_exec,", COM: ");
[1115] itoa((C2*4+C1*2+C0*1),c,10);
[1116] strcat(Messages_exec,c);
[1117] /*-*/
[1118] strcat(Messages_exec,", Hour: ");
[1119] itoa(Ho,c,10);
[1120] strcat(Messages_exec,c);
[1121] /*-*/
[1122] strcat(Messages_exec,", Min: ");
[1123] itoa(Mo,c,10);
[1124] strcat(Messages_exec,c);
[1125] /*-*/
[1126] strcat(Messages_exec,", Sec: ");
[1127] itoa(So,c,10);
[1128] strcat(Messages_exec,c);
[1129] /*-*/
[1130] return 0;
[1131] }
[1132] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[1133] int Hand_order_var3()
[1134] {
[1135] BELL;
[1136] cputs(" Interval_ordered (sec.) --> ");
[1137] scanf("%ld",&Interval_ordered);
[1138] /*----*/
[1139] Hint_ord=Interval_ordered/3600;
[1140] Mint_ord=Interval_ordered%3600/60;
[1141] Sint_ord=Interval_ordered%3600%60;
[1142] /*----*/
[1143] return 0;
[1144] }
[1145] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[1146] int File_order_var3()
[1147] {
[1148] if(feof(Fp1)) End_program();
[1149] fgets(Messages_exec,79,Fp1);
[1150] fscanf
[1151] (Fp1,"%1d%1d%1d---%1d%1d%1d\n",
[1152] &A2,&A1,&A0,&C2,&C1,&C0);
[1153] /**/
[1154] AI0=~A0&1;
[1155] AI1=~A1&1;
[1156] AI2=~A2&1;
[1157] /**/
[1158] A_dec=A2*4+A1*2+A0*1;
[1159] /**/
[1160] CI0=~C0&1;
[1161] CI1=~C1&1;
[1162] CI2=~C2&1;
[1163] /**/
[1164] C_dec=C2*4+C1*2+C0*1;
[1165] /**/
[1166] return 0;
[1167] }
[1168] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[1169] int File_order_var4()
[1170] {
[1171] if(feof(Fp1)) End_program();
[1172] fgets(Messages_exec,79,Fp1);
[1173] fscanf
[1174] (Fp1,"%1d%1d%1d---%1d%1d%1d---%10ld\n",
[1175] &A2,&A1,&A0,&C2,&C1,&C0,&Interval_ordered);
[1176] /**/
[1177] AI0=~A0&1;
[1178] AI1=~A1&1;
[1179] AI2=~A2&1;
[1180] /**/
[1181] A_dec=A2*4+A1*2+A0*1;
[1182] /**/
[1183] CI0=~C0&1;
[1184] CI1=~C1&1;
[1185] CI2=~C2&1;
[1186] /**/
[1187] C_dec=C2*4+C1*2+C0*1;
[1188] /**/
[1189] Hint_ord=Interval_ordered/3600;
[1190] Mint_ord=Interval_ordered%3600/60;
[1191] Sint_ord=Interval_ordered%3600%60;
[1192] /*----*/
[1193] return 0;
[1194] }
[1195] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[1196] int File_order_var5()
[1197] {
[1198] if(feof(Fp1)) End_program();
[1199] fgets(Messages_exec,79,Fp1);
[1200] fscanf
[1201] (Fp1,"%1d%1d%1d---%1d%1d%1d---%2d%2d%2d\n",
[1202] &A2,&A1,&A0,&C2,&C1,&C0,&Ho,&Mo,&So);
[1203] /**/
[1204] AI0=~A0&1;
[1205] AI1=~A1&1;
[1206] AI2=~A2&1;
[1207] /**/
[1208] A_dec=A2*4+A1*2+A0*1;
[1209] /**/
[1210] CI0=~C0&1;
[1211] CI1=~C1&1;
[1212] CI2=~C2&1;
[1213] /**/
[1214] C_dec=C2*4+C1*2+C0*1;
[1215] /**/
[1216] Time_ordered=(long int)(Ho*3600+Mo*60+So);
[1217] /*----*/
[1218] return 0;
[1219] }
[1220] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[1221] int Get_time_pc_counted()
[1222] {
[1223] gettime(&Time_now);
[1224] /* */
[1225] H=(int)Time_now.ti_hour;
[1226] M=(int)Time_now.ti_min;
[1227] S=(int)Time_now.ti_sec;
[1228] Time_pc_counted=(int long)(H*3600+M*60+S);
[1229] /* */
[1230] return 0;
[1231] }
[1232] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[1233] int Get_date_pc_counted()
[1234] {
[1235] /*---- Variables */
[1236] struct tm *ptr;
[1237] time_t lt;
[1238] /*----*/
[1239] lt=time(NULL);
[1240] ptr=localtime(<);
[1241] strcpy(Str_date_pc_counted,asctime(ptr));
[1242] /* */
[1243] return 0;
[1244] }
[1245] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[1246] int Get_number_commands()
[1247] {
[1248] /*---- Variables */
[1249] char str[80];
[1250] /*---*/
[1251] while(1)
[1252] {
[1253] if(feof(Fp1)) break;
[1254] fgets(str,79,Fp1);
[1255] Number_commands++;
[1256] }
[1257] Number_commands=Number_commands/2;
[1258] rewind(Fp1);
[1259] /*----*/
[1260] return 0;
[1261] }
[1262] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[1263] String_int_ordered()
[1264] {
[1265] /*---- Variables */
[1266] char str_sint_ord[4];
[1267] char str_mint_ord[4];
[1268] char str_hint_ord[4];
[1269] /*----*/
[1270] itoa(Hint_ord,str_hint_ord,10);
[1271] itoa(Mint_ord,str_mint_ord,10);
[1272] itoa(Sint_ord,str_sint_ord,10);
[1273] /*----*/
[1274] strcpy(Str_int_ordered,str_hint_ord);
[1275] strcat(Str_int_ordered,"H ");
[1276] strcat(Str_int_ordered,str_mint_ord);
[1277] strcat(Str_int_ordered,"M ");
[1278] strcat(Str_int_ordered,str_sint_ord);
[1279] strcat(Str_int_ordered,"S ");
[1280] /*----*/
[1281] return 0;
[1282] }
[1283] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[1284] String_int_counted()
[1285] {
[1286] /*---- Variables */
[1287] char str_sint_cnt[4];
[1288] char str_mint_cnt[4];
[1289] char str_hint_cnt[4];
[1290] /*---- REVERS (!!!) */
[1291] Hint_cnt=(Interval_ordered-Interval_counted)/3600;
[1292] Mint_cnt=(Interval_ordered-Interval_counted)%3600/60;
[1293] Sint_cnt=(Interval_ordered-Interval_counted)%3600%60;
[1294] /*----*/
[1295] itoa(Hint_cnt,str_hint_cnt,10);
[1296] itoa(Mint_cnt,str_mint_cnt,10);
[1297] itoa(Sint_cnt,str_sint_cnt,10);
[1298] /*----*/
[1299] strcpy(Str_int_counted,str_hint_cnt);
[1300] strcat(Str_int_counted,"H ");
[1301] strcat(Str_int_counted,str_mint_cnt);
[1302] strcat(Str_int_counted,"M ");
[1303] strcat(Str_int_counted,str_sint_cnt);
[1304] strcat(Str_int_counted,"S ");
[1305] /*----*/
[1306] return 0;
[1307] }
[1308] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[1309] int String_time_pc_ordered()
[1310] {
[1311] /*---- Variables */
[1312] char str_Ho[4];
[1313] char str_Mo[4];
[1314] char str_So[4];
[1315] /*---- Display Time ordered */
[1316] itoa(Ho,str_Ho,10);
[1317] itoa(Mo,str_Mo,10);
[1318] itoa(So,str_So,10);
[1319] /* */
[1320] strcpy(Str_time_pc_ordered,str_Ho);
[1321] strcat(Str_time_pc_ordered,"H ");
[1322] strcat(Str_time_pc_ordered,str_Mo);
[1323] strcat(Str_time_pc_ordered,"M ");
[1324] strcat(Str_time_pc_ordered,str_So);
[1325] strcat(Str_time_pc_ordered,"S ");
[1326] return 0;
[1327] }
[1328] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[1329] int String_time_pc_counted()
[1330] {
[1331] /*---- Variables */
[1332] char str_hour[4];
[1333] char str_min[4];
[1334] char str_sec[4];
[1335] /*---- TIME_REAL (PC) */
[1336] itoa(Time_now.ti_hour,str_hour,10);
[1337] itoa(Time_now.ti_min, str_min, 10);
[1338] itoa(Time_now.ti_sec, str_sec, 10);
[1339] /* */
[1340] strcpy(Str_time_pc_counted,str_hour);
[1341] strcat(Str_time_pc_counted,"H-");
[1342] strcat(Str_time_pc_counted,str_min);
[1343] strcat(Str_time_pc_counted,"M-");
[1344] strcat(Str_time_pc_counted,str_sec);
[1345] strcat(Str_time_pc_counted,"S");
[1346] return 0;
[1347] }
[1348] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[1349] int Wind_out
[1350] (int lx,int ly,int rx,int ry,int bk_val,int col_val,
[1351] char *str)
[1352] {
[1353] setviewport(lx,ly,rx,ry,CLIP_ON);
[1354] clearviewport();
[1355] setfillstyle(SOLID_FILL,bk_val);
[1356] bar(lx,ly,rx,ry);
[1357] setcolor(col_val);
[1358] settextjustify(CENTER_TEXT,CENTER_TEXT);
[1359] settextstyle(SMALL_FONT,HORIZ_DIR,FONT_DIM_WIND);
[1360] outtextxy((rx-lx)/2,(ry-ly)/2,str);
[1361] /*----*/
[1362] return 0;
[1363] }
[1364] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[1365] int Wind_right_ini()
[1366] {
[1367] /*---- Right windows for output information */
[1368] Left_y_2=File_inp();
[1369] /* Left_y_2=File_out(); */
[1370] Left_y_2=Regime();
[1371] Left_y_2=Com_num();
[1372] Left_y_2=Com_cnt();
[1373] Left_y_2=Add_ord();
[1374] Left_y_2=Com_ord();
[1375] Left_y_2=Int_ord();
[1376] Left_y_2=Int_cnt();
[1377] Left_y_2=Time_ord();
[1378] Left_y_2=Time_pc();
[1379] Left_y_2=Error_sys();
[1380] Left_y_2=Reserve();
[1381] /*----*/
[1382] return 0;
[1383] }
[1384] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[1385] int File_inp()
[1386] {
[1387] /*---- Variables */
[1388] char *title="FILE.INP";
[1389] int col_rect=WHITE;
[1390] int bk_txt=GREEN;
[1391] int col_txt=WHITE;
[1392] int bk_val=BLACK;
[1393] int col_val=WHITE;
[1394] /*---- Abs. co-ord. window for output memorialize */
[1395] static int lx;
[1396] static int ly;
[1397] static int rx;
[1398] static int ry;
[1399] /*---- Return left_y next window */
[1400] int next_left_y;
[1401] /*---- Display window (one time) */
[1402] if (Flag_ini==NOT_INI)
[1403] {
[1404] next_left_y=Wind_2(title,
[1405] col_rect,bk_txt,col_txt,
[1406] &lx,&ly,&rx,&ry
[1407] /* Abs. co-ord. window for output */);
[1408] return next_left_y;
[1409] }
[1410] /*---- Output to window */
[1411] Wind_out(lx,ly,rx,ry,bk_val,col_val,Fname_entry);
[1412] /*----*/
[1413] return 0;
[1414] }
[1415] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[1416] int File_out()
[1417] {
[1418] /*---- Variables */
[1419] char *title="FILE.OUT";
[1420] int col_rect=WHITE;
[1421] int bk_txt=GREEN;
[1422] int col_txt=WHITE;
[1423] int bk_val=BLACK;
[1424] int col_val=WHITE;
[1425] /*---- Abs. co-ord. window for output memorialize */
[1426] static int lx;
[1427] static int ly;
[1428] static int rx;
[1429] static int ry;
[1430] /*---- Return left_y next window */
[1431] int next_left_y;
[1432] /*---- Display window (one time) */
[1433] if (Flag_ini==NOT_INI)
[1434] {
[1435] next_left_y=Wind_2(title,
[1436] col_rect,bk_txt,col_txt,
[1437] &lx,&ly,&rx,&ry /* Abs. co-ord. window for output */);
[1438] return next_left_y;
[1439] }
[1440] /*---- Output to window */
[1441] Wind_out(lx,ly,rx,ry,bk_val,col_val,Fname_exit);
[1442] /*----*/
[1443] return 0;
[1444] }
[1445] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[1446] int Regime()
[1447] {
[1448] /*---- Variables */
[1449] char *title="REGIME ";
[1450] int col_rect=WHITE;
[1451] int bk_txt=GREEN;
[1452] int col_txt=WHITE;
[1453] int bk_val=BLACK;
[1454] int col_val=WHITE;
[1455] /*---- Abs. co-ord. window for output memorialize */
[1456] static int lx;
[1457] static int ly;
[1458] static int rx;
[1459] static int ry;
[1460] /*---- Return left_y next window */
[1461] int next_left_y;
[1462] /*---- Display window (one time) */
[1463] if (Flag_ini==NOT_INI)
[1464] {
[1465] next_left_y=Wind_1(title,
[1466] col_rect,bk_txt,col_txt,
[1467] &lx,&ly,&rx,&ry
[1468] /* Abs. co-ord. window for output */);
[1469] return next_left_y;
[1470] }
[1471] /*---- Output to window */
[1472] Wind_out(lx,ly,rx,ry,bk_val,col_val,Regime_work);
[1473] return 0;
[1474] }
[1475] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[1476] int Com_num()
[1477] {
[1478] /*---- Variables */
[1479] char *title="COM.NUM";
[1480] int col_rect=WHITE;
[1481] int bk_txt=MAGENTA;
[1482] int col_txt=WHITE;
[1483] int bk_val=BLACK;
[1484] int col_val=WHITE;
[1485] /*---- Abs. co-ord. window for output memorialize */
[1486] static int lx;
[1487] static int ly;
[1488] static int rx;
[1489] static int ry;
[1490] /*---- Return left_y next window */
[1491] int next_left_y;
[1492] /*---- Display window (one time) */
[1493] if (Flag_ini==NOT_INI)
[1494] {
[1495] next_left_y=Wind_1(title,
[1496] col_rect,bk_txt,col_txt,
[1497] &lx,&ly,&rx,&ry
[1498] /* Abs. co-ord. window for output */);
[1499] return next_left_y;
[1500] }
[1501] /*---- Output to window */
[1502] itoa(Number_commands,Str_number_commands,10);
[1503] Wind_out(lx,ly,rx,ry,bk_val,col_val,Str_number_commands);
[1504] /*----*/
[1505] return 0;
[1506] }
[1507] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[1508] int Com_cnt()
[1509] {
[1510] /*---- Variables */
[1511] char *title="COM.CNT";
[1512] int col_rect=WHITE;
[1513] int bk_txt=MAGENTA;
[1514] int col_txt=WHITE;
[1515] int bk_val=BLACK;
[1516] int col_val=LIGHTGREEN;
[1517] /*---- Abs. co-ord. window for output memorialize */
[1518] static int lx;
[1519] static int ly;
[1520] static int rx;
[1521] static int ry;
[1522] /*---- Return left_y next window */
[1523] int next_left_y;
[1524] /*---- Display window (one time) */
[1525] if (Flag_ini==NOT_INI)
[1526] {
[1527] next_left_y=Wind_1(title,
[1528] col_rect,bk_txt,col_txt,
[1529] &lx,&ly,&rx,&ry
[1530] /* Abs. co-ord. window for output */);
[1531] return next_left_y;
[1532] }
[1533] /*---- Output to window */
[1534] itoa(Counter_commands,Str_counter_commands,10);
[1535] Wind_out(lx,ly,rx,ry,bk_val,col_val,Str_counter_commands);
[1536] /*----*/
[1537] return 0;
[1538] }
[1539] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[1540] int Add_ord()
[1541] {
[1542] /*---- Variables */
[1543] char *title="ADD.ORD";
[1544] int col_rect=WHITE;
[1545] int bk_txt=LIGHTGRAY;
[1546] int col_txt=WHITE;
[1547] int bk_val=BLACK;
[1548] int col_val=YELLOW;
[1549] /*---- Abs. co-ord. window for output memorialize */
[1550] static int lx;
[1551] static int ly;
[1552] static int rx;
[1553] static int ry;
[1554] /*---- Return left_y next window */
[1555] int next_left_y;
[1556] /*---- Display window (one time) */
[1557] if (Flag_ini==NOT_INI)
[1558] {
[1559] next_left_y=Wind_1(title,
[1560] col_rect,bk_txt,col_txt,
[1561] &lx,&ly,&rx,&ry
[1562] /* Abs. co-ord. window for output */);
[1563] return next_left_y;
[1564] }
[1565] /*---- Output to window */
[1566] itoa(A2*4+A1*2+A0*1,Str_add,10);
[1567] Wind_out(lx,ly,rx,ry,bk_val,col_val,Str_add);
[1568] /*----*/
[1569] return 0;
[1570] }
[1571] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[1572] int Com_ord()
[1573] {
[1574] /*---- Variables */
[1575] char *title="COM.ORD";
[1576] int col_rect=WHITE;
[1577] int bk_txt=LIGHTGRAY;
[1578] int col_txt=WHITE;
[1579] int bk_val=BLACK;
[1580] int col_val=YELLOW;
[1581] /*---- Abs. co-ord. window for output memorialize */
[1582] static int lx;
[1583] static int ly;
[1584] static int rx;
[1585] static int ry;
[1586] /*---- Return left_y next window */
[1587] int next_left_y;
[1588] /*---- Display window (one time) */
[1589] if (Flag_ini==NOT_INI)
[1590] {
[1591] next_left_y=Wind_1(title,
[1592] col_rect,bk_txt,col_txt,
[1593] &lx,&ly,&rx,&ry
[1594] /* Abs. co-ord. window for output */);
[1595] return next_left_y;
[1596] }
[1597] /*---- Output to window */
[1598] itoa(C2*4+C1*2+C0*1,Str_com,10);
[1599] Wind_out(lx,ly,rx,ry,bk_val,col_val,Str_com);
[1600] /*----*/
[1601] return 0;
[1602] }
[1603] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[1604] int Int_ord()
[1605] {
[1606] /*---- Variables */
[1607] char *title="INT.ORD";
[1608] int col_rect=WHITE;
[1609] int bk_txt=CYAN;
[1610] int col_txt=WHITE;
[1611] int bk_val=BLACK;
[1612] int col_val=YELLOW;
[1613] /*---- Abs. co-ord. window for output memorialize */
[1614] static int lx;
[1615] static int ly;
[1616] static int rx;
[1617] static int ry;
[1618] /*---- Return left_y next window */
[1619] int next_left_y;
[1620] /*---- Display window (one time) */
[1621] if (Flag_ini==NOT_INI)
[1622] {
[1623] next_left_y=Wind_2(title,
[1624] col_rect,bk_txt,col_txt,
[1625] &lx,&ly,&rx,&ry
[1626] /* Abs. co-ord. window for output */);
[1627] return next_left_y;
[1628] }
[1629] /*---- Output to window */
[1630] String_int_ordered();
[1631] Wind_out(lx,ly,rx,ry,bk_val,col_val,Str_int_ordered);
[1632] /*----*/
[1633] return 0;
[1634] }
[1635] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[1636] int Int_cnt()
[1637] {
[1638] /*---- Variables */
[1639] char *title="INT.CNT.rev";
[1640] int col_rect=WHITE;
[1641] int bk_txt=CYAN;
[1642] int col_txt=WHITE;
[1643] int bk_val=BLACK;
[1644] int col_val=LIGHTGREEN;
[1645] /*---- Abs. co-ord. window for output memorialize */
[1646] static int lx;
[1647] static int ly;
[1648] static int rx;
[1649] static int ry;
[1650] /*---- Return left_y next window */
[1651] int next_left_y;
[1652] /*---- Display window (one time) */
[1653] if (Flag_ini==NOT_INI)
[1654] {
[1655] next_left_y=Wind_2(title,
[1656] col_rect,bk_txt,col_txt,
[1657] &lx,&ly,&rx,&ry
[1658] /* Abs. co-ord. window for output */);
[1659] return next_left_y;
[1660] }
[1661] /*---- Output to window */
[1662] String_int_counted();
[1663] Wind_out(lx,ly,rx,ry,bk_val,col_val,Str_int_counted);
[1664] /*----*/
[1665] return 0;
[1666] }
[1667] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[1668] int Time_ord()
[1669] {
[1670] /*---- Variables */
[1671] char *title="TIME.ORD";
[1672] int col_rect=WHITE;
[1673] int bk_txt=BLUE;
[1674] int col_txt=WHITE;
[1675] int bk_val=BLACK;
[1676] int col_val=YELLOW;
[1677] /*---- Abs. co-ord. window for output memorialize */
[1678] static int lx;
[1679] static int ly;
[1680] static int rx;
[1681] static int ry;
[1682] /*---- Return left_y next window */
[1683] int next_left_y;
[1684] /*---- Display window (one time) */
[1685] if (Flag_ini==NOT_INI)
[1686] {
[1687] next_left_y=Wind_2(title,
[1688] col_rect,bk_txt,col_txt,
[1689] &lx,&ly,&rx,&ry
[1690] /* Abs. co-ord. window for output */);
[1691] return next_left_y;
[1692] }
[1693] /*---- Output to window */
[1694] String_time_pc_ordered();
[1695] Wind_out(lx,ly,rx,ry,bk_val,col_val,Str_time_pc_ordered);
[1696] /*----*/
[1697] return 0;
[1698] }
[1699] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[1700] int Time_pc()
[1701] {
[1702] /*---- Variables */
[1703] char *title="TIME.CNT";
[1704] int col_rect=WHITE;
[1705] int bk_txt=BLUE;
[1706] int col_txt=WHITE;
[1707] int bk_val=BLACK;
[1708] int col_val=LIGHTGREEN;
[1709] /*---- Abs. co-ord. window for output memorialize */
[1710] static int lx;
[1711] static int ly;
[1712] static int rx;
[1713] static int ry;
[1714] /*---- Return left_y next window */
[1715] int next_left_y;
[1716] /*---- Display window (one time) */
[1717] if (Flag_ini==NOT_INI)
[1718] {
[1719] next_left_y=Wind_2(title,
[1720] col_rect,bk_txt,col_txt,
[1721] &lx,&ly,&rx,&ry
[1722] /* Abs. co-ord. window for output */);
[1723] return next_left_y;
[1724] }
[1725] /*---- Output to window */
[1726] String_time_pc_counted();
[1727] Wind_out(lx,ly,rx,ry,bk_val,col_val,Str_time_pc_counted);
[1728] /*----*/
[1729] return 0;
[1730] }
[1731] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[1732] int Error_sys()
[1733] {
[1734] /*---- Variables */
[1735] char *title="ERR";
[1736] int col_rect=WHITE;
[1737] int bk_txt=RED;
[1738] int col_txt=WHITE;
[1739] int bk_val=BLACK;
[1740] int col_val=LIGHTRED;
[1741] /*---- Abs. co-ord. window for output memorialize */
[1742] static int lx;
[1743] static int ly;
[1744] static int rx;
[1745] static int ry;
[1746] /*---- Return left_y next window */
[1747] int next_left_y;
[1748] /*---- Display window (one time) */
[1749] if (Flag_ini==NOT_INI)
[1750] {
[1751] next_left_y=Wind_1(title,
[1752] col_rect,bk_txt,col_txt,
[1753] &lx,&ly,&rx,&ry
[1754] /* Abs. co-ord. window for output */);
[1755] return next_left_y;
[1756] }
[1757] /*---- Output to window */
[1758] Wind_out(lx,ly,rx,ry,bk_val,col_val,Str_error_sys);
[1759] /*----*/
[1760] return 0;
[1761] }
[1762] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[1763] int Reserve()
[1764] {
[1765] /*---- Variables */
[1766] int left_x,right_x;
[1767] int left_y,right_y;
[1768] int dx,dy;
[1769] int th;
[1770] char *title0=" Not room for next window ";
[1771] char *title1="RESERVE";
[1772] int col_rect=WHITE;
[1773] int bk_txt=LIGHTGRAY;
[1774] int col_txt=WHITE;
[1775] /*---- Not room for next window */
[1776] if(Left_y_2>=Maxy)
[1777] {
[1778] Wind_out
[1779] (0,0,Maxx,Maxy,RED,WHITE,title0);
[1780] STOP;
[1781] exit(EXIT_SUCCESS);
[1782] }
[1783] /*---- Co-ordinates of the window */
[1784] left_x=Left_x_2;
[1785] right_x=Right_x_2;
[1786] left_y=Left_y_2;
[1787] right_y=Maxy;
[1788] dx=right_x-left_x;
[1789] dy=right_y-left_y;
[1790] /*---- Window for output */
[1791] setviewport
[1792] (left_x,left_y,right_x,right_y,CLIP_ON);
[1793] clearviewport();
[1794] setbkcolor(BLACK);
[1795] setcolor(col_rect);
[1796] setlinestyle(SOLID_LINE,0,NORM_WIDTH);
[1797] rectangle(0,0,dx,dy);
[1798] /*---- Output to window */
[1799] setfillstyle(SOLID_FILL,bk_txt);
[1800] bar(1,1,dx-1,dy-1);
[1801] setcolor(col_txt);
[1802] settextjustify(CENTER_TEXT,CENTER_TEXT);
[1803] settextstyle(SMALL_FONT,HORIZ_DIR,FONT_DIM_WIND);
[1804] th=textheight("W");
[1805] if(dy>=th) outtextxy(dx/2,dy/2,title1);
[1806] /*----*/
[1807] return 0;
[1808] }
[1809] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[1810] int Wind_left_ini()
[1811] {
[1812] /*----*/
[1813] Left_y_1=Title_sys();
[1814] Left_y_1=Address_bus();
[1815] Left_y_1=Mes_exec();
[1816] Left_y_1=Device_bus();
[1817] /*----*/
[1818] return 0;
[1819] }
[1820] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[1821] int Title_sys()
[1822] {
[1823] /*---- Variables */
[1824] int col_rect=WHITE;
[1825] int bk_txt=BLUE;
[1826] int col_txt=YELLOW;
[1827] int col_shadow=CYAN;
[1828] /*---- Abs. co-ord. window for output memorialize */
[1829] static int lx;
[1830] static int ly;
[1831] static int rx;
[1832] static int ry;
[1833] /*----*/
[1834] static int dx,dy;
[1835] /*---- Return left_y next window */
[1836] int next_left_y;
[1837] /*---- Display window (one time) */
[1838] next_left_y=Wind_0(col_rect,
[1839] &lx,&ly,&rx,&ry
[1840] /* Abs. co-ord. window for output */);
[1841] dx=rx-lx;
[1842] dy=ry-ly;
[1843] /*---- Window for output */
[1844] setviewport(lx,ly,rx,ry,CLIP_ON);
[1845] clearviewport();
[1846] setfillstyle(SOLID_FILL,bk_txt);
[1847] bar(lx,ly,rx,ry);
[1848] settextjustify(CENTER_TEXT,CENTER_TEXT);
[1849] settextstyle(SMALL_FONT,HORIZ_DIR,FONT_DIM_WIND);
[1850] /*---- Output to window */
[1851] setcolor(col_shadow);
[1852] outtextxy(dx/2,dy/2,Title_2);
[1853] setcolor(col_txt);
[1854] outtextxy(dx/2-1,dy/2-1,Title_2);
[1855] /*----*/
[1856] return next_left_y;
[1857] }
[1858] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[1859] int Address_bus()
[1860] {
[1861] /*---- Variables */
[1862] int col_rect=WHITE;
[1863] float compression_y=COMPRESSION_ADD_Y;
[1864] int col=COL_DRAFT_ADD;
[1865] int row=ROW_DRAFT_ADD;
[1866] /*---- Abs. co-ord. window for output memorialize */
[1867] static int lx;
[1868] static int ly;
[1869] static int rx;
[1870] static int ry;
[1871] /*---- Scale= pixels/squares */
[1872] static int kx,ky;
[1873] /*---- Return left_y next window */
[1874] int next_left_y;
[1875] /*---- Display window (one time) */
[1876] if (Flag_ini==NOT_INI)
[1877] {
[1878] next_left_y=Wind_D
[1879] (compression_y,
[1880] col, row,
[1881] col_rect,
[1882] &kx,&ky,
[1883] &lx,&ly,&rx,&ry /* Abs. co-ord. window for output */);
[1884] setviewport(lx,ly,rx,ry,CLIP_ON);
[1885] Addbus3bit(kx,ky);
[1886] return next_left_y;
[1887] }
[1888] /*---- Window for output */
[1889] setviewport(lx,ly,rx,ry,CLIP_ON);
[1890] /*---- Output to window: Draft of the address bus 3 bit */
[1891] if(Flag_ini==YES_INI) Logic_addbus3bit(kx,ky);
[1892] /*----*/
[1893] return 0;
[1894] }
[1895] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[1896] int Mes_exec()
[1897] {
[1898] /*---- Variables */
[1899] int col_rect=WHITE;
[1900] int bk_txt=BLUE;
[1901] int col_txt=YELLOW;
[1902] /*---- Abs. co-ord. window for output memorialize */
[1903] static int lx;
[1904] static int ly;
[1905] static int rx;
[1906] static int ry;
[1907] /*----*/
[1908] static int dx,dy;
[1909] /*---- Return left_y next window */
[1910] int next_left_y;
[1911] /*---- Display window (one time) */
[1912] if (Flag_ini==NOT_INI)
[1913] {
[1914] next_left_y=Wind_0(col_rect,
[1915] &lx,&ly,&rx,&ry
[1916] /* Abs. co-ord. window for output */);
[1917] dx=rx-lx;
[1918] dy=ry-ly;
[1919] return next_left_y;
[1920] }
[1921] /*---- Window for output */
[1922] setviewport(lx,ly,rx,ry,CLIP_ON);
[1923] clearviewport();
[1924] setfillstyle(SOLID_FILL,bk_txt);
[1925] bar(lx,ly,rx,ry);
[1926] settextjustify(CENTER_TEXT,CENTER_TEXT);
[1927] settextstyle(SMALL_FONT,HORIZ_DIR,FONT_DIM_WIND);
[1928] /*---- Output to window */
[1929] setcolor(col_txt);
[1930] outtextxy(dx/2,dy/2,Messages_exec);
[1931] /*----*/
[1932] return 0;
[1933] }
[1934] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[1935] int Device_bus()
[1936] {
[1937] /*---- Variables */
[1938] int col_rect=WHITE;
[1939] float compression_y;
[1940] int col=COL_DRAFT_DEV;
[1941] int row=ROW_DRAFT_DEV;
[1942] /*---- Abs. co-ord. window for output memorialize */
[1943] static int lx;
[1944] static int ly;
[1945] static int rx;
[1946] static int ry;
[1947] static int dx,dy;
[1948] /*----*/
[1949] static int kx,ky;
[1950] /* static unsigned int add_previous=1000; */
[1951] unsigned int add_exe;
[1952] /*---- Return left_y next window */
[1953] int next_left_y;
[1954] /*---- Display window (one time) */
[1955] compression_y=(float)(Maxy- Left_y_1)/Maxy;
[1956] if (Flag_ini==NOT_INI)
[1957] {
[1958] next_left_y=Wind_D
[1959] (compression_y,
[1960] col, row,
[1961] col_rect,
[1962] &kx,&ky,
[1963] &lx,&ly,&rx,&ry /* Abs. co-ord. window for output */);
[1964] dx=rx-lx;
[1965] dy=ry-ly;
[1966] /*---- Start */
[1967] setviewport(lx,ly,rx,ry,CLIP_ON);
[1968] Start_program(dx,dy);
[1969] return next_left_y;
[1970] }
[1971] /*---- Window for output */
[1972] setviewport(lx,ly,rx,ry,CLIP_ON);
[1973] /*-------- Output to window */
[1974] /***************************** Commutator for devices 0-7 */
[1975] if(Flag_ini==YES_INI)
[1976] {
[1977] /*---- Device_0 */
[1978] if(A_dec==0)
[1979] {
[1980] Dev0_pct(kx,ky);
[1981] Dev0_log(kx,ky);
[1982] }
[1983] /*---- Device_1 */
[1984] if(A_dec==1)
[1985] {
[1986] Dev1_pct(kx,ky);
[1987] Dev1_log(kx,ky);
[1988] }
[1989] /*---- Device_2 */
[1990] if(A_dec==2)
[1991] {
[1992] Dev2_pct(kx,ky);
[1993] Dev2_log(kx,ky);
[1994] }
[1995] /*---- Device_3 */
[1996] if(A_dec==3)
[1997] {
[1998] Dev3_pct(kx,ky);
[1999] Dev3_log(kx,ky);
[2000] }
[2001] /*---- Device_4 */
[2002] if(A_dec==4)
[2003] {
[2004] Dev4_pct(kx,ky);
[2005] Dev4_log(kx,ky);
[2006] }
[2007] /*---- Device_5 */
[2008] if(A_dec==5)
[2009] {
[2010] Dev5_pct(kx,ky);
[2011] Dev5_log(kx,ky);
[2012] }
[2013] /*---- Device_6 */
[2014] if(A_dec==6)
[2015] {
[2016] Dev6_pct(kx,ky);
[2017] Dev6_log(kx,ky);
[2018] }
[2019] /*---- Device_7 */
[2020] if(A_dec==7)
[2021] {
[2022] Dev7_pct(kx,ky);
[2023] Dev7_log(kx,ky);
[2024] }
[2025] /*---- Memory address */
[2026] /* add_previous=add_exe; */
[2027] }
[2028] /*----*/
[2029] return 0;
[2030] }
[2031] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[2032] int Wind_0
[2033] (int col_rect,
[2034] int *lx,int *ly,int *rx,int *ry
[2035] /* Abs. co-ord. window for output */)
[2036] {
[2037] /*---- Variables */
[2038] int left_x,right_x;
[2039] int left_y,right_y;
[2040] int dx,dy;
[2041] int th;
[2042] /*----*/
[2043] settextstyle(SMALL_FONT,HORIZ_DIR,FONT_DIM_WIND);
[2044] th=textheight("W");
[2045] /*----*/
[2046] left_x=Left_x_1;
[2047] right_x=Right_x_1;
[2048] left_y=Left_y_1;
[2049] right_y=left_y+WIND_HEIGHT*th;
[2050] dx=right_x-left_x;
[2051] dy=right_y-left_y;
[2052] /*---- Window total */
[2053] setviewport
[2054] (left_x,left_y,right_x,right_y,CLIP_ON);
[2055] setbkcolor(BLACK);
[2056] setcolor(col_rect);
[2057] setlinestyle(SOLID_LINE,0,NORM_WIDTH);
[2058] rectangle(0,0,dx,dy);
[2059] /*---- Abs. co-ord. window for output */
[2060] *lx=left_x+1;
[2061] *ly=left_y+1;
[2062] *rx=right_x-1;
[2063] *ry=right_y-1;
[2064] /*----*/
[2065] return right_y+WIND_INTERVAL_Y;
[2066] }
[2067] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[2068] int Wind_1
[2069] (char *title,
[2070] int col_rect,
[2071] int bk_txt,int col_txt,
[2072] int *lx,int *ly,int *rx,int *ry
[2073] /* Abs. co-ord. window for output */)
[2074] {
[2075] /*---- Variables */
[2076] int left_x,right_x;
[2077] int left_y,right_y;
[2078] int dx,dy;
[2079] int th;
[2080] int tw;
[2081] /*----*/
[2082] settextstyle(SMALL_FONT,HORIZ_DIR,FONT_DIM_WIND);
[2083] tw=(strlen(title)+1)*textwidth("W");
[2084] th=textheight("W");
[2085] /*----*/
[2086] left_x=Left_x_2;
[2087] right_x=Right_x_2;
[2088] left_y=Left_y_2;
[2089] right_y=left_y+WIND_HEIGHT*th;
[2090] dx=right_x-left_x;
[2091] dy=right_y-left_y;
[2092] /*---- Window total */
[2093] setviewport
[2094] (left_x,left_y,right_x,right_y,CLIP_ON);
[2095] setbkcolor(BLACK);
[2096] setcolor(col_rect);
[2097] setlinestyle(SOLID_LINE,0,NORM_WIDTH);
[2098] rectangle(0,0,dx,dy);
[2099] /*---- Text window */
[2100] setfillstyle(SOLID_FILL,bk_txt);
[2101] bar(1,1,tw,dy-1);
[2102] settextjustify(CENTER_TEXT,CENTER_TEXT);
[2103] setcolor(col_txt);
[2104] outtextxy(tw/2,dy/2,title);
[2105] /*---- Abs. co-ord. window for output */
[2106] *lx=left_x+(1+tw);
[2107] *ly=left_y+1;
[2108] *rx=right_x-1;
[2109] *ry=right_y-1;
[2110] /*----*/
[2111] return right_y+WIND_INTERVAL_Y;
[2112] }
[2113] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[2114] int Wind_2
[2115] (char *title,
[2116] int col_rect,
[2117] int bk_txt,int col_txt,
[2118] int *lx,int *ly,int *rx,int *ry
[2119] /* Abs. co-ord. window for output */)
[2120] {
[2121] /*---- Variables */
[2122] int left_x,right_x;
[2123] int left_y,right_y;
[2124] int dx,dy;
[2125] int th;
[2126] /*----*/
[2127] settextstyle(SMALL_FONT,HORIZ_DIR,FONT_DIM_WIND);
[2128] th=textheight("W");
[2129] /*----*/
[2130] left_x=Left_x_2;
[2131] right_x=Right_x_2;
[2132] left_y=Left_y_2;
[2133] right_y=left_y+WIND_HEIGHT*th*2;
[2134] dx=right_x-left_x;
[2135] dy=right_y-left_y;
[2136] /*---- Window total */
[2137] setviewport
[2138] (left_x,left_y,right_x,right_y,CLIP_ON);
[2139] setbkcolor(BLACK);
[2140] setcolor(col_rect);
[2141] setlinestyle(SOLID_LINE,0,NORM_WIDTH);
[2142] rectangle(0,0,dx,dy);
[2143] /*---- Text window */
[2144] setfillstyle(SOLID_FILL,bk_txt);
[2145] bar(1,1,dx-1,dy/2-1);
[2146] settextjustify(CENTER_TEXT,CENTER_TEXT);
[2147] setcolor(col_txt);
[2148] outtextxy(dx/2,dy/4,title);
[2149] /*---- Abs. co-ord. window for output */
[2150] *lx=left_x+1;
[2151] *ly=left_y+(1+WIND_HEIGHT*th);
[2152] *rx=right_x-1;
[2153] *ry=right_y-1;
[2154] /*----*/
[2155] return right_y+WIND_INTERVAL_Y;
[2156] }
[2157] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[2158] int Wind_D
[2159] (float compression_y,
[2160] int col, int row,
[2161] int col_rect,
[2162] int *kx,int *ky,
[2163] int *lx,int *ly,int *rx,int *ry
[2164] /* Abs. co-ord. window for output */)
[2165] {
[2166] /*---- Variables */
[2167] int left_x,right_x;
[2168] int left_y,right_y;
[2169] int dx,dy;
[2170] /*----*/
[2171] left_x=Left_x_1;
[2172] right_x=Right_x_1;
[2173] left_y=Left_y_1;
[2174] right_y=left_y+Maxy*compression_y;
[2175] dx=right_x-left_x;
[2176] dy=right_y-left_y;
[2177] /*---- Window total */
[2178] setviewport
[2179] (left_x,left_y,right_x,right_y,CLIP_ON);
[2180] setbkcolor(BLACK);
[2181] setcolor(col_rect);
[2182] setlinestyle(SOLID_LINE,0,NORM_WIDTH);
[2183] rectangle(0,0,dx,dy);
[2184] /*---- Abs. co-ord. window for output */
[2185] *lx=left_x+1;
[2186] *ly=left_y+1;
[2187] *rx=right_x-1;
[2188] *ry=right_y-1;
[2189] *kx=dx/col;
[2190] *ky=dy/row;
[2191] /*----*/
[2192] return right_y+WIND_INTERVAL_Y;
[2193] }
[2194] /*IIIIIIIIIIIIIIIIIIIIIIIIIIIIII*/
[2195] int Bit(int x,int y,unsigned char bit)
[2196] {
[2197] settextstyle(SMALL_FONT,HORIZ_DIR,FONT_DIM_DRAFT+2);
[2198] settextjustify(CENTER_TEXT,CENTER_TEXT);
[2199] setbkcolor(BLACK);
[2200] /*---- Delete bit */
[2201] setcolor(BLACK);
[2202] outtextxy(x,y,"0");
[2203] outtextxy(x,y,"1");
[2204] /*---- Print bit */
[2205] if(bit==0)
[2206] {
[2207] setcolor(LIGHTBLUE);
[2208] outtextxy(x,y,"0");
[2209] }
[2210] else
[2211] {
[2212] setcolor(LIGHTMAGENTA);
[2213] outtextxy(x,y,"1");
[2214] }
[2215] setlinestyle(SOLID_LINE,0,NORM_WIDTH);
[2216] setcolor(CYAN);
[2217] rectangle
[2218] (x-textwidth("0")/2-1,y-textheight("0")/2+2,
[2219] x+textwidth("0")/2-1,y+textheight("0")/2+2);
[2220] /*----*/
[2221] return 0;
[2222] }
/*########################################################*/
* * *