Komputer 8-bitowy

Komputery retro, konsole do gier itd.

Moderatorzy: gsmok, Romekd, tszczesn, OTLamp, Einherjer

ballasttube
3125...6249 postów
3125...6249 postów
Posty: 3841
Rejestracja: czw, 25 marca 2010, 00:12

Re: Komputer 8-bitowy

Post autor: ballasttube »

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ź...
Awatar użytkownika
jethrotull
3125...6249 postów
3125...6249 postów
Posty: 4048
Rejestracja: sob, 3 czerwca 2006, 21:51
Lokalizacja: Poznań

Re: Komputer 8-bitowy

Post autor: jethrotull »

Pewnie tak, moja zresztą działa na pececie pod DOSem bez żadnego sterownika.
Awatar użytkownika
Locutus
2500...3124 posty
2500...3124 posty
Posty: 2846
Rejestracja: sob, 4 sierpnia 2007, 23:09
Lokalizacja: LubLin

Re: Komputer 8-bitowy

Post autor: Locutus »

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).
Gratuluję umiejętności i samozaparcia.
Szacun i jeszcze raz szacun....
mak222 pisze: ndz, 7 czerwca 2026, 18:04 A drukarka wygląda na jakąś OKI
"Nieśmiertelna" OKI 3320 (o ile używalo się oryginalnych tasiemek barwiących).
¯\_(ツ)_/¯
ballasttube
3125...6249 postów
3125...6249 postów
Posty: 3841
Rejestracja: czw, 25 marca 2010, 00:12

Re: Komputer 8-bitowy

Post autor: ballasttube »

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"
Awatar użytkownika
Thereminator
6250...9374 posty
6250...9374 posty
Posty: 7615
Rejestracja: sob, 2 kwietnia 2005, 21:42
Lokalizacja: Nizina Wschodnioeuropejska

Re: Komputer 8-bitowy

Post autor: Thereminator »

:arrow: ballasttube

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.
Awatar użytkownika
jethrotull
3125...6249 postów
3125...6249 postów
Posty: 4048
Rejestracja: sob, 3 czerwca 2006, 21:51
Lokalizacja: Poznań

Re: Komputer 8-bitowy

Post autor: jethrotull »

"Nieśmiertelna" OKI 3320 (o ile używalo się oryginalnych tasiemek barwiących).
A co się dzieje jak używasz nieorygnalnych? Bo ja właśnie kupiłem pierwsze z brzegu z allegro.
ballasttube
3125...6249 postów
3125...6249 postów
Posty: 3841
Rejestracja: czw, 25 marca 2010, 00:12

Re: Komputer 8-bitowy

Post autor: ballasttube »

Dziękuję Koledze "Jethrotull".
Będę robić różne kombinacje.
Pozdrawiam.
Jacek"b/t"
Awatar użytkownika
Locutus
2500...3124 posty
2500...3124 posty
Posty: 2846
Rejestracja: sob, 4 sierpnia 2007, 23:09
Lokalizacja: LubLin

Re: Komputer 8-bitowy

Post autor: Locutus »

jethrotull pisze: wt, 9 czerwca 2026, 08:02
"Nieśmiertelna" OKI 3320 (o ile używalo się oryginalnych tasiemek barwiących).
A co się dzieje jak używasz nieorygnalnych? Bo ja właśnie kupiłem pierwsze z brzegu z allegro.
Przy "przemysłowym" użytkowaniu szlag trafiał głowice (zacierały się igły).
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...
¯\_(ツ)_/¯
Awatar użytkownika
jethrotull
3125...6249 postów
3125...6249 postów
Posty: 4048
Rejestracja: sob, 3 czerwca 2006, 21:51
Lokalizacja: Poznań

Re: Komputer 8-bitowy

Post autor: jethrotull »

Schemat kontrolera portu drukarki:
LPT_schematic.png
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
traxman
125...249 postów
125...249 postów
Posty: 192
Rejestracja: wt, 13 stycznia 2026, 06:36

Re: Komputer 8-bitowy

Post autor: traxman »

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.
Awatar użytkownika
jethrotull
3125...6249 postów
3125...6249 postów
Posty: 4048
Rejestracja: sob, 3 czerwca 2006, 21:51
Lokalizacja: Poznań

Re: Komputer 8-bitowy

Post autor: jethrotull »

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

Re: Komputer 8-bitowy

Post autor: jethrotull »

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:

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 
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.
IMG_20261001_181808.jpg
IMG_20261001_181753.jpg
Z innych ciekawostek, odwiedziłem dziś Poznańskie Muzeum Gier i Komputerów:
IMG_20261001_112302.jpg
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.