CP/M stał się w pełni wolnym oprogramowaniem!

Kącik dla elektroniki retro - układy, urządzenia, podzespoły, literatura itp.
Awatar użytkownika
Zegar
User
User
Posty: 318
Rejestracja: wtorek 02 lip 2019, 14:42

Re: CP/M stał się w pełni wolnym oprogramowaniem!

Postautor: Zegar » poniedziałek 05 gru 2022, 16:38

tapy pisze:Gratuluję! Po tempie prac byłem pewien, że jeszcze w tym roku zobaczymy skończony projekt. :)

Dziękuję. Do końca zostało jeszcze trochę poprawek.
...musiałem użyć GAL16V8 ze względu na dość specyficzne adresowanie I/O w CA80. Skoro użyłem tego układu, to PPI otrzymał prawdziwy sygnał RESET. ;)

Jakoś zilogowe układy mnie nie wciągnęły. CTC już jest, więc się do niego przyzwyczaiłem. Reset w 8255 nigdy nie był problemem. Układ mało wymagający, więc pewnie dlatego popularny. Bardziej kręci mnie Z180, bo ma wszystko w środku. Do CA80 też się nadaje. Nawet mam przygotowane poprawki programu pracy krokowej, bo jest trochę szybszy:

Kod: Zaznacz cały

;Inicjacja kanalu nr. 0 ukladu Z80A CTC
;Kanal zglosi przerwanie po TC0*16=160 taktach
;zegara. Musi to nastapic w trakcie wykonywania
;pierwszego rozkazu uzytkownika.
   LD   A,CCR0   ;Slowo sterujace
   OUT   (CHAN0),A ;Tryb "TIMER"
   MLT HL        ;Mnożenie H x L
   LD A,0E9H     ;FF x EA = E916
   CP H
   JR NZ,Z80
   LD   A,TC0-1     ;Stala TC0 DLA Z180
   OUT   (CHAN0),A ;Przerw. po 144 takt.
   NOP           ;Plus 6 taktow
   NOP
   JP   GO5         ;Do zlecenia *G (SUMA 142)
Z80:   
   LD   A,TC0   ;Stala TC0
   OUT   (CHAN0),A ;Przerw. po 160 takt.
   NOP      ;Dolozenie 4 taktow (SUMA 159)
   JP   GO5   ;Do zlecenia *G
"If A = success, then the formula is A = X + Y + Z.
X is work. Y is play. Z is keep your mouth shut."
A. Einstein

Awatar użytkownika
Zegar
User
User
Posty: 318
Rejestracja: wtorek 02 lip 2019, 14:42

Re: CP/M stał się w pełni wolnym oprogramowaniem!

Postautor: Zegar » sobota 10 gru 2022, 23:15

...musiałem użyć GAL16V8 ze względu na dość specyficzne adresowanie I/O w CA80. Skoro użyłem tego układu, to PPI otrzymał prawdziwy sygnał RESET. ;)


Przemyślałem Twój GAL... Zawsze mnie odpychały projekty z GALEM. Nigdy nie wiadomo, co w nim siedzi. Poza tym jestem zwolennikiem upraszczania wszystkiego, co jest możliwe. Z adresowaniem w CA80 jest tak, jak wcześniej pisałeś - zrobione "po taniości" (kto tak pisał?), więc nie uwzględnia wszystkich linii adresowych. Przez to osiem strobów (po cztery adresy, żeby pasowało do 8255 itd.) zajmuje przestrzeń 128 adresów (cała górna połówka). Np. 0x80, 0xc0, 0xa0 są odpowiednikami 0xe0 itd. Wystarczy dodać jedną bramkę i będzie po sprawie.
Dekoder-IO-CA80.png

Niestety połowa płytek do poprawy, ale chyba warto?
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
"If A = success, then the formula is A = X + Y + Z.
X is work. Y is play. Z is keep your mouth shut."
A. Einstein

tapy
User
User
Posty: 120
Rejestracja: niedziela 14 kwie 2019, 17:09
Kontaktowanie:

Re: CP/M stał się w pełni wolnym oprogramowaniem!

Postautor: tapy » sobota 10 gru 2022, 23:33

Zegar pisze:Niestety połowa płytek do poprawy, ale chyba warto?


To zależy jak się na to spojrzy, chcesz mieć CA80 z szyną RC2014 czy RC2014 z funkcjonalnością CA80? Ja w tym konkretnym przypadku wybrałem drugi wariant, ale pierwsza opcja też jest niczego sobie. CA80 był projektowany jako monolit z wszelkimi tego uproszczeniami i konsekwencjami, migracja do modułowego rozwiązania wymaga takiego wyboru. Twój zestaw spełnia wszystkie wymogi jeśli przyjmiesz pierwszą opcję za podstawę. Również nie jestem entuzjastą stosowania układów CPLD, ale czasami są sytuacje które wymuszają ich użycie, szczególnie na tak małych PCB jakie są w standardzie RC2014.
PS. Jak chcesz zmieniać, to uwzględnij również sygnał /M1.

Awatar użytkownika
Zegar
User
User
Posty: 318
Rejestracja: wtorek 02 lip 2019, 14:42

Re: CP/M stał się w pełni wolnym oprogramowaniem!

Postautor: Zegar » niedziela 11 gru 2022, 11:26

tapy pisze:Jak chcesz zmieniać, to uwzględnij również sygnał /M1.

CA80-IO-FULL-M1.png

Chodziło Ci o zabezpieczenie przed przypadkowym wyborem w IM2 w czasie wystawiania wektora przerwań?
Chyba jednak nie chce mi się przerysowywać płytek... ;)
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
"If A = success, then the formula is A = X + Y + Z.
X is work. Y is play. Z is keep your mouth shut."
A. Einstein

tapy
User
User
Posty: 120
Rejestracja: niedziela 14 kwie 2019, 17:09
Kontaktowanie:

Re: CP/M stał się w pełni wolnym oprogramowaniem!

Postautor: tapy » niedziela 11 gru 2022, 12:20

Zegar pisze:Chodziło Ci o zabezpieczenie przed przypadkowym wyborem w IM2 w czasie wystawiania wektora przerwań?


Dokładnie. Modułowa konstrukcja z prawdziwego zdarzenia ma swoje wymagania, by każdy moduł nie ingerował na szynę w niezamierzony sposób, jak też nie reagował na zdarzenia które nie są skierowane do niego, a tam występujące - nawet hipotetyczne. Szynie RC2014 daleko jest do ideału, nawet sam twórca standardu podchodzi do tego tematu luźno, bo ciężko zapewnić pełną izolację przy tak przyjętych rozmiarach PCB. Po zaprojektowaniu kilku własnych modułów zapewne sam już widzisz wady jakie ten standard niesie. Kompletnie niezrozumiałe jest umieszczenie linii zasilania pośrodku szyny, rozdzielenie szyny adresowej i danej sygnałami sterującymi, co zmusza konstruktora do stosowania cyrkowych sztuczek by poprowadzić sygnały w jakiś logiczny sposób i borykać się z koszmarem prowadzenia zasilania pomiędzy liniami sygnałowymi. Trzeba go lubić, tak jak architekturę x86 w PC, bo nikt nie porzuci dorobku jakiego się dochował. Powstała już ponad setka modułów dla RC2014, istnieje aktywne środowisko użytkowników i twórców, nikt już tego nie wyrzuci do kosza, by stworzyć coś co ma ręce i nogi.

Awatar użytkownika
Zegar
User
User
Posty: 318
Rejestracja: wtorek 02 lip 2019, 14:42

Re: CP/M stał się w pełni wolnym oprogramowaniem!

Postautor: Zegar » niedziela 11 gru 2022, 16:41

tapy pisze:Modułowa konstrukcja z prawdziwego zdarzenia ma swoje wymagania, by każdy moduł nie ingerował na szynę w niezamierzony sposób, jak też nie reagował na zdarzenia które nie są skierowane do niego, a tam występujące - nawet hipotetyczne.

Jeden moduł poprawiłem, bez dodawania elementów. Idealny nie jest, ale "uratowałem" A5. M1 uwzględniłem od razu, jednak można było zrobić to lepiej... :? Zmiana była kosmetyczna, więc nikt nie zauważy. :lol:
LCD_addr_decoder.png

RC2014_LCD_11.pdf
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
"If A = success, then the formula is A = X + Y + Z.
X is work. Y is play. Z is keep your mouth shut."
A. Einstein

tapy
User
User
Posty: 120
Rejestracja: niedziela 14 kwie 2019, 17:09
Kontaktowanie:

Re: CP/M stał się w pełni wolnym oprogramowaniem!

Postautor: tapy » niedziela 11 gru 2022, 17:44

Zegar pisze: Idealny nie jest, ale "uratowałem" A5.

Spełnia wszystkie wymogi, więc nie wiem po co ta samokrytyka. Z80 wystawia adres na szynie wcześniej niż się pojawia sygnał /IORQ, więc opóźnienie dwóch bramek nie ma żadnego wpływu na działanie takiego dekodera. Gdybyś to zrobił z /IORQ to wtedy można byłoby ponarzekać :D

Awatar użytkownika
Zegar
User
User
Posty: 318
Rejestracja: wtorek 02 lip 2019, 14:42

Re: CP/M stał się w pełni wolnym oprogramowaniem!

Postautor: Zegar » niedziela 11 gru 2022, 18:14

tapy pisze: ...nie wiem po co ta samokrytyka...
Miałem na myśli M1. Dzisiaj wpadłem na to, że można go było wpiąć prosto w 138. Ale i tak potrzebowałem negację dla E LCD. Gdybym inaczej zaadresował całość, np. A5=A6=A7=0, 74HCT27 (trzywejściowy NOR) załatwiłby adresy i negację E. Nawet zostałaby jedna bramka. Ale teraz jest za późno, żeby zmieniać adresowanie w programach, więc dlatego "można było zrobić lepiej". :D
"If A = success, then the formula is A = X + Y + Z.
X is work. Y is play. Z is keep your mouth shut."
A. Einstein


Wróć do „Retro”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 6 gości