Interview with
Dark Angel / Aura
cxt: Hi Dark Angel, a lot of sceners might think of you as a
member of Aura or as the author of MusicMon a famous chiptracker
which was updated quite recently :). Also your real name (Frank
Lautenbach) is no secret, since it is clearly visible in
MusicMon. Last not least you also seem to join the IRC channel
#atariscne more or less frequently. What other interesting facts
can you tell us about yourself?
da: Well, I used to play keyboards in some rock bands, the most
important one was Re-Zeppelin, a Led Zeppelin cover band. I am
32 years old living in Mainz for some years now. For Insiders:
My MBTI profile is INTP.
cxt: Wow, I wasn't expecting that much information:), it seem
you are referring to the Myers-Briggs Type Indicator codes. If
that lead is right INTP is one of 16 personality types, as far
as one can determine that. Personally I doubt it is possible to
completely make a picture of a person this way, but perhaps it
can be indicating some characteristics. So lets google a bit and
see what INTP is going to reveal about you. "The driving force
in the lives of INTPs is to understand whatever phenomenon is in
the focus of their attention" which seems pretty common to me.
"INTPs want to make sense of the world and they often take
opportunities to be creative." Well I am not sure but I guess
this will also apply to most people. "They are analytical,
logical and detached in their approach to the world and they
question and criticize ideas and events on their way to
understanding. INTPs don't need to bring order to the world and
appear to be flexible and adaptable in their lifestyle." Do you
think this description fits yourself?
da: Quite exactly, yes. You mentioned that the description comes
close to your own temperament. That's normal, most techies have
such a profile in some way. Especially the N for being Intuitive
and the T for being a Thinker is very characteristic for people
like us. A good introduction to MBTI provides the book
"Personality Reading". The MBTI theory is a commonly accepted
theory in psychology.
cxt: What was your first computer and which other machines have
you used since then?
da: Z1 ;-) --> 130 XE --> 520 ST --> Falcon 030 --> PC (starting
with 486 DX2/66)
cxt: Z1? you have to be kiddin :), anyway do you still own any
of these machines?
da: The 520 ST is still lying at my parents home.
cxt: What happened to the others? And even more important why
have you kept the 520? Couldn't find a buyer? A wave of
nostalgia?
da: Wave of nostalgia, yes. I shared so many years of my life
with this machine so why should I sell it for some euros? It's a
real memory to the old times ...
cxt: Did you ever enjoyed playing games or did you "just" stick
to coding and creating music?
da: On 130 XE my major activity was playing games besides some
rudimentary BASIC coding. I started reasonable coding on ST
which I bought when I was 15 or 16. On ST I started with some
GFA-Basic coding and then began learning 68k assembler. My first
bigger project was the game "Brutalo" realized in pure GFA-
Basic. It was some kind of sports game with some strange
disciplines like head throwing (inspired by "Viking-Games" which
has cat throwing). It never had been finished and once I decided
to restart from scratch with it. Before doing so I decided to
program a small music editor first because I had no sound engine
so far. Initially this editor was planned for internal use only
and I estimated 3 months of programming for that before resuming
Brutalo development again ... As you surely expect already that
music editor became Music-Mon. I never continued the Brutalo
development ... Don't ask for it, I don't have it anymore because I
deleted the disk (what a shame! Today I really rue that). At
that time I also did some intro coding under the label "The
Electronic Knights". My pseudo was "Bert Brecht" at that time ;-
) Actually it never was my clear intention to become a musician
but it just happened. Anyhow, coding was always the primary joy,
composing was just a means to an end to demonstrate the
capabilities of my sound engine.
cxt: You are a member of Aura a famous Atari Demo group. It's
rather obvious that you took the role of a musician inside the
crew. However I can't recall to have seen your name in Axxis- or
early Aura demos, when did you join them?
da: I joined Aura quite late, I think in late 1991 as I
remember. I was just finished with Music-Mon 1.5 which never
became an official release (don't ask for it, I don't have it
anymore). A friend of mine had already contact to the Aura guys
and he arranged a meeting with them on a small coding party
taking place at my home. I demonstrated Music-Mon and then they
asked me to join Aura.
cxt: Sounds like you weren't to well integrated into Aura, so I
guess you don't have any remaining contact to the other members
of Aura like BDC, Aeon, Chris or Clash just to mention a few?
da: You are right, I just played an under role but I never had a
problem with that and I never wanted to change that ... I am not
staying in contact to the AURA guys today, that's true.
cxt: You mentioned your "primary joy" was coding not composing,
have you ever written a demo or participated in the coding of
one? Well if none of the above is true, would you like to write
one, or what kind of program do you like to code?
da: Well, as I wrote above before Music-Mon I coded some lame
intros and started coding of "Brutalo". For Music-Mon I coded a
small Boot-Intro that was on some of the MM demo disk, as I
remember. It had a sync-colour scroller, some lissajous sprites
and a wobbling Galactic Logo. Quite lame stuff ...
cxt: Is that demo still available somewhere? I guess it's
missing in the archive you get from DHS for example.
da: Of course the intro is still available, it belongs to the
demo version of MM 1.0 and you can include it with Alive if you
want. It only runs from low resolution and I have no idea if it
works on other machines than ST(E), however I won't change a
single byte of that intro :).
cxt: Hehe, sounds like real coders talk :). As a coder and
especially as a sound coder you probably know all about the
timers on the ST. Is there an easy way for musicians to
determine which timers are used in a track created with MusicMon
2.1 sid? Perhaps something like Timer A is used for the 1st
voice or something?
da: The replay routine of MM 2.1 supports a timer-use-mask by
that you can explicitly specify which timers the routine is
allowed to use for SIDs, Digis, and Sync-Buzzers. The allowed
timers are then dynamically assigned to the channels as needed.
If the song requires more timers simultaneously than allowed
some voices will not sound as expected whereby digis have always
priority. For more details see also the HOWTO.TXT file in the
subfolder REPLAY coming with MM 2.1.
Actually there is no way to determine how many timers a song
requires simultaneously at a maximum.
cxt: I guess this will lengthen the appendix of this article a
bit :) But lets get back to demos, Mathematica contained a
nearly endless chiptune, recalling your answer from above I have
my doubts but is there a chance for us to hear more stuff from
you? I'd love to hear one of your tracks in the next issue of
Alive ...
da: There is a new tune coming along with MM 2.1 (The !Song). I
think that's it for the next decade ...
cxt: What a pity. Anyway if you had to put up a list of your top
5 chip-musicians and their most important song how would that
look like?
da:
1. Tao
2. Mad Max
3. Big Alec
4. stu
5. celtic
Sorry that I didn't state particular songs ...
cxt: Wow, stu will be pleased to see that I guess. However the
stuff he produces recently is top league for sure. It also seems
he is expanding his activities onto the Amiga, he is looking for
a machine to run AHX (Abyss Highest Experience, am Amiga
chipmusic tracker) on.
da: Great. I am taut about what he is doing with that. But I
hope he also abides to MM ;-)
cxt: You have made MusicMon freely available. Do you have any
idea how much copies of it were sold, while it was distributed
by Galactic?
da: Music-Mon 1.0 sold about 250 times. For Music-Mon 2.0 I have
no track record because I negotiated a blanket compensation with
Galactic.
cxt: Wow, 250 was certainly not what you have hoped for, right?
I wonder why you did a 2.0 version knowing about these
disappointing sales. What is it that made you develop it? Was it
only to include new effects like SID for example? Was it to make
a tool for yourself? To support the scene or other musicians? Or
were you just bored with OO-Coding :) ?
da: I continued development of MM immediately after finishing MM
1.0. Until MM 1.0 was finally released and the first sale
numbers came in I was quite far with MM 1.5 as I remember. The
major problem with MM 1.0 was that it was released too late
(time between finishing coding and release was quite a long
period). When it finally was up for sale its features where
already quite out-dated. First, MM 1.5 was intended to be the
next release but then I decided to go a step further which
resulted in Version 2.0 (main additional feature compared to 1.5
was digis). When MM 2.0 was finished and finally found its way
to the shops the Atari market was already fading ... So the major
issue of both releases was a problem with time-to-market. Lust
but not least, I think pirate copies where a major factor ... But I
think you know that only too well from your own game releases ...
cxt: Well the official numbers for the Lethal Xcess sales were
about 2500 pieces, not very motivating if you ask me. Besides
where do you know Sven Bauer (for the readers, that's the guy
who painted the interface graphic for MusicMon) from? Afair he
was the guy who painted the 2nd Eclipse Logo for Marc Rosocha
(the 1st one was done by Erik Simon).
da: I met him on a small party celtic held at his home at that
time. MM 2.0 was close to be finished but had still this old
yellow style. Sven asked me if he shall spend a facelift and I
agreed. Sven visited me one or more times after the party then
we lost contact. I don't know where he is living today, but at
that time he lived in Bodenheim (close to Mainz) which is just a
kilometre away from where I am living today (Laubenheim).
cxt: Many famous chiptrackers are not only available as a binary
but as source code as well, are there any plans to release the
sources for MusicMon?
da: No, because the code is too cruel for being published (at
least the GFA-Basic part). This would damage my reputation ;-)
cxt: Lol, You surely can't live from the income MusicMon
generates and I guess you are far from retirement yet :) so what
do you do to pay your bills, what's your current profession?
da: I am a software engineer at IBM.
cxt: As far as no NDAs are violated, what kind of software are
you working on?
da: I started with doing coding for inspection and automation
solutions IBM required for its own hard-disk production lines. I
focused on image processing at that time. As you probably know,
they sold this business to Hitachi some years ago. After that I
realigned into telematics projects. Maybe you recently read on
some news tickers (e.g. at heise.de) about the speeding
application IBM is now doing for the United Arab Emirates. I
recently joined this project team.
cxt: It seems to be a common phenomenon that former sceners keep
reappearing in intervals at the scene. What made you come back?
da: Read the scroller of Music-Mon 2.0 SID for that ;-)
cxt: Oh dear, nobody reads scrollers anymore nowadays :). But if
someone wants a closer look without waiting for the scroller to
transport the text, just open SYSTEM_1.DAT and start reading at
offset $3df0 or just have a closer look at Appendix A of this
interview. In this scrolltext you have written, that you
stumbled over a website and found out that people are still
using their Ataris. Not only for demos and stuff but also for
tracks played in clubs etc. You also found MusicMon lacking SID
voices and lots of demand for them from musician. and this made
you come back for a while.
da: As I said, it's all in the scroller text. Thanks for
creating a transcript of it. For MM 2.1 I already did so on my
own, did you notice?
cxt: Hehe, I guess not, but it was quite easy to rip :). Well
informed sources told me, that you are about to enter another
hibernation-mode concerning your Atari activities. How long do
you think this will last and much more important, when can we
expect MM 2.2 or MM 2.3?
da: Yes, that's true, the wave of enthusiasm seems to rage out
again ... New releases maybe next decade, maybe never.
cxt: Doesn't sound to promising, but you mentioned that earlier,
so it was to be expected. I heard most of the current
development and testing on MM2.1 was done using emulators. What
is your general view on emulators and which one is your
favourite when it comes to Atari stuff?
da: I am quite impressed by that emulators and also by its
creators. I have no real machine at hand anymore (old ST is at
my parent's home) and the development with the emulator is quite
more comfortable IMHO. My favourite emulator is Steem, I never
used anything else seriously. Tests on real machines have been
performed by stu, gwem, drx and evil. Thanks again for that,
folks!
cxt: What do you think about clones and accelerators for real
Atari hardware, I mean things like the CT60 and so on. Is this
something you would like to have too or do you think they are
superfluous?
da: I never used that accelerators, I always preferred original
machines. I thought about purchasing a Falcon again, but I
buried that thought now since I am going to hibernation mode
again ;-)
cxt: This interview is about to end soon, and I am sure you have
already expected our silly Alive brainstorming test. I really
can't help it so here we go. This time we have a real challenge
for you :) ...
da:
F: Firefox(rulez!)
R: Rantanplan(dog of Lucky Luke and Messiah originating from
my weird mind)
A: Aura ;-)
N: Nanometer(I dealed with this dimension for a while)
K: Koitus;-)
L: Lethal Xcess(respect!)
A: Angels in hell(Title track of MM2 ;-) )
U: ULM (one of the greatest Atari groups IMHO)
T: Tripods (a low budget but very cool BBC SF TV serial)
E: = mc2
N: Negative (I like this expression as a substitution for "no")
B: BMW (my favourite car brand)
A: Atari (what else)
C: Captain Future (I loved that serial in my childhood)
H: Nnickname of Steve Hogarth (vocalist of my all time favourite
band: Marillion)
I: IBM (my employer and a great company)
S: Seventh son of a seventh son (Iron Maiden album)
D: Dio (my favourite band in my youth)
A: Unit of current
R: Re-Zeppelin (I used to play keyboards in this cover band)
K: Kent (very good Swedish rock band)
A: Antic (great magazine)
N: Symbol for set of natural numbers
G: Gelnhausen (my birthplace)
E: Evel Knievel
L: Lauti (that's what some of my colleagues call me)
Puh ... that was a hard one ...
cxt: Well done, if you have some final words for the sceners out
there, or if you want to spit out some greetz do it now :).
da: Greetz to all! And hold on!
cxt: Thanks for the time and energy you used on this interview
and lets hope your next hibernation will be much shorter than
expected ...
Cyclone / X-Troll for Alive, 2005-02-19
The following parts may give you further insights without the
need to spend hours in front of a stupid scroller :)
Appendix A contains the scrolltext of MusicMon 2.0 SID.
Appendix B is the more technical scrolltext of MusicMon 2.1.
Appendix C is a copy of the very technical Replayer HowTo.
Appendix A
[ Scrolltext of MusicMon 2.0 SID ]
Ladies and gentlemen...
It's done, it's real!
More than a decade after the release of Music-Mon 2.0 I stumbled
over some web sites and realized that there are some crazy
people still using it! Not only for making tracks for demos and
intros... Rather for making spacy tracks played in clubs around
the globe, at modern art workshops, museums and barns! Well, I
suppose for most people reading these lines this is not really a
news, but I was quite impressed when I heard about all that. I
left Atari scene approx. 10 years ago and I really could not
imagine that there is still that activity...
People like stu and gwEm praised Music-Mon to be still their
favourite chip tracker whenever it does not support modern
techniques like SID voices...
All that made me to resurrect the good old days for a while... I
made a plan to upgrade Music-Mon with SID voices to give
pleasure to all Music-Mon fans and of course, also to myself!
Steem was already installed on my machine for some time...
Snatching up all sources and getting the build process to work
again after ages was a little bit more challenging...
Fortunately I rescued all that stuff some years ago to PC
already ... I was quite happy about the fact I did some detailed
documentation at that time... By the way: My good old and holy
520ST is still alive, it's placed in a spectacular showcase at
my parents home! Ok, just kidding ;-) It's indeed alive but
stands quite dusty and yellowed on a desk there...
At first I was in the opinion that it would take me some days to
finish that work... At start, it took me some time to dig into
GFA-Basic and 68k Assembler again... It was a great experience
after so many years... It's very funny to meet your own ancient
code again after years of programming in an object oriented
fashion with C++, Java and C#... For some minutes I missed UML
documentation... ;-) The more I dealt with it, the more I
realized that it's in fact more work than I expected. Not only
adding SID voices but even more the secondary work. E.g., I also
improved machine compatibility so this version now runs stable
on Falcon, Mega STE, etc. I think it was not tested on CT060 so
no guarantee for that... Then, I added this scroller which I
reimplemented for that purpose. Beyond that, I extended the
title track as you surely notice while reading these lines. Last
but not least that nasty face flashing up a second ;-) I think I
was 25 when this photo was taken ;-) Fortunately some kind guys
supported me a lot in beta testing on different machine
derivates. At some time I hated myself for starting this
project... I had to spend more time for it than originally
thought of to bring it to an acceptable closure. But now, I
don't rue anything and I am happy to present the result to you!
SID voices can be used on all 3 channels simultaneously, there
is a new small button 'SID' on the sound screen. When activated
it just adds the SID square to this sound. Frequency of the SID
generator only reacts on Arpeggio, it's not influenced by PMD,
Pitch Bend, etc. This allows you to detune SID square and PSG
square so you can control phasing and can also create some weird
sounds... SID feature can be combined with any other feature,
even buzzer. Music-Mon 2.0 SID is completely backward
compatible, you can load your existing songs without problems.
Same thing for the replay routine, it can replay old mod-files.
I want to especially thank stu and gwEm for inspiring me to
start that project and also for doing intensive beta testing
work. Many thanks to gwEm, evil and grazey for their help in
improving machine compatibility. These guys gave me some good
hints (e.g. about 'spurious interrupt') and we had some nice
technical talking... Many thanks also to drx who sent me a nice
EP of 'Bodenstaendig 2000' which contains tracks created with
Music-Mon! A big honour to the makers of Steem, really a great
job! Without steem this would not have been possible at all...
Finally greetings to Drop Da Bomb, YM-Rockerz, Bodenstaendig
2000, the lost Aura members (BDC, where are you?), Juergen
Baeckmann alias Dragon, Florian Becker alias Mr. Bond, Sven
Bauer alias Jora and all other remaining Atari veterans!
Credits: Coding, title-track : Me Grafix : Sven Bauer (I am now
a 'Meenzer', too) Stars on help screen : Florian Becker If you
like to contact me, I am always happy about some e-mail :
frank.lautenbach (at) gmx.de once again : frank.lautenbac (at)
gmx.de
Now I wish you a lot of fun with this proggy!
Bye bye !!!
Appendix B
[ Scrolltext of MusicMon 2.1 ]
Hi folks, just some weeks after the release of MusicMon 2.0 SID
here is the next one with the following new features:
* Sync-Buzzers
* Improved SID syncing
* Range of PMD Hardwave Depth extended to 63 (previously 15)
* Pitch-Bend can now be applied also to Hardwave (very important
for sync-buzzers but also usefull for normal buzzers)
* Overlay/Underlay Paste Feature (SHIFT + 'U' / 'O')
* Entering of song- and soundname can now be canceled by 'ESC'
key (small issue but it was just nasty when accidentally
klicking into the sound/song name field with left instead of
right mouse-key)
* Starts also from ST med res now
* Support of 'Install Application...' (for .SNG extension)
* SMC-free replay routine with free configurable timer use
* 100% backward compatible to all previous MusicMon versions
Small introduction:
The hardwave menu offers a new sync alternative activated by the
new purple button 'S. 3'. Once activated it applies periodically
sync on hardwave providing the sync buzzer effect. The frequency
of the sync generator behaves in the same way as the SID square
generator does (but is driven one octave lower). Same as for SID
generator, only Arpeggio affects the generator frequency, but
Pitch Bend or PMD do not. Sync Buzzer feature cannot be combined
with SID so activating 'S. 3' automagically switches off SID and
vice versa.
Most important on Sync-Buzzer sounds is smart modulation of
hardwave frequency as you surely know already. So now, the pitch
bend generator can also be applied to the hardwave by the new
button 'A.P.B.' (Apply Pitch Bend). The Frequency offset of
pitch-bend is divided by 16 to achieve a match with the PSG
square frequency (so slides of normal buzzer sounds sound also
correctly). That means, a speed of 16 corresponds to a
continuous frequency slide each 1/50 s, 1/100 s, 1/200 s.
Beyond that, the PMD Depth for Hardwave has been extended to 63
which provides also additional possibilities. It's worth
experimenting with fixed hardwave-frequency or high main-tune
values also... You can also produce interesting arpeggio
sounds...
Thanks to gwem and tao for providing me some hints regarding the
sync buzzer effect...
Thanks to stu for intensive beta testing...
Thanks to stu, drx, Marcer and Nexus 6 for donating demo
songs...
Thanks to Cyclone for assisting me in switching the screen
resolution and sending me a code snippet about fetching command
line arguments...
Some words about the replay routine: The focus was to deliver a
system friendly routine running on any machine. Regarding
performance there is some room for improvement. So if you have a
particular need for squeezing out the last cycle out of it you
might convince me to provide customized versions using SMC
and/or reserved registers... Send your special requests to
frank.lautenbach (at) gmx.de
Ok, that's all for now... Have fun! And watch out for
forthcoming releases which maybe will come...
Appendix C
[ Replay Routine HOW TO ]
**************************************************
********** MusicMon 2.1 Replay Routine ***********
********** ***********
********** a short HowTo ***********
**************************************************
replay.inl is the actual replay routine as known from MM2.
Interface is almost the same, only the INIT1 call (Base+4) now
expects a so called 'Timer-Use-Mask' by that you can control
which timers the routine allocates for playing Digis and SIDs.
The specified timers are assigned dynamically to the channels as
needed.
There are two different ways of using the replay routine:
The first one is using the so called "comfort header" which is
basically good for integration into high level languages. On
using the comfort-header patching of Timer C, ACIA and spurious
IRQ as well as restauration work is done for you automatically
as well as according clean up on calling the DEINIT function.
All parameters are handed over on the stack.
The second way is the "foot way" where you have to establish
your own interrupt handler from that you are calling te
soundroutine frequently. Any patching and restauration work you
have to do also explicitely. Fortunately there are some sub-
routines supporting you in that (see below). The advantage of
this method is to be more flexible.
Attention: Do not mix up the two variants! Either you are doing
anything via the comfort-header (routbase+32), OR you are doing
anything on the footway calling the other routines but not
routbase+32!
There are two example sources showing both variants:
* MODPLAY.GFA shows use of the comfort-header * EXAMPLE.S
shows how to do it the footway
Note: The replay routine makes use of the reset resident memory
space
Range from $200 to $21B is reserved!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Following the jump-in offsets including parameter description:
routbase = Address where you loaded replay.inl to.
; ------------------------------------------------------------------------------
; I. routbase+0 ASK, routine to query the new overall length of a Digi-Module
; after conversion by INIT2
; IN: A0 = Baseadress of the module
; OUT: A0 = new length or -1 in case of this is no digi-module
; ------------------------------------------------------------------------------
; II. routbase+4 INIT1, Initialization for all kind of modules
; Can be called multiple times to restart replay
;
; IN: A0 = Baseadress of the module
; D0 = Timer-Use-Mask (SID+DIGI+Sync-Buzzer)
; (Bit 0 = Timer A, Bit 1 = Timer B, Bit 2 = Timer C,
; Bit 3 = Timer D)
; ------------------------------------------------------------------------------
; III. routbase+8 INIT2, Pre-Initialization for digi-modules (call only
; ONCE (before INIT1) !!!)
; IN: A0 = Baseadress of the module
; A1 = Baseadress of the converted module (use this for Input on
; INIT1 then!)
; ------------------------------------------------------------------------------
; IV. routbase+12 SOUND, actual replay routine for modules without sounds
; with 100 oder 200Hz
; Call with 50Hz !!!
; ------------------------------------------------------------------------------
; V. routbase+16 SOUND2, also actual replay routine, but for modules
; using sounds with 100 or 200Hz
; Call with 200Hz !!!
; ------------------------------------------------------------------------------
; VI. routbase+20 FAST-DIGI on/off
;
; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
; !!!!!!!!!!!!!!!!!!!!!!! NOT SUPPORTED IN V 2.1 !!!!!!!!!!!!!!!!!!!!
; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
; ------------------------------------------------------------------------------
; VII. routbase+24 VOLUME CONTROL
; IN: D0.b = set mastervolume (0-15) or -1, if not to modify
; 0 means maximum volume, 15 means minimum volume!
; D1.b = fade in (pos. values), fade out (neg. values)
; The value determines the fading speed, the
; closer to 0, the faster it is
; In case of D1.b=0, no fading at all!
; ------------------------------------------------------------------------------
; VIII routbase+28 ASKING FOR MODUL TYPE
; IN: A0 = Baseadress of the module
; OUT: D0.b = Bit 0 - set, if this is a digi module
; Bit 1 - set, if module uses sounds >50HZ
; Bit 2 - set, if module uses SID-Voices
; Bit 3 - set, if module uses Sync Buzzer Voices
; ------------------------------------------------------------------------------
; IX routbase+32 COMFORT-HEADER
; good for integrating in high level languages since it comes with
; an own interrupt driver (VBL and Timer C) and applies according patches
; to ACIA and Timer C in the context of digis and SIDs
; Also spurious interrupt is already respected
;
; all parameters are handed over on stack, see below for Details
; return-values in D0, if applicable
; ------------------------------------------------------------------------------
; X routbase+36 Timer-INTERRUPTS OFF
; stops the timers used for Digis, SIDs and Sync Buzzers (according to
; Timer-Use-Mask set on INIT1)
;
; no parameters, no return-value
; ------------------------------------------------------------------------------
; XI mod.base+40 SOUNDS OFF
; clears any sound output
;
; no parameters, no return-value
; ------------------------------------------------------------------------------
; XII mod.base+44 PATCH ACIA
; Patches Acia Interrupt so that it doesn't disturb digis, SIDs and Sync-Buzzers
;
; no parameters, no return-value
; ------------------------------------------------------------------------------
; XIII mod.base+48 UNPATCH ACIA
; Undos ACIA patching
;
; no parameters, no return-value
; ------------------------------------------------------------------------------
; XIV mod.base+52 PATCH TIMER C
; Patches Timer C IRQ so that it does not disturb digis, SIDs and Sync-Buzzers
;
; no parameters, no return-value
; ------------------------------------------------------------------------------
; XV mod.base+56 UNPATCH TIMER C
; Undos Timer C patching
;
; no parameters, no return-value
; ------------------------------------------------------------------------------
; XVI mod.base+60 PATCH SPURIOUS INTERRUPT
; Patches Spurious interrupt
;
; no parameters, no return-value
; ------------------------------------------------------------------------------
; XVII mod.base+64 UNPATCH SPURIOUS INTERRUPT
; Undos Spurious interrupt patching
;
; no parameters, no return-value
; ------------------------------------------------------------------------------
; ***************************************************
; ***** The Comfort-Header ******
; ***************************************************
; ***** Parameters on the stack! ******
; ***** ******
; ***** +++ ASK FOR MODUL TYPE +++ ******
; ***** L: Modul Baseadr. ******
; ***** W: Funct.No. #0 ******
; ***** Return in D0.b : ******
; ***** Bit 0 - Digis ******
; ***** Bit 1 - >50Hz ******
; ***** Bit 2 - SID ******
; ***** Bit 3 - Sync-Buzz ******
; ***** ******
; ***** +++ ASK FOR NEW LENGTH (DIGI-MODULE) + ******
; ***** L: Modul Baseadr. ******
; ***** W: Funct.No #1 ******
; ***** Return in D0.L : ******
; ***** new length ******
; ***** ******
; ***** +++ INIT 1 (all modules) +++ ******
; ***** L: Modul Baseadr. ******
; ***** W: Timer-Use-Mask ******
; ***** Bit 0 : Timer A ******
; ***** Bit 1 : Timer B ******
; ***** Bit 2 : IGNORED ******
; ***** Bit 3 : Timer D ******
; ***** ******
; ***** W: Funct.No #2 ******
; ***** ******
; ***** + INIT 2 (only Digi.Modules, ONCE!!!) ******
; ***** L: Modul Baseadr. ******
; ***** L: Modul Destinationadr ******
; ***** W: Funct.No #3 ******
; ***** ******
; ***** +++ START INTERRUPT +++ ******
; ***** W: Integration Method ******
; ***** ******
; ***** 0 = VBL-QUEUE ******
; ***** 1 = VBL direct (System-routine in) ******
; ***** 2 = VBL direct (" " out) ******
; ***** 3 = TIMER C (System-routine in) ******
; ***** 4 = TIMER C (System-routine out) ******
; ***** ******
; ***** W: Funct.No #4 ******
; ***** ******
; ***** +++ DEINIT +++ ******
; ***** (stops Timers, stops sound-routine, ******
; ***** removes patches, etc.) ******
; ***** ******
; ***** W: Funct.No. #5 ******
; ***** ******
; ***** +++ VOLUME SET / FADER +++ ******
; ***** ******
; ***** B: MASTERVOLUME ******
; ***** 0 = max., 15 = min. ******
; ***** -1 = no effect ******
; ***** B: Fadespeed (+ or -) ******
; ***** + fades in ******
; ***** - fades out ******
; ***** W: Funct.No. #6 ******
; ***** ******
; ***************************************************
|