Magic Lantern Firmware Wiki
Advertisement

this is an attempt to document DryOS API.

these are 98-100% guess...


See also dryos.h interface, dialog.h, gui.h from Magic Lantern


addresses are given by default for 550D/1.0.8

RAM:0001E774 winsys_struct // mapped from 5d2 107

ROM:FF010DD4 ; void __fastcall DryosPanic(unsigned __int32 arg0, unsigned __int32 arg1)  // mapped from 5d2 107 and dryos.h
ROM:FF016040 sched_yield(3 args maybe) // mapped from 5d2 107

ROM:FF1D2A60 ; int __fastcall CreateMessageQueue(char *name, int size)
ROM:FF1D2B70 ; int __fastcall ReceiveMessageQueue(void *queue_handle, struct **event_addr, int wait)
struct event { // from dumper.c
  uint32_t  type; 
  uint32_t  param;  
  void *  obj; uint32_t            
  arg; // unknown meaning
};

// properties. see property.h
ROM:FF056E38 ; void __fastcall prop_request_change(unsigned int property, void *address, __int32 len)
ROM:FF0574A0 ; void __fastcall prop_register_slave(unsigned int *property_list, unsigned int count, void *(__fastcall *prop_handler)(), void *priv, void (__fastcall *token_handler)())
ROM:FF057418 ; void __fastcall prop_deliver(unsigned int prop, void *buf, int len, unsigned int mzb)
ROM:FF0575C0 ; void *__fastcall prop_cleanup(void *token, unsigned int property)
ROM:FF057654 ; void __fastcall prop_get_value(unsigned int property, void *addr, __int32 len) // mapped from 5d2 110 using gensig and finsig from CHDK!
ROM:FF09786C ; void __fastcall prop_request_icu_autopoweroff(int mode) // see dryos.h, #define EM_ALLOW 1, #define EM_PROHIBIT 2

// semaphores
ROM:FF069D10 ; struct semaphore *__fastcall CreateBinarySemaphore(const char *name, int initial_value) // 550d 108 and dryos.h
ROM:FF069E70 ; int __fastcall TakeSemaphore(struct semaphore *semaphore, int timeout_interval) // 550d 108 and dryos.h
ROM:FF069F58 ; int __fastcall give_semaphore(struct semaphore *semaphore) // 550d 108 and dryos.h

ROM:FF068178 ; void call(const char *name, ...) // mapped from 5d2 107 and dryos.h 
ROM:FF06A344 ; void __fastcall msleep(__int32 msec) // mapped from 5d2 107 and dryos.h
ROM:FF06A3F8 ; int __fastcall CreateTask(char *name, int priority, int stack_size_maybe, void *event_dispatch, int flags)
ROM:FF06E3F0 new_task_struct // 

ROM:FF016B8C get_current_task() // mapped from 5d2 107

ROM:FF1D85E4 ; void *__cdecl CreateStateObject(char *name, int zero, int *ValSubList, int TotInputs, int TotStates)

//File IO
ROM:FF1C6648 ; int __fastcall FIO_CreateFile(char *name)  //returns handle or -1 if error
ROM:FF1C693C ; int __fastcall FIO_WriteFile(int handle, void *start_addr, unsigned __int32 length)
ROM:FF1C69EC ; int __fastcall FIO_CloseFile(int handle)

// dialogs and windows
ROM:FF2B5EEC CreateDialogBox // (== ROM:FFA5499C dialog_create() in 5d2 107)
ROM:FF2B614C dialog_window_prepare() // mapped from 5d2 107
ROM:FF2B6154 ; void __fastcall dialog_resize(struct dialog *dialog, int w, int h, int unknown) // mapped from 5d2 107 and dialog.h
ROM:FF2B61F8 ; void __fastcall MoveAllDialogItem(struct dialog *dialog, int x, int y) // (ROM:FFA54CA4 dialog_move() in 5d2 107) and dialog.h
ROM:FF2B63D4 ; void __fastcall dialog_label_item(struct dialog *dialog, unsigned int id, const char *label, int len_maybe, int unknown)  // mapped from 5d2 107 and dialog.h
ROM:FF2B67F4 ; void __fastcall dialog_draw(struct dialog *dialog) // mapped from 5d2 107 and dialog.h
ROM:FF2B71B4 ; void __fastcall dialog_window_resize(struct dialog *dialog, int w, int h, int unknown) // mapped from 5d2 107 and dialog.h
ROM:FF2B7474 ; void __fastcall dialog_move_item(struct dialog *dialog, int x, int y, int index) // mapped from 5d2 107 and dialog.h
ROM:FF2B7564 ; void __fastcall dialog_set_origin_type(struct dialog *dialog, int type) // mapped from 5d2 107 and dialog.h
ROM:FF2B7744 ; void __fastcall dialog_window_draw(struct dialog *dialog) // mapped from 5d2 107 and dialog.h 

ROM:FF2CFCA0 winsys_take_semaphore // mapped from 5d2 107
ROM:FF2CFB18 winsys_struct_1e774_set_0x30 
ROM:FF2CFB28 winsys_struct_1e774_get_0x30

ROM:FF44F7CC ; int __fastcall memcpy(void *dest, void *src, int size)
ROM:FF44F8C0 ; int __fastcall bzero32(void *addr, int size)
ROM:FF44F97C ; int __fastcall hton32(int val, int *dest)

For CreateStateObject details, see 2.0.4_StateObjects

Advertisement