Jump to content
Muxe Inc Forums

AngelsHolocaust

Members
  • Content count

    651
  • Joined

  • Last visited

Posts posted by AngelsHolocaust


  1. Hi!

     

    This is it, my 5 year anniversary release. Unbelievable!

    With more than 2 months since the last release, sorry. :)

     

    I talked about something big the last time. There were a few things on my list

    that would have fit into this category:

    +2GB file support

    Plugins

    Better Linux X-Server support

     

    Well, I started off with working on the X-Server thing, and I got quite good results.

    Of course, a lot of new problems popped up: suddenly some terminals stop sending

    keypress/release events when the mouse cursor enters the window.

    I have not been able yet to solve this (probably just a focus thingie?) without grabbing

    the keyboard - maybe this will remain as final solution

    But at least NDN doesn't crash anymore and should be quite usable under X now.

    Please, look into the online help in the supported operating systems topic for more information.

     

    But, while working on this, I found out that there's a Linux emulation layer (Linuxulator)

    built into FreeBSD (and other BSDs...), which was said to be quite complete.

    Of course, I could not resist and started working on making NDN run in FreeBSD.

    It took me several WEEKS, just to find out that NDN uses many

    Linux calls (ioctls) are not supported (yet?).

    I found out that the VP program PE2ELF was not correctly working and

    started to rewrite it (the source code can be found on the download page and needs

    to be copied over the existing VP installation...).

    With some changes to my LNX RTL (FreeBSD destroys some registers which it shouldn't...)

    at least simple VP LNX programs now run on the FreeBSD Linuxulator.

    Last but not least, the ELF executables are now more compatible to all the Linux tools

    like readelf or file.

     

    Don't know if that matters to anyone, but it does matter to me. :)

     

    There are some little bug fixes and improvments besides the above stuff.

    Some issues on my todo list simply are no easy task anymore which can be solved

    within a few hours or days. :)

    But read for yourself down below.

     

    I hope I will be able to continue the exciting work on NDN as long as possible.

    And I hope that all of you will keep on supporting me and NDN like in the past.

     

    Thank you to the people who contributed code, bug reports or money.

    Thank you to all users and supporters!

     

    On to the next 5 years!

     

    ─════┤ v2.31.1478 DPMI32/WINDOWS/LINUX 11.08.08 ├═══════════════════════════─
    [+] NDN.HGL: added *.xdd to the XML highlight data
                  improved the ASM data (Slavik)
    [*] Russian help and language files updated (Slavik - kusla@newmail.ru)
    [*] Included the HX DOS-Extender to the VP dir tree (unusable, no LE/LX support);
         added a new subdirectory into VP/D32.BIN/: STUBS;
         this directory now contains all dos extender stubs tested with NDN
    [+] added *.MBS/*README*/MANIFEST (Text) to highlight groups and syntax higlighting
    [+] LNX: improved the .PAS extension handling for VP
    
    EDITOR
    [-] Toggle block mode while marking with mouse via [ALT] or the
         [RIGHT MOUSE BUTTON] didn't use the selected block mode in the following
         block operations [A]
         -> added microed.TFileEditor.VertBlockTemp for temporary block mode
            override, used in microed7.(Editor|InfoLine)Draw() and micro_3.EdHandleMouse()
    [-] on startup, trying to open non-existing file with set bookmarks crashed [A]
         -> moved bookmark init code from microed2.EditWindowLoad() into
            microed.TFileEditor.Awaken()
    
    VIRTUAL FILE SYSTEMS (VFS)
    [*] W32 NETW: increased the amount of network resources that can be retrieved
         -> modified network.GetResources().EnumResources().Buffer
         -> this was only added since it was easy to do, the network vfs needs to be
            rewritten
    [-] FTP: the previous directory wasn't restored after startup [A]
         -> vfs_ftp.TFTPConnected.Load() restores the previous directory
    [-] FTP: edited files were restored to current directory and not to their real
         source directory, f.ex. after a directory change [A]
         -> vfs_ftp.ftp_StoreFile() now correctly uses the source directory of files
    
    FILE COPY/MOVE/OPEN/CREATE/DELETE
    [-] LNX Copy/Move: Fixed a div by 0 crash on link files [A]
         -> filecopy.FilesCopy().CalcPercent() now uses advance0.Percent
    [-] Copy/Move: "directory preserve" option didn't work when copying files;
         result: doubled drive letter, c:\x\c:\src\file.ext (Eugeniusz Kosek) [X]
         -> filecopy.FilesCopy().CopyFile() was missing an else in the file name
            creation
         -> filecopy.FilesCopy().MakeDirectories() didn't precreate the paths
            when copying files, only those of directories
    
    FILE PANEL
    [*] improved the directory/panel reread code, fixing following issues:
         - all drives were reread after copying/moving/deleting/saving [DNC]
           -> added vfs_driv.TDrive.Contains() which let's the drive check
              whether it should be reread or not, used in
              flpanelx.TFilePanelRoot.CommandHandle()._DoRereadDir()
           -> Contains was implemented in vfs_(driv|find|ftp)
           -> added microed.FileChanged() to tmpfview.TTmpFView.StoreTemporaryFile()
         - drives were reread 2 times on certain operations, commands were sent to
           Desktop + Application, because the Application contains Desktop [DNOC]
           -> dnapp.Global(Message|MessageL|Event)() now don't send the commands
              to the Desktop in the Application group
           -> dnapp.GlobalMessageL() now uses dnapp.GlobalMessage() internally
         - LNX: checking for virtual drives when rereading drive data [DNC]
           -> flpanelx.TFilePanelRoot.CommandHandle()._DoRereadDir()
              uses linux compatible drive comparison
         - drive space was not updated when visible on the driveline [NC]
           -> flpanelx.TFilePanelRoot.CommandHandle()._DoRereadDir()
              also redraws the DriveLine object
    
    W32/D32/LNX/OS2/VIRTUAL PASCAL COMPATIBILITIES:
    [-] LNX: edit os environment didn't work [V]
         -> vpsyslnx.SysLowInitPreTLS() didn't init Environment correctly
    [-] LNX X: fixed following terminal issues:
         - crashed on x11.Init() because of using a bad window id [A]
           -> added x11.GetWindowId() which finds the current NDN window
              by using the pid
         - crash because of a bad implementation of the X(Un)LockDisplay() [Y]
           -> using an internal sempahore to lock access to the X functions in x11
         * added a list of terminal emulators and issues to the online help
    [*] LNX/FreeBSD: NDN starts but crashes in Linuxulator (Linux emulation mode)
         * modified PE2ELF
           -> lowercased uses names since VP/LNX has problems with this
           -> now writing program headers before the section headers, this finally
              gives a fully Linux compatible ELF file, which now also works correctly
              with the Linux ELF tools (ldd, file, ...)
           -> the program header itself is written to the program headers
           -> made the unmaintainable source code maintainable
         * vpsyslnx.SysCtrlCreateThread(): Parent.edx after clone() was destroyed
           and thus the RTL didn't even start
         * vpsyslnx.? on exit somewhere the fs (Thread) register was destroyed,
           resulting in an illegal instruction exception
         * less complex programs (Hello world!, simple thread tests) now work
    [-] LNX: vpsyslnx.SysCtrlSleep() checked for EAGAIN when interrupted by signales,
              now uses EINTR
    [-] LNX: vpsyslnx.SysCtrlCreateThread() now uses linux.LnxClone()
    
    ARCHIVES
    [-] 7Zip: fixed the archive list parsing when the compressed size information
         is missing [A] (Eugeniusz Kosek)
         -> archiver.ReadArcList() writes a fake 0 in case of a missing number
    
    HEADER VIEWER
    [*] ELF: completed the header data (e_ident)
         -> added extra inputlines to the resources, updated viewhead.tELFHdr
            and corresponding code
    
    CALCULATOR
    [+] Added pow() operation
         -> modified calc.DoEval() by adding pow() parsing and put the
            parenthesis scanning code into a function
    [*] Renamed "Bracket" to "Parenthesis"
    [+] Added floor() and ceil() operations {C}
         -> added 64-Bit floor() and ceil() operations to mathx, as the VP math
            ones are 32-Bit: ceil64() and floor64()
         -> replaced direct usage of status control values with constants:
            ceil64(), floor64(), Int64Init()

     

    Download: http://ndn.muxe.com/download/

     

    All the best,

    Stefan / AH


  2. Hi Dan,

     

    this is really strange...

    And I don't know what else to do.

     

    Maybe you might want to try another distro.

     

    I don't have a clue to what might be wrong here.

     

    All I can do is to try to recreate your installation path in ~/ndndir/

    and try to execute NDN...

     

    Let's see...

     

    EDIT: not reproducable even with your installation paths...

     

    Stefan / AH


  3. Hi again, finally. :)

     

    First of all, I have successfully fixed the crash problems

    I have also tested this in many terminals, here are my findings:

     

      Tested the event code with following terminal emulators:
      gome-terminal: either keyboard or shift keys work, multiple focus events
      rxvt         : @ characters appear at cursor position
      eterm        : @ characters appear at cursor position
      aterm        : @ characters appear at cursor position
      wterm        : @ characters appear at cursor position
      xterm        : ok
      konsole      : ok
      mrxvt        : @+LF/CR characters appear at cursor position
      mlterm       : @% characters appear at cursor position

     

    Strange that keyboard fully works in all terminals except the gnome-terminal.

    Btw, I tested these all on Ubuntu 6.06 today.

     

    The remaining @... problems probably have to do with unicode/utf encoding and

    can now be worked on as the crash was the main

    reason that has kept me from continuing with more courage on the LNX port.

     

    I successfully tested the few terminals existing on the Kubuntu Live-CDs yesterday

    (possibly the non working keys like alt still don't work...)

     

    Here is the archive for everyone to test:

    http://www.bnhof.de/~ho1459/temp/lnx_x.exe

     

    Btw, you don't need sudo in X, but then ndn should have the group x

    permission: -rwxr-x--- else NDN won't be able to start.

     

    Ok, this is all for now,

    I would like to have some feedback soon. :)

     

    Stefan / AH


  4. Hi again.

     

    I have only one suggestion, since the listing seems absolutely ok:

    try "chmod 777 ./ndn" and run ndn again.

     

    Additionally, what happens if you type in "./ndn.des", which is no executable at all?

    Maybe the same error?

     

    Btw, as I worked on the X window crashes yesterday, I found that NDN does work without sudo.

    But only if the file has the group exec bit set: -rwxr-xr--

     

    I finally have fixed the crashes, I only have some problems getting the focus on all the different

    terminal implementations in X. I hope to be able to upload a newer version today.

     

    Bye,

    Stefan / AH


  5. Hi Dan,

     

    it's already on the list:

    [*] file attributes (Dandv)

    1. Allow entering only part of the time and zero the missing parts. E.g "18:03" for "18:03:00", "14" for "14:00:00"

    2. Same for date, but only use the current year: "15.04" instead of "15.04.2005", but "15" is invalid.

    3. Allow 2-digit years: "1.1.03" now produces 1.1.2051.

    4AH. multiple files: insert date/time of the current "selected" file

    5AH. multiple files: empty inputline means to use the current data of the file

     

    Quite some things to add to the code...

     

    Stefan / AH


  6. Hi Hunter, nice to see you here.

     

    First of all, I have finally located the X crash problem and am working on a fix

    which should even solve all the remaining issues in X.

     

    Now I need to find an universal method of getting the window id of the x console window.

    This is vital so I can access the X functions (keyboard and window stuff).

    But, as you might have guessed, this is not trivial.

    I hope to have this done at the end of today.

     

    Using the WINDOWID env var seems not to work flawlessly, and I know that some consoles

    behave strangely when using the sudo to start NDN. More on this later when I did more

    testing.

     

    Btw, using the Ubuntu 6.06 fonts in Kubuntu works fine.

    This means full DOS compatible drawing in TTY mode.

     

    Sudo:

    Problem is that there's no way to read (f.ex.) the screen content without access rights.

    Same with the keyboard handling.

    Of course you can make a special user group to let NDN access the /dev/vcsa files for example.

     

    Linux is not programmer friendly at all, at least not for doing complex programs like NDN.

     

    Ok, I will post again when I made some progress.

     

    Thanks for your support,

    Stefan / AH


  7. Hi Marco!

     

    Some opinions about various topics in this thread:

    Always good to hear!

     

    About FPC usage:

    ...

    Even if you stick to VP, getting some FPC testing done might be useful. It improves FPC, and allows to investigate the problems. Specially since its "Vision" part is copyright free. FPC on Linux/windows should generally be way better than VP, except maybe debugging on windows.

     

    One of the reasons that the FPC port is in decline is exactly this, when the hordes moved on, Dos usage ground to a halt, and the few remaining don't want to invest anytime anymore, and keep patching old stuff (TP,VP) indefinitely. Which is a pity. At least try to experiment and file bugs a bit. As said the new 2.2.2 release should at least get the dos port closer back to the quality it had during later 1.0 times.

     

    If there are issues with the *nix FPC rtl, I'd gladly here them, since I'm the maintainer. Note that FPC made enormous progress after the original postings to this thread, first and for all the entirely redesigned Unix ports. However some of the issues that you (probably) have now (utf-8 and long file names in TV) are there in FPC too. It is unclear what to do about that, upgrade TV to be more Delphi dialect compatible, or keep it the way it is. The point is a bit academic, since nobody is using Turbo Vision under FPC, and it is only minimally fixed from time to time to keep the textmode IDE running.

     

    Same with unicode and threads. They are supported on non dos targets, but not (yet) on dos. However these kinds of functionality are implemented using manager records (records with procedure variables) and thus pluggable by the user without even a recompile, at least in principle.

    Yes, UTF is unsolved at the moment, but I really never tried to do anything about it.

    No known problems with filenames though.

     

    But the main problem here is limited time:

    I don't want to spend or waste time on a not yet necessary compiler change.

    As I described above, it would take months just to get NDN back to where it is right now.

     

    The TV code was extended a lot.

    And my main concerne is the OS dependend RTL code:

    Every RTL of the 3 VP targets was highly improved and rewritten.

    I would have to spend a long time, doing the same to another RTL,

    until it behaves like it should.

     

    As my todo list is quite long, I rather spend my time on bugfixing and new features,

    until the day will come when VP is not working anymore for NDN...

     

    About "libc and Linux".

     

    The libc interface is not a hard API, with a defined binary interface. This is because it is governed by Unix standards like POSIX, but that is a different way of specifying an API, and being able to use the system compiler is one of the requirements of that way. IOW if you are not the system compiler, you might not be able to interface with a posix interface in the way it is meant to be (read: using OS provided headers).

     

    So while the man pages declarations keep the same, types and macro implementations often change. Specially the threading related part generaly breaks every major release, and sometimes in between. The comparison

     

    The distro maintainers that keep 3rd party C/C++ packages running are pretty useless for anything outside the basic "configure; make ; make install" run.

     

    So IMHO the arguments about Libc linking in this thread are slightly naieve. Show me a nineties shared linux binary that is still working without compability settings or libs, and I'll show you my 1998 FPC binaries. Even statically linux binaries using libc probably won't work anymore.

     

    Sockets are btw perfectly doable using kernels. However DNS resolving, and some forms of unicode use are things better left to the OS (this because resolving is pluggable in libc for directory systems)

    Nice that you share my point of view. :)

    At the moment I don't know of any problem with the kernel calls in NDN.

    So, I also should not worry about this either.

     

    Stefan / AH


  8. Hi,

     

    I just found 2 bugs:

     

    1) the editor block switch with ALT and RMB works, but following block commands like COPY or PASTE

    treat the block accordingly to the mode visible in the info line

     

    2) D32: the colors dialog is once again messed up due to a resource compile mismatch

     

    Very embarassing, esp. as this was such a small release.

     

    Sorry for that,

    Stefan / AH

     

    PS: I don't know if I will upload a quick bug fix these days or wait until the next release, which will

    not take as long as last time (planned for end june / start of july)


  9. Hi everyone.

     

    Once again I am not in the planned release cycle of 1 release per month, sorry.

    Additionally, this is a quite small release, but pretty much time has been put into

    the code merging with Veit Kannegiesers latest VP RTL.

    Hopefully this did not break anything, maybe improved the working of NDN.

     

    The next release will be my 5th NDN anniversary release, I hope I can present you

    something "big" next time...

     

     [*] VP RTL: improved the base directory handling by using "set vpbase=\VP"
         instead of "X:\VP" in bldrtl.bat makesys.bat _all.bat
    [!] checked the new dpmi32_lfs_279_2.rar by Veit Kannegiesser
         -> (partially) merged: linux vpsyslnx system vpsysw32 objects vpsysd32
         -> following VK's files will be overwritten by my own:
            gpm.pas
    [!] Improved the error/expception handling:
         * checked callstck (VK), fixed some errors and improved it's interface
           to be usable in NDN (or any other more complex program)
           -> unfortunately not all entries on stack are displayed with module/line
         * VP EException output is disabled on startup to get all exceptions
           into the internal exception handler (hopefully without drawbacks)
           -> drivers4.InitDrivers() clears system.ExceptProc
         * the output into NDN.ERR and on screen has been improved
           * file: appended callstack, added exe location and log start/end lines
           * screen: added forum address and NDN.ERR location
             -> modified drivers6.ReportFatalError()
    [*] Source: removed cfg\ndnlnx.vpo because the default ndn.vpo is now usable
         for all targets
    [*] Corrected the ComboBox colors in colors\ah.pal
    
    W32/D32/LNX/OS2/VIRTUAL PASCAL COMPATIBILITIES:
    [!] checked for Windows Vista compatibility
         [-] the Borland make tool "maker.exe" didn't work
             -> now using the pmode "make.exe"
         [*] made cfg\makefile.dos string output more Windows friendly
         [-] http://forums.muxe.com/index.php?showtopic=916 (BMW)
             -> all these bugs were non existant in Visa Ultimate German
         [*] NDN now outputs the OS version on startup
             -> modified main.TellOS()
    [+] W32: added ConsoleInTray v1.8 by Vladimir Bochkarev
         -> added windows to the traycons.uses clause
         -> converted conutils.GetWin32MajorVersion() from procedure to function
         -> commented language code in traycons.GetTrayMenuString()
    
    EDITOR
    [-] line count of bigger files not completely shown [A]
         -> microed7.BookmarkLineDraw() now resizes the horizontal scrollbar;
            additionally the used infoline string was limited to 50 characters and
            was changed to shortstring
    [-] after restoring to source (FTP/ARC) the infoline (T->t) wasn't updated [A]
         -> added DrawView to microed6.EditorHandleEvent().cmRestoreFile
    [+] Bookmark multi function: cycle center/bottom/top placement on each GOTO
         -> modified microed6.EditorHandleEvent().cmGotoMarker*
    [-] RegEx search didn't work with ^ or $ only search strings
         -> modified microed5.EditorSearch() to handle these special cases and
            fixed an infinite backward loop risk inside of stringsx._BackSearchFor()
            by changing a while...do loop into repeat...until to allow at least one
            match run
    [-] mouse double click didn't mark lines w/o words but the next word [A]
         -> micro_3.EdHandleMouse() now ignores word mark on empty lines
    [+] Toggle the block mode while marking with mouse via [ALT] or the
         [RIGHT MOUSE BUTTON] (zakker)
         -> modified micro_3.EdHandleMouse()
    
    DBF VIEWER
    [-] in CSV file fix a wrong definition of odd quotes {G}
    [+] dBaseII DBF File support {G}
    
    VIEWER
    [-] vmAsm: after modifying code with the operations AndXX,OrXX,XorXX,PutXX,
         Not,Nop,Inc,Dec the asm code was not refreshed [A] (Slavik)
         -> added MakeLines() to fviewer.TFileViewer.HandleEvent().cmAndXX
    [-] LNX: displaying files in /proc/ didn't work anymore
         -> modified procfs handling in fviewer.TFileViewer.ReadFile()
    
    TURBOVISION: VIEWS/DIALOGS/MENUS/OBJECTS/MESSAGES
    [-] TComboBox: the Selected and Symbol colors had to be exchanged so that
         the colors are compatible to the TListViewer colors
         -> modified dialogs.CGrayDialog by exchanging colors 235 and 236

     

    Download: http://ndn.muxe.com/download/

     

    Have fun,

    Stefan / AH


  10. Hi!

     

    Thank you for reminding me. ;)

     

    But seriously, large file support, new copy code and plugins are the 3 big plans for the

    remaining 7 months of 2008. I just cannot promise anything.

     

    The past 2 weeks I went on holidays and I hardly worked on NDN in this tim.

    I plan a new release this weekend, almost 2 months without any release in total.

     

    So, please be patient, I am doing my best. :)

     

    All the best,

    Stefan / AH


  11. Hi Flo,

     

    in fact the standard file copy window (not FTP) already can be put to the background,

    just try to switch the windows as usual. There's only th problem that the current

    background code in NDN does not "prioritize" fore/background tasks.

    I want to work on this someday and add a little enhancement.

     

    Hm, for a start you can try the copy option "Refresh old files".

    I think this comes quite close to what you asked for.

    Tell me if it that works for you.

     

    Btw, I want to rewrite the copy code, maybe for the next release, so all VFS' will

    use a single interface, hopefully working as good and with same options as the

    current disk copy code.

     

    Grüße aus Oberfranken,

    Stefan / AH

     

    PS: Has anyone ever worked with a DOS TCP/IP library, like WATTCP?

    I wonder how close or similar it is to the standard Windows/Linux socket 2.0 interfaces.

    If it is compatible to the standard sockets then implemting this for the DOS port of NDN

    will not be too much work.


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


  13. Hello Rurik,

     

    I am glad you read this.

     

    To your questions:

     

    a) You must enable the "Wordstar" keys to use CTRL-E in the commandline:

    Options.Configuration.Misc Options.KEyboard Setup.[X] Use Wordstar diamond

    I added this to give the user the choice of Windows compatible hotkeys and the "old"

    Wordstar hotkeys. Unfortunately they overlap and are not compatible.

     

    B) I know, the network VFS was a quick hack for Necromancer. I have this issue on my

    todo list already:

    * NETW: improved network VFS

    * NETW: option screen on what to scan

     

    Thanks for your support,

    Stefan / AH


  14. Hi *!

     

    A user wrote me an email yesterday with a crash concerning the editor/viewer

    opening files, with an exception message similar to:

     

    ... in file histries.pas, line 135 ...

     

    Unfortnuately I lost the email (am setting up Vista...) and I thought I should

    answer here, maybe he reads it:

     

    I had no problem with the sample file you sent me. I think that there's some

    problem with your history files. I suggest you to delete the histories and then

    try again. If the problem continues, please write again.

     

    Bye,

    Stefan / AH


  15. Hi.

     

    Another month, another release.

    I want to get back to the monthly release cycle, even if there's not much news,like this time.

    But still enough to be released.

     

    Whatsnew:

     [!] "Team member" update, removed inactive people
    [!] corrected a directory level bug in the VP make batch files [V]
    [*] renamed int64 to mathx, added idiv32()/div32() operations
    
    TURBOVISION: VIEWS/DIALOGS/MENUS/OBJECTS/MESSAGES
    [*] views.TView.GetColor() is now virtual
         -> used in dialogs.TComboBox and fviewer.TFileViewer
    [*] made views Delphi compatible (Result)
         -> modified fviewer.TView.Focus()
    
    VIRTUAL FILE SYSTEMS (VFS)
    [-] FTP: path change did not work correctly [A]
         -> vfs_ftp.ParseFTPURL() provided the FTP path with a leading '/'
    [-] FTP: Change to root didn't work for DOS paths (F:/dir/) [A]
         -> vfs_ftp.TFTPConnected.ChangeRoot() now uses all data until the
            first '/' as root directory target
    [-] FTP: MkDir didn't work in special cases if the server returned
         200 as response instead of the standard 257 [A]
         -> vfs_ftp.TFTPConnected.MkDir() also treats 200 as success
    [-] FTP: fixed 2 potential crashes when the operation failed on connection
         loss in copying from FTP and erasing [A]
         -> vfs_ftp.TFTPConnected.CopyFiles().Copy() and
            vfs_ftp.TFTPConnected.EraseFiles().Erase() didn't check the file
            collection for nil in case of recursion, now using objects.FreeObject()
    
    VIEWER
    [-] vmDump/Hex/Asm: [INS] at EOF in not fully loaded files started to display
         random chars [A] (Dandv)
         (http://forums.muxe.com/index.php?showtopic=525)
         -> histries.RestoreViewInfo() didn't correctly use the saved parameters,
            now does fviewer.TFileViewer.Seek(FilePos+BufPos) instead of only
            FilePos
    [-] vmAsm: in special case no code was shown after a [CTRL-PGDN] [A]
         -> inside the line draw loop in fviewer.TFileViewer.Draw().vmAsm
            the FilePos was subtracted 2 times, resulting in end of data
            although there was data
    [-] some files were loaded very slowly [A]
         F:\NDN\SOURCE\!bugs\bug_when_view_Intrnl_vwr_OFF_auto_code_page_OFF.zip
         -> microed2.EditorReadBlock() didn't correctly handle the buffersizes,
            now using FFSize instead of S^.GetSize()
         -> microed2.EditorReadBlock().CountLines() was moved into the main loop,
            duplicated code was removed
    [-] vmText: files with size 0 couldn't be opened a second time except if
         deleted from history [A]
         -> fviewer.TFileViewer.MoveToOfs().SearchLines() hangs because MaxLines
            is zero in empty files -> infinite loop
         -> MoveToOfs() now doesn't do anything if the file is empty
    [-] NDN loaded files very slowly in some cases (Dandv) [?]
         f:\NDN\SOURCE\!bugs\slow_XML_viewing.zip
         -> seems to be gone due to some previous bugfix
    [-] QuickView: the viewer highlight was almost non existant (Garl) [DNOC]
         -> fviewer.TFileViewer.GetColor() uses the Desktop for color lookup
            instead of the file panel -> direct access to the base palette, which
            enables fully functional viewer drawing in file panels
         -> vmText/vmAsm: enabled syntax highlight in fviewer.TFileViewer.Draw()
    [*] improved the viewer behaviour in quick view mode:
         -> fviewer.TFileViewer.ReadFile() didn't allow to reread a file
         -> moved keymap and crlf detection init to ReadFile()
    [-] disabled kbShiftTab input, which wrote #0 into file [A]
    [+] vmText/Asm: [CTRL-LEFT/RIGHT] to move the view left<->right,
         [CTRL-SHIFT-LEFT/RIGHT] now adjusts the buffer position
         -> added fviewer.LocationInfoLength|vmAsmHexLength|vmAsmCodeLength
            constants, fviewer.TFileViewer.LongestLine
         -> modified XDelta code in
            fviewer.TFileViewer.HandleEvent().kbCtrl(Left|Right)
         -> added XDelta handling to vmAsm drawing in
            fviewer.TFileViewer.Draw().vmAsm
    [-] Quickview didn't remove files from the notifier list [A]
         -> fviewer.TFileViewer.ReadFile() now deletes the old filename from
            the notifier list
    [-] Quickview: Scrollbars didn't work, also resulted in crashes when scrolling
         down [A]
         -> fviewer.TFileViewer.ReadFile() now calls Awaken() to update the
            scrollbar size
    [*] renamed fviewer.TFileViewer.Lines.NewLen to AltLen
    [*] improved/corrected the search position handling in case of backward search
         -> fviewer.SearchFileStr() correctly calculates the search start position
         -> fviewer.TFileViewer.HandleEvent().ContinueSearch() correctly calculates
            the next search start position after a match
    [-] search crash on G:\Music\C.O.B._-_B.CROM.rar for mp3 [DNOC]
         -> views.TScrollBar.GetPos() calculated bad values beginning with
            certain sizes which crossed the max. positive Longint value
    [-] long load on opening after start G:\Music\C.O.B._-_B.CROM.rar [A]
         -> microed2.EditorReadBlock() (old code) didn't handle the buffer/file
            sizes correctly (no init with filesize before maxsize check)
    
    EDITOR/VIEWER
    [-] In Editor.New file loading zero sized files were opened but not closed,
         which resulted in locked files [A] (Garl)
         -> fileio.TTextReader.Init*() didn't close opened files again when
            an error occured, f.ex. if the file was empty
    
    CD-PLAYER
    [-] D32: CD-Drive detection didn't work [] (Radek)
         -> CD_GetFirstDrive() didn't correctly return the first CD drive in
            the var parameter (wrong asm code)
    
    ARCHIVES
    [-] Crash when opening an archive which produces an error (no files f.ex.) [A]
         -> vfs_arcv.ArcViewer() disposed P without checking for nil

     

    Download: http://ndn.muxe.com/download/

     

    Have fun,

    Stefan / AH


  16. Hi again!!

     

    1)

    This is possible of course: [sHIFT-F12], [CTRL-INS]

    You can add any video mode you want.

     

    I just checked the 175x83 size, it indeed doesn't work and produces 80x43.

    This is due to an limit in the existing video mode handling.

    Try reducing the x/y size to 172x82. (by editing the video mode [F4])

     

    2)

    This is partially possible by choosing panel layout [CTRL-0] in the maximized window.

    It automatically adjusts the columns to the screen width.

     

    bye,

    Stefan / AH


  17. Hi HMS!

     

    First of all, thank you for your nice words and for sticking with the DN file manager line.

     

    1.

    I don't agree.

    In Linux it is possible to resize the window and NDN will resize itself accordingly.

     

    In Windows this is not possible (try with an command prompt window), or at least

    I don't know about it. But Windows allows an application to set any window size it

    wants and this is where the "old" video modes come in.

     

    In Linux I didn't find a possibility yet to switch the window size from within the

    application, maybe I will someday (when I fixed the dumb X problems).

     

    Maybe you haven't seen that the Windows NDN provides the biggest possible

    screen mode when hitting [sHIFT-F12] as the last entry in the list?

     

    In my opinion, video modes perfectly fit in any environment. :)

     

    2.

    Resizing in Windows is not possible AFAIK.

    But, as it is possible in Linux and maybe in future target OSs and also

    makes sense after changing the "video mode" I will add your request

    to my (too long) todo list.

     

    Thank you for your interest,

    Stefan / AH


  18. Hi!

     

    Found the first major bug myself:

    NDN cannot view a file with size 0 a second time in text mode,

    except if it's entry in the viewer history is deleted.

     

    SFX + Linux:

    Ui, this is bad.

    But you can still unpack it with RAR like a standard archive.

    If there will be more complains I will think about it again.

     

    Bye,

    Stefan / AH

×