nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 19 Apr 2024 20:07



This topic is locked, you cannot edit posts or make further replies.  [ 13 posts ] 
Solid C и большие программы 
Author Message
God
User avatar

Joined: 03 Feb 2003 13:53
Posts: 1078
Вот ориогинальный код:
Code:
//Homer simpson or american chajnik in russia speech reader
//ver 0.1preAlpha1
//25 dec 2003
//LXX-speech #XX
//E1-speech end

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

int find(char s,char *str2)
{
int ptr=0;
while(str2[ptr]!=0)
{
if(str2[ptr]==s) return ptr; // number return
ptr++;
}
return -1; // not found
}       

/*int findstr(char str[],char str2[])
{
        int x,x1,rez,i;
        x=sizeof(str2);
        x1=sizeof(str);
        if(x>=x1)
        {
                for (i=0; i==x; i++)
                {
                        rez=find(str[i],str2);
                        if(rez==-1)
                        {
                                i=x;
                                return -1;
                        }
                        return 1;       
                }       

        } else {
                return -1;
       
        }
                       
               
}*/     
int main (void)
{
        FILE *fpspeech;
        char str[81];
        int est,dat,odat,i;
        est=0;
       

        if ((fpspeech=fopen("program.eng","r"))==NULL)
        {
                printf("\aERROR opening program.rus\n");
                return(100);
        }
        while ((fgets(str,sizeof(str),fpspeech))!=NULL)
        {
                if
                (str[0]=='I')
                {
                        printf("IF");
                        if(find('M',str)!=-1)
                        {
                                dat=find('M',str);
                                if(isdigit(str[(dat+1)])&&isdigit(str[(dat+2)]))
                                {
                                        printf(" DATA [%c%c]=1",str[dat+1],str[dat+2]);
                                }
                        }
                        if(find('S',str)!=-1)
                        {
                                dat=find('S',str);
                                if(isxdigit(str[dat+1])&&isxdigit(str[dat+2]))
                                {
                                        printf(" POCKET[1--3]=%c%c",str[dat+1],str[dat+2]);
                                }
                        }
                        if(find('B',str)!=-1)
                        {
                                dat=find('B',str);
                                if(isdigit(str[dat+1])&&isdigit(str[dat+2]))
                                {
                                        printf(" PLAY %c%c",str[dat+1],str[dat+2]);
                                }
                        }
                        if(find('P',str)!=-1)
                        {
                                odat=find('P',str);
                                if(isdigit(str[odat+1])&&isdigit(str[odat+2]))
                                {
                                        printf(" Print(personage=%c%c Length=%c%c", str[odat+1],str[odat+2],str[odat+3],str[odat+4]);
                                        dat=find('*',str);

                                        i=odat+5;
                                        printf(" ");
                                        while(isalnum(str[i])||str[i]==' '||str[i]=='!'||str[i]=='?'||str[i]=='-'||str[i]=='.'||str[i]==','||str[i]==':'||str[i]==')'||str[i]==39)
                                        {
                                                printf("%c",str[i]);
                                                i++;
                                        }
                                        dat=find('*',str);
                                        if (dat!=-1)
                                        {
                                                if (str[dat+1]=='*')
                                                {
                                                        printf(" WAIT=2)");
                                                 }
                                                 else
                                                 {
                                                        printf(" WAIT=1)");
                                                 }
                                        }
                                        else
                                        {
                                                printf(" WAIT=0)");
                                        }
                                }
                        }
                        if (find('R',str)!=-1)
                        {
                                dat=find('R',str);
                                if(isdigit(str[dat+1])&&isdigit(str[dat+2]))
                                {
                                        printf(" PutSprite(Moveable=%c,Solid=%c,#%c%c)",str[dat+1],str[dat+2],str[dat+3],str[dat+4]);
                                }

                        }
                        if (find('+',str)!=-1)
                        {
                                dat=find('+',str);
                                if(isxdigit(str[dat+1])&&isxdigit(str[dat+2]))
                                {
                                        printf(" PutPocket(#%c%c)",str[dat+1],str[dat+2]);
                                }
                        }
                        if (find('-',str)!=-1)
                        {
                                dat=find('-',str);
                                if(isxdigit(str[dat+1])&&isxdigit(str[dat+2]))
                                {
                                        printf(" RemovePocket(#%c%c)",str[dat+1],str[dat+2]);
                                }
                        }
                        dat=find('G',str);
                        if ((find('G',str)!=-1)&&(isdigit(str[dat+1])||str[dat+1]=='$'||str[dat+1]=='%'||str[dat+1]==96||str[dat+1]=='!') && isdigit(str[dat+2]))
                        {
                                dat=find('G',str);
                                if((isdigit(str[dat+1])||str[dat+1]=='$'||str[dat+1]=='%'||str[dat+1]==96||str[dat+1]=='!')&&isdigit(str[dat+2]))
                                {
                                        printf(" Goto label %c%c",str[dat+1],str[dat+2]);
                                }
                        }
                        if (find('E',str)!=-1)
                        {
                                dat=find('E',str);
                                if(str[dat+1]=='0')
                                {
                                        printf(" Exit 0");
                                }
                                if(str[dat+1]=='1')
                                {
                                        printf(" Exit 1");
                                }
                        }
                        printf("\n%s",str);
                        getchar();
                }
                if(str[0]=='E')
                {
                        if(find('1',str)!=-1)
                        {
                                printf("Exit 1");
                        }

                        if(find('0',str)!=-1)
                        {
                                printf("Exit 0");
                        }
                        printf("\n%s",str);
                        getchar();
                }
                if(str[0]=='P')
                        {
                                odat=find('P',str);
                                if(isdigit(str[odat+1])&&isdigit(str[odat+2]))
                                {
                                        printf(" Print(personage=%c%c Length=%c%c", str[odat+1],str[odat+2],str[odat+3],str[odat+4]);
                                        dat=find('*',str);

                                        i=odat+5;
                                        printf(" ");
                                        while(isalnum(str[i])||str[i]==' '||str[i]=='!'||str[i]=='?'||str[i]=='-'||str[i]=='.'||str[i]==','||str[i]==':'||str[i]==')'||str[i]==39)
                                        {
                                                printf("%c",str[i]);
                                                i++;
                                        }
                                        dat=find('*',str);
                                        if (dat!=-1)
                                        {
                                                if (str[dat+1]=='*')
                                                {
                                                        printf(" WAIT=2)");
                                                 }
                                                 else
                                                 {
                                                        printf(" WAIT=1)");
                                                 }
                                        }
                                        else
                                        {
                                                printf(" WAIT=0)");
                                        }
                                }
                                printf("\n");
                                //getchar();
                        }


                if(str[0]=='L' && (isdigit(str[1])||str[1]=='$'||str[1]=='%'||str[1]==96||str[1]=='!') && isdigit(str[2]))
                {
                        printf("Label %c%c",str[1],str[2]);
                        if /*(find('I',str)!=-1)*/
                        (str[4]=='I')
                        {
                                printf(" IF");
                        }
                        if(find('M',str)!=-1)
                        {
                                dat=find('M',str);
                                if(isdigit(str[(dat+1)])&&isdigit(str[(dat+2)]))
                                {
                                        printf(" DATA [%c%c]=1",str[dat+1],str[dat+2]);
                                }
                        }
                        if(find('S',str)!=-1)
                        {
                                dat=find('S',str);
                                if(isxdigit(str[dat+1])&&isxdigit(str[dat+2]))
                                {
                                        printf(" POCKET[1--3]=%c%c",str[dat+1],str[dat+2]);
                                }
                        }
                        if(find('B',str)!=-1)
                        {
                                dat=find('B',str);
                                if(isdigit(str[dat+1])&&isdigit(str[dat+2]))
                                {
                                        printf(" PLAY %c%c",str[dat+1],str[dat+2]);
                                }
                        }
                        if(find('P',str)!=-1)
                        {
                                odat=find('P',str);
                                if(isdigit(str[odat+1])&&isdigit(str[odat+2]))
                                {
                                        printf(" Print(personage=%c%c Length=%c%c", str[odat+1],str[odat+2],str[odat+3],str[odat+4]);
                                        dat=find('*',str);

                                        i=odat+5;
                                        printf(" ");
                                        while(isalnum(str[i])||str[i]==' '||str[i]=='!'||str[i]=='?'||str[i]=='-'||str[i]=='.'||str[i]==','||str[i]==':'||str[i]==')'||str[i]==39)
                                        {
                                                printf("%c",str[i]);
                                                i++;
                                        }
                                        dat=find('*',str);
                                        if (dat!=-1)
                                        {
                                                if (str[dat+1]=='*')
                                                {
                                                        printf(" WAIT=2)");
                                                 }
                                                 else
                                                 {
                                                        printf(" WAIT=1)");
                                                 }
                                        }
                                        else
                                        {
                                                printf(" WAIT=0)");
                                        }
                                }
                        }
                        if (find('R',str)!=-1)
                        {
                                dat=find('R',str);
                                if(isdigit(str[dat+1])&&isdigit(str[dat+2]))
                                {
                                        printf(" PutSprite(Moveable=%c,Solid=%c,#%c%c)",str[dat+1],str[dat+2],str[dat+3],str[dat+4]);
                                }

                        }
                        if (find('+',str)!=-1)
                        {
                                dat=find('+',str);
                                if(isxdigit(str[dat+1])&&isxdigit(str[dat+2]))
                                {
                                        printf(" PutPocket(#%c%c)",str[dat+1],str[dat+2]);
                                }
                        }
                        if (find('-',str)!=-1)
                        {
                                dat=find('-',str);
                                if(isxdigit(str[dat+1])&&isxdigit(str[dat+2]))
                                {
                                        printf(" RemovePocket(#%c%c)",str[dat+1],str[dat+2]);
                                }
                        }
                        if (find('G',str)!=-1)
                        {
                                dat=find('G',str);
                                if((isdigit(str[dat+1])||str[dat+1]=='$')&&isdigit(str[dat+2]))
                                {
                                        printf(" Goto label %c%c",str[dat+1],str[dat+2]);
                                }
                        }
                        if (find('E',str)!=-1)
                        {
                                dat=find('E',str);
                                if(str[dat+1]=='0')
                                {
                                        printf(" Exit 0");
                                }
                                if(str[dat+1]=='1')
                                {
                                        printf(" Exit 1");
                                }
                        }

                        printf("\n");
                        //getchar();
                }

               
               
        }
        getchar();     
        if (fclose(fpspeech)==EOF)
        {
                printf("\aERROR closing program.ru\n");
                return(101);
        }       
       
        return 0;
}

Солид его не компилит. Вот испавленая версия
Code:
//Homer simpson or american chajnik in russia speech reader
//ver 0.1preAlpha1
//25 dec 2003
//LXX-speech #XX
//E1-speech end

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

#include <conio.h>              // для объявления getch()

// определить "getchar" (или исправь его везде на "getch")
#define getchar   getch



//int find(char s,char *str2)   // не верно
int find(s,str2)                // надо так
char s, *str2;
{
int ptr=0;
while(str2[ptr]!=0)
{
if(str2[ptr]==s) return ptr; // number return
ptr++;
}
return -1; // not found
}       

/*int findstr(char str[],char str2[])
{
        int x,x1,rez,i;
        x=sizeof(str2);
        x1=sizeof(str);
        if(x>=x1)
        {
                for (i=0; i==x; i++)
                {
                        rez=find(str[i],str2);
                        if(rez==-1)
                        {
                                i=x;
                                return -1;
                        }
                        return 1;       
                }       

        } else {
                return -1;
       
        }
                       
               
}*/     

//int main (void)               // не верно
int main ()                     // верно
{
        FILE *fpspeech;
        char str[81];
        int est,dat,odat,i;
        est=0;
       

        if ((fpspeech=fopen("program.eng","r"))==NULL)
        {
                printf("\aERROR opening program.rus\n");
                return(100);
        }
        while ((fgets(str,sizeof(str),fpspeech))!=NULL)
        {
                if
                (str[0]=='I')
                {
                        printf("IF");
                        if(find('M',str)!=-1)
                        {
                                dat=find('M',str);
                                if(isdigit(str[(dat+1)])&&isdigit(str[(dat+2)]))
                                {
                                        printf(" DATA [%c%c]=1",str[dat+1],str[dat+2]);
                                }
                        }
                        if(find('S',str)!=-1)
                        {
                                dat=find('S',str);
                                if(isxdigit(str[dat+1])&&isxdigit(str[dat+2]))
                                {
                                        printf(" POCKET[1--3]=%c%c",str[dat+1],str[dat+2]);
                                }
                        }
                        if(find('B',str)!=-1)
                        {
                                dat=find('B',str);
                                if(isdigit(str[dat+1])&&isdigit(str[dat+2]))
                                {
                                        printf(" PLAY %c%c",str[dat+1],str[dat+2]);
                                }
                        }
                        if(find('P',str)!=-1)
                        {
                                odat=find('P',str);
                                if(isdigit(str[odat+1])&&isdigit(str[odat+2]))
                                {
                                        printf(" Print(personage=%c%c Length=%c%c", str[odat+1],str[odat+2],str[odat+3],str[odat+4]);
                                        dat=find('*',str);

                                        i=odat+5;
                                        printf(" ");
                                        while(isalnum(str[i])||str[i]==' '||str[i]=='!'||str[i]=='?'||str[i]=='-'||str[i]=='.'||str[i]==','||str[i]==':'||str[i]==')'||str[i]==39)
                                        {
                                                printf("%c",str[i]);
                                                i++;
                                        }
                                        dat=find('*',str);
                                        if (dat!=-1)
                                        {
                                                if (str[dat+1]=='*')
                                                {
                                                        printf(" WAIT=2)");
                                                 }
                                                 else
                                                 {
                                                        printf(" WAIT=1)");
                                                 }
                                        }
                                        else
                                        {
                                                printf(" WAIT=0)");
                                        }
                                }
                        }
                        if (find('R',str)!=-1)
                        {
                                dat=find('R',str);
                                if(isdigit(str[dat+1])&&isdigit(str[dat+2]))
                                {
                                        printf(" PutSprite(Moveable=%c,Solid=%c,#%c%c)",str[dat+1],str[dat+2],str[dat+3],str[dat+4]);
                                }

                        }
                        if (find('+',str)!=-1)
                        {
                                dat=find('+',str);
                                if(isxdigit(str[dat+1])&&isxdigit(str[dat+2]))
                                {
                                        printf(" PutPocket(#%c%c)",str[dat+1],str[dat+2]);
                                }
                        }
                        if (find('-',str)!=-1)
                        {
                                dat=find('-',str);
                                if(isxdigit(str[dat+1])&&isxdigit(str[dat+2]))
                                {
                                        printf(" RemovePocket(#%c%c)",str[dat+1],str[dat+2]);
                                }
                        }
                        dat=find('G',str);
                        if ((find('G',str)!=-1)&&(isdigit(str[dat+1])||str[dat+1]=='$'||str[dat+1]=='%'||str[dat+1]==96||str[dat+1]=='!') && isdigit(str[dat+2]))
                        {
                                dat=find('G',str);
                                if((isdigit(str[dat+1])||str[dat+1]=='$'||str[dat+1]=='%'||str[dat+1]==96||str[dat+1]=='!')&&isdigit(str[dat+2]))
                                {
                                        printf(" Goto label %c%c",str[dat+1],str[dat+2]);
                                }
                        }
                        if (find('E',str)!=-1)
                        {
                                dat=find('E',str);
                                if(str[dat+1]=='0')
                                {
                                        printf(" Exit 0");
                                }
                                if(str[dat+1]=='1')
                                {
                                        printf(" Exit 1");
                                }
                        }
                        printf("\n%s",str);
                        getchar();
                }
                if(str[0]=='E')
                {
                        if(find('1',str)!=-1)
                        {
                                printf("Exit 1");
                        }

                        if(find('0',str)!=-1)
                        {
                                printf("Exit 0");
                        }
                        printf("\n%s",str);
                        getchar();
                }
                if(str[0]=='P')
                        {
                                odat=find('P',str);
                                if(isdigit(str[odat+1])&&isdigit(str[odat+2]))
                                {
                                        printf(" Print(personage=%c%c Length=%c%c", str[odat+1],str[odat+2],str[odat+3],str[odat+4]);
                                        dat=find('*',str);

                                        i=odat+5;
                                        printf(" ");
                                        while(isalnum(str[i])||str[i]==' '||str[i]=='!'||str[i]=='?'||str[i]=='-'||str[i]=='.'||str[i]==','||str[i]==':'||str[i]==')'||str[i]==39)
                                        {
                                                printf("%c",str[i]);
                                                i++;
                                        }
                                        dat=find('*',str);
                                        if (dat!=-1)
                                        {
                                                if (str[dat+1]=='*')
                                                {
                                                        printf(" WAIT=2)");
                                                 }
                                                 else
                                                 {
                                                        printf(" WAIT=1)");
                                                 }
                                        }
                                        else
                                        {
                                                printf(" WAIT=0)");
                                        }
                                }
                                printf("\n");
                                //getchar();
                        }


                if(str[0]=='L' && (isdigit(str[1])||str[1]=='$'||str[1]=='%'||str[1]==96||str[1]=='!') && isdigit(str[2]))
                {
                        printf("Label %c%c",str[1],str[2]);
                        if /*(find('I',str)!=-1)*/
                        (str[4]=='I')
                        {
                                printf(" IF");
                        }
                        if(find('M',str)!=-1)
                        {
                                dat=find('M',str);
                                if(isdigit(str[(dat+1)])&&isdigit(str[(dat+2)]))
                                {
                                        printf(" DATA [%c%c]=1",str[dat+1],str[dat+2]);
                                }
                        }
                        if(find('S',str)!=-1)
                        {
                                dat=find('S',str);
                                if(isxdigit(str[dat+1])&&isxdigit(str[dat+2]))
                                {
                                        printf(" POCKET[1--3]=%c%c",str[dat+1],str[dat+2]);
                                }
                        }
                        if(find('B',str)!=-1)
                        {
                                dat=find('B',str);
                                if(isdigit(str[dat+1])&&isdigit(str[dat+2]))
                                {
                                        printf(" PLAY %c%c",str[dat+1],str[dat+2]);
                                }
                        }
                        if(find('P',str)!=-1)
                        {
                                odat=find('P',str);
                                if(isdigit(str[odat+1])&&isdigit(str[odat+2]))
                                {
                                        printf(" Print(personage=%c%c Length=%c%c", str[odat+1],str[odat+2],str[odat+3],str[odat+4]);
                                        dat=find('*',str);

                                        i=odat+5;
                                        printf(" ");
                                        while(isalnum(str[i])||str[i]==' '||str[i]=='!'||str[i]=='?'||str[i]=='-'||str[i]=='.'||str[i]==','||str[i]==':'||str[i]==')'||str[i]==39)
                                        {
                                                printf("%c",str[i]);
                                                i++;
                                        }
                                        dat=find('*',str);
                                        if (dat!=-1)
                                        {
                                                if (str[dat+1]=='*')
                                                {
                                                        printf(" WAIT=2)");
                                                 }
                                                 else
                                                 {
                                                        printf(" WAIT=1)");
                                                 }
                                        }
                                        else
                                        {
                                                printf(" WAIT=0)");
                                        }
                                }
                        }
                        if (find('R',str)!=-1)
                        {
                                dat=find('R',str);
                                if(isdigit(str[dat+1])&&isdigit(str[dat+2]))
                                {
                                        printf(" PutSprite(Moveable=%c,Solid=%c,#%c%c)",str[dat+1],str[dat+2],str[dat+3],str[dat+4]);
                                }

                        }
                        if (find('+',str)!=-1)
                        {
                                dat=find('+',str);
                                if(isxdigit(str[dat+1])&&isxdigit(str[dat+2]))
                                {
                                        printf(" PutPocket(#%c%c)",str[dat+1],str[dat+2]);
                                }
                        }
                        if (find('-',str)!=-1)
                        {
                                dat=find('-',str);
                                if(isxdigit(str[dat+1])&&isxdigit(str[dat+2]))
                                {
                                        printf(" RemovePocket(#%c%c)",str[dat+1],str[dat+2]);
                                }
                        }
                        if (find('G',str)!=-1)
                        {
                                dat=find('G',str);
                                if((isdigit(str[dat+1])||str[dat+1]=='$')&&isdigit(str[dat+2]))
                                {
                                        printf(" Goto label %c%c",str[dat+1],str[dat+2]);
                                }
                        }
                        if (find('E',str)!=-1)
                        {
                                dat=find('E',str);
                                if(str[dat+1]=='0')
                                {
                                        printf(" Exit 0");
                                }
                                if(str[dat+1]=='1')
                                {
                                        printf(" Exit 1");
                                }
                        }

                        printf("\n");
                        //getchar();
                }

               
               
        }
        getchar();     
        if (fclose(fpspeech)==EOF)
        {
                printf("\aERROR closing program.ru\n");
                return(101);
        }       
       
        return 0;
}

Солид её тоже не компилит, грит функция майн такая большая что у мну оферфлау, подборка размера буфера ничего не дала


09 Oct 2004 13:55
Profile
God
User avatar

Joined: 03 Feb 2003 13:53
Posts: 1078
Post 
Да, вот файлик програм.инг
Code:
I W0011 G01
I W0118 G03
I W000F G05
I W00A1 G08
I W0026 G09
I W001B G11
I W0019 G15
I W004B G20
I W0020 G23
I W0024 G24
I W0110 G31
I W012C G31
I W0130 G31
I W0134 G31
I W0138 G31
I W013C G31
I W0140 G31
I W011C G33
I W0144 G33
I W0014 G37
I W0128 G37
I W00A2 G45
I W003F G47
I W0016 G48
I W005D G51
I W0124 G52
I W00BB G52
I W0018 G53
I W001A G57
I W005F G63
I W005E G64
I W009C G42
I W004D G67
I W0002 G70
I W0003 G71
I W0000 G72
I W006F G75
I W0044 G78
I W004F G82
I W004E G83
I W000B G94
I W000C G96
I W0120 G!7
I W00BA G!7
I W0004 G81
I W003E G$1
I W0040 G$2
I W0058 G$4
I W006A G$6
I W006B G$6
I W006C G$6
I W006D G$6
I W0089 G$8
I W0084 G%0
I W0085 G%0
I W0086 G%0
I W0087 G%0
E0
L$8 I SFF G$9
G39
L$9 R0084 +8A E1
L%0 I S8A R0189 -8A E1
E0
L$6 I S48 G$7
E0
L$7 B03 R0085 P0120I took down the bush completely!
E1
L$4 I M03 E0
I S51 -51 E1
I SFF G$5
E0
L$5 +51 E1
L$1 I SFF G$3
G39
L$3 +3D R0140 E1
L$2 I S3D -3D R013E
E1

L01 I M00 G02
P0223Old man,do you want some moonshine?*
P0305-Aha!*
P0223Tell me the recipe of the moonshine*
Z00 I S22 G02
P031F-But I found you out,I gave you*
P031E blintzes in 1947 so you would*
P0310 paint my fence!*
P0218The blintzes were awful!*
P031A-Hand over the blintzes!!!*
B12
P0218Kiss my yellow butt! :-)

E1
L02 I M01 G06
P0319-Hand over my blintzes!!!*
I S22 -22 Z01 P0319They are not that I gave!
E1
L06 I M07 G26
P031B-OK! Try and get a pension,
P031B we'll buy the ingredients.
E1

L26 I M06 G27
P031D-Try buy milk for home-brewed*
P0309 beer  :)*
P020EBut the money?*
P0319-But you took my pension?*
P0218So it is altogether 1.20*
P031E-But it's the total equivalent*
E1

L27 I M09 G32
P031C-A pair of frogs are needed.*
P0218But how will I get them?*
P0316-Hit them forehead and*
P0310 that is enough!
E1

L33 I S1F R113C G34
E1
L34 B03 P0117A clap on the forehead!
P0113This one drowned...
B04 Z09 E1

L32 I M10 G35
P0217The frogs are drowning!*
P0307-Yes???*
P020EWord of honor!*
P0319-It's not necessary then.*
P0214You scum, old man...*
P0313-The old one stood,*
P0314 I don't remember...*
B11
P021AAre you loosing your hair,
P0218 or are you just stupid?
Z10 E1

L35 I M12 G07
P0318-I was steamed with you,*
P0311 the beer would..*
I M11 G18
I S2E G40
E1
L40 P0323-How do I drink it?Can you open it?*
P0211How do I open it?*
P031F-A Russian folk tool - the door
E1
L18 I S2E G17
P031D-But where is the beer, liar?
P0310Hand it over!...
E1
L17 -2E B0E P0318-But....but....why half?
Z12 E1

L07 I M13 G68
I S8B G41
P0317-So, where's the money?*
P0220You yourself said to buy it all!*
P0317-Go and find the money!*
P0206Where?*
P0318-Look where you lost it!
Z30 E1

L41 P0320-But why is my pension so small?*
P0220It's evident you didn't earn it!*
P0318-Go and get the money!!!
Z29 E1

L68 P0223Old man,will we brew the moonshine?*
I M15 G69
P0323-But first you start up the still!!
E1

L69 I M21 I M22 G92
P0316-Bring the ingredients*
P0310 to the still...
E1

L92 I SFF G93
G39
L93 P031B-Somehow I got carried off,*
P030E accompany me.
+0D R0080 E1

L94 I S0D -0D R010C G95
P0321-Yes, I got tired, bring me in...
E1
L95 P0220You got drunk, scum! Carry it...*
I M28 G&6
P0310-Turn on the TV,*
P0316 I'll spill it faster.
L&6 Z23 E1

L96 P0213Old man, what else?*
B08 P0314-Mooooooooooooo.....
P0223Don't oversleep, hairy devil.... :)
E1

L47 -25 P0123New trousers,without chewing gum :)
R0086
E1

L51
I SFF +48 Z14 R015E E1
G39

L64 I S47 G65
E0
L65 -47 R015D B0F
P011CYou hid the evidence!....:-)
E1

L48 I S1F G88
P0222No, just so as not to repair it...
E1

L88 I SFF G49
G39
L49 B03 R012A B0A P0122The toilet is broken. Take a seat.*
+2B P0122It whets an appetite completely...
E1

L52 Z15 I M18 G61
P0117Moonshine device of the*
P0112  Skorpion Company*
P0212It doesn't work!!!
E1

L61 I M21 G90
I M17 G'1
P021EI don't know how to repair it!*
P0216It's under warranty!!!
E1
L'1 I S42 R1124 -42 Z21 G62
E0

L90 I S65 G91
E0

L91 -65 P0120Put the berry into the still! :)
B0F Z22
E1

L62 B07
P020CIt worked!!!
E1
L53 I M15 G54
E0
L54 I M18 G60
I M16 G56
P021CA letter needs to be written*
P0209 to Zonov*
I S4A G55
P021FWhere's the disk with the Spot?
E1
L55 -4A
P021BWe're loading the Spot.*****
P020DWe're writing*
P0220FROM:Homer Simpson 2:5026/16.29**
P021FTO  :Sergey Xonov  2:6030/25.1**
P021ESubj:How to repair your still**
P0220-------------------------------**
P021A       Greetings, Sergey!**
P0222 I found  your still in a grass, **
P0221but I do not know how to fix it.**
P0214         Help me!!!**
P021A       Respectfully,Homer**
Z16 E1
L56 I M18 G60
I M17 E1
P0219Aha, here is the answer!**
P011FFROM:Sergey Xonov  2:6030/25.1**
P0120TO  :Homer Simpson 2:5026/16.29**
P0121Subj:Re:How to repair your still**
P0114      Hello, Homer!**
P011DClean the nozzle of the bulb**
P010D with a wire**
P011C    Without respect, Sergey**
Z17 E1
L63 P021DAre you making shit in there,*
P0209 perhaps?
E1
L57 I S48 G58
P0218Nothing to cut it off!!!
E1
L58 I SFF G59
G39
L59 P0217We're cutting the wire.
+42 Z18 R011A E1
L60 P010CNO DiAL TONe*
P041AYou cut the telephone line*
P0413Can't send a letter*
E1
L45 I M11 E1
I S2E B05 B10 G46
E1
L46 P0110It was opened...
Z11 E1
L37 P0121Vovochka brought down the bridge.
I S1F I S29 G36
P011EAn instrument is needed, it is*
P0116 not in a nose to pick*
P010F with a pencil.
E1
L36 B03 B03 B03 R0015 B07 P011AYou didn't study in school*
P0109 in vain!
E1
L!5 I S3C G!6
E1
L!6 I M28 G'0
P0116But you did everything*
P010E in this life?
E1
L'0 P0114I brought a bomb and*
P0114 hid it in a cooker.
-3C
B0D P0104...9*
B0D P0104...8*
B0D P0104...7*
B0D P0104...6*
B0D P0104...5*
B0D P0104...4*
B0D P0104...3*
B0D P0104...2*
B0D P0104...1*
B0D P0104...0*
B0D P010CBOOOOOOM!!!!
Z27 B16
P0708CREDITS:*
P0711ZX Spectrum crew:*
P070CProgramming:*
P0714Mr. GLuk, Scheme-Man*
P0704Vlad*
P0709Graphics:*
P0714Scheme-Man, Mr. Gluk*
P0719Support & Sound sampling:*
P0708Q-Master*
P070CBetatesting:*
P0713Alexey Pilyaev, Leo*
P0701 *
P070BAmiga crew:*
P070CProgramming:*
P0708Q-Master*
P0709Graphics:*
P0711Nicolaus Mezencef*
P070CGrunge/Smash*
P0706Muzak:*
P070BFil Jr./CDS*
P070CStranger/CDS*
P070EMoral Support:*
P0704Vlad*
P0712Most translations:*
P070DGary Goldberg*
P0718Additional translations:*
P0708Q-Master*
P070CBetatesting:*
P0704Vlad*
P0711Nicolaus Mezencef*
P0709Notorious*
E2

L03 I M26 G!5
I S1D G04
P0113Nothing to heat on!
E1
L04 -1D R010F P0212We'll heat it now!
B10 B10 B10 E1
L05 B00 P020CShit! Hot!!!*
P0215The blintzes got hot,*
P0211 but it'll be OK.
I SFF R1118 +22 E1
P0123There's nowhere to put the blintzes
E1
L08 I SB8 -B8 B02 R00A2 P0117The door is open... :-)
E1
L09 I M02 E1
I S1F G66
P0117The cupboard is locked,*
P011B there's no way to open it.
E1
L66 I SFF B03 R0158 Z02 G10
L39 P001AThere's nowhere to put it!
E1
L10 B05
P011BHmmmm, opened it, eh-h-h...*
+51
P021BOho, a pension certificate!
E1
L50 I M29 G%2
P0423You can't cut me with a dull knife!
E1
L%2 P021BHurry with the money, fool!*
P0420-Right now I'll call the police!*
P0212I said, you don't!*
P0418-I'm dialling the number*
P0214Crap, you dial it!!!*
P010D-She's cut!!!
R015A B15
P020F-Shut up, scum!
B01 -48 +47 Z13 E1

L80 P041B-Nuts, throw out this shit!*
P020BNever mind!*
B09
P0421-Pull it out, it's post office...*
P0214It's better I eat it*
I S99 G$0
-45 Z20 E1

L81 I S45 -45 R0144
E1

L$0 P0221Not THIS to gorge the appetite...
E1

L11 I S48 G50
I M03 G12
G13

L12 P0418-What do you need again?
E1

L13 P040D-Who are you?*
P020CA pensioner.*
P040F-What's needed?*
P020AA pension.*
P0414-Present a document!*
I S51 G!9
E1
L!9 P020DHere you are!*
I M20 G14
P041C-This isn't your photograph!*
P0216Will you take a bribe?*
P0412-What do you have?*
P020FI can give food*
P040C-Go ahead...*
I S45 G80
E1

L14 -51 R0119 P0423-Wait,I'm checking on the computer.
Z03 E1

L15 I SFF G16
G39

L16 R011B +8B P0415-Take it and sign it.
Z07 E1

L!0 I M25 G!1
P020DHey, brother!*
R014C P050B-You again!*
P0221There's no one to celebrate with.*
P0513-But why celebrate?*
P021DWe're blowing up something...*
P0515-Then bring a bomb...
Z25 R014B E1

L!1 I M26 E1
I S30 G!2
P0211-To blow up what?
E1
L!2 I S3D G!3
P0517-Carry the detonator...
E1
L!3 I S29 G!4
P051A-But with what to collect?
P051E Give me the spanner back, eh?
E1
L!4 P0513We're assembling...
B03 B03
-30 -3D -29 +3C
P0218Where can we explode it?*
P0521-Hide it for now in a cooker...:)
Z26 E1

L19 I M24 G!0
P0519-Roll over, turkey, liar!
E1
L20 I M04 G19
P020FEh! Who's here?*
R014C
P050B-Let's eat.*
P0215But what in exchange?
P0516-I can give a spanner,*
P051B I can give with a spanner.*
P0213A spanner's better.*
I S0E -0E +29 G22
P051B-You have nothing, skunk...
R014B E1
L22 P0510-Learn, student!
Z04 R014B E1

L23 I M05 G25
P0211Give me the milk.*
P0619-Buuuddy, awpen a flaask,*
P060F therl be milk.*
P0213But how to open it?*
P0618-Lissen, ah need it, uh?*
E1
L24 I S29 B02 B07 R0123 Z05 E1
E1
L25 I M06 G28
P0614Boyyy, gimme a cann.
I S07 I S8B -07 -8B +08 Z06 G38
P0612Sooo, it won wurk.
E1
L38 P060ETeyk yer milk.
E1
L28 I M08 G97
I M30 G%1
E0
L%1 P0217The milk has gone sour,
P0216 hurry with the money!*
P0616-Yesserday was bedder.*
P0214I'll wrap your hands*
P0212 behind your back!*
I SFF G29
P001B-There's nowhere to put it.
E1

L97 I M23 G98
P0621Get out of here, american [skip].
E1
L98 I M24 E1
P021CHelp me, but that old man...*
I S8B G99
P0513-Welcher, up yours!*
P021DAre you feel hurt, don't you?*
P051C-The Black Raven is croaking*
P050B as a gift!
E1

L99 P0522-Well for money,you are welcome...*
P0516-But what do you need?*
P021BThe recipe for moonshine...*
P051F-You've already distilled it...*
P0214Yes??? Ohhhhhuuu!!!!
B0C Z24
P0517-Hand over the money...*
-8B
P0219This business needs to be*
P020E celebrated...*
P051AWe'll blow up something...
E1

L29 I S08 G30
P0610-Gimme mah milk.
E1
L30 -08 +8B P0209-Take it!
Z08 E1
L31 B0F
P0012You sank, however!
EF

L42 I S1F G43
E1
L43 R014F B0A E1

L67 B06 P020B-Ahhhhaa!!!*
P0118There's something there,
P0116 but no way to get it.
E1

L70 I SFF R0103 +0E E1
E1
L71 I S0E R0102 -0E E1
E1

L72 I M19 G74
I SFF G73
E1
L73 P0213Oh, I found beer...
B0B +2E Z19 E1
L74 P021EMy conscience doesn't allow me
P0217 to take any more beer.
E1

L75 I S59 G76
I S48 G77
P0217I need something sharp,*
P0212 then I'll cut it.
E1
L77 P011FBut a dull knife, as you... :-)
E1
L76 I SFF G86
G39
L86 I S2B G84
P0120I was hungry, I ate the berry...*
G87
L84 P0111Lost my appetite,*
P0116 didn't eat the berry.*
+65
L87 R002C P011DUnder the bush a hatch opened*
P011A Mr. Gluk made up a verse.
E1

L78 I SFF G79
G39
L79 B13 P021E64 slices of American Cheeese.
+45 R0104 E1

L82 I SFF +59 R014E E1
E1

L83 I S59 G85
E1
L85 -59 R014F E1

L!7 I M28 G%3
P0211Oh, the TV set...*
P0217 it isn't working...;~(*
P0217It needs to be fixed...
I S1F R1120 B07 Z28 P020DI fixed it!!!
E1

L%3 P0708CREDITS:*
P0711ZX Spectrum crew:*
P070CProgramming:*
P0714Mr. GLuk, Scheme-Man*
P0704Vlad*
P0709Graphics:*
P0714Scheme-Man, Mr. Gluk*
P0719Support & Sound sampling:*
P0708Q-Master*
P070CBetatesting:*
P0713Alexey Pilyaev, Leo*
P0701 *
P070BAmiga crew:*
P070CProgramming:*
P0708Q-Master*
P0709Graphics:*
P0711Nicolaus Mezencef*
P070CGrunge/Smash*
P0706Muzak:*
P070BFil Jr./CDS*
P070CStranger/CDS*
P070EMoral Support:*
P0704Vlad*
P0712Most translations:*
P070DGary Goldberg*
P0718Additional translations:*
P0708Q-Master*
P070CBetatesting:*
P0704Vlad*
P0711Nicolaus Mezencef*
P0709Notorious*
E1

TAKE 26 27 21
6A 69 21
6D 6B 21
6F 70 21
7F 7E 21
96 97 21
6E 6C 21
9B 9C 21
AA AC 21
AD AE 21
A5 A6 21
B7 99 21
9D 9E 21
9F A0 21
#



09 Oct 2004 13:58
Profile
God
User avatar

Joined: 03 Feb 2003 13:53
Posts: 1078
Post 
Поэтому впринципе солид низя юзать для больших програм:)


09 Oct 2004 14:00
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22543
Location: Silicon Valley
Post 
cr0acker wrote:
Солид её тоже не компилит, грит функция майн такая большая что у мну оферфлау, подборка размера буфера ничего не дала


А разбить на функции?

_________________
:dj: https://mastodon.social/@Shaos


09 Oct 2004 14:38
Profile WWW
God
User avatar

Joined: 03 Feb 2003 13:53
Posts: 1078
Post 
Пока времени нема:)


10 Oct 2004 09:16
Profile
Doomed
User avatar

Joined: 11 Dec 2003 14:34
Posts: 413
Post 
cr0acker wrote:
Поэтому впринципе солид низя юзать для больших програм:)


Солид не адаптировался на юзание всей памяти Спринтера, он был
просто перенесен под его ДОС (с CP/M). Программы можно делать
какие угодно, но линкер соберет максимум 64 кило.

P.S. Откуда у тебя эти сорцы, с PC-шки что-ли ?.

P.S.S. Когда я засел за портацию Солида, то расчитывал, что его будут
юзать для компиляции отдельных алгоритмов, которые трудно писать на
асме, и далее эти куски прилинковывать к асмовой программе.
А прикручивать к Солиду менеджмент памяти Спринтера - нет
его оригинальных сорцев. А в асмовом коде многое не понятно - константа это или токен, к примеру. Так что вот такие дела.

_________________
Vasil Ivanov
vasil-i@yandex.ru


Last edited by Vasil Ivanov on 10 Oct 2004 13:57, edited 1 time in total.



10 Oct 2004 13:29
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22543
Location: Silicon Valley
Post 
Vasil Ivanov wrote:
P.S.S. Когда я засел за портацию Солида, то расчитывал, что его будут
юзать для компиляции отдельных алгоритмов, которые трудно писать на
асме, и далее эти куски прилинковывать к асмовой программе.
А прикручивать к Солиду менеджмент памяти Спринтера - нет
его оригинальных сорцев. А в асмовом коде многое не понятно - константа это или токен, к примеру. Так что вот такие дела.


Может потихоньку возмемся за написание собственного NedoC, который будет приспосабливаться к менеджменту памяти конкретной машинки? ;)

_________________
:dj: https://mastodon.social/@Shaos


10 Oct 2004 15:48
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22543
Location: Silicon Valley
Post 
Shaos wrote:
Vasil Ivanov wrote:
P.S.S. Когда я засел за портацию Солида, то расчитывал, что его будут
юзать для компиляции отдельных алгоритмов, которые трудно писать на
асме, и далее эти куски прилинковывать к асмовой программе.
А прикручивать к Солиду менеджмент памяти Спринтера - нет
его оригинальных сорцев. А в асмовом коде многое не понятно - константа это или токен, к примеру. Так что вот такие дела.


Может потихоньку возмемся за написание собственного NedoC, который будет приспосабливаться к менеджменту памяти конкретной машинки? ;)


Идея как использовать SolidC для больших программ - разделять на модули и делать из них DLL-ки! Правда в этом случае желаетельна поддержка DLL-ек на уровне самого Си - т.е. чтобы можно было записать в программе: DLL_Load("part1.dll"); и вперед :)

_________________
:dj: https://mastodon.social/@Shaos


10 Oct 2004 15:53
Profile WWW
God
User avatar

Joined: 03 Feb 2003 13:53
Posts: 1078
Post 
Vasil Ivanov wrote:
cr0acker wrote:
Поэтому впринципе солид низя юзать для больших програм:)


Солид не адаптировался на юзание всей памяти Спринтера, он был
просто перенесен под его ДОС (с CP/M). Программы можно делать
какие угодно, но линкер соберет максимум 64 кило.

P.S. Откуда у тебя эти сорцы, с PC-шки что-ли ?.

Эти сорцы я сам писал :kruto: Работали на ПЦ.


10 Oct 2004 22:41
Profile
Doomed
User avatar

Joined: 11 Dec 2003 14:34
Posts: 413
Post 
cr0acker wrote:
Vasil Ivanov wrote:
cr0acker wrote:
Поэтому впринципе солид низя юзать для больших програм:)


Солид не адаптировался на юзание всей памяти Спринтера, он был
просто перенесен под его ДОС (с CP/M). Программы можно делать
какие угодно, но линкер соберет максимум 64 кило.

P.S. Откуда у тебя эти сорцы, с PC-шки что-ли ?.

Эти сорцы я сам писал :kruto: Работали на ПЦ.


Понял. Разбей большие функции на менее большие и вперед...

_________________
Vasil Ivanov
vasil-i@yandex.ru


13 Oct 2004 13:25
Profile
Doomed
User avatar

Joined: 11 Dec 2003 14:34
Posts: 413
Post 
Shaos wrote:
Shaos wrote:
Vasil Ivanov wrote:
P.S.S. Когда я засел за портацию Солида, то расчитывал, что его будут
юзать для компиляции отдельных алгоритмов, которые трудно писать на
асме, и далее эти куски прилинковывать к асмовой программе.
А прикручивать к Солиду менеджмент памяти Спринтера - нет
его оригинальных сорцев. А в асмовом коде многое не понятно - константа это или токен, к примеру. Так что вот такие дела.


Может потихоньку возмемся за написание собственного NedoC, который будет приспосабливаться к менеджменту памяти конкретной машинки? ;)


Идея как использовать SolidC для больших программ - разделять на модули и делать из них DLL-ки! Правда в этом случае желаетельна поддержка DLL-ек на уровне самого Си - т.е. чтобы можно было записать в программе: DLL_Load("part1.dll"); и вперед :)


Для этого надо только написать соотв. функцию, типа system(...)
и засунуть ее в сишную библу clib.irl.

_________________
Vasil Ivanov
vasil-i@yandex.ru


13 Oct 2004 13:34
Profile
Doomed
User avatar

Joined: 11 Dec 2003 14:34
Posts: 413
Post 
Shaos wrote:
Vasil Ivanov wrote:
P.S.S. Когда я засел за портацию Солида, то расчитывал, что его будут
юзать для компиляции отдельных алгоритмов, которые трудно писать на
асме, и далее эти куски прилинковывать к асмовой программе.
А прикручивать к Солиду менеджмент памяти Спринтера - нет
его оригинальных сорцев. А в асмовом коде многое не понятно - константа это или токен, к примеру. Так что вот такие дела.


Может потихоньку возмемся за написание собственного NedoC, который будет приспосабливаться к менеджменту памяти конкретной машинки? ;)


Ой, не знаю мужики. Компиляторная тематика мне сейчас порядком поднадоела. Надо отдохнуть от нее. Кроме того, тут не знаешь, чем
в первую очередь и заняться, то-ли файл-менеджер доделать, то ли
ДОС-овые сорцы делать, для последующего девелопинга, то ли еще
чего... Кста, переделал тут RAMDRIVE, теперь будет называться
VDISK. Размер создаваемого рам-диска будет указываться в опциях
программы. Размер отдельного рам-диска ограничен только свободной
памятью компа. Максимальное число записей (файлов) в корневой
папке - 512шт. Осталось причесать программу и можно выпускать в
свет ;).

По поводу приспосабливания к менеджменту памяти любой машины - берем любой Си-компилятор и в его (библиотечный) startup-код прописываем соотв. загрузчик программ и усе ;). Этот загрузчик и будет раскидывать проги по банкам. Вообще, тут компилятор ни при чем, просто в его библиотеке нужны функции, ведающие менеджментом памяти каждой конкретной машины. Они и будут юзаться в самих программах. Так что, нам не придется писать свой
си-компилятор, как ни уговаривай ;)).


P.S. Мне ближе NedoASM++, чем NedoС ;)

_________________
Vasil Ivanov
vasil-i@yandex.ru


13 Oct 2004 13:46
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22543
Location: Silicon Valley
Post 
Vasil Ivanov wrote:
Shaos wrote:
Может потихоньку возмемся за написание собственного NedoC, который будет приспосабливаться к менеджменту памяти конкретной машинки? ;)


Ой, не знаю мужики. Компиляторная тематика мне сейчас порядком поднадоела. Надо отдохнуть от нее. Кроме того, тут не знаешь, чем
в первую очередь и заняться, то-ли файл-менеджер доделать, то ли
ДОС-овые сорцы делать, для последующего девелопинга, то ли еще
чего... Кста, переделал тут RAMDRIVE, теперь будет называться
VDISK. Размер создаваемого рам-диска будет указываться в опциях
программы. Размер отдельного рам-диска ограничен только свободной
памятью компа. Максимальное число записей (файлов) в корневой
папке - 512шт. Осталось причесать программу и можно выпускать в
свет ;).


Это круто!

Vasil Ivanov wrote:
По поводу приспосабливания к менеджменту памяти любой машины - берем любой Си-компилятор и в его (библиотечный) startup-код прописываем соотв. загрузчик программ и усе ;). Этот загрузчик и будет раскидывать проги по банкам. Вообще, тут компилятор ни при чем, просто в его библиотеке нужны функции, ведающие менеджментом памяти каждой конкретной машины. Они и будут юзаться в самих программах. Так что, нам не придется писать свой
си-компилятор, как ни уговаривай ;)).
P.S. Мне ближе NedoASM++, чем NedoС ;)


Ну дело не только в прогах - а еще и в статических и динамических данных. Вот например будет в программе написано int a = new int[1000000]; и что с этим будет делать стартап-код?

_________________
:dj: https://mastodon.social/@Shaos


13 Oct 2004 16:25
Profile WWW
Display posts from previous:  Sort by  
This topic is locked, you cannot edit posts or make further replies.   [ 13 posts ] 

Who is online

Users browsing this forum: No registered users and 19 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.