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...) |
; 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
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
- for TYPE declaration:
; Handling TYPE variables
.var struct_ptr_var .word
- for ARRAY declaration:
.var array_buffer_data .word
.var array_index_data .byte