Falcon Sound cpx information file.
----------------------------------

The first pre-milenium version has no explanation.
I made it to look at and alter the sound system.

-This version is completly rewriten and uses this file
  to find explanation for an object hovering over.
-This can be altered as you like.
-This one has a better popup.
-It has a 20 step undo.
-Works in mono and 4 color mode.
-Boot_set now know's if it boots or is re-read.
  (This work with 'COPS' and 'XCONTROL' but it is no valid way.)
  (COPS user? see bottom of file)
-Main view looks to update faster (but really is not)
-Language support.

Tested on an old bird, a Hyper active bird and a virtual bird.
All swallowed it nicely.
(Falcon,CT60,Hatari-Falcon)



THIS FILE:

This file is searched for the hover and language stuff.
It works fine without it.
First is searched in the local path then in the cpx path.



HOVER:

When the mouse is not moved for a while
this text is searched if there is a matching explaination
for the object hovering over.

The mouse-relative-offset of the yellow thingy can be altered
in settings.
Don't want to wait for it? just press 'down arrow'
Don't want it at all? switch it off.



UNDO:

Many of the changes made can be reversed.
The key for undo can be altered.
I like 'ESC'



The MAIN view:

The VOLUME is clearly visible on the left.
It can change both sliders at the same time using the right 
mousebutton first

The connection MATRIX is clearly visible on the right.
I found it usefull to alter the connection lines to show more 
clearly the status.

The 'on' color of the play and record DMA in the left upper 
corner can be changed in the settings.

The 6 DMA pointers are checked about 3 times a second if there
was a change. Only one change will be displayed so the cpu
load stays at a minimum.

Above the matrix the internal speaker status is shown
(if you still have it) Click to change it.




SETTINGS:

Some options to alter the way you like.
The position of the yellow hover thingy can be changed.
You can put it in a corner as a fixed place or stop it popping up.

Like the MAIN view you need some glasses to read it on big
resolutions.(he he)



LANGUAGE suport:

1.
The cookie _AKP is used for that. See info then STATUS for the value.
In this text you can place a #LANG to change OBJECT or HOVER text that
replace the default.
Until #LANG is found all OBJECT and HOVER are default.

2.
if this text is present with the last two characters the same as
the language, That file is used instead of this one.
(example FSND_H04.TXT for language 4, it is shown in STATUS when used)

Use a text-editor, save and re-READ the text you just saved.
The READ key and switch_9 might be helpful.

Numbers of OBJECT/HOVER can be shown by forcing a hover.
switch_13 off and 8 & 9 on may be usefull.

Feel free to make a translation, the other falcon-user in your
country might be pleased!

; example:
; #LANG=2	;francais
; #OBJECT=0
; 102 "Confirme"	;text of the button
; 103 "Annule"
; #HOVER=0
; 102 "Quitter"	;hover text for that button

There is a first setup made for the 4 main languages by a guy that
has no language skills whatsoever.



KEYS:

Changeable keys don't work if they are the same as one above it.
Undo  - Undo
Hover - Display Hover text now.
Quit  - i have no idea.
Read  - read the changes you just made in this text file.
        & make new hover_index
        (hover remembers the last empty one to cut on disk access,
         so on a change made select first another empty one
         then the one your changing)





Special Thanks to:

Rodolphe Czuba!

Thanks to:

The Atari guys
The Hatari guys
The Hisoft guys
some dead guys (D.H.S.)
Uwe Seimet
Earx (Archaeopteryx)
You guys









How to alter the Yellow thingy text:
------------------------------------

It is made to be altered by you, so go ahead and try. If you have
not made a backup you can always download it again. It has a
simple simpel calculate mode for HOVER, so things may look complicated.
But that is an option, you can simply ignore it and stick to plane text.

;#LANG=0
;#OBJECT=0
;#HOVER=0
;#END
; 6 "Text put on screen"
; " line 1 | line 2 "
; [6.w] an internal variable on place 6 is read as a word(2 bytes)
;
; [4.b&1,On,Off] is a result bound text
; read as: position 4, get byte, logical and 1 = result
; when 0 display "On" , when 1 display "Off"
;
; logical operators: < > & * / + - ! n
; <4 shift 4 to the left.
; >1 shift 1 to the right.
; &3 logical and
; ! not
; n negative
;
; ] result is shown
; H2 result is shown in Hexadecimal 2 characters long
; B4 result is shown Binair 4 bits long
; [1, text_0, text_1, text_2] displays text found after ',' one.
; " text_1" is the result.
; [4.w, text_0, text_1, text_2] does the same if 4.w=1
;
; [6.b*100/15]%  is a percentage from a 0 to 15 value.




This text is searched for for a '#' as first character on a line.
The character after that is read. That can be 'T' 'E' or 'L'
 'E' stops reading.
 'L' for LANGUAGE change.
 'O' to change OBJECT-display texts.
 'H' to mark the next part is used for HOVER-display.
The lokation's of '#H' are remembered for faster access. If on a
search '#H' is not found at that place, the text file must be
altered and the whole text is reread.

After '#H' there are numbers as beginning of a line.
The HOVER trys to find it object number and stops reading when a
higher number is found or a '#'. If the right object-number if
found the text between the first and second encountered " is
displayed on the yellow hover thingy. tab's, return & line-feed
are ignored.
Hover search has two restrictions:
- There can only be one '#H' used for the search, the last one is
  found used.
- The folowing numbers must be from low to high.

If a '[' is found the hover goes in simpel calculate mode. The
result is displayed.
A result bound text is also posible. Like [4.b,On,Off]



LANGUAGE and OBJECT can be used as much as you like.
Also just the first letter will do.

Example:
;#L=6					;sweden
;#O=2 				;object info replacements
;5 "Gjort"				;replace 'Done' with 'Gjort'
;#H=2					;this hover info for display 2 is ignored
;5 "Useless text hover"		;<- will not be looked at
;#H=3					;last hover for display 3
;4 "This can be displayed"

;#L=1			;other language
;#O=2
;5 "stornieren"

;#L=6					;sweden
;#O=2					;object info replacements
;7 "Falk  ljud"			;replace 'Falcon sound' with 'Falk ljud'
;#H=2					;last hover for display 2
;16 "This also can be displayed"

LANGUAGE,  OBJECT and HOVER can be in any order.
Numbers after OBJECT may be in any order. each one is done and they
may replace each other.
Numbers after HOVER should be from low to high because the search
stops when a higher number is found than the one looking for. This
is done for speed.







;#LANG=0	;use this and the next will not be read in other languages

#HOVER=0	; main display

2 "Connect[8.w>3&1,,ed] to matrix|connect $ff8930.w = $[8.wH4] bit 3"
3 "Connect[8.w>7&1,,ed] to matrix|connect $ff8930.w = $[8.wH4] bit 7"
4 "Connect[8.w>11&1,,ed] to matrix|connect $ff8930.w = $[8.wH4] bit 11"
5 "Connected to matrix|connect $ff8930.w = $[8.wH4]|bit 15 is a dummy !"

6 "Connect[15.b&1,,ed] to [16.b&3,mic,mic & psg,psg & mic,psg]|connect $ff8937.b = %[15.bB2] bit 0|source  $ff8938.b = %[16.bB2] [16.b&3,mic mic,mic psg,psg mic,psg psg]"
7 "Connect[10.w>3&1,,ed] to matrix|connect $ff8932.w = $[10.wH4] bit 3"
8 "Connect[10.w>7&1,,ed] to matrix|connect $ff8932.w = $[10.wH4] bit 7"
9 "Connected to [10.w>11&1,DSP !,Matrix]|connect $ff8932.w = $[10.wH4] bit 11"
10 "Connect[15.b>1&1,,ed] to matrix|connect $ff8937.b = %[15.bB2] bit 1|(not $ff8932.w bit 15)"
11
12
13
14
15 " |Careful with the internal wire's"
20
21 "Output source select| |[56.w,DMA,DSP,External,ADC (mic)] -> DAC (headphone)"
22
23 "Output source select| |[54.w,DMA,DSP,External,ADC (mic)] -> External out (spdif)"
24
25 "Output source select| |[52.w,DMA,DSP,External,ADC (mic)] -> DSP"
26
27 "Output source select| |[50.w,DMA,DSP,External,ADC (mic)] -> DMA"
29 "[8.w>1&3,internal,external,internal 32] clock selected"
30 "[8.w>5&3,internal,external,internal 32] clock selected"
31 "[8.w>9&3,internal,external,internal 32] clock selected"
32 "[8.w>13&3,internal,external,internal 32] clock selected"
33
34
35
36 "Source: [-6.w-33,DMA Play,DSP,External input,Analog to Digital Converter]"
37 "Left = [16.b>1,mic,psg]|select source:|- external mic connector|- internal Programmable Sound Chip"
38 "Right = [16.b&1,mic,psg]|select source:|- external mic connector|- internal Programmable Sound Chip"
41
42
43 "Handshake|for no loss of data| |Mostly not used for audio sound"
46 "Internal speaker = [25.b>6&1,On,Off]| |          bit 6|([25.bB8 ]) Yamaha sound chip port A"
47 "Play Sound mode|1 = mono         0 = stereo|$ff8921.b = %[7.bB8]|1 = 16 bit       0 = 8 bit"
48 "internal clock freq select|Select a nice quality |or a processor load friendly.| |Right & left mouse for ste comp"
49 "external clock freq select|When something is plugged to the right back,| click on gpio to switch between external clocks."
50 "Internal clock validity|Selected freq can be invalid for|codec.|Then no data(sound) is passed."
53 "General Purpose Out|Bit 0 is usualy used to switch between a 44100Hz CD clock and a 48000Hz DAT clock.|Click to change it."
54 "General Purpose In|Together with out, but only one waySo it is mostly masked off (x) as|out is used."
56 "DMA Play [5.b&1,off,on]|                    |$ff8901.b = %[5.bB8]|bit 0"
57 "DMA Record [5.b>4&1,off,on]|                |$ff8901.b = %[5.bB8]|bit 4"

58 "DMA Play: [4.b>2&1,,timer-A ][4.b&1,,MFP ][5.b>1&1,,Loop]|                      |$ff8900.w = %[4.wB12]|bit 10 Timer-A at end, bit 8 MFP-15|bit 1 Loop "
59 "DMA Rec: [4.b>3&1,,timer-A ][4.b>1&1,,MFP ][5.b>5&1,,Loop]|                  |$ff8900.w = %[4.wB12]|bit 11 Timer-A at end, bit 9 MFP-15|bit 5 Loop "
60 "Play [6.b>4&3+1] track[6.b>4&3,,s,s,s], DAC at [6.b&3+1] |play tracks  |$ff8920.b = %[6.bB6]|DAC at track     "
61 "Play [14.b&3+1] track[14.b&3,,s,s,s]|play tracks  |$ff8936.b = %[6.bB2]"

62 "DMA select register|                 |$ff8901.b bit 7 ([5.bB8])| |[5.b>7,0 = Play,1 = Record] registers selected"

66
67
68
69
70
71 "[-6.w-66,Play start,Play at,Play end,Record start,Record at,Record end] pointer
	|Location in ST-RAM for DMA sound"
73
74
75
76 "[-6.w-73,Out (Headphone),Extern out (spdif),to DSP,to DMA]|On if a connection is made.|Still handshake, invalid clock and unwilling source can stop the flow."
77
78
79 "Handshake|for no loss of data| |Mostly not used for audio sound"


83
84 "Left in ([16.b>1,mic,psg]) +[0.b*15/10].[0.b&1*5]Db [0.b*100/15]%|Volume [0.b*100/15]% & 
	[1.b*100/15]%, out [2.b*100/15]% & [3.b*100/15]%|in:$ff8939.b=$LR|Right & Left button for both sliders together" 
85
86 "Right in ([16.b&1,mic,psg]) +[1.b*15/10].[1.b&1*5]Db [1.b*100/15]%|Volume [0.b*100/15]% & 
	[1.b*100/15]%, out [2.b*100/15]% & [3.b*100/15]%| |Right & left mouse for both sliders" 

; this is for the offical ATARI negative decibel scale for out.
;89 "Left out -[2.bn+15*15/10].[2.b!&1*5]Db [0.b*100/15]%|Volume [0.b*100/15]% & 
	[1.b*100/15]%, out [2.b*100/15]% & [3.b*100/15]%| |Right & left mouse for both sliders" 
88
89 "Left out +[2.b*15/10].[2.b&1*5]Db [2.b*100/15]%|Volume [0.b*100/15]% & 
	[1.b*100/15]%, out [2.b*100/15]% & [3.b*100/15]%|out:$ff893a.b=$-L $ff893b.b=$R-| |Right & left mouse for both sliders" 
90
91 "Right out +[3.b*15/10].[3.b&1*5]Db [3.b*100/15]%|Volume [0.b*100/15]% & 
	[1.b*100/15]%, out [2.b*100/15]% & [3.b*100/15]%|out:$ff893a.b=$-L $ff893b.b=$R-| |Right & left mouse for both sliders" 
92 "Run a DSPfile|transfer selected LOD file to DSP and run it.||Xbios 116, Dsp_LoadSubroutine "
93 "DSP is [23.b,un]locked|[23.b,It's save to click on the wave and run a lod file,Just like a locked toilet the sound sytem is used by some program]"
94 "Sound is [24.b,un]locked|[24.b,,But this cpx does't care...]|you can fuck up the entire sound|system."

96 "DSP reset|= Xbios DSP_RemoveInterrupts"
97 "Sound_reset|Disable source of DAC (speakers):|matrix & ADC.|The first two down arrows on the|right."
99 "Options|When some things need to be changed"
100 "Information|If this yellow block is not enough try this or the text file."
101 "Update this screen|to most recent value's| |Double click|shows the cancel values"
102 "OK|When you are content with the settings and wish to quit."
103 "Cancel:|Restore everything and exit.| |(double click update to see the cancel state)"


#HOVER=1	;settings
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 "Switch [-6.w]"

17 "Done|use this until the computer is shut off."
18 "Save|use this and remember it after a|'Computer Off'"
19 "Cancel|just forget the stuff i just did."
21
22
23 "Altered color|Possible for 3 state's:|DMA Play active|DMA Record active|External out is connected to DSP"
25  "Delay sizer yellow hover|More blue = Yellow thingy takes|longer to show up."
33 "Update boot volume.|Get volume to be used as boot volume."

35
36
37 "Click and press key|to change.|Same value's? the last is ignored.|Scancode of key is displayed"
39 "Hover Hotspot|How far away the upper-left corner of the Yellow Hover text is| |Hold down and move mouse"
40 "Hover & Language|on:  Use this file for information|off: No file reading."
43 "Set volume during boot|The 4 blue bars indicate the volume set.|Press GET to change the values to the present one's"
44 "Disable internal speaker"
60 "Force Hover display"
62 "Re-read Information file|Changed text in the file is used."

#HOVER=2	;information
5 "Info done, back"
6 "A Status display|just some status information"
16 "FUCK is FUN| |Falcon User Club Kardoen|is also|Falcon User Nerdherlands"


#HOVER=3	;status
1 "Ok button|go back"
3 "Desktop|size [-12aw]x[-4aw] [aw] bit/pixel,|[aw,,Mono,4 colors,,16 colors]
	[aw>3,,256 colors,16 bit True color,24 bit True color,32 bit True color]"
6 "Program ID in the CPX-head"
7 "Version in the CPX-head"
10 " |All cpx have the same size head"
11 " |The instructions for the cpu."
12 " |defaults and variables"
13 " |Size of the imbedded resource"
14 " |Space used for buffers and some variables"
15 "Resident buffer use|How many bytes of the 64 Byt bufferare used."
27
28
29 "Name|of this CPX and size."
30
31
32 "Text file to read|This file is accessed for language and hover information."
42 "[-12.b,American (English),Deutch,Francais,English,Espanol,It
	aliano,Sweden,Suisse,Schweiz,Turkey,Finland,Norway,Denmark,Sau
	di Arabia,Holland,Czech,Hungary]"

;#END	; stop reading this file





#LANG=99	;inglish
#OBJECT=0	;main
99 "Set"
101 "Update"
102 " OK" 
103 "Cancel"

#OBJECT=1	;set
17 " OKEE"
18 "Save"
19 "Cancel"
41 "falcon sound"

#OBJECT=2	;set
5 " ok"
6 "status"

#OBJECT=3	;set
1 " ok"




#LANG=1	;deutch

#OBJECT=6
4 " 8 bit Stereo 16 bit Stereo  8 bit Mono    unbekannte"
7 "Fhren Sie die LOD-Datei aus"
6 "Suchen Sie die Hover-Informati"

#OBJECT=0	;main
99 "Stell"
101 "aktual"
102 "  OK" 
103 "Abbruch"

#OBJECT=1	;set
17 " OKEE"
18 "Sichern"
19 "Abbruch"
41 "   Falken klingen"
42 " Boot:      Einstellungen"
43 "Lautstrke ->"
44 "Lautsprech aus"
45 "Match ferq DMA ein und aus"
46 "Match ferq DSP ein und aus"
47 "Match ferq External ein und aus"
48 "Sound nicht gesperrt: Testen ext ferq"
49 "Visuell:"
50 "Matrix visuell ndern"
51 "Zeigt Informationen ber ein Objekt an"
52 "(debug) Zeige unbekannte Hover-Schaltflche"
53 "Popup in cpx behalten"
54 "Force-Cross-Modus (Mono)"
55 "Keine 'bist du sicher' Fragen"
56 "Verzgern"
57 "Schweber Versatz:"

#OBJECT=2	;info
7 "   Falken klingen"
8 "       fr Experten"
9 "Diese Show ist die Soundsystemeinstellungen."
10 "kannst auch etwas ndern,"
11 "Vorsichtig"
12 ""
14 "Diese cpx ist Freeware."
16 "habe Spa."
5 "  OK"

#OBJECT=3	;status
4 "   Falken klingen"
1 " Okee"
35 "Zeitliche"



#LANG=2	;francais
#OBJECT=0	;main
99 " Par"
101 "Mettre"
102 "Termin" 
103 "Annule"

#OBJECT=1	;set
17 "  OK"
18 "Sauver"
19 "Annule"
41 "     Son Faucon"
42 "Dmarrage:   Paramtres"
43 "Dfinir volume"
44 "Haut-parleur"
45 "Correspond  freq DMA in & out"
46 "Correspond  freq DSP in & out"
47 "Correspond  freq External in & out"
48 "Test ext ferq si le son n'est pas verrouill"
49 "Afficher:"
50 "Modifier la matrice visuelle"
51 "Afficher les informations quand sur un objet"
52 "(dbogage) afficher le bouton inconnu"
53 "Gardez la popup  l'intrieur cpx"
54 "Le mode crois (mono)"
55 "Pas de questions 'tes-vous sr'"
56 "  Retard"
57 "Flotter dcalage:"
59 "Undo"
60 "Flotter"
61 "Termin"
62 "Mettre"


#OBJECT=2	;info
1 "  cr par: Ton-Ton Tom."
7 "     Son Faucon"
8 "     pour les experts"
9 "Ce spectacle est les paramtres du systme de son."
10 "vous pouvez aussi en changer,"
11 " prudent!"
12 " "
13 "Un merci spcial  Rodolphe Czuba!"
14 "j'aime l'oiseau rapide que tu as fait."
16 "s'amuser."
5 "  OK"
6 "Statut"

#OBJECT=3	;status
1 "  OK"
4 "     Son Faucon"

#OBJECT=6
4 " 8 bit Stereo 16 bit Stereo  8 bit Mono    mode inconnu"
7 "   Excuter le fichier LOD"
6 "Fichier d'information Flotter"




#LANG=4	;spanish
#OBJECT=0	;main
99 "Ajust"
101 "Actual"
102 "Confirme" 
103 "Annular"

#OBJECT=1	;ajusta
17 "Hecko"
18 "Salvar"
19 "Annular"
41 "    Sonido Halcn"
42 " Bota:         Ajustes"
43 "El volumen ->"
44 "Altavoz apagado"
45 "Match ferq DMA dentro y fuera"
46 "Match ferq DSP dentro y fuera"
47 "Match ferq External dentro y fuera"
48 "Prueba ext ferq si el sonido no est bloqueado"
49 "Visual:"
50 "Alte la matriz visual"
51 "Mostrar informacin cuando est sobre un objeto"
52 "(depuracin) muestra el botn emergente desconocido"
53 "Mantenga la ventana emergente dentro de cpx"
54 "Modo de fuerza cruzada (mono)"
55 "No hay preguntas ests seguro?"
56 " Retrasar"
57 "  Flotar:"

#OBJECT=2	;info
5 "Hecho"
6 "Estado"
7 "    Sonido Halcn"
8 "        para expertos"
9 "Este programa es la configuracin sonido."
10 "tambin puedes cambiar algunos,"
11 " cuidadoso"
14 "Este cpx es freeware."
16 "que te diviertas."

#OBJECT=3	;estado
5 "Estado"
1 "Hecko"
4 "   Sonido  Halcn"
35 "Sincronizacin"

#O=6
4 "Estreo de 8  Estreo de 16   Mono 8 bit  desconocido"
7 "   Ejecutar archivo LOD"
6 "Archivo de informacin de Flotar"




#LANG=6	;sweden
#OBJECT=0	;main
99 "Ajust"
101 "Uppdat"
102 "Gjort" 
103 "Annull"

#OBJECT=1	;set
17 "  OK"
18 "Spara"
19 "Annull"
41 "     Falk  Ljud"
42 " Knga:     instllningar"
43 "Ange volym"
44 "Hgtalare avstngd"
45 "Matcha ferq DMA in och ut"
46 "Matcha ferq DSP in och ut"
47 "Matcha ferq Extrenal in och ut"
48 "Test ext ferq om ljudet inte r lst"
49 "Visa:"
50 "Alter matris visualy"
51 "Visa information nr ver ett objekt"
52 "(debug) visa oknd svepknapp"
53 "Hll popup inuti cpx"
55 "Nej 'r du sker' frgor"
56 " Drjsml"
57 "Svva frskjutning:"
60 "  Svva"

#OBJECT=2	;info
5 "Gjort"
7 "     Falk  Ljud"
8 "       para expertos"
9 "Denna show r ljudsysteminstllningarna."
10 "tambin puedes cambiar algunos,"
11 " cuidadoso"
14 "Detta program r fri programvara."
16 "que te diviertas."

#OBJECT=3	;status
4 "     Falk  Ljud"
1 "Gjort"
34 "filanvndning"

#O=6
4 " 8 bit Stereo 16 bit Stereo  8 bit Mono     oknd lge"
7 "       Utfr LOD-fil"
6 "Leta reda p informationsfilen"




#END	; stop reading this file



COPS:

COntrol PanelS or COPS is a different way to use CPX.
It is a nice idea but it works so different.
This CPX does't crash anymore but it can not be made as it
was ment to be.
- 'cpx_call' passes wrong y of rectangle of cpx
  it is followed bij a cpx_move with the right x and y
  (but not xcontrol...)
- cpx slider works different.
- mouse pointer gets messed up,after 5 times it's good again.
- cpx-hook works different.
   can't fix timer,it's always on,always 0. And i need that
   together with mouse position.
   The key-event had to be disabled.
  It keeps on calling the cpx with timer events and sometimes
  empty events, so that is ignored.
  event window_redraw works different.
  no cpx_get_first_rect avalaible. As it can't be run as it should
  i just redraw the whole cpx, and yes i know that overlaps other
  window's. At least this cpx works a bit on COPS. 



Bugs:

Of course.
Mostly unintended implemented.
(But what would a program be without those crawly creapies)

