FreeCalypso > hg > fc-magnetite
annotate src/gpf3/ccd/t30_ident.c @ 194:62da0aa197de
sm.lib compiles
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Fri, 14 Oct 2016 00:38:14 +0000 | 
| parents | c41a534f33c6 | 
| children | 
| rev | line source | 
|---|---|
| 2 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 2 +----------------------------------------------------------------------------- | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 3 | Project : | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 4 | Modul : t30_ident.c | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 5 +----------------------------------------------------------------------------- | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 6 | Copyright 2002 Texas Instruments Berlin, AG | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 7 | All rights reserved. | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 8 | | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 9 | This file is confidential and a trade secret of Texas | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 10 | Instruments Berlin, AG | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 11 | The receipt of or possession of this file does not convey | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 12 | any rights to reproduce or disclose its contents or to | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 13 | manufacture, use, or sell anything it may describe, in | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 14 | whole, or in part, without the specific written consent of | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 15 | Texas Instruments Berlin, AG. | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 16 +----------------------------------------------------------------------------- | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 17 | Purpose : Definition of encoding and decoding functions for T30_IDENT elements | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 18 +----------------------------------------------------------------------------- | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 19 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 20 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 21 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 22 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 23 * standard definitions like GLOBAL, UCHAR, ERROR etc. | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 24 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 25 #include "typedefs.h" | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 26 #include "header.h" | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 27 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 28 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 29 * Prototypes of ccd (USE_DRIVER EQ undef) for prototypes only | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 30 * look at ccdapi.h | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 31 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 32 #undef USE_DRIVER | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 33 #include "ccdapi.h" | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 34 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 35 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 36 * Types and functions for bit access and manipulation | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 37 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 38 #include "ccd_globs.h" | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 39 #include "bitfun.h" | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 40 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 41 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 42 * Prototypes of ccd internal functions | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 43 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 44 #include "ccd.h" | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 45 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 46 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 47 * Declaration of coder/decoder tables | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 48 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 49 #include "ccdtable.h" | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 50 #include "ccddata.h" | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 51 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 52 #ifndef RUN_INT_RAM | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 53 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 54 +--------------------------------------------------------------------+ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 55 | PROJECT : CCD (6144) MODULE : CCD | | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 56 | STATE : code ROUTINE : cdc_t30_ident_decode | | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 57 +--------------------------------------------------------------------+ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 58 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 59 PURPOSE : | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 60 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 61 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 62 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 63 SHORT cdc_t30_ident_decode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs) | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 64 { | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 65 ULONG max_rep; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 66 BOOL is_variable; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 67 UBYTE digBuffer[30], bit, digT30, digASCII; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 68 UBYTE *addr_c_xxx; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 69 int i, repeat; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 70 ULONG cix_ref, num_prolog_steps, prolog_step_ref; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 71 register UBYTE *ident; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 72 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 73 #ifdef DEBUG_CCD | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 74 #ifndef CCD_SYMBOLS | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 75 TRACE_CCD (globs, "cdc_t30_ident_decode()"); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 76 #else | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 77 TRACE_CCD (globs, "cdc_t30_ident_decode() %s", ccddata_get_alias((USHORT) e_ref, 1)); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 78 #endif | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 79 #endif | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 80 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 81 cix_ref = melem[e_ref].calcIdxRef; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 82 num_prolog_steps = calcidx[cix_ref].numPrologSteps; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 83 prolog_step_ref = calcidx[cix_ref].prologStepRef; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 84 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 85 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 86 * if this element is conditional, check the condition | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 87 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 88 if (calcidx[cix_ref].numCondCalcs NEQ 0 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 89 AND ! ccd_conditionOK (e_ref, globs)) | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 90 return 1; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 91 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 92 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 93 * if this element have a defined Prolog | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 94 * we have to process it before decoding the bitstream | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 95 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 96 if (num_prolog_steps) | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 97 { | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 98 ccd_performOperations (num_prolog_steps, prolog_step_ref, globs); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 99 } | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 100 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 101 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 102 * if this element is repeatable, and the number of | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 103 * repeats depends on another element, calculate the repeater | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 104 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 105 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 106 if (melem[e_ref].repType NEQ ' ') | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 107 { | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 108 ULONG rep; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 109 is_variable = ccd_calculateRep (e_ref, &rep, &max_rep, globs); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 110 repeat = rep; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 111 } | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 112 else | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 113 { | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 114 repeat = 1; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 115 is_variable = FALSE; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 116 } | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 117 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 118 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 119 * setup the offset into the C-structure for this element | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 120 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 121 globs->pstructOffs = melem[e_ref].structOffs; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 122 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 123 if (melem[e_ref].optional) | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 124 { | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 125 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 126 * for optional elements set the valid-flag | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 127 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 128 globs->pstruct[globs->pstructOffs++] = (UBYTE) TRUE; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 129 } | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 130 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 131 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 132 if (is_variable) | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 133 { | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 134 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 135 * for variable sized elements store the min-value | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 136 * as counter into the C-Structure (c_xxx). | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 137 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 138 addr_c_xxx = (UBYTE *) (globs->pstruct + globs->pstructOffs++); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 139 if (max_rep > 255) | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 140 globs->pstructOffs++; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 141 } | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 142 else | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 143 addr_c_xxx = NULL; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 144 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 145 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 146 * calculate the address of the Most Significant Digit | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 147 * of the T30_IDENT element in the C-struct | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 148 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 149 ident = (UBYTE *) (globs->pstruct + globs->pstructOffs); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 150 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 151 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 152 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 153 * now read 'repeat' T30_IDENT digits and convert them | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 154 * into ASCII. | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 155 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 156 i=0; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 157 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 158 while (!bf_endOfBitstream(globs) AND i<repeat) | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 159 { | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 160 digT30 = bf_decodeByteNumber (8, globs); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 161 #ifdef DEBUG_CCD | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 162 TRACE_CCD (globs, "T30 digit (%X) read", digT30); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 163 #endif | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 164 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 165 * conversion T30->ASCII | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 166 * reverse the bitorder of each byte | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 167 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 168 digASCII = 0; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 169 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 170 for (bit = 0; bit < 8; bit++) | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 171 { | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 172 digASCII <<= 1; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 173 digASCII |= (digT30 & 0x01); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 174 digT30 >>= 1; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 175 } | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 176 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 177 digBuffer[i] = digASCII; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 178 #ifdef DEBUG_CCD | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 179 TRACE_CCD (globs, " converted to %X = %c", digBuffer[i], digBuffer[i]); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 180 #endif | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 181 i++; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 182 } | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 183 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 184 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 185 * eleminate leading spaces | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 186 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 187 while (i > 0 AND digBuffer[i-1] EQ ' ') | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 188 { | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 189 #ifdef DEBUG_CCD | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 190 TRACE_CCD (globs, "eliminating leading space"); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 191 #endif | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 192 i--; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 193 } | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 194 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 195 repeat = i; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 196 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 197 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 198 if (addr_c_xxx NEQ NULL) | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 199 { | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 200 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 201 * store the number of digits into the | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 202 * c_xxx variable if there is one. | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 203 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 204 if (max_rep > 65535) | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 205 { | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 206 ULONG *addr_c_xxx_u32; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 207 addr_c_xxx_u32 = (ULONG *)addr_c_xxx; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 208 *addr_c_xxx_u32 = (ULONG) repeat; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 209 #ifdef DEBUG_CCD | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 210 TRACE_CCD (globs, "storing %d into counter var at (%lx)", | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 211 repeat, addr_c_xxx_u32); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 212 #endif | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 213 } | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 214 else if (max_rep > 255) | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 215 { | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 216 USHORT *addr_c_xxx_u16; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 217 addr_c_xxx_u16 = (USHORT *)addr_c_xxx; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 218 *addr_c_xxx_u16 = (USHORT) repeat; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 219 #ifdef DEBUG_CCD | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 220 TRACE_CCD (globs, "storing %d into counter var at (%lx)", | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 221 repeat, addr_c_xxx_u16); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 222 #endif | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 223 } | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 224 else | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 225 { | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 226 *addr_c_xxx = (UBYTE) repeat; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 227 #ifdef DEBUG_CCD | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 228 TRACE_CCD (globs, "storing %d into counter var at (%lx)", | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 229 repeat, | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 230 addr_c_xxx); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 231 #endif | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 232 } | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 233 } | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 234 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 235 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 236 * store the digits in reverse order | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 237 * into the C-Structure variable | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 238 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 239 #ifdef DEBUG_CCD | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 240 TRACE_CCD (globs, "storing %d digits into cstruct at (%lx)", | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 241 repeat, | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 242 ident); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 243 #endif | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 244 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 245 for (i=0; i<repeat; i++) | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 246 ident[i] = digBuffer[(repeat-1)-i]; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 247 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 248 return 1; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 249 } | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 250 #endif /* !RUN_INT_RAM */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 251 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 252 #ifndef RUN_INT_RAM | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 253 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 254 +--------------------------------------------------------------------+ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 255 | PROJECT : CCD (6144) MODULE : CCD | | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 256 | STATE : code ROUTINE : cdc_t30_ident_encode | | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 257 +--------------------------------------------------------------------+ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 258 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 259 PURPOSE : | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 260 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 261 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 262 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 263 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 264 SHORT cdc_t30_ident_encode (const ULONG c_ref, const ULONG e_ref, T_CCD_Globs *globs) | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 265 { | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 266 ULONG repeat, max_rep; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 267 UBYTE digBuffer[30], bit, digT30, digASCII; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 268 ULONG i; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 269 ULONG cix_ref, num_prolog_steps, prolog_step_ref; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 270 register UBYTE *ident; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 271 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 272 #ifdef DEBUG_CCD | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 273 #ifndef CCD_SYMBOLS | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 274 TRACE_CCD (globs, "cdc_t30_ident_encode()"); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 275 #else | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 276 TRACE_CCD (globs, "cdc_t30_ident_encode() %s", ccddata_get_alias((USHORT) e_ref, 1)); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 277 #endif | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 278 #endif | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 279 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 280 cix_ref = melem[e_ref].calcIdxRef; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 281 num_prolog_steps = calcidx[cix_ref].numPrologSteps; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 282 prolog_step_ref = calcidx[cix_ref].prologStepRef; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 283 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 284 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 285 * if this element is conditional, check the condition | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 286 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 287 if (calcidx[cix_ref].numCondCalcs NEQ 0 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 288 AND ! ccd_conditionOK (e_ref, globs)) | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 289 return 1; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 290 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 291 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 292 * if this element have a defined Prolog | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 293 * we have to process it before encoding | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 294 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 295 if (num_prolog_steps) | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 296 { | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 297 ccd_performOperations (num_prolog_steps, prolog_step_ref, globs); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 298 } | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 299 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 300 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 301 * setup the offset into the C-structure for this element | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 302 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 303 globs->pstructOffs = melem[e_ref].structOffs; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 304 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 305 if (melem[e_ref].optional) | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 306 { | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 307 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 308 * for optional elements check the valid-flag | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 309 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 310 if (globs->pstruct[globs->pstructOffs++] == FALSE) | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 311 { | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 312 return 1; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 313 } | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 314 #ifdef DEBUG_CCD | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 315 else if (globs->pstruct [melem[e_ref].structOffs] != TRUE) | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 316 { | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 317 TRACE_CCD (globs, "Ambiguous value for valid flag!\n...assumed 1 for ccdID=%d", | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 318 e_ref); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 319 } | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 320 #endif | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 321 } | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 322 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 323 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 324 * if this element is repeatable, and the number of | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 325 * repeats depends on another element, calculate the repeater | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 326 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 327 if (melem[e_ref].repType EQ 'v' OR melem[e_ref].repType EQ 'i') | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 328 { | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 329 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 330 * for variable sized elements read the amount | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 331 * of repeats out of the C-Structure (c_xxx). | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 332 * If the number of repeats given by the C-Structure | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 333 * exceeds the allowed value (maxRepeat) CCD gives a warning! | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 334 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 335 if (melem[e_ref].maxRepeat > 255) | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 336 { | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 337 ULONG count = (ULONG) (* (USHORT *)(globs->pstruct + globs->pstructOffs++)); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 338 repeat = MINIMUM (count, (ULONG) melem[e_ref].maxRepeat); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 339 if (repeat < count) | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 340 ccd_recordFault (globs, ERR_MAX_REPEAT, CONTINUE, | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 341 (USHORT) e_ref, globs->pstruct + globs->pstructOffs); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 342 } | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 343 else | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 344 { | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 345 repeat = (ULONG) MINIMUM (globs->pstruct[globs->pstructOffs], | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 346 melem[e_ref].maxRepeat); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 347 if ( repeat < (ULONG) (globs->pstruct[globs->pstructOffs]) ) | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 348 ccd_recordFault (globs, ERR_MAX_REPEAT, CONTINUE, | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 349 (USHORT) e_ref, globs->pstruct + globs->pstructOffs); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 350 } | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 351 globs->pstructOffs++; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 352 max_rep = (ULONG) melem[e_ref].maxRepeat; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 353 } | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 354 else | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 355 if (melem[e_ref].repType EQ 'c') | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 356 { | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 357 repeat = (ULONG) melem[e_ref].maxRepeat; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 358 max_rep = (ULONG) melem[e_ref].maxRepeat; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 359 } | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 360 else | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 361 { | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 362 repeat = 1; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 363 max_rep = 1; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 364 } | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 365 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 366 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 367 * setup the read pointer to the byte array that contain | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 368 * the ident number. | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 369 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 370 ident = (UBYTE *) (globs->pstruct + globs->pstructOffs); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 371 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 372 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 373 * read the digits in reverse order out of the C-Structure variable. | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 374 * (filled up with blanks to the maxRepeat) | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 375 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 376 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 377 i=0; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 378 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 379 while (i < max_rep) | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 380 { | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 381 if (i < repeat) | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 382 digBuffer[i] = ident[(repeat-1)-i]; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 383 else | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 384 { | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 385 #ifdef DEBUG_CCD | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 386 TRACE_CCD (globs, "appending space char"); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 387 #endif | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 388 digBuffer[i] = ' '; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 389 } | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 390 i++; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 391 } | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 392 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 393 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 394 * now read 'repeat' T30_IDENT digits and convert them | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 395 * into ASCII. | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 396 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 397 i=0; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 398 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 399 while (i < max_rep) | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 400 { | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 401 digASCII = digBuffer[i]; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 402 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 403 #ifdef DEBUG_CCD | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 404 TRACE_CCD (globs, "ASCII digit (%X) = %c ", (USHORT) digASCII, digASCII); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 405 #endif | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 406 /* | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 407 * conversion ASCII->T30 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 408 * reverse the bitorder of each byte | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 409 */ | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 410 digT30 = 0; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 411 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 412 for (bit = 0; bit < 8; bit++) | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 413 { | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 414 digT30 <<= 1; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 415 digT30 |= (digASCII & 0x01); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 416 digASCII >>= 1; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 417 } | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 418 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 419 #ifdef DEBUG_CCD | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 420 TRACE_CCD (globs, " converted to %X", (USHORT) digT30); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 421 #endif | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 422 bf_codeByteNumber (8, digT30, globs); | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 423 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 424 i++; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 425 } | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 426 | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 427 return 1; | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 428 } | 
| 
c41a534f33c6
src/gpf3: preened GPF goo from TCS3.2
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 429 #endif /* !RUN_INT_RAM */ | 
