ATARI SERIAL INTERFACEPrzedstawiony obok program instaluje urządzenie "R:", umożliwiające łatwe sterowanie złączeni szeregowym, opisanym na poprzednich stronach w cyklu "Atari inaczej". Program ten umieszcza w pamięci obsługę złącza szeregowego, dołącza swoją procedurę do łańcucha inicjalizacji wskazywanego przez wektor DOSINI, wstawia wpis "R:" do tablicy HATABS i podnosi MEMLO, aby ochronić się przed zamazaniem. Od tej pory można używać "R:" tak, jak każdego innego urządzenia zewnętrznego. Jedynym warunkiem jest przyłączenie z drugiej strony kabelka jakiejś innej maszynki wyposażonej w podobne złącze. Może to być nie tylko postulowany przez p. Prokopowicza "pecet", ale także bliźniak-ATARI z drugim takim samym "interfacem" lub cokolwiek innego, np. drukarka lub modem. Standard RS 232 stanowi pomost ponad dziwactwami wytwórców sprzętu. Jest uniwersalnym językiem, który zbliża obce sobie komputery. Pracę złącza szeregowego charakteryzuje szereg parametrów. Większość z nich jest w tym programie ustalona na sztywno: bit parzystości (brak), liczba bitów danych (8), liczba bitów stopu (1). Można wpływać na prędkość transmisji, poprzez wybór jednej z trzech wartości: 300, 600 i 1200 bodów, ale prędkość 600, którą program przyjmuje domyślnie, wydaje się optymalna. Oczywiście komputerowy partner z drugiej strony drutu musi ustawić takie same parametry. Jeżeli z jakichś względów prędkość 600 bodów nam nie odpowiada, można ją zmienić za pomocą parametru AUX2 rozkazu OPEN. W BASIC-u będzie to np. OPEN #1,8,p,"R:" Jako p podajemy 1 dla prędkości 300, 2 - dla 600 i 3 - dla 1200. Liczba 0 oznacza pozostawienie poprzednio ustawionej prędkości bez zmian. Przypominam, że drugi parametr rozkazu OPEN oznacza kierunek przesyłania danych: 8 to nadawanie (4 - odbiór, a 12 - transmisja dwukierunkowa, tzw. duplex). Z uwagi na uproszczoną konstrukcję handlera NIE WOLNO w czasie aktywności urządzenia "R:" (od OPEN do CLOSE) korzystać z innych zewnętrznych urządzeń WE/WY, w tym także z drugiego "R:". Odwieczny kłopot przy wymianie danych z innymi komputerami stanowi różnica w oznaczaniu końca wiersza. ASI przeprowadza zamianę wysyłanego znaku o kodzie 155 (po stronie ATARI) na znak 13 i oczywiście odwrotną zamianę przy odbiorze, o ile posłużymy się urządzeniem "R:" lub "R1:". W przypadku "R2:" i wyższych numerów konwersja nie jest przeprowadzana, co umożliwia transmisję plików binarnych. Myślę jednak, że najczęstszym zastosowaniem złącza będzie przesyłanie tekstów. Szczególnie atrakcyjna jest możliwość rozmowy, podczas której odlegli od siebie użytkownicy komputerów piszą teksty na jednakowo widzianym ekranie. Drugim i ostatnim znakiem, który bywa przez ASI zamieniany, jest BACKSPACE (cofacz), który pozwala poprawiać błędy, o ile zostaną w porę zauważone. Trzeba wszakże pamiętać, że w wielu programach komunikacyjnych cofanie nie powoduje wymazania napisanego wcześniej tekstu. W normalnym trybie pracy ASI wysyła otrzymany za pośrednictwem CIO bajt, o ile wysyłanie poprzedniego już się zakończyło. W przeciwnym wypadku czeka wewnątrz procedury WE/WY. Podobnie przy odbiorze program oczekuje, jeżeli cały bajt jeszcze nie nadszedł. Aby umożliwić pracę równoległą, wprowadzono możliwość natychmiastowego powrotu z procedur WE/WY, jeżeli złącze nie jest gotowe do przekazania kolejnego znaku. Taki tryb dla nadawania wymusza się przez zwiększenie w rozkazie OPEN wartości parametru p o 128, zaś dla odbioru - o 64. CIO przekazuje wówczas użytkownikowi kod błędu 224, który wybrałem dla zasygnalizowania, że chwilowo dana operacja nie może być wykonana. W komputerze IBM najwygodniej jest posłużyć się jakimś typowym programem telekomunikacyjnym, pracującym jako terminal. Ja użyłem w tym celu programu "Terminal", wchodzącego w skład pakietu MS WINDOWS 3.1. Po stronie ATARI zastosowałem krótki programik w BASIC-u, który odbiera nadchodzące znaki równolegle z nadawaniem: 10 N=40:CLOSE #1:OPEN #1,4,0,"K:" 20 CLOSE #2:OPEN #2,12,128+64+2,"R:" 30 TRAP N:GET #2,R:? CHR$(R);:GOTO N 40 ON PEEK(764)=255 GOTO 30:GET #1,T 50 ? CHR$(T);:ON T=24 GOTO 70 60 N=60:TRAP 30:PUT #2,T:N=40:GOTO 30 70 TRAP 40000:END :REM CTRL/X=KONIECAby uzyskać samodzielny program ASI, zdatny do wykonania przy pomocy DOS-u lub COS-u, należy połączyć widniejący tu listing z programem Zgrywus+ z TA 2/92, uruchomić całość, wybrać "format plikowy" i podać nazwę C: bądź D:ASI.COM, stosownie do zwyczajów posiadanego urządzenia, co spowoduje zapisanie programu na kasecie lub dyskietce. 1000 REM *--------------------------* 1002 REM : ATARI Serial Interface : 1004 REM : autor: J. B. Wi$niewski : 1006 REM : (c) 1992 Tajemnice ATARI : 1008 REM *--------------------------* 1010 DATA ffff007c977ca200200b7ca201 1020 DATA 200b7c60a000ca300ab9397cc8 1030 DATA c99bd0f8f0f38aa2009d480318 1040 DATA 9869399d4403a9009d4903697c 1050 DATA 9d4503a9099d42034c56e49b41 1060 DATA 544152492053657269616c2049 1070 DATA 6e7465726661636520312e3020 1080 DATA 6279204a4257209b22523a2220 1090 DATA 696e7374616c6c656420286465 1100 DATA 6661756c743d3630302c6e2c38 1110 DATA 2c31299b556e61626c6520746f 1120 DATA 20696e7374616c6c2022523a22 1130 DATA fd9be202e302007c0070f37120 1140 DATA 0000ad1fd0c907f00bad017085 1150 DATA 0cad0270850d60ade0718de702 1160 DATA ade1718de802a252ace271ade3 1170 DATA 714cbceead16028df471ad1702 1180 DATA 8df571a000a521c902b001888c 1190 DATA f671a52b8df7712903f007a8b9 1200 DATA ef718df371a00c20c070a0008c 1210 DATA f871888c007278adde718d1602 1220 DATA addf718d170258a0008c08d28c 1230 DATA 01d2adf3718d00d2a510090185 1240 DATA 108d0ed28d09d2a52a2904f009 1250 DATA a0ff8cf871c88cfb71a52a2908 1260 DATA f000a001602c007210fb78adf4 1270 DATA 718d1602adf5718d170258a510 1280 DATA 29fe85108d0ed2a000a9308d02 1290 DATA d38c00d3a9348d02d3a0016048 1300 DATA a9012c0ed2f004686cf471a9fe 1310 DATA 8d0ed2a5108d0ed22cf871f043 1320 DATA 1008ad00d34ab03b900c5010a9 1330 DATA 048dfa71a9088df9714ef8714c 1340 DATA 2e71cefa71d022ad00d34aa904 1350 DATA 8dfa71cef97130066efc714c2e 1360 DATA 71adfc718dfd71a9ff8df8718d 1370 DATA fb712c00723034500ba9088dfe 1380 DATA 714e007218901aceff71d022ad 1390 DATA fe711007a9ff8d00726840cefe 1400 DATA 713830034e0172a9002a0a0a8d 1410 DATA 00d3a9048dff7168402cf67110 1420 DATA 10c99bf008c97ed008a908d004 1430 DATA a90dd000241110562c00723008 1440 DATA 2cf77110f2a0e0608d01724e00 1450 DATA 72a001602cf671102120be7130 1460 DATA 12c90df00fc908f00ec91af00d 1470 DATA c92090e6a00160a99b60a97e60 1480 DATA a08860241110162cfb7130082c 1490 DATA f77150f2a0e060adfd71eefb71 1500 DATA a00160a08084116000d0700272 1510 DATA e4712b70a17097716871a170a1 1520 DATA 70341a0d1a0272cf72a201b50c 1530 DATA 9d0170bde702950cca10f3a900 1540 DATA 85cf18ade70285d4690385d8ad 1550 DATA e80285d5690085d938a90085d2 1560 DATA e5d485d0a97085d3e5d585d1a0 1570 DATA 00f0033866cfa5d2c902a5d3e9 1580 DATA 729008a202200b7c6cd80024cf 1590 DATA 70633027b1d285ce91d420c372 1600 DATA aaf0d9c920f017c940f0d4c960 1610 DATA f0d0290dc908f0ca90418a291f 1620 DATA c909f03ab1d2c8c900b1d288e9 1630 DATA 709012b1d2c8c903b1d288e972 1640 DATA b006a5d0a6d1900724cf309ca9 1650 DATA 00aa85d686d738b1d2e5d691d4 1660 DATA 20c372b1d2e5d74cbb72b1d291 1670 DATA d420c3724c4072e6d2d002e6d3 1680 DATA e6d4d002e6d560e002e302cf72 1690 DATA 0272 Janusz B. Wiśniewski
|