+++ /dev/null
-#!/usr/bin/env nickle
-
-int checksum(int[] msg)
-{
- int sum = 0;
- for (int i = 0; i < dim(msg); i++) {
- sum ^= msg[i];
- sum &= 0xff;
- }
- return sum;
-}
-
-void main()
-{
- string[...] input;
- int[...] msg;
-
- setdim(input, 0);
- while (!File::end(stdin)) {
- input[dim(input)] = gets();
- }
-
- setdim(msg, 0);
- for (int i = 0; i < dim(input); i++) {
- string[*] words = String::wordsplit(input[i], " ,\t");
- for (int j = 0; j < dim(words); j++) {
- if (words[j] == "/" + "*")
- break;
- if (String::length(words[j]) > 0 &&
- Ctype::isdigit(words[j][0])) {
- msg[dim(msg)] = string_to_integer(words[j]);
- }
- }
- }
- printf("\t0xa0, 0xa1, 0x%02x, 0x%02x,\t\t/* length: %d bytes */\n",
- dim(msg) >> 8, dim(msg) & 0xff, dim(msg));
- for (int i = 0; i < dim(input); i++)
- printf("%s\n", input[i]);
- int csum = checksum(msg);
- printf ("\t0x%02x, 0x0d, 0x0a,\n",
- csum);
-}
-
-main();