
(PS g que la 0.62)
> 350 ROM_CALL Done ? Debug Note Note: An * means partial debug. (Well the function in some circunstance works) HEAP : HeapAlloc + * Heap functions have some difference: first you can alloc up to 220 K, which is a good point, no ? But contrary to AMS, if you are in lack of Handle (in the table), it won't try to increase the table. HeapAllocESTACK + * = HeapAlloc since EStack is fixed HeapAllocPtr + * HeapAllocThrow + HeapAllocHigh + * HeapAllocHighThrow + HeapRealloc + * HeapFree + * HeapFreeIndir + HeapFreePtr + * HeapCompress + * HeapMoveHigh + HeapGetLock + * HeapLock + * HLock + * HeapPtrToHandle + * HeapAvail + * Can be > 65520 ! HeapDeref + * HeapEnd + * HeapGetHandle + * Contrary to AMS, you'll have 2000 handles. It won't try to augment the number of handles in case of an error. HeapMax + * HeapSize + * FreeHandles + * KEYS : kbhit + * GKeyIn + * GKeyDown + GKeyFlush + * pushkey + * ngetchx + * WordInList + * QModeKey + QSysKey + OSInitBetweenKeyDelay + * OSInitKeyInitDelay + * OSEnableBreak + * OSDisableBreak + * OSCheckBreak + * OSClearBreak + * OSdqueue + * OSenqueue + * OSqhead + * OSqinquire + * OSqclear + * GRAPH : DrawStr + * DrawChar + * DrawLine + * Only attribute A_REVERSE, A_NORMAL and A_XOR are supported ! (=> All lines function have the same problem !) It is slower than AMS for Horizontal line (But faster for other). ToDo: Speed Up for Horizontal LINE !!!!! ScrRectFill + * ScreenClear + * DrawPix + * MoveTo + * LineTo + * FontGetSys + * FontSetSys + * SetCurAttr + * SetCurClip + * PortSet + * It allows even non 239x127 screen (Just like AMS !) PortRestore + * ScrRect + * FontCharWidth + * DrawStrWidth + * ScrRectOverlap + * QScrRectOverlap + * ScrRectScroll + * The implementation is far from perfect... ScrRectShift + DrawIcon + * Contrary to AMS, Pedrom doesn't use PutPixel for this task. Shade attribute may be wrong. DrawFkey + FillTriangle + * FillLines2 + * DrawClipPix + * DrawClipLine + * DrawClipEllipse + * DrawMultiLines + * DrawClipRect + * DrawClipChar + * BitmapInit + * BitmapSize + * BitmapPut + * It is more or less, Extgraph's putsprite. It doesn't support clipping yet. BitmapGet + ERROR/JUMP: ER_catch + * ER_success + * ER_throw + * ER_throwVar + * longjmp + setjmp + MEMORY / STRINGS : memchr + memcmp + * memcpy + * memmove + * memset + * _memset + * strlen + * strcat + * strcpy + * strchr + strcmp + * strncat + strncmp + * strncpy + * strcspn + strpbrk + strrchr + strspn + strstr + strerror + cmpstri + sprintf + * vcbprintf + * Tigcc's hack should work fine. ST : ST_eraseHelp + * ST_batt + * ST_busy + * ST_folder + * ST_helpMsg + * ST_refDsp + * ST_precision + * Do nothing since this feature is not-available ST_angle + * " ST_graph + * " ST_readOnly + * " ST_stack + * " MISC : idle + * off + * OSContrastUp + * OSContrastDn + * OSSetSR + * NeedStack + * HToESI + * NoCallBack + QSysProtected + OSReset + * cmd_disphome + Does just a ScreenClear. Maybe I will change this. EX_patch + * VAT : FolderCur + * FolderGetCur + * AddSymToFolder + FindSymInFolder + FolderAdd + * FolderCount + * FolderDel / FolderClear + * FolderFind + FolderOp + * FolderRename + HSymDel + * Contrary to AMS, this function can't delete folders. HSYMtoName + * SymAdd + * SymAddMain + * SymAddTwin + * SymDel + * SymDelTwin + * SymMove + * FolderCurTemp + FolderAddTemp + FolderDelTemp + FolderDelAllTemp + TempFolderName + SymFindFirst + * Only 0, 1 & 2 flag works (Well, the main flags) SymFindNext + * SymFindPrev + * SymFindFolderName + SymFindPtr + * SymFindMain + * SymFind + * SymFindHome + ValidateSymName + * SymSysVar + * CheckSysFunc + * CheckReservedName + * ResetSymFlags + CheckCurrent + MakeHSym + * DerefSym + * SymCmp + * SymCpy + SymCpy0 + StrToTokN + * TokToStrN + * IsMainFolderStr + * FolderFind + VarStore + * STOF_ELEMENT is not supported VarRecall + The flag is not used VarCreateFolderPopup + TIMERS : OSFreeTimer + * OSTimerCurrentVal + * OSTimerExpired + * OSTimerRestart + * OSRegisterTimer + * OSVFreeTimer + * OSVRegisterTimer + * ARCHIVE : EM_abandon + * It will free the handle from the table, but if you call it directly, and after do a reset, your file won't be destroyed ! EM_blockVerifyErase + * EM_findEmptySlot + * It doesn't modify the Flash Rom contrary to AMS EM_GC + * It doesn't display any dialog box / It doesn't use a garbesh sector since I think it is a very bad thing : you use this sector too much contrary to others ! So GC uses the RAM for temporary storage. It is sure, but you may don't have enought RAM... EM_survey + * Only the 3 first args work. EM_write + * Does nothing if you call it directly without disabling the Flash Software protection. FL_write + * Does nothing if you call it directly without disabling the Flash Software protection. EM_moveSymFromExtMem + * EM_moveSymToExtMem + * EM_twinSymFromExtMem + * Twin symbols doesn't work like AMS. It works like unarchived Libraries for Kernel programs (ie it uses the COMPAT field to store the old handle). Don't cry : it should be tranparent for your program. FL_download + * As much as I can : I can't test it on Vti. AB_prodid + * AB_prodname + * FL_getVerNum + * AB_serno + * It takes only the first 5 bytes of the serial number (I don't know how to access the last 2). LINK : OSCheckSilentLink + * The implementation of these 2 functions are quite different from AMS. OSLinkCmd + * " LIO_RecvData + * LIO_SendData + * OSLinkOpen + * OSLinkClose + * OSLinkReset + * OSReadLinkBlock + * OSWriteLinkBlock + * OSLinkTxQueueInquire + * OSLinkTxQueueActive + * CheckLinkLockFlag + cmd_sendcalc + * cmd_sendchat + * cmd_sendchat == cmd_sendcalc ! (Warning for 92 owners) sendcalc + * cmd_getcalc + * getcalc + * LONG : _ds16u16 + * I hope there aren't any bugs : theses functions are quite complicated. _ms16u16 + * " _du16u16 + * " _mu16u16 + * " _ds32s32 + * " _ms32s32 + * " _du32u32 + * " _mu32u32 + * " FLOAT : Pedrom floating point functions are 15% slower than AMS in general (Ti has worked a lot for those functions). A little bit more precise nevertheless. For my defense, I just want to recall that I don't have passed many times to implement them. The used algorithms are VERY basics. As a consequence, it is very easy to debug it ;) NOTE: Functions will never create negative Zeros. bcdadd + * bcdbcd + * TODO: Really use long arg (Now it may have some problems if abs(number)>655350) bcdsub + * bcdcmp + bcddiv + * bcdlong + * Some problems may happen if the number is too big. bcdmul + * bcdneg + ceil + fabs + I hope I haven't exchanged ceil & floor floor + " fmod + I think it is wrong for negative values (To check) acos + asin + atan + itrig trig sincos acosh + asinh + atanh + cos + sin + tan + cosh + sinh + tanh + log10 + exp + log + pow + sqrt + float_class + frexp10 + fpisanint + init_float + Does nothing is_float_infinity + is_float_negative_zero + is_float_positive_zero + is_float_signed_infinity+ is_float_transfinite + is_float_unsigned_inf_or_nan+ is_float_unsigned_zero + is_nan + round12 + round14 + Does not round exponent. round12_err + WINDOWS : All windows have a duplicate screen. You can not disable it. All functions will draw in it, and if the window is visible will draw on the screen. As a concequence, contrary to AMS you may have 2 windows activited on the screen if they are no overlapping. They also set up the current CURSOR location which is used by the Command Shell, so using a Window Function will change the position of the Shell Command. FirstWindow + DeskTop + ScrToHome + ScrToWin + MakeWinRect + RectWinToWin + RectWinToScr + WinOpen + * The window look is quite different from AMS ! WinReOpen TODO WinClose + * WinActivate + * WinDesactivate + WinBegin + * WinEnd + WinDupStat + WinBackupToScr + * WinHide + WinAttr + * WinBackground + WinFont + * WinGetCursor + WinHeight + WinHome + * WinMoveCursor + WinMoveRel + WinMoveTo + WinWidth + DrawStaticButton + Button have a problem of clipping. (Text is not clipped). DrawWinBorder TODO WinBitmapGet + WinBitmapPut + See BitmapPut WinBitmapSize + WinChar + * Contrary of AMS, in TTY mode, if the cursor arrived at the upper-right of the client area of the window, it will scroll the client area to display the next char ! WinCharXY + WinStr + * WinStrXY + * WinClr + * WinEllipse + WinFill + WinFillTriangle + WinFillLines2 + WinLine + WinLineNC + WinLineRel + WinLineTo + WinPixGet + WinPixSet + WinRect + WinScrollV + * WinScrollH + ESTACK : top_estack + * The EStack has a fixed size. check_estack_size + * reset_control_flags + Does nothing until I find some usefull flag push_quantum + * push_quantum_pair + push_between + delete_between + deleted_between + assign_between + min_quantum + push_END_TAG + * push_LIST_TAG + push_Float + No round14 done next_expression_index + * Tag: $BC -> $F9 will throw an error. push_expr_quantum + push_expr2_quantum + delete_expression + deleted_expression + move_between_to_top + moved_between_to_top + HS_popEstack + * remaining_element_count + estack_to_short + estack_to_ushort + estack_number_to_Float + Integer/Fraction will thrown an error GetValue + Thrown values may be wrong NG_tokenize + It depends on push_parse_text TokenizeSymName + System flags and error not implemented push_parse_text + * '<' ,'>' ... may have a false priority (according to +/-) VAR a-z are not pushed in a single tag way. Special funcs ('log', 'sin') are pushed just like user func. Numbers are always pushed as Float. Only +-*/,{"( are valid operators. "2-" is valid (it shouldn't). "2x" is pushed as 2, then x (It doesn't push '*'). 3.3.3 is pushed like 3.3, then .3 so it returns .3. "+2" is interpreted as "ans + 2" where ans is an internal value (Result of last calcul in FReg1) NG_approxESI + * Can not return symbolic arg. NG_graphESI + * handle is a useless arg NG_rationalESI + * It does like approxESI NG_execute + * Theses 4 functions are equal NG_RPNToText + * Needs display_statement. Extra args are not used. display_statements + * Works only with BCD, UserFunc, +-*/^, String, var. Extra args are not used. Parse1DExpr + * " Same function as display_statement. Extra args are not used. Parse2DExpr Parse2DMultiExpr Print2DExpr Parms2D push_string + Needed by tictex. Strange very strange (push_ANSI_string ?). Needs Parse1DExpr. EX_getArg + EX_getBCD + EX_stoBCD + POPUP : PopUp's implementation are not perfect, even if it should work well : First the witdh of the window is fixed (and the calculated height is also fixed !). And you have some leaks of memory when using Sub-Dialogs. PopupNew + * PopupAddText + * PopupDo + * PopupClear + PopupText + MENU : MenuHandle == MenuExecHandle ! MenuNew + * Menu doesn't work like original. I hope it will always work fine... Like PopUp windows size are fixed, not calculated. MenuBegin + * MenuOn + MenuEnd + * MenuAddIcon + MenuAddText + * MenuKey + * MenuSubStat + MenuTopStat + MenuUpdate + MenuCheck QMenuTopSelect DIALOG : ERD_dialog + * ERD_process + * =ERD_dialog DlgMessage + * Buttons are not available / Window size does not change. VarOpen VarNew VarSaveAs DialogNew DialogAdd DialogDo EVENT : CB_fetchTEXT + CB_replaceTEXT + EV_registerMenu + EV_captureEvents + EV_clearPasteString + EV_centralDispatcher + EV_CentralDispatcher will reset the calc ! EV_getSplitRect + there is not Side EV_notifySwitchGraph + there is not Side EV_switch + there is not Side EV_paintWindows + Rely on EV_paintOneWindow EV_paintOneWindow + EV_sendEvent + EV_sendEventSide + = EV_sendEvent since there is not Side EV_sendString + EV_startTask + EV_startSide + EV_startTask + EV_getc + EV_eventLoop + EV_defaultHandler + Many special KEY_PRESS may thown a 'romcall unavailable' error (VarLink, Catalog, Char, ... since the respective functions are not yet implemented. Todo :)) XR_stringPtr + As AMS, it is very internal. You may not able to use it by yourself. HelpKeys + A little bit different from AMS MODE : Very simple since Mode options are not available MO_currentOptions + MO_defaults + MO_digestOptions + MO_isMultigraphTask + MO_notifyModeChange + MO_modeDialog + MO_sendQuit + HOME : HomeExecute TODO ! HomePushEStack MD5 : Taken from Aladdin Enterprises MD5Init + MD5Update + MD5Final + MD5Done + CERT : copen + copensub + ceof + cfindfield + cgetc + cgetflen + cgetfnl + cgetnl + cgetsl + ctell + cwrite + cread + cputns + cputnl + cputhdr +
Ozzonn
a écrit : (je suis plutot du genre a faire mon programme avec un editeur hex)