Tajemnice ATARI

ATARI SERIAL INTERFACE

Przedstawiony 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=KONIEC
    Aby 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




Powrót na start | Powrót do spisu treści | Powrót na stronę główną

Pixel 2002