screenin(char (* pic)[160], char *text) { int a,x,y,yy,v; tw_setsplit(400); tw_clrscr(); tw_setstart(160*200); dis_waitb(); tw_setpalette(&pic[0][16]); pic=&pic[0][784]; y=16;while(*(text=prtc(160,y,text))) y+=FONAY+10; for(x=0;x<160;x++) for(y=0;y<100;y++) tw_putpixel(400+x,400+y*2,pic[y][x]+16); for(y=200*128;y>0;y=y*12L/13) { dis_waitb(); tw_setsplit(y/128+200); yy=320-y/80; for(a=0;a<10000;a++); tw_setstart(160*200+(yy/4)); asm { mov dx, 0x3c0 mov al, 0x33 out dx, al mov ax, yy and ax, 3 shl ax, 1 out dx, al } } for(a=0;a<200 && !dis_exit();a++) dis_waitb(); for(y=0,v=0;y<128*200;y=y+v,v+=15) { dis_waitb(); tw_setsplit(y/128+200); yy=320+y/80; for(a=0;a<10000;a++); tw_setstart(160*200+(yy/4)); asm { mov dx, 0x3c0 mov al, 0x33 out dx, al mov ax, yy and ax, 3 shl ax, 1 out dx, al } } }
init() { int a,b,c,x,y,p=0,f; dis_partstart(); tw_opengraph(); init_copper(); tw_setpalette(fade1); memcpy(palette,hzpic+16,768); for(a=0;a<88;a++) { outline(MK_FP(FP_SEG(hzpic),FP_OFF(hzpic)+a*4+784), MK_FP(0x0a000,a+176*50)); outline(MK_FP(FP_SEG(hzpic),FP_OFF(hzpic)+a*4+784), MK_FP(0x0a000,a+176*50+88)); } for(y=0;y<32;y++) { for(a=0;a<1500;a++) { switch(font[y][a]&3) { case 0x1 : b=0x40; break; case 0x2 : b=0x80; break; case 0x3 : b=0xc0; break; default : b=0; } font[y][a]=b; } } for(y=0;y<768;y+=3) { if(y<64*3) { palette2[y+0]=palette[y+0]; palette2[y+1]=palette[y+1]; palette2[y+2]=palette[y+2]; } else if(y<128*3) { palette2[y+0]=(fade2[y+0]=palette[0x1*3+0])*63+palette[y%(64*3)+0]*(63-palette[0x1*3+0])>>6; palette2[y+1]=(fade2[y+1]=palette[0x1*3+1])*63+palette[y%(64*3)+1]*(63-palette[0x1*3+1])>>6; palette2[y+2]=(fade2[y+2]=palette[0x1*3+2])*63+palette[y%(64*3)+2]*(63-palette[0x1*3+2])>>6; } else if(y<192*3)