Jump to content
Muxe Inc Forums
Sign in to follow this  
AngelsHolocaust

New Beta: 2.31.0954

Recommended Posts

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
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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×