Introduction:
This library is a trash-product of a problem definition which was described
in a German-speaking forum.
This library was intentionally created to support high-level languages,
such as BASIC, which can not natively deal with interrupts, in contrast to
low-level languages, like C or assembler, where you can do it on your own
in case you have the needed knowledge.
IRE library is designed for Classic Amigas and not for AROS/MorphOS/OS4 -
although on MorphOS/OS4 it could be used if you don't need more than 60
calls per second (interruptions) - but this is completely untested and I
guess that the low-level library suits better in order to generate
interrupts on these systems.
On Classics using a 68060/50 MHz CPU you can specify up to 40 thousand
calls per second but that would lead to entirely slow down the whole machine.
In addition, on Classics you can digitize via a digitizer at the parallel
port audio tracks (8-bit mono).
With that, there is a built-in digitizer for those who need it. Furthermore
this sound recorder outputs what it fetches.
You may also digitize 16 bits of audio signals (interpolated; built-in) and
suppress the 8-bit output. In that case you'll need to provide your own
routines for outputting the recorded audio signals - for example using AHI.
IRE library offers two types of interrupts: A timer-device related
interrupt that can be called upto 60 times per second and a CIA hardware
timer with the possibility to create interruptions upto 40 thousand times
per second.
Four bug fixes applied to this version:
----------------------------------------
Using TOGGLE_MAKE_AUDIBLE during the interrupt is active doesn't lead
anymore to crash the entire system.
Solved all Enforcer-hits - which surfaced in case a resource could not be
procured.
The parallel port is now correctly unlocked - even if other resources could
not be obtained during the initialization (in that case InitIRQ() comes
back with an iHandle of zero).
A memory leak has been fixed; in previous version each unsuccessful call to
InitIRQ() caused 40 bytes of memory to lose.
Improvements:
-------------
In earlier versions you could only choose 6000 Hz for the sound recording
using a 68030/50 MHz CPU without freezing the system - this versions allows
now the double amount.
NOTE:
-----
In case you incorporate assember-code in your MBasic/HBasic program you
have to use CacheClearE() - otherwise you'll be faced with crashes.
Source codes:
-------------
I revised the complete source code by using exclusively the English
language and with that now the source code of this library is available as
independent archive (Aminet dev/c/IREsrc.lha).
|