Changeset 102


Ignore:
Timestamp:
02/19/2009 04:20:23 PM (13 years ago)
Author:
marcus
Message:
  • removed ATARI code
  • cleanup of output channels (only left: memory, postscript, x-window)
Location:
SH_SHM/branches/marcus/source
Files:
22 deleted
14 edited

Legend:

Unmodified
Added
Removed
  • SH_SHM/branches/marcus/source/basecnst.h

    r101 r102  
    6969 * SH_SETUP_AIX 
    7070 * SH_SETUP_HPUX 
    71  * SH_SETUP_ATARITOS 
    72  * default is SH_SETUP_SUNOS 
     71  * default is SH_SETUP_SUNOS 
    7372 */ 
    7473 
     
    8584#define cBc_OS_UNIX 
    8685#define cBc_OS_HPUX 
    87 #elif defined(SH_SETUP_ATARITOS) 
    88 #define cBc_OS_ATARITOS 
    89 #define BC_ATARI          /* for compatibility */ 
    9086#else 
    9187#define cBc_OS_UNIX 
     
    10298 
    10399/* select graphics */ 
    104 /* #define BC_G_GEM */ 
    105100#define BC_G_MEM 
    106101#define cBc_G_MEM 
    107 /* #define BC_G_BGI */ 
    108102#define BC_G_POSTSCRIPT 
    109103#define cBc_G_POSTSCRIPT 
    110 /* #define BC_G_DESKJET */ 
    111104#define BC_G_XWINDOW 
    112105#define cBc_G_XWINDOW 
    113 /* #define BC_G_CALCOMP */ 
    114 #define BC_G_HPGL 
    115 #define cBc_G_HPGL 
    116 /* #define BC_G_VWS */ 
    117 /* #define BC_G_TEK */ 
    118106 
    119107/* general flags */ 
     
    146134        /* type clock_t is available */ 
    147135 
    148  
    149  
    150  
    151 /****************************************************************** 
    152  ***                        ATARI version                       *** 
    153  ******************************************************************/ 
    154  
    155  
    156  
    157 #ifdef BC_ATARI 
    158  
    159 #define BC_KS_PRIVATE 
    160         /* K.S. private ATARI TT030/8 MultiGEM version */ 
    161  
    162 /* #define BC_SHARE_CPU */ 
    163         /* share CPU time by calling AES routine evnt_timer */ 
    164         /* only in combination with BC_KS_PRIVATE ! */ 
    165         /* only together with DEBUG_SHARE_CPU in module syscall.c, */ 
    166    /* because also used in module gemevent.c */ 
    167  
    168 /* include files */ 
    169 #define BC_SYSBASE "E:\PC\sh\source\SYSBASE.H" 
    170 #define BC_SYERRORS "E:\PC\sh\source\SYERRORS.H" 
    171 #define BC_GCUSRDEF "E:\PC\sh\source\newgraph\GCUSRDEF.H" 
    172 #define BC_FOREIGN "E:\PC\sh\source\SHFRGN.H" 
    173 #define BC_SHDIRS "E:\PC\sh\source\SHDIRS.H" 
    174 #define BC_ASCII "E:\PC\sh\source\ASCII.H" 
    175 #define BC_GRAPHBAS "E:\PC\sh\source\newgraph\GRAPHBAS.H" 
    176 #define BC_SHCONST "E:\PC\sh\source\SHCONST.H" 
    177 #define BC_FOUSRDEF "e:\PC\sh\source\fousrdef.h" 
    178 #define BC_QFUSRDEF "e:\PC\sh\source\qfusrdef.h" 
    179 #define BC_QFERRORS "e:\PC\sh\source\qferrors.h" 
    180 #define BC_CPAR "e:\PC\util\cpar.h" 
    181 #define BC_EARTHLOC "e:\PC\sh\source\earthloc.h" 
    182 #define BC_UTUSRDEF "e:\PC\sh\source\utusrdef.h" 
    183 #define BC_GLUSRDEF "e:\PC\sh\source\glusrdef.h" 
    184 #define BC_TCUSRDEF "e:\pc\sh\source\tcusrdef.h" 
    185 #define BC_INPFILES "e:\PC\util\inpfiles.h" 
    186 #define BC_DFQENTRY "e:\PC\sh\source\dfqentry.h" 
    187 #define BC_ERUSRDEF "e:\PC\sh\source\erusrdef.h" 
    188 #define BC_FLERRORS "e:\PC\sh\source\flerrors.h" 
    189 #define BC_READGRN "e:\PC\sh\source\readgrn.h" 
    190 #define BC_PTUSRDEF "e:\PC\sh\source\ptusrdef.h" 
    191  
    192  
    193 #endif /* BC_ATARI */ 
    194136 
    195137 
  • SH_SHM/branches/marcus/source/errmsg.c

    r101 r102  
    113113                        strcpy( emv_errdir, eptr ); 
    114114                } /*endif*/ 
    115 #               endif 
    116 #               ifdef BC_ATARI 
    117                 strcpy( emv_errdir, "e:\\pc\\sh\\errors\\" ); 
    118115#               endif 
    119116        } /*endif*/ 
  • SH_SHM/branches/marcus/source/gmusrdef.h

    r16 r102  
    137137 * 
    138138 * parameters of routine 
    139  * int        wdw;       input; wdw number (dummy in the ATARI version) 
     139 * int        wdw;       input; wdw number 
    140140 * int        style;     input; style block number 
    141141 * char       item[];    input; name of attribute 
  • SH_SHM/branches/marcus/source/newgraph/Makefile

    r20 r102  
    1616LIB_GRAPH       =       $(SH_LIB)libgraph.a 
    1717 
    18 LOCAL_SRCS      =       graphch.c hpch.c memch.c memfile.c psch.c xwch.c 
     18LOCAL_SRCS      =       graphch.c memch.c memfile.c psch.c xwch.c 
    1919#LOCAL_OBJS     =       $(LOCAL_SRCS:%.c=%.o) 
    2020LOCAL_OBJS      =       $(LOCAL_SRCS:.c=.o) 
  • SH_SHM/branches/marcus/source/newgraph/gcusrdef.h

    r16 r102  
    2121 
    2222/* channel bits */ 
    23 #define GCF_GEM       0x100 
    2423#define GCF_MEM       0x200 
    2524#define GCF_PSF       0x400 
    26 #define GCF_DJ        0x800 
    27 #define GCF_BGI       0x0000 
    28 #define GCF_CALCOMP   0x4000 
    29 #define GCF_TEK       0x8000 
    30 #define GCF_VWS       0x80 
    3125#define GCF_XWDW      0x2000 
    32 #define GCF_HPGL      0x20 
    3326#define GCF_STDCH     0x10        /* standard text channel */ 
    3427#define GCF_FILE      0x00        /* text file channel */ 
    3528#define GCF_NOECHO    0x40        /* no echo bit */ 
    3629#define GCF_EXTERN    0x1000      /* external routine */ 
    37 #define GCF_ALLCHAN   (GCF_GEM|GCF_MEM|GCF_PSF|GCF_DJ|GCF_BGI|GCF_CALCOMP|GCF_TEK|GCF_VWS|GCF_XWDW|GCF_HPGL)      /* all channels */ 
     30#define GCF_ALLCHAN   (GCF_MEM|GCF_PSF|GCF_XWDW)      /* all channels */ 
    3831#define GCF_NUMMASK   7 
    3932 
     
    487480/*------------------------------------------------------------------------*/ 
    488481 
    489 #ifdef BC_KS_PRIVATE 
    490 #ifdef BC_G_GEM 
    491 void gm_pixhardcopy( int wdw, int mag, char outfile[] ); 
    492 #define gc_pixhardcopy(w,m,f) gm_pixhardcopy(w&GCF_NUMMASK,m,f) 
    493 #else 
    494 #define gc_pixhardcopy(w,m,f) 
    495 #endif 
    496 #endif 
    497  
    498  /*------------------------------------------------------------------------*/ 
    499  
    500 #endif  /* __GCUSRDEF */ 
     482/*#endif  /* __GCUSRDEF */ 
  • SH_SHM/branches/marcus/source/newgraph/graphch.c

    r16 r102  
    1616#include BC_SYSBASE 
    1717#include "graphbas.h" 
    18 #include "gmusrdef.h" 
    1918#include "mmusrdef.h" 
    2019#include "psusrdef.h" 
    21 #include "ccusrdef.h" 
    22 #include "tkusrdef.h" 
    23 #include "hpusrdef.h" 
    24 #include "djusrdef.h" 
    25 #include "bgusrdef.h" 
    2620#include "xwusrdef.h" 
    27 #include "vwusrdef.h" 
    2821#include BC_GCUSRDEF 
    2922 
     
    7972        } /*endif*/ 
    8073 
    81         if  (GCF_GEM & map)  { 
    82                 gm_init( map & WDWMASK, attribs, xlo, ylo, width, height, status ); 
    83                 if  (Severe(status))  return; 
    84                 gcv_initmap |= GCF_GEM; 
    85         } /*endif*/ 
    86  
    8774        if  (GCF_XWDW & map)  { 
    8875                xw_init( map & WDWMASK, attribs, xlo, ylo, width, height, status ); 
     
    9178        } /*endif*/ 
    9279 
    93         if  (GCF_BGI & map)  { 
    94                 bg_init( map & WDWMASK, attribs, xlo, ylo, width, height, status ); 
    95                 if  (Severe(status))  return; 
    96                 gcv_initmap |= GCF_BGI; 
    97         } /*endif*/ 
    98  
    9980        if  (GCF_MEM & map)  { 
    10081                mm_init( map & WDWMASK, status ); 
     
    10990        } /*endif*/ 
    11091 
    111         if  (GCF_CALCOMP & map)  { 
    112                 cc_init( attribs, xlo, ylo, width, height, status ); 
    113                 if  (Severe(status))  return; 
    114                 gcv_initmap |= GCF_CALCOMP; 
    115         } /*endif*/ 
    116  
    117         if  (GCF_TEK & map)  { 
    118                 tk_init( attribs, xlo, ylo, width, height, status ); 
    119                 if  (Severe(status))  return; 
    120                 gcv_initmap |= GCF_TEK; 
    121         } /*endif*/ 
    122  
    123         if  (GCF_HPGL & map)  { 
    124                 hp_init( attribs, xlo, ylo, width, height, status ); 
    125                 if  (Severe(status))  return; 
    126                 gcv_initmap |= GCF_HPGL; 
    127         } /*endif*/ 
    128  
    129         if  (GCF_DJ & map)  { 
    130                 dj_init( attribs, xlo, ylo, width, height, status ); 
    131                 if  (Severe(status))  return; 
    132                 gcv_initmap |= GCF_DJ; 
    133         } /*endif*/ 
    134  
    135         if  (GCF_VWS & map)  { 
    136                 vw_init( map & WDWMASK, attribs, xlo, ylo, width, height, status ); 
    137                 if  (Severe(status))  return; 
    138                 gcv_initmap |= GCF_VWS; 
    139         } /*endif*/ 
    140  
    14192} /* end of gc_init */ 
    14293 
     
    157108        /* executable code */ 
    158109 
    159         if  (GCF_GEM & map) 
    160                 gm_exit( map & WDWMASK ); 
    161  
    162110        if  (GCF_XWDW & map) 
    163111                xw_exit( map & WDWMASK ); 
    164  
    165         if  (GCF_BGI & map) 
    166                 bg_exit( map & WDWMASK ); 
    167112 
    168113        if  (GCF_MEM & map) 
     
    172117                ps_exit(); 
    173118 
    174         if  (GCF_CALCOMP & map) 
    175                 cc_exit(); 
    176  
    177         if  (GCF_TEK & map) 
    178                 tk_exit(); 
    179  
    180         if  (GCF_HPGL & map) 
    181                 hp_exit(); 
    182  
    183         if  (GCF_DJ & map) 
    184                 dj_exit(); 
    185  
    186         if  (GCF_VWS & map) 
    187                 vw_exit( map & WDWMASK ); 
    188  
    189119} /* end of gc_exit */ 
    190120 
     
    204134        /* executable code */ 
    205135 
    206         gm_finish(); 
    207136        xw_finish(); 
    208         bg_finish(); 
    209137        mm_finish(); 
    210138        ps_finish(); 
    211         cc_finish(); 
    212         tk_finish(); 
    213         hp_finish(); 
    214         dj_finish(); 
    215         vw_finish(); 
    216139        gcv_initmap = 0; 
    217140 
     
    238161        /* executable code */ 
    239162 
    240         if  (GCF_GEM & map)  { 
    241                 gm_resizewdw( map & WDWMASK, xpos, ypos, width, height, status ); 
    242                 if  (Severe(status))  return; 
    243         } /*endif*/ 
    244  
    245163        if  (GCF_XWDW & map)  { 
    246164                xw_resizewdw( map & WDWMASK, xpos, ypos, width, height, status ); 
     
    248166        } /*endif*/ 
    249167 
    250         if  (GCF_BGI & map)  { 
    251                 bg_resizewdw( map & WDWMASK, xpos, ypos, width, height, status ); 
    252                 if  (Severe(status))  return; 
    253         } /*endif*/ 
    254  
    255168        if  (GCF_PSF & map)  { 
    256169                ps_resize( xpos, ypos, width, height, status ); 
     
    258171        } /*endif*/ 
    259172 
    260         if  (GCF_CALCOMP & map)  { 
    261                 cc_resize( xpos, ypos, width, height, status ); 
    262                 if  (Severe(status))  return; 
    263         } /*endif*/ 
    264  
    265         if  (GCF_TEK & map)  { 
    266                 tk_resize( xpos, ypos, width, height, status ); 
    267                 if  (Severe(status))  return; 
    268         } /*endif*/ 
    269  
    270         if  (GCF_HPGL & map)  { 
    271                 hp_resize( xpos, ypos, width, height, status ); 
    272                 if  (Severe(status))  return; 
    273         } /*endif*/ 
    274  
    275         if  (GCF_DJ & map)  { 
    276                 dj_resize( xpos, ypos, width, height, status ); 
    277                 if  (Severe(status))  return; 
    278         } /*endif*/ 
    279  
    280         if  (GCF_VWS & map)  { 
    281                 vw_resizewdw( map & WDWMASK, xpos, ypos, width, height, status ); 
    282                 if  (Severe(status))  return; 
    283         } /*endif*/ 
    284  
    285173} /* end of gc_resizewdw */ 
    286174 
     
    301189        /* executable code */ 
    302190 
    303         if  (GCF_GEM & map) 
    304                 gm_popwdw( map & WDWMASK ); 
    305  
    306191        if  (GCF_XWDW & map) 
    307192                xw_popwdw( map & WDWMASK ); 
    308  
    309         if  (GCF_VWS & map) 
    310                 vw_popwdw( map & WDWMASK ); 
    311193 
    312194} /* end of gc_popwdw */ 
     
    329211        /* executable code */ 
    330212 
    331         if  (GCF_GEM & map) 
    332                 gm_setwdwname( map & WDWMASK, name ); 
    333  
    334213        if  (GCF_XWDW & map) 
    335214                xw_setwdwname( map & WDWMASK, name ); 
    336  
    337         if  (GCF_BGI & map) 
    338                 bg_setwdwname( map & WDWMASK, name ); 
    339  
    340         if  (GCF_VWS & map) 
    341                 vw_setwdwname( map & WDWMASK, name ); 
    342215 
    343216} /* end of gc_setwdwname */ 
     
    364237        /* executable code */ 
    365238 
    366         if  (GCF_GEM & map)  { 
    367                 gm_setstyle( map & WDWMASK, style, item, value, status ); 
    368                 if  (Severe(status))  return; 
    369         } /*endif*/ 
    370  
    371239        if  (GCF_XWDW & map)  { 
    372240                xw_setstyle( map & WDWMASK, style, item, value, status ); 
     
    374242        } /*endif*/ 
    375243 
    376         if  (GCF_BGI & map)  { 
    377                 bg_setstyle( map & WDWMASK, style, item, value, status ); 
    378                 if  (Severe(status))  return; 
    379         } /*endif*/ 
    380  
    381         if  (GCF_MEM & map)  { 
    382                 mm_setstyle( map & WDWMASK, style, item, value, status ); 
    383                 if  (Severe(status))  return; 
    384         } /*endif*/ 
    385  
    386244        if  (GCF_PSF & map)  { 
    387245                ps_setstyle( style, item, value, status ); 
    388                 if  (Severe(status))  return; 
    389         } /*endif*/ 
    390  
    391         if  (GCF_CALCOMP & map)  { 
    392                 cc_setstyle( style, item, value, status ); 
    393                 if  (Severe(status))  return; 
    394         } /*endif*/ 
    395  
    396         if  (GCF_TEK & map)  { 
    397                 tk_setstyle( style, item, value, status ); 
    398                 if  (Severe(status))  return; 
    399         } /*endif*/ 
    400  
    401         if  (GCF_HPGL & map)  { 
    402                 hp_setstyle( style, item, value, status ); 
    403                 if  (Severe(status))  return; 
    404         } /*endif*/ 
    405  
    406         if  (GCF_DJ & map)  { 
    407                 dj_setstyle( style, item, value, status ); 
    408                 if  (Severe(status))  return; 
    409         } /*endif*/ 
    410  
    411         if  (GCF_VWS & map)  { 
    412                 vw_setstyle( map & WDWMASK, style, item, value, status ); 
    413246                if  (Severe(status))  return; 
    414247        } /*endif*/ 
     
    439272        CSWAP(w,h) 
    440273 
    441         if  (GCF_GEM & map)  { 
    442                 gm_setcoo( map & WDWMASK, x, y, w, h, status ); 
    443                 if  (Severe(status))  return; 
    444         } /*endif*/ 
    445  
    446274        if  (GCF_XWDW & map)  { 
    447275                xw_setcoo( map & WDWMASK, x, y, w, h, status ); 
     
    449277        } /*endif*/ 
    450278 
    451         if  (GCF_BGI & map)  { 
    452                 bg_setcoo( map & WDWMASK, x, y, w, h, status ); 
    453                 if  (Severe(status))  return; 
    454         } /*endif*/ 
    455  
    456279        if  (GCF_MEM & map)  { 
    457280                mm_setcoo( map & WDWMASK, x, y, w, h, status ); 
     
    464287        } /*endif*/ 
    465288 
    466         if  (GCF_CALCOMP & map)  { 
    467                 cc_setcoo( x, y, w, h, status ); 
    468                 if  (Severe(status))  return; 
    469         } /*endif*/ 
    470  
    471         if  (GCF_TEK & map)  { 
    472                 tk_setcoo( x, y, w, h, status ); 
    473                 if  (Severe(status))  return; 
    474         } /*endif*/ 
    475  
    476         if  (GCF_HPGL & map)  { 
    477                 hp_setcoo( x, y, w, h, status ); 
    478                 if  (Severe(status))  return; 
    479         } /*endif*/ 
    480  
    481         if  (GCF_DJ & map)  { 
    482                 dj_setcoo( x, y, w, h, status ); 
    483                 if  (Severe(status))  return; 
    484         } /*endif*/ 
    485  
    486         if  (GCF_VWS & map)  { 
    487                 vw_setcoo( map & WDWMASK, x, y, w, h, status ); 
    488                 if  (Severe(status))  return; 
    489         } /*endif*/ 
    490  
    491289} /* end of gc_setcoo */ 
    492290 
     
    508306        /* executable code */ 
    509307 
    510         if  (GCF_GEM & map) 
    511                 return gm_aspectratio( map & WDWMASK ); 
    512  
    513308        if  (GCF_XWDW & map) 
    514309                return xw_aspectratio( map & WDWMASK ); 
    515  
    516         if  (GCF_BGI & map) 
    517                 return bg_aspectratio( map & WDWMASK ); 
    518310 
    519311        if  (GCF_PSF & map) 
    520312                return ps_aspectratio(); 
    521313 
    522         if  (GCF_CALCOMP & map) 
    523                 return cc_aspectratio(); 
    524  
    525         if  (GCF_TEK & map) 
    526                 return tk_aspectratio(); 
    527  
    528         if  (GCF_HPGL & map) 
    529                 return hp_aspectratio(); 
    530  
    531         if  (GCF_DJ & map) 
    532                 return dj_aspectratio(); 
    533  
    534         if  (GCF_VWS & map) 
    535                 return vw_aspectratio( map & WDWMASK ); 
    536  
    537314        return 1.0; 
    538315 
     
    558335        CSWAP(x,y) 
    559336 
    560         if  (GCF_GEM & map) 
    561                 gm_moveto( map & WDWMASK, x, y ); 
    562  
    563337        if  (GCF_XWDW & map) 
    564338                xw_moveto( map & WDWMASK, x, y ); 
    565  
    566         if  (GCF_BGI & map) 
    567                 bg_moveto( map & WDWMASK, x, y ); 
    568339 
    569340        if  (GCF_MEM & map) 
     
    572343        if  (GCF_PSF & map) 
    573344                ps_moveto( x, y ); 
    574  
    575         if  (GCF_CALCOMP & map) 
    576                 cc_moveto( x, y ); 
    577  
    578         if  (GCF_TEK & map) 
    579                 tk_moveto( x, y ); 
    580  
    581         if  (GCF_HPGL & map) 
    582                 hp_moveto( x, y ); 
    583  
    584         if  (GCF_DJ & map) 
    585                 dj_moveto( x, y ); 
    586  
    587         if  (GCF_VWS & map) 
    588                 vw_moveto( map & WDWMASK, x, y ); 
    589345 
    590346} /* end of gc_moveto */ 
     
    610366        CSWAP(x,y) 
    611367 
    612         if  (GCF_GEM & map) 
    613                 gm_drawto( map & WDWMASK, style, x, y ); 
    614  
    615368        if  (GCF_XWDW & map) 
    616369                xw_drawto( map & WDWMASK, style, x, y ); 
    617  
    618         if  (GCF_BGI & map) 
    619                 bg_drawto( map & WDWMASK, style, x, y ); 
    620370 
    621371        if  (GCF_MEM & map) 
     
    624374        if  (GCF_PSF & map) 
    625375                ps_drawto( style, x, y ); 
    626  
    627         if  (GCF_CALCOMP & map) 
    628                 cc_drawto( style, x, y ); 
    629  
    630         if  (GCF_TEK & map) 
    631                 tk_drawto( style, x, y ); 
    632  
    633         if  (GCF_HPGL & map) 
    634                 hp_drawto( style, x, y ); 
    635  
    636         if  (GCF_DJ & map) 
    637                 dj_drawto( style, x, y ); 
    638  
    639         if  (GCF_VWS & map) 
    640                 vw_drawto( map & WDWMASK, style, x, y ); 
    641376 
    642377} /* end of gc_drawto */ 
     
    661396 
    662397        CSWAP(x,y) 
    663  
    664         if  (GCF_GEM & map) 
    665                 gm_setpixel( map & WDWMASK, style, x, y ); 
    666398 
    667399        if  (GCF_MEM & map) 
     
    698430        if  (cnt < 2)  return; 
    699431 
    700         if  (GCF_GEM & map)  { 
    701                 gm_arrayplot( map & WDWMASK, style, cnt, red, xoff, xinc, 
    702                         yoff, yarr, yzoom, status ); 
    703                 if  (Severe(status))  return; 
    704         } /*endif*/ 
    705  
    706432        if  (GCF_XWDW & map)  { 
    707433                xw_arrayplot( map & WDWMASK, style, cnt, red, xoff, xinc, 
     
    710436        } /*endif*/ 
    711437 
    712         if  (GCF_BGI & map)  { 
    713                 bg_arrayplot( map & WDWMASK, style, cnt, red, xoff, xinc, 
    714                         yoff, yarr, yzoom, status ); 
    715                 if  (Severe(status))  return; 
    716         } /*endif*/ 
    717  
    718438        if  (GCF_MEM & map)  { 
    719439                mm_arrayplot( map & WDWMASK, style, cnt, red, xoff, xinc, 
     
    728448        } /*endif*/ 
    729449 
    730         if  (GCF_CALCOMP & map)  { 
    731                 cc_arrayplot( style, cnt, red, xoff, xinc, yoff, yarr, 
    732                         yzoom, status ); 
    733                 if  (Severe(status))  return; 
    734         } /*endif*/ 
    735  
    736         if  (GCF_TEK & map)  { 
    737                 tk_arrayplot( style, cnt, red, xoff, xinc, yoff, yarr, 
    738                         yzoom, status ); 
    739                 if  (Severe(status))  return; 
    740         } /*endif*/ 
    741  
    742         if  (GCF_HPGL & map)  { 
    743                 hp_arrayplot( style, cnt, red, xoff, xinc, yoff, yarr, 
    744                         yzoom, status ); 
    745                 if  (Severe(status))  return; 
    746         } /*endif*/ 
    747  
    748         if  (GCF_DJ & map)  { 
    749                 dj_arrayplot( style, cnt, red, xoff, xinc, yoff, yarr, 
    750                         yzoom, status ); 
    751                 if  (Severe(status))  return; 
    752         } /*endif*/ 
    753  
    754         if  (GCF_VWS & map)  { 
    755                 vw_arrayplot( map & WDWMASK, style, cnt, red, xoff, xinc, 
    756                         yoff, yarr, yzoom, status ); 
    757                 if  (Severe(status))  return; 
    758         } /*endif*/ 
    759  
    760450} /* end of gc_arrayplot */ 
    761451 
     
    776466        /* executable code */ 
    777467 
    778         if  (GCF_GEM & map) 
    779                 gm_erase( map & WDWMASK ); 
    780  
    781468        if  (GCF_XWDW & map) 
    782469                xw_erase( map & WDWMASK ); 
    783  
    784         if  (GCF_BGI & map) 
    785                 bg_erase( map & WDWMASK ); 
    786470 
    787471        if  (GCF_MEM & map) 
     
    790474        if  (GCF_PSF & map) 
    791475                ps_erase(); 
    792  
    793         if  (GCF_CALCOMP & map) 
    794                 cc_erase(); 
    795  
    796         if  (GCF_TEK & map) 
    797                 tk_erase(); 
    798  
    799         if  (GCF_HPGL & map) 
    800                 hp_erase(); 
    801  
    802         if  (GCF_DJ & map) 
    803                 dj_erase(); 
    804  
    805         if  (GCF_VWS & map) 
    806                 vw_erase( map & WDWMASK ); 
    807476 
    808477} /* end of gc_erase */ 
     
    829498        CSWAP(x,y) 
    830499 
    831         if  (GCF_GEM & map) 
    832                 gm_text( map & WDWMASK, style, x, y, text ); 
    833  
    834500        if  (GCF_XWDW & map) 
    835501                xw_text( map & WDWMASK, style, x, y, text ); 
    836  
    837         if  (GCF_BGI & map) 
    838                 bg_text( map & WDWMASK, style, x, y, text ); 
    839502 
    840503        if  (GCF_MEM & map) 
     
    844507                ps_text( style, x, y, text ); 
    845508 
    846         if  (GCF_CALCOMP & map) 
    847                 cc_text( style, x, y, text ); 
    848  
    849         if  (GCF_TEK & map) 
    850                 tk_text( style, x, y, text ); 
    851  
    852         if  (GCF_HPGL & map) 
    853                 hp_text( style, x, y, text ); 
    854  
    855         if  (GCF_DJ & map) 
    856                 dj_text( style, x, y, text ); 
    857  
    858         if  (GCF_VWS & map) 
    859                 vw_text( map & WDWMASK, style, x, y, text ); 
    860  
    861509} /* end of gc_text */ 
    862510 
     
    878526        /* executable code */ 
    879527 
    880         if  (GCF_GEM & map) 
    881                 gm_write( map & WDWMASK, text ); 
    882  
    883528        if  (GCF_XWDW & map) 
    884529                xw_write( map & WDWMASK, text ); 
    885  
    886         if  (GCF_BGI & map) 
    887                 bg_write( map & WDWMASK, text ); 
    888530 
    889531        if  (GCF_STDCH & map) 
    890532                printf( "%s", text ); 
    891533 
    892         if  (GCF_VWS & map) 
    893                 vw_write( map & WDWMASK, text ); 
    894  
    895         if  (GCF_TEK & map) 
    896                 tk_write( text ); 
    897  
    898534        if  (GCF_EXTERN & map && gcv_writeext != NULL) 
    899535                (*gcv_writeext)( text ); 
     
    918554        /* executable code */ 
    919555 
    920         if  (GCF_GEM & map) 
    921                 gm_wrtch( map & WDWMASK, ch ); 
    922  
    923556        if  (GCF_XWDW & map) 
    924557                xw_wrtch( map & WDWMASK, ch ); 
    925  
    926         if  (GCF_BGI & map) 
    927                 bg_wrtch( map & WDWMASK, ch ); 
    928558 
    929559        if  (GCF_STDCH & map) 
    930560                printf( "%c", ch ); 
    931561 
    932         if  (GCF_VWS & map) 
    933                 vw_wrtch( map & WDWMASK, ch ); 
    934  
    935         if  (GCF_TEK & map) 
    936                 tk_wrtch( ch ); 
    937  
    938562} /* end of gc_wrtch */ 
    939563 
     
    953577{ 
    954578        /* executable code */ 
    955  
    956         if  (GCF_GEM & map) 
    957                 return gm_txtwidth( map & WDWMASK ); 
    958  
    959         if  (GCF_BGI & map) 
    960                 return bg_txtwidth( map & WDWMASK ); 
    961579 
    962580        if  (GCF_STDCH & map) 
     
    983601        /* executable code */ 
    984602 
    985         if  (GCF_GEM & map) 
    986                 return gm_txtheight( map & WDWMASK ); 
    987  
    988         if  (GCF_BGI & map) 
    989                 return bg_txtheight( map & WDWMASK ); 
    990  
    991603        if  (GCF_STDCH & map) 
    992604                return 24; 
     
    1012624        /* executable code */ 
    1013625 
    1014         if  (GCF_GEM & map) 
    1015                 return gm_chheight( map & WDWMASK ); 
    1016  
    1017626        if  (GCF_XWDW & map) 
    1018627                return xw_chheight( map & WDWMASK ); 
    1019  
    1020         if  (GCF_BGI & map) 
    1021                 return bg_chheight( map & WDWMASK ); 
    1022628 
    1023629        return 0.0; 
     
    1043649        /* executable code */ 
    1044650 
    1045         if  (GCF_GEM & map)  { 
    1046                 gm_read( map & WDWMASK, maxlth, text ); 
    1047                 return; 
    1048         } /*endif*/ 
    1049  
    1050651        if  (GCF_XWDW & map)  { 
    1051652                xw_read( map & WDWMASK, maxlth, text ); 
     
    1053654        } /*endif*/ 
    1054655 
    1055         if  (GCF_BGI & map)  { 
    1056                 bg_read( map & WDWMASK, maxlth, text ); 
    1057                 return; 
    1058         } /*endif*/ 
    1059  
    1060         if  (GCF_VWS & map)  { 
    1061                 vw_read( map & WDWMASK, maxlth, text ); 
    1062                 return; 
    1063         } /*endif*/ 
    1064  
    1065656        fgets( text, maxlth, stdin ); 
    1066657 
     
    1084675{ 
    1085676        /* executable code */ 
    1086  
    1087         if  (GCF_GEM & map)  { 
    1088                 gm_getloc( map & WDWMASK, x, y, ch ); 
    1089                 CSWAP(*x,*y) 
    1090                 return; 
    1091         } /*endif*/ 
    1092677 
    1093678        if  (GCF_XWDW & map)  { 
     
    1097682        } /*endif*/ 
    1098683 
    1099         if  (GCF_BGI & map)  { 
    1100                 bg_getloc( map & WDWMASK, x, y, ch ); 
    1101                 CSWAP(*x,*y) 
    1102                 return; 
    1103         } /*endif*/ 
    1104  
    1105         if  (GCF_VWS & map)  { 
    1106                 vw_getloc( map & WDWMASK, x, y, ch ); 
    1107                 CSWAP(*x,*y) 
    1108                 return; 
    1109         } /*endif*/ 
    1110  
    1111         if  (GCF_TEK & map)  { 
    1112                 tk_getloc( x, y, ch ); 
    1113                 CSWAP(*x,*y) 
    1114                 return; 
    1115         } /*endif*/ 
    1116  
    1117684} /* end of gc_getloc */ 
    1118685 
     
    1134701        /* executable code */ 
    1135702 
    1136         gm_set_outputdir( dir, status ); 
    1137         if  (Severe(status))   return; 
    1138         bg_set_outputdir( dir, status ); 
    1139         if  (Severe(status))   return; 
    1140703        ps_set_outputdir( dir, status ); 
    1141         if  (Severe(status))   return; 
    1142         cc_set_outputdir( dir, status ); 
    1143         if  (Severe(status))   return; 
    1144         tk_set_outputdir( dir, status ); 
    1145         if  (Severe(status))   return; 
    1146         hp_set_outputdir( dir, status ); 
    1147         if  (Severe(status))   return; 
    1148         dj_set_outputdir( dir, status ); 
    1149704        if  (Severe(status))   return; 
    1150705        xw_set_outputdir( dir, status ); 
    1151706        if  (Severe(status))  return; 
    1152         vw_set_outputdir( dir, status ); 
    1153         if  (Severe(status))  return; 
    1154707 
    1155708} /* end of gc_set_outputdir */ 
     
    1172725        /* executable code */ 
    1173726 
    1174         gm_set_inputdir( dir, status ); 
    1175         if  (Severe(status))   return; 
    1176         bg_set_inputdir( dir, status ); 
    1177         if  (Severe(status))   return; 
    1178727        ps_set_inputdir( dir, status ); 
    1179728        if  (Severe(status))   return; 
    1180         cc_set_inputdir( dir, status ); 
    1181         if  (Severe(status))   return; 
    1182         tk_set_inputdir( dir, status ); 
    1183         if  (Severe(status))   return; 
    1184         hp_set_inputdir( dir, status ); 
    1185         if  (Severe(status))   return; 
    1186         dj_set_inputdir( dir, status ); 
    1187         if  (Severe(status))   return; 
    1188729        xw_set_inputdir( dir, status ); 
    1189         if  (Severe(status))  return; 
    1190         vw_set_inputdir( dir, status ); 
    1191730        if  (Severe(status))  return; 
    1192731 
     
    1212751        /* executable code */ 
    1213752 
    1214         if  (GCF_GEM & map)  { 
    1215                 gm_setpar( item, value, status ); 
    1216                 if  (Severe(status))  return; 
    1217         } /*endif*/ 
    1218  
    1219         if  (GCF_BGI & map)  { 
    1220                 bg_setpar( item, value, status ); 
    1221                 if  (Severe(status))  return; 
    1222         } /*endif*/ 
    1223  
    1224753        if  (GCF_PSF & map)  { 
    1225754                ps_setpar( item, value, status ); 
    1226                 if  (Severe(status))  return; 
    1227         } /*endif*/ 
    1228  
    1229         if  (GCF_CALCOMP & map)  { 
    1230                 cc_setpar( item, value, status ); 
    1231                 if  (Severe(status))  return; 
    1232         } /*endif*/ 
    1233  
    1234         if  (GCF_TEK & map)  { 
    1235                 tk_setpar( item, value, status ); 
    1236                 if  (Severe(status))  return; 
    1237         } /*endif*/ 
    1238  
    1239         if  (GCF_HPGL & map)  { 
    1240                 hp_setpar( item, value, status ); 
    1241                 if  (Severe(status))  return; 
    1242         } /*endif*/ 
    1243  
    1244         if  (GCF_DJ & map)  { 
    1245                 dj_setpar( item, value, status ); 
    1246                 if  (Severe(status))  return; 
    1247         } /*endif*/ 
    1248  
    1249         if  (GCF_VWS & map)  { 
    1250                 vw_setpar( item, value, status ); 
    1251755                if  (Severe(status))  return; 
    1252756        } /*endif*/ 
     
    1314818 
    1315819        /* executable code */ 
    1316  
    1317 #       ifdef BC_G_GEM 
    1318         if  (GCF_GEM & dst)  { 
    1319                 pb.wpb.pbtype = GBC_WPAINT; 
    1320                 pb.wpb.prepare = gm_prepare; 
    1321                 pb.wpb.moveto = gm_moveto; 
    1322                 pb.wpb.drawto = gm_drawto; 
    1323                 pb.wpb.arrayplot = gm_arrayplot; 
    1324                 pb.wpb.text = gm_text; 
    1325                 pb.wpb.setstyle = gm_setstyle; 
    1326                 pb.wpb.setcoo = gm_setcoo; 
    1327                 pb.wpb.cleanup = gm_cleanup; 
    1328                 mm_playback( src & WDWMASK, dst & WDWMASK, &pb, outf, status ); 
    1329                 if  (Severe(status))  return; 
    1330         } /*endif*/ 
    1331 #       endif  /* BC_G_GEM */ 
    1332820 
    1333821#       ifdef BC_G_XWDW 
     
    1347835#       endif  /* BC_G_XWDW */ 
    1348836 
    1349 #       ifdef BC_G_BGI 
    1350         if  (GCF_BGI & dst)  { 
    1351                 pb.wpb.pbtype = GBC_WPAINT; 
    1352                 pb.wpb.prepare = bg_prepare; 
    1353                 pb.wpb.moveto = bg_moveto; 
    1354                 pb.wpb.drawto = bg_drawto; 
    1355                 pb.wpb.arrayplot = bg_arrayplot; 
    1356                 pb.wpb.text = bg_text; 
    1357                 pb.wpb.setstyle = bg_setstyle; 
    1358                 pb.wpb.setcoo = bg_setcoo; 
    1359                 pb.wpb.cleanup = bg_cleanup; 
    1360                 mm_playback( src & WDWMASK, dst & WDWMASK, &pb, outf, status ); 
    1361                 if  (Severe(status))  return; 
    1362         } /*endif*/ 
    1363 #       endif  /* BC_G_BGI */ 
    1364  
    1365837#       ifdef BC_G_POSTSCRIPT 
    1366838        if  (GCF_PSF & dst)  { 
     
    1379851#       endif  /* BC_G_POSTSCRIPT */ 
    1380852 
    1381 #       ifdef BC_G_CALCOMP 
    1382         if  (GCF_CALCOMP & dst)  { 
    1383                 pb.ppb.pbtype = GBC_PPAINT; 
    1384                 pb.ppb.prepare = cc_prepare; 
    1385                 pb.ppb.moveto = cc_moveto; 
    1386                 pb.ppb.drawto = cc_drawto; 
    1387                 pb.ppb.arrayplot = cc_arrayplot; 
    1388                 pb.ppb.text = cc_text; 
    1389                 pb.ppb.setstyle = cc_setstyle; 
    1390                 pb.ppb.setcoo = cc_setcoo; 
    1391                 pb.ppb.cleanup = cc_cleanup; 
    1392                 mm_playback( src & WDWMASK, dst & WDWMASK, &pb, outf, status ); 
    1393                 if  (Severe(status))  return; 
    1394         } /*endif*/ 
    1395 #       endif  /* BC_G_CALCOMP */ 
    1396  
    1397 #       ifdef BC_G_TEK 
    1398         if  (GCF_TEK & dst)  { 
    1399                 pb.ppb.pbtype = GBC_PPAINT; 
    1400                 pb.ppb.prepare = tk_prepare; 
    1401                 pb.ppb.moveto = tk_moveto; 
    1402                 pb.ppb.drawto = tk_drawto; 
    1403                 pb.ppb.arrayplot = tk_arrayplot; 
    1404                 pb.ppb.text = tk_text; 
    1405                 pb.ppb.setstyle = tk_setstyle; 
    1406                 pb.ppb.setcoo = tk_setcoo; 
    1407                 pb.ppb.cleanup = tk_cleanup; 
    1408                 mm_playback( src & WDWMASK, dst & WDWMASK, &pb, outf, status ); 
    1409                 if  (Severe(status))  return; 
    1410         } /*endif*/ 
    1411 #       endif  /* BC_G_TEK */ 
    1412  
    1413 #       ifdef BC_G_HPGL 
    1414         if  (GCF_HPGL & dst)  { 
    1415                 pb.ppb.pbtype = GBC_PPAINT; 
    1416                 pb.ppb.prepare = hp_prepare; 
    1417                 pb.ppb.moveto = hp_moveto; 
    1418                 pb.ppb.drawto = hp_drawto; 
    1419                 pb.ppb.arrayplot = hp_arrayplot; 
    1420                 pb.ppb.text = hp_text; 
    1421                 pb.ppb.setstyle = hp_setstyle; 
    1422                 pb.ppb.setcoo = hp_setcoo; 
    1423                 pb.ppb.cleanup = hp_cleanup; 
    1424                 mm_playback( src & WDWMASK, dst & WDWMASK, &pb, outf, status ); 
    1425                 if  (Severe(status))  return; 
    1426         } /*endif*/ 
    1427 #       endif  /* BC_G_HPGL */ 
    1428  
    1429 #       ifdef BC_G_DESKJET 
    1430         if  (GCF_DJ & dst)  { 
    1431                 pb.ppb.pbtype = GBC_PPAINT; 
    1432                 pb.ppb.prepare = dj_prepare; 
    1433                 pb.ppb.moveto = dj_moveto; 
    1434                 pb.ppb.drawto = dj_drawto; 
    1435                 pb.ppb.arrayplot = dj_arrayplot; 
    1436                 pb.ppb.text = dj_text; 
    1437                 pb.ppb.setstyle = dj_setstyle; 
    1438                 pb.ppb.setcoo = dj_setcoo; 
    1439                 pb.ppb.cleanup = dj_cleanup; 
    1440                 mm_playback( src & WDWMASK, dst & WDWMASK, &pb, outf, status ); 
    1441                 if  (Severe(status))  return; 
    1442         } /*endif*/ 
    1443 #       endif  /* BC_G_DESKJET */ 
    1444  
    1445 #       ifdef BC_G_VWS 
    1446         if  (GCF_VWS & dst)  { 
    1447                 vw_cleanup( src & WDWMASK, outf, status ); 
    1448         } /*endif*/ 
    1449 #       endif /* BC_G_VWS */ 
    1450  
    1451853} /* end of gc_playback */ 
    1452854 
     
    1494896        } /*endif*/ 
    1495897 
    1496         if  (GCF_CALCOMP & map)  { 
    1497                 cc_cleanup( outf, status ); 
    1498                 if  (Severe(status))  return; 
    1499         } /*endif*/ 
    1500  
    1501         if  (GCF_HPGL & map)  { 
    1502                 hp_cleanup( outf, status ); 
    1503                 if  (Severe(status))  return; 
    1504         } /*endif*/ 
    1505  
    1506         if  (GCF_DJ & map)  { 
    1507                 dj_cleanup( outf, status ); 
    1508                 if  (Severe(status))  return; 
    1509         } /*endif*/ 
    1510  
    1511         if  (GCF_VWS & map)  { 
    1512                 vw_cleanup( map & WDWMASK, outf, status ); 
    1513                 if  (Severe(status))  return; 
    1514         } /*endif*/ 
    1515  
    1516898} /* end of gc_closeplot */ 
    1517899 
    1518900 
    1519   
     901 
    1520902/*------------------------------------------------------------------------*/ 
    1521903 
     
    1539921   ps_arrayswap( on_off ); 
    1540922#  endif 
    1541 #  ifdef BC_G_CALCOMP 
    1542    cc_arrayswap( on_off ); 
    1543 #  endif 
    1544 #  ifdef BC_G_TEK 
    1545    tk_arrayswap( on_off ); 
    1546 #  endif 
    1547 #  ifdef BC_G_HPGL 
    1548    hp_arrayswap( on_off ); 
    1549 #  endif 
    1550 #  ifdef BC_G_BGI 
    1551    bg_arrayswap( on_off ); 
    1552 #  endif 
    1553 #  ifdef BC_G_GEM 
    1554    gm_arrayswap( on_off ); 
    1555 #  endif 
    1556 #  ifdef BC_G_DESKJET 
    1557    dj_arrayswap( on_off ); 
    1558 #  endif 
    1559 #  ifdef BC_G_VWS 
    1560    vw_arrayswap( on_off ); 
    1561 #  endif 
    1562923 
    1563924} /* end of gc_swap */ 
  • SH_SHM/branches/marcus/source/readgrn.c

    r101 r102  
    768768                grn_readlog( "." ); 
    769769                fstat = fseek( grn, testlth*GRN_RECLTH, 0 ); 
    770 #               ifdef BC_ATARI                 /* for ATARI special test            */ 
    771                 if  (feof(grn))  fstat = -1;   /* because fseek here also returns 0 */ 
    772 #               endif                          /*                                   */ 
    773770                if  (fstat != 0)  { 
    774771                        *status = GRNE_FREAD; 
     
    825822        grn_readlog( "-" ); 
    826823        fstat = fseek( grn, testlth*GRN_RECLTH, 0 ); 
    827 #       ifdef BC_ATARI                 /* for ATARI special test            */ 
    828         if  (feof(grn))  fstat = -1;   /* because fseek here also returns 0 */ 
    829 #       endif                          /*                                   */ 
    830824        if  (fstat != 0)  { 
    831825                testlth = 20; 
    832826                grn_readlog( "t" ); 
    833827                fstat = fseek( grn, testlth*GRN_RECLTH, 0 ); 
    834 #               ifdef BC_ATARI               /* Again special ATARI test          */ 
    835                 if  (feof(grn))  fstat = -1; /* because fseek here also returns 0 */ 
    836 #               endif                        /*                                   */ 
    837828                if  (fstat != 0)  {          /* very short file, just rewind it   */ 
    838829                        grn_readlog( "s" ); 
  • SH_SHM/branches/marcus/source/shdirs.h

    r101 r102  
    3737 
    3838/*=================================================================*/ 
    39 #ifdef BC_ATARI 
    40  
    41  
    42  
    43 #define DD_SCRATCH "SHC_SCRATCH:" 
    44 #define DD_HELP "SHC_HELP:" 
    45 #define DD_CMD  "SHC_COMMAND:" 
    46 #define DD_FILTER "SHC_FILTER:" 
    47 #define DD_GLOBALS "SHC_GLOBALS:" 
    48 #define DD_ERRORS "SHC_ERRORS:" 
    49 #define DD_INPUTS "SHC_INPUTS:" 
    50 #define DD_EXTPROG "SHC_EXTPROG:" 
    51  
    52  
    53  
    54 #endif /* BC_ATARI */ 
    55 /*=================================================================*/ 
    5639#ifdef BC_SUN 
    5740 
  • SH_SHM/branches/marcus/source/shexec.c

    r101 r102  
    114114        strcat( id_shv, "_" ); 
    115115#       endif  /* BC_SUN */ 
    116 #       ifdef BC_ATARI 
    117         id_shv[SHC_FILE_PREFIX_LENGTH] = '0'+Nint(4.5+mt_random(5.0)); 
    118         id_shv[SHC_FILE_PREFIX_LENGTH+1] = '\0'; 
    119 #       endif /* BC_ATARI */ 
    120116 
    121117        strcpy( str, shd_scratch ); 
  • SH_SHM/branches/marcus/source/shlib.c

    r16 r102  
    213213                case 'S':  *flagbits |= GCF_STDCH;     break; 
    214214                case 'F':  *flagbits |= GCF_FILE;      break; 
    215                 case 'V':  *flagbits |= GCF_VWS;       break; 
    216215                case 'X':  *flagbits |= GCF_XWDW;      break; 
    217                 case 'C':  *flagbits |= GCF_CALCOMP;   break; 
    218                 case 'T':  *flagbits |= GCF_TEK;       break; 
    219216                case 'P':  *flagbits |= GCF_PSF;       break; 
    220                 case 'L':  *flagbits |= GCF_HPGL;      break; 
    221                 case 'D':  *flagbits |= GCF_DJ;        break; 
    222                 case 'G':  *flagbits |= GCF_GEM;       break; 
    223                 case 'B':  *flagbits |= GCF_BGI;       break; 
    224217                case 'E':  *flagbits |= GCF_EXTERN;    break; 
    225218                default: 
  • SH_SHM/branches/marcus/source/shmenu0.c

    r101 r102  
    515515#               ifdef BC_SUN 
    516516                strcpy( str, "UNIX" ); 
    517 #               endif 
    518 #               ifdef BC_ATARI 
    519                 strcpy( str, "ATARI-TOS" ); 
    520517#               endif 
    521518#               ifdef BC_IBM 
  • SH_SHM/branches/marcus/source/sysbase.h

    r101 r102  
    4242#include "basecnst.h" 
    4343#endif 
    44  
    45  
    46  
    47 /****************************************************************** 
    48  ***                        ATARI version                       *** 
    49  ******************************************************************/ 
    50  
    51  
    52  
    53 #ifdef BC_ATARI 
    54  
    55  
    56 /* one byte integer */ 
    57 #define BYTE char 
    58  
    59 /* boolean type */ 
    60 #define BOOLEAN int 
    61  
    62 /* boolean values TRUE & FALSE */ 
    63 #ifdef BC_DEFINE_TRUE_FALSE 
    64 #define TRUE (1) 
    65 #define FALSE (0) 
    66 #endif 
    67  
    68 /* infinite loop declaration   */ 
    69 #define FOREVER for(;;) 
    70  
    71 /* status type */ 
    72 typedef int STATUS;    /* status value */ 
    73 #define Severe(s) (*(s) != 0) 
    74  
    75 /* nearest integer number to floating number */ 
    76 #define Nint(x) (int)(((x)>0)?(x)+0.5:(x)-0.5) 
    77 #define Nint32(x) (int)(((x)>0)?(x)+0.5:(x)-0.5) 
    78  
    79 /* nearest long number to floating number */ 
    80 #define Nlong(x) (long)(((x)>0)?(x)+0.5:(x)-0.5) 
    81  
    82 /* capitalize character */ 
    83 #define Cap(c) (((c)>='a' && (c)<='z') ? ((c)-32) : (c)) 
    84 #define Uncap(c) (((c)>='A' && (c)<='Z') ? ((c)+32) : (c)) 
    85  
    86 /* NULL address */ 
    87 /* #define NULL ( ( void * ) 0L ) */ 
    88  
    89 /* absolute value of number */ 
    90 #define Abs(x) ((x)<0?-(x):(x)) 
    91  
    92 /* sy_findfile parameter */ 
    93 #define SYC_FF_NAME 1 
    94 #define SYC_FF_DIR 2 
    95 #define SYC_FF_EXT 4 
    96  
    97 /* binary file type, uses GEMDOS file handle, because of mistake in FILE */ 
    98 typedef int BFILE; 
    99  
    100 /* open existing file for writing, is not yet used */ 
    101 #define SYC_OPEN_OVWR "w" 
    102  
    103 /* read logical name table */ 
    104 #define sy_lognames(f,s) fo_readtable(f,s) 
    105  
    106 /* open text file */ 
    107 #define sy_fopen(f,a) fo_fopen(f,a) 
    108  
    109 /* close text file */ 
    110 #define sy_fclose(f) fclose(f) 
    111  
    112 /* read from text file, is not yet used */ 
    113 #define sy_fread fread 
    114  
    115 /* write to text file, is not yet used */ 
    116 #define sy_fwrite fwrite 
    117  
    118 /* binary file operation failed */ 
    119 #define sy_fbfailed(f) ((f)<0) 
    120  
    121 /* delete file                   */ 
    122 /* call: sy_fdelete( filename )  */ 
    123 /*       char   *filename;  input; file to be deleted */ 
    124 /* #define sy_fdelete(a) Fdelete(a) */ 
    125 /* int Fdelete( const char fname[] ); */ 
    126 /* is now implemented as routine: */ 
    127 void sy_fdelete( char fname[] ); 
    128  
    129 /* rename file                                     */ 
    130 /* call: sy_frename( from, to )                    */ 
    131 /*       char   *from;   input; file to be renamed */ 
    132 /*       char   *to;     input; new name of file   */ 
    133 /* #define sy_frename(a,b) Frename(0,a,b) */ 
    134 /* int Frename( int zero, const char oldname[], const char newname[] ); */ 
    135 /* is now implemented as routine: */ 
    136 void sy_frename( char from[], char to[] ); 
    137  
    138 /* random string generator, not implemented */ 
    139 #define sy_randomstr(l,s) 
    140  
    141  
    142 /* system constants */ 
    143 /* ---------------- */ 
    144  
    145 /* maximum unsigned */ 
    146 #define SYC_MAXUNSG 0xffffL 
    147  
    148 /* maximum integer */ 
    149 #define SYC_MAXINT 0x7fffL 
    150  
    151 /* minimum integer */ 
    152 #define SYC_MININT 0x8000L 
    153  
    154 /* maximum long */ 
    155 #define SYC_MAXLONG 0x7fffffffL 
    156  
    157 /* minimum long */ 
    158 #define SYC_MINLONG 0x80000000L 
    159  
    160  
    161 /* system specific types */ 
    162 /* --------------------- */ 
    163  
    164 /* difference time, to measure time differences */ 
    165 typedef float DIFFTIME; 
    166  
    167  
    168 /* one global variable: Application ID */ 
    169 #ifndef __FROM_SYSCALL 
    170 extern int syv_apid; 
    171 #endif 
    172  
    173 /* include fileopen */ 
    174 #ifndef __FOUSRDEF 
    175 #include BC_FOUSRDEF 
    176 #endif 
    177  
    178  
    179  
    180 /*------------------------------------------------------------------------*/ 
    181 /*                                      prototypes of routines of module SYSCALL.C                                */ 
    182 /*------------------------------------------------------------------------*/ 
    183  
    184  
    185 void sy_initprocess( void ); 
    186  
    187 /* initialises process (ATARI AES, global memory area) 
    188  * 
    189  * no parameters 
    190  */ 
    191  
    192  
    193 /*------------------------------------------------------------------------*/ 
    194  
    195  
    196 #ifdef BC_SHARE_CPU 
    197  
    198  
    199 /*------------------------------------------------------------------------*/ 
    200  
    201  
    202  
    203 void sy_sharecpu( void ); 
    204  
    205 /* let other process get some CPU time (call to evnt_timer) 
    206  * 
    207  * no parameters 
    208  */ 
    209  
    210  
    211 /*------------------------------------------------------------------------*/ 
    212  
    213  
    214 void sy_debuginfo( char info[] ); 
    215  
    216 /* transfers debug information 
    217  * 
    218  * parameters of routine 
    219  * char          info[];   input; info string 
    220  */ 
    221  
    222  
    223 /*------------------------------------------------------------------------*/ 
    224  
    225  
    226 char *sy_getmessage( void ); 
    227  
    228 /* returns message string from external source 
    229  * 
    230  * no parameters 
    231  */ 
    232  
    233  
    234 /*------------------------------------------------------------------------*/ 
    235  
    236  
    237 #else  /* BC_SHARE_CPU */ 
    238  
    239  
    240 #define sy_sharecpu() 
    241 #define sy_debuginfo(i) 
    242 #define sy_getmessage() NULL 
    243  
    244  
    245 #endif /* BC_SHARE_CPU */ 
    246  
    247  
    248 /*------------------------------------------------------------------------*/ 
    249  
    250  
    251 void sy_gettime( char timstr[] ); 
    252  
    253 /* returns current time in time string.  The time string needs 25 
    254  * characters (including the termination byte) 
    255  * 
    256  * parameters of routine 
    257  */ 
    258  
    259  
    260 /*------------------------------------------------------------------------*/ 
    261  
    262  
    263 void sy_alert( char text[] ); 
    264  
    265 /* displays alert message text 
    266  * 
    267  * parameters of display 
    268  * char       text[];     input; text to be displayed 
    269  */ 
    270  
    271  
    272 /*------------------------------------------------------------------------*/ 
    273  
    274  
    275 void *sy_allocmem( long cnt, int size, STATUS *status ); 
    276  
    277 /* allocates memory ("cnt" objects of size "size) 
    278  * 
    279  * parameters of routine 
    280  * long     cnt;            input; number of objects 
    281  * int      size;           input; size of each object 
    282  * STATUS   *status;        output; return status 
    283  */ 
    284  
    285  
    286 /*------------------------------------------------------------------------*/ 
    287  
    288  
    289 void sy_deallocmem( void *ptr ); 
    290  
    291 /* deallocates memory, allocated by sy_allocmem 
    292  * 
    293  * parameter of routine 
    294  * void     *ptr;        input; pointer to be freed 
    295  */ 
    296  
    297  
    298 /*------------------------------------------------------------------------*/ 
    299  
    300  
    301 long sy_fbread( void *strbuf, int size, long n, BFILE fp ); 
    302  
    303 /* reads "n" objects of size "size" from binary file "fp" 
    304  * 
    305  * parameters of routine 
    306  * void     *strbuf;        output; buffer to read to 
    307  * int      size;           input; size of each object 
    308  * long     n;              input; number of objects 
    309  * BFILE    fp;             input; file descriptor 
    310  */ 
    311  
    312  
    313 /*------------------------------------------------------------------------*/ 
    314  
    315  
    316 long sy_fbwrite( void *strbuf, int size, long n, BFILE fp ); 
    317  
    318 /* writes "n" objects of size "size" to file "fp" 
    319  * 
    320  * parameters of routine 
    321  * void     *strbuf;        input; buffer to read to 
    322  * int      size;           input; size of each object 
    323  * long     n;              input; number of objects 
    324  * BFILE    fp;             input; file descriptor 
    325  */ 
    326  
    327  
    328 /*------------------------------------------------------------------------*/ 
    329  
    330  
    331 int sy_fbseek( BFILE fp, long pos, int mode ); 
    332  
    333 /* changes file position 
    334  * 
    335  * parameters of routine 
    336  * BFILE      fp;    input; file pointer 
    337  * long       pos;   input; new position 
    338  * int        mode;  input; search mode 
    339  */ 
    340  
    341  
    342 /*------------------------------------------------------------------------*/ 
    343  
    344  
    345 BFILE sy_fbopen( const char *file, const char *access ); 
    346  
    347 /* opens a binary file 
    348  * 
    349  * parameters of routine 
    350  * const char    *file;    input; filename 
    351  * const char    *access;  input; access mode 
    352  */ 
    353  
    354  
    355 /*------------------------------------------------------------------------*/ 
    356  
    357  
    358 int sy_fbclose( BFILE fp ); 
    359  
    360 /* closes binary file 
    361  * 
    362  * parameter of routine 
    363  * BFILE     fp;      input; file pointer 
    364  */ 
    365  
    366  
    367 /*------------------------------------------------------------------------*/ 
    368  
    369  
    370 void sy_findfile( int request, char wild[], char filename[] ); 
    371  
    372 /* looks for files matching wild card string "wild". Returns filename of 
    373  * file found or "\0" if not found.  "request" controls the returned 
    374  * elements.  For example the value (SYC_FF_DIR|SYC_FF_NAME|SYC_FF_EXT) 
    375  * means, that the returned string contains directory, file name and 
    376  * extension. 
    377  * 
    378  * parameters of routine 
    379  * int      request;        input; what elements (name,dir,extension) 
    380  * char     *wild;          input; wild card string 
    381  * char     *filename;      output; next file found 
    382  */ 
    383  
    384  
    385 /*------------------------------------------------------------------------*/ 
    386  
    387  
    388 void sy_system( char *cmd, STATUS *status ); 
    389  
    390 /* call to the operating system 
    391  * 
    392  * parameters of routine 
    393  * char     *cmd;           input; system command 
    394  * STATUS   *status;        output; return status 
    395  */ 
    396  
    397  
    398 /*------------------------------------------------------------------------*/ 
    399  
    400  
    401  
    402 double sy_random( double ampl ); 
    403  
    404 /* creates random number with absolute value less than (or equal to) 
    405  * "amp" 
    406  * 
    407  * parameters of routine 
    408  * double               ampl;           input; max. amplitude; if zero, a new random 
    409  *                                                                       series is started 
    410  */ 
    411  
    412  
    413 /*------------------------------------------------------------------------*/ 
    414  
    415  
    416 DIFFTIME sy_difftime( void ); 
    417  
    418 /* returns time since last sy_difftime call 
    419  */ 
    420  
    421  
    422 /*------------------------------------------------------------------------*/ 
    423  
    424  
    425 void sy_localinf( char item[], char value[], STATUS *status ); 
    426  
    427 /* machine dependend routine 
    428  * 
    429  * parameters of routine 
    430  * char       item[];     input; info item 
    431  * char       value[];    input/output; additional parameter 
    432  * STATUS     *status;    output; return status 
    433  */ 
    434  
    435  
    436 /*------------------------------------------------------------------------*/ 
    437  
    438  
    439  
    440 #endif /* BC_ATARI */ 
    44144 
    44245 
  • SH_SHM/branches/marcus/source/syscall.c

    r101 r102  
    3535 
    3636#include "basecnst.h" 
    37  
    38  
    39  
    40 /****************************************************************** 
    41  ***                        ATARI version                       *** 
    42  ******************************************************************/ 
    43  
    44  
    45  
    46 #ifdef BC_ATARI 
    47  
    48  
    49 #include <tos.h> 
    50 #include <aes.h> 
    51 #include <stdio.h> 
    52 #include <string.h> 
    53 #include <stdlib.h> 
    54 #include <time.h> 
    55 #define __FROM_SYSCALL 
    56 #include "sysbase.h" 
    57 #include "syerrors.h" 
    58  
    59  
    60 #ifdef BC_KS_PRIVATE 
    61 #include BC_GCUSRDEF 
    62 /* #define DEBUG_SHARE_CPU */ 
    63 #ifdef DEBUG_SHARE_CPU 
    64 #include "e:\pc\util\mailbuf.h" 
    65 #endif 
    66 #define SYSDIR "e:\\pc\\sh\\COMMAND\\COMMAND.TOS" 
    67 #define Mfork(a,b) gemdos(112,a,0x5aa7,b) 
    68 #define ap_count _GemParBlk.global[1] 
    69 extern GEMPARBLK _GemParBlk; 
    70 static BOOLEAN syv_multigem_installed; 
    71 #endif /* BC_KS_PRIVATE */ 
    72  
    73  
    74 /* one global variable: Application ID */ 
    75 int    syv_apid; 
    76  
    77 /* another global variable: wait length */ 
    78 static int syv_sharecounter; 
    79  
    80  
    81 /*------------------------------------------------------------------------*/ 
    82  
    83  
    84  
    85 void sy_initprocess( void ) 
    86  
    87 /* initialises process 
    88  * 
    89  * no parameters 
    90  */ 
    91 { 
    92         /* local variables */ 
    93         STATUS   s=BC_NOERROR; 
    94  
    95         /* executable code */ 
    96  
    97         syv_apid = appl_init(); 
    98         sy_lognames( FOC_DEFAULTLOGICALS, &s ); 
    99 #       ifdef BC_KS_PRIVATE 
    100         syv_multigem_installed = (ap_count > 1); 
    101         if  ((1<<(int)('M'-'A')) & Drvmap())  /* if drive M available */ 
    102                 sy_lognames( FOC_ALTERNATELOGICALS, &s ); 
    103 #       endif /* BC_KS_PRIVATE */ 
    104 #       ifdef BC_SHARE_CPU 
    105 #       ifdef DEBUG_SHARE_CPU 
    106         mb_init(); 
    107         mb_setcounter( 0, 0 ); 
    108 #       endif /* DEBUG_SHARE_CPU */ 
    109 #       endif /* BC_SHARE_CPU */ 
    110  
    111 } /* end of sy_initprocess */ 
    112  
    113  
    114  
    115 /*------------------------------------------------------------------------*/ 
    116  
    117  
    118 #ifdef BC_SHARE_CPU 
    119  
    120  
    121 void sy_sharecpu( void ) 
    122  
    123 /* let other process get some CPU time 
    124  * 
    125  * no parameters 
    126  */ 
    127 { 
    128         /* executable code */ 
    129  
    130 #       ifdef DEBUG_SHARE_CPU 
    131         mb_inccounter( 0 ); 
    132 #       endif /* DEBUG_SHARE_CPU */ 
    133         evnt_timer( syv_sharecounter, 0 ); 
    134  
    135 } /* end of sy_sharecpu */ 
    136  
    137  
    138  
    139 /*------------------------------------------------------------------------*/ 
    140  
    141  
    142  
    143 char *sy_getmessage( void ) 
    144  
    145 /* returns mailbox message 
    146  * 
    147  * no parameters 
    148  */ 
    149 { 
    150         /* local variables */ 
    151 #       ifdef DEBUG_SHARE_CPU 
    152         static char   symsg[MBC_STRLTH+1];  /* message */ 
    153         char          *cptr; 
    154  
    155         /* executable code */ 
    156  
    157         cptr = mb_getstring(1); 
    158         if  (cptr == NULL)  return NULL; 
    159         if  (*cptr == '\0')  return NULL; 
    160         strcpy( symsg, mb_getstring(1) ); 
    161         mb_setstring( 1, "" ); 
    162         return symsg; 
    163 #       else 
    164         return NULL; 
    165 #       endif /* DEBUG_SHARE_CPU */ 
    166  
    167 } /* end of sy_getmessage */ 
    168  
    169  
    170  
    171 /*------------------------------------------------------------------------*/ 
    172  
    173  
    174  
    175 void sy_debuginfo( char info[] ) 
    176  
    177 /* transfers debug information 
    178  * 
    179  * parameters of routine 
    180  * char          info[];   input; info string 
    181  */ 
    182 { 
    183         /* executable code */ 
    184  
    185 #       ifdef DEBUG_SHARE_CPU 
    186         mb_setstring( 0, info ); 
    187 #       endif /* DEBUG_SHARE_CPU */ 
    188  
    189 } /* end of sy_debuginfo */ 
    190  
    191 #endif /* BC_SHARE_CPU */ 
    192  
    193 /*------------------------------------------------------------------------*/ 
    194  
    195  
    196  
    197 void sy_gettime( char timstr[] ) 
    198  
    199 /* returns current time in time string.  The time string needs 25 
    200  * characters (including the termination byte) 
    201  * 
    202  * parameters of routine 
    203  */ 
    204 { 
    205         /* local variables */ 
    206         time_t       t; 
    207         struct tm    *timeptr; 
    208  
    209         /* executable code */ 
    210  
    211         t = time( NULL ); 
    212         timeptr = localtime( &t ); 
    213         strftime( timstr, 25, "%d-%b-%Y_%H:%M:%S", timeptr ); 
    214  
    215 } /* end of sy_gettime */ 
    216  
    217  
    218  
    219 /*------------------------------------------------------------------------*/ 
    220  
    221  
    222  
    223 void sy_alert( char text[] ) 
    224  
    225 /* displays message text 
    226  * 
    227  * parameters of display 
    228  * char       text[];     input; text to be displayed 
    229  */ 
    230 { 
    231         /* local variable */ 
    232         char     msg[BC_LONGSTRLTH];       /* text string */ 
    233         char     str[BC_LONGSTRLTH];       /* alert parameter */ 
    234         char     *c, *strt;                /* moving pointer */ 
    235  
    236         /* executable code */ 
    237  
    238         strncpy( msg, text, BC_LONGSTRLTH-9 ); 
    239         if  (strlen(msg) > 40)  { 
    240                 strt = msg; 
    241                 do  { 
    242                         c = strt+39; 
    243                         while  (*c != ' '  &&  c > strt) 
    244                                 c--; 
    245                         if  (c == strt)  { 
    246                                 strt[39] = '|'; 
    247                                 strt += 40; 
    248                         } else { 
    249                                 *c = '|'; 
    250                                 strt = c+1; 
    251                         } /*endif*/ 
    252                 }  while  (strlen(strt) > 40); 
    253         } /*endif*/ 
    254         sprintf( str, "[1][%s][OK]", msg ); 
    255         form_alert( 1, str ); 
    256  
    257 } /* end of sy_alert */ 
    258  
    259  
    260  
    261 /*------------------------------------------------------------------------*/ 
    262  
    263  
    264  
    265 void *sy_allocmem( long cnt, int size, STATUS *status ) 
    266  
    267 /* allocates memory ("cnt" objects of size "size") 
    268  * 
    269  * parameters of routine 
    270  * long     cnt;            input; number of objects 
    271  * int      size;           input; size of each object 
    272  * STATUS   *status;        output; return status 
    273  */ 
    274 { 
    275    /* local variables */ 
    276    void     *ptr;     /* pointer to allocated memory */ 
    277  
    278    /* executable code */ 
    279  
    280         ptr = malloc( cnt*size ); 
    281    if  (ptr == NULL)  *status = SYE_MEMOVFL; 
    282    return ptr; 
    283  
    284 } /* end of sy_allocmem */ 
    285  
    286  
    287  
    288 /*------------------------------------------------------------------------*/ 
    289  
    290  
    291  
    292 void sy_deallocmem( void *ptr ) 
    293  
    294 /* deallocates memory 
    295  * 
    296  * parameter of routine 
    297  * void     *ptr;        input; pointer to be freed 
    298  */ 
    299 { 
    300    /* executable code */ 
    301  
    302    free( ptr ); 
    303  
    304 } /* end of sy_deallocmem */ 
    305  
    306  
    307  
    308 /*------------------------------------------------------------------------*/ 
    309  
    310  
    311  
    312 long sy_fbread( void *strbuf, int size, long n, BFILE fp ) 
    313  
    314 /* reads "n" objects of size "size" from binary file "fp" 
    315  * 
    316  * parameters of routine 
    317  * void     *strbuf;        output; buffer to read to 
    318  * int      size;           input; size of each object 
    319  * long     n;              input; number of objects 
    320  * BFILE    fp;             input; file descriptor 
    321  */ 
    322 { 
    323    /* executable code */ 
    324  
    325    return (Fread(fp,(long)size*n,strbuf)/(long)size); 
    326  
    327 } /* end of sy_fbread */ 
    328  
    329  
    330  
    331 /*------------------------------------------------------------------------*/ 
    332  
    333  
    334  
    335 long sy_fbwrite( void *strbuf, int size, long n, BFILE fp ) 
    336  
    337 /* writes "n" objects of size "size" to file "fp" 
    338  * 
    339  * parameters of routine 
    340  * void     *strbuf;        input; buffer to read to 
    341  * int      size;           input; size of each object 
    342  * long     n;              input; number of objects 
    343  * BFILE    fp;             input; file descriptor 
    344  */ 
    345 { 
    346    /* executable code */ 
    347  
    348    return (Fwrite(fp,(long)size*n,strbuf)/(long)size); 
    349  
    350 } /* end of sy_fbwrite */ 
    351  
    352  
    353  
    354 /*------------------------------------------------------------------------*/ 
    355  
    356  
    357  
    358 int sy_fbseek( BFILE fp, long pos, int mode ) 
    359  
    360 /* changes file position 
    361  * 
    362  * parameters of routine 
    363  * BFILE      fp;    input; file pointer 
    364  * long       pos;   input; new position 
    365  * int        mode;  input; search mode 
    366  */ 
    367 { 
    368  
    369         return (int)Fseek( pos, fp, mode ); 
    370  
    371 } /* end of sy_fbseek */ 
    372  
    373  
    374  
    375 /*------------------------------------------------------------------------*/ 
    376  
    377  
    378  
    379 BFILE sy_fbopen( const char *file, const char *access ) 
    380  
    381 /* opens a binary file 
    382  * 
    383  * parameters of routine 
    384  * const char    *file;    input; filename 
    385  * const char    *access;  input; access mode 
    386  */ 
    387 { 
    388         /* local variables */ 
    389         int      handle; 
    390  
    391         /* executable code */ 
    392  
    393         if  (*access == 'r')  { 
    394                 return Fopen( file, FO_READ ); 
    395         } else if  (*access == 'w')  { 
    396                 return Fcreate( file, 0 ); 
    397         } else if  (*access == 'a')  { 
    398                 handle = Fopen( file, FO_READ ); 
    399                 if  (handle > 0)  { 
    400                         Fseek( 0L, handle, 2 ); 
    401                         return handle; 
    402                 } /*endif*/ 
    403                 return Fcreate( file, 0 ); 
    404         } /*endif*/ 
    405  
    406         return -1; 
    407  
    408 } /* end of sy_fbopen */ 
    409  
    410  
    411  
    412 /*------------------------------------------------------------------------*/ 
    413  
    414  
    415  
    416 int sy_fbclose( BFILE fp ) 
    417  
    418 /* closes binary file 
    419  * 
    420  * parameter of routine 
    421  * BFILE     fp;      input; file pointer 
    422  */ 
    423 { 
    424         return Fclose( fp ); 
    425  
    426 } /* end of sy_fbclose */ 
    427  
    428  
    429  
    430 /*------------------------------------------------------------------------*/ 
    431  
    432  
    433  
    434 void sy_fdelete( char fname[] ) 
    435  
    436 /* deletes file "fname" 
    437  * 
    438  * parameters of routine 
    439  * char       fname[];     input; name of file to be deleted 
    440  */ 
    441 { 
    442         /* local variables */ 
    443         char     tfname[BC_FILELTH+1];      /* translated filename */ 
    444         int      res;                       /* translation result */ 
    445  
    446         /* executable code */ 
    447  
    448         fo_translate( fname, TRUE, BC_FILELTH, tfname, &res ); 
    449         if  (res == FOC_OVFL)  return; 
    450         if  (!Fdelete(tfname))  return; 
    451         while  (res == FOC_ANOTHER)  { 
    452                 fo_translate( "", FALSE, BC_FILELTH, tfname, &res ); 
    453                 if  (res == FOC_OVFL)  return; 
    454                 if  (!Fdelete(tfname))  return; 
    455         } /*endwhile*/ 
    456  
    457 } /* end of sy_fdelete */ 
    458  
    459  
    460  
    461 /*------------------------------------------------------------------------*/ 
    462  
    463  
    464  
    465 void sy_frename( char from[], char to[] ) 
    466  
    467 /* renames a file from "from" to "to" 
    468  * 
    469  * parameters of routine 
    470  * char       from[];    input; old filename 
    471  * char       to[];      input; new filename 
    472  */ 
    473 { 
    474         /* local variables */ 
    475         char     tfrom[BC_FILELTH+1];  /* translated "from" */ 
    476         char     tto[BC_FILELTH+1];    /* translated "to" */ 
    477         int      resto, resfrom;       /* translation results */ 
    478         int      i;                    /* counter */ 
    479         int      cnt;                  /* counts "to" translations */ 
    480  
    481         /* executable code */ 
    482  
    483         cnt = 0; 
    484         FOREVER  { 
    485  
    486                 /* translate "to" "cnt+1" times */ 
    487                 fo_translate( to, TRUE, BC_FILELTH, tto, &resto ); 
    488                 if  (resto == FOC_OVFL)  return; 
    489                 for  (i=0; i<cnt; i++) 
    490                         fo_translate( to, FALSE, BC_FILELTH, tto, &resto ); 
    491  
    492                 /* now try all translations of "from" */ 
    493                 fo_translate( from, TRUE, BC_FILELTH, tfrom, &resfrom ); 
    494                 if  (resfrom == FOC_OVFL)  return; 
    495                 if  (!Frename( 0, tfrom, tto ))  return; 
    496                 while  (resfrom == FOC_ANOTHER)  { 
    497                         fo_translate( "", FALSE, BC_FILELTH, tfrom, &resfrom ); 
    498                         if  (resfrom == FOC_OVFL)  return; 
    499                         if  (!Frename( 0, tfrom, tto ))  return; 
    500                 } /*endwhile*/ 
    501  
    502                 /* if still not found, check whether another "to" is available */ 
    503                 if  (resto != FOC_ANOTHER)  return; 
    504                 cnt++; 
    505  
    506         } /*endfor*/ 
    507  
    508 } /* end of sy_frename */ 
    509  
    510  
    511  
    512 /*------------------------------------------------------------------------*/ 
    513  
    514  
    515  
    516 void sy_findfile( int request, char wild[], char filename[] ) 
    517  
    518 /* looks for files matching wild card string "wild". Returns filename of 
    519  *   file found (no directory, no extension) or "\0" if not found. 
    520  * 
    521  * parameters of routine 
    522  * int      request;        input; what elements (name,dir,ext) 
    523  * char     *wild;          input; wild card string 
    524  * char     *filename;      output; next file found 
    525  */ 
    526 { 
    527    /* local variables */ 
    528    static char   currwild[BC_FILELTH+1];  /* current wild card str */ 
    529         static DTA    dta;                     /* DTA */ 
    530         char     twild[BC_FILELTH+1];          /* translated wild card */ 
    531         int      res;                          /* translation result */ 
    532    long     dosret;                       /* GEMDOS return value */ 
    533         int      dirlen;                       /* length of directory string */ 
    534  
    535    /* executable code */ 
    536  
    537    if  (*wild == '\0')  { 
    538       *currwild = '\0'; 
    539       return; 
    540    } /*endif*/ 
    541  
    542    if  (*currwild == '\0')  {   /* first call of routine */ 
    543                 Fsetdta( &dta ); 
    544       strcpy( currwild, wild ); 
    545                 fo_translate( wild, TRUE, BC_FILELTH, twild, &res ); 
    546                 if  (res == FOC_OVFL)  return; 
    547       dosret = Fsfirst( twild, 0 ); 
    548    } else if  (strcmp(currwild,wild) == 0)  {  /* not first call */ 
    549       dosret = Fsnext(); 
    550    } else {  /* changed wild card string */ 
    551       strcpy( currwild, wild ); 
    552                 fo_translate( wild, TRUE, BC_FILELTH, twild, &res ); 
    553                 if  (res == FOC_OVFL)  return; 
    554       dosret = Fsfirst( twild, 0 ); 
    555    } /*endif*/ 
    556  
    557    if  (dosret != 0L)  { 
    558                 fo_translate( wild, FALSE, BC_LINELTH, twild, &res ); 
    559                 if  (res != FOC_ANOTHER && res != FOC_LAST)  { 
    560               *filename = '\0'; 
    561            return; 
    562                 } /*endif*/ 
    563                 dosret = Fsfirst( twild, 0 ); 
    564                 if  (dosret != 0)  { 
    565               *filename = '\0'; 
    566            return; 
    567                 } /*endif*/ 
    568    } /*endif*/ 
    569  
    570         if  (SYC_FF_DIR & request)  { 
    571                 dirlen = (int)strlen( twild ) - 1; 
    572                 while  (twild[dirlen] != '\\' && twild[dirlen] != '\0') 
    573                         dirlen--; 
    574                 if  (twild[dirlen++] == '\\')  { 
    575                         if  (strlen(dta.d_fname)+dirlen > BC_FILELTH)  { 
    576                                 strcpy( filename, "*** overflow ***" ); 
    577                                 return; 
    578                         } /*endif*/ 
    579                         strncpy( filename, twild, dirlen ); 
    580                         filename[dirlen] = '\0'; 
    581                    strcat( filename, dta.d_fname ); 
    582                 } else { 
    583                    strcpy( filename, dta.d_fname ); 
    584                 } /*endif*/ 
    585         } else { 
    586            strcpy( filename, dta.d_fname ); 
    587         } /*endif*/ 
    588  
    589    /* drop extension */ 
    590         if  (!(SYC_FF_EXT & request))  { 
    591            while  (*filename != '\0')  { 
    592               if  (*filename == '.')  { 
    593                  *filename = '\0'; 
    594                  return; 
    595               } /*endif*/ 
    596               filename++; 
    597            } /*endwhile*/ 
    598         } /*endif*/ 
    599  
    600 } /* end of sy_findfile */ 
    601  
    602  
    603  
    604 /*------------------------------------------------------------------------*/ 
    605  
    606  
    607  
    608 void sy_system( char cmd[], STATUS *status ) 
    609  
    610 /* call to operating system 
    611  * 
    612  * parameters of routine 
    613  * char     *cmd;              input; system command 
    614  * STATUS   *status;           output; return status 
    615  */ 
    616 { 
    617    /* local variables */ 
    618 #       ifdef BC_KS_PRIVATE 
    619         int      i;                     /* counter */ 
    620         int      slth;                  /* length of string */ 
    621         static char     cverb[BC_LINELTH+1];   /* command verb */ 
    622         static char     parm[BC_LINELTH+1];    /* parameters */ 
    623 #       endif /* BC_KS_PRIVATE */ 
    624  
    625    /* executable code */ 
    626  
    627 #       ifdef BC_KS_PRIVATE 
    628         if  (syv_multigem_installed)  { 
    629                 slth = (int)strlen( cmd ); 
    630                 i = 0; 
    631                 while  (cmd[i] != ' '  &&  i < slth) 
    632                         i++; 
    633                 if  (i >= slth-1)  { 
    634                         strcpy( cverb, cmd ); 
    635                         *parm = '\0'; 
    636                         slth = 0; 
    637                 } else { 
    638                         if  (i > BC_LINELTH)  { 
    639                                 *status = SYE_STROVFL; 
    640                                 return; 
    641                         } /*endif*/ 
    642                         strncpy( cverb, cmd, i ); 
    643                         cverb[i] = '\0'; 
    644                         slth = (int)strlen( cmd+i ); 
    645                         if  (slth+9 > BC_LINELTH)  { 
    646                                 *status = SYE_STROVFL; 
    647                                 return; 
    648                         } /*endif*/ 
    649                         strcpy( parm+1, cmd+i ); 
    650                 } /*endif*/ 
    651                 /* strcat( parm+1, " -a" ); */  /* excluded 7.12.91 */ 
    652                 /* sprintf( parm+1+slth+3, "%d", syv_apid ); */ 
    653                 *parm = (char)(strlen(parm+1)); 
    654                 if  (*cverb != '\0')  { 
    655                         shel_write( TRUE, TRUE, 1, cverb, parm ); 
    656                         if  (Mfork( cverb, parm ) != 0) 
    657                                 *status = SYE_SUBMIT; 
    658                 } /*endif*/ 
    659         } else { 
    660                 printf( "\n--> executing COMMAND.PRG\n" ); 
    661                 if  (Pexec( 0, SYSDIR, "", cmd ) != 0L)  *status = SYE_OSCALL; 
    662         } /*endif*/ 
    663 #       else 
    664         if  (system( cmd ) == 0) 
    665                 *status = SYE_OSCALL; 
    666 #       endif /* BC_KS_PRIVATE */ 
    667  
    668 } /* end of sy_system */ 
    669  
    670  
    671  
    672  
    673 /*------------------------------------------------------------------------*/ 
    674  
    675  
    676  
    677 double sy_random( double ampl ) 
    678  
    679 /* creates random number with absolute value less than (or equal to) 
    680         "amp" */ 
    681  
    682 /* parameters of routine */ 
    683 /* double               ampl;           input; max. amplitude; if zero, a new random */ 
    684 /*                                                                       series is started */ 
    685  
    686 { 
    687         /* local constants */ 
    688 #       define MAXRAND 32767.0 
    689  
    690         /* local variables */ 
    691         int             rdm;                    /* integer random result */ 
    692  
    693         /* executable code */ 
    694  
    695         if  (ampl == 0.0)  { 
    696                 srand( (unsigned)clock() ); 
    697                 return 0.0; 
    698         } else { 
    699                 rdm = rand(); 
    700                 return  ( (((double)rdm * 2.0) / MAXRAND - 1.0) * ampl ); 
    701         } /*endif*/ 
    702  
    703 } /* end of sy_random */ 
    704  
    705  
    706  
    707 /*------------------------------------------------------------------------*/ 
    708  
    709  
    710  
    711 DIFFTIME sy_difftime( void ) 
    712  
    713 /* returns time since last sy_difftime call 
    714  */ 
    715 { 
    716 #ifdef BC_CLOCK_T_AVAILABLE 
    717         /* local variables */ 
    718         static clock_t  diff;    /* time mark */ 
    719         clock_t         curr;    /* current time */ 
    720         clock_t         tmp;     /* scratch */ 
    721  
    722         /* executable code */ 
    723  
    724         curr = clock(); 
    725         tmp = curr - diff; 
    726         diff = curr; 
    727         return ((DIFFTIME)tmp/200.0); 
    728 #else 
    729         return 0.0; 
    730 #endif 
    731 } /* end of sy_difftime */ 
    732  
    733  
    734  
    735 /*------------------------------------------------------------------------*/ 
    736  
    737  
    738  
    739 void sy_localinf( char item[], char value[], STATUS *status ) 
    740  
    741 /* returns local info in "value" 
    742  * 
    743  * parameters of routine 
    744  * char       item[];     input; info item 
    745  * char       value[];    output; return value 
    746  * STATUS     *status;    output; return status 
    747  */ 
    748 { 
    749         /* local variables */ 
    750         void     *l; 
    751         long     lval; 
    752         int      i; 
    753         char     str[BC_LINELTH+1]; 
    754  
    755         /* executable code */ 
    756  
    757         if  (strcmp(item,"SHOW_MEMORY") == 0)  { 
    758                 l = Malloc( -1L ); 
    759                 sprintf( value, "   free memory: %ld bytes\n", l ); 
    760         } else if  (strncmp(item,"SHARE_COUNTER",13) == 0)  { 
    761                 sscanf( item+13, "%d", &syv_sharecounter ); 
    762         } else if  (strncmp(item,"WAIT",4) == 0)  { 
    763                 sscanf( item+4, "%ld", &lval ); 
    764                 evnt_timer( (int)lval, (int)(lval>>16) ); 
    765         } else if  (strncmp(item,"SETDRIVE",4) == 0)  { 
    766                 Dsetdrv( (int)(*value-'A') ); 
    767         } else if  (strncmp(item,"SETPATH",4) == 0)  { 
    768                 Dsetpath( value ); 
    769         } else if  (strncmp(item,"EXEC",4) == 0)  { 
    770                 if  (strlen(value) > BC_LINELTH-1)  { 
    771                         *status = SYE_STROVFL; 
    772                         return; 
    773                 } /*endif*/ 
    774                 strcpy( str+1, value ); 
    775                 str[0] = (char)strlen( value ); 
    776                 lval = Pexec( 0, item+5, str, NULL ); 
    777                 if  (lval < 0)  *status = SYE_SUBMIT; 
    778         } else if  (strncmp(item,"DRIVE_",6) == 0)  { 
    779                 i = item[6] - 'A';  /* Bitnumber */ 
    780                 strcpy( value, "N" ); 
    781                 if  ((1<<i) & Drvmap())  *value = 'Y'; 
    782         } else if  (strncmp(item,"PXHC",4) == 0)  { 
    783                 sscanf( item+4, "%d", &i ); 
    784                 gc_pixhardcopy( i, 1, value ); 
    785         } else { 
    786                 *status = SYE_LOCALINF; 
    787         } /*endif*/ 
    788  
    789 } /* end of sy_localinf */ 
    790  
    791  
    792  
    793 /*------------------------------------------------------------------------*/ 
    794  
    795  
    796 #endif /* BC_ATARI */ 
    79737 
    79838 
  • SH_SHM/branches/marcus/source/usrinpw.c

    r78 r102  
    671671 
    672672        if  ((wdw == 0) || (fp != stdin))  { 
    673 #               ifdef BC_ATARI 
    674                 if  (fp == stdin)  { 
    675                         sy_alert( "*** no GEM input.  Abort ***" ); 
    676                         return NULL; 
    677                 } /*endif*/ 
    678 #               endif 
    679673                ptr = fgets(str,maxlth,fp); 
    680674                if  (ptr != NULL)  *(str+strlen(str)-1) = '\0'; 
     
    729723 
    730724        if  ((wdw == 0) || (fp != stdin))  { 
    731 #               ifdef BC_ATARI 
    732                 if  (fp == stdin)  { 
    733                         sy_alert( "*** no GEM input.  Abort ***" ); 
    734                         return NULL; 
    735                 } /*endif*/ 
    736 #               endif 
    737725                rd = fgetc( fp ); 
    738726                return rd; 
Note: See TracChangeset for help on using the changeset viewer.