Komputer 8-bitowy
Moderatorzy: gsmok, Romekd, tszczesn, OTLamp, Einherjer
-
ballasttube
- 3125...6249 postów

- Posty: 3841
- Rejestracja: czw, 25 marca 2010, 00:12
Re: Komputer 8-bitowy
Wielkie gratulacje dla Kolegi "Jethrotull"!!!
Pozdrawiam uprzejmie Wszystkich Kolegów.
Jacek "b/t"
PS: mam pytanie "drukarkowe":
czy drukarka paragonowa na LPT
igłowa (istnieje takie dziwadło)
"pójdzie " od razu na sterownik
"Generic Text Only"?
Poproszę o odpowiedź...
Pozdrawiam uprzejmie Wszystkich Kolegów.
Jacek "b/t"
PS: mam pytanie "drukarkowe":
czy drukarka paragonowa na LPT
igłowa (istnieje takie dziwadło)
"pójdzie " od razu na sterownik
"Generic Text Only"?
Poproszę o odpowiedź...
-
jethrotull
- 3125...6249 postów

- Posty: 4048
- Rejestracja: sob, 3 czerwca 2006, 21:51
- Lokalizacja: Poznań
Re: Komputer 8-bitowy
Pewnie tak, moja zresztą działa na pececie pod DOSem bez żadnego sterownika.
-
Locutus
- 2500...3124 posty

- Posty: 2846
- Rejestracja: sob, 4 sierpnia 2007, 23:09
- Lokalizacja: LubLin
Re: Komputer 8-bitowy
Gratuluję umiejętności i samozaparcia.jethrotull pisze: ndz, 7 czerwca 2026, 17:53 Zrobiłem prosty interfejs Centronics jako urządzenie peryferyjne korzystające z portu rozszerzeń komputera.
Podłączyłem starą drukarkę igłową LPT. Napisałem (we własnym języku programowania i całkowicie na rzeczonym komputerze) program drukujący pliki tekstowe.
Drukarka wymaga nowej taśmy (już zamówiona).
Szacun i jeszcze raz szacun....
"Nieśmiertelna" OKI 3320 (o ile używalo się oryginalnych tasiemek barwiących).
¯\_(ツ)_/¯
-
ballasttube
- 3125...6249 postów

- Posty: 3841
- Rejestracja: czw, 25 marca 2010, 00:12
Re: Komputer 8-bitowy
Dziękuję za odpowiedź,Kolego "Jethrotull".
Nie mam doświadczenia ze sterowaniem
drukarki pod DOS-em na Win 2K lub XP.
Spodziewam się,że komputer to załatwi sam
w opcji "Generic Text only",przy porcie
LPT? Albo przejadę sterowniki igłówek,
które one mają wgrane.
Któryś powinien zaskoczyć.
Nie wiem,co emuluje ta drukarka.
EPSONA, czy tą drugą opcję.IBMa?
Już pozapominałem te kody.
Pozdrawiam,życzę dobrego wieczoru.
Jacek"b/t"
Nie mam doświadczenia ze sterowaniem
drukarki pod DOS-em na Win 2K lub XP.
Spodziewam się,że komputer to załatwi sam
w opcji "Generic Text only",przy porcie
LPT? Albo przejadę sterowniki igłówek,
które one mają wgrane.
Któryś powinien zaskoczyć.
Nie wiem,co emuluje ta drukarka.
EPSONA, czy tą drugą opcję.IBMa?
Już pozapominałem te kody.
Pozdrawiam,życzę dobrego wieczoru.
Jacek"b/t"
-
Thereminator
- 6250...9374 posty

- Posty: 7615
- Rejestracja: sob, 2 kwietnia 2005, 21:42
- Lokalizacja: Nizina Wschodnioeuropejska
Re: Komputer 8-bitowy
Chyba nie będzie tak prosto, bo w 2K i XP, bo jądro NT blokuje bezpośredni dostęp 16-bitowych programów do sprzętu i chyba nie obejdzie się bez kombinowaania ze sterownikiem UserPort albo użyciem DOS-boxa.
W teorii nie ma różnicy między praktyką a teorią.
W praktyce jest.
W praktyce jest.
-
jethrotull
- 3125...6249 postów

- Posty: 4048
- Rejestracja: sob, 3 czerwca 2006, 21:51
- Lokalizacja: Poznań
Re: Komputer 8-bitowy
A co się dzieje jak używasz nieorygnalnych? Bo ja właśnie kupiłem pierwsze z brzegu z allegro."Nieśmiertelna" OKI 3320 (o ile używalo się oryginalnych tasiemek barwiących).
-
ballasttube
- 3125...6249 postów

- Posty: 3841
- Rejestracja: czw, 25 marca 2010, 00:12
Re: Komputer 8-bitowy
Dziękuję Koledze "Jethrotull".
Będę robić różne kombinacje.
Pozdrawiam.
Jacek"b/t"
Będę robić różne kombinacje.
Pozdrawiam.
Jacek"b/t"
-
Locutus
- 2500...3124 posty

- Posty: 2846
- Rejestracja: sob, 4 sierpnia 2007, 23:09
- Lokalizacja: LubLin
Re: Komputer 8-bitowy
Przy "przemysłowym" użytkowaniu szlag trafiał głowice (zacierały się igły).jethrotull pisze: wt, 9 czerwca 2026, 08:02A co się dzieje jak używasz nieorygnalnych? Bo ja właśnie kupiłem pierwsze z brzegu z allegro."Nieśmiertelna" OKI 3320 (o ile używalo się oryginalnych tasiemek barwiących).
Miałem takiego znajomego, który mimo, że na brak pieniędzy nie narzekał, kupował 'zamienniki' bo OKI są drogie...
Był jedynym pośród pokaźnej grupy użytkowników biznesowych tych drukarek, który regularnie wymieniał głowice.
Raczej Ci to nie grozi - mówimy o kilkuset stronach dziennie...
¯\_(ツ)_/¯
-
jethrotull
- 3125...6249 postów

- Posty: 4048
- Rejestracja: sob, 3 czerwca 2006, 21:51
- Lokalizacja: Poznań
Re: Komputer 8-bitowy
Schemat kontrolera portu drukarki:
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
-
traxman
- 125...249 postów

- Posty: 192
- Rejestracja: wt, 13 stycznia 2026, 06:36
Re: Komputer 8-bitowy
Nie trzymasz się kurczowo zgodności z LPT z PC?
Tam chyba główny rejestr danych był 8-bitowy, a strobe było w generowane następnym rejestrze.
Tam chyba główny rejestr danych był 8-bitowy, a strobe było w generowane następnym rejestrze.
-
jethrotull
- 3125...6249 postów

- Posty: 4048
- Rejestracja: sob, 3 czerwca 2006, 21:51
- Lokalizacja: Poznań
Re: Komputer 8-bitowy
Ale jak chcę drukować tylko ASCII to nie ma znaczenia, i tak używam tylko siedmiu bitów.
-
jethrotull
- 3125...6249 postów

- Posty: 4048
- Rejestracja: sob, 3 czerwca 2006, 21:51
- Lokalizacja: Poznań
Re: Komputer 8-bitowy
Znalazłem ostatnio zawieruszony układ 8276, czyli kontroler CRT, i zdecydowałem się dorzucić go do testowego komputerka na 8085 który akurat zlutowałem w ramach eksperymentu, a na którego płytce było jeszcze trochę wolnego miejsca. Całość chyba nieco zbyt skromna jak na prawdziwy komputer (2KB RAMu na układzie 5816, z czego 1200 bajtów zabiera pamięć obrazu) więc wpadłem na pomysł aby przerobić całość na terminal.
Zaprogramowałem 8276 aby współpracował z monitorem VGA. Zastosowałem standardowy (dla mnie) generator znaków i rejestr przesuwny. 8276 ma kilka wyjść atrybutów obrazu, które w zamyśle miały pozwalać na podświetlenie, odwrócenie itp. znaków, jednak można ich równie dobrze użyć do sterowania kolorem wyświetlania, co zaimplementuję w następnej kolejności. Ale uwaga: ustawienie atrybutów obrazu "zużywa" jeden znak, więc dwa sąsiednie znaki nie będą mogły mieć różnych kolorów. Pomiędzy nimi zawsze będzie musiał być jeden dodatkowy, pusty "znak" definiujący atrybuty. Innym potencjalnym rozwiązaniem jest zwiększenie o 1 liczby znaków na linię, dodatkowy znak nie będzie się mieścił na ekranie, pozwoli to jednak na użycie go do ustawienia koloru dla całego rzędu znaków bez poświęcania żadnego z 40-stu wyświetlanych znaków.
Wyjście sterowania kursorem jest podłączone do linii adresowej A10 generatora znaków, czyli, podobnie jak we wcześniejszych konstrukcjach, wybiera między "normalnym" zestawem znaków, a znajdującym się "nad nim" (w przestrzeni adresowej generatora znaków) zestawem z kursorem.
Kontroler CRT wymaga aby procesor wysyłał mu w kółko dane całego obrazu, jeden rząd znaków po drugim, nawet jeśli obraz w ogóle się nie zmienia. Procesor 8085 taktowany zegarem 2.5MHz potrafi (ledwo) nadążyć z wysyłaniem 40-stu znaków na rząd, przy założeniu że jeden rząd znaków składa się z 16-stu linii VGA. Takie osiągi możliwe są jedynie dzięki całkowitemu rozwinięciu pętli. Kod wygląda więc tak:
itd., 40 razy. Dekrementacja i porównywanie z zerem licznika pętli pogorszyłaby przepustowość około dwukrotnie, więc zwyczajna pętla tu odpada.
Dygresja: nie chciało mi się nauczyć mnemoników intelowskich, więc piszę w dobrze mi znanym assemblerze Z80, tylko uważam żeby używać wyłącznie pierwszych 256-ściu rozkazów procesora - one są takie same jak w 8085.
8276 wspiera też tryb "naprzemienny", gdzie wyświetlany jest tylko co drugi wiersz, a pozostałe wiersze są puste i nie ma potrzeby przesyłania dla nich żadnych znaków. Teoretycznie pozwoli to na uzyskanie trybu tekstowego 80x15 znaków. Zamówiłem też procesor 8085 AH-1, który można taktować zegarem 6MHz. Zakładając że użyte przeze mnie pamięci są wystarczająco szybkie, pozwoli to na uzyskanie rozdzielczości 80x30 znaków po 8x16 pikseli.
Ponieważ kontroler CRT używa przerwań aby komunikować się z procesorem, użycie wbudowanego w 8085 "portu szeregowego" nie jest możliwe. Używam cudzysłowu, bo port ten nie ma żadnych właściwości, które zwykle kojarzą nam się z UARTami. Brak generatora baudrate'u, automatycznego generowania bitów startu, stopu i parzystości, a nawet zamiany strumienia danych szeregowych na postać równoległą i z powrotem. 8085 zawiera po prostu port równoległy, który, tak się składa, że ma szerokość jednego bitu. Zaimplementowanie za jego pomocą komunikacji szeregowej odbywa się całkowicie programowo i wymaga skrupulatnego liczenia taktów zegara, co oczywiście nie jest możliwe jeśli system używa przerwań. Stąd wolne gniazdo na płytce w którym znajdzie się Uart 8251, a wyjście "szeregowe" 8085 będzie użyte np. do sterowania buzzerem.
W tym projekcie po raz pierwszy użyłem gęstszego pakowania elementów (dwa wolne rzędy otworów między elementami, zamiast pięciu), a w dodaktu umieściłem szereg małych układów serii 74 pod podstawkami większych chipów.
Z innych ciekawostek, odwiedziłem dziś Poznańskie Muzeum Gier i Komputerów:
Zaprogramowałem 8276 aby współpracował z monitorem VGA. Zastosowałem standardowy (dla mnie) generator znaków i rejestr przesuwny. 8276 ma kilka wyjść atrybutów obrazu, które w zamyśle miały pozwalać na podświetlenie, odwrócenie itp. znaków, jednak można ich równie dobrze użyć do sterowania kolorem wyświetlania, co zaimplementuję w następnej kolejności. Ale uwaga: ustawienie atrybutów obrazu "zużywa" jeden znak, więc dwa sąsiednie znaki nie będą mogły mieć różnych kolorów. Pomiędzy nimi zawsze będzie musiał być jeden dodatkowy, pusty "znak" definiujący atrybuty. Innym potencjalnym rozwiązaniem jest zwiększenie o 1 liczby znaków na linię, dodatkowy znak nie będzie się mieścił na ekranie, pozwoli to jednak na użycie go do ustawienia koloru dla całego rzędu znaków bez poświęcania żadnego z 40-stu wyświetlanych znaków.
Wyjście sterowania kursorem jest podłączone do linii adresowej A10 generatora znaków, czyli, podobnie jak we wcześniejszych konstrukcjach, wybiera między "normalnym" zestawem znaków, a znajdującym się "nad nim" (w przestrzeni adresowej generatora znaków) zestawem z kursorem.
Kontroler CRT wymaga aby procesor wysyłał mu w kółko dane całego obrazu, jeden rząd znaków po drugim, nawet jeśli obraz w ogóle się nie zmienia. Procesor 8085 taktowany zegarem 2.5MHz potrafi (ledwo) nadążyć z wysyłaniem 40-stu znaków na rząd, przy założeniu że jeden rząd znaków składa się z 16-stu linii VGA. Takie osiągi możliwe są jedynie dzięki całkowitemu rozwinięciu pętli. Kod wygląda więc tak:
Kod: Zaznacz cały
; RST 7.5 responds to the Buffer Ready signal from the 8276
; it sends one row of character data, incrementing HL each time
; the loop is completely unrolled for performance
ds RST75 - $, 0
;LD HL, (CharFeed) ; load the current pointer into the screen memory
; repeat 40 times
LD A, (HL) ; load a character from the screen memory
OUT (CRT_BUFF), A ; send it to the 8276 buffer
INC HL ; move to the next character
LD A, (HL)
OUT (CRT_BUFF), A
INC HL
LD A, (HL)
OUT (CRT_BUFF), A
INC HL
LD A, (HL)
OUT (CRT_BUFF), A
INC HL
Dygresja: nie chciało mi się nauczyć mnemoników intelowskich, więc piszę w dobrze mi znanym assemblerze Z80, tylko uważam żeby używać wyłącznie pierwszych 256-ściu rozkazów procesora - one są takie same jak w 8085.
8276 wspiera też tryb "naprzemienny", gdzie wyświetlany jest tylko co drugi wiersz, a pozostałe wiersze są puste i nie ma potrzeby przesyłania dla nich żadnych znaków. Teoretycznie pozwoli to na uzyskanie trybu tekstowego 80x15 znaków. Zamówiłem też procesor 8085 AH-1, który można taktować zegarem 6MHz. Zakładając że użyte przeze mnie pamięci są wystarczająco szybkie, pozwoli to na uzyskanie rozdzielczości 80x30 znaków po 8x16 pikseli.
Ponieważ kontroler CRT używa przerwań aby komunikować się z procesorem, użycie wbudowanego w 8085 "portu szeregowego" nie jest możliwe. Używam cudzysłowu, bo port ten nie ma żadnych właściwości, które zwykle kojarzą nam się z UARTami. Brak generatora baudrate'u, automatycznego generowania bitów startu, stopu i parzystości, a nawet zamiany strumienia danych szeregowych na postać równoległą i z powrotem. 8085 zawiera po prostu port równoległy, który, tak się składa, że ma szerokość jednego bitu. Zaimplementowanie za jego pomocą komunikacji szeregowej odbywa się całkowicie programowo i wymaga skrupulatnego liczenia taktów zegara, co oczywiście nie jest możliwe jeśli system używa przerwań. Stąd wolne gniazdo na płytce w którym znajdzie się Uart 8251, a wyjście "szeregowe" 8085 będzie użyte np. do sterowania buzzerem.
W tym projekcie po raz pierwszy użyłem gęstszego pakowania elementów (dwa wolne rzędy otworów między elementami, zamiast pięciu), a w dodaktu umieściłem szereg małych układów serii 74 pod podstawkami większych chipów.
Z innych ciekawostek, odwiedziłem dziś Poznańskie Muzeum Gier i Komputerów:
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.