Commit Graph

24 Commits

Author SHA1 Message Date
Juhani Krekelä e161d14321 Reset floppy disks upon read failure 2022-03-29 09:01:56 +03:00
Juhani Krekelä 48436ef9bd Put debug output behind debug define in io.asm 2022-03-29 09:01:56 +03:00
Juhani Krekelä 1c62da4e2d Update README with changes to the build system 2021-09-26 13:47:41 +03:00
Juhani Krekelä b9c83b11cd Implement date/time 2021-09-26 13:44:03 +03:00
Juhani Krekelä 68030372b7 Load and execute command.com 2021-09-26 11:46:50 +03:00
Juhani Krekelä 1967c06b85 Fix shift used for converting KiB to paragraphs
The old code was essentially a no-op due to x86 taking shifts mod 32.
This lead DOS to believe that it had 10KiB of memory, which is not
enough to contain io.sys, the DOS kernel, and command.com. This causes
command.com to overwrite the DOS kernel when it goes to relocate itself
at the end of the memory, leading to system crash.
2021-09-26 11:33:03 +03:00
Juhani Krekelä 2cab8ae6cf Update LICENSE and include it in disk images 2021-09-11 20:00:40 +03:00
Juhani Krekelä 9a7e047d57 Implement console IO 2021-09-10 19:39:58 +03:00
Juhani Krekelä 24e82f0fcd Rename dosbox.conf to dosbox-build.conf
Dosbox will override the default configuration with `dosbox.conf` if
launched with `dosbox .` in the source directory. Only override it for
building, not for interactive usage.
2021-09-10 19:36:11 +03:00
Wolfgang Müller d7778ecaef Introduce project-specific dosbox.conf
With the stock configuration, DOSBox limits the amount of instructions
it emulates each millisecond to a value it guesses. This is a reasonable
default to have when emulating games or other software from the time,
but woefully slow for our purposes of compilation.

Since the user's configuration file will most likely be tailored to
other uses, it makes sense, then, to use a project-specific
configuration here and override any user configuration. For now, set
only the cycles setting to 'max'.

The DOSBox invocation in the Makefile gets a bit long with the addition
of the -conf flag, so contain it in a variable instead.
2021-09-07 21:42:15 +03:00
Juhani Krekelä 5d9bc24eb2 Don't unnecessarily invoke dosbox when cleaning 2021-09-07 12:42:10 +03:00
Juhani Krekelä 7c6814f63c Add files used with Bochs debugging to .gitignore 2021-09-07 12:32:16 +03:00
Juhani Krekelä 7d99699b7e Open command.com in io.sys 2021-09-07 12:30:59 +03:00
Juhani Krekelä 007af45879 Use `db` instead of `dw` for number of FATs
Using `dw` ended up shifting all the values over by one byte, making DOS
think our 320K floppy was actually 16MiB in size, and had 46 sectors of
FAT instead of 1. This further lead it trash the setup stack and fail to
locate the disk directory.
2021-09-07 12:27:44 +03:00
Juhani Krekelä ee9acef473 Use mkfs.fat instead of mkdosfs for better portability 2021-08-26 13:12:38 +03:00
Juhani Krekelä 8ae365f4a7 Split build batch files to support parallel make 2021-08-26 13:07:31 +03:00
Juhani Krekelä ab809d01b1 Include development executables in the disk image 2021-08-26 12:38:40 +03:00
Juhani Krekelä b3ca33653f Start work on io.sys 2021-08-26 10:11:20 +03:00
Juhani Krekelä 094def1194 Add bootloader 2021-08-26 10:08:41 +03:00
Juhani Krekelä 86c9baa87b Use CR-LF endings everywhere 2021-08-26 06:24:26 +03:00
Juhani Krekelä 29e167c340 Add ordos.sys 2021-08-26 06:21:02 +03:00
Juhani Krekelä 92df43f146 Simplify licensing 2021-08-25 00:56:56 +03:00
Juhani Krekelä 2d3dcc0d7e Add command.com 2021-08-25 00:29:32 +03:00
Juhani Krekelä 55914559b9 First commit 2021-08-24 23:33:35 +03:00