Welcome, Guest. Please login or register.


Author Topic: Az 1 bites hang csodái :) (Read 19730 times)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: Az 1 bites hang csodái :)
« Reply #30 on: 2019.February.26. 11:15:58 »
Egyszerű (megszakítás nélküli) lejátszó rutin zcc -compiler sdcc-hez, 11025 Hz-es hangmintánál 4 MHz-es gépen alapértelmezett memória várakozással a "speed" értéke 20:

Code: C
  1. void Play_Sample(const unsigned char *buf,
  2.                  unsigned int len, unsigned char speed) __naked
  3. {
  4.   (void) buf;
  5.   (void) len;
  6.   (void) speed;
  7.   __asm__ (
  8.     "ld      hl, #6\n"
  9.     "add     hl, sp\n"
  10.     "ld      c, (hl)\n"
  11.     "dec     hl\n"
  12.     "ld      d, (hl)\n"
  13.     "dec     hl\n"
  14.     "ld      e, (hl)\n"
  15.     "dec     hl\n"
  16.     "ld      a, (hl)\n"
  17.     "dec     hl\n"
  18.     "ld      l, (hl)\n"
  19.     "ld      h, a\n"
  20.     "ld      a, #0x18\n"
  21.     "di\n"
  22.     "out     (0xa7), a\n"
  23.     "ld      a, (hl)\n"
  24.     "inc     hl\n"
  25.     "and     a, #0xfc\n"
  26.     "rra\n"
  27.     "rra\n"
  28.     "out     (0xa8), a\n"
  29.     "out     (0xac), a\n"
  30.     "ld      b, c\n"
  31.     ".byte   16\n"      // DJNZ -2
  32.     ".byte   254\n"
  33.     "dec     de\n"
  34.     "ld      a, e\n"
  35.     "or      a, d\n"
  36.     ".byte   32\n"      // JR NZ, -18
  37.     ".byte   238\n"
  38.     "out     (0xa7), a\n"
  39.     "ei\n"
  40.     "ret\n"
  41.   );
  42. }

Offline Tomato77

  • EP user
  • *
  • Posts: 398
  • Country: hu
    • Támogató Támogató
Re: Az 1 bites hang csodái :)
« Reply #31 on: 2019.February.26. 19:25:56 »
Fú, műxik, és nagyon tisztán játssza le! :) Köszönöm a segítséget mindenkinek! 6 KHz-re konvertáltam, így lett kb. 2400 bájt. Simán C-ben megírva is működik. Kész lesz a fórumtali előtt. :)
Kotasoft