Brass Core Plugins

clearpage

Clears the data output on a particular page.

Syntax

.clearpage page

Remarks

This directive can be useful to switch to a temporary page, do some assembling, then remove the output data so it doesn't appear in the output file.

Example

Use the smallest of two source snippets.

/* Returns the output size (in bytes) of compiled source */
.function size_of_source(src)

    /* Preserve $ and @ */
    old_$_p = :$ \ old_$_v = $:
    old_@_p = :@ \ old_@_v = @:
    
    /* Move to a temporary page (-1) */
    :$ = -1
    
    /* Evaluate the source */
    eval(src)
    
    size_of_source = @ - old_@_v
    
    /* Clear all output data from temporary page */
    .clearpage -1
    
    /* Restore $ and @ */
    :$ = old_$_p \ $: = old_$_v
    :@ = old_@_p \ @: = old_@_v

.endfunction

/* Uses the smallest of two pieces of source code */
.function use_smallest(src_a, src_b)
    
    /* Get the size of both snippets */
    size_of_src_a = size_of_source(src_a)
    size_of_src_b = size_of_source(src_b)
    
    .if size_of_src_a <= size_of_src_b
        use_smallest = size_of_src_a
        eval(src_a)
    .else
        use_smallest = size_of_src_b
        eval(src_b)
    .endif

.endfunction

/* Uses "xor a" and displays 1: */
.echoln use_smallest("ld a,0", "xor a")