From c17fa8e92a428fc35f2422b796caceeb748ee795 Mon Sep 17 00:00:00 2001 From: John Tsiombikas Date: Sat, 17 Sep 2022 17:53:36 +0300 Subject: [PATCH 1/1] initial commit --- .gitignore | 7 +++++++ Makefile | 42 ++++++++++++++++++++++++++++++++++++++++++ src/main.c | 22 ++++++++++++++++++++++ src/video.c | 10 ++++++++++ src/video.h | 6 ++++++ 5 files changed, 87 insertions(+) create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 src/main.c create mode 100644 src/video.c create mode 100644 src/video.h diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f784744 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +*.obj +*.swp +*.exe +*.lnk +*.occ +*.err +*.map diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..58ff52f --- /dev/null +++ b/Makefile @@ -0,0 +1,42 @@ +!ifdef __UNIX__ +obj = src/main.obj src/video.obj +!else +obj = src\main.obj src\video.obj +!endif +bin = dosplash.exe + +warn = -w=3 +dbg = -d3 + +CC = wcc +LD = wlink +CFLAGS = $(warn) $(dbg) $(opt) $(def) -zq -bt=dos -ml + +$(bin): $(obj) + %write obj.lnk $(obj) + $(LD) debug all option map name $@ system dos file { @obj } + +.c: src +.asm: src + +cflags.occ: Makefile + %write $@ $(CFLAGS) + +.c.obj: .autodepend + $(CC) -fo=$@ @cflags.occ $[* + +.asm.obj: + nasm -f obj -o $@ $[*.asm + +!ifdef __UNIX__ +clean: .symbolic + rm -f $(obj) + rm -f $(bin) + rm -f cflags.occ obj.lnk +!else +clean: .symbolic + del *.obj + del obj.lnk + del cflags.occ + del $(bin) +!endif diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..9c5cd90 --- /dev/null +++ b/src/main.c @@ -0,0 +1,22 @@ +#include +#include +#include +#include +#include +#include "video.h" + +int main(int argc, char **argv) +{ + set_video_mode(0x13); + + memset(MK_FP(0xa000, 0), 4, 64000); + + for(;;) { + if(kbhit()) { + if(getch() == 27) break; + } + } + + set_video_mode(3); + return 0; +} diff --git a/src/video.c b/src/video.c new file mode 100644 index 0000000..e17f1f7 --- /dev/null +++ b/src/video.c @@ -0,0 +1,10 @@ +#include +#include "video.h" + +void set_video_mode(int mode) +{ + union REGS regs = {0}; + + regs.x.ax = mode; + int86(0x10, ®s, ®s); +} diff --git a/src/video.h b/src/video.h new file mode 100644 index 0000000..28725bd --- /dev/null +++ b/src/video.h @@ -0,0 +1,6 @@ +#ifndef VIDEO_H_ +#define VIDEO_H_ + +void set_video_mode(int mode); + +#endif /* VIDEO_H_ */ -- 1.7.10.4