Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > hr.comp.programiranje.java > #41
| 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.
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 | Next — Previous in thread | Next in thread | Find similar
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