fox32os/applications/okmpaint/start.asm

70 lines
2.6 KiB
NASM

opton
call Main
call end_current_task
DrawPixel:
mov r0, canvasWindow
call get_window_overlay_number
mov r2, r0
mov r5, r0
call get_mouse_position
call make_coordinates_relative_to_overlay
movz.8 r2, [size]
movz.8 r3, [size]
mov r4, [color]
call draw_filled_rectangle_to_overlay
ret
GetNextWindowEvent:
push r8
call get_next_window_event
mov r8, eventArgs
mov [r8+0], r0
mov [r8+4], r1
mov [r8+8], r2
mov [r8+12], r3
mov [r8+16], r4
mov [r8+20], r5
mov [r8+24], r6
mov [r8+28], r7
pop r8
ret
eventArgs: data.fill 0, 32
menuItemsRoot:
data.8 3 ; number of menus
data.32 menu_items_canvas_list data.32 menu_items_canvas_name ; pointer to menu list, pointer to menu name
data.32 menu_items_brush_list data.32 menu_items_brush_name ; pointer to menu list, pointer to menu name
data.32 menu_items_color_list data.32 menu_items_color_name ; pointer to menu list, pointer to menu name
menu_items_canvas_name:
data.8 6 data.strz "Canvas" ; text length, text, null-terminator
menu_items_brush_name:
data.8 5 data.strz "Brush" ; text length, text, null-terminator
menu_items_color_name:
data.8 5 data.strz "Color" ; text length, text, null-terminator
menu_items_canvas_list:
data.8 2 ; number of items
data.8 16 ; menu width (usually longest item + 2)
data.8 14 data.strz "Clear to Black" ; text length, text, null-terminator
data.8 14 data.strz "Clear to White" ; text length, text, null-terminator
menu_items_brush_list:
data.8 4 ; number of items
data.8 7 ; menu width (usually longest item + 2)
data.8 3 data.strz "2x2" ; text length, text, null-terminator
data.8 3 data.strz "4x4" ; text length, text, null-terminator
data.8 3 data.strz "8x8" ; text length, text, null-terminator
data.8 5 data.strz "16x16" ; text length, text, null-terminator
menu_items_color_list:
data.8 5 ; number of items
data.8 7 ; menu width (usually longest item + 2)
data.8 5 data.strz "Black" ; text length, text, null-terminator
data.8 5 data.strz "White" ; text length, text, null-terminator
data.8 3 data.strz "Red" ; text length, text, null-terminator
data.8 5 data.strz "Green" ; text length, text, null-terminator
data.8 4 data.strz "Blue" ; text length, text, null-terminator
#include "../../fox32rom/fox32rom.def"
#include "../../fox32os.def"