Welcome, Guest. Please login or register.


Author Topic: Grafikai trükkök (Read 58859 times)

Offline geco

  • EP addict
  • *
  • Posts: 5084
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 52.0 Firefox 52.0
    • View Profile
Re: Grafikai trükkök
« Reply #675 on: 2018.October.04. 11:09:00 »
Szerintem ez lenne a négy színű, ha nem szúrtam el semmit :D

Code: [Select]
PutPixel:
.y:     equ  $ + 1
        ld   hl, 0
        xor  a
        srl  h
        rr   l
        rra
        srl  h
        rr   l
        rra
        ld   h, l
        ld   l, a
.x:     equ  $ + 1
        ld   de, 0
        ld   a,01h
        srl  e
        rla
        srl  e
        rla
        ld   c,a
        ld   b, high pixelmask
        ld   a,(bc)
        add  hl, de
        set  7, h
        ld   c, a
        cpl
        ld   b, a
.color: equ  $ + 1
        ld   a, 0
        and  0x0f
        ld   d, high (PixelTable)
        ld   e, a
        ld   a, (de)
        and  c
        ld   c, a
        ld   a, (hl)
        and  b
        or   c
        ld   (hl), a
        ret

        defs low -$
PixelTable
        db   0ffh,0fh,0f0h,00h
pixelmask
        db   88h,44h,22h,11h
« Last Edit: 2018.October.04. 11:20:41 by geco »

Offline geco

  • EP addict
  • *
  • Posts: 5084
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 52.0 Firefox 52.0
    • View Profile
Re: Grafikai trükkök
« Reply #676 on: 2018.October.04. 11:19:45 »
És ez a 2 színű:

Code: [Select]
PutPixel:
.y:     equ  $ + 1
        ld   hl, 0
        xor  a
        srl  h
        rr   l
        rra
        srl  h
        rr   l
        rra
        ld   h, l
        ld   l, a
.x:     equ  $ + 1
        ld   de, 0
        ld   a,01h
        srl  e
        rla
        srl  e
        rla
        srl  e
        rla
        srl  e
        rla
        ld   c,a
        ld   b, high pixelmask
        ld   a,(bc)
        add  hl, de
        set  7, h
        ld   c, a
        cpl
        ld   b, a
.color: equ  $ + 1
        ld   a, 0                   ;szín érték vagy 00h, vagy 0ffh
        and  c
        ld   c, a
        ld   a, (hl)
        and  b
        or   c
        ld   (hl), a
        ret

        defs low -$
pixelmask
        db   80h,40h,20h,10h,08h,04h,02h,01h

Offline geco

  • EP addict
  • *
  • Posts: 5084
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 52.0 Firefox 52.0
    • View Profile
Re: Grafikai trükkök
« Reply #677 on: 2018.October.04. 11:22:18 »
Bocs, a táblázatokat módosítani kellett, mert az első X pozícióba kerül a magasabb érték, a másodikba az alacsonyabb, és így tovább.

Offline Povi

  • EP addict
  • *
  • Posts: 1700
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 69.0.3497.100 Chrome 69.0.3497.100
    • View Profile
    • http://povi.fw.hu
Re: Grafikai trükkök
« Reply #678 on: 2018.October.04. 15:39:49 »
Szerintem ez lenne a négy színű, ha nem szúrtam el semmit :D

Nekem a 00, f0, 0f, ff pixeltable sorrend jobbnak tűnik.
de a mask még nem az igazi - szőrös lesz a kép

az and 7-et lecseréltem and 3-ra, hogy 0-3 intervallumba legyen a szín
« Last Edit: 2018.October.04. 15:47:04 by Povi »
*** Speicherplatz zu klein

Offline geco

  • EP addict
  • *
  • Posts: 5084
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 52.0 Firefox 52.0
    • View Profile
Re: Grafikai trükkök
« Reply #679 on: 2018.October.04. 16:52:41 »
Nekem a 00, f0, 0f, ff pixeltable sorrend jobbnak tűnik.
de a mask még nem az igazi - szőrös lesz a kép

az and 7-et lecseréltem and 3-ra, hogy 0-3 intervallumba legyen a szín
Igazad van :)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4755
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 58.0 Firefox 58.0
    • View Profile
Re: Grafikai trükkök
« Reply #680 on: 2018.October.06. 14:52:51 »
Talán működik:

Code: ZiLOG Z80 Assembler
  1. PutPixel:
  2. .y:     equ  $ + 1
  3.         ld   hl, 0
  4. .x:     equ  $ + 1
  5.         ld   de, 0
  6.         ld   h, l
  7.         ld   l, 0
  8.         add  hl, de
  9.         scf
  10.         rr   h
  11.         rr   l
  12.         sra  h
  13.         rr   l
  14.         ld   a, e
  15.         and  03h
  16.         ld   de, pixelmask
  17.         or   e
  18.         ld   e, a
  19.         ld   a, (de)
  20.         ld   c, a
  21.         cpl
  22.         ld   b, a
  23. .color: equ  $ + 1
  24.         ld   a, 0
  25.         and  03h
  26.         ld   e, a
  27.         ld   a, (de)
  28.         and  c
  29.         ld   c, a
  30.         ld   a, (hl)
  31.         and  b
  32.         or   c
  33.         ld   (hl), a
  34.         ret
  35.  
  36.         defs low -$
  37. PixelTable
  38.         db   00h,0f0h,0fh,0ffh
  39. pixelmask
  40.         db   88h,44h,22h,11h
  41.  
« Last Edit: 2018.October.06. 14:56:07 by IstvanV »

Offline IstvanV

  • EP addict
  • *
  • Posts: 4755
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 58.0 Firefox 58.0
    • View Profile
Re: Grafikai trükkök
« Reply #681 on: 2018.October.07. 16:22:40 »
Teszt program a fenti rutin kissé módosított változatával:

* circle.out (0.52 kB. 4x2 - viewed 58 times.)
* circle.asm (6.55 kB - downloaded 58 times.)

Szerk.: optimalizált PutPixel, pontosabb kör rajzolás, és ditherelt pixel rutin.
« Last Edit: 2018.October.07. 20:13:54 by IstvanV »

Offline Povi

  • EP addict
  • *
  • Posts: 1700
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 69.0.3497.100 Chrome 69.0.3497.100
    • View Profile
    • http://povi.fw.hu
Re: Grafikai trükkök
« Reply #682 on: 2018.October.09. 15:53:16 »
Teszt program a fenti rutin kissé módosított változatával:

(Attachment Link)
(Attachment Link)

Szerk.: optimalizált PutPixel, pontosabb kör rajzolás, és ditherelt pixel rutin.

tetszik az LPT készítése, lopom az ötletet ;-)

viszont itt vszínűleg elírás van:
Code: [Select]
        ld    bc, 011ch                 ; BORD_VID
        ld    d, 00h
        exos  16
        ld    bc, 011ch                 ; BIAS_VID
        ld    d, 00h
        exos  16
        halt
        halt

ugyanazt a két változót állítod egymás után

viszont a kérdésem az, hogy a két HALT-ra mi szükség van utána?
*** Speicherplatz zu klein

Offline Zozosoft

  • EP addict
  • *
  • Posts: 13076
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Firefox 62.0 Firefox 62.0
    • View Profile
    • http://enterprise.iko.hu/
Re: Grafikai trükkök
« Reply #683 on: 2018.October.09. 16:39:35 »
viszont a kérdésem az, hogy a két HALT-ra mi szükség van utána?
Hogy biztosan lefusson videó megszakítás, ami kiírja az új értékeket a Nick-nek.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4755
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 58.0 Firefox 58.0
    • View Profile
Re: Grafikai trükkök
« Reply #684 on: 2018.October.09. 16:46:37 »
ugyanazt a két változót állítod egymás után

Valóban hiba. :oops: Ez egyébként egy régebbi egyszerű "demó" (köröket rajzolt 16 színű módban), amibe beépítettem a 4 színű PutPixel rutint.

Quote
viszont a kérdésem az, hogy a két HALT-ra mi szükség van utána?

Így biztosan be tudja állítani az EXOS az új keret színt és biast video megszakításban, bár itt a gyakorlatban nem sok jelentősége van. Akkor lenne elsősorban, ha a változók állítása után a program azonnal tiltaná az EXOS megszakítás kezelését.

Offline Povi

  • EP addict
  • *
  • Posts: 1700
  • Country: hu
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 69.0.3497.100 Chrome 69.0.3497.100
    • View Profile
    • http://povi.fw.hu
Re: Grafikai trükkök
« Reply #685 on: 2018.October.10. 11:18:02 »
Így biztosan be tudja állítani az EXOS az új keret színt és biast video megszakításban, bár itt a gyakorlatban nem sok jelentősége van. Akkor lenne elsősorban, ha a változók állítása után a program azonnal tiltaná az EXOS megszakítás kezelését.
Hm... és tényleg! HALT nélkül, és egy HALT-tal is maradt a keretszín.
*** Speicherplatz zu klein