Welcome, Guest. Please login or register.


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

Offline IstvanV

  • EP addict
  • *
  • Posts: 4817
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 58.0 Firefox 58.0
    • View Profile
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 fan
  • *
  • Posts: 204
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 50.0.2661.94 Chrome 50.0.2661.94
    • View Profile
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