OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů


Právě je 27.04.2024, 08:52

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 24 ]  Přejít na stránku Předchozí  1, 2
Autor Zpráva
 Předmět příspěvku: Re: Tisk z DESKTOPu na ZX PRINTER
PříspěvekNapsal: 20.02.2024, 09:45 
Offline
Kecálek

Registrován: 06.04.2020, 16:24
Příspěvky: 241
Bydliště: Opava
Has thanked: 34 times
Been thanked: 76 times
Jelikož se mi ještě včera povedlo v debuggeru zjistit, jak poznat posledních tištěných 12 mikrořádků, tak jsem program ještě upravil tak, aby při posledních dvou mikrořádcích zpomalil motor (jako to dělá ROM při COPY příkazu). Také tím pádem když vím, že je konec, mohu před návratem z utility zavolat ten finální out (#FB),4 a tiskárna se přepne z printing stavu na ready stav :)

Příloha:
zxprint7.zip [22.63 KiB]
25 krát

Kód:
     
;(c) MTs
;20.2.2024 8:00
         
         org  46520
         
         jp   TISK
         
INIT     ld   a,4
         out  (#FB),a
         ei   
         halt
         halt
         jp   48206
         
         
TISK     di   

;pokud jde o poslední volání tisku (tiskneme již poslední řádek označeného bloku)
;tak se na LASTCALL+1 uloží hodnota 1
;test samotný je taková onanie s hodnotami na zásobníku, ale funguje to :)
         xor  a
         ld   (LASTCALL+1),a
         pop  hl
         ld   (REGHL+1),hl
         pop  de
         pop  hl
         pop  ix
         pop  bc
         ld   a,b
         cp   1
         jr   nz,NOLAST
         ld   a,lx
         and  %00000001
         jr   nz,NOLAST
         inc  a
         ld   (LASTCALL+1),a
NOLAST   push bc
         push ix
         push hl
         push de
REGHL    ld   hl,0
         push hl
         
;hl adresa bitmapy
         ld   hl,(48209)
         
;12 mikroradku uz pripravenych
         ld   hx,12
         
;slowspeed   D=2
;normalspeed D=0
LOOP     ld   d,0    ;0 je na adrese 46578 (=POKE 46578,0 nebo POKE 46578,2)
         
         ld   a,(LASTCALL+1)
         or   a
         jr   z,NEXT1
         ld   a,hx
         cp   3
         jr   nc,NEXT1
;pro posledni dva mikroradky
;zpomalime motory
         ld   d,2
NEXT1    ld   a,d
         out  (#FB),a
         
TSTBREAK ld   a,127
         in   a,(254)
         rrca
;nc = break
         jr   nc,INIT
         
         in   a,(#FB)
         bit  6,a
;nz znamena ze neni pripojena
         jr   nz,TSTBREAK
         
         bit  7,a
;cekame dokud neni ready
         jr   z,TSTBREAK
         
         
;opsano z rom #0f12
         
         ld   c,32
PRTBYT   ld   e,(hl)
         inc  hl
         ld   b,8
PRTBIT   rl   d
         rl   e
         rr   d
WAIT2    in   a,(#FB)
         rra 
         jr   nc,WAIT2
         ld   a,d
         out  (#FB),a
         djnz PRTBIT
         dec  c
         jr   nz,PRTBYT
         
         ld   bc,97-32
         add  hl,bc
         dec  hx
         jr   nz,LOOP
         
LASTCALL ld   a,0
         or   a
         ret  z
         jp   INIT
         


Tak a teď už opravdu je další vylepšení jen a jen na Vás.

Ať žije ZXS!
(nedávno jsem četl někde na netu, že někdo renderoval v Basicu ZXS nějaký grafický náročný úkol, protože prostě chtěl :speccy: )

edit: ta hodnota pro rychlost je u této verze utility na adrese 46578, takže lze využít skok do Basicu a POKE 46578,0 nebo POKE 46578,2. Nemusíte tedy pro testy nijak upravovat zdroják, assemblovat a nahrávat jako novou utilitu...


Naposledy upravil MTs dne 20.02.2024, 11:33, celkově upraveno 2

Nahoru
 Profil  
 
 Předmět příspěvku: Re: Tisk z DESKTOPu na ZX PRINTER
PříspěvekNapsal: 20.02.2024, 10:00 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3675
Bydliště: Bratislava
Has thanked: 373 times
Been thanked: 798 times
MTs píše:
Jinak Busy, já mám Promethea opravdu hodně rád :god: :D :D
Ved aj ja by som mal, ale chybaju mi v nom nejake (pre mna) zasadne veci. A je to spinava konkurencia :D
MTs píše:
(nedávno jsem četl někde na netu, že někdo renderoval v Basicu ZXS nějaký grafický náročný úkol, protože prostě chtěl :speccy: )
To si isto cital tu :) (resp. mohol si)

Ale uz sme out of topic, pre akekolvek dalsie diskusie o renderovani podme prosim do tamtoho fora.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Tisk z DESKTOPu na ZX PRINTER
PříspěvekNapsal: 20.02.2024, 11:20 
Offline
Pan Generální
Uživatelský avatar

Registrován: 18.05.2013, 14:56
Příspěvky: 2354
Has thanked: 304 times
Been thanked: 641 times
Co se týče meníčka a interakce s uživatelem mohu přidat disassemblovaný a (z velké části) okomentovaný ovladač, který byl k Desktopu přibalený, např. pro Epsony

Další disassemblovaný ovladač pro Minigraf mám tady https://cygnus.speccy.cz/download/aritm ... 07.tar.bz2 a pro Alfi tady https://cygnus.speccy.cz/download/alfi/ ... af.tar.bz2 a pro staré PCL3 Deskjety a Laserjety tady https://cygnus.speccy.cz/download/deskj ... op.tar.bz2

Moje osobní preference je, aby každý ovladač v Desktopu interagoval s uživatelem stejně jako ty Proximácké. UI - resp. to jednoduché meníčko je napsané velmi podobně, má to hodně společných částí.

Ale protože ZX Printer ani kompatibilní nemám...


Přílohy:
desktop_driver_epson.tar.bz2 [28.58 KiB]
14 krát

_________________
https://cygnus.speccy.cz ZX Spectrum 128k, Betadisk, DivIDE, ESXDOS
Nahoru
 Profil  
 
 Předmět příspěvku: Re: Tisk z DESKTOPu na ZX PRINTER
PříspěvekNapsal: 20.02.2024, 14:21 
Offline
Kecálek

Registrován: 06.04.2020, 16:24
Příspěvky: 241
Bydliště: Opava
Has thanked: 34 times
Been thanked: 76 times
zxcygnus píše:
Moje osobní preference je, aby každý ovladač v Desktopu interagoval s uživatelem stejně jako ty Proximácké. UI - resp. to jednoduché meníčko je napsané velmi podobně, má to hodně společných částí.

Přesně tak, mělo by to mít nějakou jednotnou štábní kulturu. Proximacký vzhled byl velice hezký, sám jsem ho používal v utilitách také. Vše je ke stažení na mém webu mts.speccy.cz (ZX software, DOM sekce), včetně zdrojáků...
Příloha:
menu.png
menu.png [ 60.86 KiB | Zobrazeno 827 krát ]

zxcygnus píše:
Ale protože ZX Printer ani kompatibilní nemám...

Spectaculator PC emulator má skvělý debugger a emuluje ZX Printer. Já to celé na něm odladil. :thumbup:
Příloha:
spectaculator.png
spectaculator.png [ 253.1 KiB | Zobrazeno 818 krát ]


Pro ten ZX Printer není mnoho co vymýšlet, nedá se u něj toho moc nastavit. Jak už jsem psal výše:
- "p" by mohlo spustit tisk bloku (aby uživatel nemusel dávat Space pro výskok a pak EXT p)
- slow motor pro poslední dva mikrořádky ON/OFF
- slow motor pro celý tisk ON/OFF

A to je asi tak vše. A určitě nemusíš umět ZX Printer, abys mohl dopsat takové menu. Použij zdroják výše a to GUI je jen o tom správně přepsat/nastavit hodnoty v něm, tj.:
1. pro výpis menu upravit INIT hned na začátku (= doplnit to menu, ovládání, test kláves...) a upravit současné odskoky na INIT: JP INIT na konci předělat na:
ld a,4
out (#FB),a
ei
ret ; po skončení tisku stačí RET, nemusí se použít JP 48206 na teplý start Desktopu

a jr nc,INIT u breaku také nasměrovat čistě na jeden out a teplý start Desktopu
ld a,4
out (#FB),a
ei
halt
halt
jp 48206

2. LOOP ld d,0 je vlastně předpřipravené nastavení pro volbu slow motor pro celý tisk ON/OFF. Stačí to přepsat na ld d,2 a bude slow tisk

3. nad NEXT1 instrukce ld d,2 by řešila nastavení slow motor pro poslední dva mikrořárdky ON/OFF. Zde by to ale bylo mírně složitější, protože bys musel počítat se čtyřmi kombinacemi nastavení:
slow motor pro poslední dva mikrořádky ON+ slow motor pro celý tisk OFF ; toto je výchozí stav tak jak je verze 7 nyní naspána, nad NEXT1 je instrukce ld d,2
slow motor pro poslední dva mikrořádky OFF + slow motor pro celý tisk OFF ; takto to bylo ve verzi 6, kdy se nic nebrzdilo a vše se vytisklo stejnou rychlostí, nad NEXT1 musí být instrukce ld d,0
slow motor pro poslední dva mikrořádky ON + slow motor pro celý tisk ON; toto vlastně říká, že chceme všechno vytisknout pouze pomalou rychlostí , nad NEXT1 musí být instrukce ld d,2
slow motor pro poslední dva mikrořádky OFF+ slow motor pro celý tisk ON ; tato volba je v rozporu (nesmysl) a neměla by být vůbec umožněna navolit, protože by znamenala, že všechno se tiskne pomalu a poslední dva mikrořádky rychle :-)

4. simulace EXT p - vyvolání tisku přímo z utility
ld a,"p"
push af
ld hl,(55003)
call 52564
pop af
ld sp,(48243)
set 1,(iy+118)
jp 48452


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Tisk z DESKTOPu na ZX PRINTER
PříspěvekNapsal: 20.02.2024, 16:36 
Offline
Profík

Registrován: 21.10.2018, 08:27
Příspěvky: 560
Has thanked: 284 times
Been thanked: 139 times
Ještě bych sem doplnil, že Alphacom 32 asi ignoruje rychlost motoru a tiskne pořád stejně rychle. Rychlost jsem měnil pouhým POKE 46578,0 nebo 2. Zkusím tu hozenou rukavici zvednout a trochu se něco přiučit.

Edit: Opravená adresa


Naposledy upravil pwramp dne 20.02.2024, 18:55, celkově upraveno 1

Nahoru
 Profil  
 
 Předmět příspěvku: Re: Tisk z DESKTOPu na ZX PRINTER
PříspěvekNapsal: 20.02.2024, 17:38 
Offline
Kecálek

Registrován: 06.04.2020, 16:24
Příspěvky: 241
Bydliště: Opava
Has thanked: 34 times
Been thanked: 76 times
pwramp píše:
Ještě bych sem doplnil, že Alphacom 32 asi ignoruje rychlost motoru a tiskne pořád stejně rychle. Rychlost jsem měnil pouhým POKE 45678,0 nebo 2. Zkusím tu hozenou rukavici zvednout a trochu se něco přiučit.

Pozor, 4 6 5 7 8 je správně. Ty jsi napsal 4 5 6 7 8


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Tisk z DESKTOPu na ZX PRINTER
PříspěvekNapsal: 20.02.2024, 18:04 
Offline
Kecálek

Registrován: 06.04.2020, 16:24
Příspěvky: 241
Bydliště: Opava
Has thanked: 34 times
Been thanked: 76 times
Busy píše:
Obrazovka sa berie ako jeden riadok vysoky 192 pixelov, a presne tak isto ako pri 8-pixelovom riadku sa brzdi posledne dva mikroriadky, tak sa brdzi aj na konci toho velkeho 192-pixeloveho riadku. Skratka, pred koncom tlacovej ulohy sa prepina do SLOW aby sa tlac tak nejak "ukludnila". Osobne na to sice nevidim ziadny padny dovod, ale myslim si ze na systeme ZX Spektra, znamom vysokou mierou "katovania kostov", na to asi nejaky dovod bol.

Našel jsem na netu manuál a tam se píše:
In order that the styli always stop off the paper, the BASIC commands slow the motor down for the
last two scans before stopping - this makes sure that graphicsalways "join up" if done in several
goes, and this feature should be put in any machine code program that requires the printer to stop
whilst the computer thinks about the next line.

Přikládám PDFko
Příloha:
ZXPrinter-Instructions.pdf [89.69 KiB]
19 krát


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Tisk z DESKTOPu na ZX PRINTER
PříspěvekNapsal: 23.02.2024, 19:04 
Offline
Radil

Registrován: 13.03.2016, 18:54
Příspěvky: 303
Has thanked: 130 times
Been thanked: 88 times
Potvrzuji funkčnost pluginu na skutečné ZX Printer.
Příloha:
20240223_171526.jpg
20240223_171526.jpg [ 166.16 KiB | Zobrazeno 629 krát ]

Velké díky MTs.

Chip


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Tisk z DESKTOPu na ZX PRINTER
PříspěvekNapsal: 23.02.2024, 21:19 
Offline
Kecálek

Registrován: 06.04.2020, 16:24
Příspěvky: 241
Bydliště: Opava
Has thanked: 34 times
Been thanked: 76 times
Z důvodu deštivého počasí byla utilita přeci jen ještě vylepšena (obohacena o drobné menu) :S
Příloha:
zxprint13.zip [24.75 KiB]
25 krát

Příloha:
zxprint13.png
zxprint13.png [ 56.58 KiB | Zobrazeno 611 krát ]

Příloha:
zxsprint_7vs13-srovnani.zip [163.92 KiB]
25 krát


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 24 ]  Přejít na stránku Předchozí  1, 2

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 36 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz