W załączniku procedura przygotowująca bufor linii dla drukarki.
Parametry:
- A0..A7 - adresy początków linii grafiki
- W - szerokość linii w pikselach
- B - adres bufora dla drukarki (musi mieć rozmiar W).
Procedura znajduje się w stałej tekstowej, której adres wskazuje zmienna R i wywołujesz ją za pomocą:
X=USR(R,A0,A1,A2,A3,A4,A5,A6,A7,B,W)
Gdyby okazało się, że grafika jest odbita w pionie to zmień kolejność parametrów A0..A7 na odwrotną (czyli A7..A0).
Ponieważ podajesz adresy, to możesz sobie podać tam albo adresy w RAM, albo rezerwować zmienne tekstowe i podawać ich adresy przez ADR(T$).
Edit: A - procedura używa lokacji $D4..$E7 czyli rejestrów liczb zmienno-przecinkowych FR0, FRE, FR1 i części FR2, ale to nie powinno przeszkadzać. Za to istotne jest, że obszary wskazywane przez A0..A7 są modyfikowane (więc wydruk z ROM-u raczej się nie uda). No i oczywiście B.
Edit 2: Drobny hint, bo możesz oczywiście posłać dane do drukarki dość szybko:
W=320
DIM B$(W): B$(W)=CHR$(0)
X=USR(R,A0,A1,A2,A3,A4,A5,A6,A7,ADR(B$),W)
LPRINT B$;
LPRINT otwiera i zamyka każdorazowo kanał drukarki. Nie wiem jak działa ten Microprint - możliwe, że wystąpi problem z drukowaniem bajtu EOL (155 w trybie druku tekstu pewnie zamieniany jest na CRLF czyli 13,10), choć powinien rozpoznać że jest w trybie drukowania grafiki po komendach ESC. Na pewno bezpiecznie przestawić go po wszystkim z powrotem w tryb tekstowy.
Ostatnio edytowany przez mono (2015-02-25 16:21:05)
Post's attachmentsprn.asm 603 b, liczba pobrań: 3 (od 2015-02-25)
PRN.LST 252 b, liczba pobrań: 5 (od 2015-02-25)
Tylko zalogowani mogą pobierać załączniki.
hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje