renamed 'src' to 'tools'
This commit is contained in:
1 parent
2305856d63
commit
d5f6f1924e
12 files changed
+6
-6
No files matched your search
@@ -0,0 +1,61 @@
|
||||
#include <stdio.h>
|
||||
|
||||
#include "basic005.c"
|
||||
|
||||
unsigned char bytes[65536];
|
||||
int len=0;
|
||||
|
||||
unsigned char colour_codes[16]={
|
||||
144,5,28,159,156,30,31,158,
|
||||
129,149,150,151,152,153,154,155
|
||||
};
|
||||
|
||||
int main(int argc,char **argv)
|
||||
{
|
||||
int reverse=0;
|
||||
int last_colour=-1;
|
||||
for(int y=0;y<24;y++) {
|
||||
unsigned char *line=&frame0000[43+y*40];
|
||||
unsigned char *colour=&frame0000[43+1000+y*40];
|
||||
int w=39;
|
||||
while(w&&line[w-1]==' ') w--;
|
||||
for(int x=0;x<w;x++) {
|
||||
// Update colour if required
|
||||
if (colour[x]!=last_colour) {
|
||||
bytes[len++]=colour_codes[colour[x]];
|
||||
last_colour=colour[x];
|
||||
}
|
||||
if ((line[x]&0x80)^reverse) {
|
||||
// Toggle reverse video flag
|
||||
if (reverse) bytes[len++]=0x92; else bytes[len++]=0x12;
|
||||
reverse^=0x80;
|
||||
}
|
||||
// Write char
|
||||
if (line[x]<0x20) bytes[len++]=line[x]+0x40;
|
||||
else if (line[x]>=0x40&&line[x]<0x60) bytes[len++]=line[x]+0x20;
|
||||
else if (line[x]>=0xe0)
|
||||
bytes[len++]=(line[x]&0x7f)+0x40;
|
||||
else if (line[x]>=0x80)
|
||||
bytes[len++]=line[x];
|
||||
else
|
||||
bytes[len++]=line[x];
|
||||
}
|
||||
|
||||
// Add end of line marker if required
|
||||
if (w<40) bytes[len++]=13;
|
||||
}
|
||||
|
||||
// Skip blank lines at the end
|
||||
while(bytes[len-1]==0x0d) len--;
|
||||
|
||||
bytes[len++]=0;
|
||||
|
||||
printf("; Used %d bytes\n",len);
|
||||
printf("startup_banner:");
|
||||
for(int i=0;i<len;i++) {
|
||||
if (!(i&0xf)) printf("\n .byte ");
|
||||
printf("$%02X",bytes[i]);
|
||||
if ((i&0xf)!=0xf) printf(",");
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
Reference in new issue
Block a user