version 1.2, 2005/01/04 21:59:23
|
version 1.3, 2005/01/04 22:25:48
|
Line 1
|
Line 1
|
/* |
/* |
* SI table generator (EN 300468) |
* SI table generator (EN 300468) |
* Copyright (C) 2004 Oskar Schirmer (schirmer@scara.com) |
* Copyright (C) 2004,2005 Oskar Schirmer (schirmer@scara.com) |
* |
* |
* This program is free software; you can redistribute it and/or modify |
* This program is free software; you can redistribute it and/or modify |
* it under the terms of the GNU General Public License as published by |
* it under the terms of the GNU General Public License as published by |
Line 1763 static int gentab_sit(struct sitab *st,
|
Line 1763 static int gentab_sit(struct sitab *st,
|
{ |
{ |
unsigned char *p = b; |
unsigned char *p = b; |
unsigned long *t = st->tab; |
unsigned long *t = st->tab; |
|
unsigned char c; |
|
int i; |
*p = st->tableid; |
*p = st->tableid; |
return p-b; |
p += 3; |
|
*p++ = 0xFF; |
|
*p++ = 0xFF; |
|
*p++ = 0xC0 | (st->version << 1) | 0x01; |
|
*p++ = 0; |
|
*p++ = 0; |
|
p = gendescr(st, p, &t, 0xF0); |
|
i = *t++; |
|
while (i > 0) { |
|
*p++ = *t >> 8; |
|
*p++ = *t++; |
|
c = *t++ << 4; |
|
p = gendescr(st, p, &t, 0x80 | c); |
|
i -= 1; |
|
} |
|
i = p-b+1; |
|
b[1] = 0xF0 | (i >> 8); |
|
b[2] = i; |
|
crc32_calc(b, i-1, p); |
|
return p-b+4; |
} |
} |
|
|
const static signed char syntax_dit[] = { |
const static signed char syntax_dit[] = { |
Line 1776 static int gentab_dit(struct sitab *st,
|
Line 1797 static int gentab_dit(struct sitab *st,
|
{ |
{ |
unsigned char *p = b; |
unsigned char *p = b; |
unsigned long *t = st->tab; |
unsigned long *t = st->tab; |
*p = st->tableid; |
*p++ = st->tableid; |
|
*p++ = 0xF0; |
|
*p++ = 0x01; |
|
*p++ = (*t++ << 7) | 0x7F; |
return p-b; |
return p-b; |
} |
} |
|
|