]> 4ch.mooo.com Git - 16.git/blobdiff - 16/modex16/scroll.c
added paging to controls
[16.git] / 16 / modex16 / scroll.c
index 09b91f767010a16a0fbc5db2e985bd945f8a3b69..89a06aeb5a670ed19d1d8b92d5dbc74bfa621b7d 100644 (file)
@@ -1,8 +1,9 @@
 #include "modex16.h"\r
 #include <stdio.h>\r
 #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
@@ -49,6 +50,9 @@ void main() {
     int show1=1;\r
     int tx, ty;\r
     int x, y;\r
+       //int ch=0x0;\r
+       byte ch;\r
+       int q=0;\r
     page_t screen,screen2;\r
     map_t map;\r
     map_view_t mv, mv2;\r
@@ -56,7 +60,7 @@ void main() {
     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
@@ -76,45 +80,55 @@ void main() {
     /* 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
+    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
-    /* 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
+       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
-    /* scroll all the way up */\r
-    for(; y>0; y--) {\r
-       mapScrollUp(&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
+           }\r
+       }\r
+\r
+       keyp(ch);\r
 \r
-    /* spin for a time */\r
-    for(x=0; x<500; x++) {\r
-        modexWaitBorder();\r
     }\r
 \r
     modexLeave();\r
+    setkb(0);\r
 }\r
 \r
 \r
 map_t\r
 allocMap(int w, int h) {\r
     map_t result;\r
-    \r
+\r
     result.width =w;\r
     result.height=h;\r
     result.data = malloc(sizeof(byte) * w * h);\r