Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Mikrokomputer COBRA 1

coberr 01 Jan 2020 09:33 201984 1048
Texa Poland
  • #601
    Atlantis86
    Level 19  
    Również próbuję obecnie złożyć swoją Cobrę, w oparciu o PCB DIP v3.0.
    Natknąłem się na pewien problem. Mianowicie początkowo nie mogłem wcale uruchomić generatora sygnału zegarowego - wyjście pozostawało martwe. Nie jestem pewien co było powodem, ponieważ chcąc zminimalizować ryzyko oderwania ścieżek, przed wylutowaniem podejrzanych elementów (filtr ceramiczny, T102, C107 i C108) zniszczyłem je, aby móc po prostu wyciągnąć wyprowadzenia. Po wlutowaniu nowych elementów generator ruszył. Tak jakby...

    Jak widać na załączonym obrazku sygnał zegarowy jest niejednorodny. Mamy serie krótkich impulsów, rozdzielone dłuższymi. Długość krótkich impulsów odpowiada częstotliwości 6 MHz, długich 4 MHz. Do pomiaru został wykorzystany tani, chiński analizator stanów logicznych na USB.

    W miejscu filtra ceramicznego wlutowałem gniazdo (kawałek listwy precyzyjnej) tak więc jestem w stanie podmieniać filtry na inne egzemplarze. Efekt występuje na każdym z nich. Niestety wszystkie pochodzą z jednej serii, od jednego producenta. Opis na obudowie to "SFM 6.5 MB"

    Niestety w chwili obecnej nie mam dostępu do cyfrowego oscyloskopu - mój stary analogowy pokazuje sygnały jak na poniższych obrazkach - o wiele bardziej regularne, ale dalekie od prostokątnej charakterystyki. Dokładnej częstotliwości tym oscyloskopem niestety nie określę.

    Wyjście wideo nie pokazuje menu. Zamiast tego na ekranie widzę regularną siatkę złożoną z kropek z których część pulsuje. Nie wiem czy jest to związane z kwestią sygnału zegarowego, czy też mam inną, niezwiązaną z nim usterkę.
  • Texa Poland
  • #602
    andrzejlisek
    Level 28  
    Założyłem repozytorium na GitHub https://github.com/andrzejlisek/Cobra1, umieściłem opis, kod źródłowy i skompilowaną aplikację wraz z podstawowymi obrazami pamięci.
    W samym emulatorze dodałem możliwość podawania dowolnych plików ROM, generatora i RAM, bo podmienianie plików jest karkołomne. Po uruchomieniu emulatora należy wcisnąć F9 i tam wskazać odpowiednie pliki, a potem wyzerować klawiszem F8.
    Oprócz tego, dodałem możliwość wprowadzania znaków w trybie klawiatury PC. W tym celu należy wcisnąć ESC i pod klawiaturą wybrać z listy "PC", wtedy są uwzględniane wielkie i małe litery (zmiana wielkości następuje poprzez naciśniecie SH+T, jednak w tym trybie dzieje się to automatycznie), a znaki specjalne są wpisywane wprost za pomocą klawiszy wprowadzających te znaki na PC, działają również klawisze strzałek. Oprócz tego klawisz "`" zmienia wielkość liter (wysyła samo polecenie SH+T) na wypadek, gdyby zamiast małych liter wpisywały się wielkie i na odwrót, klawisz "\" emuluje wciśnięcie klawisza SH (w trybie PC wciśnięcie samego klawisza Shift bez innego klawisza nie daje żadnego skutku w emulatorze). Dodatkowo znaki "{" i "}" odpowiadają naciśnięciom kombinacji SH+W ("CTR") i SH+P ("CLS").
  • #603
    Atlantis86
    Level 19  
    Mały update. Moja Cobra-1 także już działa. Okazuje się, że winę za poprzednie problemy ponosił drobny błąd montażowy.

    Teraz zabrałem się za dodawanie modyfikacji. Na pierwszy ogień poszedł adapter DIP40-PLCC44 dla procesora Z80. Pozwala on na dodanie przełącznika do wybierania częstotliwości taktowania procesora, pomiędzy 3,25MHz oraz 6,5MHz. Początkowo testowałem go za pomocą procesora Z80B w wersji NMOS, wyprodukowanego przez ST - tylko taki miałem pod ręką. Komputer działał, jedyną zauważalną niedogodnością było lekkie "szarpanie" obrazu w menu przy szybszym taktowaniu.

    Ponieważ Z80B był w tym układzie lekko przetaktowany (nominalnie pracuje do 6 MHz) zamówiłem CMOS-ową wersję Z84C0008VEC, mogącą pracować do 8 MHz. Tutaj jednak pojawił się problem - komputer startuje, manu się wyświetla, ale jego praca potem jest niestabilna. Nie mogę na przykład uruchomić BASIC-a, zamiast niego wyświetla się pusty ekran albo losowe znaki. Gry (przynajmniej kilka tych, które testowałem) startują.

    Efekt ten pojawiał się na dwóch przetestowanych egzemplarzach Z84C0008VEC, zupełnie ustąpił natomiast po powrocie do Z80B w wersji PLCC lub Z80A w obudowie DIP.

    Jakiś pomysł co do możliwej przyczyny?
  • #604
    andrzejlisek
    Level 28  
    Możliwą przyczyną może być to, że jak procesor ustawia adres pamięci i komendę (odczyt lub zapis), to któraś linia jest ustawiana zbyt późno lub zbyt krótko i tu powstaje problem z zapisem bądź odczytem wartości. Pewnie są jakieś różnice w sterowaniu tymi liniami przy różnych wersjach procesora.

    Ponieważ są to pamięci S-RAM, to mogę zaproponować testy odczytu i zapisu.

    Program napisany w C na Z80 można skompilować za pomocą darmowego kompilatora SDCC. Napisz program, który generuje pewien ciąg bajtów, który wygląda jak losowy, ale można ten ciąg powtórzyć. Niech program wypełni tym ciągiem całą pamięć RAM, a potem wygeneruje drugi raz ten sam ciąg i porówna z zapisanym. Możesz próbować różne wielkości ciągu i różne tempo zapisu i odczytu. Jeżeli stwierdzisz nieprawidłowości lub sam program testujący nie będzie działać prawidłowo (bo każdy program do swojego działania również potrzebuje pamięci RAM), to znaczy, że w działaniu pamięci RAM lub w ustawianiu pinów wyjściowych Z80 jest jakiś problem. Można próbować zamieniać miejscami moduły S-RAM i obserwować czy są różnice.
  • Texa Poland
  • #605
    sq2bvn
    Level 15  
    Witam,
    uruchomiłem swój egzemplarz Cobra1.

    Obecnie przygotowuję obudowę.

    Czy ma ktoś może dokładne współrzędne?

    Konkretnie interesują mnie:
    - rogów płytek;
    - otworów montażowych;
    - rozmieszczenie osi gniazd.


    Moja modyfikacja to zastąpienie generatora z rezonatorem ceramicznym FCM 6,5 na generator kwarcowy 13MHz z dzielnikiem przez 2 na 74LS74.
    Mój FCM wzbudził się na 7,1MHz i to powodowało problemy z synchronizacją obrazu. 13 MHz / 2 daje dokładnie 6,5 MHz. Nie znalazłem na 6,5 MHz ani rezonatora kwarcowego ani generatora kwarcowego.

    Mikrokomputer COBRA 1
  • #606
    coberr
    Level 19  
    miło widzieć, że jeszcze znajdują sie entuzjaści chętni do budowy tego komputerka :)

    co do współrzędnych - wydaje mnie się , że raczej nic takiego nie istnieje - w zasadzie każda cobra budowana jest w raczej odmiennym stylu i nie ma jakiejkolwiek unifikacji :)

    Jednak jesli budowałes cobre na bazie płyty Zdziska - to chyba będzie w stanie On w stanie pomóc i podać wymiary prosto z programu. jesli jest to innapłyta - trzeba będzie mierzyć.

    CO do tego zegara - czy mozesz opisac - jak podłączone zostało wyjscie 7474 do wejscia CLK z80? czy jest to podłączenie bezpośrednie - czy są tam dodane jakieś elementy? Z80 posiada rygorystyczne wymogi co do poziomów sygnału CLK. stąd moje pytanie. (również jaka seria 7474?)
    Jesli seria TTL/ LS - to wymagany przynajmniej jakiś rezystor 220-330ohm do VCC.

    Z rezonatorami 6.5MHz jest obecnie dośc ciężko - nalezy pytać raczej w wieloletnich serwisach RTV.
    Najbardziej dostępne są chyba obecnie kwarce 26MHz -co w połączeniu z dwoma sekcjami 7474 w zupelnosci wystarczy.

    śmietnik w oryginalnej cobrze zawsze będzie - zwłaszcza podczas scrollowania ekranu. wynika to z zależnosci czasowych -na cykle zapisu/ odczytu pamieci VRAM bardzo skutecznie "wcina się" Z80.
  • #607
    sq2bvn
    Level 15  
    coberr wrote:
    miło widzieć, że jeszcze znajdują sie entuzjaści chętni do budowy tego komputerka :)


    Quote:
    co do współrzędnych - wydaje mnie się , że raczej nic takiego nie istnieje - w zasadzie każda cobra budowana jest w raczej odmiennym stylu i nie ma jakiejkolwiek unifikacji :)



    Quote:
    Jednak jesli budowałes cobre na bazie płyty Zdziska - to chyba będzie w stanie On w stanie pomóc i podać wymiary prosto z programu. jesli jest to innapłyta - trzeba będzie mierzyć.


    Mam płytkę prawdopodobnie robioną przez Zdziska w wersji DIP v2. Kawał dobrej roboty. Wymagała jedynie przecięcia 3 ścieżki. Zrobiłem to frezarką CNC frezem stożkowym. Nawet nie ma znaku po korekcie.

    Mikrokomputer COBRA 1Cobra1 DIP...na PCB.png Download (1.28 MB)

    Sprzedał mi ją na Allegro użytkownik CA80, ale nie ma z nim kontaktu. Nie odpisuje na maile przez Allegro, nie ma kogo zapytać o takie szczegóły. Telefon w mailu z aukcji również nieaktualny. Liczyłem, że to właśnie ten CA80 ma projekt w jakimś EDA tej płytki i mi elegancko spisze gdzie co jest. Wówczas zaprojektowana blacha w SolidWorks ładnie będzie spasowana, a przy założeniu, że użyję prasy i lasera w procesie możliwe byłoby wyprodukowanie większej ilości takich obudów. Które można by odsprzedać innym składaczom Cobra1 w przyszłości

    Mogę też z natury wyznaczyć pozycję elementów mechanicznych ale to będzie zawsze ryzyko, że popełni się dodatkowe błędy. Płytka może mieć swoje błędy wykonania, które dodadzą się do moich błędów i ostatecznie będzie trudniej dopasować kolejne wykonania płytek z tego samego wzoru. Jestem obecnie na etapie rozwoju pt. robienie całych wyrobów, więc Cobra1 będzie kolejnym projektem treningowym. Zamierzam ją wykonać jakby fabrycznie, z dokumentacją i możliwością przekazania do fabryki - do mnożenia.


    Quote:
    CO do tego zegara - czy mozesz opisac - jak podłączone zostało wyjscie 7474 do wejscia CLK z80? czy jest to podłączenie bezpośrednie - czy są tam dodane jakieś elementy? Z80 posiada rygorystyczne wymogi co do poziomów sygnału CLK. stąd moje pytanie. (również jaka seria 7474?)
    Jesli seria TTL/ LS - to wymagany przynajmniej jakiś rezystor 220-330ohm do VCC.


    Wyjście przerzutnika D (dodatkowego SN74LS74) w konfiguracji do podziału przez 2 połączone jest z wejściem inwertera IC15(końcówka 5). Tak więc CPU dostaje sygnał zegarowy tym samym sposobem jak poprzednio. Kondensator C107 wylutowałem i tym samym generator na filtrze piezoceramicznym FCM6.5 przestał pracować i nie przeszkadza. Później mogę namalować obrazek jak to było zrobione.

    Quote:
    Z rezonatorami 6.5MHz jest obecnie dośc ciężko - nalezy pytać raczej w wieloletnich serwisach RTV.
    Najbardziej dostępne są chyba obecnie kwarce 26MHz -co w połączeniu z dwoma sekcjami 7474 w zupelnosci wystarczy.


    Właśnie w Warszawie znalazłem sklep z generatorem 13 MHz w dobrej cenie i małej obudowie więc zastosowałem te 13 MHz. 26 MHz też rozważałem, ale nie było w łatwym zasięgu.

    Mikrokomputer COBRA 1MWSnap2...png Download (33.05 kB) Mikrokomputer COBRA 1MWSnap2...png Download (9.31 kB)

    Quote:
    śmietnik w oryginalnej cobrze zawsze będzie - zwłaszcza podczas scrollowania ekranu. wynika to z zależnosci czasowych -na cykle zapisu/ odczytu pamieci VRAM bardzo skutecznie "wcina się" Z80.



    To wiadomo. Ale ja myślę o wrzuceniu aplikacji dla krótkofalowców i pokazaniu tego na zjeździe technicznym w BurzeninieLink. W którym roku - nie wiem - czas pokaże - czasu mało. Wizja jest taka by Cobra1 obsługiwała emisję RTTY (dalekopis) oraz telewizję wolnoanalizowaną SSTV (to może z układem dźwiękowym). Dodatkowo można spróbować nauczyć Cobrę1 nadawać i odbierać telegrafię, czyli emisja CW. Można też pomyśleć o emisji HELL, która jest idealna dla komputerka z semigrafiką. Można by też pokombinować z Packet Radio oraz układem FX614... Emisja PSK8 też by się przydała, ale obawiam się, że Z80 może nie dać rady. Wyobraź sobie ten hit, gdy pojawi się stacja obsługiwana przez historyczny komputer!
    Przy takich aplikacjach nie scroluje się za wiele - więc Cobra1 da radę! Zrobi się jakiegoś cartridge''''a albo coś - wyjdzie w praniu. Pamięci EPROM pod dostatkiem jest na rynku... można się bawić do bólu.
  • #608
    coberr
    Level 19  
    Ciekawa droge przeszła ta płyta . Napisz do Zdziska - nie powinno byc problemow z wymiarami.
    Jednak obudowa obudową - pamietaj ze każda klawiartura do cobry to totalna rzeźba :)
    co do schematu - musze odnaleźć Zdziska schematy i przypomniec sobie co i gdzie tam było - wtedy sie ew. bede w stanie wypowiedzieć.
    a co do zastosowan w krotkofalarstwie to piekna sprawa - spokojnie da rade przy CW, RTTY i nie wiem czy SSTV. (nie analizowałem:P)
    Zresztą na spectrum byly chyba programy nawet.
    skoro spectrum dało rade to i cobra powinna :)
  • #609
    andrzejlisek
    Level 28  
    Zastosowanie Cobry w krótkofalarstwie to super pomysł. Co do wyświetlania graficznego, na przykład Hellschreiber lub SSTV, to warto wiedzieć, że na standardowym generatorze znaków można wyświetlić grafikę o rozdzielczości 64x72 (jeden znak zapewnia 6 pikseli).

    Przy używaniu alternatywnych lub przełączanych generatorów znaków można otrzymać 4 rozdzielczości: 32x192, 64x96, 128x48 i 256x24. Każdy znak można podzielić na 8 elementów na 4 sposoby i otrzymuje się 256 różnych kombinacji. Oczywiście w takim przypadku nie można jednocześnie wyświetlać tekstu i grafiki. Można natomiast próbować dzielić znak na 6 pikseli, ale w poziomie (64 znaki ze standardowego zestawu, ale obrócone o kąt prosty), wtedy zamiast rozdzielczości 64x72 dostaje się rozdzielczość 96x48.

    Co prawda nie wyświetli się odcieni szarości, jedynie będzie kolor czarny i biały, ale można próbować wprowadzić funkcję zmiany progu i w czasie odbioru transmisji Hellschreiber zmieniać ten próg tak, żeby tekst wyświetlał się jak najlepiej.
  • #610
    sq2bvn
    Level 15  
    Quote:
    Co do wyświetlania graficznego, na przykład Hellschreiber lub SSTV, to warto wiedzieć, że na standardowym generatorze znaków można wyświetlić grafikę o rozdzielczości 64x72 (jeden znak zapewnia 6 pikseli).


    Hellschreiber - nadawanie i odbiór. CW nadawanie. Do tego chyba mam jakieś źródło na inne maszyny pisane w C więc może da radę coś poprzerabiać i skompilować w SDCC na Z80. W wolnym czasie rozejrzę się które źródełka nadają się do zaadaptowania. A może nawet wrzuciłoby się źródło Cobrowe do repo by później ktoś mógł to ulepszyć...
  • #611
    Atlantis86
    Level 19  
    Jeśli mowa o obudowach... Ktoś z was mógłby polecić jakąś fabryczną obudowę - metalową lub z tworzywa - do której dałoby się zapakować płytkę Cobry-1 w wersji DIP v3? Obszedłem wszystkie sklepy, przejrzałem oferty najpopularniejszych sklepów internetowych i niczego sensownego nie widzę. Może za wyjątkiem TME, gdie faktycznie można znaleźć jakieś highendowe obudowy z aluminium, w zaporowych cenach. :)

    I druga sprawa: gdzie można kupić gniazdo kartridży do Cobry? Jak ono się w ogóle nazywa? Czego szukać? ;)
  • #612
    sq2bvn
    Level 15  
    Quote:
    Ktoś z was mógłby polecić jakąś fabryczną obudowę - metalową lub z tworzywa - do której dałoby się zapakować płytkę Cobry-1 w wersji DIP v3?


    Mam ten sam problem. Ja pracuję w fabryce gdzie do sprzętu elektronicznego robi się również obudowy od 0. Tak więc doświadczenie jest. Spróbuję zaprojektować fajną obudowę zarówno do Cobra1 jak i cartridge oraz przystawek (np. interfejs SSTV). Za materiały muszę zapłacić i muszę mieć zlecenie na 500PLN. Mniejszego zlecenia nie przyjmą bo maszyn CNC nie opłaca się przestawiać na inną pracę (laser i prasa do gięcia). Tak więc obudów będzie kilka i mogę ci odsprzedać taką obudowę. Nie będzie super tanio, ale wszystkie otwory, kołki montażowe razem z gwintowaniem i malowaniem będą.


    Ja chciałem robić obudowę na drukarce 3D, ale to średni pomysł. Obudowa z drukarki to raczej do cartridge będzie dobra, do samej jednostki centralnej to jednak z metalu i malowana proszkowo będzie lepsza...


    Quote:
    gdzie można kupić gniazdo kartridży do Cobry? Jak ono się w ogóle nazywa?


    Ja mam takie złącze. Wybrałem wersję 50pin oczywiście. Link
    Mikrokomputer COBRA 1
  • #613
    sq2bvn
    Level 15  
    Jakiego typu gniazdo kątowe RCA zostało użyte w płytce Zdziśka? Próbuję po obrazkach ustalić jaki to typ, ale bez sukcesów... :(
  • #614
    Atlantis86
    Level 19  
    sq2bvn wrote:
    Jakiego typu gniazdo kątowe RCA zostało użyte w płytce Zdziśka? Próbuję po obrazkach ustalić jaki to typ, ale bez sukcesów... :(


    Takie. :)
  • #615
    sq2bvn
    Level 15  
    Atlantis86 wrote:
    sq2bvn wrote:
    Jakiego typu gniazdo kątowe RCA zostało użyte w płytce Zdziśka? Próbuję po obrazkach ustalić jaki to typ, ale bez sukcesów... :(


    Takie. :)


    Serdecznie dziękuję. Przy okazji wyjazdu do Warszawy zabiorę PCB i odwiedzę sklep :) Będzie komplet komponentów.
  • #616
    zdzis_ek
    Level 16  
    Witam !

    Zostań w domu.

    Dla tych, którzy uruchomili Cobre1 z moimi modyfikacjami i korzystają z gniazda
    cartridge z wsadem 7C, lub z emulatora, podaję kilka sposobów ominięcia części plansz w tej grze.

    Zamiast naciskania klawisza "S" - Start, można nacisnąć klawisz - "M".
    Wówczas zgłosi się program monitora cobra1.

    Wpisując polecenie G:F070 - uruchamiamy grę od planszy nr 1, czyli jak wybranie klawisza "S",

    Wpisując polecenie G:F140 - startujemy od planszy nr 8,

    Wpisując polecenie G:F1F0 - startujemy od planszy nr 19,

    Wpisując polecenie G:F2A0 - startujemy od planszy nr 34,

    Wpisując polecenie G:F310 - startujemy od planszy nr 40.

    Z racji tej, że jestem w grupie wiekowej nie rokującej optymistycznych przewidywań na obronę przed tą zarazą, przesyłam krótki filmik.





    Pozdrawiam
  • #617
    sq2bvn
    Level 15  
    Cobra1 działa super. Jak nie pokona mnie bakcyl to dorobię obudowę i będziemy działać. Mam też poszukane źródła do aplikacji dla radioamatorów - czekam na części od Chińczyka :)
  • #618
    sq2bvn
    Level 15  
    Czy istnieje repozytorium źródeł do gier i softu do Cobra1? Żeby np. można było sobie dodać kolejne poziomy?
  • #619
    sq2bvn
    Level 15  
    Witam,
    mam pytanie do użytkownika zdzis_ek.
    Jakie są współrzędne otworów montażowych na płytce COBRA1?
    Robię projekt obudowy i chciałbym uniknąć błędów pomiaru pozycji.
    Pozdrawiam, Mariusz
  • #620
    andrzejlisek
    Level 28  
    sq2bvn wrote:
    Czy istnieje repozytorium źródeł do gier i softu do Cobra1? Żeby np. można było sobie dodać kolejne poziomy?

    Repozytorium gier nie ma (przy najmniej ja o nim nie wiem), jedynie w tym wątku mogą przewijać się źródła niektórych. Natomiast jest repozytorium źródeł samego emulatora. https://github.com/andrzejlisek/Cobra1 Ostatnio jest poprawione funkcjonowanie emulatora w systemie Linux. Jeżeli ktoś chce dołączyć do projektu, to proszę pisać.
  • #621
    sajmosia
    Level 16  
    Tak sie sklada, ze mam jedna taka plytke i otworow mocujacych na niej jest siedem. Przyjmujac, ze punkt 0,0 jest w lewym dolnym rogu, ponizej sa pozycje otworow. Ale to Zdzisiek bedzie musial potwierdzic...











    MilimetryΦ 3.175CaleΦ 0.125
    XYXY
    5.715142.5580.2255.6125
    78.423140.3353.08755.525
    244.158142.5589.61255.6125
    5.7155.7150.2250.225
    63.56.352.50.25
    141.6056.355.5750.25
    244.1585.7159.61250.225
  • #622
    sq2bvn
    Level 15  
    Odnośnie emulatora COBRA1 na PC, przetestowałem go. Program wykonuje nieprawidłową operację po załadowaniu pliku BIN od Zdziśka. Nie bardzo rozumiem czemu tak się dzieje...
  • #623
    andrzejlisek
    Level 28  
    sq2bvn wrote:
    Odnośnie emulatora COBRA1 na PC, przetestowałem go. Program wykonuje nieprawidłową operację po załadowaniu pliku BIN od Zdziśka. Nie bardzo rozumiem czemu tak się dzieje...


    Czy wraz ze zmianą pliku BIN przeedytowałeś lub podmieniłeś plik LST odpowiednio do tego pliku BIN?

    Jeżeli nadal występuje problem, to podaj numer postu z plikiem BIN, którego próbujesz uruchomić, żebym wiedział, który konkretnie plik BIN testujesz. Emulator nie jest odporny na nieprawidłowości w plikach pamięci i generatora znaków.
  • #625
    andrzejlisek
    Level 28  
    sq2bvn wrote:
    Jak powinno wyglądać drzewo? U mnie jest tak:



    Czy jest gdzieś opisany plik *.lst?


    Na Twoim screenie nie widzę pliku *.lst, jak nie ma to tym bardziej emulator nie będzie działać. Może masz starsza wersję z tego wątku, wcześniej nie był używany ten plik. Pobierz plik cobra1.lst z https://github.com/andrzejlisek/Cobra1/tree/master/bin a następnie dokonaj odpowiedniej modyfikacji. Przypominam, że ma być 256 linii, pierwsza liczba to pierwszy bajt tego pliku, który rozpoczyna dany bank pamięci, a druga liczba (liczby rozdzielone tabem, obie liczby zapisane w systemie hex) to liczba bajtów tego banku (zazwyczaj wszystkie banki są tej samej wielkości). Jak dobrze pamiętam, dla pliku od zdzis_ek pierwsza liczba w kolejnych liniach to 0000, potem 4000, potem 8000 i tak aż do 7C000, potem znowu od 0000, bo w tym pliku są tak naprawdę 32 banki, a druga liczba to 3800 (14kB), bo taka wielkość ma jeden bank. Pozostała 2kB nie jest używane.

    A jeżeli testujesz plik *.bin mający 16 banków w sobie, to ostatni adres (w linii 16) to 3C000, potem znowu od początku.

    Obsługa pliku *.lst jest wprowadzona właśnie po to, żeby obsługiwać wsady od zdzis_ek.
  • #626
    sq2bvn
    Level 15  
    Mikrokomputer COBRA 1

    Tak wygląda moje drzewo. Rzeczywiście *.lst nie znalazł się na skrinie.

    Skoro ten plik trzeba wymyślać, to może zrobić kreatora, który wspomoże generowanie takiego pliku. Jakbym wykorzystywał owy emulator do robienia aplikacji dla radioamatorów to edytowanie w nieskończoność pliku *.lst po każdej kompilacji i konsolidacji może doprowadzić do szaleństwa. Czyli: formularz a tam wiersze z predefiniowanymi początkami banków oraz na dole ścieżka do pliku bin. Ustawiasz początki banków, zbędne odhaczasz czekboksami. Dobrze ustawienia na formularzu zapamiętać w jakimś pliku *.ini by nie klepać tego samego. Przycisk generuj *.lst i wówczas program otwiera *.bin, przesuwa wskaźnik z ofsetem jak adresy z formularza i składuje do pliku *.lst. Mały czekboks - gotowe!
  • #627
    andrzejlisek
    Level 28  
    sq2bvn wrote:
    Skoro ten plik trzeba wymyślać, to może zrobić kreatora, który wspomoże generowanie takiego pliku. Jakbym wykorzystywał owy emulator do robienia aplikacji dla radioamatorów to edytowanie w nieskończoność pliku *.lst po każdej kompilacji i konsolidacji może doprowadzić do szaleństwa. Czyli: formularz a tam wiersze z predefiniowanymi początkami banków oraz na dole ścieżka do pliku bin. Ustawiasz początki banków, zbędne odhaczasz czekboksami. Dobrze ustawienia na formularzu zapamiętać w jakimś pliku *.ini by nie klepać tego samego. Przycisk generuj *.lst i wówczas program otwiera *.bin, przesuwa wskaźnik z ofsetem jak adresy z formularza i składuje do pliku *.lst. Mały czekboks - gotowe!

    Dziękuję za sugestię, rozważę to. Plik *.lst opisuje organizację pamięci ROM, czyli który fragment ma być podstawiony przy wydaniu rozkazu OUT na adres 0x10 z daną wartością. Za tym idzie realizacja sprzętowa działania pamięci ROM. Chyba nie będziesz co kompilację zmieniać organizacji pamięci, prawda? Chyba, że program rozwinie się tak, że potrzebna jest zmiana (zwiększenie liczby banków lub zwiększenie wielkości odwzorowania kosztem pamięci operacyjnej), to tylko wtedy ewentualne zmiany są potrzebne. W emulatorze zmiana organizacji to zmiana pliku *.lst, a w prawdziwej Cobrze odpowiednikiem tej czynności jest zmiana połączeń na PCB.

    Jeżeli chcesz mieć kilka niezależnych aplikacji, to i tak raczej będzie jedna konfiguracja, przerabianie połączeń między aplikacji w prawdziwym sprzęcie doprowadzi do szaleństwa.
  • #629
    andrzejlisek
    Level 28  
    sq2bvn wrote:
    Czy mój komplet plików jest dobrze zrobiony?

    Nie bardzo, ale ja poprawiłem. Sprawdziłem ten ROM i jest to wsad składający się z wielu banków. Załączony przez Ciebie *.lst jest dostosowany do oryginalnej pamięci ROM. Załączam plik *.lst dostosowany do tego wsadu i wtedy działa poprawnie. Oprócz tego, należy też wybrać plik generatora znaków na załączony plik ze słowem "semigrafika" w nazwie, inaczej program będzie działać poprawnie, ale grafika nie będzie czytelna.
  • #630
    sq2bvn
    Level 15  
    Podmieniłem pliki. Po uruchomieniu Cobra1.exe robię F2. Tam wybieram Wsad 29F040 v5M monitor Cobra1.bin no i mam okno błędu. Nie rozumiem czemu takie coś teraz się dzieje...

    Mikrokomputer COBRA 1MWSnap0...png Download (34.55 kB)