/* draw a point with a given 8bit colour  */
arm_fsm_rt_t arm_2dp_c8bit_draw_point(arm_2d_op_drw_pt_t *ptOP, const arm_2d_tile_t *ptTarget, const arm_2d_location_t tLocation, uint_fast8_t chColour)
/* draw a point with a given 8bit colour  */
arm_fsm_rt_t arm_2dp_c8bit_draw_point(arm_2d_op_drw_pt_t *ptOP, const arm_2d_tile_t *ptTarget, const arm_2d_location_t tLocation, uint_fast8_t chColour)
{
    assert(NULL != ptTarget);
    ARM_2D_IMPL(arm_2d_op_drw_pt_t, ptOP);
    if (!__arm_2d_op_acquire((arm_2d_op_core_t *)ptThis)) {
        return arm_fsm_rt_on_going;
    }
    arm_2d_region_t tPointRegion = {
        .tLocation = tLocation,
        .tSize = {1,1},
    };
    OP_CORE.ptOp = &ARM_2D_OP_DRAW_POINT_C8BIT;
    OP_CORE.Preference.u2ACCMethods = ARM_2D_PREF_ACC_SW_ONLY;
    this.Target.ptTile = ptTarget;
    this.Target.ptRegion = &tPointRegion;
    this.chColour = chColour;
    return __arm_2d_op_invoke((arm_2d_op_core_t *)ptThis);
}