Commit Graph

371 Commits

Author SHA1 Message Date
Andrew Bird
92f9a5125e CI: Test DOS built kernels for existence and boot 2024-02-24 17:38:15 +00:00
Andrew Bird
6092afc74d Build: Country submodule now has production target
When country was converted to a submodule (by me) the production
installation target was hacked onto the kernel subdirectory Makefile
which wasn't ideal. Introduce a production target into the country
Makefile that does the installation. Since we want the submodule to be
buildable standalone, we can't include the variable definitions from the
upper level, such as $(DIRSEP) and $(CP), so the caller has to pass those
in at build time if using the production target.

Tested on Linux (GCC + Watcom) and DOS (Watcom)
2024-02-24 17:38:14 +00:00
Andrew Bird
3c97674cbf Country: Update submodule 2024-02-24 17:38:13 +00:00
Andrew Bird
4c58d4c7e2 CI: Add DOS builds
1/ Watcom 1.9
   a) Kernel and other directories building fine
   b) Share doesn't support Watcom for TSR.

2/ Turbo C 2.01
   a) Kernel build needs some functions that are missing.
   b) Sys not building for the same reason,
   c) Share building nicely.
   d) Need to figure out how to get tc201 compiler to Github Actions

3/ IA16-GCC
   a) not currently supported by build.bat so commented out
2024-02-24 17:37:41 +00:00
Andrew Bird
be11b50252 Share: Update submodule 2024-02-23 15:00:48 +00:00
E. C. Masloch
8552d833bb boot: fix boot loader assembly listing files [fixes #97] 2024-02-18 14:20:56 -05:00
E. C. Masloch
1cd4a75e98 sys: fix, allow odd magic offsets to work as expected
Created using this scriptlet:

sed -i -re 's/\(\(int \*\)newboot\)\[([0-9A-Fa-fxX]+)\/sizeof\(int\)\]/\*\(int \*\)\(\&newboot\[\1\]\)/g' sys/sys.c
2024-02-18 14:20:56 -05:00
E. C. Masloch
fc3032deb7 oemboot: use magic offsets macro 2024-02-18 14:20:56 -05:00
E. C. Masloch
19058ff1bf sys: correct a magic offset (problem: odd offsets won't work) 2024-02-18 14:20:56 -05:00
E. C. Masloch
9783ac97e0 boot32, boot32lb: mark magic offsets with macro 2024-02-18 14:20:56 -05:00
E. C. Masloch
d9b0615ad5 magic: prepare for FAT32 use 2024-02-18 14:20:56 -05:00
E. C. Masloch
5a6d3a449f makefile: list magic.mac for boot 2024-02-18 14:20:56 -05:00
E. C. Masloch
bcf3c1701a magic.mac: extract from boot.asm 2024-02-18 14:20:56 -05:00
E. C. Masloch
4ae6f22249 sys, boot: mark additional magic offsets 2024-02-18 14:20:56 -05:00
E. C. Masloch
eb75bea6c1 boot: display new magic offset in hexadecimal 2024-02-18 14:20:56 -05:00
E. C. Masloch
4d30378bb6 boot: extract magicoffset macro 2024-02-18 14:20:56 -05:00
E. C. Masloch
b5414153c6 boot: display new magic offset (but in decimal) 2024-02-18 14:20:56 -05:00
E. C. Masloch
f036741b6b sys: update magic offset of OEM FAT12 jmp offset 2024-02-18 14:20:56 -05:00
E. C. Masloch
55f2a81406 sys: check default content of all magic offset patchsites 2024-02-18 14:20:56 -05:00
E. C. Masloch
0776645017 boot: move READBUF and READADDR_OFF/SEG to allow 8 KiB sector size 2024-02-18 14:20:56 -05:00
E. C. Masloch
5cbe1ffcf0 boot: fix and update memory layout map 2024-02-18 14:20:56 -05:00
E. C. Masloch
ef10fa11e3 boot32, boot32lb: fix and update memory layout maps 2024-02-18 14:20:56 -05:00
E. C. Masloch
2aa51a1992 boot: move cluster list to 1FE0h:2200h (128 KiB file, up to /L 0x200)
1FE0h:2200h happens to be linear 22000h. Like the memory map
update to the FAT32 loaders for #127 this allows to load a
file of up to 128 KiB (rounded to cluster size) with an /L
parameter for SYS of up to 0x200.
2024-02-18 14:20:56 -05:00
E. C. Masloch
4682e23b57 boot: rename FATBUF to CLUSTLIST to better reflect use (oemboot pick) 2024-02-18 14:20:56 -05:00
E. C. Masloch
9ac407ae63 boot32, boot32lb: avoid big file overlap with FAT sector [fixes #127] 2024-02-18 14:20:56 -05:00
Kenneth J Davis
edd0732433
move FAR item to own line 2024-02-11 08:59:32 -05:00
Kenneth J Davis
a593799eb0
add some comments regarding relocation of kernel during configuration 2024-02-10 17:38:19 -05:00
Kenneth J Davis
114236da17
allow selection of COM port for debug prints easily overridden during compile, e.g. build.bat /D DEBUG_PRINT_COMPORT /V 2 2024-02-10 17:36:33 -05:00
Kenneth J Davis
716f732e3a
rework to make handling flags simpler, from ecm 2024-02-10 17:34:00 -05:00
Kenneth J Davis
7a73120228
copy over debug print to COM ports from UNSTABLE branch 2024-02-10 17:27:23 -05:00
Kenneth J Davis
795c1df742
prevent possible hang on loading device driver, from ecm 2024-02-08 19:24:55 -05:00
Andrew Bird
db949bf0b2
Merge pull request #136 from andrewbird/ci-update
CI: Update github actions and runner versions
2024-02-07 12:46:05 +00:00
Andrew Bird
c0467ef7e3 CI: Update github actions and runner versions 2024-02-07 12:35:27 +00:00
Kenneth J Davis
6a94489230
handle wmake and gmake differences
wmake requires changing into directory as ignores -C option, gmake ignores cd into directory so requires -C subdir option
2024-02-06 18:26:26 -05:00
Kenneth J Davis
19c35ee574
use tab not spaces for Makefile 2024-02-06 16:36:15 -05:00
Bocke
9b6a8579d1 Make build work on DOS
Double ampersands are not supported by DOS command line interpreters. The previous would work only on (modern-ish) Windows.
2024-02-05 10:47:59 -05:00
Bernd Boeckmann
093dea9a7b initdisk.c: format specifier fixes 2 2024-02-04 20:44:19 -05:00
Kenneth J Davis
4ffc5c10a5 fix bug#121 don't look for 123? unless still looking for verb at start of line
allows correctly parsing lines like SHELL=4DOS.COM which otherwise strips 4 leading to looking for shell of "DOS.COM"
2024-02-04 20:37:43 -05:00
Kenneth J Davis
f7bf549544 correct xor to test not clear value, invert test so 808x is 0 and NEC is 1 matching returned value 2024-02-04 19:43:09 -05:00
Kenneth J Davis
07155e6184 fix bug#123, detect NEC V20/V30 as 186 instead of only 8086/8088, based on ecm-pushbx ldebug
see https://hg.pushbx.org/ecm/ldebug/file/7f3440d5824d/source/init.asm#l3071

(cherry picked from commit 5fdcc1d214b821fde33a5bd92ea7d7c0134a2056)
2024-02-04 19:43:09 -05:00
Kenneth J Davis
431be02b0a rework update_dcb() to avoid potential access uninitialized memory 2024-02-03 22:00:17 -05:00
C. Masloch
1c2f541689 intr: avoid random trace in (init_)call_intr 2024-02-03 21:04:11 -05:00
C. Masloch
3ef6d61609 main: fix, only init env once in PSPInit, do not set cmdline tail 2024-02-03 21:01:17 -05:00
C. Masloch
ab3cac6d0c allow gcc build to succeed with -DWIN31SUPPORT 2024-02-03 20:59:11 -05:00
E. C. Masloch
42d3ae6aac boot32, boot32lb: fix EDR-DOS incompatibility [fixes #119] 2024-02-03 20:55:57 -05:00
E. C. Masloch
53d3fd556b boot32: display an error indicator instead of silently waiting 2024-02-03 20:55:57 -05:00
E. C. Masloch
a189ceb650 boot32: comment out unused print function 2024-02-03 20:55:57 -05:00
E. C. Masloch
630735e14a boot32: save another byte, use loop instruction 2024-02-03 20:55:57 -05:00
E. C. Masloch
3415ad93c9 boot32: fix very old bug, init high byte of fat_secshift
It turned out that this loader was severely broken for many years,
at least since 2012 (the git repo's creation). This variable was
read as a word to set cx for a loop, but only the low byte had
been written. The high byte happened to be 0EEh so cn_loop would
always zero out the FAT sector to read.

This _happened_ to work if the first root directory cluster and
all the kernel file clusters were all referenced in the first
sector of the FAT. Otherwise it would blow up.
2024-02-03 20:55:57 -05:00
E. C. Masloch
52136b27d6 boot32: optimise read sector increment to prepare for DL patch 2024-02-03 20:55:57 -05:00