OldComp.cz

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

DOSDev 2020

Právě je 04.07.2020, 12:09

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




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 14 ] 
Autor Zpráva
 Předmět příspěvku: Optimalizace barevného loga ZXS :)
PříspěvekNapsal: 24.05.2020, 17:04 
Offline
Kecálek

Registrován: 06.04.2020, 16:24
Příspěvky: 110
Bydliště: Opava
Has thanked: 19 times
Been thanked: 27 times
Ahojte,
chtěl bych opravit nějaké drobné chybky v MFC (viz. buglist na mém webu u MFC). S volným místem jsem ovšem tak trochu na nule. Optimalizovat (zvláště v rozsáhlých projektech ) jde však vždycky, a vždycky se dá najít přesně tolik místa, kolik člověk potřebuje :). Sice za cenu hodně ztížené čitelnosti výsledného kódu, ale je to dobrá zábava, pokud člověk rád assembleruje. Já už na tom bohužel s volným časem nejsem nejlíp (díky přítelkyně 1.0 a dětí 1.1 a 1.2 :lol: ), proto bych chtěl poprosit Vás tady. Níže je jednoduchá rutinka na zobrazení barevného loga ZXS. Tenkrát jsem ji udělal narychlo a určitě ji lze napsat mnohem lépe. Potřebuju ji zkrátit o minimálně 12 bytes (ty potřebuju na drobnou opravu jinde). DOWNHL by měl zůstat nejlépe jak je, protože ho používám i jinde. Z LOGOCOL nečekám na výstupu žádné návrátové hodnoty - můžete tedy změnit libovolný registr kromě ix a iy (ty stejně zabírají místo jistě by nebyly pro optimalizaci efektivní). A také nesmí používat nic z ROM.

https://mts.speccy.cz/logocol.txt
Kód:
LOGOCOL  ld   hl,20731
         ld   de,LOG_BUF
         ld   b,8
LOG_0    push bc
         push hl
         ld   b,5
LOG_1    ld   a,(de)
         ld   (hl),a
         inc  hl
         inc  de
         djnz LOG_1
         pop  hl
         call DOWNHL
         pop  bc
         djnz LOG_0
         xor  a
         ld   h,d
         ld   l,e
         ld   de,23296-6
         ld   (de),a
         inc  de
         ldi 
         ldi 
         ldi 
         ldi 
         ldi 
         ret 
         
LOG_BUF  defb 1,254,254,254,254
         defb 3,252,252,252,252
         defb 7,248,248,248,248
         defb 15
         defb 240,240,240,240
         defb 31
         defb 224,224,224,224
         defb 63
         defb 192,192,192,192
         defb 127
         defb 128,128,128,128
         defb 255,0,0,0,0
         defb 66,114,102,76,65

DOWNHL   inc  h
         ld   a,h
         and  7
         ret  nz
         ld   a,l
         add  a,32
         ld   l,a
         ld   a,h
         jr   c,DOWNHL2
         sub  8
         ld   h,a
DOWNHL2  cp   88
         ret  c
         ld   h,64
         ret


Naposledy upravil MTs dne 24.05.2020, 17:47, celkově upraveno 3

Nahoru
 Profil  
 
 Předmět příspěvku: Re: Optimalizace barevného loga ZXS :)
PříspěvekNapsal: 24.05.2020, 17:23 
Offline
Pan Generální

Registrován: 22.05.2013, 21:14
Příspěvky: 2634
Bydliště: Bratislava
Has thanked: 279 times
Been thanked: 504 times
Hod sem cely zdrojak znovu ale tak aby nebolo treba rucne dopisovat biele znaky pred kazdu instrukciu.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Optimalizace barevného loga ZXS :)
PříspěvekNapsal: 24.05.2020, 17:31 
Offline
Kecálek

Registrován: 06.04.2020, 16:24
Příspěvky: 110
Bydliště: Opava
Has thanked: 19 times
Been thanked: 27 times
Busy píše:
Hod sem cely zdrojak znovu ale tak aby nebolo treba rucne dopisovat biele znaky pred kazdu instrukciu.


Zatracené HTML. Když dám edit, je to tam správně i s mezerama. No nic, přidal jsem odkaz na TXT soubor do původního příspěvku.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Optimalizace barevného loga ZXS :)
PříspěvekNapsal: 24.05.2020, 17:38 
Offline
Pan Generální

Registrován: 22.05.2013, 21:14
Příspěvky: 2634
Bydliště: Bratislava
Has thanked: 279 times
Been thanked: 504 times
MTs píše:
Busy píše:
Hod sem cely zdrojak znovu ale tak aby nebolo treba rucne dopisovat biele znaky pred kazdu instrukciu.
Zatracené HTML. Když dám edit, je to tam správně i s mezerama. No nic, přidal jsem odkaz na TXT soubor do původního příspěvku.
Co myslis, naco sluzi tag CODE pri pisani prispevkov ? :)


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Optimalizace barevného loga ZXS :)
PříspěvekNapsal: 24.05.2020, 17:47 
Offline
Kecálek

Registrován: 06.04.2020, 16:24
Příspěvky: 110
Bydliště: Opava
Has thanked: 19 times
Been thanked: 27 times
Busy píše:
MTs píše:
Busy píše:
Hod sem cely zdrojak znovu ale tak aby nebolo treba rucne dopisovat biele znaky pred kazdu instrukciu.
Zatracené HTML. Když dám edit, je to tam správně i s mezerama. No nic, přidal jsem odkaz na TXT soubor do původního příspěvku.
Co myslis, naco sluzi tag CODE pri pisani prispevkov ? :)


:dthu:


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Optimalizace barevného loga ZXS :)
PříspěvekNapsal: 24.05.2020, 17:59 
Offline
Kecálek

Registrován: 10.07.2014, 01:57
Příspěvky: 105
Has thanked: 7 times
Been thanked: 85 times
MTs píše:
Potřebuju ji zkrátit o minimálně 12 bytes (ty potřebuju na drobnou opravu jinde).

moze byt?
Kód:
LOGOCOL      ld   de,20731
      ld   hl,LOG_BUF
LOG_0      push   de
      ld   bc,5
      ldir
      pop   de
      ex   de,hl
      call   DOWNHL
      ex   de,hl
      ld   a,d
      and   7
      jr   nz,LOG_0
      dec   hl
      ld   de,23296-6
      ld   c,6
      ldir
      ret


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Optimalizace barevného loga ZXS :)
PříspěvekNapsal: 24.05.2020, 18:00 
Offline
Pan Generální

Registrován: 22.05.2013, 21:14
Příspěvky: 2634
Bydliště: Bratislava
Has thanked: 279 times
Been thanked: 504 times
Tu to mas na 32 bajtov (z povodnych 110) :)
Kód:
logo    ld      de,#50FA
        ld      a,#FF
loop22  push    de
loop11  ld      (de),a
        inc     e
        jr      nz,loop11
        pop     de
        inc     d
        add     a,a
        jr      nz,loop22
        inc     d
        inc     d
        ld      hl,colors
        ld      bc,#06
        ldir
        ret

colors  db      #00,#50,#72,#66,#4C,#41


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Optimalizace barevného loga ZXS :)
PříspěvekNapsal: 24.05.2020, 18:39 
Offline
Kecálek

Registrován: 06.04.2020, 16:24
Příspěvky: 110
Bydliště: Opava
Has thanked: 19 times
Been thanked: 27 times
Tož to je pecka! V tolik místa jsem ani nedoufal. Oběma díky, zvláště Busymu, který totálně zrušil ten defb buffer, který se mi už tenkrát vůbec nelíbil...
:god: :clap:


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Optimalizace barevného loga ZXS :)
PříspěvekNapsal: 25.05.2020, 08:01 
Offline
Pan Generální
Uživatelský avatar

Registrován: 18.06.2013, 20:26
Příspěvky: 2664
Has thanked: 110 times
Been thanked: 389 times
Mohli byste sem hodit nějaký PNG výsledku, ať se kochnem... ;)

_________________
"Je lepší rozsvítit byť jen malou svíčku, než jen proklínat temnotu." (Konfucius)

www.zxsparrow.com


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Optimalizace barevného loga ZXS :)
PříspěvekNapsal: 25.05.2020, 09:09 
Offline
Radil
Uživatelský avatar

Registrován: 12.05.2013, 20:32
Příspěvky: 403
Bydliště: Kladno
Has thanked: 38 times
Been thanked: 89 times
Taky se přidám, kreslí jen samotné logo (nepoškozuje okolní videoram), kamkoliv na obrazovce (v rámci atributů), 32 bajtů:
Kód:
; LnxSpectrum ASM editor (www.ilnx.cz) 25.05.2020

      org   32768

Logo      ld   hl,16384   ;pozice ve videoram
      ld   d,l
      ld   c,5
      ld   a,255
.line1   ld   b,c
.line2   ld   (hl),a
      inc   l
      djnz   .line2
      ld   l,d
      inc   h
      add   a,a
      jr   nz,.line1
      ld   hl,colors
      ld   de,22528   ;pozice ATTR ve videoram
      ldir
      ret

colors   defb   2*8+0+64
      defb   6*8+2+64
      defb   4*8+6+64
      defb   1*8+4+64
      defb   0*8+1+64

_________________
>> Amiga 1200, ZX Spectrum 128 +2A, ZX Spectrum+, Didaktik Gama, MB03+, LnxSpectrum, LnxTracker, LnxAmigaImageConvertor, https://www.ilnx.cz <<


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Optimalizace barevného loga ZXS :)
PříspěvekNapsal: 25.05.2020, 18:54 
Offline
Kecálek

Registrován: 06.04.2020, 16:24
Příspěvky: 110
Bydliště: Opava
Has thanked: 19 times
Been thanked: 27 times
Jiiira píše:
Mohli byste sem hodit nějaký PNG výsledku, ať se kochnem... ;)


Příloha:
mfc-zxs-logo.png
mfc-zxs-logo.png [ 16.9 KiB | Zobrazeno 956 krát ]


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Optimalizace barevného loga ZXS :)
PříspěvekNapsal: 25.05.2020, 19:45 
Offline
Kecálek

Registrován: 18.10.2014, 23:10
Příspěvky: 234
Has thanked: 12 times
Been thanked: 53 times
Lanex píše:
Taky se přidám, kreslí jen samotné logo (nepoškozuje okolní videoram), kamkoliv na obrazovce (v rámci atributů), 32 bajtů:
Kód:
; LnxSpectrum ASM editor (www.ilnx.cz) 25.05.2020

      org   32768

Logo      ld   hl,16384   ;pozice ve videoram
      ld   d,l
      ld   c,5
      ld   a,255
.line1   ld   b,c
.line2   ld   (hl),a
      inc   l
      djnz   .line2
      ld   l,d
      inc   h
      add   a,a
      jr   nz,.line1
      ld   hl,colors
      ld   de,22528   ;pozice ATTR ve videoram
      ldir
      ret

colors   defb   2*8+0+64
      defb   6*8+2+64
      defb   4*8+6+64
      defb   1*8+4+64
      defb   0*8+1+64
Konečne verzia, ktorá kreslí len 5 znakov. Ten čierny atribut mi tam trochu vadil. Ale aby to bolo ako originál malo by sa začínať s A=254, a potom treba zmeniť podmienku v poslednom skoku na JR C,.line1


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Optimalizace barevného loga ZXS :)
PříspěvekNapsal: 25.05.2020, 20:12 
Offline
Kecálek

Registrován: 21.10.2018, 08:27
Příspěvky: 206
Bydliště: Neratovice
Has thanked: 24 times
Been thanked: 15 times
Díky všem za ty rutiny, chápu, co dělají, když si to čtu, ale nikdy bych to snad tak nenapsal, to je super škola :-).
To MTs: Když se už lovíš v MFC, neuvažoval bys o užším fontu, jaký má TOOLS128? Dnes na LCD televizích to jde číst dobře, a subjektivně se lépe vyznám v informacích jaké má TOOLS ve sloupcích. Používám sice prioritně MFC, protože má luxusní utility, ale nějak si pořád na to tlusté písmo nemůžu zvyknout.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Optimalizace barevného loga ZXS :)
PříspěvekNapsal: 25.05.2020, 20:30 
Offline
Pan Generální

Registrován: 22.05.2013, 21:14
Příspěvky: 2634
Bydliště: Bratislava
Has thanked: 279 times
Been thanked: 504 times
Antony/DTA píše:
Konečne verzia, ktorá kreslí len 5 znakov
Povodna MTs-ova rutinka kreslila 6 atributov, tak som myslel ze je treba kreslit vsetkych 6 atributov. Ak je uz cierne pozadie hotove a staci kreslit len 5, potom sa to da napisat na este kratsie.


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ů: 14 ] 

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 1 návštěvní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