It was hard work 😀, but I found some mathematical functions in
A720:
NHSTUB(_log, 0xFFE3C8DC)
NHSTUB(_log10, 0xFFE3B820)
NHSTUB(_pow, 0xFFE3B990) - really huge!
and
NHSTUB(_sqrt, 0xFFE3DC44),
requires "STMFD SP!, {R4-R6,LR}" before call -
fixed
I lacked functions opendir,readdir,closedir 🙁 But there are functions - OpenFasrDir, ReadFastDir - it is not known how they work.
I hope to find other functions.
Current state:
NHSTUB(SleepTask, 0xFFC196d0)
NHSTUB(CreateTask, 0xFFC0BBC0)
NHSTUB(ExitTask, 0xFFC0BE50)
NHSTUB(AllocateMemory, 0xFFDD7DF4)
NHSTUB(ExecuteEventProcedure ,0xFFC0C27😎
NHSTUB(FreeMemory ,0xFFDD7DE0)
NHSTUB(GetCurrentTargetDistance ,0xFFCFDB3C)
NHSTUB(GetSystemTime ,0xFFDD7EFC)
NHSTUB(ints_disable ,0xFFC0057😎
NHSTUB(ints_enable ,0xFFC005A0)
NHSTUB(memcmp ,0xFFC0E8F0)
NHSTUB(memcpy ,0xFFC71BF4)
NHSTUB(memset ,0xFFE0E37C)
NHSTUB(Close ,0xFFC1502C)
NHSTUB(Open ,0xFFC15004)
NHSTUB(Read ,0xFFC0A44😎
NHSTUB(Write ,0xFFC150D😎
NHSTUB(Lseek ,0xFFC1516C)
NHSTUB(strcmp ,0xFFC0E88😎
NHSTUB(strcpy ,0xFFC0E834)
NHSTUB(strlen ,0xFFC0E8CC)
NHSTUB(TakeSemaphore ,0xFFC0BA5C)
NHSTUB(vsprintf, 0xFFC0E7B4) // first sub called in FADBGPrintf
NHSTUB(GetFocusLensSubjectDistance, 0xFFCFEF9C) // returns 0. What's wrong?
NHSTUB(GetZoomLensCurrentPoint, 0xFFD02FDC)
NHSTUB(GetZoomLensCurrentPosition, 0xFFD03B5C)
NHSTUB(RefreshPhysicalScreen, 0xFFD62184)
NHSTUB(GetPropertyCase, 0xFFC59c2c) // PT_GetPropertyCaseString
NHSTUB(SetPropertyCase, 0xFFC50CC😎 // PT_SetPropertyCaseString
NHSTUB(VbattGet, 0xFFC119A😎
NHSTUB(kbd_read_keys, 0xFFC130CC) // will be replaced in kbd.c
NHSTUB(kbd_p1_f, 0xFFC131D0)
NHSTUB(kbd_p1_f_cont, 0xFFC131DC)
NHSTUB(kbd_p2_f, 0xFFC12A1C)
NHSTUB(kbd_pwr_on, 0xFFC370E😎
NHSTUB(kbd_pwr_off, 0xFFC370C0)
NHSTUB(kbd_read_keys_r2, 0xFFC36B14)
NHSTUB(mkdir, 0xFFC153D0)
NHSTUB(GetParameterData, 0xFFD1C5B😎
NHSTUB(SetParameterData, 0xFFD1C52😎
NHSTUB(IsStrobeChargeCompleted, 0xFFC974E4)
NHSTUB(open, 0xFFC0A1B0)
NHSTUB(write, 0xFFC0A4A😎
NHSTUB(close, 0xFFC0A260)
NHSTUB(lseek, 0xFFC1516C) // = Lseek
NHSTUB(read, 0xFFC0A44😎 // = Read
NHSTUB(Fopen_Fut, 0xFFC149D0)
NHSTUB(Fwrite_Fut, 0xFFC14B10)
NHSTUB(Fclose_Fut, 0xFFC14a10)
NHSTUB(Fread_Fut, 0xFFC14ABC)
NHSTUB(Fseek_Fut, 0xFFC14BB0)
NHSTUB(Remove, 0xFFC15074)
NHSTUB(rename, 0xFFC15100)
NHSTUB(GetDrive_ClusterSize, 0xFFC3F4C4)
NHSTUB(GetDrive_TotalClusters, 0xFFC3F4F😎
NHSTUB(GetDrive_FreeClusters, 0xFFC3F564)
NHSTUB(LockMainPower , 0xFFC5BF6C)
NHSTUB(UnlockMainPower, 0xFFC5BEC0)
NHSTUB(GetCurrentAvValue, 0xFFCFFCA😎
NHSTUB(MoveFocusLensToDistance, 0xFFDA657😎
NHSTUB(MoveZoomLensWithPoint, 0xFFD03A8😎
NHSTUB(SetZoomActuatorSpeedPercent, 0xFFC0095😎 // null stub
NHSTUB(_log, 0xFFE3C8DC)
NHSTUB(_log10, 0xFFE3B820)
NHSTUB(_pow, 0xFFE3B990)
NHSTUB(_sqrt, 0xFFE3DC44)
NHSTUB(malloc, 0xFFC039DC)
NHSTUB(free, 0xFFC03AB0)
NHSTUB(FreeUncacheableMemory, 0xFFC1987C)
NHSTUB(AllocateUncacheableMemory, 0xFFC1984😎
NHSTUB(rand, 0xFFC0E9F😎
NHSTUB(srand, 0xFFC0E9EC)
NHSTUB(stat, 0xFFC1523😎
// dryos Test
NHSTUB(phySw_p1, 0xFFC131D0) // called from phySw
NHSTUB(phySw_p2, 0xFFC12A1C) // called when phySw_p1 returns 1
NHSTUB(NewTaskShell, 0xFFC596B0) // starts new shell on Console. GUI output?
NHSTUB(UIFS_WriteFirmInfoToFile, 0xFFD4A934) // should write 'A/FirmInfo.txt'
NHSTUB(dumpMemoryToFile, 0xFFC141Fa) // writes a portion of memory into a file (char* filename, 0, (void*) src, int length)
edit: state updated, currently missing:
isdigit isspace isalpha isupper
strncmp strchr strncpy strcat strrchr strtol strpbrk
time utime localtime
qsort
opendir readdir closedir rewinddir
Format of stat structure changed in DryOS:
struct stat
{
unsigned long st_dev; //?
unsigned long st_ino; //?
unsigned short st_mode; //?
short st_nlink; //?
short st_uid; //?
short st_gid; //?
unsigned long st_atime; //?
unsigned long st_mtime; //?
unsigned long st_ctime; //?
unsigned long st_size;
long st_blksize; //?
long st_blocks; //?
unsigned char st_attrib;
int reserved1; //
int reserved2; //
int reserved3; //
int reserved4; //
int reserved5; //
int reserved6; //
};
And also:
#define O_TRUNC 0x200
#define O_CREAT 0x100