2,101

(23 odpowiedzi, napisanych Sprzęt - 8bit)

Tak się bawiłem moją XF551 z flopem 3,5" 720kB i ROM-em HyperXF i pomyślałem, że się podzielę wrażeniami z obsługi w tym systemie partycji na dyskietkach, bo działa to bardzo fajnie.

ROM HyperXF pozwala podzielić dyskietkę 720kB na 4 partycje, co działa tak, jak byśmy mieli 4 osobne dyskietki na jednej dyskietce, przy czym możemy używać do wyboru albo wszystkich czterech dyskietek widzianych jako dyskietki w czterech odrębnych napędach, albo też możemy podmapować tylko jedną z tych partycji i mieć po prostu jedną stację z jedną z tych dyskietek.

Żeby z tego systemu skorzystać trzeba najpierw przestawić stację w tryb multi, żeby potrafiła nam podzielić dyskietkę na partycje. Robi się to tak, że włączamy sobie stację bez dyskietki, odpalamy komputer i wyskakuje nam menu od HyperXF. Wciśnięcie klawisza M powoduje przełączenie stacji w tryb multi. Teraz możemy sobie wyłączać i włączać kompa, restartować i cokolwiek z nim robić, a stacja będzie pracowała w trybie multi aż jej znów nie przestawimy inaczej, lub nie wyłączymy jej zasilania.

Testy zacząłem od SpartaDOS X. Pod Spartą stacja ustawiona w tryb multi widoczna jest jako cztery stacje, a dyskietka 3,5" DD podzielona jest tak, że:
- w pierwszej stacji mamy stronę pierwszą od ścieżki 0 do 39,
- w drugiej stacji mamy stronę pierwszą od ścieżki 40 do 79,
- w trzeciej stacji mamy stronę drugą od ścieżki 79 do 40,
- w czwartej stacji mamy stronę drugą od ścieżki 39 do 0.
Tak to wygląda fizycznie na naszej dyskietce, jednak komputer widzi nam tutaj cztery normalne odrębne dyskietki, które możemy sformatować w pojedynczej gęstości na 90kB lub w podwójnej na 180kB.
Formatujemy każdą dyskietkę osobno, zrobiłem to zarówno w formacie Sparty, jak i w formacie Atari i normalnie wszystkie cztery dyskietki śmigają niezależnie.

I teraz tak: jeżeli XF551 mamy ustawioną fizycznie na D1, to dyskietki są widziane jako D1,D2,D3,D4. Natomiast jak fizycznie XF551 przestawimy na inny numer stacji, to numerki się przesuwają do przodu, czyli jak ustawimy np. D3, to nasze cztery dyskietki są jako D3,D4,D5,D6.

Jak już mamy tak przygotowaną poczwórną dyskietkę, to możemy korzystać też z pojedynczo wybranej tylko jednej z nich, nie musimy używać zawsze wszystkich czterech w trybie multi. Do tego służą inne tryby HyperXF. Jeśli chcemy mieć tylko jeden numer stacji i podmontować pod nasz numer stacji tylko jedną z czterech dyskietek, to odpalamy HyperXF bez dyskietki i z menu wybieramy literę A,B,C,D, co spowoduje podmontowanie tylko jednej z partycji jako naszą dyskietkę. Jeśli potrzebujemy tylko pierwszej partycji, to w ogóle nie musimy nic robić, bo jak odpalimy sobie stację, to pierwsza dyskietka jest automatycznie widziana jako jedyna.

Kolejne testy przeprowadziłem z grami całodyskowymi. Można w ten sposób wrzucić sobie cztery niezależne gry całodyskietkowe na jedną dyskietkę. Potrzebny do tego jest oczywiście kopier jakiś sektorowy, ale ja miałem o tyle łatwo, że korzystam z QMEG-a, a on ma taki kopier wbudowany, co więcej korzysta z rozszerzonej pamięci, więc przerzuca sobie w całości dyskietki. Wziąłem sobie cztery gry w formacie atr: Road Race, Bruce Lee, Blue Max i Rescue on Fractalus.
Zrobiłem tak: włączyłem kompa ze stacją bez dyskietki ustawioną jako D1, żeby odpaliło się HyperXF i ustawiłem na tryb multi wciskając klawisz M. Następnie przestawiłem sobie tą stację na D2, żeby mieć swoje cztery partycje pod D2,D3,D4,D5. Teraz podłaczyłem SIO2SD i wybrałem jako D1 obraz dyskietki Road Race. Kopiowanie w QMEG robi się bardzo łatwo: wybieramy 1 (pierwsza stacja), wciskamy R(read) mamy zielony ekran, wciskamy Strat i odczytuje nam się sektorowo cała dyskietka do pamięci. Teraz wciskamy numer stacji, na którą chcemy zapisywać np. 2 i wciskamy W(write) mamy czerwony ekran wkładamy dyskietkę i wcviskamy Start - dyskietka najpierw się sformatuje (tylko w obrębie swojej partycji) i następnie zapisze sektor po sektorze. Operację powtarzamy dla wszystkich czterech dyskietek.
Żeby pograć w wybraną grę, to odpalamy najpierw kompa z włączoną stacją bez dyskietki, wybieramy A,B,C,D w zależności która chcemy grę, wyłączamy kompa, wkładamy dyskietkę, włączamy kompa i startuje nam wybrana gra.

Ogólnie jestem tym systemem zachwycony, więc bardzo polecam wszystkim. Dodam tylko jeszcze, że mając QMEG i HyperXF wszystko co powyżej opisałem działa nam cały czas w systemie turbo i śmiga bardzo szybko. Bajka:-)

2,102

(62 odpowiedzi, napisanych Fabryka - 8bit)

Po odczekaniu na produkcję płytek i po przerwie urlopowej całość dokończyłem.

Mamy nowy wsad, który obsługuje dwa warianty pracy:
- wersję uproszczoną - czyli sam tylko wyświetlacz tracków, bez żadnych bajerów,
- wersję pełną - z dodatkową obsługą przycisków, którymi można zmieniać numer stacji d1,d2,d3,d4

W najprostszej wersji podłączamy tylko podstawową płytkę, na której jest wyświetlacz i mikrokontroler.
Wystarczy podpiąć tylko zasilanie (VCC i GND) i trzy kabelki bezpośrednio ze złacza flopa: TRACK0, STEP, DIR.
Takie podpięcie daje nam działający w pełni wyświetlacz tracków bez dodatkowych bajerów.

Dodatkowo do płytki podstawowej można dopiąć dwie diody LED, które zapalają się sygnalizując pracę górnej i dolnej głowicy.
Żeby to zadziałało, to musimy ze złącza flopa dopiąć jeszcze czwarty kabelek z sygnałem SIDE.

Do tego momentu wyżej opisane rzeczy zadziałają nam z dowolną stacją 3,5" lub 5,25" na złączu shugart/ibm. Czyli nie tylko w XF551, ale również np. w stacjach od Atari ST, Amigi, czy PC.

Idąc dalej możemy jeszcze dopiąć do płytki podstawowej dwa przyciski oznaczone jako lewy i prawy.
Przycisk lewy służy do zmiany numeru stacji d1,d2,d3,d4. Zmiana następuje natychmiastowo i stacja od razu jest przełączona na odpowiedni numerek i tak widziana przez Atari.
Prawy przycisk natomiast służy do zapisania aktualnie wybranego numeru stacji (wyświetlonego na wyświetlaczu) w pamięci EEPROM mikrokontrolera jako numeru domyślnego. Po ponownym włączeniu stacja będzie się zgłaszała nam z tym numerkiem.
Zmiana numeru stacji polega na wystawianiu odpowiedniej kombinacji 00,01,10,11 na dwóch dodatkowych wyjściach z płytki oznaczonych S1 i S2. Żeby nam to działało w XF551, to musimy tutaj podpiąć dwa dodatkowe kabelki, które trzeba doprowadzić do elektroniki XF551 w miejsce dipswitchy/zworek, które trzeba wylutować lub rozłączyć, i zabezpieczyć, żeby nie było możliwości ich zwarcia do przeciwnego stanu niż podawany przez mikrokontroler.

Jeżeli nigdy nie wybieraliśmy numeru stacji i nie zapisywaliśmy go do EEPROM, to wyświetlacz nie będzie nam pokazywał numeru przy starcie i mamy tylko czysty wyświetlacz tracków Taka jest sytuacja początkowa zaraz po zaprogramowaniu mikrokontrolera. Natomiast jeśli już numer stacji wybierzemy i zapiszemy w EEPROM, to zawsze przy włączaniu wyświetlacz pokaże nam aktualny numer stacji przez dwie sekundy na powitanie. Jeżeli nie chcemy mieć tego powitania, to należy włączyć zasilanie trzymając prawy przycisk - powoduje to wykasowanie EEPROM-u, co sygnalizowane jest wyświetleniem się na chwilę 88 i powrót do uproszczonej wersji. W przypadku gdy nie ma ustawionego żadnego numeru stacji dyskietek, to piny S1 i S2 ustawione są tak jak dla stacji d1.

Załączam szereg zdjęć jak to sobie poskładałem u siebie. Stacja NEC 720kB 3,5" z epoki, elektronika to klon XF551 z ROM-em HyperXF, całość zbudowana w obudowie od SF354. Podłużne przyciski dopasowane również z epoki ze starego magnetowidu:-) Jak ktoś chce zobaczyć całość w działaniu, to wrzucam link do filmiku: https://drive.google.com/open?id=14raEa … At2voSyeDg

I teraz tak. Są dwie możliwości zanabycia drogą kupna ode mnie tego cudeńka.

1. Samo PCB - płytka podstawowa, oraz dorzucam płytkę pod przyciski/LED-y, chociaż zaznaczam, że płytka ta była robiona pod indywidualny mój jedyny w swoim rodzaju egzemplarz z przyciskami od magnetowidu - płytka ta druga jest dorzucona gratis, można wykorzystać, nie trzeba.
Koszt samego PCB to 15zł.

2. PCB +gratisowe pcb pod przyciski/LED-y opisane powyżej +zestaw elementów (zaprogramowany Attiny2313, wyświetlacze siedmiosegmentowe, tranzystory, rezystory, kondensatory, goldpiny). Zestaw nie będzie zawierał przycisków, dwóch diod LED, oraz kabelków - są to elementy, które trzeba sobie dobrać pod indywidualnie grzebane swoje jedyne i niepowtarzalne DIY:-)
Koszt takiego zestawu to 45zł.

W obu wariantach koszt wysyłki 9zł poleconym priorytetem, jak ktoś woli, to może być kurierem za 14zł, innych opcji wysyłki nie przewiduję.

Bardzo proszę o zapisy w miarę możliwości kto chce i może to jak najszybciej, bo potrzebuję oszacować ile kupić tych wyświetlaczy, bo ich nie mam, a nie chcę za dużo przestrzelić z ilością. Komplet elementów będę miał w ciągu kilku dni, pod koniec nadchodzącego tygodnia będę mógł realizować wysyłki. Ilość płytek ograniczona, więc kto pierwszy ten lepszy.

Na koniec publikuję kod źródłowy z komentarzami w celach edukacyjnych. W załączniku wrzucam też skompilowany wsad.

/*
 * trackDisplayProg.c
 * rev B
 * Created: 2019-05-19 18:37:50
 * Author : Mq
 */ 

#define F_CPU 1000000L
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/eeprom.h>
#include <util/delay.h>

#define AnL (1<<PA0)
#define AnR (1<<PA1)
#define Leds (1<<PB0)
#define S1 (1<<PD4)
#define S2 (1<<PD5)
#define Btns (1<<PD6)
#define Trk00 (1<<PD0)    // fdd pin 26
#define Dir (1<<PD1)    // fdd pin 18
#define Step (1<<PD2)    // fdd pin 20
#define Side (1<<PD3)    // fdd pin 32

uint8_t Digits[] = {0x81,0xf3,0x49,0x61,0x33,0x25,0x05,0xf1,0x01,0x21,0x43};
                //   0    1    2    3    4    5    6    7    8    9    d

volatile uint8_t Mode = 0;    //0 track; 1 drive
uint8_t DrvNr = 0;
uint8_t DrvNrOld = 0;
volatile uint8_t TrkNr = 0;
volatile uint8_t DisplNr = 0;
uint8_t Autobit = 0;
uint8_t SideTmp = 0b1000;
volatile uint8_t BtnL = 0;
volatile uint8_t BtnR = 0;
volatile uint8_t Led1 = 0;
volatile uint8_t Led2 = 0;
volatile uint16_t LedsOff = 0;

int main(void)
{
    DDRD &= ~(Trk00 | Dir | Step | Side | Btns);    //Trk00,Dir,Step,Side,Btns    0 in
    DDRD |= S1 | S2;                                //numer stacji                1 out
    DDRA |= AnL | AnR;                                //AnL, AnR                    1 out
    DDRB = 0xff;                                    //port B - wyjscia            1 out

    PORTD |= Trk00 | Dir | Step | Side | Btns;        //Trk00,Dir,Step,Side,Btns    1 pull-up
    PORTD &= ~(S1 | S2);                            //numer stacji                0 D1
    PORTA |= AnL | AnR;                                //AnL, AnR                    1 off
    PORTB = 0xff;                                    //port B                    1 off

    DrvNr = eeprom_read_byte( (uint8_t  *) 0x00);
    if (DrvNr>3) { DrvNr = 0; }
        else { DisplNr = 101+DrvNr; }        //ustalenie powitania: nr stacji lub zero jesli nie ustawiono
    DrvNrOld = DrvNr;
    if (DrvNr==1) PORTD |= S2;        //d2
    if (DrvNr==2) PORTD |= S1;        //d3
    if (DrvNr==3) PORTD |= S1 | S2;    //d4

    //int0 - impulsy step
    GIMSK |= (1 << INT0);                    //włącz przerwanie z INT0
    MCUCR=0x02;                                //przerwanie z INT0 wyzwalane zboczem opadającym
    
    //timer1 - multipleksowanie wyswietlaczy
    TCCR1B |= (1 << WGM12);                    //ustaw timer w tryb CTC
    OCR1A = 31;                                //ustaw do ilu liczy timer -1MHz/64=15625(1Hz) -31(500Hz)
    TCCR1B |= ((1 << CS10) | (1 << CS11));    //CS10 włącza timer, CS11 ustawia preskaler na Fcpu/64
    TIMSK |= (1 << OCIE1A);                    //zezwolenie na przerwania dla CTC timer1

    sei();                                    //zezwolenie globalne na przerwania

    _delay_ms(100);                            //czas na sprawdzenie przyciskow
    if (BtnR==1) {                                        //wcisniety prawy przycisk podczas startu
        DrvNr = 0;                                        //d1
        DrvNrOld = 0;                                    //d1
        PORTD &= ~(S1 | S2);                            //d1
        eeprom_write_byte( (uint8_t  *) 0x00, 0xff);    //kasuje eeprom
        DisplNr = 88;                                    //zapalenie wszystkich segmentow wyswietlaczy
        BtnR = 0;
    }
    _delay_ms(2000);                        //wyswietlanie powitania przez 2sek.

    while (1)
    {
        if (SideTmp!=(PIND&Side)) { LedsOff = 3500;    SideTmp = (PIND&Side); }    //uaktywnienie ledow przy zmianie Side
        if (Mode==0) {                                                            //Mode=0 wyswietlanie tracków
            DisplNr = TrkNr;                                                    //wyswietlaj tracki
            if (LedsOff>0 && !(PIND&Side)) { Led1=0;Led2=1; }
            if (LedsOff>0 && (PIND&Side)) { Led1=1;Led2=0; }
            if (LedsOff==0) { Led1=0;Led2=0; }
        }
        if (Mode==1) {                                                            //Mode=1 wybór stacji
            DisplNr = 101+DrvNr;                                                //wyświetlaj nr stacji
            Led1=0;    Led2=0;
            if (BtnL==1) {                                        //lewy przycisk zmiana nr stacji
                if (DrvNr>2) DrvNr=0; else DrvNr++;
                if (DrvNr==0) PORTD &= ~(S1 | S2);                //d1
                if (DrvNr==1) { PORTD &= ~S1; PORTD |= S2; }    //d2
                if (DrvNr==2) { PORTD |= S1; PORTD &= ~S2; }    //d3
                if (DrvNr==3) PORTD |= S1 | S2;                    //d4
                _delay_ms(300); BtnL=0;
            }
            if (BtnR==1) {                                        //prawy przycisk zapis nr stacji w eeprom
                unsigned char i;
                for (i = 0; i < 20; i++)
                {
                    Led1 ^= 1;
                    Led2 ^= 1;
                    _delay_ms(25);
                }
                if (DrvNr != DrvNrOld) { DrvNrOld = DrvNr; eeprom_write_byte( (uint8_t  *) 0x00, DrvNr); }
                BtnR = 0;
            }
        }
        if (BtnL==1 && Mode==0) { Mode = 1; _delay_ms(300); BtnL=0; }    //lewy przycisk mode:zmiana stacji
        if (BtnR==1) BtnR=0;                                            //prawy przycisk nic
    }
}

ISR(INT0_vect)                                //obsluga przerwania z INT0
{
    if (TrkNr<79 && !(PIND&Dir)) TrkNr++;
    if (TrkNr>0 && (PIND&Dir)) TrkNr--;
    LedsOff = 3500;                            //czas do wygaszenia ledow -3500(7sek)
    Mode = 0;
}

ISR(TIMER1_COMPA_vect)    //przerwanie compare timera1
{
    if (TrkNr>0 && !(PIND&Trk00)) TrkNr = 0;    //wyzeruj licznik jesli glowica na track00
    if (LedsOff>0) LedsOff--;                        //odliczaj czas do wygaszenia ledow
    Autobit ^= 1;
    PORTB = 0xff;        //off
    if (Autobit==1)
    {
        PORTA &= ~AnL;    //0 on
        PORTA |= AnR;    //1 off
        PORTB = Digits[DisplNr/10];        //wyswietlenie dziesiatek
        if(Led2==1) PORTB &= ~(Leds);    //dolna glowica
        if(!(PIND&Btns)) BtnL=1;        //przycisk lewy
    }
    else
    {
        PORTA |= AnL;    //1 off
        PORTA &= ~AnR;    //0 on
        PORTB = Digits[DisplNr%10];        //wyswietlenie jednosci
        if(Led1==1) PORTB &= ~(Leds);    //gorna glowica
        if(!(PIND&Btns)) BtnR=1;        //przycisk prawy
    }
}

Potwierdzam, że z tą diodą zadziała tak jak napisał x_angel. Odkryłem ten temat kiedyś jak podpinałem jednocześnie adapter myszy na PS/2 zrobiony na PIC-u i do drugiego portu mój (S)NESctrl. W (S)NESctrl mam wszędzie diody w liniach, a w adapterze myszy dołożyłem też tak samo pod tą linię drugiego przycisku i wszystko śmiga. I tak jak pisał _tzok_ anodą w stronę złącza, katodą w stronę adaptera. Diodę można dać 1N4148, są takie małe w obudowie pod footprint 0805, na pewno da się gdzieś tam wcisnąć w adapterze. Można też dać jakąś diodę Schottkiego, one mają niższy spadek napięcia w kierunku przewodzenia, to stabilniej działa w niektórych Amigach 600/1200, bo niektóre płyty tam mają "słabą masę" na tym pinie od drugiego przycisku i potem może być kłopot czasami - ale jak używasz tego adaptera tylko do Atari, to bez znaczenia, bo w Atari zadziała Ci poprawnie każda dioda w tym wypadku.

2,104

(402 odpowiedzi, napisanych Fabryka - 8bit)

@Sikor, ad.5. miałem na myśli, żeby prowadnice takie po prostu spasowywały carta, nie na wcisk, tylko przy założeniu, że nie ma ani zatrzasków, ani też nie jest na wcisk, tylko po prostu na śrubkę, a prowadnice ewentualnie miałem na myśli w sensie, żeby się ten cart równo zamykał.

@ccwrc, nie rozumiem kwestii psucia estetyki śrubką pod spodem. Przy serii XE śrubka jest pod spodem, więc jej nie widać, a dla XL jest z tyłu więc też jej nie widać. Oryginalny cart miał tam logo Atari, więc faktycznie popsuł by się wygląd, ale obudowy Sikora nie będą miały tego logo, więc cart jak dobrze rozumiem będzie po prostu płaski pod spodem. Wiele cartów miało śrubkę i nawet te oryginalne z epoki z Warner z metalowym spodem też miały taką śrubkę i estetyki to nie psuło.

Jeszcze mnie naszła myśl, że w kwestii nie psujących estetyki śrubek, to mogą one być w takich cienkich zagłębieniach/rurkach jak np. były skręcane joysticki, pady, czy inne plastikowe zabawki - ale to już tak tylko wspominam odbiegając nieco od tematu.

2,105

(402 odpowiedzi, napisanych Fabryka - 8bit)

Faktycznie ccwrc porusza kwestie w słusznych kierunkach. Sikor, ja bym sugerował, żebyś pokonsultował to kilka razy łącznie z wizualizacjami projektów i żebyś robił na bieżąco poprawki i wrzucał na fora biorąc pod rozwagę uwagi wszystkich możliwych ludzi, bo to może mieć i na pewno będzie miało bezpośrednie przełożenie na końcową ilość zainteresowanych osób i być może powodzenie całego przedsięwzięcia...

Ja się osobiście nie znam jakie muszą być zaczepy czy tam śrubki, ale dla mnie ważne jest, żeby dało się to otwierać i zamykać bez popsucia. Jak zatrzaski są problemem, to ja bym optował za zrobieniem zamiast nich tylko prowadnic jakichś wchodzących jedne w drugie, typu jakieś wpusty/wypusty, żeby cart zamknięty się nie rozjeżdżał w boki, dać śrubkę od spodu, żeby wierzchu nie szpeciła i tyle.

Miejsce na naklejkę też jestem za tym, żeby było w rozmiarze takim jak w oryginalnych cartach, żeby dało się np wykorzystać oryginalne naklejki, lub tworzyć nowe w stylu tych starych oryginałów.

2,106

(15 odpowiedzi, napisanych Bałagan)

Słuchajcie, tak wam podpowiem, bo myślę sobie, że gdyby to narysować precyzyjnie w jakimś wektorowym programie, np. w Corelu, to można by takie coś wyciąć w pierwszej lepszej firmie, która robi wycinanki z plexi i kosztowało by to grosze. Robią to różne agencje reklamowe itp, jeśli są nastawieni na większe prace reklamowe, to takie drobiazgi wytną za grosze od ręki. Kiedyś wycinałem sobie na takiej zasadzie fronty do różnych obudów urządzeń elektronicznych, więc pamiętam, że to nie był żaden problem jeśli się robiło ze standardowych powszechnych grubości plexi.
Idąc dalej tym tropem widziałem, że pojawiło się ostatnimi czasy u Chińczyków mnóstwo firm, które robią wycinanki z plexi i to też kosztuje bardzo mało, ale nie pomnę teraz żadnego konkretnego adresu...

Ok, to na samo PCB nie róbcie listy, załatwiam od ręki na PW, natomiast na kit proszę się zapisywać.

Lista na kit (zestaw do samodzielutowania:-)):
1. Artu2tu 2szt.
2.

Ta modyfikacja w zasadzie podmienia tylko standardową pamięć DRAM na SRAM, mapa pamięci i sposób dostępu się nie zmienia.

Candle, nie jestem odkrywcą, nowatorem, ani tym bardziej geniuszem. Jedynie zaprojektowałem PCB do gotowego schematu i zrobiłem kilka sztuk płytek na potrzeby własne, oraz mogę się podzielić pozostałymi. Jak ktoś jest chętny, to mogę również udostępnić pliki Eagle do dowolnego użytku. Dodatkowo zaproponowałem wspólny zakup części, żeby osoby zainteresowane tematem mogły zaoszczędzić na kosztach wysyłek, bo do projektów DIY do retro kompów niestety trudno jest dostać części w jednym miejscu, a kupując w kilku różnych miejscach przepłaca się na wysyłkach. Jeśli jesteś zainteresowany płytkami, albo kompletem części, to zapraszam do współudziału w kosztach. Akcja jest jednorazowa i płytek jest dostępnych niewielka ograniczona ilość.

Lotharek: też jestem daleki od wciągania się w dyskusje poza tematem merytorycznym wątku. Perinoid wspomniał o Twoim produkcie, to napisałem o różnicy względem sygnału EXTSEL, bo na Twojej stronie nie ma o tym mowy, ani płytka będąca tam na zdjęciach nie uwzględnia tego sygnału, a przynajmniej nigdzie tam takiej opcji nie widać, ani opisana nie jest. Zrobiłeś nową wersję, to fajnie, bo ten sygnał warto uwzględnić, zwłaszcza, że jest to proste w implementacji. Dobra robota.

Wątek ma na celu rozpropagowanie sposobu implementacji pamięci statycznej w retro komputerach jako waloru edukacyjnego i stymulowanie dalszych projektów, więc bardzo proszę o ewentualny udział w wątku w tym kontekście. W pozostałych kwestiach nie dyskutuję, jedynie za słówko "zjechany" przepraszam jeśli kogoś uraziłem, może faktycznie było trochę nieeleganckie.

@pancio.net, ale napisałeś że "dwa zestawiki", a na liście że PCB. Samo PCB to nie zestawik, bo to tylko płyteczka jedna mała:-)
Popraw proszę, bo jak chcesz samo PCB, to wystarczy napisać do mnie PW bez żadnych zapisów i jest od ręki. "Zestawiki" natomiast rozumiem jako komplet elementów wraz z PCB, a na to proszę o zapisy, bo wtedy części muszę dopiero zamówić i muszę wiedzieć ile potrzeba jeśli są chętni.

Szczerze mówiąc pomyślałem o tym samym jak brałem się za budowę rozszerzenia i myślałem, że to poprawi kwestię pasków. Jednak u siebie nie zauważyłem wyraźnej różnicy z pamięcią SRAM w stosunku do DRAM. Prędzej poprawę w tym względzie dawała mi wymiana kondensatorów, ale to też różnie. Jak wiadomo każdy egzemplarz ma bardziej lub mniej widoczne te paski. Moim zdaniem tutaj chodzi nie tyle o samą pamięć, tylko o sygnały zegarowe, które pomimo podmiany pamięci nadal nam po płycie przecież biegają.
Mam jeszcze jedną płytę, która z tego co pamiętam chyba dawała bardzo wyraziste paski, postaram się przy wolnej chwili wylutować z niej procesor i sprawdzić pod tym kątem czy na niej zaobserwuję jakąś różnicę.

2,112

(2 odpowiedzi, napisanych Software, Gry - 8bit)

Ja używam i polecam tych, które opisałem pokrótce wraz z informacją skąd je wziąć tutaj: http://www.atari.org.pl/forum/viewtopic … 89#p247789

A tak w ogóle, to spoko, nie widzę problemu: jest sobie produkt Lotharka, niech sobie będzie, myślę, że jedno drugiemu nie przeszkadza. Lotharek robi produkty jakościowo dobre czego też nie neguję, target jak mniemam ma głównie na zachód, a my tu sobie dłubiemy DIY we własnym małym podwórku:-) W zasadzie dobrze też, że wspomniałeś o jego produkcie tutaj, bo faktycznie na forach powinno się ułatwiać trafianie linkami z jednych miejsc w kolejne dotyczące tego samego tematu gdyby ktoś w przyszłości czegoś sobie o tych sprawach szukał.
Moja praca, którą się dzielę w projektach w całości przeze mnie otwarcie udostępnianych ma też podtekst taki, żeby stymulować dalszy rozwój i powstawanie kolejnych projektów innych osób z wykorzystaniem naszej wspólnej wiedzy, którą mam nadzieję dalej pogłębiać.

@perinoid: Raczej nie "ma już", tylko "ma dopiero". Tori zaprojektował to jak wspomniałem już dawno temu. Produkt, który przytoczyłeś jest zjechany współcześnie właśnie ze schematu Toriego, ale nie uwzględnia poprawki dotyczącej sygnału EXTSEL, której Tori już nie opublikował i to w zasadzie jedyna różnica w samym układzie, poza oczywiście faktem, że jest produktem komercyjnym a nie DIY.
Projekt Toriego, jak i moja implementacja od początku ma charakter DIY, nie zamierzam z nikim, ani niczym konkurować, nie będę też tego produkował, ani handlował tym na szeroką skalę, a jedynie jest to akcja jednorazowa, bo chciałem coś takiego sobie zbudować i spopularyzować jednocześnie ten bardzo dobry projekt Torimana w celu udostępnienia go tym, którzy lubią sobie pomajsterkować i pogrzebać w Atari. Dobrałem też elementy takie, które są tanie i łatwe do lutowania i pozwolą na pobawienie się tym we własnym zakresie w domowym zaciszu:-)
W "Fabryce" idea jest też taka, żeby opisać zasadę działania, udostępnić schematy, itd. W wątku pominąłem dokładny opis działania, ale podlinkowałem na początku stronę Toriego, gdzie to wszystko jest dokładnie przedstawione.

Kilka lat temu Toriman zaprojektował układ podłączenia pamięci statycznej SRAM zamiast podstawowych 64kB DRAM. Tori zbudował i uruchomił z sukcesem prototyp oraz opublikował kompletny projekt z opisem działania na swojej stronie: http://raven1.magix.net/static/static.html

Od dawna chodziło mi po głowie zbudowanie wg tego projektu rozszerzenia, które zmieści się w całości pod procesorem, z wykorzystaniem takich elementów, które każdy będzie w stanie samodzielnie polutować sobie w domu. Z rozmów z Torimanem wiem, że udostępnia on projekty do ich budowy w domowym zaciszu w celu propagowania projektów DIY, a więc i ja chciałem dołożyć coś od siebie dla ludzi w tej materii i na podobnych zasadach udostępnić to, co zaprojektowałem. W załącznikach wrzucam więc schemat i wzór płytki pcb.

Moje rozwiązanie bazuje na tanich i póki co dostępnych jeszcze w sprzedaży kościach pamięci W24512AK o pojemności dokładnie 64kB - czyli idealnie tyle ile potrzebujemy. Dodatkowo kość, którą zaproponowałem występuje w obudowie DIP, co tym bardziej powinno ułatwić samodzielny montaż rozszerzenia.
Rozszerzenie wymaga bardzo mało elementów - poza kością pamięci musimy wlutować tylko jeden układ 74HCT00 w wersji smd oraz dwa kondensatory 100nF również w wersji smd i na koniec dwie listwy precyzyjne żeńskie.
Montaż w komputerze również jest bardzo prosty: usuwamy oryginalną pamięć DRAM, wyciągamy procesor z płyty głównej, montujemy w jego miejscu podstawkę jeśli nie mieliśmy, rozszerzenie wpinamy w podstawkę, a procesor w rozszerzenie. Dodatkowo podpinamy/lutujemy dwa kabelki - jeden z nich dostarcza sygnał CASINH, drugi EXTSEL. Na płytce są w tym celu przewidziane miejsca na goldpiny, lub można przylutować po prostu kabelki bezpośrednio do płytki.
W tym miejscu dołożę wyjaśnienie. Na stronie Torimana był przedstawiony schemat pierwotny, który nie uwzględniał jednej dość istotnej rzeczy. Właśnie sygnału EXTSEL. Sygnał ten jest używany w komputerach serii XL na złączu PBI, oraz w serii XE ze złączem ECI. Sygnał ten potrzebny jest jeżeli chcemy podłączyć zewnętrzne urządzenie dostarczające nam z zewnątrz pamięć RAM. Takie zewnętrzne urządzenia odłączają wewnętrzny RAM podpinając się w jego miejsce i do tego właśnie służy linia EXTSEL. Jeżeli nie uwzględnimy tej linii w naszym rozszerzeniu, to nie będzie możliwe wówczas korzystanie np. z zewnętrznych rozszerzeń pamięci, czy też kartridży diagnostycznych zawierających własny RAM.
W każdym razie, opisana tutaj wersja układu zawiera obsługę tej linii, czego implementacja była bardzo prosta i wymagała tylko wykorzystanie jednej nadmiarowej bramki z układu 74HCT00, która w pierwotnym schemacie Torimana pozostawała niewykorzystana, a więc nie trzeba było nawet dokładać ani jednego dodatkowego elementu, a sygnał EXTSEL mamy w razie czego uwzględniony w naszym układzie:-)

Na zdjęciach z testami rozszerzenie jest podłączone na płycie 65XE bez złącza ECI. W wypadku tej rewizji płyty sygnał EXTSEL nie jest używany, a kabelek został podpięty na wyrost, tylko po to, żeby pokazać gdzie się go podpina. W przypadku tej płyty głównej wystarczy podpiąć EXTSEL na rozszerzeniu SRAM bezpośrednio do plusa zasilania. Również w przypadku pozostałych rewizji płyt gdyby nie interesowało nas połączenie EXTSEL i z góry założymy, że nie jest nam ono potrzebne, wówczas możemy też podać tam po prostu plus zasilania. Najprościej definitywnie możemy uzyskać pozbycie się sterowania EXTSEL zwierając podczas lutowania nogę 13 i 14 układu 74HCT00. Na zdjęciach kabelki są podpięte złączkami pomiarowymi, bo przekładałem testowo rozszerzenie do różnych płyt, ale docelowo oczywiście warto te kabelki normalnie porządnie przylutować na płycie i dostosować ich długość elegancko:-)
Opis gdzie podłączyć owe dwa kabelki znajduje się na schemacie.

Ponieważ zamawiając płytki na własny użytek, jak zwykle zamówiłem więcej, więc są u mnie dostępne dla chętnych osób.
Możliwości są dwie: koszt płytki to 15zł (dostępne od ręki), ale jeśli chcecie, to mogę zebrać dodatkowo komplety elementów tworząc kompletne zestawy do samodzielnego montażu. Koszt takiego kompletnego zestawu to było by 45zł.
W obu przypadkach należy doliczyć koszt wysyłki 9zł.
Jeżeli kogoś interesują gołe płytki PCB, to proszę o kontakt na PW, dostępne są od ręki.
Osoby zainteresowane kompletem elementów do samodzielnego montażu proszę zapisać się w wątku na listę na kompletne kity do montażu, żebym wiedział ilu jest chętnych. Jak zbierze się lista, to zamówię elementy, pamięci muszę ściągnąć z Chin, więc czas realizacji to pewnie będzie około miesiąca.

Swój wzór płytek, a także schematy publikuję oraz sprzedaję płytki w porozumieniu i za zgodą Torimana.

Dziękujemy Torimanowi za świetny projekt:-)

Tori, niby tak, ale pamiętaj, że to nie jest tylko układ logiczny na bramkach, w którym wyjścia zmieniają się dynamicznie cały czas reagując na stany pochodzenia od czujników. W stacji jest sobie mikrokontroler, który interpretuje te stany tylko w określonych miejscach swojego programu. Możliwe, że mikrokontroler oczekuje zbocza a nie stanu, wtedy zasyfiony transoptor takiego zbocza nigdy nie wywoła. Ewentualnie od razu po starcie interpretuje, że jest na ścieżce zero, a później już go ten stan nie interesuje, więc dalej wózek sobie jeździ, tylko nie czyta nic z flopa, bo wydaje mu się, że jest na innej ścieżce niż jest w rzeczywistości. Tak sobie gdybam:-)

Podpieram podejrzenia Torimana. Nie znam się na stacjach 5,25" za bardzo w sensie praktycznym, bo takowych nie posiadam, ale ostatnimi czasy dużo bawiłem się tematem track0 w stacjach 3,5" przy okazji czyszczenia i naprawy jednego zabytkowego NEC-a oraz przy okazji konstruowania wyświetlacza tracków. Generalnie jest tak, że stacja 3,5" po włączeniu/resecie zjeżdża zawsze do track0, żeby zadziałał czujnik track0 i wtedy stacja wie na jakiej ścieżce ma głowicę. Później już stacja z tego czujnika nie korzysta, tylko liczy sobie tracki w górę i w dół, więc jak już ustali sobie położenie, to zjeżdżając na track0 nie będzie sprawdzała czujnika, więc nie stuknie w razie jego awarii. Jeżeli w 5,25" jest tak samo (a chyba tak), to ewidentnie kłopot z czujnikiem track0. Z doświadczeń moich z restaurowania NEC-a powiem, że raczej albo jest czujnik uszkodzony, albo jakiś kawałek elektroniki przy nim, albo jest zasyfiony, więc "nie widzi". Może być też kwestia regulacji tego czujnika (jego położenia zgodnego z track0), ale to raczej mało prawdopodobne, bo ten czujnik sam z siebie się raczej nie przestawia, a z doświadczenia też wiem, że jak się go trochę przesuwa w jedną czy drugą stronę, to nie robi różnicy. On nie musi być bardzo precyzyjnie ustawiony, bo głowica porusza się pełnymi krokami i czujnik musi tylko wskazywać czy dany krok jest tym zerowym, a dokładne położenie tego kroku reguluje ustawienie silnika z prowadnicami itd., a nie czujnik.
Inaczej mówiąc czujnik mówi nam tylko czy dany krok jest krokiem zerowym a nie czy jest precyzyjnie ustawiony na ścieżce dyskietki. Natomiast na starcie/resecie/zmianie dyskietki głowica jedzie do uzyskania sygnału z czujnika lub do oporu - stąd stuknięcie jeśli czujnik w porę nie zadziała.

2,118

(402 odpowiedzi, napisanych Fabryka - 8bit)

Fajne porównanie z klockami lego. Było by mega super gdyby obudowę dało się tak składać. Materiał gdyby był porównywalny, to też było by super. Jakiś czas temu przy okazji mojego snesctrl opisywałem komuś wrażenia z grania padem snes w porównaniu z chińskimi zamiennikami, i właśnie pisałem o tym, że pady snes oryginalne są z podobnego plastiku jak klocki lego. To daje zupełnie inne odczucia zarówno wzrokowe, jak i dotykowe, wrażenie o wiele lepszej jakości. Gdyby obudowy cartów dało się zrobić z tak dobrej jakości plastiku, to było by super.

2,119

(402 odpowiedzi, napisanych Fabryka - 8bit)

Jestem za tym, żeby obudowy cartów nowe były porządne i trwałe, a przy tym dobrze by było gdyby były kompatybilne z jakimś standardem i xegs jest świetnym pomysłem. Nowe urządzenia da się wpasować w każdy standard, byle by obudowy były dostępne.

Edit: aha, jeśli to możliwe, to dobrze by było, żeby te obudowy dało się otwierać i zamykać bez obawy uszkodzenia, bo trochę mam obawy o zatrzaski, dobrze by było, żeby wziąć ich trwałość pod uwagę na etapie projektu, żeby się nie okazało, że obudowa za trzy dychy podczas zamykania na dzień dobry pęknie, albo będzie już nie do otwarcia po jednorazowym zamknięciu...

2,120

(402 odpowiedzi, napisanych Fabryka - 8bit)

To ja też dodam swój głos, że gdyby się dało zrobić solidne trzymanie pcb w obudowie bez tego środkowego bolca, to by dało lepsze możliwości projektowania urządzeń. O wiele łatwiej wpasowuje się elementy na pcb jak nie ma takich ograniczeń miejsca. Ale jeśli miało by to być okupione kiepskim trzymaniem się pcb w obudowie, albo trzeszczeniem i gięciem się obudowy, lub jej łatwym uszkadzaniem się, to już wolę żeby sobie tam był ten bolec na środku.

2,121

(402 odpowiedzi, napisanych Fabryka - 8bit)

Zagłosowałem, że cenę podam w komentarzach, bo to trochę zależy od kilku czynników. Na swoje potrzeby jestem zainteresowany kilkoma sztukami takiej obudowy, pewnie od 3szt do 10szt w zależności właśnie od ceny. Przy cenie do 20zł wziąłbym około górnej granicy przedziału, który podałem, ale przy 30zł, to pewnie ze 3szt i odpuszczę.

Natomiast jest jeszcze jeden aspekt: gdyby było tak, że te nowe obudowy będą stale lub cyklicznie dostępne od czasu do czasu, to chętnie zadeklarował bym się, że ewentualne swoje projekty kartridży i urządzeń pod port carta mogę robić pod wymiar tej obudowy, bo na razie robię wszystko pod rozmiar brzydkiej obudowy od Maszczyka, która w dodatku nie jest dobrze spasowana, i w ogóle jest mega gówniana w porównaniu z każdą inną obudową kartridża jakie były kiedykolwiek w produkcji. Obecnie tych obudów używa się chyba tylko dlatego, że nie ma alternatywy.

2,122

(26 odpowiedzi, napisanych Kupię / Sprzedam / Zamienię Atari)

No nie wiem... Ja tą swoją płytkę z implementacją zwykłego 6502 robiłem dla sportu. Na płycie z ECI z pamięciami 4-bit chodziło mi to poprawnie i bez zarzutu. Jednak nie udało się tego odpalić na płycie bez ECI i wywalały się sprity z GTIA, co świadczyło o posypanych timingach. Później jeszcze testowałem ten adapter na 800XL i też miałem te same problemy. Tak że ten adapter to taki raczej eksperyment niż gotowy produkt.

Akurat na olx dostrzegłem coś takiego. Nie znam, nie wiem, po prostu trafiłem, skojarzyłem, to odsyłam, może jakiś tam kontakt się uda nawiązać z osobnikiem:
https://www.olx.pl/oferta/klawiatura-at … 1bdc4a7537

To poczekaj aż perinoid zrobi u siebie i potwierdzi temat, a następnie poproś kogoś ze swojej okolicy o pomoc. W zasadzie jak już temat będzie pewny na 100% i nie będzie wymagał odwracalności naprawy, to wystarczy przeciąć nogę nogę 29 GTIA i zlutować pod spodem płyty pin 29 i 28 przeciągając cynę i robiąc tam po prostu zwarcie między tymi dwoma punktami. Roboty poniżej 30 sekund:-)

@perf: to spróbuj też tej samej metody naprawy i napisz czy pomogło. Skoro jest to w opisie naprawy na atariki i dodatkowo takron27 powyżej potwierdził, że działa, to warto spróbować, to prosta naprawa jest i w razie czego łatwo odwracalna.

Edit: a problem pojawia Ci się po dwóch minutach, bo z tego co zaobserwowałem, to Atari wygrzewa się właśnie kilka minut, a w tym czasie sygnały się stabilizują. Przez tych kilka minut od włączenia, sygnały delikatnie przesuwają się względem siebie w czasie oraz zmieniają się kształty zboczy poszczególnych sygnałów. Po około 10 minutach pracy z tego co zaobserwowałem na kilku Atarkach, już później chodziło wszystko cały czas stabilnie - w sensie że nie następowały już zmiany w sygnałach na płycie.
Generalnie przy różnych rozszerzeniach, które instalowałem na różnych płytach zawsze testuję wszystko tuż po włączeniu zimnego kompa, oraz po wygrzaniu przez co najmniej 10-15 minut. Nie spotkałem się z żadnymi zmianami w stabilności systemu po czasie dłuższym niż kilka minut od włączenia kompa.