-
11. Data: 2021-08-18 11:32:30
Temat: Re: Program monitora (albo Basic) do 6800
Od: Atlantis <m...@w...pl>
On 18.08.2021 10:42, J.F wrote:
> Ale ponoc podobne na poziomie nozek - wstaw 6502 :-)
Nie. One MIAŁY być kompatybilne pinowo. A dokładniej kompatybilna pinowo
z 6800 miała być wersja 6501, rozwijana równolegle przez MOS. Układ
nigdy jednak szybko wycofano z produkcji, bo Motorola wytoczyła proces.
Obecnie ciężko go dostać i do tanich nie należy.
Procesor 6502 jest z grubsza podobny do 6800, ale występuje kilka różnic
wymagających przerabiania projektu płytki. Tak właśnie powstał mój
komputerek na 6800 - zacząłem od podobnego projektu na 6502 i po jakimś
czasie uświadomiłem sobie, że tylko nieznacznie modyfikując PCB będe
mógł zrobić płytkę procesorową dla 6802.
W ramach ciekawostki można także dodać, że płytka do Apple-1 została
zaprojektowana przez Wozniaka w sposób uniwersalny, pozwalający na jej
odpalenie z 6800 (wystarczy zostawić kilka otwartych zworek, wlutować
układ generatora dwufazowego sygnału zegarowego, a także włożyć jeden
dodatkowy układ scalony w podstawkę). Prawdopodobnie współzałożyciel
Apple do końca nie był pewien jaki procesor zostanie użyty, albo chciał
pozostawić te decyzję użytkownikom (pierwotnie komputer miał być
sprzedawany w formie kitów). Ostatecznie jednak wszystkie egzemplarze
lutowane w garażu miały procesor 6502, a sterujący nim monitor został
napisany pod ten procesor.
Dopiero w ostatnich latach paru pasjonatów zaczęło budować repliki
oparte na tej alternatywnej architekturze.
-
12. Data: 2021-08-19 16:05:13
Temat: Re: Program monitora (albo Basic) do 6800
Od: Atlantis <m...@w...pl>
Ok, na chwilę obecną mam już działający monitor z funkcją deasemblera
oraz ładowanie kodu z plików S19 po porcie szeregowym. Teraz jeszcze
tylko przydałby się jakiś działający interpreter Basica. ;)
-
13. Data: 2021-08-19 17:38:28
Temat: Re: Program monitora (albo Basic) do 6800
Od: <Ghost>
Użytkownik "Atlantis" napisał w wiadomości grup
dyskusyjnych:611a8ab9$0$29057$6...@n...neostrad
a.pl...
>Kolejne pytanie związane z tematyką retro. :)
[ciach fajne tematy]
Szacun kurde :-)
-
14. Data: 2021-08-19 17:39:01
Temat: Re: Program monitora (albo Basic) do 6800
Od: <Ghost>
Użytkownik "J.F" napisał w wiadomości grup
dyskusyjnych:199qnqgck8fcn$.14rdtv4cwx1wo$.dlg@40tud
e.net...
On Tue, 17 Aug 2021 22:19:16 +0200, Atlantis wrote:
> On 17.08.2021 10:35, J.F wrote:
>>> Czas zapomniec o starociach :-)
>> Projekt hobbystyczny, bez jakiegokolwiek praktycznego przeznaczenia. ;)
>Zrob na czyms wpolczesnym :-)
Raczej nie o to chodzi.
-
15. Data: 2021-08-21 20:18:20
Temat: Re: Program monitora (albo Basic) do 6800
Od: Atlantis <m...@w...pl>
On 19.08.2021 17:38, Ghost wrote:
> Szacun kurde :-)
Dzięki. ;)
Mały update. Udało mi się uruchomić TSC MicroBasic. Działą po
załadowaniu do RAM-u. Niestety okazuje się, że program został napisany w
ten sposób, że nie da się go odpalić z EPROM-u (zawiera smomodyfikujący
kod). Z jakiegoś powodu nie chce też działać po przekopiowaniu z EPROM-u
do RAM-u.
-
16. Data: 2021-08-28 19:14:58
Temat: Re: Program monitora (albo Basic) do 6800
Od: Atlantis <m...@w...pl>
Kolejne pytanie w tym temacie.
Mianowicie czy ktoś z was wie/pamięta jak w asemblerze zapisywało się
kompletny stan systemu na stosie? Chodzi mi o zapisanie wszystkich
rejestrów, wliczając w to rejestr flag.
Kontekst:
Przenoszę właśnie swój kod obsługi ekranu CRT (za pomocą układu TMS9918)
z innego projektu, opartego na 6502. Na chwilę obecną kod działa
prawidłowo, gdy załaduję go z pliku S19 i uruchomię z RAM-u. Podstawową
rolę w tym kodzie pełni procedura VDPPUTC, która po wywołaniu wrzuca na
ekran znak ASCII, którego kod znajduje się w rejestrze A. Jednocześnie
pilnuje lokalizacji kursora, realizuje przewijanie ekranu itp.
Procedura działa poprawnie z RAM-u. Problem zaczął się, gdy chciałem
przenieść ją do EPROM-u i wywołać z wnętrza monitora, aby znaki wysyłane
przez RS232 (główny interfejs użytkownika) były jednocześnie wysyłane na
ekran.
Niestety, po dodaniu tego kawałka kodu monitor przestaje działać
stabilnie - wysyła echo na RS232, znaki pojawiają się też na ekranie,
ale nie ma żadnej reakcji na komendy. Po jakimś czasie wpada zresztą w
nieskończoną pętlę...
Pierwsza teoria o jakiej pomyślałem to myśl, że coś wewnątrz VDPPUTC
nadpisuje któryś z rejestrów lub którąś z flag, potrzebnych w dalszej
części kodu. Próbuję zrzucać na stos rejestr B oraz zapisywać X do
osobnej lokalizacji w pamięci (nie widzę opcji wysłania go na stos) ale
nigdzie nie widzę opcji zrobienia tego z rejestrem flag.
-
17. Data: 2021-08-28 19:22:36
Temat: Re: Program monitora (albo Basic) do 6800
Od: Mateusz Viste <m...@x...invalid>
2021-08-28 o 19:14 +0200, Atlantis napisał:
> Mianowicie czy ktoś z was wie/pamięta jak w asemblerze zapisywało się
> kompletny stan systemu na stosie? Chodzi mi o zapisanie wszystkich
> rejestrów, wliczając w to rejestr flag.
PUSHA / POPA
Ale to od 80186 dopiero. Jeśli ma działać na 8086 to PUSH AX, PUSH BX,
PUSH CX, itd.
http://amb.osdn.io/phpamb.php?fname=lib/8086set.amb
Mateusz
-
18. Data: 2021-08-29 16:40:30
Temat: Re: Program monitora (albo Basic) do 6800
Od: Atlantis <m...@w...pl>
On 28.08.2021 19:22, Mateusz Viste wrote:
> Ale to od 80186 dopiero. Jeśli ma działać na 8086 to PUSH AX, PUSH BX,
> PUSH CX, itd.
Miałem na myśli rodzinę CPU, której dotyczy cały ten wątek, czyli 6800.
:) Wygląda na to, że nie ma możliwości zapisania i przywrócenia stanu
rejestru flag, więc kod musi być pisany w ten sposób, aby nie miło to
znaczenia.
W każdym razie znalazłem przyczynę - nie zwróciłem uwagi, że jedna z
procedur była wywoływana jeszcze w jednym miejscu, co powodowało
nadpisanie rejestru A. Tak więc gdy kontrola została zwrócona do głównej
pętli, znajdowały się w nim bzdury. Teraz już wszystko działa. Komputer
posiada działający ekran (telewizor z wejściem kompozytowym) oraz
klawiaturę AT od starego peceta. ;)
-
19. Data: 2021-08-30 09:14:53
Temat: Re: Program monitora (albo Basic) do 6800
Od: Mateusz Viste <m...@x...invalid>
2021-08-29 o 16:40 +0200, Atlantis napisał:
> On 28.08.2021 19:22, Mateusz Viste wrote:
> > Ale to od 80186 dopiero. Jeśli ma działać na 8086 to PUSH AX, PUSH
> > BX, PUSH CX, itd.
>
> Miałem na myśli rodzinę CPU, której dotyczy cały ten wątek, czyli
> 6800. :)
A to przepraszam, nie śledziłem - migło mi "retro, jak wrzucić
wszystkie flagi na stos" i wyskoczyłem... Kajam się i kłaniam uniżenie.
Mateusz
-
20. Data: 2021-08-30 09:25:34
Temat: Re: Program monitora (albo Basic) do 6800
Od: "J.F" <j...@p...onet.pl>
On Sun, 29 Aug 2021 16:40:30 +0200, Atlantis wrote:
> On 28.08.2021 19:22, Mateusz Viste wrote:
>
>> Ale to od 80186 dopiero. Jeśli ma działać na 8086 to PUSH AX, PUSH BX,
>> PUSH CX, itd.
>
> Miałem na myśli rodzinę CPU, której dotyczy cały ten wątek, czyli 6800.
> :) Wygląda na to, że nie ma możliwości zapisania i przywrócenia stanu
> rejestru flag, więc kod musi być pisany w ten sposób, aby nie miło to
> znaczenia.
Niemal na pewno jest - chyba by sie nie dalo bez tego ... no moze,
jakby wbudowac w przerwania, a inaczej - niepotrzebne.
Instrukcje TAP i TPA
J.