<
Marcus.Brinkmann@ruhr-uni-bochum.de>
<
Samuele Tonon>
Questo è il Sound Blaster AWE HOWTO. Dà dettagliate informazioni per utilizzare al meglio la vostra SB 32 (o superiore), compresa la sintesi Wave Table. Questo documento copre tutte le SB da SB32 in su.
La serie Soundblaster è molto conosciuta negli ambienti DOS e WINDOWS, e molti utenti Linux vogliono poterla utilizzare al meglio sotto Linux. Sfortunatamente, la Creative Labs non supporta driver per Linux e quindi non risulta facile installarla e configurarla. Questo documento prova a descrivere come utilizzare al meglio la vostra SB in ambiente Linux.
Questo documento è la traduzione del Sound Blaster AWE 32/64 HOWTO di Marcus.Brinkmann
Molto lavoro di questo HOWTO è stato fatto da Hannu Savolainen che ha sviluppato il sound driver del kernel di Linux.
Vorrei ringraziare Nicola Bernardelli per aver testato questo HOWTO sulla AWE64; senza di lui molti errori non sarebbero emersi.
La versione italiana è stata liberamente tradotta il 2 Agosto 1998. Contiene alcune correzioni rispetto alla versione Inglese (approvate dall'autore) e alcune aggiunte per gli utenti Debian 2.0 (hamm) e Redhat 5.0.
Desidero ringraziare l'autore per la gentilezza e l'aiuto offerto e il Pluto User Group per lo sforzo che sta facendo nel portare Linux anche a chi l'Inglese non lo "mastica" bene.
Desidero anche ringraziare Giovanni Bortolozzo per l'aiuto e i consigli per la versione SGML di questo documento.
Includo qui di seguito la versione inglese della politica di distribuzione degli HOWTO seguita da una traduzione in italiano.
Copyright by Marcus Brinkmann.
This HOWTO is free documentation; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This document is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose. See the GNU General Public License for more details.
You can obtain a copy of the GNU General Public License by writing to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Questo HOWTO è una documentazione gratuita; è possibile ridistribuirla e/o modificarla nei termini del GNU General Public License come pubblicato dalla Free Software Foundation; tale discorso vale per questa e future versioni. Riferimenti al GNU General Public License per maggiori dettagli.
È possibile ottenere una copia della GNU General Public License scrivendo a Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Questo documento spiega l'installazione di una SB 32AWE/64AWE sotto Linux come piattaforma si è utilizzato un Intel 586 con Debian GNU/Linux tuttavia dovrebbe funzionare su tutte le altre distribuzioni supportate dal Linux Sound driver (le differenze saranno menzionate dove necessario).
Questo documento presuppone la conoscenza del Sound-HOWTO e viene considerato alla stregua di un'appendice di quest'ultimo. È possibile trovare versioni tradotte in italiano degli HOWTO e dei mini HOWTO nel database del pluto user group.
La scheda SB AWE32/64 fornisce supporto audio, sintetizzazione OPL-2/OPL-3, una porta MPU-401 MIDI e 32/64 voci EMU 8000 Wave Table Synthesis (per una delucidazione su questi e altri termini consultare il Linux Sound HOWTO). Uno scopo di questo documento è aiutare l'utente a fare funzionare tutto questo "bagaglio" di roba :-).
Il problema per un utente Linux utilizzando la SB 64 AWE è che le 32 voci Addizionali - rispetto alla SB 32 AWE - sono generate via software e mandate in output via audio normale (cioè alla stregua di un WAVE). Poiché la Creative Labs non vede mercato nel realizzare driver per Linux, le uniche guide per la Wave Synthesis sono disponibili solo per win 3.1 e 95.
Questo vuol dire, dal punto di vista dell'utente Linux, che la SB32 e la SB64 sono formalmente identiche. D'ora in poi si farà riferimento alla SB AWE in generale e verranno menzionate le differenze dove (e se) sussisteranno.
Le moderne schede per piattaforma Intel sono ISA PnP. Questo significa, che la scheda deve essere configurata dal sistema operativo, e che questo deve essere fatto nella fase di boot, nelle routine d'inizializzazione. In generale ci sono tre modi per fare ciò:
Il software più utilizzato per inizializzare schede PnP in Linux sono gli Isapnptools. Sono un facile strumento per inizializzare tutte le vostre Schede PnP, non solo la vostra scheda sonora.
Alcuni driver di periferica possono essere caricati nel kernel come moduli. È possibile trovare maggiori informazioni sui moduli nel Kernel HOWTO e nel Module HOWTO (è consigliabile leggerli per avere maggior chiarezza di ciò che dovrete fare).
Se avete una scheda sonora PnP, dovete installare il "sound support" come modulo. Cioè non potete compilare il supporto sonoro all'interno del kernel stesso ma dovete includerlo come modulo; il motivo è semplice: il kernel viene caricato prima che che la scheda possa essere configurata mentre essa deve essere configurata con i driver dopo che il kernel sia stato caricato e che quindi isapnp venga eseguito.
Il sound kernel module può essere caricato manualmente con il comando
insmod sound
oppure modprobe -a sound
o nello script di boot
del vostro Linux (in Debian è sufficiente aggiungere la linea
sound
in /etc/modules
). Un altro modo è di lanciare
kerneld
un daemon che installa e rimuove i moduli (consultare i
relativi HOWTO e le man pages per maggiori informazioni).
PS: kerneld
non è la migliore soluzione per il modulo AWE driver,
perché il driver impiega molto tempo a caricarsi (in particolar modo
se avete la Wave Table synthesis che carica molti "font" sonori).
Kerneld
rimuove automaticamente i moduli non usati, dopo un
minuto di default ecco perché è forse meglio inserire il modulo sonoro
manualmente o nella procedura di boot.
Inserire manualmente il modulo oppure metterlo nella procedura di boot
previene kerneld
dal rimuoverlo quando questo è ozioso (idle).
Comunque potete utilizzare tutti e due i metodi poiché non creano conflitti
l'uno con l'altro.
Questo è particolarmente utile se le impostazioni del vostro mixer vengono
disturbate dal rimuovere-installare il sound module. Una soluzione al
problema verrà data nella sezione
MIXER (là
verrà descritto come far partire in automatico il mixer quando il
sound module viene caricato).
Insomma è meglio utilizzare delle procedure anziché lasciar fare tutto a
kerneld
.
È possibile installare il supporto sonoro all'interno del kernel stesso oppure come modulo. Se avete una scheda PnP dovete installarlo come modulo (come già detto) perché isapnp deve configurare la scheda prima che il driver venga caricato.
Come si può immaginare bisognerà ricompilare il kernel. Il kernel corrente viene rilasciato senza supporto per il chip AWE ma con supporto per la sb16 normale. In questo modo non è possibile ascoltare midi con la Wave Table Syntesys.
Se volete utilizzare la Wave Table Syntesys, potete comprare un driver
commerciale da
4Front Technologies
oppure aggiungere al vostro kernel l'AWE 32 Sound Driver Extension by Takashi
Iwai.In questo documento si assume l'utilizzo di quest'ultimo.
L'AWE 32 Sound Driver Extension è pubblicato con licenza GNU copyright e
venduto con alcune applicazioni per l'utilizzo dell'AWE driver.
L'AWE driver (awedrv
) è già disponibile nei nuovi sorgenti del
kernel (2.1.x).
Questi sono i requisiti per supportare la SB AWE in Linux
/usr/src/linux/drivers/sound/Readme
)
Se avete una scheda PnP avete inoltre bisogno:
Se avete un Linux Debian ciò vuol dire che dovete aver installato i pacchetti:
Presuppongo abbiate già installato propriamente la SB nella scheda madre e, forse, che l'abbiate già testata sotto Windows (con esito positivo).
Il prossimo passo è quello d'inizializzare la scheda nella procedura
di boot (ATTENZIONE QUESTO SE E SOLO SE LA SB è DI TIPO PnP!!!).
Seguite la procedura d'installazione e compilazione del pacchetto
isapnp
e una volta installato, digitate, con i diritti di root:
pnpdump >/etc/isapnp.conf
Questo comando genera un file di configurazione per le schede PnP,
da editare correttamente seguendo le man page (man isapnp.conf per
maggiori informazioni).
Per la SB sono possibili varie configurazioni: cercate quella giusta
(confrontate le impostazioni con quelle che avete sotto Windows oppure
date un'occhiata all'isapnp.conf
alla fine di questo HOWTO).
ATTENZIONE!!! Isapnp
spesso fallisce nel trovare tutte e
TRE le porte di I/O dei SB Wave Table Device. Controllate bene e
se non sono state viste correttamente aggiungetele voi manualmente
(magari dando un'occhiata all'isapnp.conf qui alla fine dell'HOWTO).
ATTENZIONE!!! (ancora!) come spiegato nel isapnp-faq
isapnp
spesso sbaglia il numero delle periferiche logiche. Se vi
appare un messaggio del tipo:
Error occurred executing request 'LD 2' on or around line...
allora provate aggiungendo (VERIFYLD N)
all'inizio del
isapnp.conf
. È consigliabile usare la versione 1.10 di
isapnp
se non potete utilizzare questa versione dovete editare
gran parte del file manualmente (auguri! :-) ) in questo caso fate
riferimento all'isapnp-faq
.
ATTENZIONE!!! (ultima) state attenti che nell'ultima riga
dell'isapnp.conf compaia la scritta (WAITFORKEY)
ogni tanto
viene omessa per motivi mistici da vecchie versioni di pnpdump
.
Come già detto un
estratto
dell'isapnp.conf
(solo la parte
riguardante la SB) è stato messo alla fine di questo HOWTO.
Ora, se avete montato Debian non sono necessari altri
aggiustamenti: isapnp
sarà caricato nella procedura di boot
semplicemente aggiungendo a /etc/init.d/boot
queste poche linee:
# Configura la scheda isa plug and play prima del caricamento dei # moduli. # if [ -x /etc/init.d/isapnp ] then /etc/init.d/isapnp start fi
#! /bin/sh # /etc/init.d/isapnp: configure Plug and Play boards test -x /sbin/isapnp || exit 0 /sbin/isapnp /etc/isapnp.conf exit 0
NOTE: agli utenti Debian hamm e RedHat 5.0 o
superiori dovrebbe bastare creare il file /etc/isapnp.conf
.
Se avete un'altra distribuzione Linux, beh siete soli, non so cosa bisogna fare (se qualcuno lo sa, me lo comunichi). L'importante è essere sicuri che isapnp venga caricato in fase di avvio e che compaia (sempre in fase di avvio) una scritta del tipo :
Board 1 has Identity 74 00 00 e3 10 48 00 8c 0e: CTL0048 Serial No 58128
Prima di ricompilare il kernel dovete installare l'AWE driver Extension.
Normalmente se è stato già "deppacchettizzato" lo trovate in
/usr/src/awedrv
e da lì seguite le istruzioni nel file
INSTALL.awe
. Oppure direttamente digitate
./install.sh
Per vedere se è già installato nel kernel guardate in
/usr/src/linux/drivers/sound/lowlevel
se ci sono i file awe_*.
Se volete fare un upgrade del driver AWE, vi conviene prima cancellare il
vecchio drivers/sound/lowlevel/awe_wav.c
, e quindi eseguire lo script d'installazione
(questo perché l'installazione va a vedere se esiste quel file e se c'è non fa niente).
Ora finalmente potete lanciare l'amatissimo make config
(o make menuconfig
o
make xconfig
) nella directory /usr/src/linux
.
Configurate il resto come volete voi (ricordandovi di abilitare il supporto
per i moduli se volete installare i driver sonori come moduli).
Ad un certo punto vi verrà chiesto se volete il sound card support.
rispondete con Y
o M
se non avete una schesa PnP.
Se invece avete una SB PnP dovete rispondere M
.
Poi alle seguenti voci della sezione sound un bel Y
(alle altre
un N
e una pietra sopra).
Sound Blaster (SB, SBPro, SB16, clones) support (CONFIG_SB) [Y/n/?] Generic OPL2/OPL3 FM synthesizer support (CONFIG_ADLIB) [Y/n/?] /dev/dsp and /dev/audio support (CONFIG_AUDIO) [Y/n/?] MIDI interface support (CONFIG_MIDI) [Y/n/?] FM synthesizer (YM3812/OPL-3) support (CONFIG_YM3812) [Y/n/?] lowlevel sound driver support [Y/n/?] AWE32 support (CONFIG_AWE32_SYNTH) [Y/n/?]
ATTENZIONE SE L'ULTIMA NON APPARE ALLORA NON AVETE INSTALLATO L'AWE DRIVER EXTENSION!!!!!
Quindi dovete configurare l'I/O della SB date un'occhiata all'isapnp.conf
altrimenti provate questi valori di default (che sono andati bene a me, a marcus
e ad altre persone).
Attenzione in particolar modo ai valori del SBC_IRQ
e SB_MPU_BASE
che normalemente
sono sbagliati per molte SB.
I/O base for SB Check from manual of the card (SBC_BASE) [220] Sound Blaster IRQ Check from manual of the card (SBC_IRQ) [5] Sound Blaster DMA 0, 1 or 3 (SBC_DMA) [1] Sound Blaster 16 bit DMA (_REQUIRED_for SB16, Jazz16, SMW) 5, 6 or 7 (use 1 for 8 bit cards) (SB_DMA2) [5] MPU401 I/O base of SB16, Jazz16 and ES1688 Check from manual of the card (SB_MPU_BASE) [330] SB MPU401 IRQ (Jazz16, SM Wave and ES1688) Use -1 with SB16 (SB_MPU_IRQ) [-1]
Ora ricompilate il kernel seguendo i suggerimenti del Module HOWTO:
make dep
make clean
make modules
make modules_install
make zImage
o make zlilo
o make zdisk
a seconda delle vostre necessità.
Per gli utenti Debian + semplicemente
make-kpkg clean
make-kpkg -revision custom.1.0 kernel_image
e quindi dpkg -i /usr/src/kernel-image-2.0.29_custom.1.0_i386.deb
.
Dopo l'installazione del nuovo kernel dovete riavviare il sistema
(fatevi sempre un dischetto di boot in caso di errori irreversibili).
Ora incrociate le dita, fate le macumbe, e riavviate (CTRL+ALT+CANC o per i
maniaci shutdown -r now
).
Ora potete installare il sound driver se lo avete compilato come modulo.
Modprobe -a sound
AWE32 Sound Driver v0.3.3e (DRAM 2048k)
Se la memoria non è stata rilevata correttamente provate a fare l'upgrade del
AWE driver Extension o direttamente editate il file
/usr/src/linux/drivers/sound/lowlevel/awe_config.h
per esempio:
#define AWE_DEFAULT_MEM_SIZE 4096 /* kbytes */
quindi ricompilate il kernel di nuovo.
Se non volete ricompilare tutto ex novo, è anche possibile fare soltanto
make modules
e make modules_install
.
Io comunque, suggerisco di ricompilare tutto , male non fa né a voi
né al Pc.
Se invece è andato tutto, bene dovreste avere il sound module caricato automaticamente.
Potete usare kerneld
oppure aggiungere sound
in
/etc/modules
(in Debian) o aggiungere /sbin/modprobe -a
sound
negli script di avvio del vostro Linux.
/proc/devices
/dev/sndstat
Se avete installato il sound support come "built-in" già nei messaggi di boot dovreste aver visto dei messaggi utili. In ogni caso date un'occhiata a quello che appare con questi comandi:
modprobe -r sound (questo se lo avete caricato come modulo)
modprobe -a sound trace_init=1
Sound initialization started
<Sound Blaster 16 (4.13)> at 0x220 irq 5 dma 1,5
<Sound Blaster 16> at 0x330 irq 5 dma 0
<Yamaha OPL3 FM> at 0x388
Sound initialization complete
AWE32 Sound Driver v0.3.3e (DRAM 2048k)
Se avete /proc
come file system virtuale date un'occhiata ai devices
cat /proc/devices
...Character devices:
[...]
14 sound
[...]
Date un'occhiata che in /dev
i device siano installati
correttamente (vedi SOUND-HOWTO su come fare) quindi diamo un'occhiata
a /dev/sndstat
# cat /dev/sndstat
Sound Driver:3.5.4-960630 (Sat Oct 11 19:35:14 CEST 1997 root,
Linux flora 2.0.29 #1 Sat Oct 11 19:12:56 CEST 1997 i586 unknown)
Kernel: Linux flora 2.0.29 #1 Sat Oct 11 19:36:23 CEST 1997 i586
Config options: 0
Installed drivers:
Type 1: OPL-2/OPL-3 FM
Type 2: Sound Blaster
Type 7: SB MPU-401
Card config:
Sound Blaster at 0x220 irq 5 drq 1,5
SB MPU-401 at 0x330 irq 5 drq 0
OPL-2/OPL-3 FM at 0x388 drq 0
Audio devices:
0: Sound Blaster 16 (4.13)
Synth devices:
0: Yamaha OPL-3
1: AWE32 Driver v0.3.3e (DRAM 2048k)
Midi devices:
0: Sound Blaster 16
Timers:
0: System clock
Mixers:
0: Sound Blaster
1: AWE32 Equalizer
Se non vi esce un output come questo allora avete sbagliato qualcosa nella configurazione e dovete ritornare al punto Iniziamo (e senza passare per il via).
Cercate un file di tipo .au
(sun workstation) o .wav
(ma non sempre funzionano). Io suggerisco sempre un bel find /
-name *.au
.
E ora ... magia di Linux ... digitate :
cat file.au > /dev/audio
oppure
cat file.wav > /dev/dsp
in questo modo dovreste sentire il file sonoro utilizzando il driver
Audio Device 0: Sound Blaster 16 (4.3)
.
Se volete usare la sintesi FM OPL-2/OPL-3 per ascoltare i MIDI provate
il programma playmidi
(appendice B)
playmidi -f dance.mid
oppure
playmidi -4 dance.mid
il primo vi da l'OPL-2 il secondo l'OPL-3. Se il suono fa schifo non preoccupatevi è la sintesi FM che fa schifo, ma voi avete unia SB-AWE e potete usare ben altro!!
L'AWE driver Extension ha alcuni splendidi comandi (awesfx
) per
fare uso dell'EMU 8000 Wave Table synthesis.
Prima di tutto dovete caricare una sound font Bank sulla vostra scheda
(anche se volete usare i ROM samples). Potete trovare i file dalla
vostra partizione DOS/Windows - file con suffisso *.sfb
o
*.sf2
.
I ROM samples possono essere caricati con SYNTHGM.SBK
, mentre
i samples reali li trovate in SYNTHGS.SBK
e
SYNTHMT.SBK
, oppure in SAMPLE.SBK
. Potete trovare
altri Sound Font Banks via ftp o www, per esempio l'EMU homepage,
il sito della Creative, e cercate i CHAOS samples, che sono molto buoni.
Provate a caricare l'insieme GM standard (ROM) con
sfxload -i synthgm.sbk
E poi ascoltatevi un MIDI con l'utility
drvmidi dance.mid
Procuratevi il vostro programma di mixer favorito e caricatelo. Ora fate partire un wav e due midi nello stesso tempo per provate le impostazioni del vostro mixer. Qui di seguito c'è la lista delle periferiche e di come sono chiamate
Synth o FM
Synth o FM (qualcuno conosce un mixer in cui queste due voci sono separate?)
PCM o DSP
Spkr
Altre periferiche sono il CDROM possibilmente collegato alla SB, MASTER VOLUME (volume generale), Bass (regolazione bassi), Treble (regolazione alti).
È possibile registrare da CDROM, microfono e qualsiasi cosa connessa
al line-in
. Configura il mixer nel modo più appropriato.
Suona e poi registra una traccia ad esempio:
cdplay
dd bs=8k count=5 < /dev/dsp > music.au
5+0 records in
5+0 records out
cat music.au >/dev/dsp
prende 5 secondi di una traccia del cd e la registra nel file music.au che poi
viene fatto partire.
sfxload
È possibile caricare dei sample nella DRAM della SB con il comando
sfxload
.
NOTA: è possibile caricare solo un sample file per banco, con il banco
0 come default. Da ciò consegue che dopo sfxload
synthgs.sbk
, l'unico sample caricato è il GS. Se vuoi caricare
Sound Font Bank addizionali, è necessario usare l'opzione -b
.
Ad esempio:
sfxload synthgs.sbk
sfxload -b1 sample.sbk
drvmidi sfx.mid
Inoltre è possibile caricare un Sound Font Bank di default; basta aggiungere la linea seguente
post-install sound /usr/bin/sfxload synthgm.sbk
in /etc/conf.modules
.
Guardate la documentazione relativa a sfxload
per altre dritte.
Con drivmidi
, è possibile adoperare l'AWE driver per suonare i
MIDI, basta specificare il file che si vuole sentire dopo il comando.
Ad esempio:
drvmidi waltz.mid
Guardate la documentazione relativa a sfxload
per altre dritte.
Autore: Jeff Tranter, <
jeff_tranter@pobox.com>
Ultima versione: v1.17, 4 Agosto 1997
È consigliabile leggere bene questo HOWTO !!!!!
Autore: Yoo C. Chung, <
wacko@laplace.snu.ac.kr>
Ultima versione: v1.4, 13 Maggio 1997
Anche questo HOWTO è utile per conoscere i vari formati musicali e che applicazioni utilizzare per ascoltarli
Autore: Takashi Iwai <
iwai@dragon.mm.t.u-tokyo.ac.jp>
Source: http://bahamut.mm.t.u-tokyo.ac.jp/~iwai/awedrv/awedrv-faq.html
La BIBBIA di noi poveri possessori di SB-AWE
Autore: Peter Fox <
fox@roestock.demon.co.uk>
Source: http://www.roestock.demon.co.uk/isapnptools/isapnpfaq.html
Se avete problemi mentre configurate la vostra scheda PnP, allora qui troverete molti aiuti.
isapnptools
Autore: Peter Fox <
fox@roestock.demon.co.uk>
Ultima Versione: 1.11
Source: http://www.roestock.demon.co.uk/isapnptools/index.html
Per riportare bug, patches o commenti su isapnp: isapnp@roestock.demon.co.uk. Includendo isapnp nel subject.
awedrv
Author: Takashi Iwai <
iwai@dragon.mm.t.u-tokyo.ac.jp>
Ultima Versione: 0.4.2c
Autore: Linus Torvald & co.
Ultima versione: al momento 2.0.33 Reperibile a: ovunque ci sia Linux
Author: Hannu Savolainen (Si invita fare un giro a http://www.4front-tech.com/usslite prima di spedimi una mail).
Ultima Versione: I ho 3.5.5-beta1
Reperibile con il Linux Kernel Source Package
Informazioni: http://www.4front-tech.com/usslite or European mirror.
isapnp.conf
Nell'ISA PnP file di configurazione, creato da pnpdump, i singoli componenti della vostra scheda PnP compaiono come sezioni (SECTION). Nel file qui sotto riportato è stata rilevata la scheda sonora con 4 componenti logici:
LD 0
: Audio DeviceLD 1
: IDE DeviceLD 2
: WaveTable DeviceLD 3
: Gameport Deviceè stato lasciato LD 1
non configurato perché il CDROM non era attaccato alla
porta ide della SB. Se non avete una porta Ide sulla vostra SB allora LD 1
sarà
il Gameport Device e LD 3
non comparirà.
Per favore fate riferimento alla sezione
Iniziamo
per informazioni importanti su questo file.
# $Id: pnpdump.c,v 1.9 1997/06/10 21:37:32 fox Exp $ # This is free software, see the sources for details. # This software has NO WARRANTY, use at your OWN RISK # # For details of this file format, see isapnp.conf(5) # # For latest information on isapnp and pnpdump see: # http://www.roestock.demon.co.uk/isapnptools/ # # Compiler flags: -DREALTIME -DNEEDSETSCHEDULER (READPORT 0x0203) (ISOLATE) (IDENTIFY *) # Try the following if you get error messages like # Error occurred executing request 'LD 2' on or around line... #(VERIFYLD N) # ANSI string -->Creative SB32 PnP<-- (CONFIGURE CTL0048/58128 (LD 0 # ANSI string -->Audio<-- (INT 0 (IRQ 5 (MODE +E))) (DMA 0 (CHANNEL 1)) (DMA 1 (CHANNEL 5)) (IO 0 (BASE 0x0220)) (IO 1 (BASE 0x0330)) (IO 2 (BASE 0x0388)) (ACT Y) )) (CONFIGURE CTL0048/58128 (LD 1 # ANSI string -->IDE<-- # (INT 0 (IRQ 10 (MODE +E))) # (IO 0 (BASE 0x0168)) # (IO 1 (BASE 0x036e)) # (ACT Y) )) (CONFIGURE CTL0048/58128 (LD 2 # ANSI string -->WaveTable<-- (IO 0 (BASE 0x0620)) (IO 1 (BASE 0x0A20)) (IO 2 (BASE 0x0E20)) (ACT Y) )) (CONFIGURE CTL0048/58128 (LD 3 # ANSI string -->Game<-- (IO 0 (BASE 0x0200)) (ACT Y) )) # Returns all cards to the "Wait for Key" state (WAITFORKEY)