[Freedos-devel] Re: [Freedos-cvs] kernel/kernel int2f.asm,1.33,1.34

2004-05-04 Thread Arkady V.Belousov
Hi!

4--2004 10:16 [EMAIL PROTECTED] (Bart Oldeman) wrote to
[EMAIL PROTECTED]:

 Clean up int2f assembly a bit (merge some common bits, clarify label names)

 Long awaited action. :)

 +++ int2f.asm 4 May 2004 10:16:45 -   1.34
 +jnc ret_set_ax_to_cx
 +ret_neg_ax:
  neg ax
 +ret_int2f:
  pop di
  pop si
  pop bp
  ret
 +ret_set_ax_to_cx:  ; ext_open or rw - status from CX in AX
 +   ; otherwise CX was set to zero above
 +xchgax, cx ; set ax:=cx (one byte shorter than mov)
 +jmp short ret_int2f

jnc ret_set_ax_to_cx
ret_neg_ax: neg ax
xchgcx,ax
ret_set_ax_to_cx:
xchgax,cx
ret_int2f:
pop ...
ret




---
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g.
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id149alloc_id66op=click
___
Freedos-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-devel


Re: [Freedos-devel] Re: [Freedos-cvs] kernel/kernel fattab.c,1.30,1.31 fatfs.c,1.66,1.67

2004-05-04 Thread Steve Nickolas - Using Windoze
tom ehlert wrote:
Hello Arkady,


+  wasfree = 0;
+  if (cluster == FREE)
+wasfree = 1;


   wasfree = cluster == FREE;


well - we know that gifted russian programmers can read this cryptic
stuff fluently.
mortal programmers like me prefer a more readable style.

tom
wasfree = (cluster == FREE); ?   (That's how I'd prolly have written 
it myself, and I'm not really much of a programmer)

-uso.



---
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. 
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3149alloc_id=8166op=click
___
Freedos-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-devel


[Freedos-devel] FreeDOS history check: LBA, FAT32?

2004-05-04 Thread Eric Auer

Hi, the maintainer of
http://www.mwpms.uklinux.net/page1.htm
wants to know when we introduced FAT32 (2029??), LBA (2025 by Tom 2001?),
Flash booting (I think it will work if FAT formatted?), ROM booting (does
ROMOS work reliably?) ...
I suggested that he updates his page but my suggestion mail contained too
many I think we introduced [feature] with [version] and not enough I KNOW


Eric


---
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. 
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3149alloc_id=8166op=click
___
Freedos-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-devel


[Freedos-devel] Re: OT: Guess who gives a damn about human rights

2004-05-04 Thread Eric Auer

Hi, as said, I know that GPL cannot limit use of free software.
You may remember that I took part in this discussion a while ago.
I had the example Is OpenOffice.org on the PC of a spy using
software for non-human-friendly purposes? Answer: You cannot decide.
So I am not pissed about US politics as Eric the programmer. I am
pissed as Eric the human.

Eric



 If you like it, you may stop shipping free software bug RMS definition, and 
 start developing freedom software which cannot be used to harm other 
 people. I know this sentence sounds USA... but trust me I understand you... 

PS: As said as well, the other FreeDOS programmers are humans, too, so
they can have an opinion about human rights. And enough people with an
opinion means that politicians MIGHT eventually start to listen
to them and start to behave as humans, too.

PPS: I read about the impressive performance of IL secret service when
they wiretapped the wiretappers of NL secret service... grin.

 diego, kde-il translation team


---
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. 
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3149alloc_id=8166op=click
___
Freedos-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-devel


[Freedos-devel] LH DISPLAY problems / NLSFUNC in a nutshell

2004-05-04 Thread Eric Auer

Hi!

I recommend to move this discussion to freedos-devel, with a
nice subject line.

So here some information about UPX:
UPXed SYS can crash when loaded into a too small memory area (only UMBs
  are typical cases of small memory areas, so the problem arises only
  with UMBs in most cases). This is due to structure of SYS and cannot
  easily be fixed. Maybe Toms SY2PACK for SYS-EXE is better here.
UPXed COM check the stack pointer at start time before unpacking. If
  the COM is loaded into a  64k memory block and the memory block is
  too small for the unpacked version, INT 20 is called (give up, no
  error message, errorlevel 0).
UPXed EXE simply leave the memory requirements info in the exe header
  intact. That way you can even tell in the exe header how much heap
  you need at least and how much heap you will use at most.

A non-compressed DISPLAY driver will fail to fit into a small memory
area, and LH / DEVICEHIGH can then load low as a fallback. However, this
wastes disk space. An EXE version avoids that. Another option - and I
prefer that one - is to use a compressed COM and check if there is enough
memory dynamically. THEN, simply load DISPLAY TWICE, once HIGH and then
LOW. The loading low will fail if the loading high has worked, because
DISPLAY has a protection against double install.
If you do not like failure without error message, use an UNCOMPRESSED
DISPLAY but STILL allocate the buffers dynamically. Then you avoid the
silent failure which can happen with UPX *and* you still save most of the
disk space because you allocate buffers dynamically!

The latter suggestion is especially important if you want to make
DISPLAY a real DEVICE. Other than an EXE (with heap specification in
the header), the SYS would have to be an huge file, 60k or something,
unless you allocate the buffers dynamically.

However, I read your recommended reading about NLSFUNC, and there is
no imperative need that DISPLAY would be a device anyway.

NLSFUNC in a nutshell:
1. COUNTRY... tells kernel about country, hardware codepage, country file
2. you load DISPLAY which can load codepages into video hardware
3. you load KEYB which can process codepages for keyboard
4. you load PRINTER which can process fonts / char substitution to support
   codepages for printers
5. you optionally load other codepage stuff
6. you load NLSFUNC
7. you do CHCP. CHCP sends a codepage change request to the kernel. The
   kernel asks NLSFUNC to analyze the codepage file. NLSFUNC uses int 2f.12
   file I/O to read the file and sends back info to the kernel.
8. the kernel is happy and asks NLSFUNC to spread the word. NLSFUNC surfs
   the DEVICE list and tells all DEVICES which support the IOCTL about the
   codepage change. It also tells DISPLAY and PRINTER but not KEYB.
9. DISPLAY tells KEYB about the change and changes the hardware font. To
   be able to do so, you have to have run MODE CON CP PREPARE... before, to
   send the font data from CPI/CPX to DISPLAY.

No idea why this nutty scheme was invented but I guess we have to stick to
most of it. Without NLSFUNC, you can:
- use MODE CON CP SELECT to update DISPLAY / KEYB status
- use COUNTRY to select country settings from currently kernel-builtin tables
- tell KEYB directly about settings at startup
But you cannot tell the kernel to update the codepage that way, nor can you
tell PRINTER. So in THAT case, you have to tell the kernel that the hardware
codepage would be the codepage which you trigger later in DISPLAY and live in
half-sane state until you actually load DISPLAY and run MODE.
I think the kernel does not even have codepage selection yet, because the
tables would be too big without an external country sys file. So you only
have the ability to set NLS info by country code yet.

As you can see, NLSFUNC is a lot of glue code, a device chain surfer and
a country sys file parser. Would be cool if somebody would volunteer to
start working on it ;-).

Eric.

PS: This was kernel problems and problem loading high DISPLAY on
freedos-kernel before. But I think it is not a kernel problem.

PPS: UPX does NOT try to enlarge the memory block for COM. It just
checks if it IS already big enough. For SYS, it does not check anything
at all because only AFTER decompression the driver gets TOLD how big
the memory block is and is then allowed to SHRINK it.



---
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. 
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3149alloc_id=8166op=click
___
Freedos-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-devel


Re: [Freedos-devel] LH DISPLAY problems / NLSFUNC in a nutshell

2004-05-04 Thread Bernd Blaauw
Eric Auer wrote:
Hi!

I recommend to move this discussion to freedos-devel, with a
nice subject line.
So here some information about UPX:
how easy is it to prepare DISPLAY for COM2EXE as Arkady suggests?

still, why would LH not abort on MSDOS but abort on freedos kernel?
FreeCOM is being used as shell on both platforms.
and I have seen FreeCOM crash, so I do think there's some UMB problem,
but I (still) need to prepare a testcase for the kernelpeople,
so they can easily verify.
Bernd



---
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. 
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3149alloc_id=8166op=click
___
Freedos-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-devel


Re: [Freedos-devel] LH DISPLAY problems / NLSFUNC in a nutshell

2004-05-04 Thread tom ehlert
 The latter suggestion is especially important if you want to make
 DISPLAY a real DEVICE. Other than an EXE (with heap specification in
 the header), the SYS would have to be an huge file, 60k or something,
 unless you allocate the buffers dynamically.
or you use .EXE style sys-files, of course.

 PS: This was kernel problems and problem loading high DISPLAY on
 freedos-kernel before. But I think it is not a kernel problem.
I may be wrong, but I seem to remember, that MSDOS allocates at least
64k for .COM style programs.
If that would be the case, MSDOS would load DISPLAY silently low.
Not even sure if FreeDOS tries to load into small upper memory blocks.

tom




---
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. 
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3149alloc_id=8166op=click
___
Freedos-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-devel


[Freedos-devel] Smaller SHARE tool for testing

2004-05-04 Thread Eric Auer

Hi, please check
http://www.coli.uni-sb.de/~eric/stuff/soft/by-others/ freedos-share-04may2004.zip

I replaced the fprintf by write and turned SHARE.EXE into a 3k smaller SHARE.COM
... especially the memory footprint is 3k smaller now, too.

Even smaller would it be if the init part could be dropped from RAM, but this
is a tool which is written in C so I do not know how to implement that.

For default parameters (20*13bytes for lock areas, 2048 bytes for 136 byte sized
file descriptions) SHARE now uses 9.7k of RAM. Could be much less, compare to
MS SHARE.

Maybe somebody can help with this. And notice that MS are telling in KB
article KB161619 that SHARE is not compatible to FAT32 kernels. Maybe we
have to add something to our SHARE here. I think normal FAT16 compatible
file functions of DOS should cooperate with SHARE even for FAT32.

Eric.

PS: I hope SHARE still works properly after the change!



---
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. 
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3149alloc_id=8166op=click
___
Freedos-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-devel


[Freedos-devel] Re: LH DISPLAY problems / NLSFUNC in a nutshell

2004-05-04 Thread Eric Auer

Hi, I have some extra questions...

 Another option - and I
 prefer that one - is to use a compressed COM and check if there is enough
 memory dynamically.
 If by dynamically you mean that DISPLAY should check that, I am open to 
 admit patches, of course.

If you mean in the COM version: The test is simple.
if SP  (end_of_code + amount_of_required_head) then not enough memory
If you mean in the EXE version: Define in the headers instead, plus use
  malloc.
If you mean in the SYS version: The problem is only with UPX. Without UPX,
  DOS will tell INIT what the latest allowed end-of-driver byte is, and
  INIT replies to DOS what the actual end-of-driver byte is (possible equal
  to begin-of-driver if driver does not go resident).

 The init command of a device driver contains a break address. I *ignore* 
 if I can enlarge this pointer and so make DISPLAY as big as I need...

No, as told, you can only LOWER but not RAISE the break address.

kernel asks NLSFUNC to analyze the codepage file. NLSFUNC uses int 2f.12
file I/O to read the file and sends back info to the kernel.
 Are you sure that NLSFUNC will do file i/o 'hot'? remember you are in-DOS.

It does. It was stated in that very long mail which you forwared me. The
kernel only stores the filename, but NLSFUNC uses int 2f.12 file i/o ...
because it cannot use int 21 file i/o because you are in-DOS.

 The scheme is sensible, so that you can change the global codepage of 
 the system and all its components.

You could conceiveable have an alternate scheme where CHCP has to load
country,sys into a buffer and tell the kernel to do the rest itself.
And one of the weird points of NLSFUNC operation is all the passing of
information back and forth, sometimes even indirectly (DISPLAY-KEYB).

 This is a good reason why DISPLAY/PRINTER have to be SYS, and in such 
 case you can use
 MODE xxx CODEPAGE

You can adjust MODE to work with a non-SYS DISPLAY. Current MODE does that.
As MODE / NLSFUNC are the only tools which try to talk to DISPLAY / PRINTER,
we have nothing to lose. Well, with DISPLAY.COM / PRINTER.COM, for example,
MS NLSFUNC and MS MODE codepage functions would not work. But hey, those ship
with MS DOS anyway!

 So how is that this works under MS-DOS correctly (and DISPLAY is loaded 
 low) and doesn't in FreeDOS?

No idea, I need more details. MS DOS LH certainly does not analyze if the
program stays in RAM and if not runs it again in low RAM. To test, you can
try LH EECHO.COM Hello world. It would show Hello world twice if LH would
have that did it stay resident? check. If MS DOS LH always insists on
reserving 64k UMB for each COM program or else loads low, MS DOS LH would
be pretty useless. Maybe there is a command line option for that, though.
LH will allocate [size of file + PSP size + a bit of stack] for COM files,
and only if not even that much UMB space is free it will load low. This
means that UPXed display will be loaded into UMB and *then* the UPX stub
will abort loading due to lack of memory. But LH will not notice! Not even
MS LH if you ask me.

Eric.


PS: I might bore you, but I think a good method - because of the double
load protection - is to use
LH DISPLAY
DISPLAY
... If this crashes, then there is a bug in LH (i.e. it fails to move
the stack top into valid range when  64k are free).



---
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. 
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3149alloc_id=8166op=click
___
Freedos-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-devel


Re: [Freedos-devel] OT: Guess who gives a damn about human rights

2004-05-04 Thread Johnson Lam
On Tue, 4 May 2004 17:35:22 +0200 (MEST), you wrote:

Sorry for off topic.

Eric,

Try World Lingo:

http://www.worldlingo.com/products_services/worldlingo_translator.html

Guys: FreeDOS is great, but some aspects of US politics suck BIG TIME.

I think we should try to keep FreeDOS over the politics, that means we
declare ourselves not directly related to the policies or party that
involved in the warfare.

We can't stop them using FreeDOS for the military because once
involved with this kind of organization, they're outside the control
of law.

IMO, keep away from nationalism. I didn't feel a thing when prime
minister of China visit Germany, very annoying and uninteresting
topics ... the real thing is weapon again, tired.

Let the US citizens take care about their country.


Rgds,
Johnson.



---
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g.
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id149alloc_id66op=click
___
Freedos-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-devel


Re: [Freedos-devel] debug 0.95f and 0.98 'Unexpected single-step interrupt'

2004-05-04 Thread Paul Vojta
 To: [EMAIL PROTECTED]
 From: Arkady V.Belousov [EMAIL PROTECTED]
 Subject: Re: [Freedos-devel] debug 0.95f and 0.98 'Unexpected single-step
 interrupt'
 Date: Tue,  4 May 2004 15:42:29 +0400 (MSD)
 
 Hi!
 
  Try this:
 
 __O\_/_\_/O__
 debug
 a
 mov ah,4c
 int 21
 int 3
 
 g=100
 g
 _
   O/~\ /~\O

OK, I've tried it.

Under MS-DOS 2.1 with native DEBUG and Win XP with native DEBUG, it
drops you out of DEBUG and back into COMMAND.COM.  In a way this makes
sense, since the above code terminates a program and since you haven't
loaded a program into DEBUG the only program that DOS (or XP) could
possibly terminate is DEBUG itself.

Under MS-DOS 2.1 with fd-debug, you're back at the DEBUG prompt.

Under dosemu 1.2.1 and FreeDOS (I don't know what FD version, sorry,
but kernel.sys was dated 31 January 2004), I get Unexpected single-step
interrupt.

So.  Are you saying that the behavior under MS-DOS 2.1 is buggy?

I strongly suspect that the buggy behavior under FreeDOS is either the
problem of dosemu or freedos.

--Paul Vojta, [EMAIL PROTECTED]


---
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. 
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3149alloc_id=8166op=click
___
Freedos-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-devel