Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Komputerek CP/M na Z80 - problem z uruchomieniem

70 views
Skip to first unread message

Atlantis

unread,
Jan 23, 2022, 8:32:00 AM1/23/22
to
Złożyłem jakiś czas temu prosty komputer na Z80, wg tego projektu:
https://github.com/skiselev/easy_z80

Konstrukcja jest zaprojektowana w ten sposób, że można jej używać w roli
jednopłytkowego komputera retro, obsługiwanego przez terminal. Można tez
traktować go jako część systemu na magistrali kompatybilnej z RC2014.
Docelowo planowałem dodać kilka kart rozszerzeń, testy zacząłem jednak
od konfiguracji SBC.

Sytuacja na chwilę obecna wygląda następująco"
1) Płytka złożona w 100%, z użyciem układów z serii Z80 w wersji CMOS na
10 MHz.
2) Układy logiczne z rodziny 74xx w wersji HCT.
3) Układ taktowany generatorem kwarcowym 10 MHz, UART-y taktowane
generatorem kwarcowym 1.8432 MHz.
4) Flash zaprogramowany oprogramowaniem RomWBW-v3.0.1, pobranym z
GitHuba i skompilowanym. Konkretnie wykorzystany został plik
EZZ80_std.rom, a więc wersja przygotowana specjalnie z myślą o tym
komputerku.
5) Układ logiczny ATF16V8B zaprogramowany wsadem easy_z80_wdog.jed,
próbowałem też easy_z80_no_wdog.jed
6) Niestety nie udało mi się kupić układu MAX693. Zastąpiłem go
MAX691ACPE, który miałem w swoich zapasach. Lista elementów wymienia
MAX691 jako "possible alternative".
7) Na szynie systemowej występuje prawidłowy sygnał UART_CLK. Jakis
sygnał CPU-CLK także występuje, jednak nie jestem w stanie określić czy
jest prawidłowy, bo 10 MHz to już za dużo dla mojego analziatora (tani,
chiński na USB) - pokazuje coś wahającego się pomiędzy 8-12 MHz.
8) Jest aktywność na liniach A0-A15, D0-D7, RD, WR, MREQ i IORQ.
9) Linia RESET reaguje na wciskanie przycisku. Stan tej linii ma tez
wpływ na zachowanie reszty systemu (m.in. stan linii adresowych).
10) Na liniach RX1/RX2 widać sygnały wysłane przez komputer połączony z
tym SBC.
11) Na żadnej linii z linii TX1/TX2 nie ma aktywności. A po resecie
powinna się tam pojawiać informacja powitalna/menu wyboru trybu pracy.

Ktoś ma jakiś pomysł co może być nie tak i jak to dalej debugować?
Moją pierwszą myślą byłoby uszkodzenie Z84C4010, ale scalak pochodzi z
zaufanego źródła (DigiKey).

heby

unread,
Jan 23, 2022, 10:10:29 AM1/23/22
to
On 23/01/2022 14:31, Atlantis wrote:
> sygnał CPU-CLK także występuje, jednak nie jestem w stanie określić czy
> jest prawidłowy, bo 10 MHz to już za dużo dla mojego analziatora

Wsadź *dużo* mniejszy kwarc. Cięzko będzie coś diagnozować nie wiedziąc
gdzie w programie kręci się cpu, warto by określić choć z grubsza, w
jakiej okolicy wykonuje się kod.

Zbych

unread,
Jan 23, 2022, 11:39:09 AM1/23/22
to
Atlantis wrote on 23.01.2022 14:31:

> Ktoś ma jakiś pomysł co może być nie tak i jak to dalej debugować?
> Moją pierwszą myślą byłoby uszkodzenie Z84C4010, ale scalak pochodzi z
> zaufanego źródła (DigiKey).

Zmniejsz częstotliwość i koniecznie zorganizuj podgląd linii adresowych
i danych - żeby wiedzieć gdzie program utyka.
Tu masz fajny przykład wykorzystania arduino do podglądu szyny procka:
https://youtu.be/LnzuMJLZRdU?t=519


Dawid Rutkowski

unread,
Jan 23, 2022, 1:33:13 PM1/23/22
to
Zabawa zabawą - ale po co właściwie odtwarzać CP/M?
W czasach 8080/Z80 to oczywiście był osiągnięcie, ale teraz nawet nie działa się na dyskietkach tylko na krzemie.
Są dostępne jakieś ciekawe programy?
Bo jak pisać samemu na komputer, do którego i tak podłączasz terminal, to lepiej wziąć ATmegę czy STM32, a nawet 8051.

heby

unread,
Jan 23, 2022, 2:06:41 PM1/23/22
to
On 23/01/2022 19:33, Dawid Rutkowski wrote:
> Zabawa zabawą - ale po co właściwie odtwarzać CP/M?

Zapytaj Microsoft ;)

> Bo jak pisać samemu na komputer, do którego i tak podłączasz terminal, to lepiej wziąć ATmegę czy STM32, a nawet 8051.

Klimaty retro są czasami trudnie do zrozumienia. Wsadzić można i Pi, ale
co z tego?

Dawid Rutkowski

unread,
Jan 23, 2022, 2:27:25 PM1/23/22
to
niedziela, 23 stycznia 2022 o 20:06:41 UTC+1 heby napisał(a):
> On 23/01/2022 19:33, Dawid Rutkowski wrote:
> > Zabawa zabawą - ale po co właściwie odtwarzać CP/M?
> Zapytaj Microsoft ;)

Ci złodzieje dostali za to kasę od głupiego ibm.
I chodziło o odtworzenie systemu pracującego pid CP/M, tym prawdziwym od mistrza Kildalla.
I zapewne nie chodzi o to, by sobie porobić PIP, tylko uruchomić jakiś program wymagający CP/M i o niedostępnym źródle.

> > Bo jak pisać samemu na komputer, do którego i tak podłączasz terminal, to lepiej wziąć ATmegę czy STM32, a nawet 8051.
> Klimaty retro są czasami trudnie do zrozumienia. Wsadzić można i Pi, ale
> co z tego?

Dlatego pytam, po co?
Ja np. chciałbym PC-ta do pogrania w Tie Fighter oraz Magic Carpet.
Z joystickiem moim!
Tie Fighter wymaga myszki - a ja nie mam myszki działającej z mouse.com.
Ma ktoś?
PS/2 obsługiwał czy musi być szeregowa (trzeba będzie na ATmedze zrobić konwerter...)?

heby

unread,
Jan 23, 2022, 3:08:06 PM1/23/22
to
On 23/01/2022 20:27, Dawid Rutkowski wrote:
>> Klimaty retro są czasami trudnie do zrozumienia. Wsadzić można i Pi, ale
>> co z tego?
> Dlatego pytam, po co?

Ponieważ to hobby. Tego nie ogarnia się w kategoriach logiki.

Dzisiaj analizowałem dlaczego mój dump carta z Atari nie działa w
emulatorze. Też tego nie mogę uzasadnić z poziomu pytania "po co?", a
suweren uznał by to za jakiś problem psychiatryczny. Takie hobby.

Dawid Rutkowski

unread,
Jan 23, 2022, 3:33:22 PM1/23/22
to
niedziela, 23 stycznia 2022 o 21:08:06 UTC+1 heby napisał(a):
> On 23/01/2022 20:27, Dawid Rutkowski wrote:
> >> Klimaty retro są czasami trudnie do zrozumienia. Wsadzić można i Pi, ale
> >> co z tego?
> > Dlatego pytam, po co?
> Ponieważ to hobby. Tego nie ogarnia się w kategoriach logiki.

Nie chodzi o logikę, czy o jakiekolwiek ocenianie, tylko o to, jak daleko ktoś ma zamiar hobbiować - czy chce porobić PIP czy jednak coś uruchomić z minimalną wartością dodaną - czy tylko stracić czas.

> Dzisiaj analizowałem dlaczego mój dump carta z Atari nie działa w
> emulatorze. Też tego nie mogę uzasadnić z poziomu pytania "po co?", a
> suweren uznał by to za jakiś problem psychiatryczny. Takie hobby.

I czemu nie działał?

heby

unread,
Jan 23, 2022, 3:46:26 PM1/23/22
to
On 23/01/2022 21:33, Dawid Rutkowski wrote:
>> Dzisiaj analizowałem dlaczego mój dump carta z Atari nie działa w
>> emulatorze. Też tego nie mogę uzasadnić z poziomu pytania "po co?", a
>> suweren uznał by to za jakiś problem psychiatryczny. Takie hobby.
> I czemu nie działał?

Bo dumper cartów (na Atari) dokłada własne śmieci do dumpu.

heby

unread,
Jan 23, 2022, 3:47:41 PM1/23/22
to
On 23/01/2022 21:33, Dawid Rutkowski wrote:
> czy tylko stracić czas.

Tracenie czasu, jest w gruncie rzeczy sednem hobby.

stary grzyb

unread,
Jan 23, 2022, 4:24:50 PM1/23/22
to
> On 23/01/2022 21:33, Dawid Rutkowski wrote:
>> czy tylko stracić czas.
>
> Tracenie czasu, jest w gruncie rzeczy sednem hobby.

A hobby może (choć nie musi!) być sposobem na nudę, czyli "zabijaniem"
czasu.

PS.
Kategorycznie zaprzeczam twierdzeniu, które kiedyś tu padło: "Nikt nie
ma zbyt wiele wolnego czasu".
W pewnych sytuacjach życiowych występuje nadmiar wolnego czasu i brak
chęci do życia. Wtedy "tracenie czasu" na hobby (także, gdy nie tworzy
ono niczego nowego) pozwala odgonić głupie myśli i żyć dalej, nawet gdy
to życie wydaję się tylko bezsensowną egzystencją i powolnym umieraniem.

Dawid Rutkowski

unread,
Jan 24, 2022, 3:59:47 AM1/24/22
to
niedziela, 23 stycznia 2022 o 22:24:50 UTC+1 stary grzyb napisał(a):
> > On 23/01/2022 21:33, Dawid Rutkowski wrote:
> >> czy tylko stracić czas.
> >
> > Tracenie czasu, jest w gruncie rzeczy sednem hobby.
> A hobby może (choć nie musi!) być sposobem na nudę, czyli "zabijaniem"
> czasu.

No dobra, pisałem przecież, że bez oceniania.
Tylko proste pytanie - czy odtwarzanie systemu na którym zadziała CP/M - bo musi to być 8080-compatible (emulator na innym uC się nie liczy, to to samo co emulator na PC) - ma na celu cokolwiek więcej niż PIP?
W sumie mogę zrozumieć chęć dotknięcia CP/M, jak człowiek nie miał okazji w młodości, bo np. był troszkę za młody (ja ze spectrum przeskoczyłem w 7. klasie na 386 - ale jeszcze z DOS i windows 3.1 - ale już nawet młodsi rok ode mnie bywali tacy, i to na EiTI PW, co komputera innego niż z min. windows 95 nie używali w życiu) - no ale tyle wolnego czasu to chyba dopiero na emeryturze będę miał.

J.F

unread,
Jan 24, 2022, 6:40:18 AM1/24/22
to
Nie pierwsza to moja taka rada - spowolnij kwarc, i przeanalizuj co
sie dzieje.

> 8) Jest aktywność na liniach A0-A15, D0-D7, RD, WR, MREQ i IORQ.

Co sugeruje, ze byc moze duzo działa.


Jak nie chcesz sie zagrzebac w analizatorze, to wpisalbym najpierw
jakis prosty program testowy eprom.
Fajnie by tez bylo podmienic eprom na emulator - przyspieszy
testowanie.

A zworki do wyboru zegara UART wstawiles? zegary na wyjsciach CTC
dobre? Predkosc UART prawidlowa ?

> 9) Linia RESET reaguje na wciskanie przycisku. Stan tej linii ma tez
> wpływ na zachowanie reszty systemu (m.in. stan linii adresowych).
> 10) Na liniach RX1/RX2 widać sygnały wysłane przez komputer połączony z
> tym SBC.
> 11) Na żadnej linii z linii TX1/TX2 nie ma aktywności. A po resecie
> powinna się tam pojawiać informacja powitalna/menu wyboru trybu pracy.
>
> Ktoś ma jakiś pomysł co może być nie tak i jak to dalej debugować?
> Moją pierwszą myślą byłoby uszkodzenie Z84C4010, ale scalak pochodzi z
> zaufanego źródła (DigiKey).

Nie wiem skad to podejscie, ze kosc uszkodzona.
IMO - kosci uszkadzaja sie na koncu. Najpierw trzeba szukac innych
powodow.
A tu masz caly nieznany program, to powodow jest duzo mozliwych.

Jak tam bankowanie dziala? Zobacz co na wyjsciach U10 i U11


J.

J.F

unread,
Jan 24, 2022, 7:38:41 AM1/24/22
to
On Mon, 24 Jan 2022 00:59:46 -0800 (PST), Dawid Rutkowski wrote:
> niedziela, 23 stycznia 2022 o 22:24:50 UTC+1 stary grzyb napisał(a):
>>> On 23/01/2022 21:33, Dawid Rutkowski wrote:
>>>> czy tylko stracić czas.
>>>
>>> Tracenie czasu, jest w gruncie rzeczy sednem hobby.
>> A hobby może (choć nie musi!) być sposobem na nudę, czyli "zabijaniem"
>> czasu.
>
> No dobra, pisałem przecież, że bez oceniania.
> Tylko proste pytanie - czy odtwarzanie systemu na którym zadziała CP/M - bo musi to być 8080-compatible (emulator na innym uC się nie liczy, to to samo co emulator na PC) - ma na celu cokolwiek więcej niż PIP?
> W sumie mogę zrozumieć chęć dotknięcia CP/M, jak człowiek nie miał
> okazji w młodości, bo np. był troszkę za młody

Tak swoja droga - byla masa "profesjonalnego" oprogramowania na CP/M
... tylko jak to teraz zdobyc?
Chyba gdzies zaginelo w pomroce dziejow.

No i po co zdobywac - pobawic sie kompilatorem Cobola czy Dbase ?

J.

Atlantis

unread,
Jan 24, 2022, 8:58:15 AM1/24/22
to
On 24.01.2022 13:38, J.F wrote:

> Tak swoja droga - byla masa "profesjonalnego" oprogramowania na CP/M
> ... tylko jak to teraz zdobyc?
> Chyba gdzies zaginelo w pomroce dziejow.

W Internecie można bez problemu znaleźć oprogramowanie na wczesne
systemy oparte na MC6800 (sam niektóre z tych programów uruchomiłem na
samodzielnie złożonym komputerku na MC6802). Bez problemu można też
znaleźć soft chociażby na Apple-I. Tak więc znalezienie oprogramowania
pod CP/M nie powinno być problemem.

Z tego co widzę wśród miłośników retro system CP/M jest popularny między
innymi dlatego, że komputer pod niego można dość łatwo złożyć ze
standardowych i (jeszcze) relatywnie łatwo dostępnych elementów. Nie ma
tam żadnych układów scalonych, które były projektowane na specjalne
zamówienie producenta, a dziś trzeba by je odtworzyć w FPGA albo
wyrzeźbić z TTL-i.

Do tego współczesne komputery pod CP/M można dość łatwo budować w sposób
modułowy, bo tak były projektowane ich historyczne pierwowzory. Można
zacząć od prostej karty z procesorem i pamięcią i potem dodawać kolejne
moduły z I/O. Z tą różnicą, że nie trzeba już odtwarzać kompletnej
magistrali S-100, bo z niektórych napięć i sygnałów można dziś
zrezygnować. Stąd uproszczone implementacje, właśnie w rodzaju standardu
RC2014.

J.F

unread,
Jan 24, 2022, 9:14:27 AM1/24/22
to
On Mon, 24 Jan 2022 14:58:12 +0100, Atlantis wrote:
> On 24.01.2022 13:38, J.F wrote:
>> Tak swoja droga - byla masa "profesjonalnego" oprogramowania na CP/M
>> ... tylko jak to teraz zdobyc?
>> Chyba gdzies zaginelo w pomroce dziejow.
>
> W Internecie można bez problemu znaleźć oprogramowanie na wczesne
> systemy oparte na MC6800 (sam niektóre z tych programów uruchomiłem na
> samodzielnie złożonym komputerku na MC6802). Bez problemu można też
> znaleźć soft chociażby na Apple-I. Tak więc znalezienie oprogramowania
> pod CP/M nie powinno być problemem.

Tylko to komercyjne programy byly.

No dobra - moze hobbysci zdazyli zachowac, a producenta juz nie ma ..

> Z tego co widzę wśród miłośników retro system CP/M jest popularny między
> innymi dlatego, że komputer pod niego można dość łatwo złożyć ze
> standardowych i (jeszcze) relatywnie łatwo dostępnych elementów. Nie ma
> tam żadnych układów scalonych, które były projektowane na specjalne
> zamówienie producenta, a dziś trzeba by je odtworzyć w FPGA albo
> wyrzeźbić z TTL-i.

Latwo, ale po co? :-)

J.

heby

unread,
Jan 24, 2022, 9:43:56 AM1/24/22
to
On 24/01/2022 15:14, J.F wrote:
> Latwo, ale po co? :-)

Z tych samych przyczyn, co ludzie tracący życie, moczący kije ze
sznurkiem w celu złowienia jedzenia. Uzasadnić się tego nie da,
logicznie. Ale przeciez nie o to chodzi.

Atlantis

unread,
Jan 25, 2022, 4:28:25 AM1/25/22
to
On 24.01.2022 12:40, J.F wrote:

> Nie pierwsza to moja taka rada - spowolnij kwarc, i przeanalizuj co
> sie dzieje.

Hmm... Udało mi się skorzystać z nieco lepszego oscyloskopu cyfrowego.
Potwierdza się większość obserwacji wykonanych analizatorem logicznym,
jednak miałem też okazję sprawdzić sygnał zegarowy. Częstotliwość w
porządku - minimalnie poniżej 10 MHz. Natomiast to co mi się w nim nie
podoba to jego kształt - na pewno nie jest to prawidłowy przebieg
prostokątny. Zbocza są bardzo nachylone - bliżej temu do trójkąta albo
sinusoidy. Czy to może być przyczyną? Później wrzucę zdjęcie.


> A zworki do wyboru zegara UART wstawiles? zegary na wyjsciach CTC
> dobre? Predkosc UART prawidlowa ?

Zworek nie trzeba ustawiać. Płytka zawiera domyślne połączenia,
puszczające sygnał UART_CLK, bezpośrednio generatora kwarcowego. Gdyby
chcieć taktować UARTy za pośrednictwem CTC, trzeba by najpierw przeciąć
te ścieżki i wstawić zworki.

Jest aktywność na linii CE układu Z84C4010, więc program próbuje się z
nim dogadać.

Zauważyłem też, że układ czasem wpada w pętlę resetu, więc tak jakby
watchdog się aktywował. Jednak nie dzieje się to zawsze - nie
zaobserwowałem tego od razu i nie rzuciło mi się to też w oczy
wcześniej, podczas testów analizatorem logicznym).

J.F

unread,
Jan 25, 2022, 4:40:44 AM1/25/22
to
On Tue, 25 Jan 2022 10:28:23 +0100, Atlantis wrote:
> On 24.01.2022 12:40, J.F wrote:
>> Nie pierwsza to moja taka rada - spowolnij kwarc, i przeanalizuj co
>> sie dzieje.
>
> Hmm... Udało mi się skorzystać z nieco lepszego oscyloskopu cyfrowego.
> Potwierdza się większość obserwacji wykonanych analizatorem logicznym,
> jednak miałem też okazję sprawdzić sygnał zegarowy. Częstotliwość w
> porządku - minimalnie poniżej 10 MHz. Natomiast to co mi się w nim nie
> podoba to jego kształt - na pewno nie jest to prawidłowy przebieg
> prostokątny. Zbocza są bardzo nachylone - bliżej temu do trójkąta albo
> sinusoidy. Czy to może być przyczyną? Później wrzucę zdjęcie.

Moze, ale moze tez byc to skutek kiepskiego oscyloskopu lub kabla.

>> A zworki do wyboru zegara UART wstawiles? zegary na wyjsciach CTC
>> dobre? Predkosc UART prawidlowa ?
>
> Zworek nie trzeba ustawiać. Płytka zawiera domyślne połączenia,
> puszczające sygnał UART_CLK, bezpośrednio generatora kwarcowego. Gdyby
> chcieć taktować UARTy za pośrednictwem CTC, trzeba by najpierw przeciąć
> te ścieżki i wstawić zworki.
>
> Jest aktywność na linii CE układu Z84C4010, więc program próbuje się z
> nim dogadać.
>
> Zauważyłem też, że układ czasem wpada w pętlę resetu, więc tak jakby
> watchdog się aktywował. Jednak nie dzieje się to zawsze - nie
> zaobserwowałem tego od razu i nie rzuciło mi się to też w oczy
> wcześniej, podczas testów analizatorem logicznym).

J.

Dawid Rutkowski

unread,
Jan 25, 2022, 5:17:45 AM1/25/22
to
COBOLa trochę wątpię, prędzej pascala.
Turbo Pascala na współczesnym PC nie poużywasz, już na 386 BGI wylatywało na błędzie dzielenia przez 0 ;>

Ale ciekawe jest to, że pod CP/M pisali porządnie programy, używając wywołań systemu.
Pod Linuxem też piszą porządnie.
A na IBM PC taka kiszka - bo było sporo komputerów z MS-DOS, ale niekompatybilnych z ibm pc.
I jakby soft był dobrze pisany, to byłoby jak z CP/M - działałby i na tamtych.
A tu nie - musiał był klon (compaq wydał na napisanie kopii BIOSu milion - ówczesnych - dolców - to jest
jakieś cudo, czy ibm tyle wydał na napisanie oryginału?), inaczej nie szło.

Atlantis

unread,
Jan 25, 2022, 5:23:39 AM1/25/22
to
On 25.01.2022 10:40, J.F wrote:

> Moze, ale moze tez byc to skutek kiepskiego oscyloskopu lub kabla.

Oscyloskop to Siglent SDS 1104X-E w wersji 100 MHz. Więc z takimi
przebiegami raczej nie powinien mieć problemu. Zakładam, że pokazany
sygnał jest wiarygodny.

Mateusz Viste

unread,
Jan 25, 2022, 5:31:57 AM1/25/22
to
2022-01-25 o 02:17 -0800, Dawid Rutkowski napisał:
> Turbo Pascala na współczesnym PC nie poużywasz, już na 386 BGI
> wylatywało na błędzie dzielenia przez 0 ;>

Z pewnością nie na 386, raczej gdzieś w okolicach Pentium 200 MHz.
A poprawione wersje biblioteki BGI krążą po internecie, bez trudu można
znaleźć poprawkę egavga.bgi.

> Ale ciekawe jest to, że pod CP/M pisali porządnie programy, używając
> wywołań systemu. Pod Linuxem też piszą porządnie.
> A na IBM PC taka kiszka - bo było sporo komputerów z MS-DOS, ale
> niekompatybilnych z ibm pc. I jakby soft był dobrze pisany, to byłoby
> jak z CP/M - działałby i na tamtych.

Tu nie chodziło o porządne pisanie programów, tylko o to, aby te
programy działały szybko. Bo wołanie BIOSu to droga sprawa.


Mateusz

Cezar

unread,
Jan 25, 2022, 6:12:20 AM1/25/22
to
BTW, widziałem ostatnio że twój programik był gwiazdzą w LGR :-)

c.

Dawid Rutkowski

unread,
Jan 25, 2022, 6:15:11 AM1/25/22
to
wtorek, 25 stycznia 2022 o 11:31:57 UTC+1 Mateusz Viste napisał(a):
> 2022-01-25 o 02:17 -0800, Dawid Rutkowski napisał:
> > Turbo Pascala na współczesnym PC nie poużywasz, już na 386 BGI
> > wylatywało na błędzie dzielenia przez 0 ;>
> Z pewnością nie na 386, raczej gdzieś w okolicach Pentium 200 MHz.
> A poprawione wersje biblioteki BGI krążą po internecie, bez trudu można
> znaleźć poprawkę egavga.bgi.

Hmm, i na 3GHz CPU z 4MB cache nie wyleci na błędzie?
To ciekawe, ile by się na 386 uruchamiało ;>

Może rzeczywiście nie 386, bo tam turbo pascala miałem.
pentium miałem 166MHz - i tam już chyba nie działało (a wtedy "jeszcze nie było internetu" ;).
Ale być może nawet na poprzednim 5x86 133MHz też już nie.

> > Ale ciekawe jest to, że pod CP/M pisali porządnie programy, używając
> > wywołań systemu. Pod Linuxem też piszą porządnie.
> > A na IBM PC taka kiszka - bo było sporo komputerów z MS-DOS, ale
> > niekompatybilnych z ibm pc. I jakby soft był dobrze pisany, to byłoby
> > jak z CP/M - działałby i na tamtych.
> Tu nie chodziło o porządne pisanie programów, tylko o to, aby te
> programy działały szybko. Bo wołanie BIOSu to droga sprawa.

Ale właśnie chodzi o to, że na CP/M z wołaniem BIOSu dawało radę.
Chyba że ten BIOS PC tak fatalny, no ale aż tak?
To nie dzisiejsze czasy, gdy program księgowy wymaga kilku MB cache, bo inaczej pętle opóźniające nie dają pracować (bo niby dlaczego na komputerze, na którym bez problemów działał "raks2000", nagle "raks sql" nie potrafił zrobić tego samego? na to mi nie odpowiedział ich "informatyk" - za to twierdził kategorycznie, że jeśli firebird miałby być na innym komputerze, to łącze musi być gigabit - 100mbit będzie za mało. Wniosek - program raksa jest cudowny, to ten firebird działa fatalnie, no ale czego się spodziewać po darmowym programie...).
No i można też powiedzieć, że 8088 był jednak trochę szybszy niż 8080 czy Z80 z zegarami tamtego czasu, czyli poniżej 4MHZ, bo Z80H to jednak później niż 1981.

I dla ustalenia uwagi skupmy się na programach "biurowych", działających w tekście na MDA.
Gry to inna para kaloszy (dla CP/M, z braku spójnej grafiki, też nie było zbyt wiele).
W sopwitcha - mimo że się uruchamiał - nigdy jednak nie pograłem, nawet z wyłączonym turbo nie było szans - hmmm, nie próbowałem wyłączać zewnętrznego cache, ale to też pewnie by dużo nie pomogło.

Co go grafiki zaś to wciąż zadziwia, jak dobry był monitor do MDA i jakim super pomysłem był hercules (ciekawe, skąd brali pamięci - czy taki pomysł jak sir Sinclair, żeby brać w połowie uszkodzone - ech, szkoda, że nie wpadł na to, żeby dorobić bankowanie w standardzie i możliwość wymiany tych 32kB połówek na pełne 64kB - oraz uruchomienie CP/M - inna sprawa, że do dziś mnie zadziwia, że na spectrum można było uruchomić terminal dla CP/M na FDD3000 - bo co to za terminal w 32*24 znaki? używał tak ktoś? timex jakoś upychał 64*24 - ale jak to wyglądało na telewizorze?).
Przecież to było w 1982 - i dawało 720*348 na 12-calowym monitorze.
macintosh z mc68000 w 1984 miał 512*342 na 9 calach. No ale lepsze pomysły na wykorzystanie.

J.F

unread,
Jan 25, 2022, 6:27:13 AM1/25/22
to
On Tue, 25 Jan 2022 02:17:44 -0800 (PST), Dawid Rutkowski wrote:
> poniedziałek, 24 stycznia 2022 o 13:38:41 UTC+1 J.F napisał(a):
>> On Mon, 24 Jan 2022 00:59:46 -0800 (PST), Dawid Rutkowski wrote:
>>> niedziela, 23 stycznia 2022 o 22:24:50 UTC+1 stary grzyb napisał(a):
>>>>> On 23/01/2022 21:33, Dawid Rutkowski wrote:

>> Tak swoja droga - byla masa "profesjonalnego" oprogramowania na CP/M
>> ... tylko jak to teraz zdobyc?
>> Chyba gdzies zaginelo w pomroce dziejow.
>>
>> No i po co zdobywac - pobawic sie kompilatorem Cobola czy Dbase ?
>
> COBOLa trochę wątpię, prędzej pascala.

Byl i Cobol - przegladalem archiwa czasopism, sporo reklam na CP/M
bylo.


http://www.retroarchive.org/cpm/lang/lang.htm
No prosze - MS Cobol. Ale nie, reklamy chyba byly innej firmy.

P.S. Jaka fajna czcionka.


https://archive.org/details/byte-magazine-rescans
jakis rocznik 1984, czy 1985 powiedzmy ...


> Ale ciekawe jest to, że pod CP/M pisali porządnie programy, używając wywołań systemu.
> Pod Linuxem też piszą porządnie.
> A na IBM PC taka kiszka - bo było sporo komputerów z MS-DOS, ale niekompatybilnych z ibm pc.
> I jakby soft był dobrze pisany, to byłoby jak z CP/M - działałby i na tamtych.
> A tu nie - musiał był klon (compaq wydał na napisanie kopii BIOSu milion - ówczesnych - dolców - to jest
> jakieś cudo, czy ibm tyle wydał na napisanie oryginału?), inaczej nie szło.

Na CP/M sie po prostu nie dalo inaczej - za duzy rozrzut sprzetu.
Pod L/inuxem tez sie nie da inaczej - system nie pozwoli.

A na PC nie bylo innego wyjscia - za slaby ten system, trzeba bylo
siegac do sprzetu.
Z CP/M tez zreszta dramat, bo albo masz jakis porzadny terminal,
albo jestes skazany na ED :-)

J.

Mateusz Viste

unread,
Jan 25, 2022, 7:08:05 AM1/25/22
to
2022-01-25 o 03:15 -0800, Dawid Rutkowski napisał:
> wtorek, 25 stycznia 2022 o 11:31:57 UTC+1 Mateusz Viste napisał(a):
> > 2022-01-25 o 02:17 -0800, Dawid Rutkowski napisał:
> > > Turbo Pascala na współczesnym PC nie poużywasz, już na 386 BGI
> > > wylatywało na błędzie dzielenia przez 0 ;>
> > Z pewnością nie na 386, raczej gdzieś w okolicach Pentium 200 MHz.
> > A poprawione wersje biblioteki BGI krążą po internecie, bez trudu
> > można znaleźć poprawkę egavga.bgi.
>
> Hmm, i na 3GHz CPU z 4MB cache nie wyleci na błędzie?

Przetestuj, daj znać. Sam jestem ciekaw. :)

> To ciekawe, ile by się na 386 uruchamiało ;>

O ile wiem - tyle samo. Choć przez lata pojawiły się różne rodzaje i
sposoby poprawy tego problemu, nie wykluczam że niektóre są miej udane
od innych. Moja przygoda z TP była relatywnie krótka, nie
doktoryzowałem się.

> Może rzeczywiście nie 386, bo tam turbo pascala miałem.
> pentium miałem 166MHz - i tam już chyba nie działało (a wtedy
> "jeszcze nie było internetu" ;). Ale być może nawet na poprzednim
> 5x86 133MHz też już nie.

Możliwe, że tak było. Na DX4 nie miałem tego problemu, pojawił się
jakoś później, właśnie w okolicach 200 MHz, ale przyznaję, że nie
testowałem pośrednich CPU. W każdym razie 386 był już bardzo daleko, i
postrzegany wówczas już w kategoriach muzealnych.

> Ale właśnie chodzi o to, że na CP/M z wołaniem BIOSu dawało radę.
> Chyba że ten BIOS PC tak fatalny, no ale aż tak?

Kwestia API... Na XT odświeżenie ekranu wymagało zawołania 2000x tego:
http://www.ctyme.com/intr/rb-0099.htm
Nie było funkcji "pobierz cały ekran z bufora i wrzuć do hardware".

Programiści pisali więc bezpośrednio do VRAM, bo to było wielokrotnie
szybsze. Raz, że można było zrzucić pełny ekran w czasie jednego
VBLANK, a dwa że nie trzeba było korzystać z BIOSu który mógł być w
dużo wolniejszej pamięci przy braku ROM shadowing.

Trzeba do tego dodać, że BIOS PC-klonów przez długi czas był nie do
końca zgodny z PC... Co można stwierdzić po lekturze RBIL i ilości
wyjątków przy różnych wywołaniach.

Reasumując - ludzie nie pisali kiepskich programów, po prostu robili co
mogli aby te programy działały zadowalająco sprawnie mając do
dyspozycji to, co było.


Mateusz

J.F

unread,
Jan 25, 2022, 7:10:48 AM1/25/22
to
On Tue, 25 Jan 2022 03:15:10 -0800 (PST), Dawid Rutkowski wrote:
> wtorek, 25 stycznia 2022 o 11:31:57 UTC+1 Mateusz Viste napisał(a):
>> 2022-01-25 o 02:17 -0800, Dawid Rutkowski napisał:

>>> Ale ciekawe jest to, że pod CP/M pisali porządnie programy, używając
>>> wywołań systemu. Pod Linuxem też piszą porządnie.
>>> A na IBM PC taka kiszka - bo było sporo komputerów z MS-DOS, ale
>>> niekompatybilnych z ibm pc. I jakby soft był dobrze pisany, to byłoby
>>> jak z CP/M - działałby i na tamtych.
>> Tu nie chodziło o porządne pisanie programów, tylko o to, aby te
>> programy działały szybko. Bo wołanie BIOSu to droga sprawa.
>
> Ale właśnie chodzi o to, że na CP/M z wołaniem BIOSu dawało radę.

Po prostu nie bylo innego wyjscia - sprzet byl nieokreslony, zostawał
BIOS/BDOS do wykorzystania.

> Chyba że ten BIOS PC tak fatalny, no ale aż tak?

Byl przede wszystkim wzorowany na tym z CP/M.

Jesli chodzi o funkcje ekranowe, to byl po prostu zbyt wolny i zbyt
ograniczony - prosciej bylo zapisac wprost w pamieci ekranu.

Obsluga portow szeregowych - fatalna.
Potrzebowales cos ambitniejszego, to trzeba bylo buforowac na
przerwaniach - i caly bios na smietnik.

Potem zaczela sie moda na wielozadaniowosc, a tu sie okazuje, ze te
funkcje nie są "reentant".

> No i można też powiedzieć, że 8088 był jednak trochę
> szybszy niż 8080 czy Z80 z zegarami tamtego czasu, czyli poniżej
> 4MHZ, bo Z80H to jednak później niż 1981.

Troche szybszy, ale niewiele - postep w zegarach Z80 tez byl.
Wiekszy zysk byl na architekturze - czy to wewnetrznej 16-bit,
czy zewnetrznej magistrali.

> Co go grafiki zaś to wciąż zadziwia, jak dobry był monitor do MDA i

IBM mial troche doswiadczenia w komputerach, terminalach i
uzytkownikach.

> jakim super pomysłem był hercules

Ale to juz nie IBM.
Choc tak prawde mowiac ... udana karta graficzna to dopiero jakas SVGA
:-)

>(ciekawe, skąd brali pamięci -

Chyba juz nie bylo problemu.

> czy taki pomysł jak sir Sinclair, żeby brać w połowie uszkodzone -
> ech, szkoda, że nie wpadł na to, żeby dorobić bankowanie w
> standardzie i możliwość wymiany tych 32kB połówek na pełne 64kB -
> oraz uruchomienie CP/M - inna sprawa, że do dziś mnie zadziwia, że
> na spectrum można było uruchomić terminal dla CP/M na FDD3000 - bo
> co to za terminal w 32*24 znaki? używał tak ktoś?

Ktos widac uzywal.
Pytanie do czego :-)

> timex jakoś upychał 64*24

Zawsze to lepiej, nawet duzo lepiej.

>- ale jak to wyglądało na telewizorze?).

A nie bylo wyjscia na monitor?

> Przecież to było w 1982 - i dawało 720*348 na 12-calowym monitorze.
> macintosh z mc68000 w 1984 miał 512*342 na 9 calach. No ale lepsze pomysły na wykorzystanie.

Pamietam Amstrada, z firmowym kolorowym monitorem.

Niestety, w trybie 640 wychodzily jakies dwa pixele na jedna dziurke
maski. Tryb byl chyba mono.

Ale i CGA w IBM nie lepsza ...

J.

Mateusz Viste

unread,
Jan 25, 2022, 7:14:02 AM1/25/22
to
2022-01-25 o 11:12 +0000, Cezar napisał:
> BTW, widziałem ostatnio że twój programik był gwiazdzą w LGR :-)

Nie kojarzę co to LGR, ale domyślam się, że chodzi o którąś z moich
aplikacji retro. Od czasów nCoV19 odnotowałem znaczący wzrost
zainteresowania w tym kontekście. Widać ludziom ostro się nudzi. :)

Mateusz

Cezar

unread,
Jan 25, 2022, 8:44:03 AM1/25/22
to
tak, dosmid ...

wystepował w kilku odcinkach...

https://youtu.be/bibkIYw9LlQ?t=209

https://youtu.be/USHvvSbYmJA?t=512

J.F

unread,
Jan 25, 2022, 10:01:19 AM1/25/22
to
On Tue, 25 Jan 2022 03:15:10 -0800 (PST), Dawid Rutkowski wrote:
> wtorek, 25 stycznia 2022 o 11:31:57 UTC+1 Mateusz Viste napisał(a):
>> 2022-01-25 o 02:17 -0800, Dawid Rutkowski napisał:

>>> Ale ciekawe jest to, że pod CP/M pisali porządnie programy, używając
>>> wywołań systemu. Pod Linuxem też piszą porządnie.
>>> A na IBM PC taka kiszka - bo było sporo komputerów z MS-DOS, ale
>>> niekompatybilnych z ibm pc. I jakby soft był dobrze pisany, to byłoby
>>> jak z CP/M - działałby i na tamtych.
>> Tu nie chodziło o porządne pisanie programów, tylko o to, aby te
>> programy działały szybko. Bo wołanie BIOSu to droga sprawa.
>
> Ale właśnie chodzi o to, że na CP/M z wołaniem BIOSu dawało radę.
> Chyba że ten BIOS PC tak fatalny, no ale aż tak?

A propos - jest gdzies jakis emulator CP/M, ale z terminalem?

Bo narasta we mnie ochota odpalenia czegos Turbo Borlanda

https://oldcomputers.dyndns.org/public/pub/manuals/turbomodula2_bw.pdf

ale jak tak czytam dodatek B o instalacji ... moze jednak wybic sobie
durne pomysly, nawet jesli to tylko jedno popoludnie ...

J.

jacek pozniak

unread,
Jan 25, 2022, 10:33:07 AM1/25/22
to
Atlantis wrote:

> On 24.01.2022 12:40, J.F wrote:
>
>> Nie pierwsza to moja taka rada - spowolnij kwarc, i przeanalizuj co
>> sie dzieje.
>
> Hmm... Udało mi się skorzystać z nieco lepszego oscyloskopu cyfrowego.
> Potwierdza się większość obserwacji wykonanych analizatorem logicznym,
> jednak miałem też okazję sprawdzić sygnał zegarowy. Częstotliwość w
> porządku - minimalnie poniżej 10 MHz. Natomiast to co mi się w nim nie
> podoba to jego kształt - na pewno nie jest to prawidłowy przebieg
> prostokątny. Zbocza są bardzo nachylone - bliżej temu do trójkąta albo
> sinusoidy. Czy to może być przyczyną? Później wrzucę zdjęcie.
>
>
Spróbuj rezystorem 470 podciągnąć do plusa linię zegara. Pamiętam, że miałem
straszne problemy z pamięciami dynamicznymi jeśli go nie było. Podejrzałem
go na jakimś schemacie jakiegoś kompa z Z80.

Może pomoże :)

jp

--
jp

www.flowservice.pl
www.flowsystem.pl

Dawid Rutkowski

unread,
Jan 26, 2022, 5:30:12 AM1/26/22
to
wtorek, 25 stycznia 2022 o 13:08:05 UTC+1 Mateusz Viste napisał(a):
> 2022-01-25 o 03:15 -0800, Dawid Rutkowski napisał:
> > wtorek, 25 stycznia 2022 o 11:31:57 UTC+1 Mateusz Viste napisał(a):
> > > 2022-01-25 o 02:17 -0800, Dawid Rutkowski napisał:
> > > > Turbo Pascala na współczesnym PC nie poużywasz, już na 386 BGI
> > > > wylatywało na błędzie dzielenia przez 0 ;>
> > > Z pewnością nie na 386, raczej gdzieś w okolicach Pentium 200 MHz.
> > > A poprawione wersje biblioteki BGI krążą po internecie, bez trudu
> > > można znaleźć poprawkę egavga.bgi.
> >
> > Hmm, i na 3GHz CPU z 4MB cache nie wyleci na błędzie?
> Przetestuj, daj znać. Sam jestem ciekaw. :)

O, trzeba dysk z DOSem podłączyć, dobrze, że ID na płycie głównej ma.
W sumie w tym komputerze mam jeszcze nawet stację 3,5" (i gniazdo na płycie) - ale dyskietek to już chyba nie,
więc nawet nie ma jak sprawdzić, czy działa.
I nawet DOS się uruchomi - a jakiś czas temu miałem problem, bo trzeba było zrobić linuxowy X-Terminal na komputerze dostarczonym przez klienta (przyjechał z monitorem, bo miał tylko displayport - a ja takiego monitora nie mam) i zonk - miał taki BIOS, że z pendrive'a po staremu instalka ruszała, ale z twardego dysku tylko na uefi pozwalał.
Trzeba było dać pokój ze slackware 13.0.0.0.0 i zrobić ubuntu.
Oczywiście potem podłączyli to do internetu, zrobił się auto-upgrade i przestało działać...

> > Może rzeczywiście nie 386, bo tam turbo pascala miałem.
> > pentium miałem 166MHz - i tam już chyba nie działało (a wtedy
> > "jeszcze nie było internetu" ;). Ale być może nawet na poprzednim
> > 5x86 133MHz też już nie.
> Możliwe, że tak było. Na DX4 nie miałem tego problemu, pojawił się
> jakoś później, właśnie w okolicach 200 MHz, ale przyznaję, że nie
> testowałem pośrednich CPU. W każdym razie 386 był już bardzo daleko, i
> postrzegany wówczas już w kategoriach muzealnych.

Szkoda, że te 386 i 5x86 sprzedałem. Ale moje pentium 166 znalazłem ostatnio w kącie w firmie.
Z SC Trio64V+ oraz ISA'ową kartą dźwiękową z dodanym syntezerem wavetable.
Tylko nie mam pojęcia, gdzie szukać mojej kolekcji MIDów :(

Zasilacz AT mam, ciekawe, czy się to uruchomi - późniejsze płyty poumierały, moja do durona i druga do athlona, w której raz wymieniłem kondensatory - i nawet nikt jej nie użył, bo zanim wziąłem się za wymianę, to do tej obudowy kupiłem już nową płytę, bo nie można było czekać - i te kondensatory też się wypęczniły, bez używania...

> > Ale właśnie chodzi o to, że na CP/M z wołaniem BIOSu dawało radę.
> > Chyba że ten BIOS PC tak fatalny, no ale aż tak?
> Kwestia API... Na XT odświeżenie ekranu wymagało zawołania 2000x tego:
> http://www.ctyme.com/intr/rb-0099.htm
> Nie było funkcji "pobierz cały ekran z bufora i wrzuć do hardware".
>
> Programiści pisali więc bezpośrednio do VRAM, bo to było wielokrotnie
> szybsze. Raz, że można było zrzucić pełny ekran w czasie jednego
> VBLANK, a dwa że nie trzeba było korzystać z BIOSu który mógł być w
> dużo wolniejszej pamięci przy braku ROM shadowing.

No dobra, pisali jak pisali, bo było szybciej - ale czy musieli?
Zapewne mogli, bo jak ibm zrobił komputer osobisty, nieważne, jak kijowy, wcale nie lepszy od innych (ew. display i klawiatura - tak jak mówił Steve Jobs - na cholerę komu komputer z kolorem na monitorze, skoro przygotowuje się na nim czarno-białe dokumenty?), a do tego koszmarnie drogi i przez spory czas praktycznie nie do kupienia - to ten komputer jest najlepszy i możemy go traktować jako jedyny obowiązujący.

Tyle że CP/M miał chyba takie samo API - wyświetl znak, przyjmij znak - a dawało się robić programy używając BIOS.
Nie wiem, jak działające, ale pewnie dobrze, skoro się to sprzedawało (no chyba że jedynie z braku laku, a apple II było jeszcze droższe - no ale jak ktoś kupuje komputer za 3k$, żeby uruchamiać na nim visicalca kosztującego 100$ - w żałosnym przekoneniu, że komputery mogą być programowanie przez laików - to na biednego nie trafiło).

A komputery na CP/M były przecież jeszcze słabsze od PC - 8080 lub Z80 (z 4-bitowym ALU) na 2,5 max.4MHz.
PC nie był może dużo mocniejszy - 4,77MHz, taka sama 8-bit szyna danych - ale szybszy jednak nieco był.
No chyba że procesor był za szybki dla pamięci, z którymi go sprzedawali ;>
To chyba było jakoś tak, że XT-286 był szybszy od AT, bo w AT były pamięci z wait-state, a w XT-286 0-wait state ;>
Ależ to bzdura.. Muszę poczytać, jak się realizuje taki wait-state w dostępie do pamięci. Na I2C wiadomo, ale z pamięciami?

> Trzeba do tego dodać, że BIOS PC-klonów przez długi czas był nie do
> końca zgodny z PC... Co można stwierdzić po lekturze RBIL i ilości
> wyjątków przy różnych wywołaniach.

Hmm, to jednak compaq i phoenix nie zrobili 100% dobrego?
Jest gdzieś o tym jakaś historia? Bo wiki twierdzi, że było OK.

A właściwie to czy int 10h nie jest jednak w BIOS karty graficznej?

Mateusz Viste

unread,
Jan 26, 2022, 7:31:24 AM1/26/22
to
2022-01-26 o 02:30 -0800, Dawid Rutkowski napisał:
> No dobra, pisali jak pisali, bo było szybciej - ale czy musieli?

Fakt - nie musieli. Mogli pisać parszywie wolne programy i umrzeć z
głodu, bo programy konkurencji działają sprawnie i gładko.

> Tyle że CP/M miał chyba takie samo API - wyświetl znak, przyjmij znak
> - a dawało się robić programy używając BIOS.

Skoro mówisz o API CP/M, to już nie BIOS, tylko funkcje systemowe, a te
wołały zapewne bezpośrednio hardware. DOS też miał takie funkcje, ale
ograniczone do poziomu CP/M i też boleśnie powolne, jeśli idzie o
malowanie po ekranie.

> Hmm, to jednak compaq i phoenix nie zrobili 100% dobrego?

Pierwszy z brzegu przykład dot. dość podstawowej operacji
odczytu pozycji kursora:
http://www.ctyme.com/intr/rb-0088.htm

Wynika z tego, że BIOS Phoenix, w przeciwieństwie do IBM, resetował
rejestr AL... i nieszczęście gotowe, jeśli program się tego nie
spodziewał.

> A właściwie to czy int 10h nie jest jednak w BIOS karty graficznej?

Dziś (tzn. wczoraj), tak. Przedwczoraj nie.


Mateusz

J.F

unread,
Jan 27, 2022, 5:14:11 AM1/27/22
to
On Wed, 26 Jan 2022 13:31:21 +0100, Mateusz Viste wrote:
> 2022-01-26 o 02:30 -0800, Dawid Rutkowski napisał:
>> No dobra, pisali jak pisali, bo było szybciej - ale czy musieli?
>
> Fakt - nie musieli. Mogli pisać parszywie wolne programy i umrzeć z
> głodu, bo programy konkurencji działają sprawnie i gładko.
>
>> Tyle że CP/M miał chyba takie samo API - wyświetl znak, przyjmij znak
>> - a dawało się robić programy używając BIOS.
>
> Skoro mówisz o API CP/M, to już nie BIOS, tylko funkcje systemowe, a te
> wołały zapewne bezpośrednio hardware.

A gdzie tam - BDOS w CP/M byl uniwersalny, a wrecz jeden, jesli nie
liczyc roznych wersji.
Wszystko co dotyczylo hardware musialo przechodzic przez BIOS.

W dodatku nie bylo w zasadzie zadnych funkcji sterowania ekranem -
wsystko zalezalo od tego jaki terminal byl podpiety lub emulowany.

I jeszcze np taki niuans
http://www.seasip.info/Cpm/bdos.html

"BDOS function 9 (C_WRITESTR) - Output string
Supported by: All versions
Entered with C=9, DE=address of string.

Display a string of ASCII characters, terminated with the $ character.
Thus the string may not contain $ characters - so, for example, the
VT52 cursor positioning command ESC Y y+32 x+32 will not be able to
use row 4.

Under CP/M 3 and above, the terminating character can be changed using
BDOS function 110. "

>> A właściwie to czy int 10h nie jest jednak w BIOS karty graficznej?
>
> Dziś (tzn. wczoraj), tak. Przedwczoraj nie.

Juz VGA podstawiala wlasny BIOS.

J.

Mateusz Viste

unread,
Jan 27, 2022, 5:45:11 AM1/27/22
to
2022-01-27 o 11:14 +0100, J.F napisał:
> > Skoro mówisz o API CP/M, to już nie BIOS, tylko funkcje systemowe,
> > a te wołały zapewne bezpośrednio hardware.
>
> A gdzie tam - BDOS w CP/M byl uniwersalny, a wrecz jeden, jesli nie
> liczyc roznych wersji.
> Wszystko co dotyczylo hardware musialo przechodzic przez BIOS.

No dobra, ale z tego co teraz czytam, to "BIOS" był częścią CP/M :)
Tą częścią wołającą bezpośrednio sprzęt właśnie.

> >> A właściwie to czy int 10h nie jest jednak w BIOS karty
> >> graficznej?
> >
> > Dziś (tzn. wczoraj), tak. Przedwczoraj nie.
>
> Juz VGA podstawiala wlasny BIOS.

VGA to jest właśnie wczoraj, razem z EGA i MCGA. Ale mowa była, zdaje
się, o IBM PC z MDA (tj. tak sugerował Dawid).


Mateusz

Dawid Rutkowski

unread,
Jan 27, 2022, 5:50:06 AM1/27/22
to
środa, 26 stycznia 2022 o 13:31:24 UTC+1 Mateusz Viste napisał(a):
> 2022-01-26 o 02:30 -0800, Dawid Rutkowski napisał:
> > No dobra, pisali jak pisali, bo było szybciej - ale czy musieli?
> Fakt - nie musieli. Mogli pisać parszywie wolne programy i umrzeć z
> głodu, bo programy konkurencji działają sprawnie i gładko.

Hmm, w sumie to komputera z CP/M to nawet nie widziałem, nie mówiąc o używaniu.
A ze starych PC-tów to tetrisa na XT widziałem - hmm, tak mi się zdaje, że kolory były
CGA, ale może to był tryb CGA, a karta już EGA a nawet lepsza, bo chyba ChiWriter na tym
działał - a może to było już nawet AT?

No ale tak czy siak - programy na CP/M używające jego API, projektowanego jeszcze
w czasach teletype, a nie terminala, jakoś działały - np. tak wordstar z pełnoekranowym edytorem.
Nie sądzę, by programy na PC w trybie tekstowym wymagały jakieś wspanialszej animacji.
Więc na CP/M dawało się przez prymitywne wywołania systemowe, a na PC już nie?
Nad tym się właśnie zastanawiam.

Chyba że CP/M ten wordstar potrafił w sposób naprawdę widoczny odświeżać ekran, takie
"odwijanie papieru z rolki" ;>

> > Tyle że CP/M miał chyba takie samo API - wyświetl znak, przyjmij znak
> > - a dawało się robić programy używając BIOS.
> Skoro mówisz o API CP/M, to już nie BIOS, tylko funkcje systemowe, a te
> wołały zapewne bezpośrednio hardware. DOS też miał takie funkcje, ale
> ograniczone do poziomu CP/M i też boleśnie powolne, jeśli idzie o
> malowanie po ekranie.

Funkcje były niby BDOSa - ale tak naprawdę FDOSa - czyli połączonych BDOSa (uniwersalnego) i BIOSu (dostowywanego
do konkretnego komputera).
A BIOS oczywiście musiał odnosić się do sprzętu, no bo jak nie - nawet jak miał tylko wysłać znak na port szeregowy.
I było API niżej-poziomowe - czyli program jak chciał mógł sobie odczytać/zapisać sektor dysku - i wyżej-poziomowe - czyli mógł zrzucić na OS tworzenie czy skasowanie pliku.

> > A właściwie to czy int 10h nie jest jednak w BIOS karty graficznej?
> Dziś (tzn. wczoraj), tak. Przedwczoraj nie.

No cóż, ja miałem od razu VGA - i to nadzbiór.
Ale do dziś mnie zastanawia - jak taka karta wyświetlała na początku jakieś napisy (zwykle w trybie tekstowym), np. swoją nazwę, to czy taki obraz tworzył przy resecie jakiś procesor na tej karcie czy też był to efekt BIOS-skanu i wywoływania przez BIOS PC-ta initu z BIOSu karty graficznej?

J.F

unread,
Jan 27, 2022, 5:59:04 AM1/27/22
to
On Thu, 27 Jan 2022 11:45:08 +0100, Mateusz Viste wrote:
> 2022-01-27 o 11:14 +0100, J.F napisał:
>>> Skoro mówisz o API CP/M, to już nie BIOS, tylko funkcje systemowe,
>>> a te wołały zapewne bezpośrednio hardware.
>>
>> A gdzie tam - BDOS w CP/M byl uniwersalny, a wrecz jeden, jesli nie
>> liczyc roznych wersji.
>> Wszystko co dotyczylo hardware musialo przechodzic przez BIOS.
>
> No dobra, ale z tego co teraz czytam, to "BIOS" był częścią CP/M :)
> Tą częścią wołającą bezpośrednio sprzęt właśnie.

Tzn - BDOS napisal DR.
BIOS pisal producent komputera.

Czy byl czescia ... no byl, bez BIOS CP/M nie dziala :-)

A i program uzytkownika mogl i funkcje BIOS wołac, byly do dyspozycji.

>>>> A właściwie to czy int 10h nie jest jednak w BIOS karty
>>>> graficznej?
>>>
>>> Dziś (tzn. wczoraj), tak. Przedwczoraj nie.
>>
>> Juz VGA podstawiala wlasny BIOS.
>
> VGA to jest właśnie wczoraj, razem z EGA i MCGA. Ale mowa była, zdaje
> się, o IBM PC z MDA (tj. tak sugerował Dawid).

A masz racje - juz EGA miala wlasny.

Owszem - standardowy BIOS peceta obslugiwal MDA i CGA.
Lepsze wymagaly biosu karty.

EGA ... no wiem, mam pewne opory nazywac to "wczoraj" :-)

Na pewno kolejna generacja, nie jest to "zwykly pecet" :-)

Tak czy inaczej - wszyscy Biosu uzywali tylko do wlaczenia trybu
graficznego na karcie, albo nawet i to nie.

Cala reszta to juz bezposrednio w sprzet.

J.

Mateusz Viste

unread,
Jan 27, 2022, 6:04:33 AM1/27/22
to
2022-01-27 o 02:50 -0800, Dawid Rutkowski napisał:
> Chyba że CP/M ten wordstar potrafił w sposób naprawdę widoczny
> odświeżać ekran, takie "odwijanie papieru z rolki" ;>

Tutaj można zobaczyć, jak to wyglądało:
https://youtu.be/Z21kW0uQOyE?t=73

> Ale do dziś mnie zastanawia - jak taka karta wyświetlała na początku
> jakieś napisy (zwykle w trybie tekstowym), np. swoją nazwę, to czy
> taki obraz tworzył przy resecie jakiś procesor na tej karcie czy też
> był to efekt BIOS-skanu i wywoływania przez BIOS PC-ta initu z BIOSu
> karty graficznej?

To drugie. Tj. option ROM.


Mateusz

Jarosław Sokołowski

unread,
Jan 27, 2022, 6:31:48 AM1/27/22
to
Pan J.F napisał (myląc się przy tym):

> A i program uzytkownika mogl i funkcje BIOS wołac, byly do dyspozycji.
^
literówka

--
Jarek

Mateusz Viste

unread,
Jan 27, 2022, 6:35:33 AM1/27/22
to
2022-01-27 o 11:59 +0100, J.F napisał:
> On Thu, 27 Jan 2022 11:45:08 +0100, Mateusz Viste wrote:
> > No dobra, ale z tego co teraz czytam, to "BIOS" był częścią CP/M :)
> > Tą częścią wołającą bezpośrednio sprzęt właśnie.
>
> Tzn - BDOS napisal DR.
> BIOS pisal producent komputera.

Tutaj BIOS nazywają "CP/M I/O drivers", i wszystko podpisane przez DR:

http://www.nesssoftware.com/nesssoftware/doc/dr/cpm_source/bios.pdf

Jakiś wyjątek?


Mateusz

J.F

unread,
Jan 27, 2022, 6:36:15 AM1/27/22
to
On Thu, 27 Jan 2022 02:50:05 -0800 (PST), Dawid Rutkowski wrote:
> środa, 26 stycznia 2022 o 13:31:24 UTC+1 Mateusz Viste napisał(a):
>> 2022-01-26 o 02:30 -0800, Dawid Rutkowski napisał:
>>> No dobra, pisali jak pisali, bo było szybciej - ale czy musieli?
>> Fakt - nie musieli. Mogli pisać parszywie wolne programy i umrzeć z
>> głodu, bo programy konkurencji działają sprawnie i gładko.
>
> Hmm, w sumie to komputera z CP/M to nawet nie widziałem, nie mówiąc o używaniu.
> A ze starych PC-tów to tetrisa na XT widziałem - hmm, tak mi się zdaje, że kolory były
> CGA, ale może to był tryb CGA, a karta już EGA a nawet lepsza, bo chyba ChiWriter na tym
> działał - a może to było już nawet AT?
>
> No ale tak czy siak - programy na CP/M używające jego API, projektowanego jeszcze
> w czasach teletype, a nie terminala, jakoś działały - np. tak wordstar z pełnoekranowym edytorem.

na teletype to dzialal ED :-)

> Nie sądzę, by programy na PC w trybie tekstowym wymagały jakieś wspanialszej animacji.
> Więc na CP/M dawało się przez prymitywne wywołania systemowe, a na PC już nie?
> Nad tym się właśnie zastanawiam.
>
> Chyba że CP/M ten wordstar potrafił w sposób naprawdę widoczny odświeżać ekran, takie
> "odwijanie papieru z rolki" ;>

Wordstarowi sie definiowalo sekwencje sterujace do terminala.
Tzn wpisywalo debuggerem gdzies na poczatku programu.

Jak terminal byl porzadny, to jakis fikusny scroll tam byl,
i dzialalo nawet zgrabnie.
Bardziej mi przeszkadzalo ze ja mu Ctrl-costam aby szukac ... i
komputer zamiera, bo sie jakas nakladka z dysku ładuje.

W biosie IBM PC niby jakies operacje dla scroll sa, ale chyba nikt nie
korzystal - rozkaz MOVSB robil to prosciej :-)

>>> A właściwie to czy int 10h nie jest jednak w BIOS karty graficznej?
>> Dziś (tzn. wczoraj), tak. Przedwczoraj nie.
>
> No cóż, ja miałem od razu VGA - i to nadzbiór.
> Ale do dziś mnie zastanawia - jak taka karta wyświetlała na początku
> jakieś napisy (zwykle w trybie tekstowym), np. swoją nazwę, to czy
> taki obraz tworzył przy resecie jakiś procesor na tej karcie czy
> też był to efekt BIOS-skanu i wywoływania przez BIOS PC-ta initu z
> BIOSu karty graficznej?

Dokladnie tak.

Dlugo na tych kartach nie bylo procesora az tak ambitnego,
a i jak byl, to chyba sam nie wyswietlal niczego.

J


J.F

unread,
Jan 27, 2022, 6:58:36 AM1/27/22
to
To jest cos dziwnego. Jakas implementacja wzorcowa?

Spojrz na adres 1500 - tam jest wektor skokow do funkcji, tak ma byc.

I mamy tam np CONIN, CONOUT (console input/output)

15F8 - jest i CONIN. Wola CI, kasuje bit Parity.

1601 - CONOUT. Wywołuje CO. I sprawdza, czy to był LF,
a jesli tak to małe czekanko

Widzisz gdzies CI, CO ?

Kolejne funckje - SELDSK - co ona wlasciwie robi?
SETTRK, SETSEC, SETDMA - tylko zapamietuja wartosci, jesli dobrze
widze.

READ, WRITE - wolaja SETFUNC, i WAIT0. WAIT nawet ladnie rozpisany.
A SETFUNC widzisz? A przeciez czytanie i pisanie zalezy od uzytego
sterownika dyskietek. Czekanie zreszta tez.

J.






Atlantis

unread,
Jan 30, 2022, 4:19:12 AM1/30/22
to
On 25.01.2022 16:33, jacek pozniak wrote:

> Spróbuj rezystorem 470 podciągnąć do plusa linię zegara. Pamiętam, że miałem
> straszne problemy z pamięciami dynamicznymi jeśli go nie było. Podejrzałem
> go na jakimś schemacie jakiegoś kompa z Z80.

Chyba faktycznie spróbuję, bo ten rezystor występuje na schematach
większości klonów ZX Spectrum, chociaż nie zawsze z tak niską wartością
(np. w Sizifie-512 jest 2k). Tutaj jednak go brakuje.
Jak to nie pomoże, to poszukam wolniejszego generatora kwarcowego.
0 new messages