Welcome, Guest. Please login or register.


Author Topic: MIDI to BASIC (Read 5590 times)

Offline ergoGnomik

  • EP lover
  • *
  • Posts: 862
  • Country: hu
  • Stray cat from Commodore alley
  • OS:
  • Windows NT 10.0 Windows NT 10.0
  • Browser:
  • Chrome 79.0.3945.131 Chrome 79.0.3945.131
    • View Profile
Re: MIDI to BASIC
« Reply #15 on: 2020.January.20. 12:28:49 »
Köszi, nagyjából értem...
A bájtok legfelső bitje mindig jelző bit, a tárolt érték kiszámításában nem játszik szerepet. Ha az értéke 1, akkor az adott bájt feldolgozása után még nem értünk az érték beolvasásának végére. Ha az értéke 0, akkor az adott bájt feldolgozása után elértük az érték beolvasásának végét.

Valami hasonló algoritmust lehet elképzelni:
  • Nullázzuk az értéket tároló változót. (pl.: LET VALUE = 0)
  • Beolvassuk a soronkövetkező bájtot. (pl.: beolvassuk a MIDIBYTE nevű változóba)
  • Ha nagyobb az értéke 127-nél, akkor a tárolt értéket megszorozzuk 128-cal és hozzáadjuk az alsó hét bit értékét. (pl.: LET VALUE = VALUE * 128 + MIDIBYTE - 128)
  • Ha kisebb az értéke 128-nál, akor a tárolt értéket megszorozzuk 128-cal és hozzáadjuk az alsó hét bit értékét. (pl.: LET VALUE = VALUE * 128 + MIDIBYTE)
  • Ha nagyobb az értéke 127-nél akkor folytatjuk a 2. ponttól.
  • Kész.