Effectus development system consists of additional runtime libraries, which are included in compiled programs whenever necessary.

Here is a list:

runtime.asm runtime.obx Core library with common functions and variables
sound.asm sound.obx Sound routines
graphics.asm graphics.obx Graphics routines
io.asm io.obx I/O routines
printf.asm printf.obx Text printing routine with special formatting (decimal, hex, floating point numbers, strings)
printfd.asm printfd.obx Text printing routine with special formatting (decimal, hex, floating point numbers, strings) on specified device
math.asm math.obx Math routines
controllers.asm controllers.obx Game controller routines
common.asm   Common routines
equates.asm   Common equates (memory locations, temporary storage locations...)

  • There are some predeclared global variables defined in common.asm for various uses:
  • ; Global BYTE variables
     .var b_param1, b_param2, b_param3, b_param4, b_param5 .byte

    ; Global WORD variables
     .var w_param1, w_param2, w_param3, w_param4, w_param5 .word

    These variables use stack for their use, so there is no so much memory wasted. These variables are used for temporary storage of values and procedure and function parameter usage.

    Default device:

    device #0
    Array variable for usage with SCopyS command for temporary string storage:

    .array strx 255 .byte = $ff
    .enda
     .var array_buffer_strx .word
     .var array_index_strx .byte

  • Equates for memory locations and storage areas are stored in equates.asm, which is used throughout all libraries and user programs.

  • Some temporary values are stored in STORE1, STORE2 and STORE3 variables, which are declared as

    STORE1 equ $CB ; Temporary 8-bit variable
    STORE2 equ $CC ; Temporary 8-bit variable
    STORE3 equ $CD ; Temporary 8-bit variable

    in equates.asm file

  • Automatically generated MADS program source code layout:
  •  org $3200

     icl 'c:\projects\effectus\lib\equates.asm'
     icl 'c:\atari\effectus\lib\common.asm'

    Main
     ...
     ...
     ...

     jmp *

    .link 'd:\atari\my projects\effectus\lib\runtime.obx'

     run Main  ; a name of last Effectus procedure PROC

  • Additional automatically generated MADS program source code layout:
  • - for TYPE declaration:

    ; Handling TYPE variables
     .var struct_ptr_var .word

    - for ARRAY declaration:

     .var array_buffer_data .word
     .var array_index_data .byte