dos33fsprogs/utils/gr-sim/mode7_demo/text_demo.c

195 lines
3.1 KiB
C
Raw Normal View History

2018-01-08 21:03:51 +00:00
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
2018-01-09 05:42:15 +00:00
#include <string.h>
2018-01-08 21:03:51 +00:00
#include "gr-sim.h"
2018-01-24 17:31:05 +00:00
#include "tfv_zp.h"
2018-01-09 05:42:15 +00:00
#define STEPS 10
#define NUM_CREDITS 10
#if 0
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
**************************************************
** T H A N K S T O : **
**************************************************
**************** A L L M S T I E S E V E R Y W H E R E *****************
**************************************************
#endif
2018-01-24 17:31:05 +00:00
/* Ended up almost like the Electric Company Logo */
/* Should I use orange and yellow as the colors? */
#define LINE_COLORS 0x75
//#define LINE_COLORS 0x9d
2018-01-09 05:42:15 +00:00
char credits[NUM_CREDITS][22]={
"FROGGYSUE",
"PIANOMAN08",
"UTOPIA BBS",
"THE 7HORSEMEN",
"WEAVE'S WORLD TALKER",
"STEALTHSUSIE",
"ECE GRAD BOWLING",
"CORNELL GCF",
"ALL MSTIES EVERYWHERE",
"...",
};
2018-01-08 21:03:51 +00:00
int main(int argc, char **argv) {
2018-01-09 05:42:15 +00:00
int ch,i,j,k;
2018-01-08 21:03:51 +00:00
grsim_init();
home();
gr();
2018-01-09 05:42:15 +00:00
color_equals(15);
hlin_double(PAGE0,7,32,38);
2018-01-24 17:31:05 +00:00
ram[COLOR]=LINE_COLORS;
hlin_double(PAGE0,0,6,38);
hlin_double(PAGE0,33,40,38);
hlin_double(PAGE0,8,31,36);
ram[COLOR]=LINE_COLORS&0xf0;
hlin_double(PAGE0,7,7,36);
hlin_double(PAGE0,32,32,36);
2018-01-09 05:42:15 +00:00
basic_inverse();
2018-01-24 17:31:05 +00:00
#define WING_LOCATION 21
#define WING_LOCATION2 23
/* Side wings */
2018-01-09 05:42:15 +00:00
for(i=0;i<8;i++) {
basic_htab(i+1);
2018-01-24 17:31:05 +00:00
basic_vtab(WING_LOCATION);
2018-01-09 05:42:15 +00:00
basic_print(" ");
basic_htab(i+33);
2018-01-24 17:31:05 +00:00
basic_vtab(WING_LOCATION);
basic_print(" ");
}
/* Side wings */
for(i=0;i<8;i++) {
basic_htab(i+1);
basic_vtab(WING_LOCATION2);
basic_print(" ");
basic_htab(i+33);
basic_vtab(WING_LOCATION2);
2018-01-09 05:42:15 +00:00
basic_print(" ");
}
2018-01-24 17:31:05 +00:00
/* box middle/bottom */
2018-01-09 05:42:15 +00:00
for(i=7;i<33;i++) {
2018-01-24 17:31:05 +00:00
#if 0
2018-01-09 05:42:15 +00:00
basic_htab(i+1);
basic_vtab(22);
basic_print(" ");
2018-01-24 17:31:05 +00:00
#endif
2018-01-09 05:42:15 +00:00
basic_htab(i+1);
basic_vtab(24);
basic_print(" ");
}
basic_htab(8);
basic_vtab(21);
basic_print(" ");
basic_htab(33);
2018-01-08 21:03:51 +00:00
basic_vtab(21);
2018-01-09 05:42:15 +00:00
basic_print(" ");
2018-01-24 17:31:05 +00:00
#if 0
basic_htab(8);
basic_vtab(22);
basic_print(" ");
basic_htab(33);
basic_vtab(22);
basic_print(" ");
#endif
basic_htab(8);
basic_vtab(23);
basic_print(" ");
basic_htab(33);
basic_vtab(23);
basic_print(" ");
2018-01-09 05:42:15 +00:00
basic_normal();
basic_htab(12);
basic_vtab(21);
basic_print("SPECIAL THANKS TO:");
2018-01-08 21:03:51 +00:00
while(1) {
ch=grsim_input();
if (ch!=0) break;
}
2018-01-09 05:42:15 +00:00
for(k=0;k<NUM_CREDITS;k++) {
for(i=0;i<strlen(credits[k]);i++) {
credits[k][i]-=STEPS;
if (credits[k][i]<0x20) credits[k][i]+=0x40;
}
}
2018-01-08 21:03:51 +00:00
2018-01-09 05:42:15 +00:00
for(k=0;k<NUM_CREDITS;k++) {
2018-01-08 21:03:51 +00:00
2018-01-09 05:42:15 +00:00
basic_htab(9);
basic_vtab(23);
basic_print(" ");
for(j=0;j<STEPS;j++) {
for(i=0;i<strlen(credits[k]);i++) {
credits[k][i]++;
if (credits[k][i]>0x5f) credits[k][i]=0x20;
}
basic_htab( ((40-strlen(credits[k]))/2)+1 );
basic_vtab(23);
basic_print(credits[k]);
grsim_update();
ch=grsim_input();
if (ch!=0) break;
usleep(80000);
}
2018-01-08 21:03:51 +00:00
ch=grsim_input();
2018-01-09 05:42:15 +00:00
if (ch!=0) break;
2018-01-08 21:03:51 +00:00
2018-01-09 05:42:15 +00:00
sleep(1);
}
2018-01-08 21:03:51 +00:00
2018-01-09 05:42:15 +00:00
while(1) {
grsim_update();
ch=grsim_input();
if (ch!=0) break;
2018-01-08 21:03:51 +00:00
usleep(100000);
}
2018-01-09 05:42:15 +00:00
2018-01-08 21:03:51 +00:00
return 0;
}