solaris: update trying to figure out table

This commit is contained in:
Vince Weaver 2022-08-20 23:23:46 -04:00
parent 47f30f9de9
commit 17114d2728
4 changed files with 187 additions and 12 deletions

View File

@ -0,0 +1,21 @@
#include <stdio.h>
#include <math.h>
#define DIVISIONS 8
int main(int argc, char **argv) {
double diff=3.14159265358979/2/DIVISIONS;
double offset=3.14159265358979/2/8/16;
int i,j;
for(j=0;j<16;j++) {
printf("%d: ",j);
for(i=0;i<DIVISIONS;i++) {
printf("%.2lf ",80*sin((offset*j)+i*diff));
}
printf("\n");
}
return 0;
}

View File

@ -34,8 +34,8 @@ YY = $FD
MASK = $FE
FRAME = $FF
surtb3 = $1000
surtb4 = $1083
;surtb3 = $1000
;surtb4 = $1083
; 0 1 2 3 4 5 6 7
; 01 02 04 08 10 20 40 80
@ -58,7 +58,6 @@ set_sur4:
set_sur3:
lda #<surtb3
done_sur:
sta turb3_smc+1
@ -67,7 +66,7 @@ done_sur:
tax
; lda log2,X
sec
sec ; 1
lda #0 ; 2
log2_loop:
rol ; 1
@ -87,12 +86,13 @@ inner_loop:
ldx HGR_X
turb3_smc:
lda surtb3,X
and MASK
lda surtb3,X ; get line lookup
and MASK ; and with current MASK
beq skip_color
lda #$FF
skip_color:
ldy #39
ldy #39 ; draw horizontal line at GBASL
inner_inner_loop:
sta (GBASL),Y
dey
@ -106,7 +106,7 @@ inner_inner_loop:
beq outer_loop
.if 0
offsets:
.byte $00,$00,$00,$00,$00,$00,$00,$00
.byte $00,$00,$00,$00,$00,$00,$00,$00
@ -125,8 +125,8 @@ values2:
.byte $df,$bf,$7f,$fe,$f9,$f7,$cf,$3f,$fc
.byte $e3,$9f,$7f,$fc,$c3,$3f,$fe,$e1
.byte $1f
.endif
.if 0
;64 + 21 = 76 vs 160
surtb3:
.byte $FF,$FF,$FE,$FF,$FF,$FD,$FF,$FF
@ -142,8 +142,6 @@ surtb3:
.byte $1F,$FF,$FF
surtb4:
.byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
.byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
@ -156,4 +154,4 @@ surtb4:
.byte $CF,$3F,$FF,$FF,$FF,$FF,$FC,$E3
.byte $9F,$7F,$FF,$FF,$FC,$C3,$3F,$FF
.byte $FE,$E1,$1F,$FF
.endif

View File

@ -0,0 +1,52 @@
#include <stdio.h>
unsigned char surtb3[]={
0xFF,0xFF,0xFE,0xFF,0xFF,0xFD,0xFF,0xFF,
0xFB,0xFF,0xFF,0xF7,0xFF,0xFF,0xEF,0xFF,
0xDF,0xFF,0xFF,0xBF,0xFF,0x7F,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFD,
0xFB,0xF7,0xFF,0xEF,0xDF,0xBF,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,
0xFD,0xF3,0xEF,0xDF,0x3F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFC,0xF3,0xCF,0x3F,0xFF,0xFF,
0xFF,0xFC,0xF3,0x8F,0x7F,0xFF,0xFE,0xE1,
0x1F,0xFF,0xFF,
};
unsigned char surtb4[]={
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,
0xFF,0xFD,0xFF,0xFB,0xFF,0xF7,0xFF,0xEF,
0xDF,0xFF,0xBF,0xFF,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,
0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xF9,0xF7,
0xCF,0x3F,0xFF,0xFF,0xFF,0xFF,0xFC,0xE3,
0x9F,0x7F,0xFF,0xFF,0xFC,0xC3,0x3F,0xFF,
0xFE,0xE1,0x1F,0xFF
};
unsigned short combined[83];
int main(int argc, char **argv) {
int i,j;
for(i=0;i<83;i++) {
combined[i]=(surtb4[i]<<8)|(surtb3[i]&0xff);
}
for(j=0;j<16;j++) {
printf("%d: ",j);
for(i=0;i<83;i++) {
if (!(combined[i]&(1<<j))) printf("%d ",i);
}
printf("\n");
}
}

View File

@ -0,0 +1,104 @@
#include <stdio.h>
unsigned char surtb3[]={
0xFF,0xFF,0xFE,0xFF,0xFF,0xFD,0xFF,0xFF,
0xFB,0xFF,0xFF,0xF7,0xFF,0xFF,0xEF,0xFF,
0xDF,0xFF,0xFF,0xBF,0xFF,0x7F,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFD,
0xFB,0xF7,0xFF,0xEF,0xDF,0xBF,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,
0xFD,0xF3,0xEF,0xDF,0x3F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFC,0xF3,0xCF,0x3F,0xFF,0xFF,
0xFF,0xFC,0xF3,0x8F,0x7F,0xFF,0xFE,0xE1,
0x1F,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,
0xFF,0xFD,0xFF,0xFB,0xFF,0xF7,0xFF,0xEF,
0xDF,0xFF,0xBF,0xFF,0x7F,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,
0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xF9,0xF7,
0xCF,0x3F,0xFF,0xFF,0xFF,0xFF,0xFC,0xE3,
0x9F,0x7F,0xFF,0xFF,0xFC,0xC3,0x3F,0xFF,
0xFE,0xE1,0x1F,0xFF
};
unsigned char surtb3_gen[167];
int main(int argc, char **argv) {
int i,diffs=0;
for(i=0;i<167;i++) {
if ((i&1)==0) printf("%d\n",surtb3[i]);
}
#if 0
for(i=0;i<167;i++) {
surtb3_gen[i]=0xff;
}
/* calc diff */
for(i=0;i<167;i++) {
if (surtb3_gen[i]!=surtb3[i]) diffs++;
}
printf("%d differences!\n",diffs);
#endif
// ldy #0
// lda compressed,Y
// ror
// bcs streamofff
//streamofff
// tax
// sta output
// inc output
// dex
// bpl loop
// ldx #0
// ldy #7
// ror bitmap,X
// bcc blah
// lda IT
// inc smc
// jmp urgh
//blah:
// lda #$ff
//urgh:
// sta surtb3
// inc smc
// dey
// bpl inner
// inx
// cpx #20
// bne outer
#if 0
for(i=0;i<83;i++) {
printf("%d ",(~surtb3[i])&0xff);
}
printf("\n");
for(i=0;i<83;i++) {
printf("%d ",(~surtb4[i])&0xff);
}
printf("\n");
#endif
return 0;
}
// 0 0 1 0 0 2 0 0 4 0 0 8 0 0 16 0
// 32 0 0 64 0 128 0 0 0 0 0 0 0 0 0 0
// 0 0 0 0 0 1 0 2 4 8 0 16 32 64 128 0
// 0 0 0 0 0 0 0 1 2 12 16 32 192 0 0 0
// 0 0 3 12 48 192 0 0 0 3 12 112 128 0 1 30 224 0 0
//0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 2 0 4 0 8 0 16 32 0 64 0 128 0 0 0 0 0 0 0 0 0 0 1 2 4 8 16 32 64 128 0 0 0 0 0 0 1 6 8 48 192 0 0 0 0 3 28 96 128 0 0 3 60 192 0 1 30 224