From d03dce3e0df47637bf23f9e2a5b26cf4d32a79f5 Mon Sep 17 00:00:00 2001 From: sparky4 Date: Fri, 28 Nov 2014 12:51:32 -0600 Subject: [PATCH 1/1] modified: Project 16.bfproject new file: lib/wtest/WTEST.EXE new file: lib/wtest/makefile new file: lib/wtest/wtest.c new file: lib/wtest/wtest.h modified: scroll.c modified: scroll.exe --- Project 16.bfproject | 24 ++++++++--------- lib/wtest/WTEST.EXE | Bin 0 -> 9352 bytes lib/wtest/makefile | 14 ++++++++++ lib/wtest/wtest.c | 63 +++++++++++++++++++++++++++++++++++++++++++ lib/wtest/wtest.h | 7 +++++ scroll.c | 14 ++++++++-- scroll.exe | Bin 47800 -> 48230 bytes 7 files changed, 108 insertions(+), 14 deletions(-) create mode 100644 lib/wtest/WTEST.EXE create mode 100644 lib/wtest/makefile create mode 100644 lib/wtest/wtest.c create mode 100644 lib/wtest/wtest.h diff --git a/Project 16.bfproject b/Project 16.bfproject index 19290bca..af705867 100644 --- a/Project 16.bfproject +++ b/Project 16.bfproject @@ -1,13 +1,13 @@ c2e.convert_special: 0 e2c.convert_num: 0 openfiles: /dos/z/16/doc/project.txt:60:0:0: -openfiles: /dos/z/16/scroll.c:3046:2949:1: +openfiles: /dos/z/16/scroll.c:10823:10140:1: openfiles: /dos/z/16/modex16.c:6838:6141:0: openfiles: /dos/z/16/modex16.h:1057:344:0: openfiles: /dos/z/16/pcxtest.c:753:655:0: -openfiles: /dos/z/16/dos_kb.c:3759:2440:0: +openfiles: /dos/z/16/dos_kb.c:3759:0:0: openfiles: /dos/z/16/dos_kb.h:464:0:0: -openfiles: /dos/z/16/lib/lib_head.h:1738:1347:0: +openfiles: /dos/z/16/lib/lib_head.h:2536:0:0: openfiles: /dos/z/16/makefile:181:0:0: openfiles: /dos/z/keen-src/id_mm.c:1835:14248:0: openfiles: /dos/z/keen-src/id_mm.h:0:1024:0: @@ -33,6 +33,7 @@ ssearch_text: dxThresh snr_casesens: 1 view_blocks: 1 name: project 16 +replacelist: wPage(spri replacelist: 34); replacelist: bg replacelist: dest @@ -47,7 +48,6 @@ replacelist: modexShowPage(spri replacelist: player.tx == player.ty replacelist: TRIGGY replacelist: TRIGGX -replacelist: play-> fb_show_hidden_f: 0 editor_tab_width: 4 show_visible_spacing: 1 @@ -95,22 +95,22 @@ recent_files: file:///dos/z/16/16/lib/x/MODEX.H recent_files: file:///dos/z/16/16/modex16/dos_kb.h recent_files: file:///dos/z/16/doc/16.16 recent_files: file:///dos/z/16/doc/16story.txt +recent_files: file:///dos/z/16/README recent_files: file:///dos/z/16/scroll.c recent_files: file:///dos/z/16/doc/project.txt -recent_files: file:///dos/z/16/lib/lib_head.h recent_files: file:///dos/z/16/dos_kb.h recent_files: file:///dos/z/16/dos_kb.c -recent_files: file:///dos/z/16/modex16.h -recent_files: file:///dos/z/16/pcxtest.c -recent_files: file:///dos/z/16/README +recent_files: file:///dos/z/16/lib/lib_head.h recent_files: file:///dos/z/16/modex16.c -recent_files: file:///dos/z/16/makefile +recent_files: file:///dos/z/16/modex16.h +recent_files: file:///dos/z/keen-src/id_rf.h recent_files: file:///dos/z/16/types.h recent_files: file:///dos/z/keen-src/id_mm.h -recent_files: file:///dos/z/keen-src/id_mm.c +recent_files: file:///dos/z/16/makefile +recent_files: file:///dos/z/16/pcxtest.c recent_files: file:///dos/z/keen-src/id_rf_a.asm +recent_files: file:///dos/z/keen-src/id_mm.c recent_files: file:///dos/z/keen-src/id_rf.c -recent_files: file:///dos/z/keen-src/id_rf.h snr_replacetype: 0 savedir: file:///dos/z/16 spell_check_default: 1 @@ -122,6 +122,7 @@ snr_escape_chars: 0 htmlbar_view: 0 spell_lang: en ssearch_dotmatchall: 0 +searchlist: return searchlist: enter searchlist: bg->tx == bg->ty searchlist: data @@ -136,7 +137,6 @@ searchlist: MAPY/2 searchlist: MAPX/2 searchlist: mapDrawTile searchlist: dxThresh -searchlist: player. autocomplete: 1 outputb_show_all_output: 0 bookmarks_show_mode: 0 diff --git a/lib/wtest/WTEST.EXE b/lib/wtest/WTEST.EXE new file mode 100644 index 0000000000000000000000000000000000000000..c02a8f8c6a397b076c616d38072b08c62dba4f44 GIT binary patch literal 9352 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 s25vDP8NS7*zr>Y|FeAkJOE$&LHsWeMjS2v STACK + POP AX ; STACK -> AX + AND AX, 00FFFh ; clear 12-15 bits (they are always 1 on 8086/8088 and 80186/80188) + PUSH AX ; AX -> STACK + POPF ; STACK -> FLAGS + ; this is where magic happen + PUSHF ; FLAGS -> STACK + POP AX ; STACK -> AX + AND AX, 0F000h ; 0-11 bits aren't important to us + CMP AX, 0F000h ; check if all 12-15 bits are set (simple comparision) + JNE _286p ; if no, 286+ CPU + MOV cputype, 0 ; if yes, we are done, set cputype to 0 and end this + JMP _done + _286p: + ; now check if its 286 or newer + PUSHF ; FLAGS -> STACK + POP AX ; STACK -> AX + OR AX, 07000h ; set 12-14 bits (they are always cleared by 286 if its real mode) + PUSH AX ; AX -> STACK + POPF ; STACK -> FLAGS + ; this is where magic happen + PUSHF ; FLAGS -> STACK + POP AX ; STACK -> AX + TEST AX, 07000h ; check if at least 1 bit in 12-14 bits range is set (15th won't be set anyway) + JNZ _386p ; not all bits clear, its 386+ + MOV cputype, 1 ; all bits clear, its 286, we are done + JMP _done + _386p: + MOV cputype, 2 ; its 386 or newer, but we don't care if its newer at this point + _done: + POPF ; restore flags we backed up earlier + } + return cputype; +} + +/*int main(int argc, char **argv) +{ + const char *cpus; + unsigned char cput; + + cput = detectcpu(); + switch(cput) + { + case 0: cpus = "8086/8088 or 186/88"; break; + case 1: cpus = "286"; break; + case 2: cpus = "386 or newer"; break; + default: cpus = "internal error"; break; + } + printf("detected CPU type: %s\n", cpus); + return 0; +}*/ + diff --git a/lib/wtest/wtest.h b/lib/wtest/wtest.h new file mode 100644 index 00000000..81455803 --- /dev/null +++ b/lib/wtest/wtest.h @@ -0,0 +1,7 @@ +#ifndef _WTEST_H_ +#define _WTEST_H_ +#include + +static unsigned char detectcpu(void); + +#endif/*_WTEST_H_*/ diff --git a/scroll.c b/scroll.c index 919aabcb..846fcff5 100644 --- a/scroll.c +++ b/scroll.c @@ -2,6 +2,7 @@ #include #include #include "dos_kb.h" +#include "lib\wtest\wtest.c" //word far *clock= (word far*) 0x046C; /* 18.2hz clock */ @@ -68,6 +69,7 @@ void animatePlayer(map_view_t *src, map_view_t *dest, /*map_view_t *top, */short void main() { bitmap_t ptmp; // player sprite word q=1; + const char *cpus; static int persist_aniframe = 0; /* gonna be increased to 1 before being used, so 0 is ok for default */ page_t screen, screen2, screen3; map_t map; @@ -337,7 +339,15 @@ break; printf("player.triggy: %d\n", player.triggery); printf("dxThresh: %d\n", bg->dxThresh); printf("dyThresh: %d\n", bg->dyThresh); - printf("temporary player sprite http://www.pixiv.net/member_illust.php?mode=medium&illust_id=45556867"); + printf("temporary player sprite http://www.pixiv.net/member_illust.php?mode=medium&illust_id=45556867\n"); + switch(detectcpu()) + { + case 0: cpus = "8086/8088 or 186/88"; break; + case 1: cpus = "286"; break; + case 2: cpus = "386 or newer"; break; + default: cpus = "internal error"; break; + } + printf("detected CPU type: %s\n", cpus); } @@ -598,5 +608,5 @@ animatePlayer(map_view_t *src, map_view_t *dest, /*map_view_t *top, */short d1, //modexClearRegion(top->page, 66, 66, 2, 40, 0); //modexCopyPageRegion(dest->page, top->page, 66, 66, 66, 66, 2, 40); //turn this off if XT - modexWaitBorder(); + if(detectcpu() > 0) modexWaitBorder(); } diff --git a/scroll.exe b/scroll.exe index 8f65d82007857f862ce2115722d52869cbf68258..b7a0172709b453d24aa1f36f6fef23b74d573f74 100644 GIT binary patch delta 17122 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 sQn4lezy(2l{<7fl_r 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 L#qx*$fzba0wKVgZ -- 2.39.2