home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1996 May / PCW596.iso / polskie / eduk / genfast / genfast.lzh / DEMO_05.PAK / CONFIG.DA_ < prev    next >
Text File  |  1996-02-08  |  44KB  |  2,144 lines

  1. ;########################################################
  2. ;#                                                      #
  3. ;#       Program demonstracyjny w jæzyku EasyGEN        #
  4. ;#         SETUP dla karty ADC I/O do IBM PC            #
  5. ;#                                                      #
  6. ;#     (C) 1995 MegaP Soft      Grzegorz Puchawski      #
  7. ;#                                                      #
  8. ;########################################################
  9.  
  10.  
  11. [procedure CheckMouse]
  12. [900]
  13. ;czeka aº zwolniå siæ wszystkie klawisze myszki
  14. @GetMousePosition;
  15. @If (%Z<>0) then Goto:900;
  16. @Return;
  17. ;############################################################
  18. [procedure HELP]
  19. @ShowHelp('');
  20. @Return;
  21. ;----------------
  22. [999]
  23. @If (%Z=$3B00) then Call:HELP;
  24. @If (%Z=$2500) then Goto:0;
  25. @CheckEvents;
  26. ;############################################################
  27. [procedure NoCARD]
  28. @ShowScreen;
  29. @MessageBox('BÆåd','Brak zainstalowanej karty.');
  30. @Return;
  31. ;############################################################
  32. [procedure InitCard]
  33. [910]
  34. ;
  35. ;tutaj znajduje sie procedura inicjalizujaca
  36. ;
  37. ;
  38. ; w %K przekazujemy adres, który ustawili₧my na karcie
  39. ;    $2B8 - adres ustawiany fabrycznie
  40. @K:=$2B8;
  41. ;
  42. ;WPROWADZENIE DO KARTY KODU Z TABLICY - INICJALIZACJA KARTY
  43. ;wywoÆywaì przez GOSUB
  44. @ByteToPort($2BA,0);
  45. @ByteToPort($2BD,0);
  46. @Delay(200);
  47. @ByteToPort($2B9,0);
  48. @Delay(200);
  49. @L:=0;
  50. [911]
  51. @ByteFromPort($2BA,%A);
  52. ;       sprawdzanie czy w komputerze zainstalowana zostaÆa karta
  53. @L:=%L+1;
  54. @If (%L>20) then BEGIN
  55. @Call:NoCard;
  56. @Return;
  57. @END;
  58. @If (%A <> 253) then goto:911;
  59. @RETURN;
  60. ;koniec zapisywania warto₧ci z tablicy do karty
  61. ;############################################################
  62.  
  63. ;-----------------------------------------------------------
  64. [procedure SetCard]
  65. ;WEWNETRZNA INICJALIZACJA KARTY - wczytanie danych do tablicy
  66. ;zerowanie tablicy
  67. @C:=3;
  68. @ExecuteCode;
  69. ;wpisanie odpowiednich warto₧ci do tablicy
  70. @A:=1;
  71. @B:=249;
  72. @C:=1;
  73. @ExecuteCode;
  74. @A:=2;
  75. @B:=241;
  76. @C:=1;
  77. @ExecuteCode;
  78. @A:=3;
  79. @B:=32;
  80. @C:=1;
  81. @ExecuteCode;
  82. @A:=4;
  83. @B:=226;
  84. @C:=1;
  85. @ExecuteCode;
  86. @A:=5;
  87. @B:=216;
  88. @C:=1;
  89. @ExecuteCode;
  90. @A:=6;
  91. @B:=209;
  92. @C:=1;
  93. @ExecuteCode;
  94. @A:=7;
  95. @B:=201;
  96. @C:=1;
  97. @ExecuteCode;
  98. @A:=8;
  99. @B:=193;
  100. @C:=1;
  101. @ExecuteCode;
  102. @A:=9;
  103. @B:=0;
  104. @C:=1;
  105. @ExecuteCode;
  106. @A:=10;
  107. @B:=251;
  108. @C:=1;
  109. @ExecuteCode;
  110. @A:=11;
  111. @B:=251;
  112. @C:=1;
  113. @ExecuteCode;
  114. @A:=12;
  115. @B:=251;
  116. @C:=1;
  117. @ExecuteCode;
  118. @A:=13;
  119. @B:=251;
  120. @C:=1;
  121. @ExecuteCode;
  122. @A:=14;
  123. @B:=251;
  124. @C:=1;
  125. @ExecuteCode;
  126. @A:=15;
  127. @B:=251;
  128. @C:=1;
  129. @ExecuteCode;
  130. @A:=16;
  131. @B:=251;
  132. @C:=1;
  133. @ExecuteCode;
  134. ;-------------16 wej₧ì analogowych
  135. @A:=17;
  136. @B:=1;
  137. @C:=1;
  138. @ExecuteCode;
  139. @A:=18;
  140. @B:=5;
  141. @C:=1;
  142. @ExecuteCode;
  143. @A:=19;
  144. @B:=7;
  145. @C:=1;
  146. @ExecuteCode;
  147. @A:=20;
  148. @B:=255;
  149. @C:=1;
  150. @ExecuteCode;
  151. @A:=21;
  152. @B:=5;
  153. @C:=1;
  154. @ExecuteCode;
  155. @A:=22;
  156. @B:=255;
  157. @C:=1;
  158. @ExecuteCode;
  159. @A:=23;
  160. @B:=1;
  161. @C:=1;
  162. @ExecuteCode;
  163. @A:=24;
  164. @B:=0;
  165. @C:=1;
  166. @ExecuteCode;
  167. @A:=25;
  168. @B:=0;
  169. @C:=1;
  170. @ExecuteCode;
  171. @A:=26;
  172. @B:=0;
  173. @C:=1;
  174. @ExecuteCode;
  175. @A:=27;
  176. @B:=1;
  177. @C:=1;
  178. @ExecuteCode;
  179. @A:=28;
  180. @B:=0;
  181. @C:=1;
  182. @ExecuteCode;
  183. @A:=29;
  184. @B:=2;
  185. @C:=1;
  186. @ExecuteCode;
  187. @A:=30;
  188. @B:=128;
  189. @C:=1;
  190. @ExecuteCode;
  191. @A:=31;
  192. @B:=0;
  193. @C:=1;
  194. @ExecuteCode;
  195. @A:=32;
  196. @B:=0;
  197. @C:=1;
  198. @ExecuteCode;
  199.  
  200.  
  201. ;                                      @Call:InitCard;
  202.  
  203. @Return;
  204. ; koniec ustawiania konfiguracji standardowej - SetCard
  205. ;######################################################
  206. [procedure SaveG]
  207. ;odczytuje z %G numer toru i zapisuje do 99   (1..16)
  208. @A:=99;
  209. @B:=%G;
  210. @C:=1;
  211. @ExecuteCode;
  212. @Return;
  213. ;----------------
  214. [procedure LoadG]
  215. ; odczytuje z 99 numer toru i zapisuje do %G
  216. @A:=99;
  217. @C:=2;
  218. @ExecuteCode;
  219. @G:=%B;
  220. @Return;
  221. ;-----------------------------------------------
  222. [procedure Error]
  223. @MessageBox('BÆåd','Brak pliku na dysku.');
  224. @Return;
  225. ;------------------------------------------------
  226. ;********************************************************
  227. [procedure Color0]
  228. @SetColors(0,0);
  229. @Return;
  230. ;---------
  231. [procedure Color3]
  232. @SetColors(3,3);
  233. @Return;
  234. ;----------
  235. [procedure Color7]
  236. @SetColors(7,7);
  237. @Return;
  238. ;----------
  239. [procedure Color10]
  240. @SetColors(10,10);
  241. @Return;
  242. ;-----------
  243. [procedure Color12]
  244. @SetColors(12,12);
  245. @Return;
  246. ;-----------
  247. [procedure Color14]
  248. @SetColors(14,14);
  249. @Return;
  250. ;############################################################
  251. [procedure ResetButtons]
  252. @SetHelpContext(1);
  253. @SetPosition(0,20);
  254. @DisableUserButtons;
  255. @ResetFields;
  256. @LoadFields('KARTA.CGV');
  257. @D:=1;
  258. @F:=20;
  259. ;
  260. @Repeat:16;
  261. @SetInvisibleButton(20,%F+(%D-1)*10,30,%F+%D*10,109+%D);
  262. @A:=%D;
  263. @C:=2;
  264. @ExecuteCode;
  265. @If (%B&128<>0) then Call:Color10;
  266. @If (%B&128=0) then Call:Color12;
  267. @Bar(22,%F+(%D-1)*10+2,28,%F+%D*10-2);
  268. @D:=%D+1;
  269. @F:=%F+10;
  270. @Next;
  271. @SetColors(8,15);
  272. @SetButton(80,370,130,420,7,150,'Zeruj','Ustawienia standardowe');
  273. @SetButton(140,370,190,420,7,160,'INIT.RBM','Inicjacja karty');
  274. @SetButton(200,370,250,420,7,200,'PRG_DMA.RBM','Rodzaj pracy karty');
  275. @SetButton(260,370,310,420,7,170,'WYJSCIA.RBM','Ustawianie wyj₧ì karty');
  276. @SetButton(320,370,370,420,7,180,'ZAPIS.RBM','Zapis konfiguracji');
  277. @SetButton(380,370,430,420,7,190,'ODCZYT.RBM','Odczyt konfiguracji');
  278. @SetButton(440,370,490,420,7,2,'OPIS2.RBM','Opis karty I/O');
  279. @SetButton(500,370,550,420,7,0,'KONIEC.RBM','Wyj₧cie z programu');
  280. @SetColors(0,15);
  281. @Return;
  282. ;----------------------------------------------------------------
  283.  
  284.  
  285. ;################################################################
  286. ;################# G£úWNA ETYKIETA PROGRAMU ####################
  287. [1!]
  288. @Reset;
  289. @DisableStatusBar;
  290. @Clrscr;
  291. @SetColors(3,3);
  292. @Bar(0,0,639,479);
  293. @SetColors(0,15);
  294. @SetPosition(40,15);
  295. @SetHelpContext(1);
  296. @DefKeyboardHandler(999);
  297. @ResetVariables;
  298. @LoadCode('CARDDRV.SYS');
  299. @Call:SetCard;
  300. @UpArea(130,10,620,340,7);
  301. @DownArea(10,10,100,340,7);
  302. @SetColors(0,15);
  303. @SetPosition(0,20);
  304. @Picture('karta.cgv');
  305. @A:=0;
  306. @B:=10;
  307. @Repeat:16;
  308. @A:=%A+1;
  309. @B:=%B+10;
  310. ;rysuje przyciski odpowiadajåce poszczególnym wej₧ciom analogowym
  311. @SetInvisibleButton(20,%B+(%A-1)*10,30,%B+%A*10,109+%A);
  312. @UpArea(20,%B+(%A-1)*10,30,%B+%A*10,7);
  313. @SetPosition(37,%B+(%A-1)*10+2);
  314. @FastWrite('Dana');
  315. @WriteValue(70,%B+(%A-1)*10,90,%B+%A*10,2,0,%A);
  316. @Next;
  317. @SetColors(8,15);
  318. @DownArea(50,438,580,465,7);
  319. @SetPosition(70,445);
  320. @SetColors(1,14);
  321. Program konfiguracyjny dla karty I/O     ~MegaP Soft (c) 1995~
  322. @SetColors(8,15);
  323. @DrawButton(80,370,130,420,7,150,'Zeruj','Ustawienia standardowe');
  324. @DrawButton(140,370,190,420,7,160,'INIT.RBM','Inicjacja karty');
  325. @DrawButton(200,370,250,420,7,200,'PRG_DMA.RBM','Rodzaj pracy karty');
  326. @DrawButton(260,370,310,420,7,170,'WYJSCIA.RBM','Ustawianie wyj₧ì karty');
  327. @DrawButton(320,370,370,420,7,180,'ZAPIS.RBM','Zapis konfiguracji');
  328. @DrawButton(380,370,430,420,7,190,'ODCZYT.RBM','Odczyt konfiguracji');
  329. @DrawButton(440,370,490,420,7,2,'OPIS2.RBM','Opis karty I/O');
  330. @DrawButton(500,370,550,420,7,0,'KONIEC.RBM','Wyj₧cie z programu');
  331. @ShowScreen;
  332. @Goto:102;
  333. ;--------------------------------------------
  334. [2]
  335. @SetHelpContext(1);
  336. @ShowHelp('');
  337. @Goto:102;
  338. ;--------------------------------------------
  339. [102]
  340. @Call:ResetButtons;
  341. @CheckEvents;
  342.  
  343.  
  344. ;-----------------------------------------------
  345. ;WYWO£ANIE USTAWIANIA 16 WEJÿò ANALOGOWYCH
  346. [110..125]
  347. @Call:CheckMouse;
  348. @GetCurrentPage(%F);
  349. @Goto:130;
  350. ;---------------------------------------------
  351. [130]
  352. @G:=%F-109;
  353. @Call:SaveG;
  354. @Gosub:750;
  355. @Goto:102;
  356. ;---------------------------------------------
  357. [150]
  358. ;Ustawienie standardowych warto₧ci dla karty
  359. @Call:SetCard;
  360. @Goto:102;
  361. ;----------------------------------------------
  362. [160]
  363. ;Inicjacja karty z danymi z tablicy
  364. @Call:InitCard;
  365. @Goto:102;
  366. ;----------------------------------------------
  367. [170]
  368. ;Ustawienie wyj₧ì analogowych i cyfrowych karty
  369. @Gosub:700;
  370. @Goto:102;
  371. ;----------------------------------------------
  372. [180]
  373. ;zapis konfiguracji
  374. @C:=9;
  375. @CreateUserFile('Zapis *.CRD','*.CRD');
  376. @GetErrorCode;
  377. @If (%Z<>0) then Goto:102;
  378. @L:=1;
  379. @Repeat:32;
  380. ;odczyt z tablicy
  381. @A:=%L;
  382. @C:=2;
  383. @ExecuteCode;
  384. @WriteByte(%B);
  385. @L:=%L+1;
  386. @Next
  387. @CloseFile;
  388. @Goto:102;
  389. ;----------------------------------------------
  390. [190]
  391. ;odczyt konfiguracji
  392. @C:=9;
  393. @OpenUserFile('Odczyt *.CRD','*.CRD');
  394. ;gdy brak pliku
  395. @GetErrorCode;
  396. @If (%Z<>0) then Goto:102;
  397. @L:=1;
  398. @Repeat:32;
  399. @ReadByte(%B);
  400. ;zapis do tablicy
  401. @A:=%L;
  402. @C:=1;
  403. @ExecuteCode;
  404. @L:=%L+1;
  405. @Next
  406. @CloseFile;
  407. @Goto:102;
  408. ;----------------------------------------------
  409. [200]
  410. ;DMA/PRG
  411. @Gosub:850;
  412. @Goto:102;
  413. ;-----------------------------------------------
  414.  
  415.  
  416.  
  417.  
  418.  
  419. ;**************************************************************
  420. [procedure OFF4PRG]
  421. @A:=32;
  422. @C:=2;
  423. @ExecuteCode;
  424. @If (%B&4=0) then Return;
  425. ;               inaczej wyÆåczenie opcji
  426. @C:=1;
  427. @B:=%B-4;
  428. @ExecuteCode;
  429. @SetColors(8,15);
  430. @DownArea(165,264,175,274,7);
  431. @SetPosition(180,312);
  432. @Call:Color3;
  433. @FastWrite('Warto₧ì:');
  434. @Return;
  435. ;--------------------
  436. [procedure ActiveANALOG]
  437. ;sprawdza czy wÆåczona jest praca programowa - PRG (inaczej powrót)
  438. @A:=26;
  439. @C:=2;
  440. @ExecuteCode;
  441. @If (%B=1) then Call:OFF4PRG;
  442. @A:=26;
  443. @C:=2;
  444. @ExecuteCode;
  445. @If (%B=1) then Return;
  446. ;
  447. @SetColors(0,0);
  448. @Bar(168,267,172,271);
  449. @SetColors(8,15);
  450. @SetButton(270,305,300,325,7,740,'<','Dekrementacja');
  451. @SetButton(350,305,380,325,7,742,'>','Inkrementacja');
  452. @SetInvisibleButton(305,305,345,325,744);
  453. @Return;
  454. ;-------------------------------------------------------
  455. [procedure ActiveCYFROWE]
  456. ;bity wyj₧ciowe dla danej cyfrowej 1
  457. @SetColors(0,0);
  458. @D:=1;
  459. @Repeat:8;
  460. @SetInvisibleButton(280+(%D-1)*10,214,280+%D*10,224,711+%D);
  461. @Rectangle(280+(%D-1)*10,214,280+%D*10,224);
  462. @D:=%D+1;
  463. @Next;
  464. ;bity wyj₧ciowe dla danej cyfrowej 2
  465. @D:=1;
  466. @Repeat:8;
  467. @SetInvisibleButton(280+(%D-1)*10,234,280+%D*10,244,719+%D);
  468. @Rectangle(280+(%D-1)*10,234,280+%D*10,244);
  469. @D:=%D+1;
  470. @Next;
  471. @Return;
  472. ;-------------------------------------------------------
  473. [procedure DrawCYFROWE]
  474. ;bity wyj₧ciowe dla danej cyfrowej 1
  475. ;odczyt warto₧ci
  476. @A:=18;
  477. @C:=2;
  478. @ExecuteCode;
  479. @J:=1;
  480. @D:=8;
  481. @E:=1;
  482. @Repeat:8;
  483. @SetColors(0,0);
  484. @Rectangle(280+(%D-1)*10,214,280+%D*10,224);
  485. @If (%B&%E<>0) then Call:Color10;
  486. @If (%B&%E=0) then Call:Color7;
  487. @Bar(282+(%D-1)*10,216+(%J-1)*20,278+%D*10,222+(%J-1)*20);
  488. @E:=%E*2;
  489. @D:=%D-1;
  490. @Next;
  491.  
  492. ;wy₧wietla warto₧ì dla bitów 1 bajtu
  493. @SetColors(8,15);
  494. @UpArea(377,213,410,226,7);
  495. @A:=18;
  496. @C:=2;
  497. @ExecuteCode;
  498. @SetColors(14,0);
  499. @WriteValue(377,213,410,226,0,0,%B);
  500.  
  501.  
  502. ;bity wyj₧ciowe dla danej cyfrowej 2
  503. ;odczyt warto₧ci
  504. @A:=19;
  505. @C:=2;
  506. @ExecuteCode;
  507. @J:=2;
  508. @D:=8;
  509. @E:=1;
  510. @Repeat:8;
  511. @SetColors(0,0);
  512. @Rectangle(280+(%D-1)*10,234,280+%D*10,244);
  513. @If (%B&%E<>0) then Call:Color10;
  514. @If (%B&%E=0) then Call:Color7;
  515. @Bar(282+(%D-1)*10,216+(%J-1)*20,278+%D*10,222+(%J-1)*20);
  516. @E:=%E*2;
  517. @D:=%D-1;
  518. @Next;
  519.  
  520. ;wy₧wietla warto₧ì dla bitów 2 bajtu
  521. @SetColors(8,15);
  522. @UpArea(377,233,410,246,7);
  523. @A:=19;
  524. @C:=2;
  525. @ExecuteCode;
  526. @SetColors(14,0);
  527. @WriteValue(377,233,410,246,0,0,%B);
  528. @Return;
  529. ;----------------------
  530. [procedure SetTTL]
  531. @SetColors(8,15);
  532. @SetButton(300,160,390,180,7,730,'Wybór f','Ustawienie czæstotliwo₧ci');
  533. @Return;
  534. ;-------------------------------------------------------
  535. [procedure SetWin1]
  536. @DisableUserButtons;
  537. ;               ANALOGOWE
  538. @SetInvisibleButton(165,264,175,274,745);
  539. @SetColors(8,15);
  540. @DownArea(165,264,175,274,7);
  541. @A:=32;
  542. @C:=2;
  543. @ExecuteCode;
  544. @SetPosition(180,312);
  545. @If (%B&4=0) then Call:Color3;
  546. @If (%B&4<>0) then Call:Color0;
  547. @FastWrite('Warto₧ì:');
  548. @If (%B&4<>0) then Call:ActiveANALOG;
  549. ;wy₧wietlenie warto₧ci analogowej
  550. @Gosub:739;
  551. ;               IMPULSY TTL
  552. @SetColors(14,0);
  553. @FillEllipse(175,152,5,5);
  554. @SetInvisibleButton(170,147,180,157,748);
  555. @A:=27;
  556. @C:=2;
  557. @ExecuteCode;
  558. @If (%B=0) then Call:Color14;
  559. @If (%B=1) then Call:SetTTL;
  560. @If (%B=1) then Call:Color0;
  561. @FillEllipse(175,152,3,3);
  562. @If (%B=0) then Call:Color3;
  563. @SetPosition(195,149);
  564. @FastWrite('Impulsy TTL');
  565. @SetPosition(195,163);
  566. @Picture('TTL2.RBM');
  567. ;               WARTOÿò CYFROWA
  568. @SetColors(8,15);
  569. @UpArea(377,213,410,226,7);
  570. @UpArea(377,233,410,246,7);
  571. @SetColors(14,0);
  572. @FillEllipse(175,200,5,5);
  573. @SetInvisibleButton(170,195,180,205,749);
  574. @Call:DrawCYFROWE;
  575. @A:=27;
  576. @C:=2;
  577. @ExecuteCode;
  578. @If (%B=0) then Call:Color0;
  579. @If (%B=0) then Call:ActiveCYFROWE;
  580. @If (%B=1) then Call:Color14;
  581. @FillEllipse(175,200,3,3);
  582. @If (%B=1) then Call:Color3;
  583. @SetPosition(195,197);
  584. @FastWrite('Warto₧ì cyfrowa');
  585. ;ustawia paski
  586. @SetPosition(180,215);
  587. @FastWrite(' D7-D0 (J2)');
  588. @SetPosition(180,235);
  589. @FastWrite('D15-D8 (J2)');
  590. @SetPosition(365,215);
  591. @FastWrite('=');
  592. @SetPosition(365,235);
  593. @FastWrite('=');
  594. ;               ustawienie pozostaÆych przycisków i pól
  595. @SetColors(8,15);
  596. @SetButton(180,350,400,380,7,701,'Ustawienie danych','Zatwierdzenie ustawieñ');
  597. @Return;
  598. ;------------------------------------------------------
  599. [procedure DrawWIN1]
  600. ;aktywacja standardowych klawiszy dla okna wej₧cia-wyj₧cia
  601. @DisableUserButtons;
  602. @SetColors(0,15);
  603. @GetImage(150,90,440,410);
  604. @DialogBox(150,90,430,390,3,'KONFIGURACJA WYJÿò');
  605. @DownArea(160,142,420,185,7);
  606. @DownArea(160,190,420,252,7);
  607. @DownArea(160,288,420,340,7);
  608. ;               CYFROWE
  609. @SetPosition(190,123);
  610. @FastWrite('Wyj₧cie cyfrowe');
  611. ;               ANALOGOWE
  612. @SetPosition(190,266);
  613. @FastWrite('Wyj₧cie analogowe');
  614. @DownArea(165,264,175,274,7);
  615. @SetInvisibleButton(165,264,175,274,745);
  616. ;               IMPULSY TTL
  617. @SetInvisibleButton(170,147,180,157,748);
  618. ;               WARTOSC CYFR.
  619. @SetInvisibleButton(170,195,180,205,749);
  620. ;               pozostaÆe pola i przyciski
  621. @SetColors(8,15);
  622. @DrawButton(300,160,390,180,7,730,'Wybór f','Ustawienie czæstotliwo₧ci');
  623. @DrawButton(270,305,300,325,7,740,'<','Dekrementacja');
  624. @DrawButton(350,305,380,325,7,742,'>','Inkrementacja');
  625. @DrawButton(180,350,400,380,7,701,'Ustawienie danych','Zatwierdzenie ustawieñ');
  626. @Call:SetWIN1;
  627. @Return;
  628. ;---------------------------------------------------------------------
  629.  
  630.  
  631.  
  632.  
  633. ;##########################################################
  634. ;########       OKNO WYBORU WYJÿò KARTY    ################
  635. ;##########################################################
  636. [700]
  637. ;
  638. ;RYSOWANIE OKNA WYBORU WYJÿò KARTY - wywoÆywaì jako GOSUB
  639. ;w %G przekazujemy numer ADC , ktory bedzie obslugiwany
  640. ;
  641. @ResetFields;
  642. @DisableUserButtons;
  643. @SetHelpContext(3);
  644. ;rysujemy okno
  645. @Call:DrawWIN1;
  646. @Goto:702;
  647. ;--------------------------------------------
  648. [701]
  649. ;ZAMKNIÉCIE OKNA
  650. @PutImage;
  651. @Return;
  652. ;--------------------------------------------
  653. [702]
  654. ;OBS£UGA POLECEÑ
  655. @CheckEvents;
  656. ;--------------------------------------------
  657. [706]
  658. ;obliczenie warto₧ci bitu i jego obsÆuga
  659. ;w %L przekazujemy numer bitu od prawej
  660. ;w %J przekazujemy numer bajtu (1 lub 2)
  661. @Call:CheckMouse;
  662. ;odczyt bajtu
  663. @If (%J=1) then Gosub:709;
  664. @If (%J=2) then Gosub:710;
  665. ;obliczenie warto₧ci bitu
  666. @H:=2^(%L-1);
  667. ;obsÆuga bitu - zmiana warto₧ci
  668. @E:=%B&%H;
  669. @If (%E<>0) then BEGIN
  670. @B:=%B-%H;
  671. @END;
  672. @If (%E=0) then BEGIN
  673. @B:=%B+%H;
  674. @END;
  675. ;zapis zmienionej warto₧ci bajtu
  676. @If (%J=1) then Gosub:707;
  677. @If (%J=2) then Gosub:708;
  678. @Call:DrawCYFROWE;
  679. @Return;
  680. ;------------------------------------
  681. ;zapis warto₧ci bajtów
  682. [707]
  683. ;1 bajt
  684. @A:=18;
  685. @C:=1;
  686. @ExecuteCode;
  687. @Return;
  688. ;----------
  689. [708]
  690. ;2 bajt
  691. @A:=19;
  692. @C:=1;
  693. @ExecuteCode;
  694. @Return;
  695. ;----------------------------------------
  696. ;odczyt warto₧ci bajtów
  697. [709]
  698. ;1 bajt
  699. @A:=18;
  700. @C:=2;
  701. @ExecuteCode;
  702. @Return;
  703. ;-----------
  704. [710]
  705. ;2 bajt
  706. @A:=19;
  707. @C:=2;
  708. @ExecuteCode;
  709. @Return;
  710. ;-------------------------------------------
  711. ;obsÆuga poszczególnych pól dla bitów
  712. ;-------------------------------------------
  713. ;1 bajt
  714. [712]
  715. @J:=1;
  716. @L:=8;
  717. @Gosub:706;
  718. @Goto:702;
  719. [713]
  720. @J:=1;
  721. @L:=7;
  722. @Gosub:706;
  723. @Goto:702;
  724. [714]
  725. @J:=1;
  726. @L:=6;
  727. @Gosub:706;
  728. @Goto:702;
  729. [715]
  730. @J:=1;
  731. @L:=5;
  732. @Gosub:706;
  733. @Goto:702;
  734. [716]
  735. @J:=1;
  736. @L:=4;
  737. @Gosub:706;
  738. @Goto:702;
  739. [717]
  740. @J:=1;
  741. @L:=3;
  742. @Gosub:706;
  743. @Goto:702;
  744. [718]
  745. @J:=1;
  746. @L:=2;
  747. @Gosub:706;
  748. @Goto:702;
  749. [719]
  750. @J:=1;
  751. @L:=1;
  752. @Gosub:706;
  753. @Goto:702;
  754. ;-----------------------
  755. ;2 bajt
  756. [720]
  757. @J:=2;
  758. @L:=8;
  759. @Gosub:706;
  760. @Goto:702;
  761. [721]
  762. @J:=2;
  763. @L:=7;
  764. @Gosub:706;
  765. @Goto:702;
  766. [722]
  767. @J:=2;
  768. @L:=6;
  769. @Gosub:706;
  770. @Goto:702;
  771. [723]
  772. @J:=2;
  773. @L:=5;
  774. @Gosub:706;
  775. @Goto:702;
  776. [724]
  777. @J:=2;
  778. @L:=4;
  779. @Gosub:706;
  780. @Goto:702;
  781. [725]
  782. @J:=2;
  783. @L:=3;
  784. @Gosub:706;
  785. @Goto:702;
  786. [726]
  787. @J:=2;
  788. @L:=2;
  789. @Gosub:706;
  790. @Goto:702;
  791. [727]
  792. @J:=2;
  793. @L:=1;
  794. @Gosub:706;
  795. @Goto:702;
  796. ;-----------------------------------------------------------------
  797. [730]
  798. @A:=26;
  799. @C:=2;
  800. @ExecuteCode;
  801. ;               sprawdza czy nie jest wÆåczona opcja DMA
  802. @If (%B=1) then Gosub:731;
  803. @If (%B=1) then Goto:702;
  804. @Gosub:800;
  805. @Call:SetWIN1;
  806. @Goto:702;
  807. ;---------
  808. [731]
  809. @SetHelpContext(20);
  810. @ShowHelp('BÆåd');
  811. @SetHelpContext(3);
  812. @Return;
  813. ;--------------------------------------------
  814. ;obsÆuga - warto₧ì analogowa
  815. [739]
  816. ;obszar z liczba - wy₧wietlenie warto₧ci
  817. @A:=20;
  818. @C:=2;
  819. @ExecuteCode;
  820. @SetColors(8,15);
  821. @DownArea(305,305,345,325,7);
  822. @SetColors(14,0);
  823. @WriteValue(305,305,345,325,0,0,%B);
  824. @Return;
  825. ;---------
  826. [740]
  827. ;dekrementacja licznika
  828. @A:=20;
  829. @C:=2;
  830. @ExecuteCode;
  831. @B:=%B-1;
  832. @If (%B<0) then BEGIN
  833. @B:=0;
  834. @END;
  835. @A:=20;
  836. @C:=1;
  837. @ExecuteCode;
  838. ;wyswietla wartosc
  839. @Gosub:739;
  840. @Goto:702;
  841. ;---------
  842. [742]
  843. ;inkrementacja licznika
  844. @A:=20;
  845. @C:=2;
  846. @ExecuteCode;
  847. @B:=%B+1;
  848. @If (%B>255) then BEGIN
  849. @B:=255;
  850. @END;
  851. @A:=20;
  852. @C:=1;
  853. @ExecuteCode;
  854. ;wy₧wietla warto₧ì
  855. @Gosub:739;
  856. @Goto:702;
  857. ;-------------
  858. [744]
  859. ;pobranie warto₧ci
  860. ;czeka na puszczenie klawisza
  861. @Call:CheckMouse;
  862. @A:=20;
  863. @C:=2;
  864. @ExecuteCode;
  865. @GetValue(%B,'Warto₧ì napiæcia');
  866. @If (%B<0) then BEGIN
  867. @B:=0;
  868. @END;
  869. @If (%B>255) then BEGIN
  870. @B:=255;
  871. @END;
  872. @A:=20;
  873. @C:=1;
  874. @ExecuteCode;
  875. ;wy₧wietla warto₧ì
  876. @Gosub:739;
  877. @Call:CheckMouse;
  878. @Goto:702;
  879. ;--------------------------------------------
  880. [745]
  881. ;obsluga pola ANALOGOWE
  882. ;czeka na puszczenie klawisza
  883. @Call:CheckMouse;
  884. @A:=26;
  885. @C:=2;
  886. @ExecuteCode;
  887. ;wychodzi bo opcja DMA
  888. @If (%B=1) then BEGIN
  889. @MessageBox('Warto₧ì analogowa','DMA -> opcja nieaktywna.');
  890. @Goto:702;
  891. @END;
  892. @A:=32;
  893. @C:=2;
  894. @ExecuteCode;
  895. @If (%B&4<>0) then Goto:747;
  896. @If (%B&4=0) then Goto:746;
  897. ;---------------------
  898. [746]
  899. ;wÆåczenie opcji
  900. @A:=32;
  901. @C:=1;
  902. @B:=%B+4;
  903. @ExecuteCode;
  904. ;ANALOGOWE
  905. @SetInvisibleButton(165,264,175,274,745);
  906. @SetColors(8,15);
  907. @DownArea(165,264,175,274,7);
  908. @SetPosition(180,312);
  909. @SetColors(0,0);
  910. @FastWrite('Warto₧ì:');
  911. @Call:ActiveANALOG;
  912. ; wy₧wietla warto₧ì
  913. @Gosub:739;
  914. @Goto:702;
  915. ;--------------
  916. [747]
  917. ;wyÆåczenie opcji
  918. @A:=32;
  919. @C:=1;
  920. @B:=%B-4;
  921. @ExecuteCode;
  922. @Call:SetWIN1;
  923. @Goto:702;
  924. ;--------------------------------------------
  925. [748]
  926. ;impulsy TTL
  927. ;czeka na puszczenie klawisza
  928. @Call:CheckMouse;
  929. @A:=27;
  930. @C:=2;
  931. @ExecuteCode;
  932. @If (%B=1) then Goto:702;
  933. ;zapis jedynki - wÆåczenie TTL
  934. @A:=27;
  935. @C:=1;
  936. @B:=1;
  937. @ExecuteCode;
  938. @Call:SetWIN1;
  939. @Goto:702;
  940. ;--------------------------------------------
  941. [749]
  942. ;impulsy NUM
  943. ;czeka na puszczenie klawisza
  944. @Call:CheckMouse;
  945. @A:=27;
  946. @C:=2;
  947. @ExecuteCode;
  948. @If (%B=0) then Goto:702;
  949. ;zapis zera - wlaczenie NUM
  950. @A:=27;
  951. @C:=1;
  952. @B:=0;
  953. @ExecuteCode;
  954. @Call:SetWIN1;
  955. @Goto:702;
  956. ;--------------------------------------------
  957.  
  958.  
  959.  
  960.  
  961. ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
  962. [procedure ZapiszWEJ]
  963. @Call:LoadG;
  964. @E:=0;
  965. @A:=%G;
  966. @C:=2;
  967. @ExecuteCode;
  968. @E:=%B&128;
  969. ;odczyt numeru toru
  970. @A:=100;
  971. @C:=2;
  972. @ExecuteCode;
  973. @E:=%E+((%B&15)*8);
  974. ;odczyt wzmocnienia toru
  975. @A:=102;
  976. @C:=2;
  977. @ExecuteCode;
  978. @E:=%E+(%B&7);
  979. ;
  980. ;zapis danej opisujåcej tor w odp. miejsce tablicy
  981. @Call:LoadG;
  982. @A:=%G;
  983. @B:=%E;
  984. @C:=1;
  985. @ExecuteCode;
  986. @Return;
  987. ;----------------------------------------------------------
  988. [procedure Dodaj4]
  989. @E:=%E+8;
  990. @Return;
  991. [procedure Dodaj3]
  992. @E:=%E+4;
  993. @Return;
  994. [procedure Dodaj2]
  995. @E:=%E+2;
  996. @Return;
  997. [procedure Dodaj1]
  998. @E:=%E+1;
  999. @Return;
  1000. ;-----------------------------------------
  1001. [procedure wzm0]
  1002. @E:=1;
  1003. @F:=0;
  1004. @Return;
  1005. [procedure wzm1]
  1006. @E:=2;
  1007. @F:=1;
  1008. @Return;
  1009. [procedure wzm2]
  1010. @E:=5;
  1011. @F:=2;
  1012. @Return;
  1013. [procedure wzm3]
  1014. @E:=10;
  1015. @F:=3;
  1016. @Return;
  1017. [procedure wzm4]
  1018. @E:=20;
  1019. @F:=4;
  1020. @Return;
  1021. [procedure wzm5]
  1022. @E:=100;
  1023. @F:=5;
  1024. @Return;
  1025. [procedure wzm6]
  1026. @E:=500;
  1027. @F:=6;
  1028. @Return;
  1029. [procedure wzm7]
  1030. @E:=1000;
  1031. @F:=7;
  1032. @Return;
  1033. ;-------------------------------------------------------
  1034. [procedure ShowNr]
  1035. ;obszar z liczbå  - wy₧wietlenie warto₧ci NR TORU
  1036. @A:=100;
  1037. @C:=2;
  1038. @ExecuteCode;
  1039. @DownArea(320,155,370,175,7);
  1040. @SetColors(14,0);
  1041. @WriteValue(320,155,370,175,0,0,%B);
  1042. @Return;
  1043. ;-----------------
  1044. [procedure ShowWzm]
  1045. ;obszar z liczbå  - wy₧wietlenie warto₧ci wzmocnienia
  1046. @A:=102;
  1047. @C:=2;
  1048. @ExecuteCode;
  1049. @E:=0;
  1050. @If (%B&7=0) then Call:wzm0;
  1051. @If (%B&7=1) then Call:wzm1;
  1052. @If (%B&7=2) then Call:wzm2;
  1053. @If (%B&7=3) then Call:wzm3;
  1054. @If (%B&7=4) then Call:wzm4;
  1055. @If (%B&7=5) then Call:wzm5;
  1056. @If (%B&7=6) then Call:wzm6;
  1057. @If (%B&7=7) then Call:wzm7;
  1058. ;w zmiennej %E otrzymali₧my warto₧ì wzmocnienia {1,2,5,10,20,100,500,1000}
  1059. @A:=101;
  1060. @B:=%E;
  1061. @C:=1;
  1062. @ExecuteCode;
  1063. ;w zmiennej %F otrzymali₧my nr warto₧ci wzmocnienia {0..7}
  1064. @A:=102;
  1065. @B:=%F;
  1066. @C:=1;
  1067. @ExecuteCode;
  1068. ;odczyt i wy₧wietlenie
  1069. @A:=101;
  1070. @C:=2;
  1071. @ExecuteCode;
  1072. @DownArea(320,195,370,215,7);
  1073. @SetColors(14,0);
  1074. @WriteValue(320,195,370,215,0,0,%B);
  1075. @Return;
  1076. ;--------------------
  1077. [procedure CzytajWEJSCIE]
  1078. ; wczytuje w odpowiednie miejsca tablicy informacje o wej₧ciu analogowym
  1079. @Call:LoadG;
  1080. @A:=%G;
  1081. @C:=2;
  1082. @ExecuteCode;
  1083. @E:=0;
  1084. @If (%B&64<>0) then Call:Dodaj4;
  1085. @If (%B&32<>0) then Call:Dodaj3;
  1086. @If (%B&16<>0) then Call:Dodaj2;
  1087. @If (%B&8<>0) then Call:Dodaj1;
  1088. ; w zmiennej %E otrzymali₧my nr toru
  1089. @A:=100;
  1090. @B:=%E;
  1091. @C:=1;
  1092. @ExecuteCode;
  1093. ;
  1094. ; zapisujemy informacje o wzmocnieniu
  1095. @A:=%G;
  1096. @C:=2;
  1097. @ExecuteCode;
  1098. @A:=102;
  1099. @B:=%B&7;
  1100. @C:=1;
  1101. @ExecuteCode;
  1102. @Return;
  1103. ;-------------------------------------------------------------
  1104. [procedure SetActive]
  1105. ; przyciski okna ustawia jako aktywne
  1106. @SetColors(3,0);
  1107. @ReverseArea(161,143,419,229);
  1108. @SetColors(0,15);
  1109. @Bar(168,125,172,129);
  1110. ;uaktywnia przyciski
  1111. @DisableUserButtons;
  1112. @SetInvisibleButton(165,122,175,132,760);
  1113. @SetColors(8,15);
  1114. @SetButton(180,240,400,270,7,753,'Ustawienie wej₧cia','Zatwierdzenie ustawieñ');
  1115. @SetButton(285,155,315,175,7,765,'<','Dekrementacja');
  1116. @SetButton(375,155,405,175,7,767,'>','Inkrementacja');
  1117. @SetInvisibleButton(320,155,370,175,769);
  1118. @SetButton(285,195,315,215,7,787,'<','Dekrementacja');
  1119. @SetButton(375,195,405,215,7,789,'>','Inkrementacja');
  1120. @Return;
  1121. ;-----------------------
  1122. [procedure SetNoActive]
  1123. ; przyciski okna ustawia jako nieaktywne
  1124. @SetColors(0,3);
  1125. @ReverseArea(161,143,419,229);
  1126. @SetColors(7,7);
  1127. @Bar(168,125,172,129);
  1128. ;dezaktywacja przycisków
  1129. @DisableUserButtons;
  1130. @SetInvisibleButton(165,122,175,132,760);
  1131. @SetColors(8,15);
  1132. @SetButton(180,240,400,270,7,753,'Ustawienie wej₧cia','Zatwierdzenie ustawieñ');
  1133. @Return;
  1134. ;-------------------------------------------------------------
  1135.  
  1136.  
  1137. ;################################################################
  1138. ;########     OKNO WYBORU WEJÿò ANALOGOWYCH KARTY     ###########
  1139. ;################################################################
  1140. [750]
  1141. ;
  1142. ;RYSOWANIE OKNA WYBORU USTAWIEÑ WEJÿò KARTY - wywoÆywaì jako GOSUB
  1143. ;w %G przekazujemy numer obsÆugiwanej danej
  1144. ;
  1145. @SetHelpContext(4);
  1146. @ResetFields;
  1147. @DisableUserButtons;
  1148. @GetImage(150,90,440,300);
  1149. @DialogBox(150,90,430,280,3,'PARAMETRY WEJÿCIA');
  1150. ;obszar na   nr toru  i  wzmocnienie
  1151. @DownArea(160,142,420,230,7);
  1152. ;AKTYWNY
  1153. @SetPosition(190,123);
  1154. @FastWrite('Uaktywnienie toru');
  1155. @SetInvisibleButton(165,122,175,132,760);
  1156. @DownArea(165,122,175,132,7);
  1157. @SetColors(0,15);
  1158. @SetPosition(170,162);
  1159. @FastWrite('Nr DCO:');
  1160. @SetColors(8,15);
  1161. @DrawButton(285,155,315,175,7,765,'<','Dekrementacja');
  1162. @DrawButton(375,155,405,175,7,767,'>','Inkrementacja');
  1163. @SetInvisibleButton(320,155,370,175,769);
  1164. @DownArea(320,155,370,175,7);
  1165. @SetColors(0,15);
  1166. @SetPosition(170,202);
  1167. @FastWrite('Wzmocnienie x');
  1168. @SetColors(8,15);
  1169. @DrawButton(285,195,315,215,7,787,'<','Dekrementacja');
  1170. @DrawButton(375,195,405,215,7,789,'>','Inkrementacja');
  1171. @DownArea(320,195,370,215,7);
  1172. @DrawButton(180,240,400,270,7,753,'Ustawienie wej₧cia','Zatwierdzenie ustawieñ');
  1173. @Call:LoadG;
  1174. @A:=%G;
  1175. @C:=2;
  1176. @ExecuteCode;
  1177. @If (%B&128<>0) then Call:Color0;
  1178. @If (%B&128=0) then Call:Color7;
  1179. @Bar(168,125,172,129);
  1180. @If (%B&128<>0) then Call:SetActive;
  1181. @If (%B&128=0) then Call:SetNoActive;
  1182. @Call:CzytajWEJSCIE;
  1183. @Call:ShowNr;
  1184. @Call:ShowWzm;
  1185. @Goto:752;
  1186. ;--------------------------------------------
  1187. [752]
  1188. ;OBS£UGA POLECEÑ
  1189. @CheckEvents;
  1190. ;--------------------------------------------
  1191. [753]
  1192. ;ZAMKNIÉCIE OKNA
  1193. ;zatwierdzenie i zapisanie danych do tablicy w odpowiednie miejsca
  1194. @Call:ZapiszWEJ;
  1195. @PutImage;
  1196. @Return;
  1197. ;-----------------------------------------------------------------
  1198. [760]
  1199. ;wÆåczenie lub wyÆåczenie opcji AKTYWNY
  1200. @Call:CheckMouse;
  1201. ;sprawdza czy aktywny czy nie
  1202. @Call:LoadG;
  1203. @A:=%G;
  1204. @C:=2;
  1205. @ExecuteCode;
  1206. @If (%B&128<>0) then Goto:762;
  1207. @If (%B&128=0) then Goto:761;
  1208. ;--------------------------------------
  1209. [761]
  1210. ;wÆåczenie opcji
  1211. @Call:LoadG;
  1212. ;odczyt
  1213. @A:=%G;
  1214. @C:=2;
  1215. @ExecuteCode;
  1216. ;aktywuje
  1217. @A:=%G;
  1218. @B:=%B+128;
  1219. @C:=1;
  1220. @ExecuteCode;
  1221. @Call:SetActive;
  1222. @Goto:752;
  1223. ;------------------------------
  1224. [762]
  1225. ;wyÆåczenie opcji
  1226. @Call:LoadG;
  1227. ;odczyt
  1228. @A:=%G;
  1229. @C:=2;
  1230. @ExecuteCode;
  1231. ;dezaktywuje
  1232. @A:=%G;
  1233. @B:=%B-128;
  1234. @C:=1;
  1235. @ExecuteCode;
  1236. @Call:SetNoActive;
  1237. @Goto:752;
  1238. ;------------------------------------------------------
  1239. [765]
  1240. ;dekrementacja licznika
  1241. @A:=100;
  1242. @C:=2;
  1243. @ExecuteCode;
  1244. @B:=%B-1;
  1245. @If (%B<0) then BEGIN
  1246. @B:=0;
  1247. @END;
  1248. @A:=100;
  1249. @C:=1;
  1250. @ExecuteCode;
  1251. @Call:ShowNr;
  1252. @Goto:752;
  1253. ;------------------
  1254. [767]
  1255. ;inkrementacja licznika
  1256. @A:=100;
  1257. @C:=2;
  1258. @ExecuteCode;
  1259. @B:=%B+1;
  1260. @If (%B>15) then BEGIN
  1261. @B:=15;
  1262. @END;
  1263. @A:=100;
  1264. @C:=1;
  1265. @ExecuteCode;
  1266. @Call:ShowNr;
  1267. @Goto:752;
  1268. ;----------------------
  1269. [769]
  1270. ;pobranie warto₧ci
  1271. @Call:CheckMouse;
  1272. @A:=100;
  1273. @C:=2;
  1274. @ExecuteCode;
  1275. @GetValue(%B,'Nr. TORU dla we ADC');
  1276. @If (%B<0) then BEGIN
  1277. @B:=0;
  1278. @END;
  1279. @If (%B>15) then BEGIN
  1280. @B:=15;
  1281. @END;
  1282. @A:=100;
  1283. @C:=1;
  1284. @ExecuteCode;
  1285. @Call:ShowNr;
  1286. @Call:CheckMouse;
  1287. @Goto:752;
  1288. ;--------------------------------------------
  1289. [787]
  1290. ;dekrementacja licznika
  1291. @A:=102;
  1292. @C:=2;
  1293. @ExecuteCode;
  1294. @B:=%B-1;
  1295. @If (%B<0) then BEGIN
  1296. @B:=0;
  1297. @END;
  1298. @A:=102;
  1299. @C:=1;
  1300. @ExecuteCode;
  1301. @Call:ShowWzm;
  1302. @Goto:752;
  1303. ;---------------------
  1304. [789]
  1305. ;inkrementacja licznika
  1306. @A:=102;
  1307. @C:=2;
  1308. @ExecuteCode;
  1309. @B:=%B+1;
  1310. @If (%B>7) then BEGIN
  1311. @B:=7;
  1312. @END;
  1313. @A:=102;
  1314. @C:=1;
  1315. @ExecuteCode;
  1316. @Call:ShowWzm;
  1317. @Goto:752;
  1318. ;##########################################################
  1319.  
  1320.  
  1321.  
  1322.  
  1323. [procedure czas_L]
  1324. ;konwersja danych w tablicy na liczbæ w %E
  1325. ;
  1326. ;odczyt danych czasu
  1327. @E:=0;
  1328. ;mÆodszy bajt
  1329. @A:=21;
  1330. @C:=2;
  1331. @ExecuteCode;
  1332. @E:=%B;
  1333. ;starszy bajt
  1334. @A:=22;
  1335. @C:=2;
  1336. @ExecuteCode;
  1337. @E:=%E+%B*256;
  1338. @Return;
  1339. ;------------
  1340. [procedure mnoznik_L]
  1341. ;konwersja danych mnoºnika na liczbæ w %E
  1342. @E:=0;
  1343. ;mÆodszy bajt
  1344. @A:=23;
  1345. @C:=2;
  1346. @ExecuteCode;
  1347. @E:=%B;
  1348. ;starszy bajt
  1349. @A:=24;
  1350. @C:=2;
  1351. @ExecuteCode;
  1352. @E:=%E+%B*256;
  1353. ;najstarszy bajt
  1354. @A:=25;
  1355. @C:=2;
  1356. @ExecuteCode;
  1357. @E:=%E+%B*65536;
  1358. @Return;
  1359. ;-----------------------------------
  1360. [procedure L_czas]
  1361. ;konwersja liczby (z %E) na bajty czasu
  1362. ;
  1363. @B:=%E&$00FF;
  1364. @A:=21;
  1365. @C:=1;
  1366. @ExecuteCode;
  1367.  
  1368. @B:=(%E&$FF00)/256;
  1369. @A:=22;
  1370. @C:=1;
  1371. @ExecuteCode;
  1372. @Return;
  1373. ;---------------
  1374. [procedure L_mnoznik]
  1375. ;konwersja liczby (z %E) na bajty mnoznika
  1376. ;
  1377. @B:=%E&$0000FF;
  1378. @A:=23;
  1379. @C:=1;
  1380. @ExecuteCode;
  1381. ;
  1382. @B:=(%E&$00FF00)/256;
  1383. @A:=24;
  1384. @C:=1;
  1385. @ExecuteCode;
  1386. ;
  1387. @B:=(%E&$FF0000)/65536;
  1388. @A:=25;
  1389. @C:=1;
  1390. @ExecuteCode;
  1391. @Return;
  1392. ;-----------------------------------
  1393. [procedure ShowCZ]
  1394. ;wy₧wietla warto₧ì CZAS
  1395. @Call:czas_L;
  1396. @DownArea(310,175,390,195,7);
  1397. @SetColors(14,14);
  1398. @WriteValue(310,175,390,195,0,0,%E);
  1399. @Return;
  1400. ;-----------------------------------
  1401. [procedure ShowMN]
  1402. ;wy₧wietla warto₧ì MNOíNIK
  1403. @Call:mnoznik_L;
  1404. @DownArea(310,215,390,235,7);
  1405. @SetColors(14,14);
  1406. @WriteValue(310,215,390,235,0,0,%E);
  1407. @Return;
  1408. ;-----------------------------------
  1409.  
  1410.  
  1411.  
  1412.  
  1413.  
  1414. ;###########################################################
  1415. ;########     USTAWIANIE PARAMETRúW LICZNIKA      ##########
  1416. ;###########################################################
  1417. [800]
  1418. ;
  1419. ;RYSOWANIE OKNA USTAWIEÑ LICZNIKA KARTY - wywoÆywaì jako GOSUB
  1420. ;
  1421. @SetHelpContext(5);
  1422. @ResetFields;
  1423. @DisableUserButtons;
  1424. @GetPart(170,130,460,320);
  1425. @DialogBox(170,130,450,300,3,'LICZNIK KARTY');
  1426. ;obszar na skalæ i mnoºnik
  1427. @DownArea(180,162,440,250,7);
  1428. @SetColors(0,15);
  1429. @SetPosition(190,182);
  1430. @FastWrite('Czas (µs):');
  1431. @SetColors(8,15);
  1432. @DrawButton(275,175,305,195,7,805,'<','Dekrementacja');
  1433. @DrawButton(395,175,425,195,7,806,'>','Inkrementacja');
  1434. @SetInvisibleButton(310,175,390,195,810);
  1435. @DownArea(310,175,390,195,7);
  1436. @SetColors(0,15);
  1437. @SetPosition(190,222);
  1438. @FastWrite('Mnoºnik x');
  1439. @SetColors(8,15);
  1440. @DrawButton(275,215,305,235,7,820,'<','Dekrementacja');
  1441. @DrawButton(395,215,425,235,7,821,'>','Inkrementacja');
  1442. @SetInvisibleButton(310,215,390,235,830);
  1443. @DownArea(310,215,390,235,7);
  1444. @DrawButton(200,260,420,290,7,803,'Ustawienie licznika','Zatwierdzenie ustawieñ');
  1445. @Call:ShowCZ;
  1446. @Call:ShowMN;
  1447. @Goto:802;
  1448. ;--------------------------------------------
  1449. [802]
  1450. ;OBS£UGA POLECEÑ
  1451. @CheckEvents;
  1452. ;--------------------------------------------
  1453. [803]
  1454. ;ZAMKNIÉCIE OKNA
  1455. @PutPart(170,130);
  1456. @Return;
  1457. ;-----------------------------------------------
  1458. [805]
  1459. ;dekrementacja CZAS
  1460. @Call:czas_L;
  1461. @E:=%E-1;
  1462. @If (%E<1) then BEGIN
  1463. @E:=1;
  1464. @END;
  1465. @Call:L_czas;
  1466. @Call:ShowCZ;
  1467. @Goto:802;
  1468. ;---------------------
  1469. [806]
  1470. ;inkrementacja CZAS
  1471. @Call:czas_L;
  1472. @E:=%E+1;
  1473. @If (%E>64000) then BEGIN
  1474. @E:=64000;
  1475. @END;
  1476. @Call:L_czas;
  1477. @Call:ShowCZ;
  1478. @Goto:802;
  1479. ;--------------------
  1480. [810]
  1481. ;odczyt warto₧ci CZAS - okno
  1482. @Call:CheckMouse;
  1483. @Call:Czas_L;
  1484. @GetValue(%E,'Warto₧ì skali czasowej:');
  1485. @If (%E<1) then BEGIN
  1486. @E:=1;
  1487. @END;
  1488. @If (%E>64000) then BEGIN
  1489. @E:=64000;
  1490. @END;
  1491. @Call:L_czas;
  1492. @Call:ShowCZ;
  1493. @Call:CheckMouse;
  1494. @Goto:802;
  1495. ;-----------------------------------------------
  1496. [820]
  1497. ;dekrementacja MNOíNIK
  1498. @Call:mnoznik_L;
  1499. @E:=%E-1;
  1500. @If (%E<0) then BEGIN
  1501. @E:=0;
  1502. @END;
  1503. @Call:L_mnoznik;
  1504. @Call:ShowMN;
  1505. @Goto:802;
  1506. ;---------------------
  1507. [821]
  1508. ;inkrementacja MNOíNIK
  1509. @Call:mnoznik_L;
  1510. @E:=%E+1;
  1511. @If (%E>$FFFFFF) then BEGIN
  1512. @E:=$FFFFFF;
  1513. @END;
  1514. @Call:L_mnoznik;
  1515. @Call:ShowMN;
  1516. @Goto:802;
  1517. ;---------------------
  1518. [830]
  1519. ;odczyt warto₧ci MNOíNIK - okno
  1520. @Call:CheckMouse;
  1521. @Call:Mnoznik_L;
  1522. @GetValue(%E,'Mnoºnik dla skali czasowej:');
  1523. @If (%E<0) then BEGIN
  1524. @E:=0;
  1525. @END;
  1526. @If (%E>$FFFFFF) then BEGIN
  1527. @E:=$FFFFFF;
  1528. @END;
  1529. @Call:L_mnoznik;
  1530. @Call:ShowMN;
  1531. @Call:CheckMouse;
  1532. @Goto:802;
  1533. ;-----------------------------------------------
  1534. ;############################################################
  1535.  
  1536.  
  1537.  
  1538.  
  1539. [procedure ShowCZASUST]
  1540. ;wy₧wietla czas ustalania siæ sygnaÆu
  1541. @SetColors(7,7);
  1542. @Bar(321,156,369,174);
  1543. @A:=30;
  1544. @C:=2;
  1545. @ExecuteCode;
  1546. @SetColors(14,14);
  1547. @if (%B<>0) then BEGIN
  1548. @WriteValue(320,155,370,175,0,0,%B);
  1549. @END;
  1550. @if (%B=0) then BEGIN
  1551. @SetPosition(334,162);
  1552. @FastWrite('MAX');
  1553. @END;
  1554. @Return;
  1555. ;----------------------------------
  1556. [procedure ShowUSRED]
  1557. ;wy₧wietla warto₧ì u₧redniania (bajt 17)
  1558. @SetColors(7,7);
  1559. @Bar(321,228,369,246);
  1560. @A:=17;
  1561. @C:=2;
  1562. @ExecuteCode;
  1563. @SetColors(14,14);
  1564. @WriteValue(320,227,370,247,0,0,%B);
  1565. @Return;
  1566. ;------------------------------------
  1567. [procedure Draw12]
  1568. ;wyÆacza obsÆugæ 8 bitowå i ustawia 12 bitowå
  1569. @SetColors(0,15);
  1570. @DownArea(165,205,175,215,7);
  1571. @DownArea(165,230,175,240,7);
  1572. ;
  1573. @Bar(168,233,172,237);
  1574. ;                               dezaktywuje
  1575. @SetColors(3,15);
  1576. @SetPosition(198,207);
  1577. @FastWrite('8 BITOWY');
  1578. ;                               aktywuje
  1579. @SetColors(0,15);
  1580. @SetPosition(190,232);
  1581. @FastWrite('12 BITOWY');
  1582. @SetPosition(300,217);
  1583. @FastWrite('u₧rednianie:');
  1584. ;
  1585. @SetColors(3,0);
  1586. @ReverseArea(285,227,405,247);
  1587. @Return;
  1588. ;--------------------------------------------------
  1589. [procedure Draw8]
  1590. ;wyÆacza obsÆugæ 12 bitowå i ustawia 8 bitowå
  1591. @SetColors(0,15);
  1592. @DownArea(165,205,175,215,7);
  1593. @DownArea(165,230,175,240,7);
  1594. ;
  1595. @Bar(168,208,172,212);
  1596. ;                               aktywuje
  1597. @SetColors(0,15);
  1598. @SetPosition(198,207);
  1599. @FastWrite('8 BITOWY');
  1600. ;                               dezaktywuje
  1601. @SetColors(3,15);
  1602. @SetPosition(190,232);
  1603. @FastWrite('12 BITOWY');
  1604. @SetPosition(300,217);
  1605. @FastWrite('u₧rednianie:');
  1606. @SetColors(0,3);
  1607. @ReverseArea(285,227,405,247);
  1608. @Return;
  1609. ;--------------------------------------------
  1610. [procedure SetUSRED]
  1611. ;u₧rednianie
  1612. @SetColors(8,15);
  1613. @SetButton(285,227,315,247,7,870,'<','Dekrementacja');
  1614. @SetButton(375,227,405,247,7,871,'>','Inkrementacja');
  1615. @Return;
  1616. ;-------------------
  1617. [procedure SetPRACA]
  1618. ;ustawia odpowiednie przyciski i pola
  1619. @SetHelpContext(6);
  1620. @DisableUserButtons;
  1621. ;               czas ustalania
  1622. @SetColors(8,15);
  1623. @SetButton(285,155,315,175,7,855,'<','Dekrementacja');
  1624. @SetButton(375,155,405,175,7,856,'>','Inkrementacja');
  1625. @SetInvisibleButton(320,155,370,175,860);
  1626. ;               8 bitowy
  1627. @SetInvisibleButton(165,205,175,215,861);
  1628. ;               12 bitowy
  1629. @SetInvisibleButton(165,230,175,240,865);
  1630. @A:=32;
  1631. @C:=2;
  1632. @ExecuteCode;
  1633. @If (%B&1<>0) then Call:SetUSRED;
  1634. ;               praca PRG
  1635. @SetInvisibleButton(165,266,175,276,874);
  1636. ;               praca DMA
  1637. @SetInvisibleButton(165,283,175,293,875);
  1638. ;
  1639. @SetButton(180,310,400,340,7,853,'Ustawienie danych','Zatwierdzenie ustawieñ');
  1640. @Return;
  1641. ;------------------------------------
  1642. [procedure DrawPRG]
  1643. @SetColors(0,15);
  1644. @DownArea(165,266,175,276,7);
  1645. @Bar(168,269,172,273);
  1646. ;
  1647. @DownArea(165,283,175,293,7);
  1648. @Return;
  1649. ;------------------
  1650. [procedure DrawDMA]
  1651. @SetColors(0,15);
  1652. @DownArea(165,266,175,276,7);
  1653. ;
  1654. @DownArea(165,283,175,293,7);
  1655. @Bar(168,286,172,290);
  1656. @Return;
  1657. ;------------------------------------
  1658.  
  1659.  
  1660.  
  1661.  
  1662. ;#############################################################
  1663. ;#############         PRACA PRG/DMA          ################
  1664. ;#############################################################
  1665. [850]
  1666. ;
  1667. ;RYSOWANIE OKNA USTAWIEÑ PRACA PRG/DMA - wywoÆywaì jako GOSUB
  1668. ;
  1669. @ResetFields;
  1670. @DisableUserButtons;
  1671. @SavePart(140,110,450,370,'OKNOPRDM.SCR');
  1672. @DialogBox(140,110,430,350,3,'PRACA PRG/DMA');
  1673. ;obszar na skalæ i mnoºnik
  1674. @DownArea(150,142,420,255,7);
  1675. @DownArea(150,260,420,300,7);
  1676. ;
  1677. @SetColors(0,15);
  1678. @SetPosition(165,158);
  1679. @FastWrite('Czas ustalania');
  1680. @SetPosition(175,170);
  1681. @FastWrite('siæ sygnaÆu:');
  1682. @SetColors(8,15);
  1683. @DrawButton(285,155,315,175,7,855,'<','Dekrementacja');
  1684. @DrawButton(375,155,405,175,7,856,'>','Inkrementacja');
  1685. @SetInvisibleButton(320,155,370,175,860);
  1686. @DownArea(320,155,370,175,7);
  1687. ;
  1688. @SetColors(1,15);
  1689. @SetPosition(205,190);
  1690. @FastWrite('RODZAJ PRZETWORNIKA:');
  1691. @SetColors(0,15);
  1692. @SetPosition(198,207);
  1693. @FastWrite('8 BITOWY');
  1694. @SetInvisibleButton(165,205,175,215,861);
  1695. @DownArea(165,205,175,215,7);
  1696. ;
  1697. @SetPosition(190,232);
  1698. @FastWrite('12 BITOWY');
  1699. @SetInvisibleButton(165,230,175,240,865);
  1700. @DownArea(165,230,175,240,7);
  1701. @SetPosition(300,217);
  1702. @FastWrite('u₧rednianie:');
  1703. @SetColors(8,15);
  1704. @DrawButton(285,227,315,247,7,870,'<','Dekrementacja');
  1705. @DrawButton(375,227,405,247,7,871,'>','Inkrementacja');
  1706. @DownArea(320,227,370,247,7);
  1707. ;
  1708. @SetColors(0,15);
  1709. @SetPosition(190,268);
  1710. @FastWrite('Praca programowa');
  1711. @SetInvisibleButton(165,266,175,276,874);
  1712. @DownArea(165,266,175,276,7);
  1713. ;
  1714. @SetPosition(190,285);
  1715. @FastWrite('Praca z DMA');
  1716. @SetInvisibleButton(165,283,175,293,875);
  1717. @DownArea(165,283,175,293,7);
  1718. ;
  1719. @SetColors(8,15);
  1720. @DrawButton(180,310,400,340,7,853,'Ustawienie danych','Zatwierdzenie ustawieñ');
  1721. ;
  1722. @Call:ShowCZASUST;
  1723. @Call:ShowUSRED;
  1724. @A:=32;
  1725. @C:=2;
  1726. @ExecuteCode;
  1727. @If (%B&1<>0) then Call:Draw12;
  1728. @If (%B&1=0) then Call:Draw8;
  1729. @A:=26;
  1730. @C:=2;
  1731. @ExecuteCode;
  1732. @If (%B=1) then Call:DrawDMA;
  1733. @If (%B=0) then Call:DrawPRG;
  1734. @Goto:852;
  1735. ;--------------------------
  1736. [852]
  1737. ;OBS£UGA POLECEÑ
  1738. @Call:SetPRACA;
  1739. @CheckEvents;
  1740. ;--------------------------
  1741. [853]
  1742. ;ZAMKNIÉCIE OKNA
  1743. @LoadPart(140,110,'OKNOPRDM.SCR');
  1744. @Return;
  1745. ;*************************************
  1746. [855]
  1747. ;dekrementacja czasu ustalania
  1748. @A:=30;
  1749. @C:=2;
  1750. @ExecuteCode;
  1751. @B:=%B-1;
  1752. @If (%B<0) then BEGIN
  1753. @B:=0;
  1754. @END;
  1755. @C:=1;
  1756. @ExecuteCode;
  1757. @Call:ShowCZASUST;
  1758. @Goto:852;
  1759. ;--------------------
  1760. [856]
  1761. ;inkrementacja czasu ustalania
  1762. @A:=30;
  1763. @C:=2;
  1764. @ExecuteCode;
  1765. @B:=%B+1;
  1766. @If (%B>255) then BEGIN
  1767. @B:=255;
  1768. @END;
  1769. @C:=1;
  1770. @ExecuteCode;
  1771. @Call:ShowCZASUST;
  1772. @Goto:852;
  1773. ;--------------------
  1774. [860]
  1775. ;pobranie czasu ustalania
  1776. @Call:CheckMouse;
  1777. @A:=30;
  1778. @C:=2;
  1779. @ExecuteCode;
  1780. @GetValue(%B,'Czas ustalania siæ sygnaÆu:');
  1781. @If (%B<0) then BEGIN
  1782. @B:=0;
  1783. @END;
  1784. @If (%B>255) then BEGIN
  1785. @B:=255;
  1786. @END;
  1787. @A:=30;
  1788. @C:=1;
  1789. @ExecuteCode;
  1790. @Call:ShowCZASUST;
  1791. @Call:CheckMouse;
  1792. @Goto:852;
  1793. ;--------------------------------------------
  1794. [861]
  1795. ;przetwornik 8 BIT
  1796. @Call:CheckMouse;
  1797. @A:=32;
  1798. @C:=2;
  1799. @ExecuteCode;
  1800. @If (%B&1=0) then Goto:852;
  1801. @B:=%B+1;
  1802. @C:=1;
  1803. @ExecuteCode;
  1804. @Call:Draw8;
  1805. @Goto:852;
  1806. ;---------------------
  1807. [865]
  1808. ;przetwornik 12 BIT
  1809. @Call:CheckMouse;
  1810. @A:=32;
  1811. @C:=2;
  1812. @ExecuteCode;
  1813. @If (%B&1=1) then Goto:852;
  1814. @B:=%B-1;
  1815. @C:=1;
  1816. @ExecuteCode;
  1817. @Call:Draw12;
  1818. @Goto:852;
  1819. ;---------------------
  1820. [870]
  1821. ;dekrementacja u₧redniania
  1822. @A:=17;
  1823. @C:=2;
  1824. @ExecuteCode;
  1825. @B:=%B/2;
  1826. @If (%B<1) then BEGIN
  1827. @B:=1;
  1828. @END;
  1829. @C:=1;
  1830. @ExecuteCode;
  1831. @Call:ShowUSRED;
  1832. @Goto:852;
  1833. ;---------------------
  1834. [871]
  1835. ;inkrementacja u₧redniania
  1836. @A:=17;
  1837. @C:=2;
  1838. @ExecuteCode;
  1839. @B:=%B*2;
  1840. @If (%B>128) then BEGIN
  1841. @B:=128;
  1842. @END;
  1843. @C:=1;
  1844. @ExecuteCode;
  1845. @Call:ShowUSRED;
  1846. @Goto:852;
  1847. ;--------------------------------------------
  1848. [874]
  1849. ;praca PRG
  1850. @Call:CheckMouse;
  1851. @A:=26;
  1852. @C:=2;
  1853. @ExecuteCode;
  1854. @If (%B=0) then Goto:852;
  1855. @B:=0;
  1856. @C:=1;
  1857. @ExecuteCode;
  1858. @Call:DrawPRG;
  1859. @Goto:852;
  1860. ;---------------------
  1861. [875]
  1862. ;praca DMA
  1863. @Call:CheckMouse;
  1864. @A:=26;
  1865. @C:=2;
  1866. @ExecuteCode;
  1867. ;               @If (%B=1) then Goto:852;
  1868. @B:=1;
  1869. @C:=1;
  1870. @ExecuteCode;
  1871. @Call:DrawDMA;
  1872. ;               wywoÆaj okno DMA
  1873. @Gosub:876;
  1874. @Goto:852;
  1875. ;---------------------
  1876. ;##############################################################
  1877.  
  1878.  
  1879.  
  1880. ;--------------------------------------
  1881. [procedure SetOKNODMA]
  1882. @SetHelpContext(7);
  1883. @DisableUserButtons;
  1884. @SetColors(8,15);
  1885. @SetButton(345,265,375,285,7,880,'<','Dekrementacja');
  1886. @SetButton(435,265,465,285,7,881,'>','Inkrementacja');
  1887. @SetInvisibleButton(380,265,430,285,882);
  1888. ;
  1889. @SetInvisibleButton(225,315,235,325,883);
  1890. @SetInvisibleButton(225,330,235,340,884);
  1891. @SetInvisibleButton(225,345,235,355,885);
  1892. ;
  1893. @SetButton(410,318,460,338,7,886,'Czas','Licznik transmisji DMA');
  1894. @SetButton(240,370,460,400,7,878,'Ustawienie danych','Zatwierdzenie ustawieñ');
  1895. @Return;
  1896. ;-----------------------------------------------
  1897. [procedure ShowILEDMA]
  1898. ;wy₧wietla ilo₧ì danych w transmisji DMA
  1899. @SetColors(7,7);
  1900. @Bar(381,266,429,284);
  1901. @A:=29;
  1902. @C:=2;
  1903. @ExecuteCode;
  1904. @SetColors(14,14);
  1905. @if (%B<>0) then BEGIN
  1906. @WriteValue(380,265,430,285,0,0,%B);
  1907. @END;
  1908. @if (%B=0) then BEGIN
  1909. @SetPosition(390,272);
  1910. @FastWrite('AUTO');
  1911. @END;
  1912. @Return;
  1913. ;-------------------------------------------------------
  1914. [procedure DrawDANYCH]
  1915. @SetColors(7,7);
  1916. @Bar(226,316,234,324);
  1917. @SetColors(0,15);
  1918. @Bar(228,318,232,322);
  1919. @A:=28;
  1920. @B:=0;
  1921. @C:=1;
  1922. @ExecuteCode;
  1923. @Return;
  1924. ;--------------------------------------
  1925. [procedure DrawSTART]
  1926. @SetColors(7,7);
  1927. @Bar(226,331,234,339);
  1928. @SetColors(0,15);
  1929. @Bar(228,333,232,337);
  1930. @A:=31;
  1931. @B:=0;
  1932. @C:=1;
  1933. @ExecuteCode;
  1934. @Return;
  1935. ;--------------------------------------
  1936. [procedure DrawSYNCHRO]
  1937. @SetColors(7,7);
  1938. @Bar(226,346,234,354);
  1939. @SetColors(0,15);
  1940. @Bar(228,348,232,352);
  1941. @Return;
  1942. ;--------------------------------------
  1943.  
  1944.  
  1945.  
  1946. ;###################################################################
  1947. ;###############      okno do obsÆugi DMA       ####################
  1948. ;###################################################################
  1949. ; wywoÆywaì przez gosub
  1950. [876]
  1951. @ResetFields;
  1952. @DisableUserButtons;
  1953. @SavePart(200,220,500,430,'OKNODMA.SCR');
  1954. @DialogBox(200,220,490,410,3,'OBS£UGA DMA');
  1955. ;obszar na skalæ i mnoºnik
  1956. @DownArea(210,252,480,365,7);
  1957. ;
  1958. @SetColors(0,15);
  1959. @SetPosition(225,268);
  1960. @FastWrite('Ilo₧ì danych');
  1961. @SetPosition(235,280);
  1962. @FastWrite('w bloku DMA:');
  1963. @SetColors(8,15);
  1964. @DrawButton(345,265,375,285,7,880,'<','Dekrementacja');
  1965. @DrawButton(435,265,465,285,7,881,'>','Inkrementacja');
  1966. @SetInvisibleButton(380,265,430,285,882);
  1967. @DownArea(380,265,430,285,7);
  1968. ;
  1969. @SetColors(1,15);
  1970. @SetPosition(265,300);
  1971. @FastWrite('Opcje transmisji DMA:');
  1972. @SetColors(0,15);
  1973. @SetPosition(250,317);
  1974. @FastWrite('tylko dane z ADC');
  1975. @SetInvisibleButton(225,315,235,325,883);
  1976. @DownArea(225,315,235,325,7);
  1977. ;
  1978. @SetPosition(250,332);
  1979. @FastWrite('start automatyczny');
  1980. @SetInvisibleButton(225,330,235,340,884);
  1981. @DownArea(225,330,235,340,7);
  1982. ;
  1983. @SetPosition(250,347);
  1984. @FastWrite('synchronizacja zewnætrzna');
  1985. @SetInvisibleButton(225,345,235,355,885);
  1986. @DownArea(225,345,235,355,7);
  1987. ;
  1988. @SetColors(8,15);
  1989. @DrawButton(410,318,460,338,7,886,'Czas','Licznik transmisji DMA');
  1990. ;
  1991. @DrawButton(240,370,460,400,7,878,'Ustawienie danych','Zatwierdzenie ustawieñ');
  1992. @Call:ShowILEDMA;
  1993. ;
  1994. @A:=28;
  1995. @C:=2;
  1996. @ExecuteCode;
  1997. @If (%B=0) then Call:DrawDANYCH;
  1998. ;
  1999. @A:=31;
  2000. @C:=2;
  2001. @ExecuteCode;
  2002. @If (%B=0) then Call:DrawSTART;
  2003. ;
  2004. @A:=32;
  2005. @C:=2;
  2006. @ExecuteCode;
  2007. @If (%B&2<>0) then Call:DrawSYNCHRO;
  2008. @Goto:877;
  2009. ;--------------------------
  2010. [877]
  2011. ;OBS£UGA POLECEÑ
  2012. @Call:SetOKNODMA;
  2013. @CheckEvents;
  2014. ;--------------------------
  2015. [878]
  2016. ;ZAMKNIÉCIE OKNA
  2017. @LoadPart(200,220,'OKNODMA.SCR');
  2018. @Return;
  2019. ;--------------------------------------------
  2020. [880]
  2021. ;dekrementacja ilo₧ci danych
  2022. @A:=29;
  2023. @C:=2;
  2024. @ExecuteCode;
  2025. @B:=%B-1;
  2026. @If (%B<0) then BEGIN
  2027. @B:=0;
  2028. @END;
  2029. @C:=1;
  2030. @ExecuteCode;
  2031. @Call:ShowILEDMA;
  2032. @Goto:877;
  2033. ;--------------------
  2034. [881]
  2035. ;inkrementacja ilo₧ci danych
  2036. @A:=29;
  2037. @C:=2;
  2038. @ExecuteCode;
  2039. @B:=%B+1;
  2040. @If (%B>255) then BEGIN
  2041. @B:=255;
  2042. @END;
  2043. @C:=1;
  2044. @ExecuteCode;
  2045. @Call:ShowILEDMA;
  2046. @Goto:877;
  2047. ;--------------------
  2048. [882]
  2049. ;pobranie ilo₧ci danych
  2050. @Call:CheckMouse;
  2051. @A:=29;
  2052. @C:=2;
  2053. @ExecuteCode;
  2054. @GetValue(%B,'Ilo₧ì danych w bloku DMA:');
  2055. @If (%B<0) then BEGIN
  2056. @B:=0;
  2057. @END;
  2058. @If (%B>255) then BEGIN
  2059. @B:=255;
  2060. @END;
  2061. @A:=29;
  2062. @C:=1;
  2063. @ExecuteCode;
  2064. @Call:ShowILEDMA;
  2065. @Call:CheckMouse;
  2066. @Goto:877;
  2067. ;--------------------------------------------
  2068. [883]
  2069. ;zmiana danej w tablicy
  2070. ; rodzaj danych (ADC | wszystkie)
  2071. @Call:CheckMouse;
  2072. @A:=28;
  2073. @C:=2;
  2074. @ExecuteCode;
  2075. @If (%B=0) then BEGIN
  2076. ;          wyÆåcz (tylko ADC) -> (wÆåcz wszystkie dane)
  2077. @A:=28;
  2078. @B:=1;
  2079. @C:=1;
  2080. @ExecuteCode;
  2081. @SetColors(7,7);
  2082. @Bar(226,316,234,324);
  2083. @Goto:877;
  2084. @END;
  2085. @If (%B=1) then Call:DrawDANYCH;
  2086. @Goto:877;
  2087. ;----------------------------------
  2088. [884]
  2089. ;zmiana danej w tablicy
  2090. ; start transmiaji (automatyczny | zewnætrzny)
  2091. @Call:CheckMouse;
  2092. @A:=31;
  2093. @C:=2;
  2094. @ExecuteCode;
  2095. @If (%B=0) then BEGIN
  2096. ;       wyÆåcz start automatyczny (wÆåcz start zewn. - sprzætowy)
  2097. @A:=31;
  2098. @B:=1;
  2099. @C:=1;
  2100. @ExecuteCode;
  2101. @SetColors(7,7);
  2102. @Bar(226,331,234,339);
  2103. @Goto:877;
  2104. @END;
  2105. @If (%B=1) then Call:DrawSTART;
  2106. @Goto:877;
  2107. ;----------------------------------
  2108. [885]
  2109. ;zmiana danej w tablicy
  2110. ; synchronizacja DMA (wewn. | zewn.)
  2111. @Call:CheckMouse;
  2112. @A:=32;
  2113. @C:=2;
  2114. @ExecuteCode;
  2115. @If (%B&2<>0) then BEGIN
  2116. ;                         wyÆåczenie SYNCHRO
  2117. @A:=32;
  2118. @C:=2;
  2119. @ExecuteCode;
  2120. @B:=%B-2;
  2121. @C:=1;
  2122. @ExecuteCode;
  2123. @SetColors(7,7);
  2124. @Bar(226,346,234,354);
  2125. @Goto:877;
  2126. @END;
  2127. @If (%B&2=0) then BEGIN
  2128. ;                   wÆåczenie SYNCHRO
  2129. @A:=32;
  2130. @C:=2;
  2131. @ExecuteCode;
  2132. @B:=%B+2;
  2133. @C:=1;
  2134. @ExecuteCode;
  2135. @Call:DrawSYNCHRO;
  2136. @Goto:877;
  2137. @END;
  2138. ;----------------------------------
  2139. [886]
  2140. ; ustawianie licznika DMA
  2141. @Gosub:800;
  2142. @Goto:877;
  2143. ;--------------------------------------
  2144.