RTV forum PL | NewsGroups PL

Trudności z uruchomieniem komputera Z80 w konfiguracji CP/M - co sprawdzić?

Komputerek CP/M na Z80 - problem z uruchomieniem

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Trudności z uruchomieniem komputera Z80 w konfiguracji CP/M - co sprawdzić?

Goto page Previous  1, 2, 3

jacek pozniak
Guest

Tue Jan 25, 2022 4:33 pm   



Atlantis wrote:

Quote:
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
Guest

Wed Jan 26, 2022 12:30 pm   



wtorek, 25 stycznia 2022 o 13:08:05 UTC+1 Mateusz Viste napisał(a):
Quote:
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. Smile

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ć...

Quote:
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" Wink. 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...

Quote:
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?

Quote:
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
Guest

Wed Jan 26, 2022 1:31 pm   



2022-01-26 o 02:30 -0800, Dawid Rutkowski napisał:
Quote:
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.

Quote:
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.

Quote:
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ł.

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

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


Mateusz

J.F
Guest

Thu Jan 27, 2022 11:14 am   



On Wed, 26 Jan 2022 13:31:21 +0100, Mateusz Viste wrote:
Quote:
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. "

Quote:
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
Guest

Thu Jan 27, 2022 11:45 am   



2022-01-27 o 11:14 +0100, J.F napisał:
Quote:
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 Smile
Tą częścią wołającą bezpośrednio sprzęt właśnie.

Quote:
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

J.F
Guest

Thu Jan 27, 2022 11:59 am   



On Thu, 27 Jan 2022 11:45:08 +0100, Mateusz Viste wrote:
Quote:
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 Smile
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.

Quote:
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
Guest

Thu Jan 27, 2022 12:04 pm   



2022-01-27 o 02:50 -0800, Dawid Rutkowski napisał:
Quote:
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

Quote:
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
Guest

Thu Jan 27, 2022 12:31 pm   



Pan J.F napisał (myląc się przy tym):

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

literówka

--
Jarek

Mateusz Viste
Guest

Thu Jan 27, 2022 12:35 pm   



2022-01-27 o 11:59 +0100, J.F napisał:
Quote:
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 Smile
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
Guest

Thu Jan 27, 2022 12:35 pm   



On Thu, 27 Jan 2022 02:50:05 -0800 (PST), Dawid Rutkowski wrote:
Quote:
ś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 :-)

Quote:
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 :-)

Quote:
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

Dawid Rutkowski
Guest

Thu Jan 27, 2022 12:50 pm   



środa, 26 stycznia 2022 o 13:31:24 UTC+1 Mateusz Viste napisał(a):
Quote:
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" ;>

Quote:
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.

Quote:
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
Guest

Thu Jan 27, 2022 12:57 pm   



On Thu, 27 Jan 2022 12:35:31 +0100, Mateusz Viste wrote:
Quote:
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 Smile
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?

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
Guest

Sun Jan 30, 2022 10:19 am   



On 25.01.2022 16:33, jacek pozniak wrote:

Quote:
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.

Goto page Previous  1, 2, 3

elektroda NewsGroups Forum Index - Elektronika Polska - Trudności z uruchomieniem komputera Z80 w konfiguracji CP/M - co sprawdzić?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map