From 676e5f342c49b655bbc936225bf4524d1fbedc36 Mon Sep 17 00:00:00 2001 From: sparky4 Date: Fri, 12 Dec 2014 13:57:49 -0600 Subject: [PATCH] modified: scroll.exe modified: src/lib/ems.c modified: src/lib/lib_head.h modified: src/scroll.c --- scroll.exe | Bin 54323 -> 53819 bytes src/lib/ems.c | 30 ------------- src/lib/lib_head.h | 3 ++ src/scroll.c | 107 +++++++++++++++++++++++++++++---------------- 4 files changed, 72 insertions(+), 68 deletions(-) diff --git a/scroll.exe b/scroll.exe index c2c6c3fc1ecbe1e9eef169b0f4d1fb3ea0adf0c8..93b99f1f41501c26158d7978bec310d603913088 100644 GIT binary patch delta 15657 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 delta 16728 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 0) - *ptr++ = *str++; - } - - void emmget(int page, short *str, int n) - { - /* - Move 'n' bytes from the specified expanded memory page into - conventional - memory - */ - - char far *ptr; - - ptr = pageframeEMS() + page * 16384; - while(n-- > 0) - *str++ = *ptr++; - } diff --git a/src/lib/lib_head.h b/src/lib/lib_head.h index 19b59f18..560ea8ad 100644 --- a/src/lib/lib_head.h +++ b/src/lib/lib_head.h @@ -104,4 +104,7 @@ void wait(clock_t wait); +/* THIS FUNCTION CONVERTS A POINTER TO AN INTEL LONG */ +//int long ptr2long(char *p); + #endif/*_LIBHEAD_H_*/ diff --git a/src/scroll.c b/src/scroll.c index 68683202..fb0cde52 100644 --- a/src/scroll.c +++ b/src/scroll.c @@ -5,8 +5,10 @@ #include "src\lib\wtest\wtest.c" #include "src\lib\ems.c" -//word far *clock= (word far*) 0x046C; /* 18.2hz clock */ - +//word far *clock= (word far*) 0x046C; /* 18.2hz clock */ + +int emmhandle,ist; + typedef struct { bitmap_t *data; word tileHeight; @@ -43,11 +45,11 @@ typedef struct { int setx; //NOT USED YET! player sprite sheet set on the image x int sety; //NOT USED YET! player sprite sheet set on the image y word q; //loop variable - word d; //direction + word d; //direction + bitmap_t data; //supposively the sprite sheet data int hp; //hitpoints of the player } actor_t; - map_t allocMap(int w, int h); void initMap(map_t *map); void mapScrollRight(map_view_t *mv, byte offset); @@ -66,17 +68,15 @@ void animatePlayer(map_view_t *src, map_view_t *dest, /*map_view_t *top, */sword //#define LOOPMAX (TILEWH/SPEED) //place holder definitions -#define MAPX 200 -#define MAPY 150 +#define MAPX 40 +#define MAPY 30 #define TRIGGX 10 -#define TRIGGY 9 - +#define TRIGGY 9 + void main() { bitmap_t ptmp;//, npctmp; // player sprite const char *cpus; static int persist_aniframe = 0; /* gonna be increased to 1 before being used, so 0 is ok for default */ - int emmhandle; - XMOVE mm; page_t screen, screen2, screen3; map_t map; map_view_t mv, mv2, mv3; @@ -84,21 +84,13 @@ void main() { byte *pal; byte *ptr; actor_t player; - //actor_t npc0; + //actor_t npc0; - if(isEMS()) printf("%d\n", coretotalEMS()); - if(isEMS()) - { - emmhandle = mallocEMS(coretotalEMS()); - mapEMS(emmhandle, 0, 0); - //halp! - //move_emem((XMOVE *)&map); - //printf("%d\n", emmhandle); - printf("%d\n", coretotalEMS()); - } + if(isEMS() || checkEMS()){ printf("%d\n", coretotalEMS()); emmhandle = mallocEMS(coretotalEMS()); } /* create the map */ map = allocMap(MAPX,MAPY); //20x15 is the resolution of the screen you can make maps smaller than 20x15 but the null space needs to be drawn properly + //if(isEMS()) printf("%d tesuto\n", coretotalEMS()); initMap(&map); mv.map = ↦ mv2.map = ↦ @@ -107,10 +99,39 @@ void main() { /* draw the tiles */ ptr = map.data; /* data */ - ptmp = bitmapLoadPcx("ptmp.pcx"); // load sprite - //if(isEMS()) emmmove(emmhandle,ptmp,sizeof(ptmp)+ 1); - //npctmp = bitmapLoadPcx("ptmp1.pcx"); // load sprite - + ptmp = bitmapLoadPcx("ptmp.pcx"); // load sprite + //npctmp = bitmapLoadPcx("ptmp1.pcx"); // load sprite + + /*if(isEMS()) + { + XMOVE mm; + mm.length=sizeof(map); + mm.sourceH=0; + mm.sourceOff=(long)↦ + mm.destH=emmhandle; + mm.destOff=1; + //halp! + ist = move_emem(&mm); + printf("%d\n", coretotalEMS()); + if(!ist){ dealloc_emem(emmhandle); exit(5); } + //printf("%d\n", emmhandle); + } + + if(isEMS()) + { + XMOVE mm; + mm.length=emmhandle; + mm.sourceH=0; + mm.sourceOff=(long)&ptmp; + mm.destH=emmhandle; + mm.destOff=0; + //halp! + ist = move_emem(&mm); + printf("%d\n", coretotalEMS()); + if(!ist){ dealloc_emem(emmhandle); exit(5); } + //printf("%d\n", emmhandle); + } +*/ /* save the palette */ pal = modexNewPal(); modexPalSave(pal); @@ -171,7 +192,7 @@ void main() { modexClearRegion(bg->page, 5*16, 5*16, 16, 16, 255); modexShowPage(spri->page); - while(!keyp(1) && player.hp!=0) + while(!keyp(1) && player.hp>0) { //top left corner & bottem right corner of map veiw be set as map edge trigger since maps are actually square //to stop scrolling and have the player position data move to the edge of the screen with respect to the direction @@ -474,7 +495,8 @@ void main() { modexFadeOff(4, ptmp.palette); modexPalBlack(); modexLeave(); - setkb(0); + setkb(0); + //system("mem /E /P"); printf("Project 16 scroll.exe\n"); printf("tx: %d\n", bg->tx); printf("ty: %d\n", bg->ty); @@ -498,11 +520,10 @@ void main() { //xmsreport(); if(isEMS()) { - printf("%d\n", get_emem()); - printf("%d\n", coretotalEMS()); - dealloc_emem(emmhandle); - //freeEMS(emmtotal); - printf("%d\n", coretotalEMS()); + printf("%d\n", get_emem()); + printf("%d\n", coretotalEMS()); + dealloc_emem(emmhandle); + printf("%d\n", coretotalEMS()); } switch(detectcpu()) { @@ -523,15 +544,25 @@ allocMap(int w, int h) { result.width =w; result.height=h; - //if(!isEMS() || !checkEMS()) - result.data = malloc(sizeof(byte) * w * h); - //else - // result.data = (byte *)alloc_emem(sizeof(byte) * w * h); + result.data = malloc(sizeof(byte) * w * h); + //result.data = (byte *)alloc_emem(((int)sizeof(byte) * w * h)/1024); + /*if(isEMS() || checkEMS()) + { + XMOVE mm; + //emmhandle = mallocEMS(coretotalEMS());//alloc_emem((int)sizeof(map)) + mm.length=sizeof(result); + mm.sourceH=0; + mm.sourceOff=ptr2long(&result); + mm.destH=emmhandle; + mm.destOff=0; + ist = move_emem(&mm); + if(!ist){ dealloc_emem(emmhandle); exit(5); } + printf("%d\n", coretotalEMS()); + }*/ return result; } - void initMap(map_t *map) { /* just a place holder to fill out an alternating pattern */ @@ -748,7 +779,7 @@ mapDrawCol(map_view_t *mv, int tx, int ty, word x) { /*void npcmove(map_view_t bg, map_view_t fg, ) { -}*/ +}*/ void animatePlayer(map_view_t *src, map_view_t *dest, /*map_view_t *top, */sword d, short scrolloffsetswitch, int x, int y, int ls, int lp, bitmap_t *bmp) -- 2.39.5