Goto page Previous 1, 2, 3, 4, 5, 6, 7, 8, 9 Next
J.F.
Guest
Fri Jun 08, 2018 12:53 pm
Użytkownik "Atlantis" napisał w wiadomości grup
dyskusyjnych:5b1a798a$0$681$65785112@news.neostrada.pl...
On 08.06.2018 12:41, J.F. wrote:
Quote:
Jak chcesz 2400, to trzeba podzielic przez 105 ... i juz nie mozna
najpierw podzielic przez 2.
Jak chcesz 9600 ... to nie z tym kwarcem :-(
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...
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.
Quote:
Tak to jest, gdy kopiuje się rozwiązania z internetu, bez
przeliczenia
na wszelki wypadek...
Albo ... po co jakies 8253 - uzyj DDS :-)
J.
Atlantis
Guest
Sun Jun 10, 2018 7:49 pm
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:
http://wilsonminesco.com/6502primer/RDnotWRnotCkt.jpg
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?
ajt
Guest
Sun Jun 10, 2018 9:31 pm
W dniu 2018-06-10 o 21:49, Atlantis pisze:
Quote:
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?
Może upewnij się, czy wszystko trafia do EPROMu tam gdzie trzeba.
--
Pozdrawiam
Andrzej
www.radom.city
J.F.
Guest
Mon Jun 11, 2018 5:59 am
Dnia Sun, 10 Jun 2018 21:49:04 +0200, Atlantis napisał(a):
Quote:
Udało mi się złożyć prosty komputerek z MOS6502AD. W tej chwili
- dodatkowy chip pamięci RAM, dostępny jako cztery banki po 8kB
- port wyjściowy na 74LS373 do sterowania powyższym
Uzyj ten port do testow
Quote:
Natomiast za nic nie udało mi się uruchomić programu. W EPROM-ie siedzi
w tej chwili coś takiego:
uprosc do
Quote:
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 #$05
STA PA_8255
LDA #$FA
STA PA_8255
JMP LOOP
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.
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.
Atlantis
Guest
Tue Jun 12, 2018 6:06 am
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.
J.F.
Guest
Wed Jun 13, 2018 9:29 am
Użytkownik "Atlantis" napisał w wiadomości grup
dyskusyjnych:5b1f62fe$0$607$65785112@news.neostrada.pl...
Quote:
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.
Dziwne troche.
Co prawda jak pomyliles zasilanie to duzo moglo sie zdarzyc ... ale to
bylo zasilanie 8255 ?
Nie powinno miec wplywu na procesor.
Quote:
Po podmianie na inny egzemplarz MOS6502 wszystko zaczęło działać tak,
jak powinno.
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.
Quote:
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.
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.
Atlantis
Guest
Fri Jun 15, 2018 12:59 pm
On 13.06.2018 11:29, J.F. wrote:
Quote:
To juz trzeci, czy wrociles do pierwszego ?
Jeszcze troche, i seryjna produkcje bedziesz mogl zaczac
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. :)
Quote:
Ale ciekaw jestem co mu sie stalo.
Zegar dzialal po zawieszeniu ? Moze jakies klopoty z kwarcem ?
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.
Quote:
Zaprogramujesz - zrozumiesz czemu 6502 byl kiepski. Choc miejscami
pokazywal zalety.
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ć. ;)
Quote:
A masz jeszcze magnetofon ? Moze lepiej sie skupic na obsludze kart SD ?
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.
J.F.
Guest
Fri Jun 15, 2018 8:37 pm
Dnia Fri, 15 Jun 2018 14:59:58 +0200, Atlantis napisał(a):
Quote:
On 13.06.2018 11:29, J.F. wrote:
Zaprogramujesz - zrozumiesz czemu 6502 byl kiepski. Choc miejscami
pokazywal zalety.
Chodzi mi przede wszystkim o walor edukacyjny, nie praktyczna
użyteczność.
Tu sie objawi walor edukacyjny :-)
Quote:
W końcu mówimy o procesorach, które nawet hardware'owo nie
potrafiły mnożyć i dzielić.
Tu akurat wystarczy +1 i -1
Quote:
A masz jeszcze magnetofon ? Moze lepiej sie skupic na obsludze kart SD ?
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.
Jest jeszcze czym wyslac dane? Taki X-modem, czy Z-modem ...
a moze po prostu .hex tekstowo ?
J.
HF5BS
Guest
Fri Jun 15, 2018 10:00 pm
Użytkownik "J.F." <jfox_xnospamx@poczta.onet.pl> napisał w wiadomości
news:17go5pc3o1ttn.9xezlqt47aii.dlg@40tude.net...
Quote:
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.
Jest jeszcze czym wyslac dane? Taki X-modem, czy Z-modem ...
a moze po prostu .hex tekstowo ?
Idźmy na całość, Kermitem przez telnet
(ach, gdzie te czasy, gdy się tak robiło) :)
--
Łapy, łapy, cztery łapy,
A na łapach pies kudłaty.
Kto dogoni psa? Kto dogoni psa?
Może ty? Może ty? Może jednak ja...?
J.F.
Guest
Fri Jun 15, 2018 10:42 pm
Dnia Sat, 16 Jun 2018 00:00:12 +0200, HF5BS napisał(a):
Quote:
Użytkownik "J.F." <jfox_xnospamx@poczta.onet.pl> napisał w wiadomości
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.
Jest jeszcze czym wyslac dane? Taki X-modem, czy Z-modem ...
a moze po prostu .hex tekstowo ?
Idźmy na całość, Kermitem przez telnet
(ach, gdzie te czasy, gdy się tak robiło)
Kermit calkiem dobry ... i kermit ciagle zyje, a inne programy
upadaja.
Tyle ze kermit sie tak rozrosl, ze posadzic go 6502 bedzie problem.
J.
HF5BS
Guest
Sat Jun 16, 2018 2:48 am
Użytkownik "J.F." <jfox_xnospamx@poczta.onet.pl> napisał w wiadomości
news:zy4n7ncgaqm2.xbrnhp5k64f0$.dlg@40tude.net...
Quote:
Idźmy na całość, Kermitem przez telnet
(ach, gdzie te czasy, gdy się tak robiło) :)
Kermit calkiem dobry ... i kermit ciagle zyje, a inne programy
upadaja.
Tyle ze kermit sie tak rozrosl, ze posadzic go 6502 bedzie problem.
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.
https://www.youtube.com/watch?v=KfDden-V-WE - 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? :)
--
Łapy, łapy, cztery łapy,
A na łapach pies kudłaty.
Kto dogoni psa? Kto dogoni psa?
Może ty? Może ty? Może jednak ja...?
J.F.
Guest
Sat Jun 16, 2018 11:37 pm
Dnia Sat, 16 Jun 2018 04:48:51 +0200, HF5BS napisał(a):
Quote:
Użytkownik "J.F." <jfox_xnospamx@poczta.onet.pl> napisał w wiadomości
Idźmy na całość, Kermitem przez telnet
(ach, gdzie te czasy, gdy się tak robiło)
Kermit calkiem dobry ... i kermit ciagle zyje, a inne programy
upadaja.
Tyle ze kermit sie tak rozrosl, ze posadzic go 6502 bedzie problem.
Ale tak że 1200 to może?
Mnie o rozmiar pamieci chodzi.
Quote:
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

...
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 :-(
Quote:
ZTCP. C64, oparty na 6502, może max wyciągnąć 2400, własnymi możliwościami.
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.
Quote:
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.
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.
Quote:
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.
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.
HF5BS
Guest
Sun Jun 17, 2018 11:33 pm
Użytkownik "J.F." <jfox_xnospamx@poczta.onet.pl> napisał w wiadomości
news:1t06y4d7b4btn$.1e8lpn3n2yuno.dlg@40tude.net...
Quote:
Ale tak że 1200 to może? :)
Mnie o rozmiar pamieci chodzi.
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.
https://en.wikipedia.org/wiki/Punter_(protocol)
(dostawić nawias w adresie, jeśli wyrzuci brak strony)
Quote:
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

...
A tu mamy 64KB RAM+ROM.
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.
Quote:
No i to byly zlote czasy dla modemow, a teraz ... a co to jest modem ?
Juz nawet nie pamietam kiey ostatni raz uzywalem :-(
ZTCP. C64, oparty na 6502, może max wyciągnąć 2400, własnymi
możliwościami.
O ile pamietam, to stacja dyskow byla na laczu szeregowym, i dawala
sie przeprogramowac na 19200, bo normalnie to byl tragicznie wolna
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ć.
Quote:
ten procesor robi ok 1 MIPS, to mamy ok 500 rozkazow na bajt - az za
duzo, wiec to nie koniec mozliwosci.
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.
Quote:
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.
Ktore ma sprzetowy rejestr i w koncu mamy 80 cykli na bajt.
Ale jakoś trzeba do tego rejestru wpisać... Nie pamiętam teraz, na ile
sprzętowo.
Quote:
No chyba, ze nie ma, i czysto programowo wachlujemy jednym bitem?
Ja podejrzewam, ze jednak jest to coś takiego. Inaczej część zabaw
niskopoziomowych, nie musiała by być robiona na fabrycznej prędkości
transmisji.
Quote:
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.
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...
Quote:
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.
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
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"?
--
Łapy, łapy, cztery łapy,
A na łapach pies kudłaty.
Kto dogoni psa? Kto dogoni psa?
Może ty? Może ty? Może jednak ja...?
J.F.
Guest
Mon Jun 18, 2018 6:34 am
Dnia Mon, 18 Jun 2018 01:33:58 +0200, HF5BS napisał(a):
Quote:
Użytkownik "J.F." <jfox_xnospamx@poczta.onet.pl> napisał w wiadomości
Ale tak że 1200 to może?
Mnie o rozmiar pamieci chodzi.
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ć.
To jest kiepski przyklad. Niby jeden writeln, a srodowisko cale trzeba
zainicjowac.
Tymczasem zrodelko Kermita liczy 9MB plikow .c
Musisz je najpierw odchudzic :-)
http://www.kermitproject.org/
Quote:
ZTCP. C64, oparty na 6502, może max wyciągnąć 2400, własnymi
możliwościami.
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.
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.
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.
Quote:
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.
Ktore ma sprzetowy rejestr i w koncu mamy 80 cykli na bajt.
Ale jakoś trzeba do tego rejestru wpisać... Nie pamiętam teraz, na ile
sprzętowo.
Bardzo sprzetowo ... w kosci UART, bo ten warp to musi cos nowego.
Quote:
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.
I tak bez buforowania? Bo niby nie ma tu tak dużo (że ma przy 10 zabraknąć
czasu), a jednak się zapycha.
buforuje UART, ale tylko 1 bajt (8251). Przy 9600 te 0.5ms wystarczy
Quote:
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
Co do dysku w AT - to dziś by nie poszedł? Nie było tak dedykowanych kart do
obsługi dysku?
Byly, ale na ISA :-)
Quote:
Czy mówimy o starociach, jak ST225, czy o nowszych, zgodnych
raczej z "autobusem"?
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.
HF5BS
Guest
Tue Jun 19, 2018 6:15 pm
Użytkownik "J.F." <jfox_xnospamx@poczta.onet.pl> napisał w wiadomości
news:z37te2gyr0zu$.1nz23qznmb8s8.dlg@40tude.net...
Quote:
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ć.
To jest kiepski przyklad. Niby jeden writeln, a srodowisko cale trzeba
zainicjowac.
Zobacz na zastrzeżenie w nawiasie na początku cytatu...
Quote:
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).
Quote:
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.
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.
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:
https://www.youtube.com/watch?v=5gnMgmlKi_o
https://www.youtube.com/watch?v=ZR454sxi27o (ta sama melodia, ale pokazane
przygotowanie, poza tym, lepiej słychać)
Quote:
Transmisja asynchroniczna wymaga zegara ok 16x szybszego - dla 19200
to jest 307kHz - moze nie pasowalo im szybciej robic.
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?
Quote:
Co do dysku w AT - to dziś by nie poszedł? Nie było tak dedykowanych kart
do
obsługi dysku?
Byly, ale na ISA
To przecież ISA była w pierwszych kompach, wiec w czym rzecz?
Quote:
Czy mówimy o starociach, jak ST225, czy o nowszych, zgodnych
raczej z "autobusem"?
Wszysto jedno - interfejs ten sam. AT-bus/IDE to moze jeszcze gdzies
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...
Quote:
sie dzis spotka na plycie glownej.
Mam chyba kilka płyt z tym.
Quote:
Tylko, ze od lat podlaczony do specjalnego sterownika DMA/bus master.
Hmm... byle działało i się nie srało.
--
Łapy, łapy, cztery łapy,
A na łapach pies kudłaty.
Kto dogoni psa? Kto dogoni psa?
Może ty? Może ty? Może jednak ja...?
Goto page Previous 1, 2, 3, 4, 5, 6, 7, 8, 9 Next