Autor Wątek: Procedura DRAW w ROM z 3 parametrem  (Przeczytany 15208 razy)

Dalthon

  • ****
  • Wiadomości: 428
  • Miejsce pobytu:
    TriCity
Odp: Procedura DRAW w ROM z 3 parametrem
« Odpowiedź #15 dnia: 2019.07.22, 03:31:14 »
Wow! A ja siedziałem i kombinowałem...

Pierwotnie mając PI $82, $48, $f5, $c2, $8f jasne dla mnie było że 2 bajt zmienia się przy -PI na $c8 ale co się dzieje z 1 bajtem to dla mnie zagadka (pewnie za dużo piwa dzisiaj;p)

Wielkie dzięki! Teraz wiem że dla PI (bez minusa) powinno być $f2, $48, $f5, $c2, $8f - tylko nie wiem dlaczego (te czary z 1 bajtem...).
ZX Spectrum +2 Grey | Just Speccy 128 | ZX Spectrum Next | ZX-Uno 2MB |  Murmulator | Amstrad 6128 | MSX2 Philips VG-8235 | Commodore 64 | Commodore +4 | Atari 520 STF | Amiga 1200

steev

  • *****
  • Wiadomości: 1362
  • Miejsce pobytu:
    inode 42
Odp: Procedura DRAW w ROM z 3 parametrem
« Odpowiedź #16 dnia: 2019.07.22, 07:49:30 »
Pierwsze dwa bity określają do ilu bajtów została liczba 'skompresowana'
Czy takie czary były faktycznie potrzebne i czy dały jakiś realny zysk - nie mam pojęcia, ale zakładam że jednak tak (bo są :) )
Machines should work. People should think.

steev

  • *****
  • Wiadomości: 1362
  • Miejsce pobytu:
    inode 42
Odp: Procedura DRAW w ROM z 3 parametrem
« Odpowiedź #17 dnia: 2019.07.22, 08:14:46 »
Nb. można też bez kombinowania z kalkulatorem :
        org $8000

        ld a,0
        ld (23677),a            ; początkowe X
        ld a,47
        ld (23678),a            ; początkowe Y

        ld a,255
        call $2d28              ; wrzuć na stos kalkulatora A - X linii
        ld a,0
        call $2d28              ; j.w. - Y linii

        ld hl,par3
        ld de,($5c65)           ;Point DE to STKEND.
        call $33c0              ;Stack the 5 bytes.
        ex de,hl                ;Point HL to the new position of STKEND, and reset the system variable.
        ld ($5c65),hl

        call $2394         ; rysowanie łuku wg parametrów ze stosu kalkulatora

        ld hl,$2758        ; wracamy do BASICa - kalkulator zmienia
                           ; HL' trzeba więc przywrócić właściwą
                           ; zawartość
        exx
        ret

par3:   db $82, $c8, $f5, $c2, $8f
Machines should work. People should think.

Dalthon

  • ****
  • Wiadomości: 428
  • Miejsce pobytu:
    TriCity
Odp: Procedura DRAW w ROM z 3 parametrem
« Odpowiedź #18 dnia: 2019.07.22, 18:50:53 »
Naprawdę wielkie dzięki! Efekt potrzebny osiągnięty - będzie w kolejnym 1kB wykorzystane ;)

ZX Spectrum +2 Grey | Just Speccy 128 | ZX Spectrum Next | ZX-Uno 2MB |  Murmulator | Amstrad 6128 | MSX2 Philips VG-8235 | Commodore 64 | Commodore +4 | Atari 520 STF | Amiga 1200