[comp.sys.ibm.pc] waiting for astrotit, something else

jru@etn-rad.UUCP (John Unekis) (09/05/87)

For those of you who tried to use the rotor program and couldnt see the
animation, I have put in a fix. The Hercules card(and clones) power up 
with the second page of memory disabled. Hercules includes a program 
HGC.COM on floppy which when placed in your autoexec.bat file will
turn this memory on at boot time. Many clone makers do not include this
so that the animation will not work on their systems unless some other
graphics routine has turned on the memory. In order to remedy this I
have placed a write to port 3BF with a value of 3 to turn on the 
memory. Sorry I didn't put this in right at first.

--------------------------------------------------------------------
Disclaimer: Its all my fault.   ihnp4!wlbr!etn-rad!jru

#include <stdio.h>
char n1[4][8192],n2[4][8192],n3[4][8192],n4[4][8192];
struct memm {
char nn[4][8192];
} ;


main()
{
FILE *fp;
char filename[80];
int i,j,k;
long rotate,r;
struct memm * mp;
char * p;
char * p1;
char * p2;

printf("Note , when done, any key followed by <cr> returns to dos\n");
printf("How Many Rotations? ");
scanf("%ld",&rotate);

mp = (struct memm *) 0xb8000000;

p = &n1[0][0];
strcpy(filename,"n1.img");
fp = fopen(filename,"rb");
if(fp == NULL)
 {
 printf("cant open file %s\n",filename);
 exit(0);
 }
i = 32764;
fread(p,i,1,fp);
fclose(fp);

p = &n2[0][0];
strcpy(filename,"n2.img");
fp = fopen(filename,"rb");
if(fp == NULL)
 {
 printf("cant open file %s\n",filename);
 exit(0);
 }
i = 32764;
fread(p,i,1,fp);
fclose(fp);

p = &n3[0][0];
strcpy(filename,"n3.img");
fp = fopen(filename,"rb");
if(fp == NULL)
 {
 printf("cant open file %s\n",filename);
 exit(0);
 }
i = 32764;
fread(p,i,1,fp);
fclose(fp);

p = &n4[0][0];
strcpy(filename,"n4.img");
fp = fopen(filename,"rb");
if(fp == NULL)
 {
 printf("cant open file %s\n",filename);
 exit(0);
 }
i = 32764;
fread(p,i,1,fp);
fclose(fp);

graphmode(2);

p = (char *) 0xb8000000;
strcpy(filename,"n1.img");
fp = fopen(filename,"rb");
if(fp == NULL)
 {
 printf("cant open file %s\n",filename);
 exit(0);
 }
i = 32764;
fread(p,i,1,fp);
fclose(fp);

i = 2400;
for(r=0;r<rotate;r++)
 {
 p = (char *) &(*mp).nn[0][4096];
 p1 = &n1[0][4096];
 for(j=0;j<i;j++) *p++ = *p1++;
 p = (char *) &(*mp).nn[1][4096];
 p1 = &n1[1][4096];
 for(j=0;j<i;j++) *p++ = *p1++;
 p = (char *) &(*mp).nn[2][4096];
 p1 = &n1[2][4096];
 for(j=0;j<i;j++) *p++ = *p1++;
 p = (char *) &(*mp).nn[3][4096];
 p1 = &n1[3][4096];
 for(j=0;j<i;j++) *p++ = *p1++;
 p = (char *) &(*mp).nn[0][4096];
 p1 = &n2[0][4096];
 for(j=0;j<i;j++) *p++ = *p1++;
 p = (char *) &(*mp).nn[1][4096];
 p1 = &n2[1][4096];
 for(j=0;j<i;j++) *p++ = *p1++;
 p = (char *) &(*mp).nn[2][4096];
 p1 = &n2[2][4096];
 for(j=0;j<i;j++) *p++ = *p1++;
 p = (char *) &(*mp).nn[3][4096];
 p1 = &n2[3][4096];
 for(j=0;j<i;j++) *p++ = *p1++;
 p = (char *) &(*mp).nn[0][4096];
 p1 = &n3[0][4096];
 for(j=0;j<i;j++) *p++ = *p1++;
 p = (char *) &(*mp).nn[1][4096];
 p1 = &n3[1][4096];
 for(j=0;j<i;j++) *p++ = *p1++;
 p = (char *) &(*mp).nn[2][4096];
 p1 = &n3[2][4096];
 for(j=0;j<i;j++) *p++ = *p1++;
 p = (char *) &(*mp).nn[3][4096];
 p1 = &n3[3][4096];
 for(j=0;j<i;j++) *p++ = *p1++;
 p = (char *) &(*mp).nn[0][4096];
 p1 = &n4[0][4096];
 for(j=0;j<i;j++) *p++ = *p1++;
 p = (char *) &(*mp).nn[1][4096];
 p1 = &n4[1][4096];
 for(j=0;j<i;j++) *p++ = *p1++;
 p = (char *) &(*mp).nn[2][4096];
 p1 = &n4[2][4096];
 for(j=0;j<i;j++) *p++ = *p1++;
 p = (char *) &(*mp).nn[3][4096];
 p1 = &n4[3][4096];
 for(j=0;j<i;j++) *p++ = *p1++;
 }

scanf("%s",filename);
textmode();
}




graphmode(plane)
int plane;
{
outp(0x3bf,0x03);
if(plane == 1) {
outp(0x3b8,0x0002);
outp(0x3b4,0x0000);
outp(0x3b5,0x0035);
outp(0x3b4,0x0001);
outp(0x3b5,0x002d);
outp(0x3b4,0x0002);
outp(0x3b5,0x002e);
outp(0x3b4,0x0003);
outp(0x3b5,0x0007);
outp(0x3b4,0x0004);
outp(0x3b5,0x005b);
outp(0x3b4,0x0005);
outp(0x3b5,0x0002);
outp(0x3b4,0x0006);
outp(0x3b5,0x0057);
outp(0x3b4,0x0007);
outp(0x3b5,0x0057);
outp(0x3b4,0x0008);
outp(0x3b5,0x0002);
outp(0x3b4,0x0009);
outp(0x3b5,0x0003);
outp(0x3b4,0x000a);
outp(0x3b5,0x0000);
outp(0x3b4,0x000b);
outp(0x3b5,0x0000);
outp(0x3b4,0x000c);
outp(0x3b5,0x0000);
outp(0x3b4,0x000d);
outp(0x3b5,0x0000);
outp(0x3b8,0x000a);
}
if(plane == 2) {
outp(0x3b8,0x0002);
outp(0x3b4,0x0080);
outp(0x3b5,0x0035);
outp(0x3b4,0x0001);
outp(0x3b5,0x002d);
outp(0x3b4,0x0002);
outp(0x3b5,0x002e);
outp(0x3b4,0x0003);
outp(0x3b5,0x0007);
outp(0x3b4,0x0004);
outp(0x3b5,0x005b);
outp(0x3b4,0x0005);
outp(0x3b5,0x0002);
outp(0x3b4,0x0006);
outp(0x3b5,0x0057);
outp(0x3b4,0x0007);
outp(0x3b5,0x0057);
outp(0x3b4,0x0008);
outp(0x3b5,0x0002);
outp(0x3b4,0x0009);
outp(0x3b5,0x0003);
outp(0x3b4,0x000a);
outp(0x3b5,0x0000);
outp(0x3b4,0x000b);
outp(0x3b5,0x0000);
outp(0x3b4,0x000c);
outp(0x3b5,0x0000);
outp(0x3b4,0x000d);
outp(0x3b5,0x0000);
outp(0x3b8,0x008a);
}
}

textmode()
{
int i,j,k;
outp(0x3b8,0x0020);
outp(0x3b4,0x0000);
outp(0x3b5,0x0061);
outp(0x3b4,0x0001);
outp(0x3b5,0x0050);
outp(0x3b4,0x0002);
outp(0x3b5,0x0052);
outp(0x3b4,0x0003);
outp(0x3b5,0x000f);
outp(0x3b4,0x0004);
outp(0x3b5,0x0019);
outp(0x3b4,0x0005);
outp(0x3b5,0x0006);
outp(0x3b4,0x0006);
outp(0x3b5,0x0019);
outp(0x3b4,0x0007);
outp(0x3b5,0x0019);
outp(0x3b4,0x0008);
outp(0x3b5,0x0002);
outp(0x3b4,0x0009);
outp(0x3b5,0x000d);
outp(0x3b4,0x000a);
outp(0x3b5,0x000b);
outp(0x3b4,0x000b);
outp(0x3b5,0x000c);
outp(0x3b4,0x000c);
outp(0x3b5,0x0000);
outp(0x3b4,0x000d);
outp(0x3b5,0x0000);
outp(0x3b8,0x0028);
}

jojo@speedy.WISC.EDU (Jon Wesener) (09/05/87)

	Could someone port this to the CGA board, which all astrotit players
	would have access to ;-)

	--j
jon wesener
jojo@speedy.wisc.edu
	"If you like ASTROTIT, you should see what's coming! ;-)"

dalegass@dalcsug.UUCP (09/07/87)

In article <4217@spool.wisc.edu.WISC.EDU> jojo@speedy.WISC.EDU (Jon Wesener) writes:
>
>	Could someone port this to the CGA board, which all astrotit players
>	would have access to ;-)
>

The following is a quick hack which displays the files on either
a cga or herc, depending on the current video mode.
This is a uuencoded arc file. (Obvious?)
It includes c source code and the compiled .exe


One redeeming point is the source may be of some educational value.

Filename        Length   Method     Size   Ratio    Date      Time    CRC
--------        ------   ------    ------  -----    ----      ----    ---
ANIMATE.C         4807  Crunched     2690   45%   09-07-87  07:49:38  DF86
ANIMATE.EXE       9766  Crunched     7741   21%   09-07-87  07:49:38  B9E2
----            ------             ------  -----
0002             14573              10431   29%


Jeff Scrutton

c/o dalegass@dalcsug.uucp

--------------------------Cut here--------------------------
begin 600 animate.arc
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
&#I:Z%!H`
`
end