pt3: some work on visualization

This commit is contained in:
Vince Weaver 2019-05-16 11:38:57 -04:00
parent 89cd3d1e10
commit c0a49540dd
10 changed files with 430 additions and 152 deletions

View File

@ -6,7 +6,7 @@ SDL_LIBS= `sdl-config --libs`
SDL_INCLUDE= `sdl-config --cflags`
GR_SIM = ../gr-sim.a
all: fire fire2 fire_blue
all: fire fire2 fire_blue fire3 fire4
fire: fire.o $(GR_SIM)
@ -25,6 +25,25 @@ fire2.o: fire2.c
$(CC) $(CFLAGS) -c fire2.c
fire3: fire3.o $(GR_SIM)
$(CC) $(LFLAGS) $(SDL_LIBS) -o fire3 fire3.o \
$(GR_SIM)
fire3.o: fire3.c
$(CC) $(CFLAGS) -c fire3.c
fire4: fire4.o $(GR_SIM)
$(CC) $(LFLAGS) $(SDL_LIBS) -o fire4 fire4.o \
$(GR_SIM)
fire4.o: fire4.c
$(CC) $(CFLAGS) -c fire4.c
fire_blue: fire_blue.o $(GR_SIM)
$(CC) $(LFLAGS) $(SDL_LIBS) -o fire_blue fire_blue.o \
$(GR_SIM)
@ -33,4 +52,4 @@ fire_blue.o: fire_blue.c
$(CC) $(CFLAGS) -c fire_blue.c
clean:
rm -f *~ *.o fire fire2 fire_blue
rm -f *~ *.o fire fire2 fire_blue fire3 fire4

72
gr-sim/fire/fire3.c Normal file
View File

@ -0,0 +1,72 @@
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <math.h>
#include "tfv_zp.h"
#include "gr-sim.h"
// 0 1 2 3 4 5 6 7
static unsigned char colors[]={0,0,5,8,1,9,13,15};
#define YSIZE 20
static unsigned char framebuffer[YSIZE][80];
int main(int argc, char **argv) {
int ch,xx,yy,col,newc,r;
int i,j;
grsim_init();
gr();
clear_screens();
for(j=0;j<YSIZE-1;j++)
for(i=0;i<80;i++)
framebuffer[j][i]=0x0;
for(i=0;i<80;i++) framebuffer[YSIZE-1][i]=0x7;
ram[DRAW_PAGE]=0x0;
while(1) {
/* activate fire */
for(yy=0;yy<YSIZE-1;yy++) {
for(xx=0;xx<80;xx++) {
r=rand()&2;
if (r==0) r=-1;
else if (r==3) r=1;
else r=0;
newc=framebuffer[yy+1][xx+r]-
(rand()&1);
if (newc<0) newc=0;
framebuffer[yy][xx]=newc;
}
}
/* copy to framebuffer */
for(yy=0;yy<YSIZE;yy++) {
for(xx=0;xx<80;xx+=2) {
col=((framebuffer[yy][xx]+
framebuffer[yy][xx+1])/2);
// if (xx==0) printf("Row %d color=%d\n",yy,col/2);
color_equals(colors[col]);
plot(xx/2,yy+(23-(YSIZE/2)));
}
}
grsim_update();
ch=grsim_input();
if (ch=='q') exit(0);
usleep(40000);
}
return 0;
}

115
gr-sim/fire/fire4.c Normal file
View File

@ -0,0 +1,115 @@
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <math.h>
#include "tfv_zp.h"
#include "gr-sim.h"
// 0 1 2 3 4 5 6 7
//static unsigned char colors[]={0,0,5,8,1,9,13,15};
//{15,14,7,6,2,3,0,0};
static unsigned char colors[]={0,0,3,2,6,7,14,15};
#define YSIZE 20
static unsigned char framebuffer[YSIZE][40];
int main(int argc, char **argv) {
int ch,xx,yy,col,newc,r,q;
int i,j,line=1;
int a=0xf, b=0x8, c=0x0;
int volume;
grsim_init();
gr();
clear_screens();
for(j=0;j<YSIZE-1;j++)
for(i=0;i<40;i++)
framebuffer[j][i]=0x0;
for(i=0;i<40;i++) framebuffer[YSIZE-1][i]=0x7;
ram[DRAW_PAGE]=0x0;
while(1) {
/* activate fire */
for(yy=0;yy<YSIZE-1;yy++) {
for(xx=0;xx<40;xx++) {
if (xx<13) volume=a;
else if (xx<26) volume=b;
else volume=c;
/* R is left/right movement */
r=rand()&3;
if (r==0) r=-1;
else if (r==3) r=1;
else r=0;
if (xx==0) r=0;
if (xx==39) r=0;
/* Q is up propogate speed movement */
q=rand()&3;
if (volume<6) {
/* Q=1 3/4 of time */
if (q==0) q=0;
else q=1;
}
else if (volume<12) {
/* Q=1 1/2 of time */
if (q<2) q=0;
else q=1;
}
else {
/* Q=1 1/4 of time */
if (q<3) q=0;
else q=1;
}
newc=framebuffer[yy+1][xx+r]-
q;
if (newc<0) newc=0;
framebuffer[yy][xx]=newc;
}
}
/* copy to framebuffer */
for(yy=0;yy<YSIZE;yy++) {
for(xx=0;xx<40;xx+=1) {
col=framebuffer[yy][xx];
// if (xx==0) printf("Row %d color=%d\n",yy,col/2);
color_equals(colors[col]);
plot(xx,yy+(23-(YSIZE/2)));
}
}
grsim_update();
ch=grsim_input();
if (ch=='q') exit(0);
usleep(20000);
if (ch==' ') {
line=!line;
if (line==1)
for(i=0;i<40;i++) framebuffer[YSIZE-1][i]=0x7;
else
for(i=0;i<40;i++) framebuffer[YSIZE-1][i]=0x0;
}
}
return 0;
}

View File

@ -105,7 +105,7 @@ unsigned char landing_rle[]={
0xA4,0xCC,0xC8,0xA0,0x1E,0xCC,0xA6,0x85,0xA0,0xFF,0xCC,0xA5,0xCC,0xA1, };
unsigned char harfco_rle[]={
0x28, /* ysize=40 */
0xA5,0x00,0xA0,0x1D,0x5A,0x77,0xA9,0x00,0xF0,0x00,0xA0,0x1B,0x5A,
0xA5,0x00,0xA0,0x1D,0xAA,0x77,0xA9,0x00,0xF0,0x00,0xA0,0x1B,0xAA,
0x77,0xA3,0x00,0xF0,0xA3,0x00,0xF0,0xA0,0x17,0x00,0xF0,
0xA0,0x15,0x00,0x0F,0xA0,0x19,0x00,0xF0,0xA0,0x16,0x00,0x0F,0xA0,0x17,0x00,
0xA0,0x28,0x22,0xA0,0x1D,0x77,0x72,0xAA,0x22,0xA0,0x1F,0x77,0x72,0xA8,0x22,
@ -215,7 +215,7 @@ unsigned char collegep_rle[]={
0x28, /* ysize=40 */
0xA0,0x21,0x66,0xF6,0xF6,0xA8,0x66,0xF6,0xF6,0xA3,0xFF,0xF6,0xA0,0x15,0x66,
0xF6,0xA5,0xFF,0xF6,0xA6,0x66,0x6F,0x5F,0xFF,
0xF5,0xA3,0xFF,0xA5,0x66,0x76,0xA4,0x56,0x76,0xA4,0x56,
0xF5,0xA3,0xFF,0xA5,0x66,0x76,0xA4,0xA6,0x76,0xA4,0xA6,
0x76,0xA3,0x66,0x5F,0x5F,0xA3,0xFF,0x5F,0x5F,0x6F,0xA8,0x66,
0xA4,0x65,0xA5,0x66,0xA3,0x17,0x1A,0x1A,0x17,0xF7,0x17,
0x1A,0x1A,0xA3,0x17,0xA3,0x66,0x65,0x65,0x6F,0x6F,0xA0,0x14,0x66,0x1F,
@ -235,12 +235,12 @@ unsigned char collegep_rle[]={
0xA9,0xCC,0x9C,0x88,0x88,0x48,0x58,0x88,0x8E,
0xAA,0xEE,0xED,0xDC,0xCC,0x88,0x77,0x77,0x88,
0x85,0xA3,0x58,0x55,0x58,0x58,0xA8,0xCC,0x8C,0x98,
0xA3,0x88,0x48,0x88,0x58,0x8E,0xAA,0xEE,0xDD,
0xA3,0x88,0x48,0x88,0xA0,0x01,0xA8,0x8E,0xAA,0xEE,0xDD,
0xCC,0xC8,0x77,0x77,0x88,0x88,0x55,0x88,0x88,0x85,
0x88,0x88,0xA7,0xCC,0x8C,0x89,0x88,0x88,0x89,0xA4,0x88,
0x85,0x88,0xAB,0xEE,0xA3,0xC7,0xC8,0x88,0x55,
0xA3,0x88,0x48,0x48,0xA6,0xCC,0x8C,0x89,0x98,0x88,
0x98,0x88,0x84,0xA3,0x88,0x85,0x88,0x58,
0x98,0x88,0x84,0xA3,0x88,0x85,0x88,0xA0,0x01,0xA8,
0xA6,0xEE,0xDE,0xCE,0xA7,0xCC,0x55,0x48,0x44,0x44,
0x49,0x44,0xA8,0xCC,0xA5,0xC8,0xA6,0x88,0xA5,0xEE,0xDD,
0xCD,0xA7,0xCC,0x4C,0x44,0x44,0x49,0xA3,0x44,0xA0,0x11,0xDD,
@ -316,24 +316,24 @@ unsigned char dining_rle[]={
0xA7,0x88,0x00,0xBB,0x8B,0x88,0x68,0xA3,0x88,
0x78,0xA3,0x88,0x08,0x08,0xA4,0x88,0x08,0x08,0xA9,0x88,0x85,0x85,
0xBB,0xA3,0x88,0x66,0xA4,0x88,0x00,0x22,0x88,0x88,
0xFF,0xA3,0x88,0x77,0x57,0x57,0xB7,0xBB,0x00,
0xA3,0x57,0xB7,0xBB,0x00,0xA7,0x57,0xA3,0x08,0x11,0x11,
0x08,0x77,0x66,0x66,0x77,0xA4,0x08,0x22,0x02,
0xA3,0x05,0x08,0x08,0x77,0xA3,0x5A,0xFB,0xF0,0x55,
0xA3,0x5A,0x2B,0x00,0xA7,0x5A,0xA3,0x00,0x11,0x11,0xA4,0x77,
0xA5,0x00,0x52,0xA7,0x00,0x0A,0x0A,0x7A,0x7F,0x7F,0x75,
0x7A,0x6A,0x72,0x72,0x70,0xA3,0x5A,0xB8,0x88,
0x5A,0x5A,0xA3,0x00,0x81,0xA4,0x77,0xA6,0x00,0x5A,0xA7,0x00,
0x70,0x87,0x88,0x88,0x78,0x77,0x77,0x99,0x77,0x77,
0x66,0x77,0x70,0x0B,0xBB,0x88,0xA5,0x00,
0xA4,0x57,0xA7,0x00,0x08,0x08,0xA5,0x00,0x07,0xAA,0x77,0x7F,
0x77,0x7B,0x04,0x44,0x08,0x70,0xA4,0x00,
0x55,0x88,0xA0,0x12,0x00,0x07,0x87,0xA7,0x07,0x87,
0x07,0x00,0x20,0x24,0x00,0x77,0xA4,0x00,
0x55,0x08,0x08,0xA0,0x12,0x00,0x88,0xA7,0x00,0x88,0x00,0x00,
0x22,0x77,0x07,0x77,0xA4,0x00,0x55,0xA0,0x14,0x00,
0x08,0xA7,0x00,0x08,0x00,0x08,0x08,0x07,0x00,
0x07,0xA0,0x79,0x00,0xA1, };
0xFF,0xA3,0x88,0x77,0xA0,0x02,0xA7,0xB7,0xBB,0x00,
0x57,0xA0,0x02,0xA7,0xB7,0xBB,0x00,0xA7,0xA7,0xA3,0x08,
0x11,0x11,0x08,0x77,0x66,0x66,0x77,0xA4,0x08,0x22,
0x02,0xA3,0x05,0x08,0x08,0x77,0xA3,0xAA,0xFB,0xF0,
0x55,0xA3,0xAA,0x2B,0x00,0xA7,0xAA,0xA3,0x00,0x11,0x11,
0xA4,0x77,0xA5,0x00,0xA0,0x01,0xA2,0xA7,0x00,0x0A,0x0A,0x7A,0x7F,0x7F,
0x75,0x7A,0x6A,0x72,0x72,0x70,0xA3,0xAA,0xB8,
0x88,0xA0,0x02,0xAA,0xA3,0x00,0x81,0xA4,0x77,0xA6,0x00,0xA0,0x01,0xAA,
0xA7,0x00,0x70,0x87,0x88,0x88,0x78,0x77,0x77,0x99,
0x77,0x77,0x66,0x77,0x70,0x0B,0xBB,0x88,
0xA5,0x00,0xA4,0x57,0xA7,0x00,0x08,0x08,0xA5,0x00,0x07,0xAA,0x77,
0x7F,0x77,0x7B,0x04,0x44,0x08,0x70,
0xA4,0x00,0x55,0x88,0xA0,0x12,0x00,0x07,0x87,0xA7,0x07,
0x87,0x07,0x00,0x20,0x24,0x00,0x77,
0xA4,0x00,0x55,0x08,0x08,0xA0,0x12,0x00,0x88,0xA7,0x00,0x88,
0x00,0x00,0x22,0x77,0x07,0x77,0xA4,0x00,0x55,
0xA0,0x14,0x00,0x08,0xA7,0x00,0x08,0x00,0x08,0x08,0x07,
0x00,0x07,0xA0,0x79,0x00,0xA1, };
unsigned char metro_rle[]={
0x28, /* ysize=40 */
0xA0,0x1F,0x66,0xA9,0x55,0xA3,0x66,0xA4,0xF6,0xAA,0x66,0x11,0x66,
@ -404,7 +404,7 @@ unsigned char talbot_rle[]={
0xFF,0xA5,0x77,0x44,0x4C,0xC4,0xCC,0x4C,
0x04,0x00,0x44,0xA0,0x18,0x00,0x88,0x00,0xFF,
0xF7,0xA4,0x77,0x84,0x84,0x8C,0x8C,0x44,0x00,0x00,0x55,
0xA0,0x17,0x00,0x50,0x58,0x00,0x00,0xFF,0xA4,0x77,0x88,
0xA0,0x17,0x00,0xA0,0x01,0xA0,0xA0,0x01,0xA8,0x00,0x00,0xFF,0xA4,0x77,0x88,
0x44,0x44,0x88,0x00,0x80,0x80,0x05,0x05,0xA0,0x18,0x00,0x5D,
0xDD,0xFF,0xA4,0x77,0x88,0x00,0x00,0x88,0x00,
0x88,0xBB,0xB0,0xA0,0x18,0x00,0x0B,0xBB,0x0D,
@ -419,56 +419,57 @@ unsigned char talbot_rle[]={
0x0F,0xF7,0xFF,0x0F,0xA0,0x25,0x00,0xFF,0xFF,0xA0,0x26,0x00,0xFF,0xA1, };
unsigned char waterfall_rle[]={
0x28, /* ysize=40 */
0xA6,0x88,0x85,0x58,0xAB,0x88,0x55,0xA6,0x88,0x55,
0xA6,0x88,0x85,0xA0,0x01,0xA8,0xAB,0x88,0x55,0xA6,0x88,0x55,
0xA5,0x88,0xEE,0x77,0xEE,0x77,0xEE,0x77,
0xEE,0xA8,0x88,0x85,0x58,0x88,0x88,0x48,0x44,0x44,
0x48,0xA5,0x88,0x5A,0xA6,0x88,0x5A,0xA4,0x88,0xEE,
0xEE,0xA8,0x88,0x85,0xA0,0x01,0xA8,0x88,0x88,0x48,0x44,0x44,
0x48,0xA5,0x88,0xA0,0x01,0xAA,0xA6,0x88,0xA0,0x01,0xAA,0xA4,0x88,0xEE,
0x77,0xEE,0x77,0xEE,0x77,0xEE,0xA9,0x88,
0x85,0x58,0x88,0x44,0x42,0x44,0x44,0xA5,0x88,
0x55,0xA6,0x88,0x5A,0xA4,0x88,0xEE,0x77,0xEE,
0x85,0xA0,0x01,0xA8,0x88,0x44,0x42,0x44,0x44,0xA5,0x88,
0x55,0xA6,0x88,0xA0,0x01,0xAA,0xA4,0x88,0xEE,0x77,0xEE,
0x77,0xEE,0x77,0xEE,0xA3,0x88,0x48,0xA6,0x88,
0x85,0x58,0x88,0x84,0x82,0xA7,0x88,0x5A,
0x85,0xA0,0x01,0xA8,0x88,0x84,0x82,0xA7,0x88,0xA0,0x01,0xAA,
0xA5,0x88,0x55,0xA4,0x88,0xEE,0x77,0xEE,0x77,
0xEE,0x77,0xEE,0x88,0x88,0x48,0x44,0x48,
0xA6,0x88,0x85,0x58,0xA9,0x88,0x55,0xA5,0x88,0x85,
0x58,0xA3,0x88,0xEE,0x77,0xEE,0x77,0xEE,
0x77,0xEE,0x88,0xA5,0x84,0xA6,0x88,0x85,0x58,
0xA9,0x88,0x5A,0xA5,0x88,0x5A,0xA3,0x88,0xEE,0x77,
0xA6,0x88,0x85,0xA0,0x01,0xA8,0xA9,0x88,0x55,0xA5,0x88,0x85,
0xA0,0x01,0xA8,0xA3,0x88,0xEE,0x77,0xEE,0x77,0xEE,
0x77,0xEE,0x88,0xA5,0x84,0xA6,0x88,0x85,0xA0,0x01,0xA8,
0xA9,0x88,0xA0,0x01,0xAA,0xA5,0x88,0xA0,0x01,0xAA,0xA3,0x88,0xEE,0x77,
0xEE,0x77,0xEE,0x77,0xEE,0x88,0x5A,
0x58,0xAA,0x88,0x85,0x58,0xA8,0x88,0x55,0xA5,0x88,
0xA0,0x01,0xA8,0xAA,0x88,0x85,0xA0,0x01,0xA8,0xA8,0x88,0x55,0xA5,0x88,
0x5A,0xA3,0x88,0xEE,0x77,0xEE,0x77,0xEE,
0x77,0xEE,0x88,0x88,0x85,0x58,0x58,0xA9,0x88,0x85,
0x58,0xA7,0x88,0x58,0x5A,0xA4,0x55,0x85,0xA3,0x88,
0xEE,0x77,0xEE,0x77,0xEE,0x77,0xEE,
0xA4,0x88,0x8A,0x58,0xA9,0x88,0x85,0x58,0x88,
0xA3,0x58,0xA9,0x55,0x88,0xFF,0x5F,0xEF,0x77,
0xEE,0x77,0xEE,0x77,0xEE,0xA6,0x88,0x5A,
0x88,0x88,0xA7,0x58,0xAD,0x55,0xF5,0xA3,0xFF,0xEF,0xFF,
0xFE,0xF7,0xFE,0xF7,0xEE,0x88,0xAB,0x5A,
0xAE,0x55,0x65,0x65,0xE6,0xFF,0x7F,0xEF,0xFF,
0xEF,0x7F,0xFF,0x7F,0xEF,0xF7,0xFF,
0x88,0xA6,0x5A,0xAF,0x55,0x65,0x65,0xE6,0xE6,0xA4,0xEE,0xFF,
0xEF,0xFF,0xFF,0x87,0x88,0xF7,0xFE,0x7F,
0xEF,0xF8,0x5A,0xA0,0x10,0x55,0x65,0x65,0xE6,0xE6,0xA5,0xEE,
0x6E,0x6E,0xE6,0xEE,0xFF,0xEF,0xA4,0xF8,0x8F,
0xFF,0xFE,0xFF,0xAD,0x55,0x65,0x65,0xE6,0xE6,0xA6,0xEE,
0x6E,0x6E,0xE6,0xA4,0xEE,0x6E,0xFF,0xFE,0x88,0x88,
0xF8,0xEF,0xF5,0xFF,0xFF,0xA9,0x55,0x65,0x65,0xE6,0xE6,
0xA6,0xEE,0x6E,0x6E,0xE6,0xE6,0xA5,0xEE,0x6E,0xE6,0xEE,
0xEF,0xFE,0xEE,0xEE,0xA3,0xFF,0xEE,0xFF,0xA5,0x55,
0x65,0x65,0xE6,0xE6,0xA7,0xEE,0x6E,0x86,0x86,0x8E,0x8E,0xA4,0xEE,
0x6E,0x6E,0xE6,0xA4,0xEE,0xFE,0xFF,0xFF,0xFE,0x7F,
0xF8,0x88,0x8F,0x55,0x65,0x65,0xE6,0xE6,0xA7,0xEE,
0x6E,0x6E,0xE6,0xE6,0xA4,0x88,0xE8,0xEE,0xEE,0x6E,0xE6,
0xA8,0xEE,0x6F,0xFF,0xFE,0xE5,0x5F,0xF8,
0x88,0xE6,0xA8,0xEE,0x6E,0x6E,0xE6,0xA4,0xEE,0xE8,0xE8,
0xA3,0xEE,0x6E,0xE6,0xEE,0xEE,0x8E,0x8E,0xA5,0xEE,0x66,
0xEE,0xFF,0xFF,0xEF,0xFE,0xEF,0x88,0xA6,0xEE,
0x6E,0x6E,0xE6,0xA9,0xEE,0x6E,0x6E,0xE6,0xA3,0xEE,0xA3,0x88,
0xE8,0xEE,0xEE,0x6E,0xE6,0xEE,0xEE,0xEF,0xFE,
0xEE,0xFF,0xEE,0x88,0xA3,0xEE,0x6E,0xE6,0xE6,
0xAA,0xEE,0x6E,0xE6,0xA6,0xEE,0xE8,0xE8,0xA3,0xEE,0x6E,
0xE6,0xA4,0xEE,0xEF,0xFE,0xFF,0xEE,0x88,0xA1, };
0x77,0xEE,0x88,0x88,0x85,0xA0,0x01,0xA8,0x58,0xA9,0x88,
0x85,0xA0,0x01,0xA8,0xA7,0x88,0x58,0x5A,0xA4,0x55,0x85,
0xA3,0x88,0xEE,0x77,0xEE,0x77,0xEE,0x77,
0xEE,0xA4,0x88,0x8A,0xA0,0x01,0xA8,0xA9,0x88,0x85,0xA0,0x01,0xA8,
0x88,0xA3,0x58,0xA9,0x55,0x88,0xFF,0x5F,0xEF,
0x77,0xEE,0x77,0xEE,0x77,0xEE,0xA6,0x88,
0x5A,0x88,0x88,0xA7,0xA8,0xAD,0x55,0xF5,0xA3,0xFF,0xEF,
0xFF,0xFE,0xF7,0xFE,0xF7,0xEE,0x88,
0xA8,0xAA,0xA3,0x5A,0xAE,0x55,0x65,0x65,0xE6,0xFF,0x7F,
0xEF,0xFF,0xEF,0x7F,0xFF,0x7F,0xEF,
0xF7,0xFF,0x88,0xA4,0xAA,0x5A,0x5A,0xAF,0x55,0x65,0x65,
0xE6,0xE6,0xA4,0xEE,0xFF,0xEF,0xFF,0xFF,0x87,0x88,
0xF7,0xFE,0x7F,0xEF,0xF8,0x5A,0xA0,0x10,0x55,
0x65,0x65,0xE6,0xE6,0xA5,0xEE,0x6E,0x6E,0xE6,0xEE,0xFF,
0xEF,0xA4,0xF8,0x8F,0xFF,0xFE,0xFF,0xAD,0x55,
0x65,0x65,0xE6,0xE6,0xA6,0xEE,0x6E,0x6E,0xE6,0xA4,0xEE,0x6E,
0xFF,0xFE,0x88,0x88,0xF8,0xEF,0xF5,0xFF,0xFF,
0xA9,0x55,0x65,0x65,0xE6,0xE6,0xA6,0xEE,0x6E,0x6E,0xE6,0xE6,0xA5,0xEE,
0x6E,0xE6,0xEE,0xEF,0xFE,0xEE,0xEE,0xA3,0xFF,
0xEE,0xFF,0xA5,0x55,0x65,0x65,0xE6,0xE6,0xA7,0xEE,0x6E,
0x86,0x86,0x8E,0x8E,0xA4,0xEE,0x6E,0x6E,0xE6,0xA4,0xEE,0xFE,
0xFF,0xFF,0xFE,0x7F,0xF8,0x88,0x8F,0x55,
0x65,0x65,0xE6,0xE6,0xA7,0xEE,0x6E,0x6E,0xE6,0xE6,0xA4,0x88,0xE8,
0xEE,0xEE,0x6E,0xE6,0xA8,0xEE,0x6F,0xFF,0xFE,
0xE5,0x5F,0xF8,0x88,0xE6,0xA8,0xEE,0x6E,0x6E,
0xE6,0xA4,0xEE,0xE8,0xE8,0xA3,0xEE,0x6E,0xE6,0xEE,0xEE,
0x8E,0x8E,0xA5,0xEE,0x66,0xEE,0xFF,0xFF,0xEF,0xFE,
0xEF,0x88,0xA6,0xEE,0x6E,0x6E,0xE6,0xA9,0xEE,0x6E,0x6E,
0xE6,0xA3,0xEE,0xA3,0x88,0xE8,0xEE,0xEE,0x6E,0xE6,
0xEE,0xEE,0xEF,0xFE,0xEE,0xFF,0xEE,0x88,
0xA3,0xEE,0x6E,0xE6,0xE6,0xAA,0xEE,0x6E,0xE6,0xA6,0xEE,
0xE8,0xE8,0xA3,0xEE,0x6E,0xE6,0xA4,0xEE,0xEF,0xFE,
0xFF,0xEE,0x88,0xA1, };
unsigned char fountain_rle[]={
0x28, /* ysize=40 */
0xAD,0x44,0x14,0xA6,0x44,0x84,0x88,0xC8,0xA9,0xCC,
@ -483,33 +484,33 @@ unsigned char fountain_rle[]={
0xA4,0xEE,0xE5,0x5E,0xFF,0x55,0xEE,0xEE,0xA9,0x84,
0x88,0xC8,0xAB,0xCC,0x5C,0x5C,0x75,0x75,0xE7,0xA8,0xEE,
0xE5,0x5F,0xEE,0x55,0x75,0xA9,0xC8,0xAB,0xCC,
0x5C,0x55,0xE7,0xE7,0xAC,0xEE,0xE5,0x5E,0x55,
0x5C,0xA0,0x01,0xA5,0xE7,0xE7,0xAC,0xEE,0xE5,0x5E,0x55,
0x77,0xA0,0x12,0xCC,0xDC,0xDC,0x55,0xE5,0x5E,0xAE,0xEE,
0x55,0x55,0x77,0xAD,0xCC,0xA3,0x8C,0xDC,0xA3,0xDD,0x55,
0xEE,0xFA,0x5E,0xAA,0xEE,0x5E,0x5E,0x55,0x75,
0x77,0x77,0xAD,0xCC,0xBB,0xB8,0x88,0x8D,0x5D,
0x75,0x75,0xE7,0x55,0xFF,0xEA,0x5E,0xA6,0xEE,
0x5E,0x55,0x55,0x75,0x75,0xA4,0x77,0xAB,0xCC,0xDC,0xDD,
0xBB,0xBB,0x88,0x88,0x87,0xA4,0xEE,0x55,0xEE,0xF5,
0x5E,0xEE,0xEE,0x5E,0x5E,0x55,0x75,0x75,0xA6,0x77,0x57,
0xAA,0xCC,0xDC,0xA3,0xDD,0xBB,0xBB,0x88,0x88,0xEE,0xA3,0x11,
0xE1,0x55,0xFF,0xE5,0x55,0x55,0x5A,0x75,
0xA7,0x77,0x57,0xD5,0xDD,0xAA,0xCC,0xCD,0x5D,
0xBA,0x11,0x11,0xBB,0xEE,0xE8,0xEE,0xEE,0x11,
0xA3,0xEE,0x55,0xEE,0x55,0xA7,0x77,0x57,0xD5,0xD5,
0xA3,0xDD,0xAB,0xCC,0x7B,0x5B,0xEE,0xBB,0xBB,0xBE,
0xEE,0xEE,0x1E,0x11,0xA4,0xEE,0x55,0x55,0xA4,0x77,0x57,0x57,
0xD5,0xA6,0xDD,0xAB,0xCC,0x77,0x75,0x5B,0xA7,0x11,
0xA3,0xEE,0x5E,0x55,0x75,0x77,0x77,0x57,0xD5,
0xA9,0xDD,0xAB,0xCC,0xCA,0x77,0x75,0x5E,0xE1,
0xA3,0x11,0xE1,0xEE,0xEE,0x5E,0x75,0x75,0x77,0x57,
0xD5,0xD5,0xA9,0xDD,0xCD,0xAD,0xCC,0xC5,0x77,0x75,
0x5E,0xEE,0xEE,0x5E,0x5E,0x55,0x75,0x77,0x57,0x57,
0xD5,0xA9,0xDD,0xCD,0xCD,0xA0,0x10,0xCC,0xC5,0x77,0x75,
0x5E,0x55,0x75,0x77,0x77,0x57,0xD5,0xAA,0xDD,
0xCD,0xA0,0x14,0xCC,0xC5,0x77,0x55,0x55,0x57,0xD5,0xD5,
0xAA,0xDD,0xCD,0xA0,0x17,0xCC,0xC5,0xC5,0xCD,0xAA,0xDD,0xCD,0xCD,
0xAA,0xCC,0xA1, };
0x5E,0xA0,0x01,0xA5,0x55,0x75,0x75,0xA4,0x77,0xAB,0xCC,0xDC,
0xDD,0xBB,0xBB,0x88,0x88,0x87,0xA4,0xEE,0x55,0xEE,
0xF5,0x5E,0xEE,0xEE,0x5E,0x5E,0x55,0x75,0x75,0xA6,0x77,
0x57,0xAA,0xCC,0xDC,0xA3,0xDD,0xBB,0xBB,0x88,0x88,0xEE,
0xA3,0x11,0xE1,0x55,0xFF,0xE5,0x55,0x55,0x5A,
0x75,0xA7,0x77,0x57,0xD5,0xDD,0xAA,0xCC,0xCD,
0xA0,0x01,0xAD,0xBA,0x11,0x11,0xBB,0xEE,0xE8,0xEE,0xEE,
0x11,0xA3,0xEE,0x55,0xEE,0x55,0xA7,0x77,0x57,
0xD5,0xD5,0xA3,0xDD,0xAB,0xCC,0x7B,0x5B,0xEE,0xBB,0xBB,
0xBE,0xEE,0xEE,0x1E,0x11,0xA4,0xEE,0x55,0x55,0xA4,0x77,
0x57,0x57,0xD5,0xA6,0xDD,0xAB,0xCC,0x77,0x75,0x5B,
0xA7,0x11,0xA3,0xEE,0x5E,0x55,0x75,0x77,0x77,0x57,
0xD5,0xA9,0xDD,0xAB,0xCC,0xCA,0x77,0x75,0x5E,
0xE1,0xA3,0x11,0xE1,0xEE,0xEE,0x5E,0x75,0x75,0x77,
0x57,0xD5,0xD5,0xA9,0xDD,0xCD,0xAD,0xCC,0xC5,0x77,
0x75,0x5E,0xEE,0xEE,0x5E,0x5E,0x55,0x75,0x77,
0x57,0x57,0xD5,0xA9,0xDD,0xCD,0xCD,0xA0,0x10,0xCC,0xC5,0x77,
0x75,0x5E,0x55,0x75,0x77,0x77,0x57,0xD5,
0xAA,0xDD,0xCD,0xA0,0x14,0xCC,0xC5,0x77,0x55,0x55,0x57,
0xD5,0xD5,0xAA,0xDD,0xCD,0xA0,0x17,0xCC,0xC5,0xC5,0xCD,0xAA,0xDD,
0xCD,0xCD,0xAA,0xCC,0xA1, };
unsigned char jc_rle[]={
0x28, /* ysize=40 */
0xA0,0x29,0x00,0x70,0x00,0x00,0xA7,0x85,0xA9,0x00,0x70,0xF7,
@ -586,28 +587,31 @@ unsigned char jc_hallway_rle[]={
0xA0,0x26,0x00,0x07,0x78,0xA1, };
unsigned char mirror_lake_rle[]={
0x28, /* ysize=40 */
0xA0,0x29,0x66,0x46,0xA9,0x66,0x56,0x56,0x57,0x56,0x56,0x76,
0xA0,0x29,0x66,0x46,0xA9,0x66,0xA0,0x02,0xA6,0xA0,0x01,0xA7,0xA0,0x02,0xA6,0x76,
0xA0,0x16,0x66,0x55,0x46,0x44,0x66,0x66,0xA3,0x56,0xA3,0x55,
0x88,0x57,0x7A,0xA5,0x5A,0x56,0xA0,0x11,0x66,0xA3,0x56,
0x55,0x44,0x55,0x88,0xA6,0x55,0x85,0x88,
0x58,0x57,0x77,0x7A,0xA3,0x5A,0x55,0x56,
0xAF,0x66,0x76,0x57,0x5A,0x55,0x55,0x44,0x44,0x88,
0x85,0x55,0x85,0x85,0x58,0x58,0x55,0x55,0x5A,0x55,
0x5A,0x57,0x77,0xA3,0x7A,0x75,0xAC,0x66,0x76,
0x77,0x57,0x57,0x5A,0x5A,0x55,0x55,0xA3,0x44,0x58,0x88,
0x85,0xA5,0x55,0xA9,0x5A,0xA7,0x66,0xA3,0xF6,0x5F,0x7A,
0x57,0x57,0x5A,0x7A,0x5A,0xA3,0x55,0xA3,0x44,0x55,0x55,
0x88,0xA4,0x55,0x5A,0x5A,0x55,0xA8,0x5A,0xA7,0xFF,0x5F,
0x7A,0x7A,0x77,0x7A,0x5A,0x5A,0xA5,0x55,0xA3,0x44,0x58,
0xA3,0x55,0x88,0x8A,0x8A,0x85,0x5A,0x5A,0x55,0x5A,0x5A,
0xA3,0x8A,0xA3,0x5A,0x5F,0xA4,0xFF,0x7A,0xA3,0x77,0x57,
0x5A,0x5A,0x55,0x88,0x85,0x5A,0x5A,0x55,0x44,
0x84,0x44,0x85,0x85,0xA4,0x55,0x58,0x88,0x48,
0x58,0x45,0x4A,0x5A,0x58,0x4A,0x58,
0x5A,0x5A,0x44,0x5A,0x5A,0x44,0xFF,0x5F,0x5A,
0x57,0x57,0x5A,0xD5,0x88,0x8D,0x88,0xD8,
0x88,0xA0,0x01,0xA7,0x7A,0xA5,0xAA,0x56,0xA0,0x11,0x66,0xA0,0x01,0xA6,
0x56,0xA0,0x01,0xA6,0x55,0x44,0x55,0x88,0xA6,0x55,
0x85,0x88,0x58,0x57,0x77,0x7A,0xA3,0xAA,
0xA0,0x01,0xA5,0xA0,0x01,0xA6,0xAF,0x66,0x76,0xA0,0x01,0xA7,0xA0,0x01,0xAA,0x55,0x55,
0x44,0x44,0x88,0x85,0x55,0x85,0x85,0x58,0x58,0x55,0x55,
0x5A,0x55,0xA0,0x01,0xAA,0xA0,0x01,0xA7,0x77,0xA3,0x7A,0x75,
0xAC,0x66,0x76,0x77,0xA0,0x02,0xA7,0xA0,0x01,0xAA,0x5A,0x55,0x55,
0xA3,0x44,0x58,0x88,0x85,0x55,0x55,0xA0,0x02,0xA5,0x55,
0x5A,0x5A,0xA5,0xAA,0x5A,0xA0,0x01,0xAA,0xA7,0x66,0xA3,0xF6,0xA0,0x01,0xAF,
0x7A,0xA0,0x02,0xA7,0xA0,0x01,0xAA,0x7A,0x5A,0xA3,0x55,0xA3,0x44,
0x55,0x55,0x88,0x55,0xA0,0x01,0xA5,0x55,0x55,0x5A,0xA0,0x01,0xAA,
0xA0,0x01,0xA5,0xA8,0xAA,0xA7,0xFF,0xA0,0x01,0xAF,0x7A,0x7A,0x77,0x7A,
0xA0,0x01,0xAA,0x5A,0xA3,0x55,0xA0,0x01,0xA5,0x55,0xA3,0x44,0x58,
0xA3,0x55,0x88,0x8A,0x8A,0x85,0x5A,0x5A,0xA0,0x01,0xA5,0xA0,0x02,0xAA,
0xA3,0x8A,0x5A,0xA0,0x02,0xAA,0xA0,0x01,0xAF,0xA4,0xFF,0x7A,0xA3,0x77,
0xA0,0x01,0xA7,0x5A,0x5A,0x55,0x88,0x85,0x5A,0xA0,0x01,0xAA,
0x55,0x44,0x84,0x44,0x85,0x85,0x55,0xA0,0x01,0xA5,
0x55,0x55,0x58,0x88,0x48,0x58,0x45,0x4A,
0x5A,0xA0,0x01,0xA8,0x4A,0x58,0x5A,0xA0,0x01,0xAA,0x44,
0xA0,0x01,0xAA,0x5A,0x44,0xFF,0xA0,0x01,0xAF,0xA0,0x01,0xAA,0xA0,0x01,0xA7,
0x57,0xA0,0x01,0xAA,0xD5,0x88,0x8D,0x88,0xD8,
0x8D,0xD8,0xD8,0xD5,0x84,0x48,0x44,0xA3,0x55,
0x5A,0x44,0x55,0x5A,0x44,0x44,0x5A,0x44,0x44,
0xA0,0x01,0xAA,0x44,0xA0,0x01,0xA5,0x5A,0x44,0x44,0x5A,0x44,0x44,
0x55,0x55,0x44,0x44,0x5A,0x5A,0x44,0x5A,0x85,0x44,
0x55,0x55,0x85,0x55,0x85,0x8D,0x88,0x88,0x48,
0x44,0x44,0xD4,0x48,0x88,0x88,0x44,0x44,0x40,0x44,
@ -634,7 +638,8 @@ unsigned char mirror_lake_rle[]={
0xF7,0xA7,0xEE,0xA5,0x7E,0xA4,0xEE,0xE5,0x55,0xA4,0x88,
0xA7,0x55,0x5E,0x5E,0xA5,0xEE,0xE5,0xE5,0xEA,0xEA,0xAB,0xEE,0xA3,0xE7,
0xA5,0xEE,0xE8,0x88,0x88,0xAE,0x55,0xA6,0x5E,0xA4,0x55,0xA3,0x5E,
0x55,0xA3,0x5E,0xA8,0xEE,0xE8,0xA0,0x21,0x55,0x5E,0x5E,0xA5,0xEE,0xA1, };
0x55,0xA3,0x5E,0xA8,0xEE,0xE8,0xA0,0x1A,0x55,0xA0,0x02,0xA5,0x55,
0xA0,0x01,0xA5,0xA3,0x55,0x5E,0x5E,0xA5,0xEE,0xA1, };
unsigned char deutsch_rle[]={
0x28, /* ysize=40 */
0xA3,0x00,0xA0,0x22,0x88,0xA6,0x00,0x88,0xF8,0xF8,0x88,0x88,0xF8,0xF8,
@ -747,23 +752,23 @@ unsigned char ap_calculus_rle[]={
0x44,0x44,0x5B,0xBB,0xB0,0xA3,0x00,0x55,0x00,
0x20,0x28,0x27,0xA4,0x88,0xA3,0x00,0x1B,0x08,
0xA6,0x00,0xDB,0x88,0xA5,0x00,0xFB,0xDD,0xA3,0x00,
0x44,0x44,0xB5,0x0B,0xA4,0x00,0x5A,0x05,0xA3,0x42,
0x44,0x44,0xB5,0x0B,0xA4,0x00,0xA0,0x01,0xAA,0x05,0xA3,0x42,
0xA4,0x08,0x75,0x7B,0x71,0x11,0x95,0xA3,0x05,
0x75,0x7B,0x7D,0xDD,0x98,0x05,0x05,0x75,
0x7B,0x7F,0xFF,0xDD,0xA3,0x05,0x44,0xF0,
0xFF,0xA4,0x00,0x5A,0x00,0x00,0x55,0x00,0x55,
0xFF,0xA4,0x00,0xA0,0x01,0xAA,0x00,0x00,0x55,0x00,0x55,
0xA7,0x00,0x11,0x99,0xA6,0x00,0xDD,0x99,0xA5,0x00,
0xFF,0x99,0xA4,0x00,0xBF,0xFF,0xF0,0x00,0x00,
0x5A,0xA3,0x00,0x55,0x00,0x55,0xA5,0x00,0xA3,0x44,
0xA0,0x01,0xAA,0xA3,0x00,0x55,0x00,0x55,0xA5,0x00,0xA3,0x44,
0x99,0xA4,0x00,0xA3,0x88,0x99,0xA3,0x00,0xA3,0x88,0x99,
0xA5,0x00,0x9F,0x9F,0x00,0x5A,0xA4,0x00,0x05,0x00,
0xA5,0x00,0x9F,0x9F,0x00,0xA0,0x01,0xAA,0xA4,0x00,0x05,0x00,
0x05,0xA5,0x00,0x44,0x79,0x09,0x79,0xA4,0x00,
0xBB,0x79,0x09,0x79,0xA3,0x00,0xBB,0x79,
0x09,0x79,0xA5,0x00,0x99,0x09,0x55,0xAC,0x00,
0x80,0x84,0x77,0x00,0x77,0xA3,0x00,0x80,
0x8F,0x77,0x00,0x77,0x00,0x00,0x80,0x8F,
0x77,0x00,0x77,0xA5,0x00,0x99,0x55,0xA0,0x26,0x00,
0x89,0x80,0xA0,0x25,0x00,0x5A,0xA0,0x26,0x00,0x5A,0xA0,0x27,0x00,0xA1, };
0x89,0x80,0xA0,0x25,0x00,0xA0,0x01,0xAA,0xA0,0x26,0x00,0xA0,0x01,0xAA,0xA0,0x27,0x00,0xA1, };
unsigned char patriot_room_rle[]={
0x28, /* ysize=40 */
0xA0,0x30,0x88,0xDD,0x8D,0xD8,0x88,0xD8,0x8D,
@ -841,21 +846,21 @@ unsigned char jc_office_rle[]={
unsigned char puzzle_rle[]={
0x28, /* ysize=40 */
0xF0,0x0F,0x0F,0x00,0xF0,0x0F,0x0F,0x00,0xF0,
0x0F,0xF0,0xAE,0x00,0x5A,0xA5,0x00,0x50,0xA6,0x57,
0x0F,0xF0,0xAE,0x00,0xA0,0x01,0xAA,0xA5,0x00,0x50,0xA6,0x57,
0x50,0x00,0xFF,0xF0,0xF0,0x00,0xFF,0xF0,0xF0,
0x00,0xFF,0x00,0xFF,0x00,0xF0,0xA3,0x00,
0xF0,0xA8,0x00,0x5A,0xAE,0x00,0xFF,0x00,0xFF,
0xF0,0xA8,0x00,0xA0,0x01,0xAA,0xAE,0x00,0xFF,0x00,0xFF,
0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,
0xFF,0x00,0xFF,0x0F,0xF0,0x00,0xFF,
0x0F,0xF0,0x0F,0xF0,0xA4,0x00,0x5A,0xAF,0x00,
0x0F,0xF0,0x0F,0xF0,0xA4,0x00,0xA0,0x01,0xAA,0xAF,0x00,
0x0F,0xA3,0x00,0x0F,0xA3,0x00,0x0F,0x00,0x00,0x0F,
0x00,0x0F,0x00,0x0F,0x00,0x0F,0x00,
0x0F,0xA4,0x00,0x5A,0xAE,0x00,0xA3,0xF0,0xA7,0x00,0xA3,0xF0,
0xAC,0x00,0x5A,0xAE,0x00,0xFF,0xF0,0xFF,0x00,
0x0F,0xA4,0x00,0xA0,0x01,0xAA,0xAE,0x00,0xA3,0xF0,0xA7,0x00,0xA3,0xF0,
0xAC,0x00,0xA0,0x01,0xAA,0xAE,0x00,0xFF,0xF0,0xFF,0x00,
0xFF,0xF0,0x00,0xF0,0x00,0x00,0xFF,0xF0,
0xFF,0xAC,0x00,0x5A,0xA0,0x10,0x00,0xFF,0x00,0xFF,
0xFF,0xAC,0x00,0xA0,0x01,0xAA,0xA0,0x10,0x00,0xFF,0x00,0xFF,
0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,
0xFF,0xAC,0x00,0x5A,0xAE,0x00,0xA0,0x19,0x50,0x5A,0xA0,0x58,0x00,
0xFF,0xAC,0x00,0xA0,0x01,0xAA,0xAE,0x00,0xA0,0x19,0xA0,0xA0,0x01,0xAA,0xA0,0x58,0x00,
0xA3,0x11,0xA0,0x24,0x00,0xA5,0x11,0xAC,0x00,0x04,0x74,0x04,
0x74,0x74,0x04,0x01,0x11,0xAF,0x00,0xA5,0x11,0xAC,0x00,
0x88,0x88,0xA4,0x99,0x00,0x11,0xAF,0x00,0x11,0x11,0x71,0x71,

View File

@ -11,7 +11,7 @@ $(DOS33):
pt3_player.dsk: PT3_PLAYER HELLO
cp empty.dsk pt3_player.dsk
$(DOS33) -y pt3_player.dsk SAVE A HELLO
$(DOS33) -y pt3_player.dsk BSAVE -a 0x2000 PT3_PLAYER
$(DOS33) -y pt3_player.dsk BSAVE -a 0x1000 PT3_PLAYER
$(DOS33) -y pt3_player.dsk BSAVE -a 0x4000 EA.PT3
$(DOS33) -y pt3_player.dsk BSAVE -a 0x4000 VC.PT3
$(DOS33) -y pt3_player.dsk BSAVE -a 0x4000 SR.PT3
@ -22,8 +22,8 @@ pt3_debug.dsk: PT3_PLAYER PT3_DUMPER PT3_TIMER HELLO_DEBUG DUMP
$(DOS33) -y pt3_debug.dsk SAVE A HELLO_DEBUG HELLO
$(DOS33) -y pt3_debug.dsk SAVE A DUMP
$(DOS33) -y pt3_debug.dsk BSAVE -a 0x1000 PT3_DUMPER
$(DOS33) -y pt3_debug.dsk BSAVE -a 0x2000 PT3_PLAYER
$(DOS33) -y pt3_debug.dsk BSAVE -a 0x2000 PT3_TIMER
$(DOS33) -y pt3_debug.dsk BSAVE -a 0x1000 PT3_PLAYER
$(DOS33) -y pt3_debug.dsk BSAVE -a 0x1000 PT3_TIMER
$(DOS33) -y pt3_debug.dsk BSAVE -a 0x4000 EA.PT3
$(DOS33) -y pt3_debug.dsk BSAVE -a 0x4000 VC.PT3
$(DOS33) -y pt3_debug.dsk BSAVE -a 0x4000 SR.PT3
@ -41,16 +41,16 @@ DUMP: dump.bas
#
PT3_PLAYER: pt3_player.o
ld65 -o PT3_PLAYER pt3_player.o -C ../linker_scripts/apple2_2000.inc
ld65 -o PT3_PLAYER pt3_player.o -C ../linker_scripts/apple2_1000.inc
pt3_player.o: pt3_player.s \
gr_fast_clear.s pt3_lib.s interrupt_handler.s zp.inc
gr_fast_clear.s pt3_lib.s interrupt_handler.s fire.s zp.inc
ca65 -o pt3_player.o pt3_player.s -l pt3_player.lst
#
PT3_TIMER: pt3_timer.o
ld65 -o PT3_TIMER pt3_timer.o -C ../linker_scripts/apple2_2000.inc
ld65 -o PT3_TIMER pt3_timer.o -C ../linker_scripts/apple2_1000.inc
pt3_timer.o: pt3_timer.s \
gr_fast_clear.s pt3_lib.s interrupt_handler.s zp.inc
@ -64,9 +64,9 @@ PT3_DUMPER: pt3_dumper.o
pt3_dumper.o: pt3_dumper.s \
gr_fast_clear.s pt3_lib.s interrupt_handler.s zp.inc
ca65 -o pt3_dumper.o pt3_dumper.s -l pt3_dumper.lst
#
clean:
rm -f *~ TITLE.GR *.o *.lst \
PT3_PLAYER PT3_TIMER PT3_DUMPER
PT3_PLAYER PT3_TIMER PT3_DUMPER FIRE

5
pt3_player/gr_offsets.s Normal file
View File

@ -0,0 +1,5 @@
; move these to zero page for slight speed increase?
gr_offsets:
.word $400,$480,$500,$580,$600,$680,$700,$780
.word $428,$4a8,$528,$5a8,$628,$6a8,$728,$7a8
.word $450,$4d0,$550,$5d0,$650,$6d0,$750,$7d0

20
pt3_player/gr_setpage.s Normal file
View File

@ -0,0 +1,20 @@
;==========================================================
; set_text_page0
;==========================================================
;
set_text_page0:
bit PAGE0 ; set page0
bit TEXT ; set text mode
rts
;==========================================================
; set_gr_page0
;==========================================================
;
set_gr_page0:
bit PAGE0 ; set page 0
bit LORES ; Lo-res graphics
bit TEXTGR ; mixed gr/text mode
bit SET_GR ; set graphics
rts

View File

@ -0,0 +1,48 @@
;==========================================================
; Get Key
;==========================================================
;
get_key:
lda KEYPRESS ; 3
bpl no_key ; 2nt/3
figure_out_key:
cmp #' '+128 ; the mask destroys space ; 2
beq save_key ; so handle it specially ; 2nt/3
and #$5f ; mask, to make upper-case ; 2
check_right_arrow:
cmp #$15 ; 2
bne check_left_arrow ; 2nt/3
lda #'D' ; 2
check_left_arrow:
cmp #$08 ; 2
bne check_up_arrow ; 2nt/3
lda #'A' ; 2
check_up_arrow:
cmp #$0B ; 2
bne check_down_arrow ; 2nt/3
lda #'W' ; 2
check_down_arrow:
cmp #$0A ; 2
bne check_escape ; 2nt/3
lda #'S' ; 2
check_escape:
cmp #$1B ; 2
bne save_key ; 2nt/3
lda #'Q' ; 2
jmp save_key ; 3
no_key:
lda #0 ; no key, so save a zero ; 2
save_key:
sta LASTKEY ; save the key to our buffer ; 2
bit KEYRESET ; clear the keyboard buffer ; 4
rts ; 6
;============

View File

@ -15,14 +15,10 @@ pt3_setup:
jsr HOME
jsr TEXT
bit HIRES
bit LORES
bit SET_GR
bit TEXTGR ; split text/graphics
; lda #$20
; sta HGR_PAGE
; jsr HCLR
; Init disk code
jsr rts_init
@ -34,9 +30,6 @@ pt3_setup:
sta DONE_PLAYING
sta WHICH_FILE
; lda #$ff
; sta RASTERBARS_ON
; print detection message
; lda #<mocking_message ; load loading message
@ -111,7 +104,7 @@ mockingboard_found:
;============================
; Draw title screen
; Draw title screen?
;============================
@ -125,11 +118,10 @@ mockingboard_found:
;============================
; Init Background
;============================
; jsr set_gr_page0
; lda #0
; sta DRAW_PAGE
; sta SCREEN_Y
jsr set_gr_page0
jsr fire_init
;============================
; Enable 6502 interrupts
@ -580,20 +572,19 @@ song_list:
;=========
;routines
;=========
.include "../asm_routines/gr_offsets.s"
.include "gr_offsets.s"
.include "text_print.s"
.include "mockingboard_a.s"
.include "gr_fast_clear.s"
.include "../asm_routines/pageflip.s"
;.include "../asm_routines/gr_unrle.s"
.include "../asm_routines/gr_setpage.s"
;.include "../asm_routines/pageflip.s"
.include "gr_setpage.s"
.include "qkumba_rts.s"
.include "../asm_routines/gr_hlin.s"
.include "../asm_routines/keypress_minimal.s"
;.include "rasterbars.s"
;.include "volume_bars.s"
;.include "../asm_routines/gr_hlin.s"
.include "keypress_minimal.s"
.include "interrupt_handler.s"
.include "pt3_lib.s"
.include "fire.s"
;=========
; strings

View File

@ -115,6 +115,9 @@ MB_ADDRH EQU $A0
DONE_PLAYING EQU $A1
MB_CHUNK_OFFSET EQU $A2
DONE_SONG EQU $A3
FIRE_FB_L EQU $A4
FIRE_FB_H EQU $A5
; More zero-page addresses
; we try not to conflict with anything DOS, MONITOR or BASIC related