Overview
This manual contains information and examples from AOL internal
documents. It has been posted here to educate AOL users and NOT for
any other reason. Send comments to atoms@aol-files.com
Key Atoms
- uni, act, if, man, mat, var
- de, buf, idb, fm, cm, async
Basic Programming Concepts
- if, then, else, while, do, loop
Basics
FDO91 is a collection of atoms which define how things are
displayed to a user through the client. The atoms are responsible
for creating object and actions that a user interacts with on the
client. They are grouped into several different Protocols, defined
by a 2-3 letter prefix such as uni and
if
Descriptions
Object
Creation Atoms Data
Extraction, Handling and Storage Atoms Tool
Management Atoms General
Atoms
Object Creation Atoms
- UNI
Responsible for governing the flow of streams
- IF
Responsible for allowing the programmer to test
conditions
- VAR
Responsible for movign data in and out of the
client registers
- ACT
Responsible for controling the action streams in
a form
- MAN
Responsible for the structure of forms and
creation of objects
- MAT
Responsible for setting flags used to define
forms created with MAN
Data Extraction, Handling and Storage
Atoms
- BUF
Used to handle the client buffer system. These
buffers hold data sent to the host or stored in main.idx
- DE
Works directly with client buffers to extract and
store data from objects
- IDB
Used to store and retrieve data from main.idx
- FM
File Manager. Used to do limited direct
Input/Output with the users hard drive
Tool Management Atoms
- CM
Manages all the *.tol tools in the /tool/
directory. Verifys tools for TODs and replacements
General Atoms
- ASYNC
Handles messageboxes and screen name issues
- SM
A collection of shorthand atoms
Programming Concepts
If
- Simple If statement
- tests if user is online, if true execute commands down to
uni_sync_skip <1>
- if false execute commands between
uni_sync_skip
<1> and uni_sync_skip
<2>
uni_start_stream if_online_then
<1, 2> async_alert <info, "You are
online"> uni_sync_skip <1> async_alert <info,
"You are NOT online"> uni_sync_skip
<2> uni_end_stream
Example in
VB:
if online=true then messagebox "You are
online" else messagebox "You are NOT online" end
if
VAR and IDB
- Checks to see if GID 20-0-16 is New
User
uni_start_stream
- Set context to 20-0-16
idb_set_context
<20-0-16>
- Set offset to where data is stored
idb_atr_offset
<1>
- Stores DB value
idb_get_string <>
- Loads a register with string value into register
A
var_string_set_from_atom <A>
- Sets register B to New User
var_string_set <B,
"New User">
- Kills context to the GID
idb_end_context
- Test case of register values
- If string A equals string B then (see If statement
above)
if_stra_eq_strb_then <1,
2> async_error_box <"GID 20-0-16 is not New
User"> uni_sync_skip <1> async_error_box <"GID
20-0-16 is New User"> uni_sync_skip
<2> uni_end_stream
Actions
- Ussually defined in button actions on a form
- When clicked the button will display a message box
- Start a button
man_start_object <trigger,
"Button">
- Starts the action of the object when
clicked
act_replace_select_action < uni_start_stream
- The actions placed here will occur when the button is
clicked
async_error_box <"Display message when
clicked"> uni_end_stream > man_end_object
MAN Atoms
- MAN Atoms define attributes for
objects.
uni_start_stream
- Set attributes for object with relative ID of
3
man_set_context_relative <3>
- Get string A
var_string_get <A>
- Get the last atom and replace the content of object 3 with
string A
uni_use_last_atom_string
<man_replace_data>
- Update display
man_update_display
- Stop setting context for relative ID
3
man_end_context
FM Atoms
- Start File Manager protocol
fm_start
- Full name path of the ini file
fm_item_type
34 fm_item_set_ascii "Name INI" fm_item_type 35
- Internal group name of the ini file
fm_item_set_ascii
"KEY"
- Example: sysinfo.ini located in AOL root
CM and Async
- Start stream
uni_start_stream
- Useful for getting the windows
directory
cm_tb_get_windows_dir
- Open /aolshare/sysinfo/sinf.exe in the windows directory
- sinf.exe is the AOL System Info
program
async_exec_app
<"aolshare/sysinfo/sinf.exe"> uni_end_stream
- This example shows how to create a messagebox using
async
uni_start_stream
- You can use
async_error_box or
async_alert to display a
messagebox
async_error_box <"This is a
messagebox">
or
async_alert <info, "This
is a messagebox"> uni_end_stream
While Loops
- Example from fdo training
packet
uni_start_stream var_number_set <"0,
0"> var_number_set <"1,
100"> uni_start_loop if_numa_lt_numb_then
<10> var_numa_increment man_set_context_relative
<1> var_number_get
0 uni_convert_last_atom_string uni_use_last_atom_stringproto$display man_replace_data man_update_display man_end_context uni_end_loop uni_sync_skip
<10> uni_end_stream
- Example in Basic:
A = 0 DO WHILE A < 100 A =
A + 1 Edit.1.text = STRA(A) LOOP END
Tokens
Debugging
- Using Atomic Debugger to debug your atomic script (FDO91
streams)
There are two basic ways to debug your script. Go to
either Setup Options or Commands > Set
breakpoints
From Setup Options choose Setup
(Ctrl+Enter), select Decompile Atoms and Single
Step, select all Trace Message Selectors Choose
Atom Trace and run your script to begin
debugging.
From Commands choose Set
breakpoints and select your breakpoints clicking OK afterward.
Now follow the steps above to select Singe Step and Atom
Trace and start debugging.
Producer Help
- Keywords for FDO Support:
KW: ISO > Tech Producer
Listserv KW: TechDoc KW: Guidelines > Training
Section KW: Atoms KW: DevHelp KW: FormTest KW:
OPSSEC You must have access to be able to view the above
keywords.
|