AOL-Files Articles Downloads FDO
 


  • Overview
  • Key Atoms
  • Basics
  • Descriptions
  • Programming Concepts
  • Tokens
  • Debugging
  • Producer Help
  • 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

        Most tokens have two parts

      • Token
        A token is a two character ID given to a specific task on the service. Some common examples of tokens would be:
        iO Locate A Member
        f1 Invoke Database Record (form_edit)
      • Arguement
        An arguement is the second part of most tokens, it tells AOL what you want the task to do.
        Common FDO code to use tokens and arguments (sometimes refered to as 'token/args') would be:
        uni_start_stream
        sm_send_token_arg <"f1", 32-30>

        The above example basically says 'Hey AOL! Go fetch me a form_edit form, number 32-30'

      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.


      Home
      | Forums | Guestbook | About | Disclaimer | Links | AOL Clients | Articles | Documents | Images | Tools

      © 2000 BMB and Tau Productions. Contacts: BMB | Tau | Rob | Mage