Tisk přes sériový port

Tento text volně navazuje na článek o standardním sériovém portu, který je součástí ZX Spectrum 128k. Cílem bylo vytvořit jednoduchý tiskový ovladač, ne nutně pro tiskárnu, ale třeba i jen pro přenos tisknutého textu do PC.

Využil jsem tři různé programy pro serializaci dat. Jednou to byl můj program s volitelnou rychlostí přenosu 2400, 4800 a 9600bps původně připravený pro plotry a jiné tiskárny s RS232, podruhé upravený kód od Martina1 vysílající rychlostí 57600bps, obojí s řízením toku dat (resp. čekáním na připravenost PC). A nakonec jsem použil upravenou Busyho rutinu pro vysílání rychlostí 57600bps bez řízení toku dat, ale přes čip 8255, tj. pro případné využití například s Didaktikem Gama a pouze s převodníkem úrovní na RS232, nebo s převodníkem UART-USB.

Všechny tři varianty přenosu jsou zkombinované se stejným základním programem, který po spuštění přesměruje kanál #3 na ovladač, který podporuje základní detokenizaci bez které by nefungoval LLIST. Ale protože zároveň počítám s přenosem textu např. do Linuxového PC, záměrně jsem přenos UDG a semigrafických znaků zjednodušil, aby výsledkem nebyl problematický nesmyslný znak. UDG se přenáší jen jako odpovídající ASCII písmeno a semigrafické znaky budou všechny nahrazeny křížkem.

Všechny tři varianty jsem také zjednodušil tak, že neprovádějí žádnou úpravu tiskutých dat. Výsledkem je sekvence bytů přesně taková, jak ji generuje ZX Spectrum. Kód pro softwarovou serializaci stále musí být v nezpomalené RAM, ale je výrazně menší. Zpracování dat se dá následně provést na PC.

Kód nezasahující do přenášených znaků se dá použít i k ovládání některých zařízení se sériovým portem, ale přípravu příkazů je třeba zajistit v BASICovém programu.

Download

Historie změn článku

  • 2022-11-04 - zveřejněno

[ Zpět na hlavní stránku ]

Tento web je převážně o ZX Spectru, kompatibilních počítačích a jiném zajímavém hardwaru. Naleznete-li chybu, nebo byste rádi cokoliv co s tímto souvisí, můžete mi napsat email. Stručně o mém webu zde.