AngelsHolocaust 0 Report post Posted April 7, 2008 Hello everyone. Unfortunately, especially because of code merging, I couldn't do as much as I wanted to in the past month. So this release is again mainly a bug fix release without much new stuff. Hopefully in april... Whatsnew: ─════┤ v2.31.0954 DPMI32/WINDOWS/LINUX 06.04.08 ├═══════════════════════════─ [*] updated the Virtual Pascal command for [] in NDN.EXT [*] stringsx.(Upper|Lower)String were converted from shortstring to array and renamed to (Upper|Lower)Data {C} [-] fixed a bug in the VP 2.279 BIN.D32\VPC.BAT file which pointed to HX\BIN instead of only HX\ [-] W32 contray code didn't restore a window to maximized state if the window was minimized to the task bar [A] -> replaced TConsole.SetMinimized().OpenIconic() with ShowWindow() [+] NDN.HGL: enhanced the GRUB FILES line with a RegEx >#.*?menu.lst< [-] LNX: removed the SysUtils from the VP RTL math unit, since the executable wouldn't run because of this error: Inconsistency detected by ld.so: rtld.c: 1075: dl_main: Assertion `_rtld_local._ dl_rtld_map.l_libname' failed! -> added the define FINANCIAL_MATH which comments SyUtils and financial functions VIEWER [*] Several improvments to the infoline drawing: -> Current byte decimal display is now padded with 0 instead of - -> empty files show -/- instead of 0/0 as current position / filesize-1 (GPFault) [-] vmDump/Hex/Asm: crashed on switch to editor on empty files [A] -> fviewer.TFileViewer.HandleEvent().cmEditFile didn't check if the current file is empty [+] vmAsm: codepage is applied to the operands (strings in "") -> added keymap.XLatBuf() usage to fviewer.TFileViewer.Draw().vmAsm [-] vmText: "tab = CRLF" and missing tabs bug in non wrapped mode (Goplat) [A] -> fviewer.TFileViewer.MakeLines().vmText used BufMaxSize to limit the line length; in case of small files (as the test file) this was bad; now using MaxLongInt [-] crash when opening files which appeared to be a FIDO .pkt file [NC] -> F:\ndn\source\!viewcrash.rar, better header detection in pktview.IsPktFile() according to FTS-0001 CLOCK [-] day of week string was not correct (Rugxulo) [A] -> timedate.GetWeekdayString() now uses the absolute string length instead of dividing by 7 and checking for 2 and 3 [-] In 12-hour mode, when the time is 12 AM or 12 PM, the clock showed "00" as the hour instead of "12" (Goplat) -> gauges.TClockView.FormatTimeStr() didn't handle AM/PM correctly; merged with timedate.FormatTimeStr() to have a single point for time string generation FILE PANEL [-] AM/PM file time was incorrect: AM showed 12:?? as 00:?? (Goplat) [C] -> timedate.MakeDateFull() incorrectly showed the AM 12:?? as 00:?? HISTORIES [-] bad history entries crashed NDN [DN] -> histries.FreeLastUnmarked().IsThat() didn't check pointers for nil CALCULATOR [+] added following functions: {C} int, hyp/hypot, sgn, sech, csch, arcsech, arccsch, log2, log10, min/max, dfact [*] improved calc.Log(), now used by lg/log2/10 [+] Evaluate button writes the result in selected format {C} result is copied to clipboard with correct suffix -> added calc.ConvertValueToString(), which formats the selected result and returns it's string -> used in calc.TIndicator.HandleEvent().cmCopyClip and calc.TCalcLine.SetValues() [+] added suffixes: KMGTPE {C} -> modified calc.GetValue() [+] added possibility to convert the result to any numeric system with base between 2 and 36 {C} -> modified resources, calc.TIndicator.Draw(), calc.InsertCalc() [-] 7^7 = 823543 was 823543.000000000001 [NC] {C} (Slava) -> bug in calc.Step() [-] 0-(0-(0-(0-(0-(0-(0-0)))))) = 0 (was NAN) [A] {C} (Slava) 1+(5%4) = 2 -> calc.?() [-] E+E = 2*E = 2*Exp(0), $E+1 = $F [NC] {C} (Slava) -> bug in proc calc.TestSignE() [-] long binary values now displayed correctly [A] {C} (Slava) -> calc.TIndicator.Draw().Wrt() checks the line length [*] improved and extended the error strings: enum + "x = 0" [+] added LnGamma(), Gamma() (slavik) / sinh(), tanh(), cosh(), arccsc(), arcosh(), arcoth() arsinh(), artanh(), csc(), replaced ctan() with cot(), added coth(), renamed grad() to deg(), added gonrad(), radgon(), gondeg(), deggon(), a!! [*] rearranged the order for the operation name comparison to long->short, which makes comparison f.ex. for LOG easier because there must be no check for LOG2 and LOG10 -> calc.DoEval() [-] the deg() function actually computed rad() and vice versa [DNC] -> exchanged both functions names and renamed them to degrad()/raddeg() [-] 2^59/61/62/63 returned strange results (Eugeniusz Kosek) [NOC] -> calc.Step() was not able to handle these large values correctly, now uses math.Power() in every case [*] 1+-1 gives syntax error (Vladimir Bochkarev) [NOC] -> improved the handling for single character operators like + or - in calc.DoEval(), now it's possible to combine all operators: good: 1+-1, 1-!1, 1*~1, 1+2!, ... bad : 1+--1, 1-!!1, 1*~~1, 1+2!!, ... [*] removed the constant (de)allocation of the working string for each evaluation run -> calc.Evalue() doesn't allocate a string anymore but uses a local var EDITOR [-] clipboard appending with [CTRL-SHIFT-DEL] locked up the window drawing [A] -> microed6.EditorHandleEvent().cmClear incorrectly exited the function [*] handles insert/overwrite modes in keyword completion -> added overwrite mode to namecomp.KeyWordCompletion(), used in micro_3.EdCompleteKeyWord() FILE COPY/MOVE/OPEN/CREATE/DELETE [-] Delete: couldn't stop counting directories/files [A] -> added CalcCancel() and abort checks to eraser.EraseFiles().CalcSize() [-] Delete: file/dir counting crashed on too long directories [A] -> added check and directory name popup to eraser.EraseFiles().CalcSize() [*] Delete: improved the speed of eraser.EraseFiles().CalcCancel() by setting the event check timer to 1/2 second TURBOVISION: VIEWS/DIALOGS/MENUS/OBJECTS/MESSAGES [+] Radio buttons, Check boxes: copy current string to clipboard -> added cm(Windows)Copy, kbCtrlIns handling to dialogs.TCluster.HandleEvent() ASM/DECODER [*] moved the disassembler files to a new subdirectory called "disasm" [+] new opcodes and new opcode name generation (makelist) {C/A} CDQE CLGI CMPXCHG16B CQO DMINT FFREEP FISTTP FNDISI FNENI FRSTPM GETSEC INVLPGA JMPE JRCXZ MASKMOVDQU MASKMOVQ MONITOR MOVSHDUP MOVSXD MOVZXD MWAIT RDTSCP SAL SKINIT STGI SWAPGS VMCALL VMLAUNCH VMLOAD VMMCALL VMRESUME VMRUN VMSAVE VMXOFF XGETBV XSETBV "in EAX, DX ($ED)" "fisttp [r32] ($DB 08..0F)" "fstp8 ($DF D0..D7)" "fstp9 ($DF D8..DF)" "fxch4 ($DD C8..CF)" MOVHLPS MOVLHPS -> modified cfg\makefile.dos to support the new opcode generation [+] 64-Bit decoding {C} -> fviewer.TFileViewer.DecoderBase32 type was changed from bool to byte and corresponding code was modified accordingly [-] 'mov e?x,[cdt]r?' byte #3 (register byte) must be >= $C0 (Slavka) [A] -> modified decoder._Other() [-] cmovcc operands were bad (Slavik) {C} -> fixed operand handling in decoder.Scancode()._Group1() [-] 8B1485... mov EDX, [EBP+EAX*4] -> mov EDX, [EAX*4 + $wwzzyyxx] (Slavik) {C} 66817EFC.... cmp dword [ESI-4],... -> cmp dword ptr [BP-4],... -> decoder.Scancode().Mod_RM() was fixed SCREEN/VIDEOMODES [-] the pre-NDN cursor was not correctly saved and restored [AV] - D32/DOS: cursor remains invisible after exit (Rugxulo) - W32 cursor shape not preserved/restored correctly (BorisK) -> drivers.TCursorInfo saved Shape1/2 as Integer in an union together with a Longint Shape to access both of the values which couldn't work, modified these to BYTE/BYTE and SMALLWORD and modified code according to it -> W32: vpsysw32.SysTV(S|G)etCurType() didn't correctly convert between the Windows<->Dos cursor information, now this is quite accurate -> D32: now using vpsysd32.SysTV(S|G)etCurType() -> added video.InitVideo().SaveCursor() Download: http://ndn.muxe.com/download/ Have fun, Stefan / AH Share this post Link to post Share on other sites
FloX 0 Report post Posted April 26, 2008 Hello everyone. Unfortunately, especially because of code merging, I couldn't do as much as I wanted to in the past month. So this release is again mainly a bug fix release without much new stuff. Hopefully in april... This is also very important. Hunting a big bug in my last project is the reason why I haven't developed anything in the last 2 years... so it is very good, that you have the motivation :-) Share this post Link to post Share on other sites