home *** CD-ROM | disk | FTP | other *** search
/ Der Mediaplex Sampler - Die 6 von Plex / 6_v_plex.zip / 6_v_plex / DISK5 / DOS_01 / 4DUM12.ZIP / 4CAL15.BTM next >
Text File  |  1990-11-06  |  8KB  |  210 lines

  1. :***************************************************************************
  2. :
  3. :Name: 4Cal15.BTM (4DOS 3.01 required)          Timestamp: 12-01-90 09:54pm
  4. :      Copyright (c) 1990, Dick Botbyl          CIS 71571,151
  5. :
  6. :Description: Shows calendar on screen
  7. :
  8. :***************************************************************************
  9.  
  10. :START
  11.   @echo off
  12.   setlocal^UNSET *^UNALIAS *
  13.   *set _ccol=%@eval[(%_columns-80)/2]
  14.   *set mon_num=%@substr[%_DATE,0,2]
  15.   *set _day=%@substr[%_DATE,3,2]
  16.   *set _short_yr=%@substr[%_DATE,6,2]
  17.   *set _long_yr=%@eval[%_short_yr+1900]
  18.   *set _BClr=cya on blu
  19.                                          :Put up the calendar form
  20.   screen 1 1
  21.   drawbox 5 %@eval[%_ccol+24] 22 %@eval[%_ccol+59] 1 bla on bla fill bla
  22.   drawbox 4 %@eval[%_ccol+22] 21 %@eval[%_ccol+57] 1 %_BClr fill blu
  23.   drawbox 7 %@eval[%_ccol+22] 19 %@eval[%_ccol+57] 1 %_BClr fill blu
  24.   scrput  4 %@eval[%_ccol+35] bri yel on blu ` Calendar `
  25.   scrput  6 %@eval[%_ccol+22] %_BClr │ Mon  Tue  Wed  Thu  Fri  Sat Sun │
  26.   scrput 20 %@eval[%_ccol+22] %_BClr │ Arrow keys change months   [Esc] │
  27.  
  28. :BEGIN_TO                                :WHICH CALENDAR TYPE NEEDED
  29.   IFF %_short_yr LT 72 THEN
  30.      *set _short_yr=%@eval[%_short_yr +28]
  31.      GOTO BEGIN_TO
  32.   ENDIFF
  33.   IFF %_short_yr GT 99 THEN
  34.      *set _short_yr=%@eval[%_short_yr -28]
  35.      GOTO BEGIN_TO
  36.   ENDIFF
  37.   IF %_short_yr EQ 72 *set mon_type=13
  38.   IF %_short_yr EQ 73 *set mon_type= 1
  39.   IF %_short_yr EQ 74 *set mon_type= 2
  40.   IF %_short_yr EQ 75 *set mon_type= 3
  41.   IF %_short_yr EQ 76 *set mon_type=11
  42.   IF %_short_yr EQ 77 *set mon_type= 7
  43.   IF %_short_yr EQ 78 *set mon_type= 8
  44.   IF %_short_yr EQ 79 *set mon_type= 1
  45.   IF %_short_yr EQ 80 *set mon_type= 9
  46.   IF %_short_yr EQ 81 *set mon_type= 4
  47.   IF %_short_yr EQ 82 *set mon_type= 5
  48.   IF %_short_yr EQ 83 *set mon_type= 6
  49.   IF %_short_yr EQ 84 *set mon_type=14
  50.   IF %_short_yr EQ 85 *set mon_type= 2
  51.   IF %_short_yr EQ 86 *set mon_type= 3
  52.   IF %_short_yr EQ 87 *set mon_type= 4
  53.   IF %_short_yr EQ 88 *set mon_type=12
  54.   IF %_short_yr EQ 89 *set mon_type= 7
  55.   IF %_short_yr EQ 90 *set mon_type= 1
  56.   IF %_short_yr EQ 91 *set mon_type= 2
  57.   IF %_short_yr EQ 92 *set mon_type=10
  58.   IF %_short_yr EQ 93 *set mon_type= 5
  59.   IF %_short_yr EQ 94 *set mon_type= 6
  60.   IF %_short_yr EQ 95 *set mon_type= 7
  61.   IF %_short_yr EQ 96 *set mon_type= 8
  62.   IF %_short_yr EQ 97 *set mon_type= 3
  63.   IF %_short_yr EQ 98 *set mon_type= 4
  64.   IF %_short_yr EQ 99 *set mon_type= 5
  65.                                           :WHAT MONTH AND HOW MANY DAYS
  66.   *set _num_days= 31
  67.   IFF %mon_num EQ 01 THEN
  68.     *set _mon_str=January
  69.     *set _start_day= 1
  70.   ENDIFF
  71.   IFF %mon_num EQ 02 THEN
  72.     *set _start_day= 4
  73.     *set _num_days= 28
  74.     *set _mon_str=February
  75.   ENDIFF
  76.   IFF %mon_num EQ 03 THEN
  77.     *set _mon_str=March
  78.     *set _start_day= 4
  79.   ENDIFF
  80.   IFF %mon_num EQ 04 THEN
  81.     *set _num_days= 30
  82.     *set _mon_str=April
  83.     *set _start_day= 7
  84.   ENDIFF
  85.   IFF %mon_num EQ 05 THEN
  86.     *set _mon_str=May
  87.     *set _start_day= 2
  88.   ENDIFF
  89.   IFF %mon_num EQ 06 THEN
  90.     *set _num_days= 30
  91.     *set _mon_str=June
  92.     *set _start_day= 5
  93.   ENDIFF
  94.   IFF %mon_num EQ 07 THEN
  95.     *set _mon_str=July
  96.     *set _start_day= 7
  97.   ENDIFF
  98.   IFF %mon_num EQ 08 THEN
  99.     *set _mon_str=August
  100.     *set _start_day= 3
  101.   ENDIFF
  102.   IFF %mon_num EQ 09 THEN
  103.     *set _num_days= 30
  104.     *set _mon_str=September
  105.     *set _start_day= 6
  106.   ENDIFF
  107.   IFF %mon_num EQ 10 THEN
  108.     *set _mon_str=October
  109.     *set _start_day= 1
  110.   ENDIFF
  111.   IFF %mon_num EQ 11 THEN
  112.     *set _num_days= 30
  113.     *set _mon_str=November
  114.     *set _start_day= 4
  115.   ENDIFF
  116.   IFF %mon_num EQ 12 THEN
  117.     *set _mon_str=December
  118.     *set _start_day= 6
  119.   ENDIFF
  120.   *set _e_val=%@eval[(%_num_days-22)*5]
  121.   *set _f_val=%@eval[(%_num_days-29)*5]
  122.   *set _xcal=`│    │    │    │    │    │    │    │`
  123.   *set _zcal=`│    │    │                        │`
  124.   *set _acal=`│    │    │    │    │    │    │  1 │  2 │  3 │  4 │  5 │  6 │  7 │`
  125.   *set _bcal=`│  2 │  3 │  4 │  5 │  6 │  7 │  8 │  9 │ 10 │ 11 │ 12 │ 13 │ 14 │`
  126.   *set _ccal=`│  9 │ 10 │ 11 │ 12 │ 13 │ 14 │ 15 │ 16 │ 17 │ 18 │ 19 │ 20 │ 21 │`
  127.   *set _dcal=`│ 16 │ 17 │ 18 │ 19 │ 20 │ 21 │ 22 │ 23 │ 24 │ 25 │ 26 │ 27 │ 28 │`
  128.   *set _ecal=`│ 23 │ 24 │ 25 │ 26 │ 27 │ 28 │ 29 │ 30 │ 31 │`
  129.   *set _fcal=`│ 30 │ 31 │`
  130.   *set _ecal=%@substr[%_ecal,0,%_e_val]
  131.   *set _fcal=%@substr[%_fcal,0,%_f_val]
  132.                                                 :WHERE TO PUT FIRST DAY
  133.   IFF %mon_type GT 7 THEN
  134.     IF %mon_num GT 2 *set _start_day=%@eval[%_start_day + 1]
  135.   ENDIFF
  136.   IF %mon_type GT 7 *set mon_type=%@eval[%mon_type -7]
  137.   *set _start_day=%@eval[%_start_day+%mon_type]
  138.   *set _start_day=%@eval[%_start_day- 1]
  139.   IF %_start_day GT 7 **set _start_day=%@eval[%_start_day - 7]
  140.   *set strt_ln= 8
  141.   *set start_day_out=%@eval[35-(%_start_day*5)]
  142.   IF %start_day_out GT 34 *set start_day_out=0
  143.  
  144. :PUT_WEEKS
  145.   scrput  8 %@eval[%_ccol+22] %_BClr %@substr[%_acal,%start_day_out,37]
  146.   scrput 10 %@eval[%_ccol+22] %_BClr %@substr[%_bcal,%start_day_out,37]
  147.   scrput 12 %@eval[%_ccol+22] %_BClr %@substr[%_ccal,%start_day_out,37]
  148.   scrput 14 %@eval[%_ccol+22] %_BClr %@substr[%_dcal,%start_day_out,37]
  149.   scrput 16 %@eval[%_ccol+22] %_BClr %_xcal
  150.   scrput 18 %@eval[%_ccol+22] %_BClr %_zcal
  151.   scrput 16 %@eval[%_ccol+22] %_BClr %@substr[%_ecal,%start_day_out,37]
  152.   IFF "%@substr[%_fcal,%start_day_out,37]" NE "" THEN
  153.     scrput 18 %@eval[%_ccol+22] %_BClr %@substr[%_fcal,%start_day_out,37]
  154.   ENDIFF
  155.   *set start_day_out=%@eval[(%_start_day*5)+14+5*%_day]
  156.  
  157. :PUT_DAY                                       :PUT TODAY ON CALENDAR
  158.     IFF %start_day_out GT 58 THEN
  159.       *set start_day_out= %@eval[%start_day_out - 35]
  160.       *set strt_ln= %@eval[%strt_ln +2]
  161.       GOTO PUT_DAY
  162.     ENDIFF
  163.     IFF %_day LT 10 THEN
  164.       *set _day=%@substr[%_DATE,4,1]
  165.       *set start_day_out= %@eval[%start_day_out + 1]
  166.     ENDIFF
  167.     *set start_day_out= %@eval[%start_day_out + %_ccol]
  168.     scrput %strt_ln %start_day_out bri gre on blu %_day
  169.  
  170. :PUTLINES
  171.   drawbox 7 %@eval[%_ccol+27] 19 %@eval[%_ccol+32] 1 %_BClr
  172.   drawbox 7 %@eval[%_ccol+37] 17 %@eval[%_ccol+42] 1 %_BClr
  173.   drawbox 7 %@eval[%_ccol+47] 17 %@eval[%_ccol+52] 1 %_BClr
  174.   scrput 17 %@eval[%_ccol+22] %_BClr ├────┼────┼────┴────┴────┴────┴────┤
  175.   drawbox 18 %@eval[%_ccol+36] 18 %@eval[%_ccol+56] 0 %_BClr
  176.   scrput 18 %@eval[%_ccol+37] bri gre on blu %_mon_str
  177.   scrput 18 %@eval[%_ccol+48] bri gre on blu %_long_yr
  178.   drawbox  9 %@eval[%_ccol+22] 11 %@eval[%_ccol+57] 1 %_BClr
  179.   drawbox 11 %@eval[%_ccol+22] 13 %@eval[%_ccol+57] 1 %_BClr
  180.   drawbox 13 %@eval[%_ccol+22] 15 %@eval[%_ccol+57] 1 %_BClr
  181.   drawbox 15 %@eval[%_ccol+22] 17 %@eval[%_ccol+57] 1 %_BClr
  182.   drawbox 19 %@eval[%_ccol+23] 19 %@eval[%_ccol+56] 1 %_BClr
  183.  
  184. :SWITCH                                          :LOOK AT DIFFERENT MONTH
  185.   inkey %%Key_code > nul
  186.      IF %Key_code EQ @71 GOTO START
  187.      IF %Key_code EQ @77 *set mon_num=%@eval[%mon_num+1]
  188.      IFF %mon_num GT 12 THEN
  189.         *set mon_num=1
  190.         *set _long_yr=%@eval[%_long_yr+1]
  191.      ENDIFF
  192.      IF %Key_code EQ @75 *set mon_num=%@eval[%mon_num-1]
  193.      IFF %mon_num LT 1 THEN
  194.         *set mon_num=12
  195.         *set _long_yr=%@eval[%_long_yr-1]
  196.      ENDIFF
  197.      IF %Key_code EQ @72 *set _long_yr=%@eval[%_long_yr+1]
  198.      IF %Key_code EQ @80 *set _long_yr=%@eval[%_long_yr-1]
  199.      IF %Key_code EQ @73 *set _long_yr=%@eval[%_long_yr+5]
  200.      IF %Key_code EQ @81 *set _long_yr=%@eval[%_long_yr-5]
  201.      IF "%Key_code" EQ "" GOTO FINI
  202.      IF %mon_num LT 10 **set mon_num=0%mon_num
  203.      *set _short_yr=%@eval[%_long_yr-1900]
  204.   UNSET Key_code mon_type start_day_out _start_day
  205.   screen 1 1
  206.   GOTO BEGIN_TO
  207.  
  208. :FINI
  209.  endlocal
  210.  screen 1 1