Eric Auer wrote: > Hi all, I think I now have the NANSI version that I wanted. Please try > or read the sources to find new errors (try diff or wdiff -l piped to > less, and ignore whitespace changes...). > > To compile / assemble, you can use freeware (max 286/287, max 64k size > for each file) version of Arrowsoft ASM, or you can use MASM. Note that > I am NOT used to this syntax, so I may have messed up things where RAM > variables are accessed. However, both Tyler and me have tried the new > NANSI and it seems to work. You can use Borland TLINK or another link > tool, but it must accept files without stack segment (VAL does not). You > need EXE2BIN, too. You no longer need MAKE - I included a batch version > of the make script for people with no MAKE installed. > > New binary size is < 4096 bytes still. TSR size should have changed only > slightly - please compare. I have done "big time" NANSI dot DOC updates, > explaining the new command line switches. IMPORTANT: The /K switch has > changed in meaning! Old style /K thing got renamed to /C ... > > You can find my new NANSI 4.0 version on: > http://www.coli.uni-sb.de/~eric/stuff/soft/by-others/ nansi40.zip > > ... but the documentation still points to Dan Kegel. Dan, could you > mirror it on your page, the official NANSI page? > http://alumni.caltech.edu/~dank/nansi/ > > Here a list of possible command line switches and a list of changes: > The /R switch to enable screen reader compatible scrolling turned out > to be NOT needed for NANSI. NANSI always uses BIOS for scrolling, unlike > those MS ANSI versions which needed the /R switch. I have changed the > extended (101+ key) keyboard detection to the method used in new FreeDOS > kernels. I have changed the /K switch to mean the same as SWITCHES=/K > means to the FreeDOS and MS kernels. > > DEVICE[HIGH]=NANSI.SYS [/K] [/C] [/X] [/S] [/Tnn] [/R] [/B] [/P] > In short ([/Q] means "optionally give the /Q switch"): > /K "force 84 key keyboard style" /X "extended key definitions" > /S "safe mode - no key redefinitions" /Tnn "mode nn is a text mode" > /R "use BIOS (for some screen readers)" /B "use BIOS for bell sound" > /P "pass all unknown requests to CON" /C "force 101+ key keyboard style" > > > /K forces using 84 key style BIOS calls: If your BIOS does not support > 101+ key keyboards or if you want to simulate an 84 key keyboard, use this. > Real 84 key keyboards should be autodetected. > /C forces using 101+ key style BIOS calls: Use if autodetection of your > 101+ key keyboard did not work properly and you have troubles using F11/F12. > /X causes NANSI to differentiate between "numeric keypad" and "grey keypad" > versions of keys in some kludgy way. > /S disables the feature that would allow key redefinitions (should save 512+5 > bytes of RAM, too??). Protects against "ANSIbombs". > /Tnn declares that video mode nn (hex!) is a text mode. NANSI uses direct > video memory access instead of BIOS for text mode writing (but it always > uses BIOS for scrolling). > /R (different from MS ANSI /R) declares all modes to be "graphics" modes, > which forces NANSI to use only the BIOS to position the cursor and write > chars and to resize the cursor. Yes, strange enough, but NANSI does use > direct I/O port access to position (and resize, on video mode change) the > cursor otherwise! The /R mode is much slower but allows NANSI to work in > environments where there is no normal video hardware (e.g. on a PDA or in > a multitasking environment which does not simulate video hardware)...!? > /B forces NANSI to use the BIOS beep sound to beep. Otherwise, it will make a > short, deep (1/9 second, 440 Hz) "subtle" beep, but this only works if you > have PC-AT style speaker and timer hardware. So /B is for people with very > "legacy free" hardware and for people who want the classic BIOS beep. > /P allows NANIS to forward all unknown device driver requests to the device > that has been CON until you loaded NANSI. > > So what is new? > - moved start message out of resident part > - /P option, if you have CON which can do more device stuff than NANSI and you > want NANSI to "transparently" handle this situation (untested, obviously) > - /K option to force old style keyboard access > - old /K option is now more properly called /C > - /B option to bypass hardware beep > - /R option to bypass hardware cursor stuff and direct video memory access > - changed 101+ key keyboard detection > - renamed labels with pointless names (like "kludge_xxxx" with xxxx being hex) > > If everything works, our NANSI is now FreeDOS 1.0 ready (but as told, the /R > option was not even necessary, and the /P option implements a thing which no > ANSI that I know has...). There is no int2f.1a interface still, but I wonder > who would need this anyway. Luckily it is "post FreeDOS 1.0" already, so no > need to debate about that. > > (int2f.1a controls an "/L" flag and an "interlock" (int10.0 hooking) flag, > ... (hm, check the RBIL entry on int29 ;-)) ... plus there is an install > check and you can reach ANSI IOCTL R/W through int 2f.1a01 - but RBIL does > not tell WHICH IOCTLs ANSI should have anyway!?) > > > I notice that neither normal nor /R mode show a cursor in graphics modes, > I hope I did not introduce a new bug? Testing in XDOSEMU, maybe this is the > reason of this behaviour... Maybe not. Maybe you have to enable the special > graphics mode cursor simulation with an ANSI escape sequence ever since. > > > Whatever. Please try the binary or read the sources. I would really like to > have any feeback before this is officially declared 4.0 and a news item is > put up. Thanks! I can release 4.0 multiple times as long as only fd-dev > knows about it. Avoids wasting the nice dot 0 version number . > > Merry FreeDOS (or something) . > > Eric.