vsphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget7/translations/zh_CN/driver-api/media/drivers/radiotrackmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget7/translations/zh_TW/driver-api/media/drivers/radiotrackmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget7/translations/it_IT/driver-api/media/drivers/radiotrackmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget7/translations/ja_JP/driver-api/media/drivers/radiotrackmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget7/translations/ko_KR/driver-api/media/drivers/radiotrackmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget7/translations/sp_SP/driver-api/media/drivers/radiotrackmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhQ/var/lib/git/docbuild/linux/Documentation/driver-api/media/drivers/radiotrack.rsthKubhsection)}(hhh](htitle)}(hThe Radiotrack radio driverh]hThe Radiotrack radio driver}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(h2Author: Stephen M. Benoit h](hAuthor: Stephen M. Benoit <}(hhhhhNhNubh reference)}(hbenoits@servicepro.comh]hbenoits@servicepro.com}(hhhhhNhNubah}(h]h ]h"]h$]h&]refurimailto:benoits@servicepro.comuh1hhhubh>}(hhhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hDate: Dec 14, 1996h]hDate: Dec 14, 1996}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hhh](h)}(hACKNOWLEDGMENTSh]hACKNOWLEDGMENTS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhK ubh)}(hXThis document was made based on 'C' code for Linux from Gideon le Grange (legrang@active.co.za or legrang@cs.sun.ac.za) in 1994, and elaborations from Frans Brinkman (brinkman@esd.nl) in 1996. The results reported here are from experiments that the author performed on his own setup, so your mileage may vary... I make no guarantees, claims or warranties to the suitability or validity of this information. No other documentation on the AIMS Lab (http://www.aimslab.com/) RadioTrack card was made available to the author. This document is offered in the hopes that it might help users who want to use the RadioTrack card in an environment other than MS Windows.h](hNThis document was made based on ‘C’ code for Linux from Gideon le Grange (}(hjhhhNhNubh)}(hlegrang@active.co.zah]hlegrang@active.co.za}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurimailto:legrang@active.co.zauh1hhjubh or }(hjhhhNhNubh)}(hlegrang@cs.sun.ac.zah]hlegrang@cs.sun.ac.za}(hj*hhhNhNubah}(h]h ]h"]h$]h&]refurimailto:legrang@cs.sun.ac.zauh1hhjubh1) in 1994, and elaborations from Frans Brinkman (}(hjhhhNhNubh)}(hbrinkman@esd.nlh]hbrinkman@esd.nl}(hj>hhhNhNubah}(h]h ]h"]h$]h&]refurimailto:brinkman@esd.nluh1hhjubhX ) in 1996. The results reported here are from experiments that the author performed on his own setup, so your mileage may vary... I make no guarantees, claims or warranties to the suitability or validity of this information. No other documentation on the AIMS Lab (}(hjhhhNhNubh)}(hhttp://www.aimslab.com/h]hhttp://www.aimslab.com/}(hjRhhhNhNubah}(h]h ]h"]h$]h&]refurijTuh1hhjubh) RadioTrack card was made available to the author. This document is offered in the hopes that it might help users who want to use the RadioTrack card in an environment other than MS Windows.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK hhhhubeh}(h]acknowledgmentsah ]h"]acknowledgmentsah$]h&]uh1hhhhhhhhK ubh)}(hhh](h)}(hWHY THIS DOCUMENT?h]hWHY THIS DOCUMENT?}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjshhhhhKubh)}(hXI have a RadioTrack card from back when I ran an MS-Windows platform. After converting to Linux, I found Gideon le Grange's command-line software for running the card, and found that it was good! Frans Brinkman made a comfortable X-windows interface, and added a scanning feature. For hack value, I wanted to see if the tuner could be tuned beyond the usual FM radio broadcast band, so I could pick up the audio carriers from North American broadcast TV channels, situated just below and above the 87.0-109.0 MHz range. I did not get much success, but I learned about programming ioports under Linux and gained some insights about the hardware design used for the card.h]hXI have a RadioTrack card from back when I ran an MS-Windows platform. After converting to Linux, I found Gideon le Grange’s command-line software for running the card, and found that it was good! Frans Brinkman made a comfortable X-windows interface, and added a scanning feature. For hack value, I wanted to see if the tuner could be tuned beyond the usual FM radio broadcast band, so I could pick up the audio carriers from North American broadcast TV channels, situated just below and above the 87.0-109.0 MHz range. I did not get much success, but I learned about programming ioports under Linux and gained some insights about the hardware design used for the card.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjshhubh)}(h0So, without further delay, here are the details.h]h0So, without further delay, here are the details.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK$hjshhubeh}(h]why-this-documentah ]h"]why this document?ah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hPHYSICAL DESCRIPTIONh]hPHYSICAL DESCRIPTION}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK(ubh)}(hXThe RadioTrack card is an ISA 8-bit FM radio card. The radio frequency (RF) input is simply an antenna lead, and the output is a power audio signal available through a miniature phone plug. Its RF frequencies of operation are more or less limited from 87.0 to 109.0 MHz (the commercial FM broadcast band). Although the registers can be programmed to request frequencies beyond these limits, experiments did not give promising results. The variable frequency oscillator (VFO) that demodulates the intermediate frequency (IF) signal probably has a small range of useful frequencies, and wraps around or gets clipped beyond the limits mentioned above.h]hXThe RadioTrack card is an ISA 8-bit FM radio card. The radio frequency (RF) input is simply an antenna lead, and the output is a power audio signal available through a miniature phone plug. Its RF frequencies of operation are more or less limited from 87.0 to 109.0 MHz (the commercial FM broadcast band). Although the registers can be programmed to request frequencies beyond these limits, experiments did not give promising results. The variable frequency oscillator (VFO) that demodulates the intermediate frequency (IF) signal probably has a small range of useful frequencies, and wraps around or gets clipped beyond the limits mentioned above.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK*hjhhubeh}(h]physical-descriptionah ]h"]physical descriptionah$]h&]uh1hhhhhhhhK(ubh)}(hhh](h)}(h CONTROLLING THE CARD WITH IOPORTh]h CONTROLLING THE CARD WITH IOPORT}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK6ubh)}(hXThe RadioTrack (base) ioport is configurable for 0x30c or 0x20c. Only one ioport seems to be involved. The ioport decoding circuitry must be pretty simple, as individual ioport bits are directly matched to specific functions (or blocks) of the radio card. This way, many functions can be changed in parallel with one write to the ioport. The only feedback available through the ioports appears to be the "Stereo Detect" bit.h]hXThe RadioTrack (base) ioport is configurable for 0x30c or 0x20c. Only one ioport seems to be involved. The ioport decoding circuitry must be pretty simple, as individual ioport bits are directly matched to specific functions (or blocks) of the radio card. This way, many functions can be changed in parallel with one write to the ioport. The only feedback available through the ioports appears to be the “Stereo Detect” bit.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK8hjhhubh)}(h/The bits of the ioport are arranged as follows:h]h/The bits of the ioport are arranged as follows:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK?hjhhubh literal_block)}(hXMSb LSb +------+------+------+--------+--------+-------+---------+--------+ | VolA | VolB | ???? | Stereo | Radio | TuneA | TuneB | Tune | | (+) | (-) | | Detect | Audio | (bit) | (latch) | Update | | | | | Enable | Enable | | | Enable | +------+------+------+--------+--------+-------+---------+--------+h]hXMSb LSb +------+------+------+--------+--------+-------+---------+--------+ | VolA | VolB | ???? | Stereo | Radio | TuneA | TuneB | Tune | | (+) | (-) | | Detect | Audio | (bit) | (latch) | Update | | | | | Enable | Enable | | | Enable | +------+------+------+--------+--------+-------+---------+--------+}hjsbah}(h]h ]h"]h$]h&]hhforcelanguagenonehighlight_args}uh1jhhhKAhjhhubhtable)}(hhh]htgroup)}(hhh](hcolspec)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthK!uh1jhjubhthead)}(hhh]hrow)}(hhh](hentry)}(hhh]h)}(hVolAh]hVolA}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKLhjGubah}(h]h ]h"]h$]h&]uh1jEhjBubjF)}(hhh]h)}(hVolBh]hVolB}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKLhj^ubah}(h]h ]h"]h$]h&]uh1jEhjBubjF)}(hhh]h)}(h Descriptionh]h Description}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKLhjuubah}(h]h ]h"]h$]h&]uh1jEhjBubeh}(h]h ]h"]h$]h&]uh1j@hj=ubah}(h]h ]h"]h$]h&]uh1j;hjubhtbody)}(hhh](jA)}(hhh](jF)}(hhh]h)}(h0h]h0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKNhjubah}(h]h ]h"]h$]h&]uh1jEhjubjF)}(hhh]h)}(hjh]h0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKNhjubah}(h]h ]h"]h$]h&]uh1jEhjubjF)}(hhh]h)}(h audio muteh]h audio mute}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKNhjubah}(h]h ]h"]h$]h&]uh1jEhjubeh}(h]h ]h"]h$]h&]uh1j@hjubjA)}(hhh](jF)}(hhh]h)}(hjh]h0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKOhjubah}(h]h ]h"]h$]h&]uh1jEhjubjF)}(hhh]h)}(h1h]h1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKOhjubah}(h]h ]h"]h$]h&]uh1jEhjubjF)}(hhh]h)}(h!volume + (some delay required)h]h!volume + (some delay required)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKOhjubah}(h]h ]h"]h$]h&]uh1jEhjubeh}(h]h ]h"]h$]h&]uh1j@hjubjA)}(hhh](jF)}(hhh]h)}(hjh]h1}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKPhj:ubah}(h]h ]h"]h$]h&]uh1jEhj7ubjF)}(hhh]h)}(hjh]h0}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKPhjPubah}(h]h ]h"]h$]h&]uh1jEhj7ubjF)}(hhh]h)}(h!volume - (some delay required)h]h!volume - (some delay required)}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKPhjfubah}(h]h ]h"]h$]h&]uh1jEhj7ubeh}(h]h ]h"]h$]h&]uh1j@hjubjA)}(hhh](jF)}(hhh]h)}(hjh]h1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKQhjubah}(h]h ]h"]h$]h&]uh1jEhjubjF)}(hhh]h)}(hjh]h1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKQhjubah}(h]h ]h"]h$]h&]uh1jEhjubjF)}(hhh]h)}(hstay at present volumeh]hstay at present volume}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKQhjubah}(h]h ]h"]h$]h&]uh1jEhjubeh}(h]h ]h"]h$]h&]uh1j@hjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]colsKuh1jhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(hhh]j)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthK uh1jhjubj<)}(hhh]jA)}(hhh](jF)}(hhh]h)}(hStereo Detect Enableh]hStereo Detect Enable}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKUhjubah}(h]h ]h"]h$]h&]uh1jEhjubjF)}(hhh]h)}(h Descriptionh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKUhjubah}(h]h ]h"]h$]h&]uh1jEhjubeh}(h]h ]h"]h$]h&]uh1j@hjubah}(h]h ]h"]h$]h&]uh1j;hjubj)}(hhh](jA)}(hhh](jF)}(hhh]h)}(hjh]h0}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKWhjBubah}(h]h ]h"]h$]h&]uh1jEhj?ubjF)}(hhh]h)}(h No Detecth]h No Detect}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKWhjXubah}(h]h ]h"]h$]h&]uh1jEhj?ubeh}(h]h ]h"]h$]h&]uh1j@hj<ubjA)}(hhh](jF)}(hhh]h)}(hjh]h1}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKXhjxubah}(h]h ]h"]h$]h&]uh1jEhjuubjF)}(hhh]h)}(hDetecth]hDetect}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKXhjubah}(h]h ]h"]h$]h&]uh1jEhjuubeh}(h]h ]h"]h$]h&]uh1j@hj<ubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]colsKuh1jhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubh)}(hCResults available by reading ioport >60 msec after last port write.h]hCResults available by reading ioport >60 msec after last port write.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK[hjhhubh block_quote)}(h80xff ==> no stereo detected, 0xfd ==> stereo detected. h]h)}(h70xff ==> no stereo detected, 0xfd ==> stereo detected.h]h70xff ==> no stereo detected, 0xfd ==> stereo detected.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK]hjubah}(h]h ]h"]h$]h&]uh1jhhhK]hjhhubj)}(hhh]j)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj<)}(hhh]jA)}(hhh](jF)}(hhh]h)}(hRadio to Audio (path) Enableh]hRadio to Audio (path) Enable}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK`hjubah}(h]h ]h"]h$]h&]uh1jEhjubjF)}(hhh]h)}(h Descriptionh]h Description}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK`hjubah}(h]h ]h"]h$]h&]uh1jEhjubeh}(h]h ]h"]h$]h&]uh1j@hjubah}(h]h ]h"]h$]h&]uh1j;hjubj)}(hhh](jA)}(hhh](jF)}(hhh]h)}(hjh]h0}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKbhjFubah}(h]h ]h"]h$]h&]uh1jEhjCubjF)}(hhh]h)}(hDisable path (silence)h]hDisable path (silence)}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKbhj\ubah}(h]h ]h"]h$]h&]uh1jEhjCubeh}(h]h ]h"]h$]h&]uh1j@hj@ubjA)}(hhh](jF)}(hhh]h)}(hjh]h1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKchj|ubah}(h]h ]h"]h$]h&]uh1jEhjyubjF)}(hhh]h)}(hEnable path (audio produced)h]hEnable path (audio produced)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKchjubah}(h]h ]h"]h$]h&]uh1jEhjyubeh}(h]h ]h"]h$]h&]uh1j@hj@ubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]colsKuh1jhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubj)}(hhh]j)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj<)}(hhh]jA)}(hhh](jF)}(hhh]h)}(hTuneAh]hTuneA}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKghjubah}(h]h ]h"]h$]h&]uh1jEhjubjF)}(hhh]h)}(hTuneBh]hTuneB}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKghjubah}(h]h ]h"]h$]h&]uh1jEhjubjF)}(hhh]h)}(h Descriptionh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKghjubah}(h]h ]h"]h$]h&]uh1jEhjubeh}(h]h ]h"]h$]h&]uh1j@hjubah}(h]h ]h"]h$]h&]uh1j;hjubj)}(hhh](jA)}(hhh](jF)}(hhh]h)}(hjh]h0}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKihjCubah}(h]h ]h"]h$]h&]uh1jEhj@ubjF)}(hhh]h)}(hjh]h0}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKihjYubah}(h]h ]h"]h$]h&]uh1jEhj@ubjF)}(hhh]h)}(h"zero" bit phase 1h]h“zero” bit phase 1}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKihjoubah}(h]h ]h"]h$]h&]uh1jEhj@ubeh}(h]h ]h"]h$]h&]uh1j@hj=ubjA)}(hhh](jF)}(hhh]h)}(hjh]h0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKjhjubah}(h]h ]h"]h$]h&]uh1jEhjubjF)}(hhh]h)}(hjh]h1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKjhjubah}(h]h ]h"]h$]h&]uh1jEhjubjF)}(hhh]h)}(h"zero" bit phase 2h]h“zero” bit phase 2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKjhjubah}(h]h ]h"]h$]h&]uh1jEhjubeh}(h]h ]h"]h$]h&]uh1j@hj=ubjA)}(hhh](jF)}(hhh]h)}(hjh]h1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKkhjubah}(h]h ]h"]h$]h&]uh1jEhjubjF)}(hhh]h)}(hjh]h0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKkhjubah}(h]h ]h"]h$]h&]uh1jEhjubjF)}(hhh]h)}(h"one" bit phase 1h]h“one” bit phase 1}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKkhjubah}(h]h ]h"]h$]h&]uh1jEhjubeh}(h]h ]h"]h$]h&]uh1j@hj=ubjA)}(hhh](jF)}(hhh]h)}(hjh]h1}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKlhj'ubah}(h]h ]h"]h$]h&]uh1jEhj$ubjF)}(hhh]h)}(hjh]h1}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKlhj=ubah}(h]h ]h"]h$]h&]uh1jEhj$ubjF)}(hhh]h)}(h"one" bit phase 2h]h“one” bit phase 2}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKlhjSubah}(h]h ]h"]h$]h&]uh1jEhj$ubeh}(h]h ]h"]h$]h&]uh1j@hj=ubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]colsKuh1jhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubh)}(h24-bit code, where bits = (freq*40) + 10486188. The Most Significant 11 bits must be 1010 xxxx 0x0 to be valid. The bits are shifted in LSb first.h]h24-bit code, where bits = (freq*40) + 10486188. The Most Significant 11 bits must be 1010 xxxx 0x0 to be valid. The bits are shifted in LSb first.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKphjhhubj)}(hhh]j)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj<)}(hhh]jA)}(hhh](jF)}(hhh]h)}(hTune Update Enableh]hTune Update Enable}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKuhjubah}(h]h ]h"]h$]h&]uh1jEhjubjF)}(hhh]h)}(h Descriptionh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKuhjubah}(h]h ]h"]h$]h&]uh1jEhjubeh}(h]h ]h"]h$]h&]uh1j@hjubah}(h]h ]h"]h$]h&]uh1j;hjubj)}(hhh](jA)}(hhh](jF)}(hhh]h)}(hjh]h0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKwhjubah}(h]h ]h"]h$]h&]uh1jEhjubjF)}(hhh]h)}(hTuner held constanth]hTuner held constant}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKwhjubah}(h]h ]h"]h$]h&]uh1jEhjubeh}(h]h ]h"]h$]h&]uh1j@hjubjA)}(hhh](jF)}(hhh]h)}(hjh]h1}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKxhj'ubah}(h]h ]h"]h$]h&]uh1jEhj$ubjF)}(hhh]h)}(hTuner updating in progressh]hTuner updating in progress}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKxhj=ubah}(h]h ]h"]h$]h&]uh1jEhj$ubeh}(h]h ]h"]h$]h&]uh1j@hjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]colsKuh1jhjubah}(h]h ]h"]h$]h&]uh1jhjhhhhhNubeh}(h] controlling-the-card-with-ioportah ]h"] controlling the card with ioportah$]h&]uh1hhhhhhhhK6ubh)}(hhh](h)}(hPROGRAMMING EXAMPLESh]hPROGRAMMING EXAMPLES}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjuhhhhhK}ubj)}(hXDefault: BASE <-- 0xc8 (current volume, no stereo detect, radio enable, tuner adjust disable) Card Off: BASE <-- 0x00 (audio mute, no stereo detect, radio disable, tuner adjust disable) Card On: BASE <-- 0x00 (see "Card Off", clears any unfinished business) BASE <-- 0xc8 (see "Default") Volume Down: BASE <-- 0x48 (volume down, no stereo detect, radio enable, tuner adjust disable) wait 10 msec BASE <-- 0xc8 (see "Default") Volume Up: BASE <-- 0x88 (volume up, no stereo detect, radio enable, tuner adjust disable) wait 10 msec BASE <-- 0xc8 (see "Default") Check Stereo: BASE <-- 0xd8 (current volume, stereo detect, radio enable, tuner adjust disable) wait 100 msec x <-- BASE (read ioport) BASE <-- 0xc8 (see "Default") x=0xff ==> "not stereo", x=0xfd ==> "stereo detected" Set Frequency: code = (freq*40) + 10486188 foreach of the 24 bits in code, (from Least to Most Significant): to write a "zero" bit, BASE <-- 0x01 (audio mute, no stereo detect, radio disable, "zero" bit phase 1, tuner adjust) BASE <-- 0x03 (audio mute, no stereo detect, radio disable, "zero" bit phase 2, tuner adjust) to write a "one" bit, BASE <-- 0x05 (audio mute, no stereo detect, radio disable, "one" bit phase 1, tuner adjust) BASE <-- 0x07 (audio mute, no stereo detect, radio disable, "one" bit phase 2, tuner adjust)h]hXDefault: BASE <-- 0xc8 (current volume, no stereo detect, radio enable, tuner adjust disable) Card Off: BASE <-- 0x00 (audio mute, no stereo detect, radio disable, tuner adjust disable) Card On: BASE <-- 0x00 (see "Card Off", clears any unfinished business) BASE <-- 0xc8 (see "Default") Volume Down: BASE <-- 0x48 (volume down, no stereo detect, radio enable, tuner adjust disable) wait 10 msec BASE <-- 0xc8 (see "Default") Volume Up: BASE <-- 0x88 (volume up, no stereo detect, radio enable, tuner adjust disable) wait 10 msec BASE <-- 0xc8 (see "Default") Check Stereo: BASE <-- 0xd8 (current volume, stereo detect, radio enable, tuner adjust disable) wait 100 msec x <-- BASE (read ioport) BASE <-- 0xc8 (see "Default") x=0xff ==> "not stereo", x=0xfd ==> "stereo detected" Set Frequency: code = (freq*40) + 10486188 foreach of the 24 bits in code, (from Least to Most Significant): to write a "zero" bit, BASE <-- 0x01 (audio mute, no stereo detect, radio disable, "zero" bit phase 1, tuner adjust) BASE <-- 0x03 (audio mute, no stereo detect, radio disable, "zero" bit phase 2, tuner adjust) to write a "one" bit, BASE <-- 0x05 (audio mute, no stereo detect, radio disable, "one" bit phase 1, tuner adjust) BASE <-- 0x07 (audio mute, no stereo detect, radio disable, "one" bit phase 2, tuner adjust)}hjsbah}(h]h ]h"]h$]h&]hhj j nonej}uh1jhhhKhjuhhubeh}(h]programming-examplesah ]h"]programming examplesah$]h&]uh1hhhhhhhhK}ubeh}(h]the-radiotrack-radio-driverah ]h"]the radiotrack radio driverah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksjEfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(jjjpjmjjjjjrjojju nametypes}(jjpjjjrjuh}(jhjmhjjsjjjojjjuu footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.