Hi!

3-Сен-2004 09:26 [EMAIL PROTECTED] (Luchezar Georgiev) wrote to
[EMAIL PROTECTED]:

> Update of /cvsroot/freedos/kernel/kernel
> In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15462/kernel/kernel
> Modified Files:
>       Tag: UNSTABLE
> Log Message:
> COUNTRY.SYS & NLSFUNC support added: Lucho, Eduardo.
> --- NEW FILE: country.asm ---

> dd  ent  ; first entry
> ent dw 35; number of entries - don't forget to update when adding a new country

     Here is possible to slightly enhance this point (no need for manual
updating), because table below is regular (contain equal-size items):

> ; entries
> ; (size, country, codepage, reserved(2), offset)
> __us dw 12,  1,437,0,0
>      dd _us
[...]
> __me dw 12,785,864,0,0
>      dd _me
> __il dw 12,972,862,0,0
>      dd _me

     (Bug? __il refers to _me instead _il). Thus, all quoted above my be
replaced by:

______________O\_/_________________________________\_/O______________
dd $+4  ; address of table (folows below)
dw (LAST_ENTRY - FIRST_ENTRY) / ENTRY_SIZE

; entries (size, country, codepage, reserved(2), offset)

FIRST_ENTRY label
dw ENTRY_SIZE-2,  1,437,0,0     ; US
    dd _us
ENTRY_SIZE = $ - FIRST_ENTRY
[...]
dw ENTRY_SIZE-2,785,864,0,0     ; Middle East
    dd _me
dw ENTRY_SIZE-2,972,862,0,0     ; Israel
    dd _il
LAST_ENTRY label
_____________________________________________________________________
              O/~\                                 /~\O

Or, even better, all data may be reordered to place related data adjacent:

______________O\_/_________________________________\_/O______________
dd $+4  ; address of table (folows below)
dw (LAST_ENTRY - FIRST_ENTRY) / ENTRY_SIZE

FIRST_ENTRY label
dw HEAD_SIZE
HEAD_START label
    dw   1,437,0,0      ; US
    dd $+4
HEAD_SIZE = $ - HEAD_START
    dw 1,6,1
    dd $+4
    db 0FFh,"CTYINFO"
    dw DATA_SIZE
DATA_START label
    dw   1,437,MDY
    db             "$",0,0,0,0
    dw                         ",",".","-",":"
    db                                         0,2,_12
DATA_SIZE = $ - DATA_START
[...]
dw HEAD_SIZE
    dw 785,864,0,0      ; Middle East
    dd $+4
    dw 1,6,1
    dd $+4
    db 0FFh,"CTYINFO"
    dw DATA_SIZE
    dw 785,864,DMY
    db             0A4h,0,0,0,0
    dw                          ".",",","/",":"
    db                                          3,3,_12
dw HEAD_SIZE
    dw 972,862,0,0      ; Israel
    dd $+4
    dw 1,6,1
    dd $+4
    db 0FFh,"CTYINFO"
    dw DATA_SIZE
    dw 972,862,DMY
    db             99h,0,0,0,0
    dw                         ",","."," ",":"
    db                                         2,2,_24; Israel
LAST_ENTRY label
_____________________________________________________________________
              O/~\                                 /~\O

Of course, entry may be defined through macro. Someting like:

______________O\_/_________________________________\_/O______________
dd $+4  ; address of table (folows below)
dw (LAST_ENTRY - FIRST_ENTRY) / ENTRY_SIZE

FIRST_ENTRY label
ENTRY   1,437,MDY,<"$",0,0,0,0>, ",",".","-",":",0,2,_12 ; US
[...]
ENTRY 785,864,DMY,<0A4h,0,0,0,0>,".",",","/",":",3,3,_12 ; Middle East
ENTRY 972,862,DMY,<99h,0,0,0,0>, ",","."," ",":",2,2,_24 ; Israel
LAST_ENTRY label
_____________________________________________________________________
              O/~\                                 /~\O

> +++ globals.h 3 Sep 2004 09:26:51 -0000       1.45.2.2
> -    " (Build " KERNEL_BUILD_STRING ") [" __DATE__ " " __TIME__ "]\n"
> +    " (Build " KERNEL_BUILD_STRING ", " __DATE__ ")\n"

     I like this. :)

> +++ main.c    3 Sep 2004 09:26:51 -0000       1.81.2.4
>  static char copyright[] =
> -    "(C) Copyright 1995-2004 Pasquale J. Villani and The FreeDOS Project.\n"
> +"Copyright 1995-2004 Pasquale J. Villani and The FreeDOS Project.\n"
> +"This free software has ABSOLUTELY NO WARRANTY and is licensed under\n"
> +"the GNU General Public License (http://www.gnu.org/licenses/gpl.html)\n\n";

     And this too. :) Though, I think, here is mistake, because me use GPL2,
not plain GPL. Thus, above should like something like:

"This free software has ABSOLUTELY NO WARRANTY and is licensed under the\n"
"GNU General Public License v2 (http://www.gnu.org/licenses/gpl2.html)\n\n";

> +++ inthndlr.c        3 Sep 2004 09:26:51 -0000       1.87.2.4
> @@ -709,10 +698,8 @@
>      case 0x30:
>        lr.AL = os_setver_major;
>        lr.AH = os_setver_minor;
> +      lr.BX = (OEM_ID << 8) | REVISION_SEQ;

     lr.BX = MK_UWORD (OEM_ID, REVISION_SEQ);
-------------^^^^^^^^

[...]
> +      if ((rc = _SftSeek(s, MK_ULONG(lr.CX, lr.DX), lr.AL)) >= SUCCESS)
-------------------------------^^^^^^^^

[...]
>  VOID ASMCFUNC int2F_12_handler(struct int2f12regs r)
> +  COUNT rc;

     "int rc;"

[...]
> +    case 0x27:                 /* close file */
>        r.FLAGS &= ~FLG_CARRY;
> -      break;
> +      CritErrCode = SUCCESS;
> +      rc = DosClose(r.BX);
> +      goto short_check;

     Better to place "r.FLAGS &=" right before "goto" to make common tail
for many branches. About "CrtiErrCode =" I unsure, if it valid to move after
function.

[...]
> +long_check:
> +  if (lrc >= SUCCESS)
> +  {
> +    r.AX = (UWORD)lrc;

     r.AX = loword(lrc).

> +    return;
> +  }
> +  rc = (int)lrc;




-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_idP47&alloc_id808&op=click
_______________________________________________
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel

Reply via email to