#include <stdio.h>\r
-#include <stdlib.h>\r
-#include <string.h>\r
#include <math.h>\r
-//#include <conio.h>\r
-//#include <dos.h>\r
-#include "tweak.h"\r
-#include "../dis/dis.h"\r
-#include "opengl.h"\r
-#include "graphics.h"\r
-#include "common.h"\r
+#include <conio.h>\r
+#include <dos.h>\r
+#include "plz.h"\r
+//#include "tweak.h"\r
\r
-#define DO_TABLES\r
-#define DPII (3.1415926535*2.0)\r
+//#define DO_TABLES\r
+//#define DPII (3.1415926535*2.0)\r
\r
#define LINELEN 41\r
#define MAXY 280\r
#define SINMASK 4095\r
#define PLZSINI(p1,p2,p3,p4) *ptr++ = (psini[x*32+lsini[y*2+p2]*16+p1] + psini[y*4+lsini[x*64+p4]*4+p3]) + (psini[x*32+16+lsini[y*2+p2]*16+p1] + psini[y*4+lsini[x*64+32+p4]*4+p3])*256;\r
\r
-extern int init_copper();\r
-extern int close_copper();\r
-extern int far frame_count;\r
+// extern int init_copper();\r
+// extern int close_copper();\r
+//extern int far frame_count;\r
+int far frame_count;\r
extern int far cop_drop;\r
extern int far cop_plz;\r
extern int far cop_start;\r
-extern char far * far cop_fadepal;\r
-extern char far fadepal[768];\r
-extern far char * far cop_pal;\r
-extern far int do_pal;\r
-\r
-extern int plzline(int y, int vseg);\r
-extern int setplzparas(int c1, int c2, int c3, int c4);\r
-extern int set_plzstart(int y);\r
-//extern char far psini[16384];\r
-//extern int far lsini4[8192];\r
-//extern int far lsini16[8192];\r
-\r
-unsigned char *psini;\r
-short *lsini4;\r
-short *lsini16;\r
+extern char far * cop_fadepal;\r
+extern char fadepal[768];\r
+extern char far *cop_pal;\r
+extern int do_pal;\r
+\r
+//extern int plzline(int y, int vseg);\r
+//extern int setplzparas(int c1, int c2, int c3, int c4);\r
+//extern int set_plzstart(int y);\r
+extern char far psini[16384];\r
+extern int far lsini4[8192];\r
+extern int far lsini16[8192];\r
\r
//int (* vmem)[LINELEN]=MK_FP(0x0a000,0);\r
//char psini[16384]=\r
//char lsini[16384]=\r
//#include "lsini.pre"\r
\r
-void init_plz(void);\r
-\r
char ptau[256]=\r
#include "ptau.pre"\r
\r
-int16_t pals[6][768];\r
+int pals[6][768];\r
int curpal=0;\r
int timetable[10]={64*6*2-45,64*6*4-45,64*6*5-45,64*6*6-45,64*6*7+90,0};\r
int ttptr=0;\r
{1000,2000,3000,4000,3500,2300,3900,3670},\r
{1000,2000,3000,4000,3500,2300,3900,3670}};\r
\r
-int fixme_dis_getmframe()\r
-{\r
- static int s_nResult = 0;\r
- s_nResult++;\r
- return s_nResult;\r
-}\r
-\r
void plz(){\r
- register int /*x,*/y;\r
- //int *ptr;\r
+ register int x,y;\r
+ int *ptr;\r
long tim=0,count=0;\r
- //int ch=0,sync=2;\r
+ int ch=0,sync=2;\r
\r
- while(dis_musplus()<0 && !dis_exit());\r
- dis_setmframe(0);\r
+ //while(dis_musplus()<0 && !dis_exit());\r
+ //dis_setmframe(0);\r
\r
init_plz();\r
cop_drop=128;\r
- cop_fadepal=(char *)pals[curpal++];\r
+ cop_fadepal=(char far *)pals[curpal++];\r
\r
frame_count=0;\r
- while(!dis_exit())\r
+ while(!kbhit())\r
{\r
tim+=frame_count; frame_count=0; count++;\r
- if(fixme_dis_getmframe()>timetable[ttptr])\r
- {\r
+ //if(dis_getmframe()>timetable[ttptr])\r
+ // {\r
memset(fadepal,0,768);\r
cop_drop=1;\r
- cop_fadepal=(char *)pals[curpal++];\r
+ cop_fadepal=(char far *)pals[curpal++];\r
ttptr++;\r
il1=inittable[ttptr][0];\r
il2=inittable[ttptr][1];\r
ik2=inittable[ttptr][5];\r
ik3=inittable[ttptr][6];\r
ik4=inittable[ttptr][7];\r
- }\r
+ // }\r
if(curpal==5 && cop_drop>64) break;\r
\r
- // [nk] VGA: select bit planes 0,2 (?)\r
- //asm mov dx, 3c4h\r
- //asm mov ax, 0a02h\r
- //asm out dx, ax\r
-\r
- vga_select_bitplanes_02();\r
+ __asm\r
+ {\r
+ mov dx, 3c4h\r
+ mov ax, 0a02h\r
+ out dx, ax\r
+ }\r
\r
setplzparas(k1,k2,k3,k4);\r
for(y=0;y<MAXY;y+=2)\r
- plzline(y,y*6+YADD*6);\r
+ plzline(y,0x0a000+y*6+YADD*6);\r
setplzparas(l1,l2,l3,l4);\r
for(y=1;y<MAXY;y+=2)\r
- plzline(y,y*6+YADD*6);\r
+ plzline(y,0x0a000+y*6+YADD*6);\r
\r
- // [nk] VGA: select bit planes 1,3 (?)\r
- //asm mov dx, 3c4h\r
- //asm mov ax, 0502h\r
- //asm out dx, ax\r
\r
- vga_select_bitplanes_13();\r
+ __asm\r
+ {\r
+ mov dx, 3c4h\r
+ mov ax, 0502h\r
+ out dx, ax\r
+ }\r
\r
setplzparas(k1,k2,k3,k4);\r
for(y=1;y<MAXY;y+=2)\r
- plzline(y,y*6+YADD*6);\r
+ plzline(y,0x0a000+y*6+YADD*6);\r
setplzparas(l1,l2,l3,l4);\r
for(y=0;y<MAXY;y+=2)\r
- plzline(y,y*6+YADD*6);\r
-\r
- vga_show_framebuffer();\r
- draw_bg();\r
- swap_buffers();\r
+ plzline(y,0x0a000+y*6+YADD*6);\r
}\r
cop_drop=0; frame_count=0; //while(frame_count==0);\r
set_plzstart(500);\r
\r
void init_plz()\r
{\r
- int a/*,b,c,z*/;\r
- int16_t *pptr=(int16_t *)pals;\r
+ int a,b,c,z;\r
+ int *pptr=pals;\r
\r
- psini = malloc(16384 + 2 * 8192 + 2 * 8192);\r
- lsini4 = (short *)psini + 8192;\r
- lsini16 = lsini4 + 8192;\r
- \r
#ifdef DO_TABLES\r
+ {\r
+ FILE *f1,*f2,*f3,*f4;\r
+ f1=fopen("lsini4.inc","wb");\r
+ f2=fopen("lsini16.inc","wb");\r
+ f3=fopen("psini.inc","wb");\r
+ f4=fopen("ptau.inc","wb");\r
+\r
for(a=0;a<1024*16;a++)\r
{\r
if(a<1024*8)\r
lsini16[a]=(sin(a*DPII/4096)*55+sin(a*DPII/4096*4)*5+sin(a*DPII/4096*17)*3+64)*16;\r
}\r
psini[a]=sin(a*DPII/4096)*55+sin(a*DPII/4096*6)*5+sin(a*DPII/4096*21)*4+64;\r
- }\r
+ if((a&15)==0)\r
+ {\r
+ if(a<1024*8)\r
+ {\r
+ fprintf(f1,"\ndw %4d",lsini4[a]);\r
+ fprintf(f2,"\ndw %4d",lsini16[a]);\r
+ }\r
+ fprintf(f3,"\ndb %4d",psini[a]);\r
+ }\r
+ else {\r
+ if(a<1024*8)\r
+ {\r
+ fprintf(f1,",%4d",lsini4[a]);\r
+ fprintf(f2,",%4d",lsini16[a]);\r
+ }\r
+ fprintf(f3,",%4d",psini[a]);\r
+ }\r
+ }\r
\r
+ fprintf(f4,"{\n%d",ptau[0]=0);\r
for(a=1;a<=128;a++)\r
- {\r
- ptau[a]=cos(a*DPII/128+3.1415926535)*31+32;\r
+ {\r
+ fprintf(f4,",%3d",ptau[a]=cos(a*DPII/128+3.1415926535)*31+32);\r
+ if(!(a&15)) fputc('\n',f4);\r
+ }\r
+ fputc('}',f4); fputc(';',f4);\r
+\r
+ fclose(f1); fclose(f2); fclose(f3); fclose(f4);\r
}\r
#endif\r
-\r
tw_opengraph2();\r
cop_start=96*(682-400);\r
set_plzstart(60);\r
for(a=0;a<106;a++)*pptr++=0,*pptr++=0,*pptr++=0;\r
for(a=0;a<75;a++) *pptr++=ptau[a*64/75]*8/10,*pptr++=ptau[a*64/75]*9/10,*pptr++=ptau[a*64/75];\r
\r
- pptr=&pals[0][0];\r
+ pptr=pals;\r
for(a=0;a<768;a++,pptr++) *pptr=(*pptr-63)*2;\r
for(a=768;a<768*5;a++,pptr++) *pptr*=8;\r
}\r