Z ciekawości szukam jakiegoś dobrego emulatora ANTIC Atari XL/XE i tu są źródła do Altirry - jakiś późniejszy emulator od Atari 800 Win.

Podobne dokumenty
Tak przygotowane pliki należy umieścić w głównym folderze naszego programu. Klub IKS

Emulacja maszyny. Program udaje zupełnie inną architekturę. Musi przetłumaczyć instrukcje emulowane na instrukcje platformy, na której działa

LCD (Liquid Crystal Display)

Technika mikroprocesorowa. Linia rozwojowa procesorów firmy Intel w latach

Instytut Teleinformatyki

Programowanie w języku Python. Grażyna Koba

Inż. Kamil Kujawski Inż. Krzysztof Krefta. Wykład w ramach zajęć Akademia ETI

Technika Mikroprocesorowa Laboratorium 5 Obsługa klawiatury

Komputer IBM PC niezależnie od modelu składa się z: Jednostki centralnej czyli właściwego komputera Monitora Klawiatury

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika

Programowanie Mikrokontrolerów

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Instytut Teleinformatyki

Zamówienia elektroniczne w Medicare (przez e@ptekę) Instrukcja obsługi

1940, 17 = K 4 = K 2 (1, 05)(1 + x 200 )3. Stąd, po wstawieniu K 2 dostaję:

LabVIEW PLATFORMA EDUKACYJNA Lekcja 6 LabVIEW i Arduino programy wykorzystujące wyświetlacz LCD, czujnik temperatury, PWM i diodę LED

1. ISE WebPack i VHDL Xilinx ISE Design Suite 10.1 VHDL Tworzenie projektu Project Navigator Xilinx ISE Design Suite 10.1 File

Trigger jest obiektem związanym z tablicą, który aktywuje się gdy do tablicy następuje odpowiednie zapytanie.

***************** K.S.O TURBO 2000 *****************

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

PIERWSZE URUCHOMIENIE PROGRAMU ITNC PROGRAMMING STATION

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Zamówienia internetowe instrukcja obsługi

Ćwiczenia z S Komunikacja S z miernikiem parametrów sieci PAC 3200 za pośrednictwem protokołu Modbus/TCP.

FAQ: /PL Data: 3/07/2013 Konfiguracja współpracy programów PC Access i Microsoft Excel ze sterownikiem S7-1200

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

A Machine Architecture that is Really Intuitive and Easy. Dane: notacja dwójkowa, zapis w kodzie dopełnieniowym

ad a) Konfiguracja licznika T1 Niech nasz program składa się z dwóch fragmentów kodu: inicjacja licznika T1 pętla główna

Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR

1. Tworzenie nowego projektu.

lekcja 8a Gry komputerowe MasterMind

Technika mikroprocesorowa. Konsola do gier

Nazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek

i pakietu programowego PALASM 4

CPU ROM, RAM. Rejestry procesora. We/Wy. Cezary Bolek Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki

Ilość cyfr liczby naturalnej

Mikrokontroler ATmega32. Język symboliczny

1 Podstawy c++ w pigułce.

Krótki kurs obsługi środowiska programistycznego Turbo Pascal z 12 Opracował Jan T. Biernat. Wstęp

Pogromcy duchów. Wstęp. Krok 1: Stwórz latającego ducha

Wskaźnik może wskazywać na jakąś zmienną, strukturę, tablicę a nawet funkcję. Oto podstawowe operatory niezbędne do operowania wskaźnikami:

Pascal - wprowadzenie

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe

Synteza strukturalna automatu Moore'a i Mealy

Programowanie mikrokontrolerów AVR

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

Zasady Programowania Strukturalnego

[WYSYŁANIE MAILI Z PROGRAMU EXCEL]

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Metody optymalizacji soft-procesorów NIOS

; B = Wykonaj poniższe obliczenia: Mnożenia, transpozycje etc wykonuję programem i przepisuję wyniki. Mam nadzieję, że umiesz mnożyć macierze...

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Maszyna stanu State Machine

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Organizacja czasu 1

Przygotowanie własnej procedury... 3 Instrukcja msgbox wyświetlanie informacji w oknie... 6 Sposoby uruchamiania makra... 8

Wrocław, Wstęp do informatyki i programowania: liczby pierwsze. Wydział Matematyki Politechniki Wrocławskiej.

Listing_ $crystal = deklaracja

Język programowania PASCAL

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.

Tomasz Greszata - Koszalin

Lista 4. Kamil Matuszewski 22 marca 2016

Ćwiczenia z S S jako Profinet-IO Controller. FAQ Marzec 2012

ATARI 64-bit Project. Notatki robocze AVR-MAY.2017

Laboratorium - Poznawanie FTP

Informatyka I: Instrukcja 4.2

Zasady programowania Dokumentacja

CompactPCI. PCI Industrial Computers Manufacturers Group (PICMG)

Paweł Skrobanek. C-3, pok pawel.skrobanek.staff.iiar.pwr.wroc.pl

PLUTO Sterownik bezpieczeństwa Skrócona Instrukcja obsługi oprogramowania. PlutoProgrammingManualPL_v7A.pdf 1

INSTRUKCJA PUSTA. Nie składa się z żadnych znaków i symboli, niczego nie robi. for i := 1 to 10 do {tu nic nie ma};

Miejsko-Gminna Biblioteka Publiczna w Karczewie.

Aplikacja Sieciowa wątki po stronie klienta

Podstawą w systemie dwójkowym jest liczba 2 a w systemie dziesiętnym liczba 10.

PASCAL. Etapy pisania programu. Analiza potrzeb i wymagań (treści zadania) Opracowanie algorytmu Kodowanie Kompilacja Testowanie Stosowanie

Część I: Przypisanie makr do obiektu (przycisku).

Zastanawiałeś się może, dlaczego Twój współpracownik,

Laboratorium 5: Tablice. Wyszukiwanie binarne

Tutorial. HTML Rozdział: Ramki

Struktura i działanie jednostki centralnej

Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania

Zmienne powłoki. Wywołanie wartości następuje poprzez umieszczenie przed nazwą zmiennej znaku dolara ($ZMIENNA), np. ZMIENNA=wartosc.

Laboratorium Informatyka (I) AiR Ćwiczenia z debugowania

Kilka prostych programów

PRZETWORNIK USB - RS232

Komunikacja sterownika PLC Fatek jako master w protokole ModBus RTU

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja cz. 1

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

DYDAKTYKA ZAGADNIENIA CYFROWE ZAGADNIENIA CYFROWE

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego

Narzędzia informatyczne w językoznawstwie

Być może jesteś doświadczonym programistą, biegle programujesz w Javie,

Komunikacja w mikrokontrolerach. Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface

3. Macierze i Układy Równań Liniowych

7. Pętle for. Przykłady

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

Projektowanie z użyciem procesora programowego Nios II

Transkrypt:

Z ciekawości szukam jakiegoś dobrego emulatora ANTIC Atari XL/XE i tu są źródła do Altirry - jakiś późniejszy emulator od Atari 800 Win. Przynajmniej są kody źródłowe w C. I teraz zsumowałem sobie wiersze z plików antic.h i antic.cpp i wychodzi, zaokrąglając, żeby liczyć bez komentarzy i zbędnych linii nie będących kodem programu: około 3000 wierszy (trzy tysiące wierszy), żeby zrealizować ANTIC XL/XE. Kosmos jakiś totalny. Nie wiem, czy w ogóle analizować ten kod, nie wiem w jakim celu, skoro to zajmuje kosmos cały. U mnie ANTIC cały robi się w 50-ciu liniach (wierszach), lub w 50-ciu instrukcjach (wychodzi w przeliczeniu w sumie, że na pewno nie więcej niż wierszy), a do tego to instrukcje proste typu dodaj, przypisz, czyli sprzętowy ANTIC u mnie robi się w Turbo Pascal 5.5 na 50-ciu, czy 80-ciu max. instrukcjach prostych. Po znormalizowaniu wyjdzie około 50-ciu instrukcji pewnie w sumie, lub zostanie na 80-ciu, bo przypomina zupełnie techniczne wykonanie, nie bardzo da się coś skrócić, bo by się nie wykonało, a musi, oczywiste. Te 80 instrukcji prostych wrzuca się na hardware elektroniczny do wykonania samodzielnego (zwykły prosty scalak) funkcji ANTIC w sposób sprzętowy i mam gotowy sprzętowy ANTIC XL/XE własny. Ciekawe, jak wygląda i działa oryginalny. Dla porównania. Kiedyś poszukam, z ciekawości. 3000 instrukcji to kosmos, nie wiem czy to się powinno analizować, oczywiste chyba, czy nie? Hmm W drugim odcinku Jak stworzyć własny Emulator Atari XL/XE 8-bit będzie pokazane jak zrobić ANTIC działający 100% sprawnie i 100% wydajnie, zgodnie ze sprzętowym ANTIC Atari XL/XE. Musi zajmować kilkadziesiąt linii kodu (kilkadziesiąt instrukcji) które bezpośrednio interpreterem kodu przerzuca się na wykonanie sprzętowej wersji, czyli układu scalonego gotowego READY do pracy w sprzętowym systemie Atari XL/XE. i z powrotem analogicznie. Hardware <=> Software nie może się niczym różnić, oczywiste. Wtedy jest dobra emulacja sprzętu LUB dobra realizacja programu w formie sprzętowej. Oczywistości.

Będzie pokazane krok po kroku, aż ANTIC będzie READY i się ma. Platforma programistyczna: Turbo Pascal 5.5. Działanie programu: realizacja funkcji ANTIC Atari XL/XE. Wielkość programu: kilkadziesiąt instrukcji zamkniętego pełnego kodu programu do łatwego przeniesienia wprost instrukcji programu na wykonanie czysto sprzętowe (w pełni funkcjonalny układ scalony ANTIC Atari XL/XE). wordmedia.goutlivres.com/?page_id=968 Tu jest jakiś schemat końcówek układu elektronicznego ANTIC, od tego powinno się zaczynać zawsze, przy emulowaniu układów elektronicznych, oczywiste napisali nawet, co oznacza każda nóżka scalaka, super. Nic więcej na razie nie potrzeba, bo musimy mieć struktury danych, na których operuje ANTIC, czyli w wersji programowej funkcja do_antic; {wykonaj ANTIC}. krap.pl/ /www /~trevin/atari/antic_pinout.html ANTIC Pinout Po kolei: A0-A15: Memory address bus - czyli 16-bitowa zmienna do wskazywania adresu w pamięci var AD :word; {ok, następne potrzebne struktury, wait } D0-D7: Memory data bus - czyli zmienna 8-bit na dane, z których się korzysta var DB :byte; {ok, proste, następne } AN0-AN2: CTIA/GTIA bus (data type unknown) - trzy bity na kontakt z układem GTIA, czyli var an :byte; {z tego bajta 3 bity się wykorzysta na a0,a1,a2, reszta nie ważna, ok, proste, następne} Vss: Ground - to uziemienie chyba, no to nie potrzebne w programowej wersji scalaka, potem się dopisze formalnie, żeby automat przerzucał na hardware i żeby niczego nie zgubić, musi być 100% odwzorowanie hardware <=> software, oczywiste, ale do działania programowej funkcji ANTIC chyba nie potrzebne, nie ma tu żadnego przesyłu informacji raczej, chyba, nie wiem, potem sprawdzę, ok, czyli olać na razie, następne LP: Light pen input - to pewnie 1 bit na sygnał związany z piórem świetlnym, ok, no to: var lp :byte {1 bit z tego jest ważny, reszta niepotrzebna, najwyżej potem zrobi się jedną zmienną zbiorczą typu byte,

żeby nie tracić pamięci i wrzuci wszystkie piny typu bitowego, czyli a0, a1, a2, lp, i następne, jeśli będą, zobaczymy, ok, to potem się zbierze, następne } Tych 6 bitów się dorzuci do jednej zmiennej typu byte: RNMI: Non-maskable interrupt input NMI: Non-maskable interrupt output (to CPU) REF: RAM refresh output HALT: Halt output; suspends the CPU while ANTIC reads memory R/W: Read/write direction RDY: ANTIC pulls this pin low to halt the CPU when the WSYNC register is written, until the next horizontal blank occurs. I tych 5 bitów: Vcc: +5V power O2: Phase 2 input clock O0: Phase zero clock output FO0: Fast phase 0 input clock RST: Resets ANTIC Doda się ten wcześniejszy Ground (Vss) jako jeden bit i upcha na pełnej strukturze danych dla ANTIC. OK. READY. Teraz funkcja ANTIC, czyli co ANTIC robi z tymi sygnałami z pinów, czyli jak operować danymi ze struktury stworzonej w Turbo Pascalu jak powyżej? Jak się napisze tą funkcję operowania tą strukturą, to gotowy ANTIC Emulator. Proste. OK. No to gotowe na razie. Co robi ANTIC, żeby to zaprogramować w funkcji TP5.5? Hmm Tu napisali chyba ciekawe, czy ta strona wystarczy, żeby dokończyć cały 100% ANTIC Atari XL/XE, zobaczymy, wait krap.pl/ /kryten /Atari/800XL/atari_hw/antic.htm ANTIC

The ANTIC and CTIA chips generate the television display at the rate of 60 frames per second on the NTSC (US) system. Each frame consists of 262 horizontal TV lines and each line is made up of 228 color clocks. The 6502 microprocessor runs at 1.79 MHz. This rate was chosen so that one machine cycle krap.pl Chyba wszystko tu jest, ogólnie przeglądając wystarczy zaprogramować wszystko, co robi ANTIC zgodnie z tym, co tam napisali na tej stronie, tak zakładam ok, czyli po zrobieniu byłoby gotowe, proste czyli oby tam wszystko było tylko, to wystarczy przeklepać i już zobaczymy po kolei wait zanim się zacznie, trzeba: 1. mieć gotową strukturę danych dla funkcji ANTIC opisaną wcześniej z pinów scalaka ANTIC, najlepiej w Turbo Pascal 5.5, żeby mieć pewność, że wszystko działa 100% idealnie i sekwencyjnie krok po kroku, jak elektronika czysta, prosta, niezawodna. 2. jak już się ma strukturę i pustą funkcję do_antic w TP5.5, czyli np. na początek: procedure do_antic; begin end; można pisać tę procedurę, korzystamy tylko ze struktury danych stworzonej dla ANTIC, oczywiste, czyli tylko te kilkanaście pinów (nóżek) scalaka, OK. No i teraz trzeba po kolei co robi ANTIC? Tam chyba piszą, trzeba to czytać teraz i po kolei klepać w Turbo Pascalu to potem, nie chce mi się potem dokończę priorytety, kawa

Ta przykładowa DL z tych artykułów o ANTIC Atari XL/XE wygląda po puszczeniu po niej ANTIC-a w emulatorze Atari w TP5.5 mniej więcej tak: (przynajmniej u mnie, bo TP nie wyświetli mi 24-ech linii za bardzo, bo <Naciśnij Enter> muszę mieć na dole do obsługi Atari spod monitora w TP). Potem to zrobię na original user interface. Na końcu, oczywiste. 19 linii się udaje ładnie wyświetlić, z 40-toma znakami w linii. Pusty ekran Atari w GRAPH 0. Ładne. Mnie się podoba getchar działa, outchar działa i mam maszynę do pisania w Turbo Pascal 5.5 w trybie gr0 Atari 65XE. Czad. Nie wiem, jak uruchomić tryby graficzne, bo na tych nowych PC-tach nie działa unit graph w TP. Gdyby działał, to mam już wszystkie tryby Atari XL/XE gotowe, ale nie działa graph, kurde. Muszę oryginalny 386DX 33MHz odzyskać. Na giełdzie sprzedałem, może mi oddadzą, trzeba zapytać. Bo mi o unit graph chodzi w TP 5.5, nic więcej, kurde.

W Zorro bym sobie pograł, w Goonies, Mouse Trap, Conan, we wszystko, bo już działa, tylko nie mam unit graph, kurde mol. Emulator Atari XL/XE uruchamia się zwyczajnie przez Ctrl+F9, to straszna radocha, że krótki programik w Turbo Pascalu robi mi cały 100% original Atari XL/XE, genialne, jak cudo jakieś Ctrl+F9 i READY self test działa, BASIC, wszystko działa, gry w ATR, 100% genialne Ctrl+F9 i już Atari READY. Genialne uczucie to jest, uwielbiam to i kurde działa, super to jest cały Atari 65XE w TP5.5 uruchamiany zwyczajne z edytora, tego niebieskiego. Ctrl+F9 i gotowe cały Atari, nic nie brakuje, jakie to kurde genialne wszystkie gry muszę sobie sprawdzić Zapyla ze sto, albo tysiąc razy szybciej niż zwyczajny Atari kosmos W BASIC jak robię FOR I=1 to 65535:?PEEK(I):NEXT I <RETURN> to od razu jest na końcu, czyli wartość spod komórki 65535. Od razu całość przelatuje i już.. READY [] Kurde, jakie to genialne mam najszybszy Emulator Atari XL/XE we wszechświecie chyba kurde, ale zapyla Wrzucę sobie na ten śmig wszystko co istnieje na Atari i niech przeliczy i da gotowe wydruki z wykonywania programów, w maszynowym, albo stany pamięci, wszystko najlepiej 100%. Żeby było widać 100% całego Atari co do rejestru i impulsu, kiedy pracuje sobie ale czad jak magia, niezłe widowisko kurde mol czy ktoś widział jak działa Atari XL/XE kiedy wykonuje grę, demo, etc.? Niektóre działają genialnie, widać, że ładnie zaprogramowane, inne mniej wszystko zależy od zrobienia programu czasem Atari cały blinka jak genialny cudowny cud podczas realizowania programu, widać, jak ślicznie wszystko działa kiedyś pokażę i opowiem - to kwestia umiejętnego napisania kodu wykonywanego, czyli obsługa zasobów, żeby widać było nawet z daleka, że genialnie sprawnie działa napisać śliczny program, to nie łatwa rzecz, widać od razu, czy śliczne, czy nie bardzo. Super to jest

Atari to superkomputer wszech czasów. Ciekawe, czy istnieją lepsze od niego? Na razie nie znajduję nigdzie na świecie hmm to chyba oczywiste mi się wydaje RUN [] REM ale zapyla