Commit Graph

276 Commits

Author SHA1 Message Date
Kenneth J Davis edfb0db758 adjust padding to be same as in PC-DOS (90h/nop)
see 1dc244b09b
2021-07-22 23:32:22 -04:00
Kenneth J Davis afca594446 from RBIL int 21h/4400h (table 01423) add definition for bit 11 if SFT is not for a device (for a file) - media not removable, currently unused 2021-07-22 23:22:38 -04:00
Kenneth J Davis 9d293d7815 since both refer to critical sections to patch and we have none, i.e. both empty lists, use same location for unused hard coded critical patch list and critical patch list passed to Win3 2021-07-22 23:12:56 -04:00
Kenneth J Davis a193ba3116 from dosemu2/fdpp - zero out critical patch list
Personal NetWare Server really writes to these addresses, so
putting 0x0d0c the way DOS does, is not safe.

See dosemu2/dosemu2#428
see 94bd3eb4b5
2021-07-22 23:02:18 -04:00
Kenneth J Davis c6fafbbb2d int 21h/4400h only return low byte of SFT flags if not a device, part of dosemu2/fdpp bug #147 fix - b2b55fc1af 2021-07-22 22:31:45 -04:00
Kenneth J Davis 516a4e7e55 check for unsupported function call in console - from dosemu2/fdpp bug# 101 fix see c6efa7a203 2021-07-22 21:21:01 -04:00
Kenneth J Davis 00daebd468 update to make current FreeDOS style package, not 1.0 version 2021-05-14 22:58:43 -04:00
Kenneth J Davis 46c1ec3b4a
Update index.md with GitHub information 2021-05-14 07:45:55 -04:00
Kenneth J Davis d363e4d283 add example of pushing tag to origin, use HEAD instead of just tagged branch to avoid detached head warning as should be same 2021-05-13 23:38:29 -04:00
Kenneth J Davis 4f7bdda16a update for releases using git instead of svn 2021-05-13 23:30:27 -04:00
Kenneth J Davis 4f73b446c0 update LSM, omit GitHub specific docs files from packages 2021-05-13 22:17:48 -04:00
Kenneth J Davis 60067953b6
Update version in preparation for new release
Next release will be 2.43 (2043)
2021-05-11 22:10:46 -04:00
Kenneth J Davis bd3a1d8047
Update README.md 2021-05-11 22:08:19 -04:00
Kenneth J Davis d3dc83a876
update for Issues on GitHub instead of Sourceforge
update where to report issues and suggestions
2021-05-11 22:02:58 -04:00
Tee-Kiah Chia e8a125281c ia16-elf-gcc: update information on available Ubuntu packages 2021-05-11 21:47:12 -04:00
Tee-Kiah Chia 26626f2fed ia16-elf-gcc: use new SS != DGROUP support for int21_syscall(.) 2021-05-11 21:47:12 -04:00
Piotr Durlej 5ec1e993b4 read_line: skip characters > 255 2021-05-11 21:45:38 -04:00
Piotr Durlej e0818e305b SYS: Fix a bad merge 2021-05-11 21:45:38 -04:00
Piotr Durlej 0a0d55ea53 SYS: Reduce verbosity when the verbose flag is not set 2021-05-11 21:45:38 -04:00
Kenneth J Davis 49d3c8d76b add safety check to FAT12/16 boot sector to warn about breaking sys, update new offset in sys.c for NOPing out use of BIOS boot drive during boot (fix error about boot sector unsupported format) 2021-05-11 21:39:29 -04:00
Ricardo Hanke 66df13c4d8 .gitignore: add setver.sys 2021-03-26 02:19:33 -04:00
Ricardo Hanke 7496c685ea Implement version table support for int21/ah=4b, subfunctions 0 and 1 2021-03-10 22:21:19 -05:00
Andrew Bird 35a18350a0 CI: Update workflow and readme badge 2021-01-15 08:39:46 -05:00
Andrew Bird 7a2748585c CI: Add Github Action 2021-01-09 09:12:47 -05:00
Andrew Bird 4e21e947fc FATFS: rmdir of read only directories is valid
After comparison with DR-DOS 7.01 and MS-DOS 6.22 over at Dosemu2 it
was seen that rmdir of a directory having the _A_RDONLY bit set should
succeed. This patch makes that change.

For reference the test report can be found in the fdpp issue
https://github.com/dosemu2/fdpp/issues/161. An identical patch has
been applied there.
2021-01-07 21:23:10 -05:00
C. Masloch 92ae538f1d boot: allow instsect to match the filesystem ID string
Reference: https://hg.ulukai.org/ecm/instsect/file/33218c729b43/instsect.asm#l1257

lDOS's instsect recently started to default to checking
the filesystem ID string in order to validate that the
boot sector loader to write matches the detected FS.
Using the /S=filename option or building instsect to
include the FreeDOS kernel's loaders would require use
of the /SN switch without this commit.

In addition, boot.asm and oemboot.asm are made to check
that exactly one of the ISFAT12 and ISFAT16 defs is
defined so as to select the FS. Prior to this commit
using both or neither def would silently result in a
broken loader.
2020-11-28 12:11:16 -05:00
Andrew Bird 6e42bb6d7c Travis: Update build env to Ubuntu Focal
1/ Update to Focal environment
2/ Make build stop on first error
3/ Remove unnecessary PPAs
2020-10-14 10:34:27 -04:00
Andrew Bird a7b7ce71d0 GCC build: Remove duplicate argument [#fixes #27]
No need to specify output file in NASMFLAGS as Watcom needs it specified
in the rule. Newer versions of NASM see duplicate output file as an error.
2020-10-14 10:34:27 -04:00
C. Masloch 977023f85c boot: fix Int10.0E expected not to alter al (SBC188)
Reference: https://www.bttr-software.de/forum/forum_entry.php?id=16934

The SBC188 video ROM-BIOS handling returns with al=0Ah (LF)
upon interrupt 10h function 0Eh calls that scroll the screen.
This made the FAT12 boot loader crash when booting FreeDOS
off a 1440 KiB diskette. While a fix is expected from their
side too, hardening the loader too is the right thing to do.

With the way this fix is implemented by this commit, it only
needs one additional byte for the loader. The error message
changes from "Error!." to just "Error!", other than
that the behaviour is the same.

The FAT32 loaders already used zero-terminated strings and
thus were not affected by the dependence.
2020-09-18 13:37:49 -04:00
lpproj ef945b1192 Fix Func 2Dh (Set System Time) sets wrong time 2020-08-21 13:57:26 -04:00
Jiri Malak 093c6dd924 correct I186 and I386 macros definition
correct I186 and I386 macros definition to work with all Open Watcom toolchain versions
command line definition macro has "1" value but in header file it is defined as blank value
anyway I86/I186/I386 macros usage is not transparent, it is definition duplicity in header file and on command line
it is wrong solution even if it works on most of compilers (command line macro re-definition is hidden)
2020-08-02 10:22:56 -04:00
Andrew Bird 5ecfdd572c Travis: Build and test with both GCC and Watcom
Watcom compiler is downloaded and extracted if necessary. On Travis this
will be always, but if you build locally multiple times using
./travis_build, it will use the previous watcom installation.

[fixes #18]
2020-08-01 08:53:46 -04:00
Kenneth J Davis 65e0101c17
Add index.md
Add index.md for initial page shown when viewing docs online via GitHub
2020-05-01 13:54:53 -04:00
Kenneth J Davis 6bfc2c5c2d
Add title and description 2020-05-01 13:50:25 -04:00
Kenneth J Davis 579ae7eb9f Set theme jekyll-theme-tactile 2020-05-01 13:37:10 -04:00
Kenneth J Davis a8e44f0e33 Create CNAME 2020-05-01 13:36:38 -04:00
lpproj 19a6dc1ba4 Fix func 0Bh (Get STDIN Status) always returns AL=FFh with some alternative CON drivers:
* qwikansi.sys (simtelnet: simtelnet/msdos/screen/qwikansi.zip
* most of Japanese input methods (Microsoft MS-IME, ATOK, WXP/WX2/WX3)
2019-12-27 08:18:39 -05:00
lpproj 9eb9b1a046 Fix Func 30h (Get DOS Version) return version 0.0 in config.sys 2019-12-19 21:07:06 -05:00
Tee-Kiah Chia 6a29f57715 int2f: fix call interface around syscall_MUX14( ) (inthndlr.c)
The issues are similar to those surrounding int2F_12_hanndler( )
(see https://github.com/FDOS/kernel/issues/11).
2019-12-09 06:23:12 -05:00
Tee-Kiah Chia c07577cbfb (Mostly) fix gcc-ia16 code for non-stack-switching int21 funcs. 2019-12-09 06:23:12 -05:00
Tee-Kiah Chia 0114ab3be4 int2f: fix call interface around int2F_12_handler( )
This changes the interface between reloc_call_int2f_handler
(int2f.asm) and int2F_12_handler( ) (inthndlr.c) so that

  - int2F_12_handler( ) will not try to output values to its
    caller by passing "back" input parameter values
  - reloc_call_int2f_handler will switch to an internal
    stack before calling int2F_12_handler( ), so that SS ==
    DGROUP as expected by the latter.

This partly addresses https://github.com/FDOS/kernel/issues/11 .

(The call to syscall_MUX14( ) in int2f.asm seems to have
similar issues, and should probably also be updated.)
2019-12-09 06:23:12 -05:00
Andrew Bird 241875a742 Make: Allow clean and clobber to work with gcc
Currently the sed trickery for gcc is only setup on the all target, but
if we want to do `make COMPILER=gcc clean all` the clean will fail.
Setup and remove the GNUmakefiles for each main target.
2019-12-08 09:28:56 -05:00
Kenneth J Davis 7cbd272ca5
Update readme with build status 2019-12-03 19:57:03 -05:00
Andrew Bird 0dc6a02450 int2f: Allow 1217h function to return new CDS entry
DOS provides the interrupt 2f/12xx functions for use by
filesystem redirectors in order that they do not need to access
structures and variables using undocumented methods. Interrupt
2f/1217 is a function used by a redirector to get the CDS entry
corresponding to a drive without iterating the CDS array found
via SYSVARS LOL.
    FreeDOS currently validates the flags in CDS entry before
deciding whether to return the entry to the caller. This behaviour
prevents a redirector receiving the CDS entry corresponding to
an as yet unassigned drive so preventing any new drive mapping.

    I've tested the following flavours of DOS and only FreeDOS
does this.

 # DOS variants returning new CDS entries okay
    DR-DOS
        6.00-930319 7.00 7.01 7.02-971119 7.02-980123 7.03 8.00
    MS-DOS
        3.10 3.20 3.21 3.30-Nec 3.30 3.31 4.01 5.00 6.00 6.20 6.21 6.22
        7.00 7.10
    PC-DOS
        3.00-Compaq 3.00 3.10-850307 3.10-850422 3.10-Compaq 3.20-851230
        3.20-860221 3.30 3.31-Compaq 4.00 4.01 5.00 5.02 6.10 6.30 7.00
        7.10 7.2K

 # DOS variants that return error rather than new CDS entry
    FR-DOS
        1.00 1.10 1.20

    This patch introduces an unvalidated version of get_cds() and calls
it only for the int2f/1217h call, other uses remain as before.
2019-12-02 15:09:23 -05:00
Andrew Bird 687f31fdae Travis: Initial build attempt
Note: Forced Unix scripts to LF endings
2019-12-02 15:06:22 -05:00
Mondgestein a2ad348ed8 Function 30h (Get DOS Version): Get DOS version from PSP
- Upon creation, initialize the PSP version field
    to os_setver_minor / os_setver_major.
  - When calling Function 30h, return the contents
    of the current PSP's version field to the caller.
2019-12-02 12:06:22 -05:00
Lino Mastrodomenico 61499ae6aa Add the full text of the license (GPL v2). (#8)
* Move the text of the GPLv2 to the top-level directory

This to make it easier to find, it also allows to be autodetectable by github and other automated tools.  Note: this is not a license change, the FreeDOS kernel is already released under the GPL v2.
2019-12-01 21:08:56 -05:00
lpproj 6be00f83c1 Fix func 36h (Get free disk space) fails in some redirectors:
- David Maxey's PHANTOM (Undocumented DOS 2nd edition)
  - Novell CD-ROM extension NWCDEX (DR DOS 7.03)
2019-11-08 18:41:50 -05:00
C. Masloch 61647299c6 dosfns.c: only copy to current_ldt if pointer is valid 2019-11-08 18:19:11 -05:00
C. Masloch 6fbb1d0043 inthndlr.c: in Int21.43FF, dispatch DosMkRmdir on CL not AH 2019-11-08 18:19:11 -05:00