Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 1087 → Rev 1092

/demos/tags/demos-021001/bca/initfile.c
0,0 → 1,137
/*
* Project: S.Ha.R.K.
*
* Coordinators:
* Giorgio Buttazzo <giorgio@sssup.it>
* Paolo Gai <pj@gandalf.sssup.it>
*
* Authors :
* Paolo Gai <pj@gandalf.sssup.it>
* Massimiliano Giorgi <massy@gandalf.sssup.it>
* Luca Abeni <luca@gandalf.sssup.it>
* (see the web pages for full authors list)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://shark.sssup.it
*/
 
/* CVS : $Id: initfile.c,v 1.2 2002-10-01 10:33:51 pj Exp $ */
 
/*
* Copyright (C) 2000 Fabio Calabrese <fabiocalabrese77@yahoo.it>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
/****************************************************
* *
* file: initfile.h *
* data: 15/09/2002 *
* creato da: Fabio CALABRESE *
* *
******************************************************
* *
* descrizione: inizializza i moduli di scheduling e *
* di risorse per il programma SHaRK *
* "(B)ase(C)ontr(A)rea", il cui task *
* main e' nel file bca.c. *
* *
******************************************************/
 
#define PI
 
// *** Librerie S.Ha.R.K ***
#include "kernel/kern.h"
#include "modules/edf.h"
#include "modules/cbs.h"
#include "modules/rr.h"
#include "modules/dummy.h"
#include "modules/sem.h"
#include "modules/hartport.h"
#include "modules/cabs.h"
#include "drivers/keyb.h"
// *** Librerie Standard C ***
// *** Librerie FAB ***
// *** Librerie BCA ***
#include"bca.h"
 
/*+ system tick in us +*/
#define TICK 1000
 
/*+ RR tick in us +*/
#define RRTICK 10000
 
TIME __kernel_register_levels__(void *arg)
{
struct multiboot_info *mb = (struct multiboot_info *)arg;
 
EDF_register_level(EDF_ENABLE_ALL);
CBS_register_level(CBS_ENABLE_ALL, 0);
RR_register_level(RRTICK, RR_MAIN_YES, mb);
dummy_register_level();
 
SEM_register_module();
CABS_register_module();
PI_register_module();
NOP_register_module();
 
kern_init_bca();
 
// periodic timer
return TICK;
// one-shot timer
// return 0
}
 
TASK __init__(void *arg)
{
struct multiboot_info *mb = (struct multiboot_info *)arg;
 
KEYB_PARMS kparms = BASE_KEYB;
 
HARTPORT_init();
 
keyb_def_ctrlC(kparms, NULL);
KEYB_init(&kparms);
 
__call_main__(mb);
 
return (void *)0;
}
 
#ifdef PI
int app_mutex_init(mutex_t *m)
{
PI_mutexattr_t attr;
 
PI_mutexattr_default(attr);
 
return mutex_init(m, &attr);
}
#else
int app_mutex_init(mutex_t *m)
{
NOP_mutexattr_t attr;
 
NOP_mutexattr_default(attr);
 
return mutex_init(m, &attr);
}
#endif
 
/demos/tags/demos-021001/bca/bca_lib.c
0,0 → 1,413
/*
* Project: S.Ha.R.K.
*
* Coordinators:
* Giorgio Buttazzo <giorgio@sssup.it>
* Paolo Gai <pj@gandalf.sssup.it>
*
* Authors :
* Paolo Gai <pj@gandalf.sssup.it>
* Massimiliano Giorgi <massy@gandalf.sssup.it>
* Luca Abeni <luca@gandalf.sssup.it>
* (see the web pages for full authors list)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://shark.sssup.it
*/
 
/* CVS : $Id: bca_lib.c,v 1.2 2002-10-01 10:33:51 pj Exp $ */
 
/*
* Copyright (C) 2000 Fabio Calabrese <fabiocalabrese77@yahoo.it>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
/****************************************************
* *
* file: BCA_LIB.c *
* libreria: BCA_LIB *
* creato da: Fabio CALABRESE *
* *
****************************************************/
 
#ifndef __BCA_LIB_c__
#define __BCA_LIB_c__
//-------------------BEGIN---------------------------
 
// *** Librerie S.Ha.R.K ***
#include<kernel/kern.h>
#include<drivers/glib.h>
#include<drivers/gd.h>
// *** Librerie Standard C ***
// *** Librerie FAB ***
#include"fab_lib/fab_msg.h"
// *** Librerie BCA ***
#include"bca.h"
 
extern char * titolo[10]={" UNIVERSITA' DEGLI \0",
" STUDI DI \0",
" PAVIA \0",
"Progetto S.Ha.R.K.\0",
" 'BaseContrAerea' \0",
"-------------------\0",
" PAVIA 2002 \0",
"by Fabio CALABRESE \0",
"<fabiocalabrese77 \0",
" @yahoo.it>\0"};
 
void kern_alloc_images(); // richiede DISABLED_INTERUPTS
void kern_free_images(); // richiede DISABLED_INTERUPTS
void kern_load_images(); // solo in __kernel_register_levels__()
 
void kern_alloc_borders(); // richiede DISABLED_INTERUPTS
void kern_free_borders(); // richiede DISABLED_INTERUPTS
void kern_set_border(); // consigliato in __kernel_register-levels__()
 
void kern_alloc_frames(); // richiede DISABLED_INTERUPTS
void kern_free_frames(); // richiede DISABLED_INTERUPTS
void kern_set_frames(); // consigliato in __kernel_register-levels__()
 
void kern_alloc_ballframes(); // richiede DISABLED_INTERUPTS
void kern_free_ballframes(); // richiede DISABLED_INTERUPTS
void kern_set_ballframes(); // consigliato in __kernel_register-levels__()
 
void kern_alloc_task_tables(); // richiede DISABLED_INTERUPTS
void kern_free_task_tables(); // richiede DISABLED_INTERUPTS
void kern_set_task_tables(); // consigliato in __kernel_register-levels__()
 
// *** Corpo delle funzioni in CA.h *** //
void kern_init_bca()
{
FAB_clr();
FAB_show_sched_modules();
 
kern_alloc_task_tables();
kern_set_task_tables();
 
kern_alloc_borders();
kern_set_borders();
kern_alloc_images();
kern_load_images();
kern_alloc_frames();
kern_set_frames();
kern_alloc_ballframes();
kern_set_ballframes();
}
 
void kern_alloc_task_tables()
{
int test=0,j;
 
FAB_print("TASKS'TABLES","allocazione...");
for (j=0; j<AEREO_N_MAX; j++) {
aereo_table[j].image=FAB_image_alloc(AEREO_LX,AEREO_LY);
if(aereo_table[j].image==NULL) test=1;
}
FAB_msg(test,NULL,"fatto","almeno un elemento della tabella non allocato");
}
void kern_free_task_tables()
{ int j;
 
for (j=0; j<AEREO_N_MAX; j++) {
FAB_image_free(aereo_table[j].image);
}
}
void kern_set_task_tables()
{ int j;
 
FAB_print(NULL,"settaggio...");
for (j=0; j<AEREO_N_MAX; j++) {
aereo_table[j].status = 0;
aereo_table[j].killing = 0;
aereo_table[j].image->trasparent = 1;
aereo_table[j].image->trasparent_col = AEREO_TRASPARENT_COL;
}
 
FAB_print(NULL,"fatto");
}
 
 
void kern_alloc_ballframes()
{
int test=0,j;
 
FAB_print("FAB_BALLFRAMEs","allocazione...");
ballframe_radar = FAB_ballframe_alloc();
if (ballframe_radar==NULL) test=1;
for (j=0; j<3; j++) {
ballframe_lucerossa[j] = FAB_ballframe_alloc();
if (ballframe_lucerossa[j]==NULL) test=1;
}
FAB_msg(test,NULL,"fatto","almeno un ballframe non allocato");
}
void kern_free_ballframes()
{ int j;
 
FAB_ballframe_free(ballframe_radar);
for (j=0; j<3; j++)
FAB_ballframe_free(ballframe_lucerossa[j]);
}
void kern_set_ballframes()
{ int j;
 
FAB_print(NULL,"settaggio...");
FAB_ballframe_border_set(ballframe_radar,border_verde7,7,
FRAME_MISURE_LINE_COLOR);
FAB_ballframe_color_set(ballframe_radar,0,FAB_blue);
for(j=0; j<3; j++) {
FAB_ballframe_border_set(ballframe_lucerossa[j],border_verde7,7,
FRAME_MISURE_LINE_COLOR);
FAB_ballframe_color_set(ballframe_lucerossa[j],0,FAB_red);
}
FAB_print(NULL,"fatto");
}
 
void kern_alloc_frames()
{
int test=0;
 
FAB_print("FAB_FRAMEs","allocazione...");
frame_bca = FAB_frame_alloc();
if (frame_bca==NULL) test=1;
frame_misure_oriz = FAB_frame_alloc();
if (frame_misure_oriz==NULL) test=1;
frame_misure_vert = FAB_frame_alloc();
if (frame_misure_vert==NULL) test=1;
frame_titolo = FAB_frame_alloc();
if (frame_titolo==NULL) test=1;
frame_comandi = FAB_frame_alloc();
if (frame_comandi==NULL) test=1;
frame_control = FAB_frame_alloc();
if (frame_control==NULL) test=1;
 
FAB_msg(test,NULL,"fatto","almeno un frame non allocato");
}
void kern_free_frames()
{
FAB_frame_free(frame_bca);
FAB_frame_free(frame_misure_oriz);
FAB_frame_free(frame_misure_vert);
FAB_frame_free(frame_titolo);
FAB_frame_free(frame_comandi);
FAB_frame_free(frame_control);
 
}
 
void kern_set_frames()
{
FAB_print(NULL,"settaggio...");
FAB_frame_border_set(frame_bca,border_blu7,7,FAB_rgb(255,0,0));
FAB_frame_color_set(frame_bca,0,image_bca,FAB_green);
FAB_frame_border_set(frame_misure_oriz,border_verde7,7,FRAME_MISURE_LINE_COLOR);
FAB_frame_color_set(frame_misure_oriz,0,NULL,FRAME_MISURE_BACK_COLOR);
FAB_frame_border_set(frame_misure_vert,border_verde7,7,FRAME_MISURE_LINE_COLOR);
FAB_frame_color_set(frame_misure_vert,0,NULL,FRAME_MISURE_BACK_COLOR);
FAB_frame_border_set(frame_titolo,border_bianco7,7,FAB_white);
FAB_frame_color_set(frame_titolo,0,NULL,FRAME_TITOLO_BACK_COLOR1);
FAB_frame_border_set(frame_comandi,border_giallo7,7,FAB_yellow);
FAB_frame_color_set(frame_comandi,0,NULL,FRAME_COMANDI_BACK_COLOR1);
FAB_frame_border_set(frame_control,border_verde7,7,FAB_green);
FAB_frame_color_set(frame_control,0,NULL,FRAME_CONTROL_BACK_COLOR);
 
FAB_print(NULL,"fatto");
}
 
void kern_alloc_borders()
{
int test=0;
 
FAB_print("FAB_BORDERs","allocazione...");
border_blu7 = FAB_border_alloc(7);
if (border_blu7==NULL) test=1;
border_verde7 = FAB_border_alloc(7);
if (border_verde7==NULL) test=1;
border_rosso7 = FAB_border_alloc(7);
if (border_rosso7==NULL) test=1;
border_bianco7 = FAB_border_alloc(7);
if (border_bianco7==NULL) test=1;
border_giallo7 = FAB_border_alloc(7);
if (border_giallo7==NULL) test=1;
 
FAB_msg(test,NULL,"fatto","almeno un bordo non allocato");
}
void kern_free_borders()
{
FAB_border_free(border_blu7);
FAB_border_free(border_verde7);
FAB_border_free(border_rosso7);
FAB_border_free(border_bianco7);
FAB_border_free(border_giallo7);
}
 
void kern_set_borders()
{
FAB_print(NULL,"settaggio...");
border_blu7->buf[0]=FAB_rgb( 0, 0, 50);
border_blu7->buf[1]=FAB_rgb( 0, 50,200);
border_blu7->buf[2]=FAB_rgb( 50,100,255);
border_blu7->buf[3]=FAB_rgb(100,150,255);
border_blu7->buf[4]=FAB_rgb( 50,100,255);
border_blu7->buf[5]=FAB_rgb( 0, 50,200);
border_blu7->buf[6]=FAB_rgb( 0, 0, 50);
 
border_verde7->buf[0]=FAB_rgb( 0, 50, 0);
border_verde7->buf[1]=FAB_rgb( 0,100, 50);
border_verde7->buf[2]=FAB_rgb( 50,255,100);
border_verde7->buf[3]=FAB_rgb(100,255,150);
border_verde7->buf[4]=FAB_rgb( 50,255,100);
border_verde7->buf[5]=FAB_rgb( 0,100, 50);
border_verde7->buf[6]=FAB_rgb( 0, 50, 0);
 
border_rosso7->buf[0]=FAB_rgb( 50, 0, 0);
border_rosso7->buf[1]=FAB_rgb(200, 25, 25);
border_rosso7->buf[2]=FAB_rgb(255, 75, 75);
border_rosso7->buf[3]=FAB_rgb(255,125,125);
border_rosso7->buf[4]=FAB_rgb(255, 75, 75);
border_rosso7->buf[5]=FAB_rgb(200, 25, 25);
border_rosso7->buf[6]=FAB_rgb( 50, 0, 0);
 
border_bianco7->buf[0]=FAB_rgb( 25, 25, 25);
border_bianco7->buf[1]=FAB_rgb( 75, 75, 75);
border_bianco7->buf[2]=FAB_rgb(125,125,125);
border_bianco7->buf[3]=FAB_rgb(255,255,255);
border_bianco7->buf[4]=FAB_rgb(125,125,125);
border_bianco7->buf[5]=FAB_rgb( 75, 75, 75);
border_bianco7->buf[6]=FAB_rgb( 25, 25, 25);
 
border_giallo7->buf[0]=FAB_rgb( 25, 25, 0);
border_giallo7->buf[1]=FAB_rgb(115,115, 25);
border_giallo7->buf[2]=FAB_rgb(170,170, 75);
border_giallo7->buf[3]=FAB_rgb(255,255,100);
border_giallo7->buf[4]=FAB_rgb(170,170, 75);
border_giallo7->buf[5]=FAB_rgb(115,115, 25);
border_giallo7->buf[6]=FAB_rgb( 25, 25, 0);
 
FAB_print(NULL,"fatto");
}
 
void kern_alloc_images()
{
int j,test=0;
 
FAB_print("FAB_IMAGEs","allocazione...");
 
image_missile[0] = FAB_image_alloc(MISSILE_LX,MISSILE_LY);
if (image_missile[0]==NULL) test=1;
image_missile[1] = FAB_image_alloc(MISSILE_LX,MISSILE_LY);
if (image_missile[1]==NULL) test=1;
 
for (j=0; j<2; j++) {
image_cannone[j] = FAB_image_alloc(CANNONE_LX,CANNONE_LY);
if (image_cannone[j]==NULL) test=1;
}
 
for (j=0; j<4; j++) {
image_aereo[j] = FAB_image_alloc(AEREO_LX,AEREO_LY);
if (image_aereo[j]==NULL) test=1;
}
 
for (j=0; j<5; j++) {
image_esplo[j] = FAB_image_alloc(ESPLO_LX,ESPLO_LY);
if (image_esplo[j]==NULL) test=1;
}
 
image_sfondo = FAB_image_alloc(96,96);
if (image_sfondo==NULL) test=1;
 
image_bca = FAB_image_alloc(500,500);
if (image_bca==NULL) test=1;
 
FAB_msg(test,NULL,"fatto","almeno un'immagine non allocata");
}
void kern_free_images()
{
int j;
 
FAB_image_free(image_missile[0]);
FAB_image_free(image_missile[1]);
for (j=0; j<2; j++) FAB_image_free(image_cannone[j]);
for (j=0; j<4; j++) FAB_image_free(image_aereo[j]);
for (j=0; j<5; j++) FAB_image_free(image_esplo[j]);
FAB_image_free(image_sfondo);
FAB_image_free(image_bca);
}
 
void kern_load_images()
{ int test=0;
 
FAB_print(NULL,"caricamento dai file...");
 
FAB_print(NULL," [missile1.raw]...");
if(FAB_image_load(image_missile[0],"BCA_raw/missile1.raw")==-1) test=1;
FAB_image_trasparent_set(image_missile[0],MISSILE_TRASPARENT_COL);
FAB_print(NULL," [missile2.raw]...");
if(FAB_image_load(image_missile[1],"BCA_raw/missile2.raw")==-1) test=1;
FAB_image_trasparent_set(image_missile[1],MISSILE_TRASPARENT_COL);
 
FAB_print(NULL," [aereo1.raw]...");
if(FAB_image_load(image_aereo[0],"BCA_raw/aereo1.raw")==-1) test=1;
FAB_image_trasparent_set(image_aereo[0],AEREO_TRASPARENT_COL);
FAB_print(NULL," [aereo2.raw]...");
if(FAB_image_load(image_aereo[1],"BCA_raw/aereo2.raw")==-1) test=1;
FAB_image_trasparent_set(image_aereo[1],AEREO_TRASPARENT_COL);
FAB_print(NULL," [aereo1_h.raw]...");
if(FAB_image_load(image_aereo[2],"BCA_raw/aereo1_h.raw")==-1) test=1;
FAB_image_trasparent_set(image_aereo[2],AEREO_TRASPARENT_COL);
FAB_print(NULL," [aereo2_h.raw]...");
if(FAB_image_load(image_aereo[3],"BCA_raw/aereo2_h.raw")==-1) test=1;
FAB_image_trasparent_set(image_aereo[3],AEREO_TRASPARENT_COL);
 
FAB_print(NULL," [cannon.raw]...");
if(FAB_image_load(image_cannone[0],"BCA_raw/cannon.raw")==-1) test=1;
FAB_image_trasparent_set(image_cannone[0],CANNONE_TRASPARENT_COL);
FAB_print(NULL," [cannon_h.raw]...");
if(FAB_image_load(image_cannone[1],"BCA_raw/cannon_h.raw")==-1) test=1;
FAB_image_trasparent_set(image_cannone[1],CANNONE_TRASPARENT_COL);
 
FAB_print(NULL," [esplo1.raw]...");
if(FAB_image_load(image_esplo[0],"BCA_raw/esplo1.raw")==-1) test=1;
FAB_image_trasparent_set(image_esplo[0],ESPLO_TRASPARENT_COL);
FAB_print(NULL," [esplo2.raw]...");
if(FAB_image_load(image_esplo[1],"BCA_raw/esplo2.raw")==-1) test=1;
FAB_image_trasparent_set(image_esplo[1],ESPLO_TRASPARENT_COL);
FAB_print(NULL," [esplo3.raw]...");
if(FAB_image_load(image_esplo[2],"BCA_raw/esplo3.raw")==-1) test=1;
FAB_image_trasparent_set(image_esplo[2],ESPLO_TRASPARENT_COL);
FAB_print(NULL," [esplo4.raw]...");
if(FAB_image_load(image_esplo[3],"BCA_raw/esplo4.raw")==-1) test=1;
FAB_image_trasparent_set(image_esplo[3],ESPLO_TRASPARENT_COL);
FAB_print(NULL," [esplo5.raw]...");
if(FAB_image_load(image_esplo[4],"BCA_raw/esplo5.raw")==-1) test=1;
FAB_image_trasparent_set(image_esplo[4],ESPLO_TRASPARENT_COL);
 
FAB_print(NULL," [sfondo.raw]...");
if(FAB_image_load(image_sfondo,"BCA_raw/sfondo.raw")==-1) test=1;
FAB_image_no_trasparent_set(image_sfondo);
 
FAB_print(NULL," [bca.raw]...");
if(FAB_image_load(image_bca,"BCA_raw/bca.raw")==-1) test=1;
FAB_image_no_trasparent_set(image_bca);
 
FAB_msg(test,NULL,"fatto","almeno un file non esiste oppure ha un formato incompatibile");
}
 
 
//----------------------END--------------------------
#endif
/demos/tags/demos-021001/bca/fab_lib.c
0,0 → 1,443
/*
* Project: S.Ha.R.K.
*
* Coordinators:
* Giorgio Buttazzo <giorgio@sssup.it>
* Paolo Gai <pj@gandalf.sssup.it>
*
* Authors :
* Paolo Gai <pj@gandalf.sssup.it>
* Massimiliano Giorgi <massy@gandalf.sssup.it>
* Luca Abeni <luca@gandalf.sssup.it>
* (see the web pages for full authors list)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://shark.sssup.it
*/
 
/* CVS : $Id: fab_lib.c,v 1.2 2002-10-01 10:33:51 pj Exp $ */
 
/*
* Copyright (C) 2000 Fabio Calabrese <fabiocalabrese77@yahoo.it>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
/****************************************************
* *
* file: FAB_lib.c *
* libreria: FAB_LIB *
* version: 1.0 25/08/2002 *
* creato da: Fabio CALABRESE *
* *
****************************************************/
 
#ifndef __FAB_LIB_c__
#define __FAB_LIB_c__
//-------------------BEGIN---------------------------
 
// *** Librerie di S.Ha.R.K. ***
#include<kernel/kern.h>
#include<kernel/mem.h>
#include<drivers/gd.h>
#include<drivers/glib.h>
#include<ll/sys/types.h>
#include<ll/i386/x-dos.h>
// *** Librerie Standard C ***
// *** Librerie FAB ***
#include"fab_lib/fab_msg.h"
#include"fab_lib/fab_tool.h"
#include"fab_lib/fab_grx.h"
 
// *** Corpo delle funzioni in FAB_msg.h *** //
 
void FAB_print(char * InitMsg, char * msg)
{ if (InitMsg!=NULL) {kern_printf("\n[%s]",(InitMsg));}
if (msg!=NULL) {kern_printf("\n %s.",msg);}
}
void __FAB_go(int test, char * OkMsg, char * ErrorMsg,int EXITflag)
{
if (OkMsg==NULL) OkMsg=FAB_EMPTY_MSG;
if (ErrorMsg==NULL) ErrorMsg=FAB_EMPTY_MSG;
 
if (!test) {kern_printf("\n OK: %s.",OkMsg);}
else {kern_printf("\n ERROR: %s!",ErrorMsg);
if (EXITflag==FAB_EXIT_YES) sys_end();
}
}
 
// *** Corpo delle funzioni in FAB_tool.h *** //
 
// nessun corpo!
 
// *** Corpo delle funzioni in FAB_show.h *** //
 
void FAB_show_sched_modules()
{ int i;
 
FAB_print("MODULI DI SCHEDULAZIONE",NULL);
kern_printf("\n (livello) (nome)");
for (i=0; i<sched_levels; i++)
{kern_printf("\n %-9d %s",i,(level_table[i])->level_name);
}
FAB_newline();
}
 
// *** Corpo delle funzioni in FAB_grx.h ***
 
FAB_BALLFRAME* FAB_ballframe_alloc()
{ FAB_BALLFRAME* frame;
 
frame=(FAB_BALLFRAME*)kern_alloc(sizeof(FAB_BALLFRAME));
if (frame==NULL) {
FAB_print(NULL,"BALLFRAME CREATING... ERROR #1");
return NULL;
}
return frame;
}
void FAB_ballframe_free(FAB_BALLFRAME * frame)
{ if (frame!=NULL)
{ kern_free(frame,sizeof(FAB_BALLFRAME));
}
}
 
FAB_FRAME* FAB_frame_alloc()
{ FAB_FRAME* frame;
 
frame=(FAB_FRAME*)kern_alloc(sizeof(FAB_FRAME));
if (frame==NULL) {
FAB_print(NULL,"FRAME CREATING... ERROR #1");
return NULL;
}
 
return frame;
}
void FAB_frame_free(FAB_FRAME * frame)
{ if (frame!=NULL)
{ kern_free(frame,sizeof(FAB_FRAME));
}
}
void FAB_ballborder_put(FAB_BORDER* border, WORD cx, WORD cy, WORD r_int)
{ int i;
 
for (i=0; i<border->dim; i++)
grx_circle(cx, cy, r_int+i, border->buf[i]);
}
void FAB_border_put(FAB_BORDER* border, WORD x0, WORD y0, WORD x1, WORD y1)
{ int i;
 
for (i=0; i<border->dim; i++)
grx_rect(x0-i, y0-i, x1+i, y1+i, border->buf[i]);
}
FAB_BORDER* FAB_border_alloc(WORD dim)
{ FAB_BORDER* border;
 
border=(FAB_BORDER*)kern_alloc(sizeof(FAB_BORDER));
if (border==NULL) {
FAB_print(NULL,"BORDER CREATING... ERROR #1");
return NULL;
}
 
border->buf=(COLOR*)kern_alloc(dim*sizeof(COLOR));
if (border->buf==NULL) {
FAB_print(NULL,"BORDER CREATING... ERROR #2");
return NULL;
}
 
border->dim = dim;
 
return border;
}
void FAB_border_free(FAB_BORDER * border)
{ if (border!=NULL)
{ kern_free(border->buf,border->dim*sizeof(COLOR));
kern_free(border,sizeof(FAB_BORDER));
}
}
void FAB_image_free(FAB_IMAGE* image)
{ if (image!=NULL)
{ kern_free(image->buf,image->lx*image->ly*sizeof(COLOR));
kern_free(image,sizeof(FAB_IMAGE));
}
}
FAB_IMAGE* FAB_image_alloc(WORD lx, WORD ly)
{ FAB_IMAGE* image;
 
image=(FAB_IMAGE*)kern_alloc(sizeof(FAB_IMAGE));
if (image==NULL) {
FAB_print(NULL,"IMAGE CREATING... ERROR #1");
return NULL;
}
 
image->buf=(COLOR*)kern_alloc(lx*ly*sizeof(COLOR));
if (image->buf==NULL) {
FAB_print(NULL,"IMAGE CREATING... ERROR #2");
return NULL;
}
FAB_image_no_trasparent_set(image);
image->lx = lx;
image->ly = ly;
 
return image;
}
int FAB_grx_open(WORD lx, WORD ly)
{ int modenum;
 
FAB_print("VIDEO",NULL);
if (grx_init()==-1) {
FAB_print(NULL,"ERRORE nell'inizializzazione!");
return -1;
}
if((modenum = grx_getmode(lx, ly, FAB_BPP))==-1) {
FAB_print(NULL,"Modalita' NON supportata!");
return -1;
}
if(grx_setmode(modenum)==-1) {
FAB_print(NULL,"ERRORE nell'apertura della modalita'video");
return -1;
}
return 0;
}
void FAB_grx_close()
{ grx_close();
}
int FAB_image_load(FAB_IMAGE* image, char* file_name)
{
DOS_FILE* file;
BYTE rgb[3];
COLOR * buf;
int i;
 
file=DOS_fopen(file_name,"r");
if (file==NULL) return -1;
 
buf = image->buf;
for (i=0; i<image->lx*image->ly; i++)
{ DOS_fread(&rgb[0],sizeof(BYTE),3,file);
*buf = FAB_rgb(rgb[0],rgb[1],rgb[2]);
buf++;
}
 
DOS_fclose(file);
return(0);
}
void FAB_image_get(FAB_IMAGE* image, WORD x0, WORD y0, WORD lx, WORD ly)
{ WORD x, y;
COLOR* buf;
 
buf = image->buf;
for (y=0; y<image->ly; y++)
for (x=0; x<image->lx; x++) {
*buf = (COLOR) grx_getpixel(x0+x,y0+y);
buf++;
}
FAB_image_no_trasparent_set(image);
}
void FAB_image_put(FAB_IMAGE* image, WORD x0, WORD y0)
{ WORD x, y;
COLOR* buf;
 
buf = image->buf;
if (!image->trasparent) {
for (y=0; y<image->ly; y++)
for (x=0; x<image->lx; x++)
grx_plot(x0+x,y0+y,*buf++);
}
else {
for (y=0; y<image->ly; y++)
for (x=0; x<image->lx; x++) {
if (*buf!=image->trasparent_col)
grx_plot(x0+x,y0+y,*buf);
buf++;
}
}
}
void FAB_image_put_within(FAB_IMAGE* image, WORD x0, WORD y0,
WORD xx0, WORD yy0, WORD xx1, WORD yy1)
{ int step_x0_xx0;
int step_y0_yy0;
int step_xx1_x1;
int step_yy1_y1;
WORD xx, yy;
COLOR* buf;
 
step_x0_xx0 = xx0 - x0;
step_y0_yy0 = yy0 - y0;
step_xx1_x1 = (x0 + image->lx - 1) - xx1;
step_yy1_y1 = (y0 + image->ly - 1) - yy1;
 
if (step_x0_xx0 < 0) step_x0_xx0 = 0;
if (step_y0_yy0 < 0) step_y0_yy0 = 0;
if (step_xx1_x1 < 0) step_xx1_x1 = 0;
if (step_yy1_y1 < 0) step_yy1_y1 = 0;
 
buf = image->buf + step_y0_yy0*image->lx;
if (!image->trasparent) {
for(yy=step_y0_yy0; yy<image->ly-step_yy1_y1; yy++) {
buf += step_x0_xx0;
for(xx=step_x0_xx0; xx<image->lx-step_xx1_x1; xx++)
grx_plot(x0+xx,y0+yy,*buf++);
buf += step_xx1_x1;
}
}
else {
for(yy=step_y0_yy0; yy<image->ly-step_yy1_y1; yy++) {
buf += step_x0_xx0;
for(xx=step_x0_xx0; xx<image->lx-step_xx1_x1; xx++) {
if (*buf!=image->trasparent_col)
grx_plot(x0+xx,y0+yy,*buf);
buf++;
}
buf += step_xx1_x1;
}
}
}
//...funzione usata da FAB_image_fill()...
void __FAB_image_put_into(FAB_IMAGE* image, WORD x0, WORD y0, WORD lx, WORD ly)
{ WORD x, y;
WORD skipped_pixels;
COLOR* buf;
 
if (lx < image->lx) skipped_pixels = image->lx - lx;
else skipped_pixels = 0;
buf = image->buf;
 
if (!image->trasparent) {
for (y=0; y<ly; y++, buf+=skipped_pixels) {
if (y > image->ly -1) break;
for (x=0; x<lx; x++, buf++) {
if (x < image->lx) grx_plot(x0+x,y0+y,*buf);
else break;
}
}
}
else {
for (y=0; y<ly; y++, buf+=skipped_pixels) {
if (y > image->ly -1) break;
for (x=0; x<lx; x++, buf++) {
if (x < image->lx) {
if (*buf!=image->trasparent_col)
grx_plot(x0+x,y0+y,*buf);
}
else break;
}
}
}
}
void FAB_image_fill(FAB_IMAGE* image, WORD x0, WORD y0, WORD lx, WORD ly)
{ WORD x, y;
WORD sub_lx, sub_ly;
 
for (y=0; y<ly; y+=image->ly) {
sub_ly = ly - y; // spazio verticale disponibile
if (sub_ly > image->ly) sub_ly = image->ly;
for (x=0; x<lx; x+=image->lx) {
sub_lx = lx - x; // spazio orizzontale disponibile
if (sub_lx > image->lx) sub_lx = image->lx;
__FAB_image_put_into(image,x0+x,y0+y,sub_lx,sub_ly);
}
}
}
void FAB_frame_put(FAB_FRAME* frame, WORD x0, WORD y0, WORD lx, WORD ly)
{
WORD eff_dim;
int j;
 
//BORDO DEL FRAME
if (frame->border!=NULL) eff_dim = frame->border->dim;
else eff_dim = frame->border_dim;
frame->x0 = x0 + eff_dim;
frame->y0 = y0 + eff_dim;
frame->x1 = x0 + lx - eff_dim - 1;
frame->y1 = y0 + ly - eff_dim - 1;
if (frame->border!=NULL) {
FAB_border_put(frame->border, frame->x0-1, frame->y0-1,
frame->x1+1, frame->y1+1);
}
else {
for (j=0; j<eff_dim; j++)
grx_rect(frame->x0-1-j, frame->y0-1-j,
frame->x1+1+j, frame->y1+1+j, frame->border_col);
}
 
//PANNELLO DEL FRAME
if (!frame->trasparent) {
if (frame->image==NULL) grx_box(frame->x0, frame->y0,
frame->x1, frame->y1, frame->color);
else FAB_image_fill(frame->image,
frame->x0, frame->y0,
lx-eff_dim*2, ly-eff_dim*2);
}
}
 
void FAB_ballframe_put(FAB_BALLFRAME* frame, WORD cx, WORD cy, WORD r)
{
int j;
WORD eff_dim;
 
//BORDO DEL FRAME
if (frame->border!=NULL) eff_dim = frame->border->dim;
else eff_dim = frame->border_dim;
frame->cx = cx;
frame->cy = cy;
frame->r = r - eff_dim;
if (frame->border!=NULL) {
FAB_ballborder_put(frame->border,frame->cx,frame->cy,frame->r+1);
}
else {
for (j=0; j<eff_dim; j++)
grx_circle(frame->cx,frame->cy,frame->r+1+j,frame->border_col);
}
 
//PANNELLO DEL FRAME
if (!frame->trasparent) {
grx_disc(frame->cx,frame->cy,frame->r,frame->color);
}
}
 
void FAB_image_copy(FAB_IMAGE* orig_image, FAB_IMAGE* dest_image)
{
COLOR* orig_buf;
COLOR* dest_buf;
int j,n;
 
n = orig_image->lx * orig_image->ly;
if (n==(dest_image->lx * dest_image->ly)) {
orig_buf = orig_image->buf;
dest_buf = dest_image->buf;
for(j=0; j<n; j++) {
*dest_buf = *orig_buf;
orig_buf++;
dest_buf++;
}
}
}
void FAB_image_color_change(FAB_IMAGE* image, COLOR old_col, COLOR new_col)
{ COLOR* buf;
int j,n;
 
buf = image->buf;
n = image->lx * image->ly;
for(j=0; j<n; j++, buf++)
if (*buf==old_col)
*buf=new_col;
}
//----------------------END--------------------------
#endif
/demos/tags/demos-021001/bca/bca.c
0,0 → 1,224
/*
* Project: S.Ha.R.K.
*
* Coordinators:
* Giorgio Buttazzo <giorgio@sssup.it>
* Paolo Gai <pj@gandalf.sssup.it>
*
* Authors :
* Paolo Gai <pj@gandalf.sssup.it>
* Massimiliano Giorgi <massy@gandalf.sssup.it>
* Luca Abeni <luca@gandalf.sssup.it>
* (see the web pages for full authors list)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://shark.sssup.it
*/
 
/* CVS : $Id: bca.c,v 1.2 2002-10-01 10:33:51 pj Exp $ */
 
/*
* Copyright (C) 2000 Fabio Calabrese <fabiocalabrese77@yahoo.it>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
/****************************************************
* *
* file: bca.c *
* header file: bca.h *
* data: 15/09/2002 *
* creato da: Fabio CALABRESE *
* *
******************************************************
* *
* descrizione: e' il file in cui è descritto il task*
* main del programma S.Ha.R.K. *
* "(B)ase(C)ontr(A)rea". *
* Il codice del programma comprende *
* anche l'implementazione di altri task*
* distribuiti nei seguenti file che *
* quindi sono inclusi: *
* dummy.c *
* control.c *
* aereo.c *
* cannone.c *
* missile.c *
* esplo.c *
* Inoltre è incluso anche il file: *
* scenario.c *
* che descrive come disegnare lo *
* scenario grafico iniziale *
* *
******************************************************/
 
 
// *** Librerie S.Ha.R.K ***
#include <kernel/kern.h>
#include <drivers/keyb.h>
#include <ll/i386/cons.h>
#include <drivers/glib.h>
// *** Librerie Standard C ***
#include <stdlib.h>
// *** Librerie FAB ***
#include "fab_lib/fab_msg.h"
#include "fab_lib/fab_show.h"
#include "fab_lib/fab_tool.h"
#include "fab_lib/fab_grx.h"
// *** Librerie BCA ***
#include "bca.h"
 
 
char * titolo[10];
 
void scenario();
void info();
#include"scenario.c"
 
PID crea_soft_dummy_radar ();
TASK dummy_radar(void *);
#include"dummy.c"
 
PID crea_soft_control();
TASK control(void *);
#include"control.c"
 
PID crea_soft_aereo_creator();
TASK aereo_creator();
PID crea_hard_aereo(int index);
PID crea_soft_aereo(int index);
TASK aereo(void * index);
#include"aereo.c"
 
PID crea_soft_cannone_creator();
TASK cannone_creator();
PID crea_hard_cannone(int index);
PID crea_soft_cannone(int index);
TASK cannone(void * index);
#include"cannone.c"
 
PID crea_hard_missile();
PID crea_soft_missile();
TASK missile();
#include"missile.c"
 
PID crea_soft_esplo();
TASK esplo(void *);
#include"esplo.c"
 
void demo_exc_handler(int signo, siginfo_t *info, void *extra)
{
struct timespec t;
 
grx_close();
 
/* Default action for an kern exception is */
kern_cli();
ll_gettime(TIME_EXACT, &t),
kern_printf("\nS.Ha.R.K. Exception raised!!!"
"\nTime (s:ns) :%d:%d"
"\nException number:%d"
"\nPID :%d\n",
t.tv_sec, t.tv_nsec, info->si_value.sival_int,
info->si_task);
sys_end();
}
 
void my_close(void *arg)
{ FAB_grx_close();
place(0,0);
info();
}
 
void end_fun(KEY_EVT* k)
{ cprintf("Ending...\n");
sys_end();
}
void incrementa_aerei_fun(KEY_EVT* k)
{ if (aereo_count<AEREO_N_MAX) aereo_count++;
}
void decrementa_aerei_fun(KEY_EVT* k)
{ if (aereo_count>AEREO_N_MIN) aereo_count--;
}
void incrementa_cannoni_fun(KEY_EVT* k)
{ if (cannone_count<CANNONE_N_MAX) cannone_count++;
}
void decrementa_cannoni_fun(KEY_EVT* k)
{ if (cannone_count>CANNONE_N_MIN) cannone_count--;
}
 
int main(int argc, char **argv)
{
PID pid;
 
KEY_EVT k;
keyb_set_map(itaMap);
 
k.flag = 0;
k.scan = KEY_ENT;
k.ascii = 13;
keyb_hook(k,end_fun);
k.flag = 0;
k.scan = KEY_1;
k.ascii = '1';
keyb_hook(k,incrementa_aerei_fun);
k.flag = 0;
k.scan = KEY_2;
k.ascii = '2';
keyb_hook(k,decrementa_aerei_fun);
k.flag = 0;
k.scan = KEY_3;
k.ascii = '3';
keyb_hook(k,incrementa_cannoni_fun);
k.flag = 0;
k.scan = KEY_4;
k.ascii = '4';
keyb_hook(k,decrementa_cannoni_fun);
 
set_exchandler_grx();
 
sys_atrunlevel(my_close, NULL, RUNLEVEL_BEFORE_EXIT);
 
FAB_grx_open(800,600);
 
/* inizializza il mutex grafico */
app_mutex_init(&grx_mutex);
 
scenario();
 
//---init---
srand(sys_gettime(NULL));
aereo_count = AEREO_N_MIN;
cannone_count = CANNONE_N_MIN;
 
pid=crea_soft_dummy_radar();
task_activate(pid);
 
pid=crea_soft_aereo_creator();
task_activate(pid);
 
pid=crea_soft_cannone_creator();
task_activate(pid);
 
pid=crea_soft_control();
task_activate(pid);
//----------
}
 
 
/demos/tags/demos-021001/bca/bca.h
0,0 → 1,288
/*
* Project: S.Ha.R.K.
*
* Coordinators:
* Giorgio Buttazzo <giorgio@sssup.it>
* Paolo Gai <pj@gandalf.sssup.it>
*
* Authors :
* Paolo Gai <pj@gandalf.sssup.it>
* Massimiliano Giorgi <massy@gandalf.sssup.it>
* Luca Abeni <luca@gandalf.sssup.it>
* (see the web pages for full authors list)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://shark.sssup.it
*/
 
/* CVS : $Id: bca.h,v 1.2 2002-10-01 10:33:51 pj Exp $ */
 
/*
* Copyright (C) 2000 Fabio Calabrese <fabiocalabrese77@yahoo.it>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
/****************************************************
* *
* file: bca.h *
* included by: bca.c & bca_lib di cui fa da header*
* data: 15/09/2002 *
* creato da: Fabio CALABRESE *
* *
******************************************************
* *
* descrizione: contiene la definizione di variabili *
* e strutture globali, con un corredo *
* di macro e funzioni per la loro *
* gestione, usate nel programma SHaRK *
* "(B)ase(C)ontr(A)rea", il cui codice *
* e' scritto nel file bca.c; *
* il file bca_lib.c contiene il corpo *
* di tutte le funzioni qui dichiarate. *
* *
******************************************************/
 
#ifndef __BCA_H__
#define __BCA_H__
//----------------BEGIN------------------
 
// *** Librerie S.Ha.R.K ***
// *** Librerie Standard C ***
// *** Librerie FAB ***
#include"fab_lib/fab_grx.h"
#include"fab_lib/fab_tool.h"
// *** Librerie BCA ***
 
 
// ---------------------------------
// *** Elementi Grafici Generici ***
// ---------------------------------
 
// IMMAGINI:
FAB_IMAGE* image_sfondo;
FAB_IMAGE* image_bca;
FAB_IMAGE* image_aereo[4]; // 1 aereo per ogni direzione(soft e hard)
FAB_IMAGE* image_esplo[5]; // 5 immagini in sequenza simulanti
FAB_IMAGE* image_cannone[2]; // un esplosione
FAB_IMAGE* image_missile[2];
 
// BORDI:
FAB_BORDER* border_blu7;
FAB_BORDER* border_verde7;
FAB_BORDER* border_rosso7;
FAB_BORDER* border_bianco7;
FAB_BORDER* border_giallo7;
 
// FRAME:
FAB_FRAME* frame_bca;
FAB_FRAME* frame_misure_oriz;
FAB_FRAME* frame_misure_vert;
FAB_FRAME* frame_misure_vert;
FAB_FRAME* frame_titolo;
FAB_FRAME* frame_comandi;
FAB_FRAME* frame_control;
 
// BALLFRAME:
FAB_BALLFRAME* ballframe_radar;
FAB_BALLFRAME* ballframe_lucerossa[3];
 
// Base ContrAerea
#define BASE_L 1.0 // [Km]: lunghezza
#define BASE_H 2100 // [m]: altezza max di visibilita'
 
// Finestra Virtuale sullo schermo
#define FIN_X_MIN 20 // [pixel]
#define FIN_X_MAX 520-1 // [pixel]
#define FIN_Y_MIN 20 // [pixel]
#define FIN_Y_MAX 520-1 // [pixel]
// Inoltre si possono usare le seguenti + comode define
// con gli stessi valori:
#define X0 FIN_X_MIN
#define X1 FIN_X_MAX
#define Y0 FIN_Y_MIN
#define Y1 FIN_Y_MAX
// NB: non e' necessaria la proporzionalita' tra finestra
// reale(BASE_L*BASE_H) e virtuale((X1-X0)*(Y1-Y0))!
 
// Finestra Misure
#define FRAME_MISURE_LINE_COLOR FAB_green
#define FRAME_MISURE_BACK_COLOR FAB_black
#define FRAME_MISURE_ORIZ_LY 30
#define FRAME_MISURE_VERT_LX 52
 
// Finestra Titolo
#define FRAME_TITOLO_TEXT_COLOR1 FAB_yellow
#define FRAME_TITOLO_TEXT_COLOR2 FAB_white
#define FRAME_TITOLO_BACK_COLOR1 FAB_gray
#define FRAME_TITOLO_BACK_COLOR2 FAB_blue
 
// Finestra Comandi
#define FRAME_COMANDI_TEXT_COLOR1 FAB_yellow
#define FRAME_COMANDI_TEXT_COLOR2 FAB_white
#define FRAME_COMANDI_TEXT_COLOR3 FAB_red
#define FRAME_COMANDI_BACK_COLOR1 FAB_gray
#define FRAME_COMANDI_BACK_COLOR2 FAB_yellow
 
// Finestra Control
#define FRAME_CONTROL_TEXT_COLOR1 FAB_rgb( 50,255, 50)
#define FRAME_CONTROL_TEXT_COLOR2 FAB_rgb(150,255,150)
#define FRAME_CONTROL_BACK_COLOR FAB_black
 
// ---------------------------------
// *** Elementi Task Dummy_radar ***
// ---------------------------------
#define DUMMY_RADAR_GROUP 3
#define DUMMY_RADAR_PERIOD 50000
#define DUMMY_RADAR_WCET 400
#define DUMMY_RADAR_MET 200
 
// ---------------------------------
// *** Elementi Task Control ***
// ---------------------------------
#define CONTROL_PERIOD 50000
#define CONTROL_WCET 400
#define CONTROL_MET 300
 
// ---------------------------
// *** Elementi Task Esplo ***
// ---------------------------
#define ESPLO_TRASPARENT_COL FAB_white
#define ESPLO_LX 40
#define ESPLO_LY 40
 
#define ESPLO_PERIOD 80000
#define ESPLO_WCET 300
#define ESPLO_MET 100
 
// -----------------------------------
// *** Elementi Task Aereo_Creator ***
// -----------------------------------
#define AEREO_CREATOR_PERIOD 200000
#define AEREO_CREATOR_WCET 300
#define AEREO_CREATOR_MET 100
 
// -----------------------------------
// *** Elementi Task Cannone_Creator ***
// -----------------------------------
#define CANNONE_CREATOR_PERIOD 1000000
#define CANNONE_CREATOR_WCET 150
#define CANNONE_CREATOR_MET 50
 
// ---------------------------
// *** Elementi Task Aereo ***
// ---------------------------
#define AEREO_N_MAX 10
#define AEREO_N_MIN 1
 
#define AEREO_TRASPARENT_COL FAB_white
#define AEREO_BASE_COL FAB_green
#define AEREO_LX 32
#define AEREO_LY 19
#define AEREO_H_MIN 500 // [m]: altezza min di volo
#define AEREO_H_MAX 2000 // [m]: altezza max di volo (<BASE_H)
#define AEREO_L_MIN 0 // [km]: posizione 0 nella base
#define AEREO_L_MAX BASE_L // [km] posizione max nella base
#define AEREO_V_MIN 300.0 // [Km/h]: velocit… min di volo
#define AEREO_V_MAX 500.0 // [Km/h]: velocit… max di volo
#define AEREO_X_MIN X0 - AEREO_LX/2
#define AEREO_X_MAX X1 + AEREO_LX/2
 
#define AEREO_PERIOD 30000
#define AEREO_WCET 1250 //Verificato!
#define AEREO_MET 800
 
struct { BYTE status; //[0=free/1=occupato]
BYTE killing; //richiesta uscita se Š 1 altrimenti 0
PID pid;
COLOR color;
FAB_IMAGE* image;
double vel; //[km/h]
int dir; //[+1/-1]
WORD h; //[m]
double l; //[km]
WORD x, y; //[pixel]
} aereo_table[AEREO_N_MAX];
 
int aereo_count;
 
// -----------------------------
// *** Elementi Task Cannone ***
// -----------------------------
#define CANNONE_N_MAX 9
#define CANNONE_N_MIN 1
 
#define CANNONE_SENSIBILITA 200 //[m]
 
#define CANNONE_TRASPARENT_COL FAB_white
#define CANNONE_LX 33
#define CANNONE_LY 15
 
#define CANNONE_PERIOD 100000
#define CANNONE_WCET 1000
#define CANNONE_MET 100
 
struct { BYTE status; //[0=free/1=occupato]
BYTE killing; //richiesta uscita se Š 1 altrimenti 0
PID pid;
BYTE fire;
WORD x;
double missile_vel;
} cannone_table[CANNONE_N_MAX];
 
int cannone_count;
 
// -----------------------------
// *** Elementi Task Missile ***
// -----------------------------
#define MISSILE_V_MIN 300.0 //[km/h]
#define MISSILE_V_MAX 5000.0 //[km/h]
#define MISSILE_ACC_MIN 100000.0 //[km/(h*h)]
#define MISSILE_ACC_MAX 10000000.0 //[km/(h*h)]
#define MISSILE_X_MAX X1 + MISSILE_LX/2 //[pixel]
#define MISSILE_X_MIN X0 - MISSILE_LX/2 //[pixel]
#define MISSILE_Y_MAX Y1 + MISSILE_LY/2 //[pixel]
#define MISSILE_Y_MIN Y0 - MISSILE_LY/2 //[pixel]
 
#define MISSILE_TRASPARENT_COL FAB_white
 
#define MISSILE_LX 7 //[pixel]
#define MISSILE_LY 15 //[pixel]
 
#define MISSILE_PERIOD 10000
#define MISSILE_WCET 500
#define MISSILE_MET 100
 
 
 
 
 
// MUTEX:
mutex_t grx_mutex; //per l'accesso alla grafica
int app_mutex_init(mutex_t *m);
 
 
 
// FUNZIONI GESTIONE RISORSE DI MEMORIA:
void kern_init_bca();
 
 
 
//------------------END------------------
#endif
/demos/tags/demos-021001/bca/makefile
0,0 → 1,16
#
#
#
 
ifndef BASE
BASE=../..
endif
include $(BASE)/config/config.mk
 
PROGS= bca
 
include $(BASE)/config/example.mk
 
bca:
make -f $(SUBMAKE) APP=bca INIT= OTHEROBJS="initfile.o fab_lib.o bca_lib.o"
 
/demos/tags/demos-021001/bca/fab_lib/fab_grx.h
0,0 → 1,201
/*
* Project: S.Ha.R.K.
*
* Coordinators:
* Giorgio Buttazzo <giorgio@sssup.it>
* Paolo Gai <pj@gandalf.sssup.it>
*
* Authors :
* Paolo Gai <pj@gandalf.sssup.it>
* Massimiliano Giorgi <massy@gandalf.sssup.it>
* Luca Abeni <luca@gandalf.sssup.it>
* (see the web pages for full authors list)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://shark.sssup.it
*/
 
/* CVS : $Id: fab_grx.h,v 1.2 2002-10-01 10:33:52 pj Exp $ */
 
/*
* Copyright (C) 2000 Fabio Calabrese <fabiocalabrese77@yahoo.it>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
/****************************************************
* *
* file: FAB_grx.h *
* libreria: FAB_LIB *
* version: 1.0 25/08/2002 *
* creato da: Fabio CALABRESE *
* *
****************************************************
* *
* descrizione: libreria di funzioni grafiche: *
* permette di gestire con facilita' *
* immagini, cornici, e veri e propri *
* pannelli colorati. *
* Il contesto di grafica va avviato *
* con FAB_grx_open() e alla fine *
* chiuso correttamente con la funz. *
* FAB_grx_close(). L'ambiente di *
* grafica e'impostato a 16bit per *
* default, comunque e' sempre *
* possibile scegliere la profondita' *
* di colori preferita tra 15/16/24/32*
* definendo semplicemente solo una *
* delle seguenti costanti all'inizio *
* del proprio programma che include *
* questa libreria grafica: *
* FAB_GRX_15 *
* FAB_GRX_16 (default) *
* FAB_GRX_24 *
* FAB_GRX_32 *
* *
****************************************************/
 
#ifndef __FAB_LIB_fab_grx_h__
#define __FAB_LIB_fab_grx_h__
//-------------------BEGIN---------------------------
 
// *** Librerie di S.Ha.R.K. ***
#include<kernel/kern.h>
#include<drivers/gd.h>
#include<ll/sys/types.h>
// *** Librerie Standard C ***
// *** Librerie FAB ***
#include"fab_grx.sys"
 
//#define FAB_GRX_15
//#define FAB_GRX_16
//#define FAB_GRX_24
//#define FAB_GRX_32
 
typedef __FAB_COLOR COLOR;
 
typedef struct {
WORD lx,ly;
COLOR * buf;
int trasparent;
COLOR trasparent_col;
} FAB_IMAGE;
 
typedef struct {
WORD dim;
COLOR * buf;
} FAB_BORDER;
 
typedef struct {
FAB_BORDER * border; //default = NULL
WORD border_dim; //default = 0
COLOR border_col;
 
BYTE trasparent; //default = 0
FAB_IMAGE * image; //default = NULL
COLOR color;
 
WORD x0,y0,x1,y1; //spigoli pannello interno
//cornice esclusa: vengono settati
//automaticamente con FAB_frame_put().
} FAB_FRAME;
typedef struct {
FAB_BORDER * border; //default = NULL
WORD border_dim; //default = 0
COLOR border_col;
 
BYTE trasparent; //default = 0
COLOR color;
 
WORD cx,cy,r; //centro e raggio del pannello
//circolare: vengono settati
//automaticamente con FAB_ballframe_put().
} FAB_BALLFRAME;
 
// -----------
// Definizioni
//----------------------
#define FAB_BPP __FAB_BPP
#define FAB_rgb(R24,G24,B24) __FAB_rgb((R24),(G24),(B24))
 
// Colori base
#define FAB_white FAB_rgb(255,255,255)
#define FAB_black FAB_rgb( 0, 0, 0)
#define FAB_red FAB_rgb(255, 0, 0)
#define FAB_green FAB_rgb( 0,255, 0)
#define FAB_blue FAB_rgb( 0, 0,255)
#define FAB_yellow FAB_rgb(255,255, 0)
#define FAB_gray FAB_rgb(100,100,100)
 
//----------------------
 
// ----------------
// Funzioni & Macro
//--------------------------------------------------
int FAB_grx_open(WORD lx, WORD ly);
void FAB_grx_close();
 
FAB_IMAGE* FAB_image_alloc(WORD lx, WORD ly); //richiede DISABLED INTERRUPTS
void FAB_image_free(FAB_IMAGE* image); //richiede DISABLED INTERRUPTS
FAB_BORDER* FAB_border_alloc(WORD dim); //richiede DISABLED INTERRUPTS
void FAB_border_free(FAB_BORDER * border);//richiede DISABLED INTERRUPTS
FAB_FRAME* FAB_frame_alloc(); //richiede DISABLED INTERRUPTS
void FAB_frame_free(FAB_FRAME * frame); //richiede DISABLED INTERRUPTS
FAB_BALLFRAME* FAB_ballframe_alloc(); //richiede DISABLED INTERRUPTS
void FAB_ballframe_free(FAB_BALLFRAME * frame);//richiede DISABLED INTERRUPTS
 
// Permette di riempire lo spazio allocato ad un FAB_IMAGE
// leggendo le sequenze rgb a 24bit da un file immagine binario.
// Un formato perfettamente compatibile Š quello
// "RAW"(con header=0 e sequenza ad ordinamento RGB-RGB-RGB...):
int FAB_image_load(FAB_IMAGE* image, char* file_name); // solo in __kernel_register_levels__()
// Per default un FAB_IMAGE non ha il colore di trasparenza:
#define FAB_image_no_trasparent_set(IMAGE) (IMAGE)->trasparent=0
#define FAB_image_trasparent_set(IMAGE,TRASPARENT_COL) (IMAGE)->trasparent=1;(IMAGE)->trasparent_col=(TRASPARENT_COL)
 
// Settaggio FAB_BORDER deve essere fatto manualmente!
// esempio:
// mio_border->buf[i] = FAB_rgb(0,100,0);
// ...
// mio_border->buf[N] = FAB_rgb(0,100,255);
// (non esiste una funzione FAB_border_set)
 
#define FAB_frame_border_set(FRAME,BORDER,BORDER_DIM,BORDER_COL) (FRAME)->border=(BORDER);(FRAME)->border_dim=(BORDER_DIM);(FRAME)->border_col=(BORDER_COL);
#define FAB_frame_color_set(FRAME,TRASPARENT_FLAG,IMAGE,COLOR) (FRAME)->trasparent=(TRASPARENT_FLAG);(FRAME)->image=(IMAGE);(FRAME)->color=(COLOR);
#define FAB_ballframe_border_set(FRAME,BORDER,BORDER_DIM,BORDER_COL) (FRAME)->border=(BORDER);(FRAME)->border_dim=(BORDER_DIM);(FRAME)->border_col=(BORDER_COL);
#define FAB_ballframe_color_set(FRAME,TRASPARENT_FLAG,COLOR) (FRAME)->trasparent=(TRASPARENT_FLAG);(FRAME)->color=(COLOR);
 
void FAB_ball_put(WORD cx, WORD cy, WORD r, COLOR c);
void FAB_image_get(FAB_IMAGE* image, WORD x, WORD y, WORD lx, WORD ly);
void FAB_image_put(FAB_IMAGE* image, WORD x, WORD y);
void FAB_image_put_within(FAB_IMAGE* image, WORD x0, WORD y0,
WORD xx0, WORD yy0, WORD xx1, WORD yy1);
void FAB_image_copy(FAB_IMAGE* orig_image, FAB_IMAGE* dest_image);
void FAB_image_color_change(FAB_IMAGE* image, COLOR old_col, COLOR new_col);
void FAB_image_fill(FAB_IMAGE* image, WORD x0, WORD y0, WORD lx, WORD ly);
void FAB_border_put(FAB_BORDER* border, WORD x0, WORD y0, WORD x1, WORD y1);
void FAB_ballborder_put(FAB_BORDER* border, WORD cx, WORD cy, WORD r_int);
void FAB_frame_put(FAB_FRAME* frame, WORD x0, WORD y0, WORD lx, WORD ly);
void FAB_ballframe_put(FAB_BALLFRAME* frame, WORD cx, WORD cy, WORD r);
//--------------------------------------------------
 
// Altro...
 
//---------------------END---------------------------
#endif
/demos/tags/demos-021001/bca/fab_lib/fab_show.h
0,0 → 1,83
/*
* Project: S.Ha.R.K.
*
* Coordinators:
* Giorgio Buttazzo <giorgio@sssup.it>
* Paolo Gai <pj@gandalf.sssup.it>
*
* Authors :
* Paolo Gai <pj@gandalf.sssup.it>
* Massimiliano Giorgi <massy@gandalf.sssup.it>
* Luca Abeni <luca@gandalf.sssup.it>
* (see the web pages for full authors list)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://shark.sssup.it
*/
 
/* CVS : $Id: fab_show.h,v 1.2 2002-10-01 10:33:52 pj Exp $ */
 
/*
* Copyright (C) 2000 Fabio Calabrese <fabiocalabrese77@yahoo.it>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
/****************************************************
* *
* file: FAB_show.h *
* libreria: FAB_LIB *
* version: 1.0 25/08/2002 *
* creato da: Fabio CALABRESE *
* *
****************************************************
* *
* descrizione: libreria di funzioni per stampare *
* specifiche informazioni utili *
* riguardo lo stato del sistema. *
* *
****************************************************/
 
#ifndef __FAB_LIB__FAB_show_h__
#define __FAB_LIB__FAB_show_h__
//-------------------BEGIN---------------------------
 
// *** Librerie S.Ha.R.K ***
 
// *** Librerie Standard C ***
 
// *** Librerie FAB ***
#include "fab_msg.h"
 
// -----------
// Definizioni
//----------------------
//----------------------
 
// ----------------
// Funzioni & Macro
//-------------------------------------------------
void FAB_show_sched_modules();
//--------------------------------------------------
 
 
// Altro...
 
//----------------------END--------------------------
#endif
/demos/tags/demos-021001/bca/fab_lib/fab_msg.h
0,0 → 1,96
/*
* Project: S.Ha.R.K.
*
* Coordinators:
* Giorgio Buttazzo <giorgio@sssup.it>
* Paolo Gai <pj@gandalf.sssup.it>
*
* Authors :
* Paolo Gai <pj@gandalf.sssup.it>
* Massimiliano Giorgi <massy@gandalf.sssup.it>
* Luca Abeni <luca@gandalf.sssup.it>
* (see the web pages for full authors list)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://shark.sssup.it
*/
 
/* CVS : $Id: fab_msg.h,v 1.1 2002-10-01 10:25:02 pj Exp $ */
 
/*
* Copyright (C) 2000 Fabio Calabrese <fabiocalabrese77@yahoo.it>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
/****************************************************
* *
* file: FAB_msg.h *
* libreria: FAB_LIB *
* version: 1.0 25/08/2002 *
* creato da: Fabio CALABRESE *
* *
****************************************************
* *
* descrizione: libreria di funzioni per stampare *
* messaggi circa il corretto esito *
* dell'esecuzione delle istruzioni; *
* stampa semplici stringhe colorate; *
* aiuta a fare il debbuging. *
* *
****************************************************/
 
#ifndef __FAB_LIB__FAB_msg_h__
#define __FAB_LIB__FAB_msg_h__
//-------------------BEGIN---------------------------
 
// *** Librerie di S.Ha.R.K. ***
#include <ll/i386/cons.h>
// *** Librerie Standard C ***
// *** Librerie FAB ***
 
// -----------
// Definizioni
//----------------------
#define FAB_EXIT_YES 1
#define FAB_EXIT_NO 0
#define FAB_EMPTY_MSG ""
//----------------------
 
// ----------------
// Funzioni & Macro
//-------------------------------------------------
#define FAB_newline() NL()
#define FAB_home() HOME()
#define FAB_clr() clear()
 
void FAB_print(char * InitMsg, char * msg);
#define FAB_msg(TEST,INITMSG,OKMSG,ERRORMSG) __FAB_go2((TEST),(INITMSG),(OKMSG),(ERRORMSG),FAB_EXIT_NO)
#define FAB_go(TEST,INITMSG,OKMSG,ERRORMSG,EXITFLAG) __FAB_go2((TEST),(INITMSG),(OKMSG),(ERRORMSG),(EXITFLAG))
//--------------------------------------------------
 
 
// Altro...
 
void __FAB_go(int test, char * OkMsg, char * ErrorMsg,int EXITflag);
#define __FAB_go2(TEST,INITMSG,OKMSG,ERRORMSG,EXITFLAG) {if ((INITMSG)!=NULL) cprintf("\n[%s]",(INITMSG)); __FAB_go((TEST),(OKMSG),(ERRORMSG),(EXITFLAG));}
 
 
//----------------------END--------------------------
#endif
/demos/tags/demos-021001/bca/fab_lib/fab_grx.sys
0,0 → 1,71
/*
* Project: S.Ha.R.K.
*
* Coordinators:
* Giorgio Buttazzo <giorgio@sssup.it>
* Paolo Gai <pj@gandalf.sssup.it>
*
* Authors :
* Paolo Gai <pj@gandalf.sssup.it>
* Massimiliano Giorgi <massy@gandalf.sssup.it>
* Luca Abeni <luca@gandalf.sssup.it>
* (see the web pages for full authors list)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://shark.sssup.it
*/
 
/* CVS : $Id: fab_grx.sys,v 1.1 2002-10-01 10:25:02 pj Exp $ */
 
/*
* Copyright (C) 2000 Fabio Calabrese <fabiocalabrese77@yahoo.it>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
// file incluso da FAB_grx.h
// -------------------------
 
typedef BYTE COLOR8;
typedef WORD COLOR15;
typedef WORD COLOR16;
typedef DWORD COLOR24;
typedef DWORD COLOR32;
 
#if defined FAB_GRX_15
#define __FAB_BPP 15
#define __FAB_rgb(R24,G24,B24) rgb15((R24),(G24),(B24))
typedef COLOR15 __FAB_COLOR;
#elif defined FAB_GRX_16
#define __FAB_BPP 16
#define __FAB_rgb(R24,G24,B24) rgb16((R24),(G24),(B24))
typedef COLOR16 __FAB_COLOR;
#elif defined FAB_GRX_24
#define __FAB_BPP 24
#define __FAB_rgb(R24,G24,B24) rgb24((R24),(G24),(B24))
typedef COLOR24 __FAB_COLOR;
#elif defined FAB_GRX_32
#define __FAB_BPP 32
#define __FAB_rgb(R24,G24,B24) rgb32((R24),(G24),(B24))
typedef COLOR32 __FAB_COLOR;
#else
#define __FAB_BPP 16
#define __FAB_rgb(R24,G24,B24) rgb16((R24),(G24),(B24))
typedef COLOR16 __FAB_COLOR;
#endif
/demos/tags/demos-021001/bca/fab_lib/fab_tool.h
0,0 → 1,90
/*
* Project: S.Ha.R.K.
*
* Coordinators:
* Giorgio Buttazzo <giorgio@sssup.it>
* Paolo Gai <pj@gandalf.sssup.it>
*
* Authors :
* Paolo Gai <pj@gandalf.sssup.it>
* Massimiliano Giorgi <massy@gandalf.sssup.it>
* Luca Abeni <luca@gandalf.sssup.it>
* (see the web pages for full authors list)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://shark.sssup.it
*/
 
/* CVS : $Id: fab_tool.h,v 1.1 2002-10-01 10:25:03 pj Exp $ */
 
/*
* Copyright (C) 2000 Fabio Calabrese <fabiocalabrese77@yahoo.it>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
/****************************************************
* *
* file: FAB_tool.h *
* libreria: FAB_LIB *
* version: 1.0 25/08/2002 *
* creato da: Fabio CALABRESE *
* *
****************************************************
* *
* descrizione: tool di funzioni d'utilita' *
* *
****************************************************/
 
#ifndef __FAB_LIB__FAB_tool_h__
#define __FAB_LIB__FAB_tool_h__
//-------------------BEGIN---------------------------
 
// *** Librerie S.Ha.R.K ***
// *** Librerie Standard C ***
#include <stdlib.h>
#include <math.h>
// *** Librerie FAB ***
 
// -----------
// Definizioni
//----------------------
//----------------------
 
// ----------------
// Funzioni & Macro
//-------------------------------------------------
#define FAB_PI 3.141592654
#define FAB_grad(RADIANTI) RADIANTI/FAB_PI*180
#define FAB_rad(GRADI) GRADI/180.0*FAB_PI
#define FAB_set_ang360(ANGOLO,X,Y) if ((X)>0) {if((Y)>0) (ANGOLO)=atan((Y)/(double)(X));else if((Y)<0) (ANGOLO)=atan((Y)/(double)(X))+2*FAB_PI;else (ANGOLO)=0;}else if ((X)<0) (ANGOLO)=atan((Y)/(double)(X))+FAB_PI;else /* X==0 */if ((Y)>0) (ANGOLO)=FAB_PI/2;else if ((Y)<0) (ANGOLO)=FAB_PI/2+FAB_PI;else /* Y==0 */ (ANGOLO)=-1; /* X=Y=0 */
#define FAB_set_xy360(X,Y,MODULO,ANGOLO) (X)=(MODULO)*cos(ANGOLO);(Y)=(MODULO)*sin(ANGOLO);
 
#define FAB_ABS(X) ((X) > 0 ? (X) : (X)*-1)
 
#define FAB_sign_rand() (rand()%2 ? -1 : +1)
#define FAB_int_rand(MIN,MAX ) ((MIN) + rand()%((MAX)-(MIN)+1))
#define FAB_double_rand(MIN,MAX) ((MIN) + ((MAX)-(MIN))*((double)rand()/RAND_MAX))
//--------------------------------------------------
 
 
// Altro...
 
//----------------------END--------------------------
#endif
/demos/tags/demos-021001/bca/scenario.c
0,0 → 1,168
/*
* Project: S.Ha.R.K.
*
* Coordinators:
* Giorgio Buttazzo <giorgio@sssup.it>
* Paolo Gai <pj@gandalf.sssup.it>
*
* Authors :
* Paolo Gai <pj@gandalf.sssup.it>
* Massimiliano Giorgi <massy@gandalf.sssup.it>
* Luca Abeni <luca@gandalf.sssup.it>
* (see the web pages for full authors list)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://shark.sssup.it
*/
 
/* CVS : $Id: scenario.c,v 1.1 2002-10-01 10:25:01 pj Exp $ */
 
/*
* Copyright (C) 2000 Fabio Calabrese <fabiocalabrese77@yahoo.it>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
//***************************
//* file: scenario.c *
//* included by: bca.c *
//***************************
 
void scenario_ca()
{ //SFONDO
FAB_image_fill(image_sfondo,0,0,800,600);
 
//FRAME_BCA
FAB_frame_put(frame_bca,X0-7,Y0-7,500+7*2,500+7*2);
}
void scenario_misure()
{ int x, y, cx, cy;
char* str_km ="X.Xkm";
char* str_m ="XXXXm";
int h;
 
//FRAME_MISURE orizzontale
FAB_frame_put(frame_misure_oriz, X0-7, Y1+7+20-7,
500+7*2, FRAME_MISURE_ORIZ_LY+7*2);
cy = frame_misure_oriz->y0 + 10;
cx = frame_misure_oriz->x0 +
(frame_misure_oriz->x1 - frame_misure_oriz->x0) / 2;
for(x=frame_misure_oriz->x0 ;x<frame_misure_oriz->x1+1 ;x+=5)
grx_line(x,cy,x+2,cy,FRAME_MISURE_LINE_COLOR);
for(y=frame_misure_oriz->y0; y<cy-1; y+=5) {
grx_line(frame_misure_oriz->x0,y,frame_misure_oriz->x0,y+2,FRAME_MISURE_LINE_COLOR);
grx_line(cx,y,cx,y+2,FRAME_MISURE_LINE_COLOR);
grx_line(frame_misure_oriz->x1,y,frame_misure_oriz->x1,y+2,FRAME_MISURE_LINE_COLOR);
}
sprintf(str_km,"%02.1fkm",0.0);
grx_text(str_km,frame_misure_oriz->x0+10,cy+2,FRAME_MISURE_LINE_COLOR,frame_misure_oriz->color);
sprintf(str_km,"%02.1fkm",BASE_L/2.0);
grx_text(str_km,cx-10,cy+2,FRAME_MISURE_LINE_COLOR,frame_misure_oriz->color);
sprintf(str_km,"%02.1fkm",BASE_L);
grx_text(str_km,frame_misure_oriz->x1-FRAME_MISURE_ORIZ_LY,cy+2,FRAME_MISURE_LINE_COLOR,frame_misure_oriz->color);
 
//FRAME_MISURE verticale
FAB_frame_put(frame_misure_vert, X1+7+20-7, Y0-7,
FRAME_MISURE_VERT_LX+7*2, 500+7*2);
cy = frame_misure_vert->y0 +
(frame_misure_vert->y1 - frame_misure_vert->y0) / 2;
cx = frame_misure_vert->x0 + 10;
for(y=frame_misure_vert->y1; y>frame_misure_vert->y0-1; y-=5)
grx_line(cx,y,cx,y-2,FRAME_MISURE_LINE_COLOR);
h=0;
for(y=frame_misure_vert->y1; y>frame_misure_vert->y0-1;
y-=500.0*(X1-X0)/BASE_H, h+=500) {
for(x=frame_misure_vert->x0; x<cx-1; x+=5)
grx_line(x,y,x+2,y,FRAME_MISURE_LINE_COLOR);
sprintf(str_m,"%dm",h);
grx_text(str_m, cx+2, y-6,
FRAME_MISURE_LINE_COLOR, frame_misure_vert->color);
}
}
void scenario_radar()
{ FAB_ballframe_put(ballframe_radar,
frame_bca->x1+7+30, frame_bca->y1+7+30, 30);
FAB_ballframe_put(ballframe_lucerossa[2],605,546,20);
FAB_ballframe_put(ballframe_lucerossa[1],594,578,15);
FAB_ballframe_put(ballframe_lucerossa[0],574,591,10);
}
void scenario_titolo()
{ int x0,y0;
x0 = frame_misure_vert->x1+7+20-7;
y0 = frame_bca->y0-7;
FAB_frame_put(frame_titolo,x0,y0,800-x0-20+7,170);
x0 = frame_titolo->x0;
y0 = frame_titolo->y0;
grx_text(titolo[0],x0+2,y0+10,FRAME_TITOLO_TEXT_COLOR2,FRAME_TITOLO_BACK_COLOR1);
grx_text(titolo[1],x0+2,y0+20,FRAME_TITOLO_TEXT_COLOR2,FRAME_TITOLO_BACK_COLOR1);
grx_text(titolo[2],x0+2,y0+30,FRAME_TITOLO_TEXT_COLOR2,FRAME_TITOLO_BACK_COLOR1);
grx_text(titolo[3],x0+2,y0+46,FRAME_TITOLO_TEXT_COLOR2,FRAME_TITOLO_BACK_COLOR1);
grx_text(titolo[4],x0+2,y0+66,FRAME_TITOLO_TEXT_COLOR1,FRAME_TITOLO_BACK_COLOR2);
grx_text(titolo[5],x0+2,y0+81,FRAME_TITOLO_TEXT_COLOR2,FRAME_TITOLO_BACK_COLOR1);
grx_text(titolo[6],x0+2,y0+96,FRAME_TITOLO_TEXT_COLOR2,FRAME_TITOLO_BACK_COLOR1);
grx_text(titolo[7],x0+2,y0+116,FRAME_TITOLO_TEXT_COLOR2,FRAME_TITOLO_BACK_COLOR1);
grx_text(titolo[8],x0+2,y0+133,FRAME_TITOLO_TEXT_COLOR2,FRAME_TITOLO_BACK_COLOR1);
grx_text(titolo[9],x0+2,y0+141,FRAME_TITOLO_TEXT_COLOR2,FRAME_TITOLO_BACK_COLOR1);
}
void scenario_comandi()
{ int x0, y0;
x0 = frame_misure_vert->x1+7+20-7;
y0 = frame_titolo->y1+7+20-7;
FAB_frame_put(frame_comandi,x0,y0,800-x0-20+7,100+7*2);
x0 = frame_comandi->x0;
y0 = frame_comandi->y0;
grx_text(" COMANDI \0",x0+2,y0+10,FRAME_COMANDI_TEXT_COLOR1,FRAME_COMANDI_BACK_COLOR1);
grx_text("-------------------\0",x0+2,y0+20,FRAME_COMANDI_TEXT_COLOR2,FRAME_COMANDI_BACK_COLOR1);
grx_text(" esci \0",x0+2,y0+40,FRAME_COMANDI_TEXT_COLOR2,FRAME_COMANDI_BACK_COLOR1);
grx_text("[INVIO]",x0+2,y0+40,FRAME_COMANDI_TEXT_COLOR3,FRAME_COMANDI_BACK_COLOR2);
grx_text(" +/- aerei \0",x0+2,y0+60,FRAME_COMANDI_TEXT_COLOR2,FRAME_COMANDI_BACK_COLOR1);
grx_text("[1/2]",x0+2,y0+60,FRAME_COMANDI_TEXT_COLOR3,FRAME_COMANDI_BACK_COLOR2);
grx_text(" +/- cannoni\0",x0+2,y0+80,FRAME_COMANDI_TEXT_COLOR2,FRAME_COMANDI_BACK_COLOR1);
grx_text("[3/4]",x0+2,y0+80,FRAME_COMANDI_TEXT_COLOR3,FRAME_COMANDI_BACK_COLOR2);
}
void scenario_control()
{ int x0,y0;
 
x0 = frame_misure_vert->x1+7+20-7;
y0 = frame_comandi->y1+7+20-7;
FAB_frame_put(frame_control,x0,y0,800-x0-20+7,frame_misure_vert->y1+7-y0);
x0 = frame_control->x0;
y0 = frame_control->y0;
grx_text(" CONTROL \0",x0+2, y0+5,FRAME_CONTROL_TEXT_COLOR2,FRAME_CONTROL_BACK_COLOR);
grx_line(x0-3, y0+15,
frame_control->x1+3, y0+15,
FRAME_CONTROL_TEXT_COLOR1);
 
grx_line(x0-3, frame_control->y1-81,
frame_control->x1+3, frame_control->y1-81,
FRAME_CONTROL_TEXT_COLOR1);
}
void scenario()
{ scenario_ca();
scenario_misure();
scenario_radar();
scenario_titolo();
scenario_comandi();
scenario_control();
}
 
void info()
{ int i;
for(i=0; i<10; i++) kern_printf("%s\n",titolo[i]);
}
/demos/tags/demos-021001/bca/missile.c
0,0 → 1,198
/*
* Project: S.Ha.R.K.
*
* Coordinators:
* Giorgio Buttazzo <giorgio@sssup.it>
* Paolo Gai <pj@gandalf.sssup.it>
*
* Authors :
* Paolo Gai <pj@gandalf.sssup.it>
* Massimiliano Giorgi <massy@gandalf.sssup.it>
* Luca Abeni <luca@gandalf.sssup.it>
* (see the web pages for full authors list)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://shark.sssup.it
*/
 
/* CVS : $Id: missile.c,v 1.1 2002-10-01 10:25:01 pj Exp $ */
 
/*
* Copyright (C) 2000 Fabio Calabrese <fabiocalabrese77@yahoo.it>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
//**************************
//* file: missile.c *
//* included by: bca.c *
//**************************
 
TASK missile(void *arg)
{
PID esplo_pid;
int img;
int i, index; // indice nella cannone_table
int distx, disty;
int xx0,yy0,xx1,yy1;
double vel, acc;
double a;
double y;
double x;
double old_x; // [pixel]: conserva valore x prima di aggiornare
double old_y;
double dx; // [pixel/us]: spostamento periodico
double dy;
int first_time;
int killing;
 
index = (int)arg;
img=0;
y = MISSILE_Y_MAX;
x = cannone_table[index].x;
a = FAB_rad(270);
vel = MISSILE_V_MIN;
acc = MISSILE_ACC_MIN;
dx = 0;
dy = 0;
 
first_time = 1;
killing = 0;
 
while(1){
 
old_x = x;
old_y = y;
 
if (vel<MISSILE_V_MAX) {
vel += acc*MISSILE_PERIOD/(60*60*1000000.0);
if (vel>MISSILE_V_MAX) vel = MISSILE_V_MAX;
}
if (acc<MISSILE_ACC_MAX) {
acc += MISSILE_ACC_MIN;
if (acc>MISSILE_ACC_MAX) acc = MISSILE_ACC_MAX;
}
 
cannone_table[index].missile_vel=vel;
 
dx = cos(a)*vel * (X1-X0) / (double)BASE_L
* (MISSILE_PERIOD / (60*60*1000000.0));
dy = sin(a)*vel * (Y1-Y0) / ((double)BASE_H/1000)
* (MISSILE_PERIOD / (60*60*1000000.0));
 
x += dx;
y += dy;
 
xx0 = old_x - MISSILE_LX/2;
yy0 = old_y - MISSILE_LY/2;
xx1 = xx0 + MISSILE_LX-1;
yy1 = yy0 + MISSILE_LY-1;
 
if (x<MISSILE_X_MIN || x>MISSILE_X_MAX
|| y<MISSILE_Y_MIN || y>MISSILE_Y_MAX) {
killing = 1;
}
 
if (killing) {
if (!first_time) {
mutex_lock(&grx_mutex);
FAB_image_put_within(image_bca,X0,Y0,xx0,yy0,xx1,yy1);
mutex_unlock(&grx_mutex);
}
cannone_table[index].fire = 0;
//il task cannone si accorge che il suo missile ha finito
// quindi ne ricreer… uno nuovo in caso di bersaglio!!!
return NULL;
}
 
if ( (int)x != (int)old_x
||(int)y != (int)old_y ) {//...se c'Š lo spostamento reale
// di almeno un pixel...
mutex_lock(&grx_mutex); //...aggiorna disegno...
if (first_time) {
first_time=0;
}
else {
if (yy1<Y1-CANNONE_LY) FAB_image_put_within(image_bca,X0,Y0,xx0,yy0,xx1,yy1);
else FAB_image_put_within(image_bca,X0,Y0,xx0,yy0,xx1,Y1-CANNONE_LY);
}
 
FAB_image_put_within(image_missile[img++], x - MISSILE_LX/2, y - MISSILE_LY/2,
X0, Y0,
X1, Y1-CANNONE_LY);
mutex_unlock(&grx_mutex);
if (img==2) img = 0;
}
 
//Ha colpito un aereo?
for (i=0; i<AEREO_N_MAX; i++)
if (aereo_table[i].status){
distx = aereo_table[i].x-x;
disty = aereo_table[i].y-y;
if (distx<0) distx *= -1;
if (disty<0) disty *= -1;
if ( distx<(AEREO_LX+MISSILE_LX)/2-1
&&disty<(AEREO_LY+MISSILE_LY)/2-1 ) { // BERSAGLIO COLPITO!
esplo_pid = crea_soft_esplo(i);
task_activate(esplo_pid);
killing=1;
aereo_table[i].killing=1;
break;
}
}
 
task_endcycle();
}
 
return NULL;
}
 
 
PID crea_hard_missile(int index)
{
HARD_TASK_MODEL m;
PID pid;
 
hard_task_default_model(m);
hard_task_def_level(m,0);
hard_task_def_arg(m,(void*)index);
hard_task_def_periodic(m);
hard_task_def_wcet(m, MISSILE_WCET);
hard_task_def_mit(m,MISSILE_PERIOD);
 
pid = task_create("hard_missile", missile, &m, NULL);
return pid;
}
 
PID crea_soft_missile(int index)
{
SOFT_TASK_MODEL m;
PID pid;
 
soft_task_default_model(m);
soft_task_def_level(m,0);
soft_task_def_arg(m,(void*)index);
soft_task_def_periodic(m);
soft_task_def_period(m,MISSILE_PERIOD);
soft_task_def_wcet(m, MISSILE_WCET);
soft_task_def_met(m,MISSILE_MET);
 
pid = task_create("soft_missile", missile, &m, NULL);
return pid;
}
/demos/tags/demos-021001/bca/readme
0,0 → 1,11
Hi,
 
This is a nice simulation made by Fabio Calabrese
(fabiocalabrese77@yahoo.it).
 
Documentation is also available in PDF form on the shark website (only
in italian, sorry).
 
Enjoy
 
PJ
/demos/tags/demos-021001/bca/bca_raw/esplo5.raw
0,0 → 1,65
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ)&ÿÿÿÿÿÿÿÿÿ
ÿÿÿÿÿÿ+*#!
.*%ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ):'+) :-65/1&&ÿÿÿÿÿÿ *-"&* %!&$)"%+-&% &!+% )& ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  
+.(B= 7342)&
+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  $)&.(:/G7'H7/@3-) 62&+*EE HJ MRNSHNOS2JN7Y\K<=/0/@@('&
+/,")# +#?4 i]GcU:i[6}nEmEƒuDzo-xr(^ZDB :6'%30//36 279=BE `a7**!*'1-KH7*'ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
+&QC(eW2o`9E4]M,QE[Uzv9eb/63#!  +*#%47
+$&#"ÿÿÿÿÿÿ
+F:*bR80 ! 
+ÿÿÿÿÿÿ+%/1)692:0*,#"
+ ÿÿÿÿÿÿ
+%+!*%! ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ0&%"   , ÿÿÿÿÿÿ3-7IBJHBF@;7((ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ (#C<4>6)RD9=$/   6&ÿÿÿÿÿÿ
+-(/A:A824>;6!!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
+*7%ÿÿÿ
+*&'! ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ &G99C41YGCG3*>7+ !-,( 2-'*&##ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ;+,J::6$"Q<7/ 6
+ ,%
+!
+# 50,(#!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ =20>0-PA>J84M32>"!4*! ! ÿÿÿ940 +&# ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ,$!@72RID]RLJ<9R>?E13<)-/"7&.7'1ÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,)$,'!@<3G@8H?:C867++/%$;125,-+%'ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ"(#=849612/*$#)($ÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ"#%&;<445-692 ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
+%(!'*#%(! ÿÿÿÿÿÿ 
+ÿÿÿÿÿÿ !ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
+  "!ÿÿÿ
+
+ 
+ *' 52+=:5A@;43.ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
+
+
+ +'-) '#HE<LIB[[SGG?('"ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
+/&.%"  ÿÿÿÿÿÿÿÿÿÿÿÿ!# *+&A@;DA:;8/GE9ÿÿÿ XUD€}l™–…‡„s‘€‰‡x‡…x…ƒw|ypjjb?>9 %%"6,"I<3dSIucWeSG-$ 
+*
+""*)$ÿÿÿÿÿÿÿÿÿ
+('#@?;GFBVUQWTOROJgd]…‚{|u‡„}‡„}{xsyura\Ysig‘ƒ€‰vo‘{nƒjV|bG~dA‚kA„o@n^-[OOG,%
+ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
+
+ ÿÿÿÿÿÿ '$ÿÿÿÿÿÿÿÿÿ"
+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
/demos/tags/demos-021001/bca/bca_raw/missile2.raw
0,0 → 1,0
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€€€ÿÿÿÿÿÿÿÿÿÀÀÀÀÀÀ€€€ÿÿÿÿÿÿÀÀÀ€€€€€€ÿÿÿÿÿÿÀÀÀÀÀÀ€€€ÿÿÿÀÀÀ€€€€€€ÀÀÀÀÀÀ€€€ÀÀÀ€€€€€€ÀÀÀÀÀÀ€€€ÿÿÿ€€€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
/demos/tags/demos-021001/bca/bca_raw/sfondo.raw
0,0 → 1,136
+R*\0`0`,d,i1f9h9k<"n;&p<&t>$xA#{E#zDwCl>_6V.R,T.Z1b2
+= > “@•B˜B˜BšBšB‡?ŠAC–E˜F–E’DBˆ@€;{7x8v9q8p:s=#m4j1i1j4h4f2e2h5"L*}H(yB$w?$zA&{B%}B${@ w4r2m/h-h-j-m,m*m; o<p;o8p5p4t3u5M& O( T,U0V2U1R0Q.q1r0t2w4|7€;…> ‡@"“B=‹9
+m7+n8,o9-o9-n8,k5)h2&f0$V0#W1$W3'W3'T2(S1(P/&O.%[1!Z0 W0!X1"Y1%Y1'W/'U-%R."V/ Z0 ]2!^3"Z3$X2%V2&o.u3€8Š>–BŸF¨IªJšCšC–B‘@>‰>‡=†<ƒA~<y7z:?ƒB"ƒB$€?#n6k5i5l9$s?)xB(zA${>!u7*u6'u3#w4$}5&‚9(ˆ;)Š=+–>”?’=<‹8†5
+K.O0O0{A‚F!‡I"ˆGG”I!•F’ADDŒC‹B‡@‚<8|6€:};z;s:o8n7o7r8J5G2B.A,@.@->-=,r8,n4(g/ b*^)`+b/e2V0#U/"S/!S/!S/#S1%V4(W5)`*b,a-`-^.]._0a3#d*h.#m3(q7,r8-o5*k1&h.#s7s7t8s9!r:!q9"n8 n8 w8{<|? x=p7m3m5q8$q9r9u:u:s:p: l:#h9%t2w8&t9)g1%],%Y-*U--N*,J%V-a4j5u9ƒ?‡>„8‡8‰<Œ?‹Aˆ?…=‚;‚:!Š8‰;†=={:z;~?ƒC > {;u8s7p7#o7&j5'g3%|8z6z6}9=„@‚>;x9x7x4y3y4v3q2l1e,h0m4s7v9y7x6 x4!p4p4p4o6p7o7l4i3l7l6k7k9"j:#j:#i<g<g4i6n9r9v;z;|<{;u4|<…FŠMˆKƒFA}>q5q7p:l;g9^6U1P-P2N0M.M.M-N.N-N-_9`5e4o6}:†;ˆ7ˆ4z9<†>Œ@ ‘B
+ˆ6;==;‰@‰>‹;‹;Š;‡;ƒ:}8…;†<…=ƒ>=};z8x6u8t7r6r6q8p7n6l4s9!r8"r7%r7%r9&r:#s; t=t<%t<%t<%t>&t>&t>&t>&t>&~A/{>)w;!t9s8v;{?#~B(~F%}E"{C {@{@|BCE!{CzEyFtEk?_8W2R.@$#@$#>!#968?%F-z5„<’EžL¤O¥N¥O¤M™C
+¥H  K
+‹CD‹B‹? ‰= y?'v<$p8!k4h4j7$n;(o>-t2v4x7y8y8v5s1q/f-j1 j1 f-h/n5$n5$i0a-h1
+M'Q+Y0`3 d5!h9o> sA †E‰I#M'ŽO&K$‘G •E ™G"¤L¡IžEšC˜@•@–A–A‡MˆN‚Js?c7W2L-D*@((;%'9%'8'-4'./#--#..&37#"8$#9%$;'&=)(?+*A-,B.-G"J#M&U,\3!d9&j?,pC.n>n>l?k=h<d8_4]2H$
+£B ¢C ŸB œ?›< =©A
+i4m8i6f4d3T2]6j:s=u=p;i<f;R) W, ^0h6q9z<~=€<y>v;r7m6j7i8f7d7b:!`7!`6 b8"g:%j;'j:&h7&dA+c=&f:g8k:k<"j=(g>*o?j:h8k;qAsCm=g7_;_:];];"^<#a<"f<#i;!n<o=v@{C~C|?}>A|?~A}@x=y?{C zA#t=}D~E~FzEwAu>v? yA&pElAj=l?tEvGtCp?U5(P0%O.'Q0+Q/-N-(O,&Q/&\39c57m84t80v7.p5/g1/_//dE3cD0dA-d@*g>(l@'pB(rC)xDt?n;j8g9!g:#d:!b;_3^2^0a3f7k9 l9j7`8b6c4i4j5h5d2_1[;0Y9.W7,V6+U5*S3(O/$M-"e6c5`3]2_2`1c0g0_9$a8"g=%nB)pB(p?!r? vC$q@rA!rA#n?#o@&rB+oA)j<%y;|AFH{Ds=l7i3€D(|@&w>#v<$w='v<&s9%p6"c.b-g/"l2&n2'o1"t5#z<'x-~/Š3–<
+…C!‡G$‹K'M'ŠJ$ƒE|?w:d@*`;(Y5%T2&T2(T4)R5'R5%a8$a8$b9#e=#g@#kB$lC#lD!pH.qG.tH-wI/xJ0wH.rB+n>'u<v= v= u<t;u<x?"{B%k6(i5(g5*e5+h6+l8+r:+v;+„<„<ˆ@F‘F‘D”G™J•H™LœN LŸN¢P žL™E I IœJ–H‘GŽEŠFˆE˜?!–?#•?&='ˆ:&„6)ƒ7*7,i;!b3`.e.i/j,i* h)-ƒ.Š2
+¬I¬I­K­K
+§M§M¥K £I
+¦H ©J
+@’B“C’B’B“C”D†C&ƒB$?#}=!~?‚@‰DF†J(„G(†I*ˆK,‡L,„I)†K+‹P0—V0—W1”V1ŽT/ŠT0ŠU3„S2~M-¡VŸSŸQ!¡S%¥T'§U&¥T£RŸZ!œW™TšU›U!œV#™S –P—I“F’DC!‹?„9„:ˆ>€5~6 ~7#z7&y7'z8(};+>.„A‡DH’K!“K#‘G ŽC‹@…G …G"‡F&‰H*‹J*‹K(ŠI#ˆG’L’N”O%’O%ŽL)ŒK+ŒM.O3‡JƒH }E {E#{E#€D ‚B„Av=*|C0€G4~E2v=*r9&s:'w>+}<(y:(v9's9%w:%?$†D$‹F%“F’E“F”J”J’H”K™P#¢Q¢R›O’JŒJ‰JƒH|CŠP ‡JƒD‚@‡AŠB‹B‹AC‹?ˆ<Œ@”F"˜H%–F#’BˆG‹J L"ˆIB|?~ADxD
+|GK‚L €KKKN|L|J|GƒGL•P™QœQžQšM–J˜L•KFŒCŒCG"|D!vA"n<#j:#m:%p<&s=%nA i<f9j=rE$vI(sF%nA pArCsCsB!sB!tDxIzKƒT €PM…L‹N"ŽM%ŽJ#ŒF"|IKŠL'K+H)ˆF$ƒE E†B‰EIK!L"I"‰E†Bu?t?s>q;o7p6t6v8€<:‚;ˆ>!Š? ‹?B—HœNŸQ ¢T#¢U! S¢S¥V¨Y!«M­O­N ¬L"©I©J©M«O•T6“R4”O0—P0R2£T3¥U2¦S1Q*ˆM%‡K&ˆN)ˆM+‚J)F(H*HŠG„D €A ~A$A%…D&ˆE(™F(—D&•B$”A#“@"’?!<:’D’C"‘B$?$Ž>#@"“D#–H"JGG‚E„E†E‡D‡B€F…HŒH!F#ŒC ŠB…BƒCo>o>p= q>!r?"s@#v@&wA'žF ¡I#£K%¥K&¥L$¨L#¬O$°Q%«Q¨NªMªL©J¤E ¥G «L
+¢S£S¡Q ¡N
+¬G±J´K¨I«L
+–C›HKK›H™F˜E£L¢M¡KœI˜F”D‘C‘C„:„<‚<ƒ=„?‹B”GšL@
+‡:>’@’@Š@E”J—M–M “J’I‘HS.T/T.S-T+U,Z0]3S*T+U,U*T*W*Y,\.X0X/Y0Y/W-U,R)Q)`-a.c1d2e4e3e3e3h;&g:'f9&d6&b4$a3$a3$a3&l<&j<%h:#h:#i<%j=&h>&g=%†>‡?†@†?ƒ?<~;}:†?‚=€;:;~:z9x7u6u6v6v6w5y5y5y5q3
+~7 8
+8
+ªC ¢?>žA£D
+HœJ˜HC‚?{=z<{={?z@w@t>p<l;xA,n;&a4[2Y5Z5"Y4"W0P2R2T2Y1]1c2d1g2n:r<{>…CH“J”K“J¡QQ•N‹I‚CA€A‚C€Az;t5 t5 z;€A‚CƒB‡;
+’A “@
+“@
+žM˜I‘E‹D‡C„C#ƒC'wAv@t? p<$m:%j:$j:#i;#[2\3]3[1\/\0`2b4m7l8 k9i:f8c6_4#^3#A*F,K.O.P,L+J+H,Q,V1_8f=!i="h: e7d5m; o<t? y@"B!†D"ŠF#G#”R ˜RŸT¥V©W¨V£QŸN‘<Œ;†: €9}8|8|8}7Š>&†8!‚5…5Š9Ž="< ;ƒG#„H$…I%‡K&ŠL'ŠL'ŠL'ŠL%‹E
+‡6 ˆ7 ‹:‘E‘E’FF‘G‘I‘I’J™G™GšF˜E‘D‡>{8s3P+H'>"8!9&>+$A.'C/&V*[- a2"j7"p="v? yA{A@‚A…A‡DˆC‰D‹D‹DqA*tB'vC$xC#tA"o=$h9'c7*s:u:t9t9t7t7u6u6q9s8r6s5s5v6w8x9v5x7{8{8{6z5{4|5ƒ8…:ˆ<Š?‹@?Œ>Œ=w:|;€: :ƒ9:‚=?‹8=•B“A=Š;Œ=@‡<ˆ=‡=‡?†A‡B‡C…D™I˜F—E—F•FE ˆC"ƒB$i/d-\+U*P)P)P)P*A,B-D/G1K3O6Q9R:o9r:u<z=?ƒ?…@‡?‘> –A ›E
+r6q5n3j.h*h*i+k-o3x9‚>…<‚8‚8ˆAIŠ@ŒBD’F
+„G„H„HŒA‹A„?|;v6u4v5z8~?}@#{?%t:&m4!j1l2p3 v9|@B!?y7{7‚>ŠF!:€9…:Š;‘<—> š? @!¤QŸM•HF„D {@ o9e2Q/%T0$X0$[1!\1!Y/!T.!R-$T,"U-#V.$V.$U-#U-#Y/#[1%S.%R-$R-$S-$T,"U-#X."Y/#p4p4p4n5o7q9 r<$s=%ˆ6Ž<•B—B—>—<›?ŸCŠ>‹?‹@ B"B"D$D$ŒC#”D#‘A Œ>‰;‡<‰?CŽFc5(_4+Y2-R0.N/-M-.O0.S1/r2t6t<%q=(o:(p8's:'y<)r7r7q6n3j/k.q2u6r9(r7't5$v3"{2~13ƒ2‰9ˆ8Š:?”D!•E"’B@“B•C—C™C—A’><‰:‰>‹ACCŠ@ˆ>†<†<ŠA‹AŒBAD“E•H—H¡< ¢<#£?%¤@(£A(£@) @( @(Š?B‘DŽ@‹: ‹9 = •B‰?"†?!„=!€: z7u3r0p.R)#X/)\6-\6-W1&P,M)M)w0t1q1o3n4o5t8 u9f(e-d0c3c3g3m3q3‚F,~E*zB'xB&yD%|E'~E(E)k=l;k9h6h4h2 h1
+h1
+4 w3z23†4‹7Œ8 Š6†5p=*p=,l;*e7']2"V/ S.Q-S.%V1([5*_8)a8&a6#`3_1h3i3k5m9!p>'s@+r?,o?+…A†=‡:Œ;=”A—E–E{?y>v;m4e-]' X%
+c2#c2#a0!],X'S"Q Q c/c/e1f2g3g3g3g3q9"q9"r:#p8!o7 n6p8!r:#s=%p<$m;$j:$h9%d7$^3"[0 M3J0F,E+E+F,F,F,M(R-V1T/U0W2X3 V1Z+\,b-g.h/h/f/d0p9%p7$r4%t5&v6*u7*r8,o7*i8'k:)n;(o:(p9%p7$r8$t:&€?~={:z6x4w2w2w2y:x8u8t8 r8"o6#k3"h0e2/_/+X-'T,$R,!U*!V'V&U!Y%`+f/k2q4u7 w9"†;‡<‰>‹@ŒABBBy=#y=#x<"u9q5o3p4q5g<c8]4Y2R.N,G'C$V*+S'(Q%&P$%P$%P$%O#$M!"V$%[)*]+,Y'(V$%V$%V$%S!"= B!I$M&!R)#R,#R-$P.$Z6Z3Z1\0^2]3Z4X4t2x3{5€65†6Š8Œ:n@(k?&i<%g:'d9(d9)c9+c9-i9#g7#e5!c4"a2"^. X*T%V%(P"$H E"H%N)#T+%Y,'k3"o6#t:&z<%~;!€9‚9„9g0g0h1i2i2h1h1g0u5w7x8x8w7x8{;}=!Š5 †4‚1€1 3%}5'z4(y3)t3r1q0r1t3u4 t3r1s3y9}="z:y9z:{; z:p: s9!w9 y9 y7v6r5o4|: {8{4{2|3"{3$w4#s4#b7'f8(j;+n;*r:)u:(y<)}>,
\ No newline at end of file
/demos/tags/demos-021001/bca/bca_raw/aereo1.raw
0,0 → 1,0
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
/demos/tags/demos-021001/bca/bca_raw/cannon.raw
0,0 → 1,0
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ€€€ÀÀÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ€€€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ€€€ÀÀÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ€€€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ€€€ÀÀÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ€€€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ€€€ÀÀÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ€€€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÀÀÀÀÀ€€€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ€€€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ€€€€€€€€€€€€€€€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ€€€€€€€€€€€€€€€€€€€€€€€€€€€ÿÿÿÿÿÿÿÿÿÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ÿÿÿ
/demos/tags/demos-021001/bca/bca_raw/aereo2.raw
0,0 → 1,0
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
/demos/tags/demos-021001/bca/bca_raw/esplo1.raw
0,0 → 1,46
+
+ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ$#BB??-*ÿÿÿÿÿÿÿÿÿÿÿÿCB]_`b_b>Bÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ-+LLŠŒ'³¶C¹¹G›™2‚|.2)3&
+98»º.ÓË"åÎÈ¢Þ¡¹i­JÂR£*ÀXê¬øÑ
+ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ+!eQ•q··vڗʌà®Ú¡
+åŒ
+¨>—E‰NwUUD-'ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ9@
+BMAF_Ug
+-ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ+B_¬8+¤9ÁVÌY¸=“š©”Žž‚sM 'ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ$ 7 <>q
+uŽ‹%˜2 “› ™š¥™“
+r Q<
+  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿC
+h'x+¶^›=¦E•2t 76`€
+ £  
+‹k =%  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ)@ [“KÃx°f¸n”CaBF\‘ ‹„} W
+/ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ:
+e+¯w"ȕ"›­ƒ
+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2e1­‰(̯-Ä´±Ÿ‡j@) ÿÿÿ)>X [\
+&)
+" ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
+nr%½Â^®³=’•tx
+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
+'" ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
\ No newline at end of file
/demos/tags/demos-021001/bca/bca_raw/aereo1_h.raw
0,0 → 1,0
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
/demos/tags/demos-021001/bca/bca_raw/cannon_h.raw
0,0 → 1,0
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ€€€ÀÀÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ€€€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ€€€ÀÀÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ€€€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÀÀ€€ÀÀÀ€€€€€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÿÿÿÿ€ÀÀÀÀÀÀÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÿÿÿÿ€ÀÀÀÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÿÿÿÿ€€€ÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€€€€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÿÿÿÿ€€€€ÿÿÿÿ€€€€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ€€€ÿÿÿÿ€€€€ÿÿÿÿ€€€€ÿÿÿÿÿÿÿÿÿÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ€€€€€€€€€ÿÿÿÿ€€€€€€ÿÿÿÿ€€€€€€€€€€€€ÿÿÿ
/demos/tags/demos-021001/bca/bca_raw/esplo2.raw
0,0 → 1,92
+f|
+OY‡‰ŽŒ¬¤7†|qjif#'%/-.,'%(%ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(D@ &-8ÿÿÿÿÿÿÿÿÿ.S‚¢Á
+× Þ ë à ¨
+d9
+
+x`2*rh‡‚
+jCZD G7cW­¤½¹àãÞäÍÓÈ˾»Â¿ÄÇ´¹¹¼¿Ã
+ÿÿÿ82ztˆ}µœ(²Áo'”¥£¨
+£’† x+uAŽn%†t [KQDœ¹´ÜßÝä
+ÎÒÂÄüÌž½¾ÁÁÀÁ¸¸¹º¸» «¯ÿÿÿÿÿÿ 92us±±5ËÈ+×Æ!ë¿+õ¨6ÃP¢¦ ¡£œ•…#7_¢’ˆqfvk‹~³ªÊÊÒÖÎÐÀ¿Ä¼ÍľµÂ» ¼ º··´º¸ ¸¸