]> 4ch.mooo.com Git - 16.git/commitdiff
added paging to controls
authorRobert Lowe <pngwen@acm.org>
Mon, 8 Sep 2014 01:48:12 +0000 (21:48 -0400)
committerRobert Lowe <pngwen@acm.org>
Mon, 8 Sep 2014 01:48:12 +0000 (21:48 -0400)
1  2 
16/modex16/scroll.c
16/modex16/scroll.exe

index 09b91f767010a16a0fbc5db2e985bd945f8a3b69,43edbcd589949a3f8c9ff53a7357ec85abea6084..89a06aeb5a670ed19d1d8b92d5dbc74bfa621b7d
@@@ -1,8 -1,9 +1,9 @@@
  #include "modex16.h"\r
  #include <stdio.h>\r
 -#include <stdlib.h>
 +#include <stdlib.h>\r
+ #include "dos_kb.h"\r
  \r
- word far *clock= (word far*) 0x046C; /* 18.2hz clock */\r
//word far *clock= (word far*) 0x046C; /* 18.2hz clock */\r
  \r
  typedef struct {\r
      bitmap_t *data;\r
@@@ -48,18 -48,21 +49,21 @@@ void mapDrawCol(map_view_t *mv, int tx
  void main() {\r
      int show1=1;\r
      int tx, ty;\r
 -    int x, y;
 -      //int ch=0x0;
 -      byte ch;
 +    int x, y;\r
++      //int ch=0x0;\r
++      byte ch;\r
+       int q=0;\r
 -    page_t screen;\r
 +    page_t screen,screen2;\r
      map_t map;\r
 -    map_view_t mv;\r
 -    byte *ptr;
 -
 -    setkb(1);\r
 -\r
 +    map_view_t mv, mv2;\r
 +    map_view_t *draw, *show, *tmp;\r
 +    byte *ptr;\r
 +    \r
      /* create the map */\r
-     map = allocMap(80,60);\r
+     map = allocMap(40,30);\r
      initMap(&map);\r
      mv.map = &map;\r
 +    mv2.map = &map;\r
  \r
      /* draw the tiles */\r
      ptr = map.data;\r
      screen = modexDefaultPage();\r
      screen.width = 352;\r
      mv.page = &screen;\r
 +    screen2=modexNextPage(mv.page);\r
 +    mv2.page = &screen2;\r
      mapGoTo(&mv, 0, 0);\r
 +    mapGoTo(&mv2, 0, 0);\r
      modexShowPage(mv.page);\r
 -
 -      while(!keyp(1))
 -      {\r
 -    // scroll all the way to the right\r
 -    //for(x=0; x<(map.width*16-SCREEN_WIDTH); x++) {
 -      //if(ch==0x4d){
 -      if(keyp(77)){
 -      for(q=0; q<16; q++) {\r
 -      mapScrollRight(&mv, 1);\r
 -      modexShowPage(mv.page);
 +\r
 +    /* set up paging */\r
 +    show = &mv;\r
 +    draw = &mv2;\r
-     /* scroll all the way to the right */\r
-     for(x=0; x<(map.width*16-SCREEN_WIDTH); x++) {\r
-       mapScrollRight(draw, 1);\r
-       modexShowPage(draw->page);\r
-       mapScrollRight(show, 1);\r
-       //SWAP(draw, show);\r
-     }\r
\r
-     /* scroll all the way to the left */\r
-     for(; x>0; x--) {\r
-       mapScrollLeft(&mv, 1);\r
-       modexShowPage(mv.page);\r
-     }\r
\r
-     /* scroll all the way down */\r
-     for(y=0; y<(map.height*16-SCREEN_HEIGHT); y++) {\r
-         mapScrollDown(&mv, 1);\r
-         modexShowPage(mv.page);\r
-     }\r
 +\r
-     /* scroll all the way up */\r
-     for(; y>0; y--) {\r
-       mapScrollUp(&mv, 1);\r
-       modexShowPage(mv.page);\r
-     }\r
++    while(!keyp(1)) {\r
++      if(keyp(77)){\r
++          for(q=0; q<16; q++) {\r
++              mapScrollRight(draw, 1);\r
++              modexShowPage(draw->page);\r
++              SWAP(draw, show);\r
++          }\r
+       }\r
 -    }\r
\r
 -    // scroll all the way to the left\r
 -    //for(; x>0; x--) {
 -      //if(ch==0x4b){
 -      if(keyp(75)){
 -      for(q=0; q<16; q++) {\r
 -      mapScrollLeft(&mv, 1);\r
 -      modexShowPage(mv.page);
++      if(keyp(75)){\r
++          for(q=0; q<16; q++) {\r
++              mapScrollLeft(draw, 1);\r
++              modexShowPage(draw->page);\r
++              SWAP(draw, show);\r
++          }\r
+       }\r
 -    }\r
\r
 -    // scroll all the way down\r
 -    //for(y=0; y<(map.height*16-SCREEN_HEIGHT); y++) {
 -      //if(ch==0x50){
 -      if(keyp(80)){
 -              for(q=0; q<16; q++) {\r
 -        mapScrollDown(&mv, 1);\r
 -        modexShowPage(mv.page);
 -    }\r
 -    }\r
++      if(keyp(80)){\r
++          for(q=0; q<16; q++) {\r
++              mapScrollDown(draw, 1);\r
++              modexShowPage(draw->page);\r
++              SWAP(draw, show);\r
++          }\r
++      }\r
++\r
++\r
++      if(keyp(72)){\r
++          for(q=0; q<16; q++) {\r
++              mapScrollUp(draw, 1);\r
++              modexShowPage(draw->page);\r
++              SWAP(draw, show);\r
\r
 -    // scroll all the way up\r
 -    //for(; y>0; y--) {
 -      //if(ch==0x48){
 -      if(keyp(72)){
 -              for(q=0; q<16; q++) {\r
 -      mapScrollUp(&mv, 1);\r
 -      modexShowPage(mv.page);
++          }\r
+       }\r
++\r
++      keyp(ch);\r
 +\r
-     /* spin for a time */\r
-     for(x=0; x<500; x++) {\r
-         modexWaitBorder();\r
      }\r
  \r
 -    // spin for a time \r
 -    /*for(x=0; x<500; x++) {\r
 -        modexWaitBorder();\r
 -    }*/
 -    //while(1){
 -//                    ch=getch();
 -                      //printf("0x%02x\n", ch);
 -                      keyp(ch);\r
 -//                    if(ch==0x71)break; // 'q'\r
 -//                    if(ch==0x1b)break; // 'ESC'\r
 -}\r
 -    modexLeave();
 -      setkb(0);\r
 +    modexLeave();\r
++    setkb(0);\r
  }\r
  \r
  \r
index ee38ecbaab4e89cefd35b88bd4aef538c78466d2,321a7a725ba70f5913b0b84c1815461ab2ff81e5..3d700ec26c99d8bb7508b34732501d1fa2ab9a89
Binary files differ