Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > hr.comp.programiranje.java > #41

Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u?

From Chupo <bad_n_mad@yahoo.com>
Newsgroups hr.comp.programiranje, hr.comp.programiranje.java
Subject Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u?
Date 2017-08-07 18:30 +0200
Organization Noname d.o.o.
Message-ID <MPG.33f2b40a114b0d4498afba@news.t-com.hr> (permalink)
References (20 earlier) <oksjjc$66v$1@sunce.iskon.hr> <MPG.33dc3b1d233493a298afb7@news.t-com.hr> <om1kng$k43$2@sunce.iskon.hr> <MPG.33eeaf4a9fa3ddbf98afb9@news.t-com.hr> <oma13a$24s$1@sunce.iskon.hr>

Cross-posted to 2 groups.

Show all headers | View raw


In article <oma13a$24s$1@sunce.iskon.hr>, Bruno Babic <a@b.c> says...
> Ako sam dobro shvatio, ta rutina za zvuk se okaci na neki interrupt koji 
> se onda poziva u nekim redovitim intervalima? Rutina pamti sto je do 
> tada odradila pa nastavlja dalje u odnosnu na prethodni prolaz?
> 

Da, ova verzija za mikrokontroler. S obzirom da je u C-u nemoguce 
napisati kod koji bi u svakom prolazu trosio isti broj T stanja se 
koristi timer koji generira interrupt-e u pravilnim vremenskim 
razmacima. U glavnom programu se parsiraju podaci a u Timer 2 output 
compare match interrupt-u se na zvucniku generiraju klikovi na isti 
nacin kako bi ih generirala rutina na Spectrumu koja ne koristi 
interrupt nego radi punom brzinom ali je napisana tako da u svakom 
prolazu, bez obzira na grananja, uvijek trosi isti broj taktova.

Moglo bi se reci da je takav nacin pisanja programa varanje i autor 
foruma je reko da bi i na mikrokontroleru htio napraviti 'pravu' rutinu 
pisanu u assembleru koja bi radila na potpuno isti nacin ko originalne 
rutine za Spectrum. Na AVR mikrokontrolerima ce to biti puno lakse 
napraviti jer 90% instrukcija traje samo 1 ili dva takta a na Spectrumu 
instrukcije traju od 4 do 23 takta pa nije jednostavno napraviti rutinu 
koja ce uvijek trositi jednak broj taktova.

Interrupt se na Spectrumu za tu svrhu nije mogo koristiti jer 
frekvenciju interrupta odreduje ULA i tako da se interrupti, kao i na 
vecini kompjutera iz osamdesetih, generiraju s VBLANK i frekvencija je 
onda samo 50 Hz a neke rutine za zvuk na Spectrumu impulse generiraju 
cak i s frekvencijama vecim od 400 (cetiristo!!) kHz :-)) Iako se na 
prvi pogled cini da frekvencija toliko iznad praga cujnosti nema 
smisla, ako se prouci princip na kojem se u takvim rutinama dobiva neki 
valni oblik u cujnom podrucju onda to ima smisla. Takve frekvencije su 
i na samoj granici sta se tice brzine kojom se uopce na Spectrumu moze 
mijenjati stanje na portu 254 (jer 3.5 MHz/400 kHz = samo 8 taktova).

Na mikrokontroleru koji ima skoro 5 puta brzi takt a instrukcije mu u 
prosjeku trosiju 10 puta manje taktova i jos k tome ima i vise timer-a 
od kojih svaki omogucava generiranje vise vrsta interrupt-a nije 
problem takav nacin generiranja zvuka simulirati s rutinom u C-u koja u 
glavnom programu za sinhronizaciju kanala koristi dodatnu variablu, ali 
pisanje takve rutine na Spectrumu spada u umjetnost :-)

Dodatna otezavajuca okolnost je da na ranim modelima Spectruma prilikom 
pisanja u port 254 ULA uzrokuje dodatno kasnjenje koje se periodicki 
mijenja - pa je onda zbog toga uvjet da bi rutina uvijek trajala 
jednaki broj taktova da je zbroj taktova izmedju dva pisanja u port 254 
djeljiv s 8 :-) Ako se tome doda i da se za jedan prolaz kroz rutinu na 
raspolaganju ima samo oko 250 taktova, onda je sve skupa jos 'malo' 
kompliciranije i to su razlozi zasto su se prve kvalitetne rutine za 
visekanalni zvuk pocele javljati tek jedno 4-5 godina od izlaska 
Spectruma. Mislim da je prvi 'pravi' dvokanalni zvuk bio u Manic Mineru 
i to je zvucalo jako lose:

https://youtu.be/Us89iCZJuCQ

ali je u svim casopisima opisivano kao 'nevjerojatno'. Prva kvalitetna 
rutina koje se sjecam je bila ova:

https://youtu.be/MKKTlGHkh0E

U ono vrijeme sam ju analizirao valjda godinu dana :-)

Ovo je recimo primjer rutine gdje zvuk na emulatorima nije ni blizu 
onoga kako se cuje u originalu:

https://youtu.be/nAlHlpzzrKo

Kroz Spectrumov zvucnik se cuje zvuk gajdi ali u emulatorima se cuje 
potpuno drukciji zvuk. Objasnjenje je ovdje:

https://youtu.be/nAlHlpzzrKo

<start copy/paste>
zx beeper routines operate with up to 400 kHz, which is impossible to 
reproduce accurately on a 44.1 kHz soundcard. 
<end copy/paste>

To je napisao upravo ovaj isti covjek koji je autor foruma na kojega 
sam ti dao link :-)
-- 
Let There Be Light
Custom LED driveri prema specifikacijama
http://tinyurl.com/customleddriver

Chupo

Back to hr.comp.programiranje.java | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Chupo <bad_n_mad@yahoo.com> - 2017-07-10 05:46 +0200
  Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Bruno Babic <a@b.c> - 2017-07-10 14:16 +0200
    Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Chupo <bad_n_mad@yahoo.com> - 2017-07-10 15:18 +0200
      Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Bruno Babic <a@b.c> - 2017-07-12 09:32 +0200
        Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Chupo <bad_n_mad@yahoo.com> - 2017-07-12 23:08 +0200
          Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Bruno Babic <a@b.c> - 2017-07-14 11:25 +0200
            Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Bruno Babic <a@b.c> - 2017-07-14 11:27 +0200
            Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Chupo <bad_n_mad@yahoo.com> - 2017-07-14 15:09 +0200
              Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Bruno Babic <a@b.c> - 2017-07-14 16:22 +0200
                Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Chupo <bad_n_mad@yahoo.com> - 2017-07-14 17:21 +0200
                Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Bruno Babic <a@b.c> - 2017-07-16 11:37 +0200
                Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Chupo <bad_n_mad@yahoo.com> - 2017-07-16 15:20 +0200
                Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Bruno Babic <a@b.c> - 2017-07-17 12:36 +0200
                Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Chupo <bad_n_mad@yahoo.com> - 2017-07-18 00:37 +0200
                Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Bruno Babic <a@b.c> - 2017-07-18 17:23 +0200
                Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Chupo <bad_n_mad@yahoo.com> - 2017-07-19 01:10 +0200
                Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Bruno Babic <a@b.c> - 2017-07-19 15:14 +0200
                Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Chupo <bad_n_mad@yahoo.com> - 2017-07-19 16:21 +0200
                Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Nikolaj Lazic <nlazicBEZ_OVOGA@mudrac.ffzg.hr> - 2017-07-19 17:08 +0000
                Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Bruno Babic <a@b.c> - 2017-07-20 18:04 +0200
                Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Chupo <bad_n_mad@yahoo.com> - 2017-07-20 19:17 +0200
                Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Chupo <bad_n_mad@yahoo.com> - 2017-07-20 20:42 +0200
                Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Chupo <bad_n_mad@yahoo.com> - 2017-07-21 03:58 +0200
                Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Chupo <bad_n_mad@yahoo.com> - 2017-07-21 05:14 +0200
                Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Bruno Babic <a@b.c> - 2017-07-21 12:04 +0200
                Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Chupo <bad_n_mad@yahoo.com> - 2017-07-21 17:24 +0200
                Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Bruno Babic <a@b.c> - 2017-08-04 13:10 +0200
                Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Chupo <bad_n_mad@yahoo.com> - 2017-08-04 17:21 +0200
                Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Bruno Babic <a@b.c> - 2017-08-07 17:30 +0200
                Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Chupo <bad_n_mad@yahoo.com> - 2017-08-07 18:30 +0200
                Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Chupo <bad_n_mad@yahoo.com> - 2017-08-07 18:35 +0200
        Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Chupo <bad_n_mad@yahoo.com> - 2017-07-16 01:04 +0200
          Re: Citanje color offset-a za svaki pixel u indexed color .bmp file-u? Bruno Babic <a@b.c> - 2017-07-16 11:32 +0200

csiph-web