• C 96.6%
  • Makefile 3.4%
Find a file
2023-01-30 16:13:39 +03:00
anarch@eeb04a0797 bump submodule to v1.1 2023-01-27 23:36:18 +03:00
experiments move SmallerC version to experiments 2023-01-27 02:11:44 +03:00
.gitmodules bump submodule to v1.1 2023-01-27 23:36:18 +03:00
djgpp_main.c bump submodule to v1.1 2023-01-27 23:36:18 +03:00
keyboard.h implement keyboard support 2023-01-27 23:04:57 +03:00
LICENSE add cc0 license 2023-01-16 18:14:27 +03:00
make_codes.h implement keyboard support 2023-01-27 23:04:57 +03:00
Makefile implement keyboard support 2023-01-27 23:04:57 +03:00
README.md mention cwsdpmi in readme 2023-01-30 16:13:39 +03:00
vga.h rearrange loops 2023-01-27 19:51:04 +03:00

Building

Use DJGPP cross-compiler or install DJGPP on dos.

$ make
$ dosbox-x anarch.exe

If DJGPP is not insalled on DOS, you need to download and place the CWSDPMI server executable (CWSDPMI.EXE from csdpmi7b.zip) in the same directory as anarch.exe in order to be able to run it.

To build code that uses SmallerC, you should build the compiler with -D_MAX_IDENT_TABLE_LEN set to a high value. I switched to DJGPP because performance of the program compiled by SmallerC was too low.

TODO

  • Sound

Borrowed code

Drawing in unchained mode, page flipping from VGA programming tutorial ("Please feel free to copy this source code");

sleepMs, getTimeMs from anarch-dos by Wuuff (public domain);

vga_on, vga_off, com.ld from DOS Defender (public domain);

Handling keyboard from Handling Interrupts.