src/hello-dmx.c
changeset 68 be139319a961
parent 67 53743ecc9150
child 69 ef9fe98ebf72
equal deleted inserted replaced
67:53743ecc9150 68:be139319a961
   117 
   117 
   118     return 0;
   118     return 0;
   119 }
   119 }
   120 
   120 
   121 /*
   121 /*
       
   122  * Set output range to value.
       
   123  */
       
   124 int cmd_fill ()
       
   125 {
       
   126     if (console.argc != 4) {
       
   127         return '!';
       
   128     }
       
   129 
       
   130     byte start = console.argv[0];
       
   131     byte end = console.argv[1];
       
   132     byte skip = console.argv[2];
       
   133     byte value = console.argv[3];
       
   134     byte c;
       
   135 
       
   136     if (!start) {
       
   137         return '!';
       
   138     }
       
   139 
       
   140     if (end < start) {
       
   141         return '!';
       
   142     }
       
   143 
       
   144     if (!skip) {
       
   145         return '!';
       
   146     }
       
   147 
       
   148     for (c = start; c <= end && c < DMX_COUNT; c += skip) {
       
   149         dmx.out[c - 1] = value;
       
   150     }
       
   151 
       
   152     // XXX: -1
       
   153     if (c > dmx.count) {
       
   154         dmx.count = c;
       
   155     }
       
   156 
       
   157     return 0;
       
   158 }
       
   159 
       
   160 /*
   122  * Set output to max. zeroes
   161  * Set output to max. zeroes
   123  */
   162  */
   124 int cmd_zero ()
   163 int cmd_zero ()
   125 {
   164 {
   126     byte count;
   165     byte count;
   149 int command ()
   188 int command ()
   150 {
   189 {
   151     switch (console.cmd) {
   190     switch (console.cmd) {
   152         case 'c':       return cmd_clear();
   191         case 'c':       return cmd_clear();
   153         case 'o':       return cmd_out();
   192         case 'o':       return cmd_out();
       
   193         case 'f':       return cmd_fill();
   154         case 's':       return cmd_set();
   194         case 's':       return cmd_set();
   155         case 'z':       return cmd_zero();
   195         case 'z':       return cmd_zero();
   156 
   196 
   157         default:        return '?';
   197         default:        return '?';
   158     }
   198     }