Eksperymenty ze starymi procesorami - MOS6502

May 29, 2018 121 Replies

Rodzina 82xx jest raczej asynchroniczna, szczegolnie 8251, ktory potrzebuje zegarow dopasowanych do transmisji, i wlasnie 8253, jesli on ma te zegary generowac. Nie bez powodu w pececie pojawil sie dodatkowy kwarc, 1.8costam. A nie chcesz uzyc tego "pecetowego" ... 8250 ?

Natomiast ... tak mi cos chodzi po glowie, ze

-ktorys uklad wymagal doprowadzenia sygnalu zegarowego, bo mial "konstrukcje dynamiczna" ... czy to wlasnie nie 8251 ? pdf trzeba doczytac. Byle jaki mial to byc zegar, byle dopuszczalnym w zakresie czestotliwosci sie miescil, ale najprosciej z procka pociagnac

-moze sie okazac, ze cos tam jest sprawdzane w okreslonej fazie zegara, jak np linie przerwan w procesorze. Akurat magistrali peryferiow intela to nie powinno dotyczyc.

J.

To nie zmienia faktu, że 8251 posiada trzy wejścia zegarowe: TXC, RXC i CLK. Do dwóch pierwszych podłącza się sygnał z baudrate generatora. CLK ma być natomiast taktowany z zegara systemowego. W urządzeniach na 8080 podłączało sie tutaj wyjście zegarowe TTL układu 8224. Chciałem jedynie wiedzieć skąd wziąć ten sygnał w systemie opartym na

6502. Do wyboru mam wyjście generatora (to samo, do którego podłączone jest wejście Fi0 procesora) albo jedno z wyjść Fi1 i Fi2.

A w pecetach dodatkowy kwarc pojawiał się chyba tylko po to, żeby można było tam łatwo zastosować częstotliwość dzielącą się bez reszty do standardowej prędkości portu szeregowego. W moim przypadku nie ma to wielkiego znaczenia, bo główny generator ma być napędzany kwarcem 4.032 MHz, który potem będzie dzielony przez 2 lub 4 (do wyboru zworką, w zależności od typu procesora). Ta częstotliwość ładnie się dzieli na potrzeby UART-a.

Podobne rozwiązanie zastosowałem w projekcie na MCY7880.

Parę sztuk 8251 oraz 8253 mam pod ręką. ;)

Tak. Właśnie 8251 posiada pin CLK, do którego podpinało się zegar systemowy.

Nie ma tutaj potrzeby zachowani synchroniczności czy coś? Nie ma znaczenia którego"Fi" użyję?

W dniu 2018-06-08 o 11:56, Atlantis pisze: >

formatting link
No i ciekawie pisza No external inputs or outputs are referenced to CLK, but the frequency of CLK must be greater than 30 times the Receiver or Transmitter data bit rates.

ale w tabelce na stronie 15 (2-18) ... clock Period min 320, max 1350 ns. Czyli jakies 0.75-3MHz.

Zapewne. Byc moze juz im tez chodzilo, ze systemowe zegary bed± ro¿nej predkosci, wiec nie mozna na nich polegac.

Zalezy. Jak chcesz 1200, zegar ma byc *16, to sie dzieli ladnie przez 210. Jak chcesz 2400, to trzeba podzielic przez 105 ... i juz nie mozna najpierw podzielic przez 2. Jak chcesz 9600 ... to nie z tym kwarcem :-(

Podobne rozwi±zanie zastosowa³em w projekcie na MCY7880.

J.

Hmm... Teraz właśnie jeszcze raz na to patrze i faktycznie, wygląda na to, że zegar 2000000 Hz jest dużo lepszym rozwiązaniem. Po podzieleniu przez 13 (8253), a potem jeszcze przez 16 (wewnątrz 8251) uzyskam baudrate w okolicy 9615.

Okazuje się, że w komputerze z MCY7880 również powinienem podmienić kwarc na 18 MHz. Wtedy także będę miał zegar 2MHz i identyczną sytuację. W chwili obecnej mam kwarc 18.432MHz, co daje zegar 2.048 MHz i baudrate około 9846... O dziwo działa...

Tak to jest, gdy kopiuje się rozwiązania z internetu, bez przeliczenia na wszelki wypadek...

Do 5% roznicy na krotkim kablu te uklady toleruja. Odbiornik lapie poczatek bitu startu, odczekuje pol bitu czasu, i lapie wartosc w polowie bitu. Mozna sie o te pol bitu przestawic, a poniewaz bitow ok 10, to 5%, no - 4% jeszcze dopuszcza.

Albo ... po co jakies 8253 - uzyj DDS :-)

J.

Udało mi się złożyć prosty komputerek z MOS6502AD. W tej chwili konfiguracja wygląda następująco:

- 32kB RAM, adresowany bezpośrednio (pierwsza połowa przestrzeni adresowej).

- 16 kB pamięci EPROM (ostatnia ćwiartka przestrzeni adresowej)

- dekoder adresów na układach TTL-LS

- szyna adresowa buforowana przez dwa układy 74LS245

- port równoległy 8255 Poza tym na płytce znajdują się na razie nie obsadzone podstawki pod:

- dodatkowy chip pamięci RAM, dostępny jako cztery banki po 8kB

- port wyjściowy na 74LS373 do sterowania powyższym

- timer 8253 oraz UART 8251

Sygnały !WR oraz !RD na potrzeby pamięci oraz intelowskich peryferiów są generowane przez następujący układ:

formatting link
Podczas wstępnego rozruchu nie obyło się bez wpadki - okazało się, że odwrotnie podłączyłem zasilanie do 8255. Popłynął za dużo prąd - nie na tyle duży, żeby przepalić 3A bezpiecnzik, ale drucik wewnątrz się lekko rozżarzył. Na wszelki wypadek po tym incydencie wymieniłem 8255 i CPU na inne egzemplarze.

Na chwilę obecną układ przeszedł test "pracy na luzie" - podciągnąłem linie danych za pomocą rezystorów, układając wartość 0xEA (NOP). Szyna adresowa w tej sytuacji zachowuje się prawidłowo - na kolejnych liniach pojawiają się impulsy o dwa razy większej długości niż na linii poprzedniej. Dekoder adresów w tej sytuacji także zdaje się działać prawidłowo, generując impulsy stanu niskiego we właściwej sekwencji.

Natomiast za nic nie udało mi się uruchomić programu. W EPROM-ie siedzi w tej chwili coś takiego:

CTRLREG EQU $9000 PA_8255 EQU $9200 PB_8255 EQU $9201 PC_8255 EQU $9202 CONF_8255 EQU $9203

.ORG $C000 INIT: LDX #$FF TXS LDA #$80 STA CONF_8255 ;tryb 0, wszystkie porty wyjsciowe LOOP: LDA #$01 STA PA_8255 JSR DELAY LDA #$00 STA PA_8255 JSR DELAY JMP LOOP DELAY: LDY #$FF DELAY_LOOP1: LDX #$FF DELAY_LOOP2: DEX BNE DELAY_LOOP2 DEY BNE DELAY_LOOP1 RTS IRQ: RTI

NMI: RTI .ORG $FFFA DW NMI DW INIT DW IRQ

Program powinien "machać" stanem pinu PA0 układu 8255. Niestety, nie robi tego. Oscyloskop pokazuje aktywność na liniach adresowych i danych, a także na !WR !RD. Niestety linia CS sterująca 8255 jest nieaktywna, podobnie jak wszystkie linie z obszaru I/O. Podczas pracy "na luzie" linie te regularnie przełączały się na moment w stan niski.

Wstępnie sprawdziłem połączenia, przedzwaniając połączenia multimetrem. Sprawdziłem też inny EPROM.

Ktoś ma jakiś pomysł? Może błąd tkwi w moim kodzie?

W dniu 2018-06-10 o 21:49, Atlantis pisze:

Może upewnij się, czy wszystko trafia do EPROMu tam gdzie trzeba.

Dnia Sun, 10 Jun 2018 21:49:04 +0200, Atlantis napisał(a):

Uzyj ten port do testow

uprosc do

LDA #$05

LDA #$FA

Oscyloskop z pamiecia masz ? najlepiej 4 kanaly :-) To moze analizator Salae ?

-zobacz co sie dzieje na liniach adresowych - program chodzi w kolko, to powinien byc w miare stabilny wzor na kilkanascie adresow, po moich poprawkach jeszcze stabilniejszy

-masz teraz zapis adresu na stos - powinny sie regularnie !WR pojawiac, i to tak w cyklach po 3 - zapis do 8255, potem dwa do RAM. Ale bardzo rzadko - masz dlugie petle.

W moim tylko do 8255 i to czesto.

-jakie sa adresy w trakcie tych !WR

-dodaj w petli STA $0010 - bedzie mozna uzyc !WR RAM czy A15 do wyzwalania oscyloskopu, nawet analogowego

-dodaj uklad pracy krokowej :-)

-czy na pewno dobrze EPROM zaprogramowales ? Program jest w zakresie C000-FFFF, trzeba wpisac w 0000-3FFF kosci.

J.

Okazało się, że winę ponosił uszkodzony procesor. O ile zachowywał się prawidłowo podczas pracy na luzie, to po odpalaniu programu przez chwilę zachowywał się dziwnie, a potem w ogóle przestawał pracować - aktywność na liniach adresowych zamierała. Po podmianie na inny egzemplarz MOS6502 wszystko zaczęło działać tak, jak powinno. Pozostało mi teraz tylko odpalenie UART-a. Potem spróbuje przeportować i uruchomić którąś wersję MS Basic, a także dopisać obsługę ładowania programów przez port szeregowy. Gdy będzie mi się chciało, może dorobię interfejs magnetofonowy. ;)

Użytkownik "Atlantis" napisał w wiadomości grup dyskusyjnych:5b1f62fe$0$607$ snipped-for-privacy@news.neostrada.pl...

Dziwne troche. Co prawda jak pomyliles zasilanie to duzo moglo sie zdarzyc ... ale to bylo zasilanie 8255 ? Nie powinno miec wplywu na procesor.

To juz trzeci, czy wrociles do pierwszego ? Jeszcze troche, i seryjna produkcje bedziesz mogl zaczac :-)

Ale ciekaw jestem co mu sie stalo. Zegar dzialal po zawieszeniu ? Moze jakies klopoty z kwarcem ?

A moze uszkodziła mu się ktoras linia danych - czytal czasem dobre rozkazy, czasem inne ale ciagle poprawne, az trafil na jakis nielegalny kod i sie zawiesil.

System Spectrum byl dobry i prosty. Tylko ze 6502 jest 8-bitowy, a Spectrum zapisywal dlugimi blokami :-)

Zaprogramujesz - zrozumiesz czemu 6502 byl kiepski. Choc miejscami pokazywal zalety.

A masz jeszcze magnetofon ? Moze lepiej sie skupic na obsludze kart SD ?

No chyba, zeby tak na MP3 trzymac programy :-)

J.

Wychodzi na to, że opisując proces debugowania problemu pominąłem jeden istotny szczegół. Mianowicie już po pierwszej podmianie CPU zauważyłem błąd konstrukcyjny - brakowało inwertera na jednej linii, co uniemożliwiało normalną prace I/O i przez co dioda nie migała. Usunąłem ten błąd i podłączyłem zasilanie, jednak urządzenie ciągle nie chciało działać prawidłowo - bo tym razem CPU był wadliwy. Dopiero jego ponowna podmiana dała właściwy efekt. Nie wiem - możliwe nawet, że wziąłem ten procesor sam, który był na początku. :)

Tak, zegar cały czas pracuje prawidłowo. Pierwszą rzeczą, która mi przyszła do głowy było to, że może zworka przy dzielniku częstotliwości (do ustawiania 1 MHz lub 2 MHz) nie łączy. Jednak to nie to. Już po uruchomieniu układu włożyłem jeszcze raz w podstawkę ten podejrzany egzemplarz CPU - układ znów nie chciał działać. To tylko potwierdziło, że tu tkwiła przyczyna problemu.

Chodzi mi przede wszystkim o walor edukacyjny, nie praktyczna użyteczność. W końcu mówimy o procesorach, które nawet hardware'owo nie potrafiły mnożyć i dzielić. ;)

Leży gdzieś u mnie jakiś kasetowy Kasprzak. ;) Poza tym nie mam zamiaru wykorzystywać tego magnetofonu jako pamięci masowej. To raczej zadanie do rozwiązania w ramach nauki. W zamierzeniach głównym sposobem ładowania kodu ma być RS232.

Tu sie objawi walor edukacyjny :-)

Tu akurat wystarczy +1 i -1

Jest jeszcze czym wyslac dane? Taki X-modem, czy Z-modem ... a moze po prostu .hex tekstowo ?

J.

U¿ytkownik "J.F." <jfox snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news: snipped-for-privacy@40tude.net...

Id¼my na ca³o¶æ, Kermitem przez telnet :) (ach, gdzie te czasy, gdy siê tak robi³o) :)

Dnia Sat, 16 Jun 2018 00:00:12 +0200, HF5BS napisał(a):

Kermit calkiem dobry ... i kermit ciagle zyje, a inne programy upadaja.

Tyle ze kermit sie tak rozrosl, ze posadzic go 6502 bedzie problem.

J.

U¿ytkownik "J.F." <jfox snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news:zy4n7ncgaqm2.xbrnhp5k64f0$. snipped-for-privacy@40tude.net...

Ale tak ¿e 1200 to mo¿e? :) Ja w ka¿dym razie, ju¿ w '93, hmm... bodajze z Maloki, ale pewno¶ci nie mam, no, æwieræ wieku... na pracowym kompie (do synchronizacji zegarynki z serwerem czasu w Dallas), mia³em 386, DOS, z 1 MB (tak, mega, nie giga-bajtem), 40 MB HDD i ca³kiem sporo siê zmie¶ci³o, z go³ymi babami z BBSów i nie tylko :)... Nawet partycja by³a 32 (+8 druga) MB, bo DOS 3.30 wiêcej nie umia³. To ja Telixem, v4.51, nie wiem jak, ale to jedyny program, z jakim siê zetkn±³em, który liczy³ realne dni u¿ywania (shareware), nominalnie 45, ale, jak siê w ¶rodku tego okresu 5 dni programu nie u¿ywa³o, to jego okres wygasa³ nie po 45, lecz 50 dniach.... na tym programie, wdzwania³em siê w dostêp, po znajomo¶ci na MIMUW-ie (eleet, chyba tak), nawet prawdziwego maila mia³em, w dzisiejszym rozumieniu. I ju¿ z dostêpu, telnetem w³a¶nie chyba na Malokê siê zapina³em (by³o wtedy bodaj¿e 10 minut za darmo, spoko, nie nadu¿ywa³em), to sobie pliczusiów trochê po¶ci±ga³em, jakie¶ drobne pierdumalenta, wtedy siê wlok³o, dzi¶ nawet pierdn±æ siê nie zd±¿y, a tysi±c sztuk ju¿ przesz³o na dysk... Kermit szed³ u mnie mniej-wiêcej z po³ow± szybko¶ci ³±cza, czyli na 2400 sz³o ok. 1100-1300 bps. I jako jedyny chcia³ pój¶æ przez telnet, ok. 110-120 cps, inne nie startowa³y. ZTCP. C64, oparty na 6502, mo¿e max wyci±gn±æ 2400, w³asnymi mo¿liwo¶ciami. Nie powiem, na ile da³by wiêcej portem równoleg³ym, w ka¿dym razie, transfer dyskowy, fabrycznie ok. 4 kbps, w trybie warp szed³ ok. 100 kbps (tak, sto kilobitów na sekundê), daj±c prockowi jedynie 10 cykli na 1 bit transmisji, zaznaczam, na ³aczu szeregowym. Wiêc my¶lê, ¿e spoko by siê da³o.

formatting link
- to jeszcze nie szczyt mozliwo¶ci (ok. 22 sekund), na pe³nym WARPie strona dyskietki leci w ok. 15 sekund, dzia³aj±c w ok. 25-krotnym przyspieszeniu wobec normy. A ten tryb jest realizowany wy³acznie programowo, nie s±, jak tu, dok³adane dodatkowe elementy, wszystko na czysto fabrycznym wyposa¿eniu. Oba za¶ urz±dzenia s±

6502 pêdzone, wiêc procek da radê, chyba, ¿e chcia³by¶ pu¶ciæ pe³n± szybko¶æ portu RS, ale to raczej uk³ady we-wy siê nie wyrobi±, a nie procek. Oczywi¶cie, wiadomo, WARP jest ob³o¿ony kosztami takiej imprezy, nietrudno siê domy¶liæ jakimi, choæ podstawowa kontrola b³êdów jest zachowana (nie w ka¿dej realizacji). W trybie WARP mo¿na te¿ zrobiæ kopiowanie dyskietek, leci OIDP, z ok. 20-krotnym przyspieszeniem. Gdyby mój laptop mia³ mieæ podobn± wydolno¶æ transfery z dyskiem, to powinien ci±æ, zak³adaj±c szeregowe ³±cze i WARP, 2x2.8=5.6, czyli jakie¶ 560 Mbps. Przy nikczemnej ilo¶ci pamiêci, ¼ród³a podaj±, ¿e 2 kB, ale ja jako¶ wcisn±³em, ok. 26 kB danych, trafi³em na program, który robi³ z 1541... ramdysk! I sz³o to piorunem, jak, nie wiem, ale zrobi³em test, program na C64 o maksymalnej wielko¶ci dla ramdysku, wrzuci³êm nañ, nastêpnie kombinacj± FOR T=A TO B:POKE T,0:NEXT, gdzie A by³ pocz±tkiem pamiêci programu, a B jego koñcem, wyzerowa³em zawarto¶æ, sprawdzi³em, wyzerowana, obszar ten te¿ nie podlega bankowaniu (w sensie, ¿e nie ma pod jeden obszar podpiêtych 2, lub wiêcej pamiêci). To sru, za³adowa³em program z "ramdysku" i by³ w takiej postaci, jak przed wyzerowaniem, sprawdzi³em, co do bajtu. Sk±d 26 kB w urz±dzeniu, maj±cym ich podobno tylko 2 kB? :)

Dnia Sat, 16 Jun 2018 04:48:51 +0200, HF5BS napisał(a):

Mnie o rozmiar pamieci chodzi.

A tu mamy 64KB RAM+ROM.

No i to byly zlote czasy dla modemow, a teraz ... a co to jest modem ? Juz nawet nie pamietam kiey ostatni raz uzywalem :-(

O ile pamietam, to stacja dyskow byla na laczu szeregowym, i dawala sie przeprogramowac na 19200, bo normalnie to byl tragicznie wolna :-)

ten procesor robi ok 1 MIPS, to mamy ok 500 rozkazow na bajt - az za duzo, wiec to nie koniec mozliwosci.

Ktore ma sprzetowy rejestr i w koncu mamy 80 cykli na bajt.

No chyba, ze nie ma, i czysto programowo wachlujemy jednym bitem?

Tak nawiasem mowiac - pamietam jakis system monitorujacy na 8080. Modem 9600 ... ale wiele ich. No i tak liczymy - od jednego przerwanie co 1ms, zanim przerwanie przyjmiemy, zrzucimy rejestry, sprawdzimy ktory port, odtworzymy ... no zabraknie czasu przy 10 modemach. W efekcie przerwanie bylo zegarowe co ok 0.5ms, sprawdzalo polingiem wszystkie porty.

Tak nawiasem mowiac, to IBM sie nacial podobnie. DMA w 8088/86/286 bylo za wolne, i AT z HDD komunikowal sie rozkazami OUTR/INR

J.

U¿ytkownik "J.F." <jfox snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news:1t06y4d7b4btn$. snipped-for-privacy@40tude.net...

My¶lê, ¿e gdyby kompilator nie rozwleka³ kodu takiego jak ten (chodzi mi o objêto¶æ ¼ród³a): begin; writeln ('Dzieñ dobry wieczór bardzo'); end. do ponad 100 kB, czy w ogóle, to da³o by siê to zrealizowaæ. W koñcu Packet-Radio na C64 dzia³a i to program nie u³omek (choæ nie bez wad), s± programy BBS-ów radiowych, BBS-ów telefonicznych, C64, ze wzglêdu chyba na konstrukcjê systemu plików 1541, uzywa do plików protoko³u Punter, has³o wiki nie podaje tego, ale ZTCP, by³o chyba w ktrym¶ Bajtku co¶, co na to wskazuje.

formatting link
nawias w adresie, je¶li wyrzuci brak strony)

Nie wydaje mi siê to istotnym ograniczeniem. Mo¿e jakie¶ wersje rozwojowe, to tak, ale mam wra¿enie, ¿e powinno daæ sie zrobiæ, przynajmniej wersja podstawowa.

Tak, oryginalnie jest ok. 4 kbps. Jako ciekawostkê niepotwierdzon± podam, ¿e pasjonaci z powodzeniem ¿enili 1541 z komputerem ZX Spectrum. Owo 19200, je¶li, to zmianami rejestrów, ale nie s±dzê, ¿eby a¿ taki narzut, prêdzej modyfikacja (albo nowy) program obs³ugi. Transmisja z poziomu "maintenance" sz³a raczej z fabrycznym 4 kbps. A Warp, jak ³atwo policzyæ, wyci±ga³ do ok. 100 (z moich szacunków, ok. 98 kbps, ale to szacunki by³y, musia³bym dok³adniej to pomierzyæ) kbps, wiêc dawa³o siê to zrobiæ. Zdaje mi siê, ze prócz linii danych, zaprzêgano do tego liniê zegara, wiêc na ka¿d± z linii wychodzi³o ok. 50 kbps, wiêc procek mia³ ju¿ wtedy ok. 20 cykli, aby to obrobiæ.

My¶lê, ¿e to raczej nie w tym rzecz by³a... stacja Atari, fabrycznie mia³a

19200, a te¿ na ³±czu szeregowym przecie¿. Zbada³bym, czy to nie z powodu no¶nika, który na pocz±tku móg³ nie nale¿eæ do najlepszych, programy jeszcze tak dobrze nie zoptymalizowane, do tego, co¶ dzia³aj±cego trzeba by³o na rynek wypu¶ciæ, st±d wolniejsza transmisja, mnie to raczej polityk± (ale nie typu przywódcy pañstwowi, lecz dzia³ania korporacynje) firmy ¶mierdzia³o, na zasadzie po¶rodkowania pewne-szybkie. Gdybam tylko.

Ale jako¶ trzeba do tego rejestru wpisaæ... Nie pamiêtam teraz, na ile sprzêtowo.

Ja podejrzewam, ze jednak jest to co¶ takiego. Inaczej czê¶æ zabaw niskopoziomowych, nie musia³a by byæ robiona na fabrycznej prêdko¶ci transmisji.

I tak bez buforowania? Bo niby nie ma tu tak du¿o (¿e ma przy 10 zabrakn±æ czasu), a jednak siê zapycha. Gor±c jest, myslenie na 10 % zaledwie...

Trochê nie tak... Niejasno napisa³em "ci±æ", w sensie, pruæ jak nó¿. A do skakania transferu powinno byæ raczej "przycinaæ". Mia³em na my¶li, ze mój lapek, pru³ by pó³ giga, je¶li WARP nie by³by pe³ny i zostawi³ prockowi trochê czasu na ekran (bo co po DMA, jak jako¶ trzeba uk³adom zadaæ, co i gdzie maj± przes³aæ, a tego bez procka raczej siê nie da). Prêdzej mechanika dysku by nie wyrobi³a, bo czas pozycjonera jednak jest skoñczony i tym wiêkszy, im dalej g³owica musi skoczyæ. Zreszt±, w 1541 te¿ wystêpowa³ problem fragmentacji i narastaj±cego przez to czasu transmisji pliku, ale tam sprawa by³a do¶æ prosta i dawa³o siê to pouk³adaæ rêcznie, je¶li kto¶ mia³ sierpliwo¶æ bawiæ siê 664 blokami (albo 1328 dla 1571/1572) i wiedzia³, jak jest skonstruowany system plików. Co do dysku w AT - to dzi¶ by nie poszed³? Nie by³o tak dedykowanych kart do obs³ugi dysku? Czy mówimy o starociach, jak ST225, czy o nowszych, zgodnych raczej z "autobusem"?

Dnia Mon, 18 Jun 2018 01:33:58 +0200, HF5BS napisał(a):

To jest kiepski przyklad. Niby jeden writeln, a srodowisko cale trzeba zainicjowac.

Tymczasem zrodelko Kermita liczy 9MB plikow .c

Musisz je najpierw odchudzic :-)

formatting link

Nosnik IMO bez znaczenia - pewnosc z predkosc komunikacji z napedem nie ma znaczenia. Moze w czasach modemow 300 nie pomysleli, ze 19200 to za wolno, moze w czasach gier po 4-30KB te 19200 wystarczalo, wszak to tylko 15s na duza gre. Transmisja asynchroniczna wymaga zegara ok 16x szybszego - dla 19200 to jest 307kHz - moze nie pasowalo im szybciej robic.

Bardzo sprzetowo ... w kosci UART, bo ten warp to musi cos nowego.

buforuje UART, ale tylko 1 bajt (8251). Przy 9600 te 0.5ms wystarczy

Byly, ale na ISA :-)

Wszysto jedno - interfejs ten sam. AT-bus/IDE to moze jeszcze gdzies sie dzis spotka na plycie glownej. Tylko, ze od lat podlaczony do specjalnego sterownika DMA/bus master.

J.

U¿ytkownik "J.F." <jfox snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news:z37te2gyr0zu$. snipped-for-privacy@40tude.net...

Zobacz na zastrze¿enie w nawiasie na pocz±tku cytatu...

Spoko, Telix zajmuje co¶ ko³o 300 kB, wiêc jak siê za to we¼mie kto¶, kto poobcina narzuty na inicjalizacjê, pierdyliony bibliotek, itd. to na stówe jestem pewien, ¿e jeszcze miejsca zostanie. Poza tym, skoro 6510 ma mo¿liwo¶æ sprzêtowego bankowania pamiêci (do 512k OIDP), to tym bardziej, ale i bez tego IMO powinno siê daæ, tylko wyjdzie w prawdziwym maszyniaku, a nie pseudokodzie. Packet-Radio do C64, program chyba nieco bardziej rozbudowany od Kermita, mie¶ci siê 2 64 i ma jeszcze kawa³ek miejsca na bufory transmisji. A zwa¿, ¿e robi wszystko, nie tylko protokó³, ale i programow± emulacjê modemu. To, co z eteru przychodzi (AX25, to jedynie jest zamieniane na 0 i 1). No, ale program (Digicom jako terminal, Digiprom, jako BBS i terminal (do roli którego bardziej nadaje siê Digicom, jako stabilniejszy).

Mo¿e te¿ taniej by³o i pewniej jednak, w tamtych czasach przypuszczam, pomijano parametr czasowy ustabilizowania siê g³owicy, zmiana jednej warto¶ci w pamiêci pozwala³a zmieniaæ szybko¶æ silnika krokowego, do takiej nawet, ¿e nie by³ w stanie przeskoczyæ, a jedynie smutno brzêcza³. Na tej sztuczce opiera siê dzia³anie programu 1541 Music Composer (nie trafi³em w sieci, ale chyba tak siê nazywa), który podmieniaj±c warto¶æ bajtu, wywo³uje procedurê zmiany ¶cie¿ki, co objawia siê efektem akustycznym:

formatting link
(ta sama melodia, ale pokazane przygotowanie, poza tym, lepiej s³ychaæ)

Ale my¶lisz, ¿e to jest asynchroniczne? Przyznam, ¿e jaki¶ mi umknê³o to rozkminiæ. A mo¿e jaka¶ sztuczka programowa (bo jak siê uprzeæ, to daje siê nawet CRC z WARPem zrobiæ), ¿e cykli na bit bierze siê mniej, obostrzaj±c to tak, ¿e byle odchy³ka i ch** bombki strzela, transmisji nie budiet...? A wtedy, jak cykli mniej, to ilo¶æ danych ro¶nie, kosztem pewno¶ci?

To przecie¿ ISA by³a w pierwszych kompach, wiec w czym rzecz?

ST225 "autobusowy"? Jako¶ mi ta¶ma ³±cz±ca do tego nie pasuje. Pierwsze AT, to od 40 MB widzia³em, nawet "temi rencami" maca³em taki, a nawet pod³±cza³em i dzia³a³, niemi³osiernie zgrzytaj±c pozycjonerem. Ale zawsze pewnie, bez najmniejszych problemów z odczytem. Kurczaczek... korci mnie, zdj±æ mu dekiel, zas³oniæ czym¶ przezroczystym, pofilmowaæ w akcji. Na YT filmy niewiele ukazuj±. Ciekawe, po jakim czasie ten kawa³ek kurzu, co siê dosta³, za³atwi no¶nik...

Mam chyba kilka p³yt z tym.

Hmm... byle dzia³a³o i siê nie sra³o.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required