forked from Tronix286/AIL2
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREAD.ME
447 lines (362 loc) · 21.7 KB
/
READ.ME
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
IBM Audio Interface Library
Release 2.14 of 14-Nov-92
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Disk 1 of 3: Drivers / Examples
Disk 2 of 3: Tools / Documentation
Disk 3 of 3: Source
You may copy the contents of all three diskettes to the desired target
directory with the following DOS command:
xcopy <floppy-disk drive letter>:\*.* <target directory path> /s
The tools and sample programs may be executed directly from Disks 1 and 2.
Any files appearing on multiple diskettes are identical.
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ Disk 1: List of files ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Directory of DISK1:
ADLIB ADV ........... Standard Ad Lib XMIDI sound driver
ADLIBG ADV ........... Ad Lib Gold XMIDI sound driver
ALGDIG ADV ........... Ad Lib Gold digital (sampled) sound driver
MT32MPU ADV ........... Roland MT-32 XMIDI sound driver
PASDIG ADV ........... Pro Audio Spectrum digital (sampled) sound driver
PASFM ADV ........... Pro Audio Spectrum (YM3812) XMIDI sound driver
PASOPL ADV ........... Pro Audio Spectrum Plus/16 XMIDI sound driver
PCSPKR ADV ........... IBM PC internal speaker XMIDI sound driver
SBDIG ADV ........... Sound Blaster digital (sampled) sound driver
SBPDIG ADV ........... Sound Blaster Pro digital (sampled) sound driver
SBFM ADV ........... Sound Blaster XMIDI sound driver
SBP1FM ADV ........... Sound Blaster Pro XMIDI sound driver (YM3812 vers.)
SBP2FM ADV ........... Sound Blaster Pro XMIDI sound driver (OPL3 vers.)
TANDY ADV ........... Tandy 3-voice internal speaker XMIDI sound driver
AIL OBJ ........... Linkable API module
BLASTER EXE ........... Sample program: identifies Sound Blaster type
DIGIPLAY EXE ........... Sample program: dual-buffer digitized sound output
STPLAY EXE ........... Sample program: plays raw 22 kHz. stereo samples
VOCPLAY EXE ........... Sample program: plays Creative Labs .VOC files
XPLAY EXE ........... Sample program: plays XMIDI sequences
MIXDEMO EXE ........... Sample program: plays simultaneous XMIDI sequences
SAMPLE CAT ........... Instrument catalog file used to build SAMPLE.AD
SAMPLE AD ........... Sample YM3812 (Ad Lib etc.) Global Timbre Library
SAMPLE OPL ........... Sample YMF262/OPL3 (Ad Lib Gold etc.) GTL file
SAMPLE BNK ........... Sample Ad Lib Instrument Maker bankfile
DEFAULT MTB ........... Default Roland MT-32 instruments (Big Noise format)
DOOR VOC ........... Sample Creative Labs .VOC (digitized sound) file
VPRICE VOC ........... Sample Creative Labs .VOC (digitized sound) file
BACKGND MID ........... Sample MIDI file -- "Couple Days Off," Huey Lewis
SHANTY MID ........... Sample MIDI file -- "Row, Row, Row Your Boat," ?
CHORAL MID ........... Sample MIDI file -- "An Die Freude," Beethoven
SPKRDEMO MID ........... Sample MIDI file -- "Eine Kleine Nachtmusik," Mozart
DEMO XMI ........... XMIDI file containing BACKGND, SHANTY, CHORAL.MID
SPKRDEMO XMI ........... XMIDI file containing SPKRDEMO.MID; use w/PCSPKR.ADV
READ ME ........... This file
Directory of DISK1\DIGPAK:
ADLIB COM ........... DIGPAK digital audio driver (evaluation copy)
BIGMOUTH COM ........... DIGPAK digital audio driver (evaluation copy)
CVXSND COM ........... DIGPAK digital audio driver (evaluation copy)
DIGISP COM ........... DIGPAK digital audio driver (evaluation copy)
ECHOII COM ........... DIGPAK digital audio driver (evaluation copy)
IBM1BIT COM ........... DIGPAK digital audio driver (evaluation copy)
IBMBAK COM ........... DIGPAK digital audio driver (evaluation copy)
IBMSND COM ........... DIGPAK digital audio driver (evaluation copy)
LANTSND COM ........... DIGPAK digital audio driver (evaluation copy)
PAUDIO COM ........... DIGPAK digital audio driver (evaluation copy)
SBLASTER COM ........... DIGPAK digital audio driver (evaluation copy)
SMSND COM ........... DIGPAK digital audio driver (evaluation copy)
SOURCE COM ........... DIGPAK digital audio driver (evaluation copy)
TANEXTX COM ........... DIGPAK digital audio driver (evaluation copy)
TANSLTL COM ........... DIGPAK digital audio driver (evaluation copy)
VMSND COM ........... DIGPAK digital audio driver (evaluation copy)
README TXT ........... DIGPAK usage and compatibility notes
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ Disk 2: List of files ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Directory of DISK2:
CAKEPORT DRV ........... Cakewalk 4.0 AIL driver interface
CLAD EXE ........... Ad Lib / Creative Labs instrument file translator
GLIB EXE ........... Global Timbre Librarian
MIDIECHO EXE ........... MPU-401-compatible MIDI repeater for AIL drivers
MIDIFORM EXE ........... MIDI-to-XMIDI sequence compiler
MIDILOG EXE ........... MIDI file/event filter
MIDIREC EXE ........... MIDI Format 0 file recorder
MLIST EXE ........... MIDI file disassembler / Roland Musician's Reference
VTOR EXE ........... .VOC-to-raw PCM data file converter
READ ME ........... This file
Directory of DISK2\DOC:
WP51DOC ZIP ........... ZIPfile containing WordPerfect 5.1 documentation
ASCIIDOC ZIP ........... ZIPfile containing raw ASCII text documentation
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ Disk 3: List of files ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Directory of DISK3:
AIL ASM ........... Application Program Interface source file
CAKEPORT ASM ........... Cakewalk 4.0 AIL driver interface source
DMASOUND ASM ........... Digital (sampled) sound driver source
XMIDI ASM ........... Extended MIDI (XMIDI) sequence interpreter source
BLASTER C ........... Sample program source
CLAD C ........... Ad Lib / Creative Labs instrument translator source
DIGIPLAY C ........... Sample program source
GLIB C ........... Global Timbre Librarian source
MIDIECHO C ........... MPU-401-compatible MIDI repeater source
MIDIFORM C ........... MIDI-to-XMIDI sequence compiler source
MIDILOG C ........... MIDI file/event filter source
MIDIREC C ........... MIDI Format 0 file recorder source
MIXDEMO C ........... Sample program source
MLIST C ........... MIDI file disassembler source
SOUNDFX C ........... Sample program source (MIDI-based sound effects)
STPLAY C ........... Sample program source
TAIL C ........... AIL runtime diagnostic test (see program for details)
VOCPLAY C ........... Sample program source
VTOR C ........... .VOC-to-raw PCM data file converter source
XPLAY C ........... Sample program source
AIL H ........... C header file containing API function prototypes
GEN H ........... C header file for GEN.LIB functions
SOUNDFX H ........... Sample program header (MIDI-based sound effects)
TAIL H ........... C header file for diagnostic testing
AIL INC ........... Miscellaneous assembly equates
MPU401 INC ........... Roland MPU-401-compatible I/O primitives
MT32 INC ........... Roland MT-32 synthesizer driver source
SPKR INC ........... Tandy/IBM internal speaker synthesizer driver source
YAMAHA INC ........... Yamaha YM3812 & YMF262/OPL3 synthesizer driver source
GEN LIB ........... Library of general DOS & memory management routines
BLASTER LLS ........... Linker response files
CLAD LLS ........... ""
DIGIPLAY LLS ........... ""
GLIB LLS ........... ""
MIDIECHO LLS ........... ""
MIDIFORM LLS ........... ""
MIDILOG LLS ........... ""
MIDIREC LLS ........... ""
MIXDEMO LLS ........... ""
MLIST LLS ........... ""
STPLAY LLS ........... ""
VOCPLAY LLS ........... ""
VTOR LLS ........... ""
XPLAY LLS ........... ""
AIL MAC ........... Miscellaneous assembly macros
AIL MAK ........... Sample Microsoft makefile for complete AIL build
MSMAKE EXE ........... Microsoft MAKE program to process sample makefile
READ ME ........... This file
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³ Addenda to documentation ³
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
*** Release 2.07 ***
Release 2.07's AIL.OBJ API module supports The Audio Solution's DIGPAK
drivers. These drivers allow the playback of digitized sound on the
IBM PC speaker, Ad Lib, and other devices not normally capable of supporting
digital audio. See the manual's Technical Notes section or the README.TXT
file in Disk One's \DIGPAK directory for further details.
Disk One contains evaluation copies of all current DIGPAK drivers. These
drivers are not the property of Miles Design, Inc., and are supplied
FOR EVALUATION PURPOSES ONLY. For licensing information, contact The Audio
Solution, Inc. at (314) 567-0267.
Users who do not require DIGPAK driver compatibility may reclaim approximately
2K bytes of memory by assembling AIL.ASM with its DIGPAK equate set to FALSE.
*** Release 2.10 ***
Release 2.10 contains the following features and improvements:
* Ad Lib Gold XMIDI and digital sound drivers (ADLIBG.ADV / ALGDIG.ADV)
* XMIDI support for new OPL3-based Sound Blaster Pro (SBP2FM.ADV)
* Sharable DIGPAK timer services -- AIL Process Services remain functional
during digital sound playback with most DIGPAK drivers
(Optional; enabled if AIL.ASM's DIGPAK_SHARE equate is TRUE)
* Enhanced reliability for DMA-based sound drivers in "noisy" environments
Complete documentation for the new Release 2.10 features appears in
Disk 2's \DOC directory. The API Reference includes a description of two
new Digital Sound Service calls (AIL_format_sound_buffer() and
AIL_format_VOC_file()) needed for DIGPAK and Ad Lib Gold compatibility, while
the Technical Notes section describes the new drivers in greater detail.
To learn how to create instrument files for the new OPL3 drivers, refer to the
Tools Reference's GLIB section.
The following information is reproduced from the Technical Notes section of
the manual:
-----------------------------------------------------------------------------
IMPORTANT! Creative Labs has recently begun equipping their Sound Blaster
Pro adapters with the new Yamaha YMF262 (OPL3) 4-operator FM synthesizer
IC. While this certainly represents a technical improvement over the old
dual-YM3812 Sound Blaster Pro adapter, AIL developers must be aware of
certain drawbacks to the way in which Creative Labs has chosen to
implement this "upgrade."
* The new OPL3 synthesizer chip is not compatible with the dual-YM3812
arrangement. Use of previous AIL SBPFM.ADV driver versions with the
OPL3-equipped boards will result in strange-sounding volume
imbalances.
* According to Creative Labs, the new, incompatible OPL3-based Sound
Blaster Pro adapter is being marketed and shipped under the same
"Sound Blaster Pro" name by which tens of thousands of the
dual-YM3812 version have been distributed.
Obviously, these factors may create something of a customer-support
headache for developers who have already shipped products with the
dual-YM3812 SBPFM.ADV driver. In the AIL's version 2.10 release,
SBPFM.ADV has been renamed SBP1FM.ADV ("Sound Blaster Pro 1"), and a new
SBP2FM.ADV ("Sound Blaster Pro 2") driver has been released to support
the OPL3-based Sound Blaster Pro board.
Unfortunately, the application must now decide which driver to load when
the end-user selects "Sound Blaster Pro" support from the opening menu.
(A nontechnical end-user is unlikely to know which FM chipset is present
on the board, so separate menu options for the different versions would
be of little help). There appears to be no reliable way to distinguish
between the different FM sections by testing the hardware directly.
However, the Creative Labs installation software places a DOS environment
variable called BLASTER in the user's AUTOEXEC.BAT file which can be used
to determine not only which driver to load, but what I/O parameters are
in use.
Assuming the end-user has installed a Sound Blaster in accordance with
Creative Labs' instructions, the DOS environment will contain a BLASTER
environment variable similar in form to the following:
BLASTER=A220 I7 D1 T1
The A, I, and D "numbers" reflect the board's I/O address, interrupt
level, and DMA channel, respectively. The T parameter specifies the type
of Sound Blaster which is installed. Currently defined T numbers are:
1 - Sound Blaster V1.5 or earlier
2 - Sound Blaster Pro (Yamaha YM3812 version)
3 - Sound Blaster V2.0
4 - Sound Blaster Pro (Yamaha YMF262/OPL3 version)
(T numbers after 4 are assumed to be later incarnations of the OPL3-based
board.)
As an aid to developers, the AIL 2.10 release contains source and
executable code for a short program called BLASTER.C. BLASTER.C contains
a rudimentary parser (board_ID()) which interprets the BLASTER
environment variable and yields the names of the AIL FM and digital sound
drivers designed to communicate with the user's particular Sound Blaster
card. Because BLASTER.C's board_ID() routine returns 0 if no BLASTER
variable exists, it may be integrated into any AIL digital sound
application in a "device-independent" fashion. The Example Programs
section contains a listing for BLASTER.C, along with more specific
instructions on how to link the board_ID() function with an AIL
application.
In summary, AIL developers interested in providing Sound Blaster Pro
support to end-users can take the following steps to minimize
inconvenience and confusion:
* Use the BLASTER environment variable, when present, to determine which
drivers to load and the I/O parameters with which to initialize them.
* Instruct end-users, by way of the product's documentation, to make sure
their Sound Blaster card has been installed using Creative Labs'
installation utility, and that their BLASTER environment variable is
set properly.
* Distribute copies of SBP2FM.ADV via bulletin boards and other channels
to users who experience problems. Users should be given instructions
similar to the following:
1) Change to the directory containing your application's sound files.
2) Execute the command "copy sbp2fm.adv sbpfm.adv", where sbp2fm.adv is
the new Sound Blaster Pro OPL3 driver.
3) Execute the command "copy *.ad *.opl" (this step creates a "quick
and dirty" OPL3-compatible Global Timbre Library file).
The last option outlined above will be valid only for products which do
not "hide" the AIL drivers and instrument files within a proprietary
library-file format. For this reason, Miles Design strongly recommends
that applications' AIL drivers and Global Timbre Libraries be distributed
and installed in the form of standard MS-DOS files.
Currently, the Windows Extensions package supports only the dual-YM3812
Sound Blaster Pro version. Windows users who experience sound-quality
problems with Sound Blaster Pro adapters should be instructed to
configure their application for standard Ad Lib / Sound Blaster
compatibility.
-----------------------------------------------------------------------------
*** Release 2.11 ***
OPL3 support for the new Pro Audio Spectrum -Plus and -16 cards has been
implemented. All versions of the AIL, including DOS, protected-mode DOS, and
Windows, now support the OPL3-based sound boards. PASOPL.ADV should be used
to support the Pro Audio Spectrum Plus and Pro Audio Spectrum 16 boards.
PASFM.ADV should be used only with older dual-3812 Pro Audio Spectrums.
Release 2.11 also implements a number of enhancements and minor bug fixes:
* The Pro Audio Spectrum 8-bit board is reset to Ad Lib mode on shutdown.
* PASDIG.ADV is now compatible with the Pro Audio Spectrum -Plus and -16
boards. Previous versions of PASDIG.ADV did not work with these newer
boards due to undocumented Media Vision VLSI logic changes. See the
Technical Notes section of the manual for more details.
* Ad Lib Gold PCM panpot control is now disabled while playing monaural
samples. The YMZ263 chip is not capable of panning a single-channel
sample; previous versions of the driver did not account for this
deficiency.
* Some problems with .VOC file silence-packing were corrected in the
Sound Blaster drivers.
* The default PCM volume for the Pro Audio Spectrum boards has been reduced
to avoid output distortion.
* REPT loops were removed from YAMAHA.INC to avoid a TASM 3.0 code-
generation bug.
* MLIST now handles undefined MIDI meta-events.
* GLIB and MIDIECHO can now handle GTL files greater than 64K in size.
* The MIXDEMO and XPLAY example programs no longer attempt to fclose()
the GTL file handle when no GTL file exists.
*** Release 2.12 ***
AIL V2.12 is a maintenance release which addresses some problems reported
by users.
PASOPL.ADV, the new Pro Audio Spectrum Plus/16 OPL3 FM driver, was
inadvertently omitted from the V2.11 maintenance release diskette.
Even if you have already assembled your own copy of PASOPL.ADV, you should
use this version, or else re-assemble your copy under a version of Turbo
Assembler marked 3.1 or greater. TASM 3.0 harbored a bug which could
cause invalid code to be generated when assembling the AIL OPL3 drivers.
Remember that PASOPL (and the other OPL3 drivers, ADLIBG.ADV and SBP2FM.ADV)
require GTL files with the 4-operator-compatible .OPL extension, NOT the
2-operator-specific .AD extension! As stated in the manual, you can
create an .OPL file simply by copying or renaming an .AD file.
You may wish to consider supporting the OPL3-based boards with the new
drivers even if you do not use 4-operator voices, because the OPL3 drivers
can assign up to 18 stereo 2-operator voices.
AIL.ASM's Process Services (timer routines) failed to operate properly if
two successive AIL_register_timer() calls were issued without an intervening
AIL_set_timer_freqency/period/divisor() call. This problem was rare, but
could occasionally cause trouble with the DIGPAK API.
CAKEPORT and MIDIECHO now scale all incoming MIDI Part Volume (controller
7) values according to the AIL driver's default relative sequence volume
percentage. Currently, the Roland MT-32/LAPC1 driver defaults to 90% volume
to avoid distortion; all others leave the channel volume values unscaled
(at 100%). In MIDIECHO, the /NV switch can be used to circumvent this new
feature.
DMASOUND.ASM now contains a new switch, called CHECK_DMAC. Its default value
is TRUE; setting CHECK_DMAC to FALSE may improve reliability on certain non-
100%-AT-compatible platforms or virtual-86 software environments.
The downside of setting CHECK_DMAC to FALSE is that the old "spurious IRQ 7"
bug will return to haunt users. This is one of several unfortunate
compromises involved in implementing general-purpose DMA-based PCM playback.
Most users will never encounter these problems, but if you have trouble or
need more information, please call for assistance.
The manual now contains a brief Glossary section, appearing at the end of the
Extended MIDI Reference. This was added to help programmers and musicians
who are new to the AIL apprehend some of its more recondite semantics.
Suggestions for improving this (and other) parts of the manual are, as always,
welcome.
*** Release 2.13 ***
AIL V2.13 contains a version of AIL.ASM which can be configured to use the
real-time clock interrupt (INT 70H) for timer service, rather than the more
conventional interrupt 8 vector.
By default, AIL.ASM's USE_INT8 equate is TRUE. Its operation is identical to
the previous versions. However, if AIL.ASM is reassembled with USE_INT8 EQU
FALSE, the AIL will not attempt to intercept the system timer tick interrupt.
Other sound packages (such as RealSound, ALFX, and DIGPAK) can now co-exist
seamlessly with the AIL XMIDI drivers and Process Services; there's no
longer any need to suspend XMIDI playback, real-time animation, and so forth
during sound-effects playback with these packages.
However, there are a few constraints on the use of the real-time clock
interrupt option:
* Timer frequencies are limited to a maximum of 256 hertz.
* Only AT-class machines support the real-time clock interrupt.
* Applications which depend on RTC service will not function
properly when run from a Windows or OS/2 2.0 "DOS box."
The V2.13 release also fixes a minor bug in the AIL_register_timer() function
which could cause timer service failure under some conditions.
*** Release 2.14 ***
AIL V2.14 is a maintenance release which addresses some problems reported
by users.
DMASOUND.ASM has been modified to provide greater reliability on Sound
Blaster and Thunderboard cards. The 140-millisecond delay which previously
occurred when stopping a sound effect in progress has been replaced by
another technique for avoiding hardware-related problems. Be sure to test
the new PCM drivers thoroughly with your application, as a number of changes
have been made to DMASOUND.ASM.
The AIL_beat_count() and AIL_measure_count() functions have been updated to
return more accurate values for high-precision branching and animation
applications.
The Sound Blaster Pro OPL3 XMIDI driver SBP2FM.ADV no longer "hangs" the
system if its AIL_detect_device() function is called with a standard
Sound Blaster card installed. A bus interface hardware bug related to Sound
Blaster's CMS chip support was the cause of this problem; the new driver
release checks for the presence of the OPL3 chip without accessing the error-
prone I/O port.
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Copyright (C) 1991, 1992 Miles Design, Inc. All rights reserved
10926 Jollyville #308
Austin, TX 78759
(512) 345-2642
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ