home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 16 / 16.iso / t / t189 / 1.img / BAR / JBC_B39.BAS < prev    next >
Encoding:
BASIC Source File  |  1993-08-14  |  35.2 KB  |  1,046 lines

  1. start:
  2.  ON ERROR GOTO 0
  3.  CLS
  4.  DEFLNG A-Z
  5.  DIM nub$(256)
  6.  DEF fnCode (xi AS STRING)
  7.     xiln = LEN(xi$)
  8.     cdln = LEN(cd39$)
  9.     IF xiln < 1 THEN
  10.         xo = 12
  11.     ELSE
  12.         FOR ix = 1 TO xiln
  13.             xx$ = MID$(xi$, ix, 1)
  14.             FOR jx = 1 TO cdln
  15.                 xo = ix
  16.                 IF xx$ = MID$(cd39$, jx, 1) THEN
  17.                     xo = 0
  18.                     jx = cdln + 2
  19.                 END IF
  20.             NEXT jx
  21.             IF xo <> 0 THEN ix = xiln + 2
  22.         NEXT ix
  23.     END IF
  24.     fnCode = xo
  25.  END DEF
  26.  '
  27.  DEF fninc$ (xi AS STRING, x AS INTEGER, stp AS INTEGER)
  28.     xx$ = MID$(xi$, x)
  29.     xxl = LEN(xx$)
  30.     FOR ix = xxl TO 1 STEP -1
  31.         IF ix = xxl OR (stp = 1 AND xxi = 1) OR (stp = -1 AND xxi = 10) OR (stp = 1 AND xxi = 11) OR (stp = -1 AND xxi = 36) THEN
  32.             xxi = INSTR(1, cd39$, MID$(xx$, ix, 1))
  33.             IF xxi <= 10 THEN
  34.                 IF stp = -1 THEN
  35.                     IF xxi > 1 THEN
  36.                         xxi = xxi - 1
  37.                     ELSEIF xxi = 1 THEN
  38.                         xxi = 10
  39.                     END IF
  40.                 ELSE
  41.                     IF xxi < 10 THEN
  42.                         xxi = xxi + 1
  43.                     ELSEIF xxi = 10 THEN
  44.                         xxi = 1
  45.                     END IF
  46.                 END IF
  47.                 a$ = MID$(cd39$, xxi, 1)
  48.                 MID$(xx$, ix) = a$
  49.             ELSE
  50.                 IF stp = -1 THEN
  51.                     IF xxi > 11 THEN
  52.                         xxi = xxi - 1
  53.                     ELSEIF xxi = 11 THEN
  54.                         xxi = 36
  55.                     END IF
  56.                 ELSE
  57.                     IF xxi < 36 THEN
  58.                         xxi = xxi + 1
  59.                     ELSEIF xxi = 36 THEN
  60.                         xxi = 11
  61.                     END IF
  62.                 END IF
  63.                 a$ = MID$(cd39$, xxi, 1)
  64.                 MID$(xx$, ix) = a$
  65.             END IF
  66.   ' PRINT ix, xxi, a$, xx$
  67.         END IF
  68.     NEXT ix
  69.     xo$ = MID$(xi$, 1, x - 1) + xx$
  70.     fninc$ = xo$
  71.  END DEF
  72.  '
  73.  DEF fnchksum$ (xi AS STRING)
  74.     xil = LEN(xi$)
  75.     xs = 0
  76.     FOR xii = 1 TO xil
  77.         xxii = INSTR(1, cd39$, MID$(xi$, xii, 1))
  78.         xs = xs + xxii - 1
  79.     NEXT xii
  80.     xo$ = xi$ + MID$(cd39$, (xs MOD 43) + 1, 1)
  81.     fnchksum$ = xo$
  82.  END DEF
  83.  CLS
  84.  cd39$ = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%*"
  85.  '
  86.  '
  87.  LOCATE 23, 5: COLOR 12: PRINT "     -----------------------------------------------";
  88.  LOCATE 24, 10: COLOR 1: PRINT "WARNING: "; : COLOR 6: PRINT "      Press any Key for begin";
  89.  '
  90.  COLOR 7
  91.  LOCATE 1, 22: PRINT "Print Program for Code 39"
  92.  LOCATE 2, 22: PRINT "========================="
  93.  LOCATE 3, 5: PRINT CHR$(218);
  94.  PRINT STRING$(60, CHR$(196));
  95.  PRINT CHR$(191)
  96.  FOR i = 4 TO 15
  97.     LOCATE i, 5: PRINT CHR$(179)
  98.     LOCATE i, 66: PRINT CHR$(179)
  99.  NEXT i
  100.  FOR i = 1 TO 21
  101.     LOCATE 16, i * 3: PRINT CHR$(36) + CHR$(36) + "-";
  102.  NEXT i
  103.  PRINT CHR$(36) + CHR$(36)
  104.  LOCATE 6, 20: PRINT CHR$(179); CHR$(221); CHR$(221); CHR$(186); CHR$(221); CHR$(179); CHR$(179); CHR$(221); CHR$(186); CHR$(221); CHR$(221); CHR$(186)
  105.  LOCATE 6, 40: PRINT CHR$(179); CHR$(221); CHR$(221); CHR$(186); CHR$(221); CHR$(179); CHR$(179); CHR$(221); CHR$(186); CHR$(221); CHR$(221); CHR$(186)
  106.  LOCATE 7, 20: PRINT CHR$(179); CHR$(221); CHR$(221); CHR$(186); CHR$(221); CHR$(179); CHR$(179); CHR$(221); CHR$(186); CHR$(221); CHR$(221); CHR$(186)
  107.  LOCATE 7, 40: PRINT CHR$(179); CHR$(221); CHR$(221); CHR$(186); CHR$(221); CHR$(179); CHR$(179); CHR$(221); CHR$(186); CHR$(221); CHR$(221); CHR$(186)
  108.  LOCATE 11, 20: PRINT CHR$(179); CHR$(221); CHR$(221); CHR$(186); CHR$(221); CHR$(179); CHR$(179); CHR$(221); CHR$(186); CHR$(221); CHR$(221); CHR$(186)
  109.  LOCATE 11, 40: PRINT CHR$(179); CHR$(221); CHR$(221); CHR$(186); CHR$(221); CHR$(179); CHR$(179); CHR$(221); CHR$(186); CHR$(221); CHR$(221); CHR$(186)
  110.  LOCATE 12, 20: PRINT CHR$(179); CHR$(221); CHR$(221); CHR$(186); CHR$(221); CHR$(179); CHR$(179); CHR$(221); CHR$(186); CHR$(221); CHR$(221); CHR$(186)
  111.  LOCATE 12, 40: PRINT CHR$(179); CHR$(221); CHR$(221); CHR$(186); CHR$(221); CHR$(179); CHR$(179); CHR$(221); CHR$(186); CHR$(221); CHR$(221); CHR$(186)
  112.  '
  113.  t1 = (VAL(MID$(TIME$, 7, 2)) + 20) MOD 60
  114.  DO
  115.  t = VAL(MID$(TIME$, 7, 2))
  116.  COLOR (t MOD 10 + 1)
  117.  LOCATE 5, 22: PRINT "JBC-BAR01           JBC-BAR02"
  118.  LOCATE 8, 23: PRINT "*BAR01B*            *BAR02C*"
  119.  LOCATE 10, 22: PRINT "JBC-BAR03           JBC-BAR04"
  120.  LOCATE 13, 23: PRINT "*BAR03D*            *BAR04E*"
  121.  LOOP UNTIL t = t1 OR LEN(INKEY$) > 0
  122. '
  123.  bit$ = "3..10"
  124.  lnx = 10
  125.  ii = 0
  126.  COLOR 0
  127.  LOCATE 23, 5: PRINT "                                                    ";
  128.  LOCATE 24, 10: PRINT "                                                    ";
  129.  DO
  130.     linex = 17
  131.     x = LEN(bit$)
  132.     COLOR 7
  133.     LOCATE 5, 22: PRINT "JBC-BAR01            JBC-BAR02"
  134.     LOCATE 8, 23: PRINT "*BAR01B*            *BAR02C*"
  135.     LOCATE 10, 22: PRINT "JBC-BAR03            JBC-BAR04"
  136.     LOCATE 13, 23: PRINT "*BAR03D*            *BAR04E*"
  137.     COLOR 6
  138.     LOCATE 5, 26: PRINT "BAR01"
  139.     LOCATE 8, 24: PRINT "BAR01"
  140.     COLOR 6
  141.     LOCATE linex, 5: PRINT "Start Seral Number for BarCode ("; bit$; ") ?     _"
  142.     COLOR 2
  143.     LOCATE linex, 41 + x: PRINT ".."
  144.     COLOR 6
  145.     LOCATE linex, 43 + x: PRINT STRING$(lnx - 2, "."); SPACE$(15 - lnx)
  146.     LOCATE linex + 1, 38: PRINT "                        "
  147.     LOCATE linex + 2, 42: PRINT "                  "
  148.     DO
  149.         'ixx = 0
  150.         'sbc$ = ""
  151.         'ixx$ = INKEY$
  152.         'DO
  153.         '    ixx$ = INKEY$
  154.         '    IF MID$(ixx$, 1, 1) = CHR$(0) THEN
  155.         '        BEEP
  156.         '        ixx$ = INKEY$
  157.         '        ixx$ = ""
  158.         '    ELSEIF ixx$ = CHR$(8) AND LEN(sbc$) > 0 THEN
  159.         '        ixx = ixx - 1
  160.         '        sbc$ = MID$(sbc$, 1, ixx)
  161.         '        LOCATE linex, 41 + x: PRINT sbc$; "_"; SPACE$(1);
  162.         '        ixx$ = ""
  163.         '    END IF
  164.         '    ixl = LEN(ixx$)
  165.         '    IF ixl > 0 AND ixx < 10 THEN
  166.         '        IF ASC(ixx$) > 32 AND ASC(ixx$) < 127 THEN
  167.         '            ixx = ixx + ixl
  168.         '            sbc$ = sbc$ + ixx$
  169.         '        END IF
  170.         '        LOCATE linex, 41 + x: PRINT sbc$; "_"
  171.         '    ELSEIF ixl > 0 AND ixx = 10 THEN
  172.         '        BEEP
  173.         '    END IF
  174.         'LOOP UNTIL ixx$ = CHR$(13)
  175.         LOCATE linex, 41 + x: INPUT "", sbc$
  176.         LOCATE linex, 41 + x: PRINT sbc$; SPACE$(15 - ixx);
  177.         sbc$ = UCASE$(sbc$)
  178.         x1 = fnCode(sbc$)
  179.         x1ln = LEN(sbc$)
  180.         IF x1ln < 3 THEN
  181.             COLOR 2: LOCATE linex, 41 + x
  182.             PRINT sbc$; STRING$(2 - x1ln, ".")
  183.             COLOR 6: LOCATE linex, 43 + x
  184.             PRINT STRING$(lnx - 2, "."); SPACE$(23)
  185.             BEEP
  186.         ELSEIF x1ln > lnx THEN
  187.             COLOR 6: LOCATE linex, 41 + x
  188.             PRINT MID$(sbc$, 1, lnx);
  189.             COLOR 2: LOCATE linex, 41 + x + lnx
  190.             PRINT MID$(sbc$, lnx + 1); SPACE$(23 - x1ln)
  191.             COLOR 6
  192.             BEEP
  193.         ELSEIF x1 > 0 AND x1 <= lnx THEN
  194.             COLOR 6: LOCATE linex, 41 + x
  195.             PRINT MID$(sbc$, 1, x1 - 1);
  196.             COLOR 2: PRINT MID$(sbc$, x1, 1);
  197.             COLOR 6: PRINT MID$(sbc$, x1 + 1); STRING$(lnx - x1ln, "."); SPACE$(23 - lnx)
  198.             BEEP
  199.         ELSEIF xlin <= lnx AND 1 = 12 THEN
  200.             COLOR 6: LOCATE linex, 41 + x: PRINT STRING$(lnx, "."); SPACE$(23)
  201.             BEEP
  202.         ELSE
  203.             COLOR 6: LOCATE linex, 41 + x: PRINT sbc$;
  204.             COLOR 2: PRINT STRING$(lnx - x1ln, "."); SPACE$(33 - lnx)
  205.             COLOR 6
  206.             IF bit$ = "3..10" AND x1ln > 0 AND x1ln <= lnx THEN
  207.                 bit$ = LTRIM$(STR$(x1ln))
  208.                 lnx = x1ln
  209.             END IF
  210.         END IF
  211.     LOOP UNTIL x1ln = lnx AND x1 = 0
  212.     nub$(ii) = sbc$
  213.     linex = linex + 1
  214.     COLOR 3
  215.     LOCATE 10, 47: PRINT "BAR03"
  216.     LOCATE 13, 44: PRINT "BAR04"
  217.     x = LEN(bit$)
  218.     LOCATE linex, 5: PRINT "End Seral Number for BarCode ("; bit$; ")   ";
  219.     COLOR 6: PRINT sbc$; : COLOR 3: PRINT SPACE$(39 - x - x1ln)
  220.     DO
  221.         LOCATE linex, 37 + x: INPUT ebc$
  222.         ebc$ = UCASE$(ebc$)
  223.         x2ln = LEN(ebc$)
  224.         IF x2ln = 0 THEN
  225.             ebc$ = sbc$
  226.             x2ln = x1ln
  227.         ELSEIF x2ln < x1ln THEN
  228.             COLOR 6: LOCATE linex, 39 + x: PRINT sbc$;
  229.             COLOR 3: LOCATE linex, 39 + x + x1ln: PRINT SPACE$(40 - x - x1ln)
  230.             BEEP
  231.         ELSEIF x2ln > x1ln THEN
  232.             COLOR 6: LOCATE linex, 39 + x: PRINT sbc$;
  233.             COLOR 3: LOCATE linex, 39 + x + x1ln: PRINT SPACE$(40 - x - x1ln)
  234.             BEEP
  235.         END IF
  236.         IF x2ln = x1ln THEN
  237.             x2 = fnCode(ebc$)
  238.             IF x2 = 0 THEN
  239.                 p = 0
  240.                 FOR i = 1 TO x2ln
  241.                     IF MID$(sbc$, i, 1) <> MID$(ebc$, i, 1) THEN
  242.                         p = i
  243.                         i = x2ln + 2
  244.                     END IF
  245.                 NEXT i
  246.                 IF p > 0 THEN
  247.                     FOR i = p TO lnx
  248.                         px1 = INSTR(1, cd39$, MID$(sbc$, i, 1))
  249.                         px2 = INSTR(1, cd39$, MID$(ebc$, i, 1))
  250.                         IF px1 > 37 OR px2 > 37 THEN x2 = 12
  251.                         IF px1 <= 10 AND px2 <= 10 THEN
  252.                         ELSEIF px1 > 10 AND px1 < 37 AND px2 > 10 AND px2 < 37 THEN
  253.                         ELSE
  254.                             x2 = i
  255.                             i = lnx + 2
  256.                         END IF
  257.                     NEXT i
  258.                 END IF
  259.             END IF
  260.             IF x2 = 0 THEN
  261.                 LOCATE linex, 39 + x: PRINT ebc$; SPACE$(40 - x - x2ln)
  262.             ELSE
  263.                 COLOR 3: LOCATE linex, 39 + x
  264.                 PRINT MID$(ebc$, 1, x2 - 1);
  265.                 COLOR 2: PRINT MID$(ebc$, x2, 1);
  266.                 COLOR 3: PRINT MID$(ebc$, x2 + 1); SPACE$(40 - x - x2ln)
  267.                 BEEP
  268.             END IF
  269.         ELSE
  270.             x2 = 12
  271.         END IF
  272.     LOOP UNTIL x2 = 0
  273.     nub$(ii) = sbc$ + "," + ebc$ + "," + STR$(p)
  274.     ii = ii + 1
  275.     COLOR 4
  276.     linex = linex + 1
  277.     IF ii = 256 THEN
  278.         x$ = "n"
  279.     ELSE
  280.         LOCATE linex, 5: PRINT "Input next Group BarCode Again (y/n) ? "; : COLOR 7: PRINT "y"
  281.         DO
  282.             x$ = LCASE$(INKEY$)
  283.             IF x$ = CHR$(13) THEN x$ = "y"
  284.             IF x$ = "y" OR x$ = "n" THEN
  285.                 LOCATE linex, 44: COLOR 4: PRINT x$
  286.             ELSEIF LEN(x$) > 0 THEN
  287.                 BEEP
  288.             END IF
  289.         LOOP UNTIL x$ = "y" OR x$ = "n"
  290.     END IF
  291.  LOOP UNTIL x$ = "n" OR x$ = "N"
  292.  '
  293.  COLOR 5
  294.  LOCATE 8, 29: PRINT "B"
  295.  LOCATE 8, 49: PRINT "C"
  296.  LOCATE 13, 29: PRINT "D"
  297.  LOCATE 13, 49: PRINT "E"
  298.  LOCATE linex, 5: PRINT "CheckSun after BarCode (y/n) : "; : COLOR 7: PRINT "y            "
  299.  COLOR 5
  300.  DO
  301.     x$ = LCASE$(INKEY$)
  302.     IF x$ = CHR$(13) THEN x$ = "y"
  303.     IF x$ = "y" OR x$ = "n" THEN
  304.         LOCATE linex, 36: PRINT x$
  305.     ELSEIF LEN(x$) > 0 THEN
  306.         BEEP
  307.     END IF
  308.  LOOP UNTIL x$ = "y" OR x$ = "n"
  309.  linex = linex + 1
  310.  IF x$ = "y" OR x$ = CHR$(13) THEN
  311.     bc = 1
  312.  ELSE
  313.     bc = 0
  314.     COLOR 7
  315.     LOCATE 8, 29: PRINT "* "
  316.     LOCATE 8, 49: PRINT "* "
  317.     LOCATE 13, 29: PRINT "* "
  318.     LOCATE 13, 49: PRINT "* "
  319.  END IF
  320.  '
  321.  COLOR 12
  322.  LOCATE 5, 22: PRINT "JBC-"
  323.  LOCATE 5, 43: PRINT "JBC-"
  324.  LOCATE 10, 22: PRINT "JBC-"
  325.  LOCATE 10, 43: PRINT "JBC-"
  326.  LOCATE linex, 5: PRINT "Prefix of Description for BarCode   "; STRING$(lnx, ".")
  327.  DO
  328.     LOCATE linex, 39: INPUT ""; x$
  329.     IF LEN(x$) < lnx OR x$ = CHR$(13) THEN
  330.         LOCATE linex, 41: PRINT x$; SPACE$(37 - LEN(x$))
  331.     ELSE
  332.         BEEP
  333.         LOCATE linex, 41: PRINT MID$(x$, 1, lnx)
  334.         LOCATE linex, 41 + lnx: COLOR 7: PRINT MID$(x$, lnx + 1); SPACE$(37 - LEN(x$))
  335.         COLOR 12
  336.     END IF
  337.  LOOP UNTIL LEN(x$) <= lnx OR x$ = CHR$(13)
  338.  IF x$ = CHR$(13) THEN
  339.     pdb$ = ""
  340.  ELSE
  341.     pdb$ = x$
  342.  END IF
  343.  linex = linex + 1
  344.  IF pdb$ = "" THEN
  345.     COLOR 7
  346.     LOCATE 5, 22: PRINT "JBC-"
  347.     LOCATE 5, 43: PRINT "JBC-"
  348.     LOCATE 10, 22: PRINT "JBC-"
  349.     LOCATE 10, 43: PRINT "JBC-"
  350.  END IF
  351.  SLEEP (1)
  352.  x$ = INKEY$
  353.  IF x$ = CHR$(13) THEN x$ = ""
  354.  '
  355.  COLOR 2
  356.  clup = 7
  357.  cldn = 2
  358.  x1$ = "D"
  359.  bcnb = -1
  360.  IF bc = 1 THEN
  361.     LOCATE 5, 22: COLOR clup: PRINT " *BAR01B*            *BAR02C*      "
  362.     LOCATE 8, 22: COLOR cldn: PRINT " *BAR03D*            *BAR04E*      "
  363.     LOCATE 10, 22: COLOR clup: PRINT " *BAR01B*            *BAR02C*      "
  364.     LOCATE 13, 22: COLOR cldn: PRINT " *BAR03D*            *BAR04E*      "
  365.  ELSEIF bc = 0 THEN
  366.     LOCATE 5, 22: COLOR clup: PRINT " *BAR01*             *BAR02*     "
  367.     LOCATE 8, 22: COLOR cldn: PRINT " *BAR03*             *BAR04*     "
  368.     LOCATE 10, 22: COLOR clup: PRINT " *BAR01*             *BAR02*     "
  369.     LOCATE 13, 22: COLOR cldn: PRINT " *BAR03*             *BAR04*     "
  370.  END IF
  371.  LOCATE linex, 5: PRINT "Seral Number Up BarCode or Down or Nothing (U,D,N) ? ";
  372.  COLOR 7: PRINT x1$
  373.  DO
  374.     COLOR 2
  375.     x$ = UCASE$(INKEY$)
  376.     IF x$ = "U" OR x$ = "D" OR x$ = "N" THEN
  377.         x1$ = ""
  378.         LOCATE linex, 58: COLOR 2: PRINT x$ + "  "
  379.     ELSEIF x$ = CHR$(13) AND x1$ = "D" THEN
  380.         x1$ = ""
  381.         LOCATE linex, 58: COLOR 2: PRINT "D  "
  382.         bcnb = 2
  383.         clup = 7
  384.         cldn = 2
  385.     ELSEIF LEN(x$) > 0 THEN
  386.         BEEP
  387.     END IF
  388.     IF x$ = "U" THEN
  389.         bcnb = 1
  390.         clup = 2
  391.         cldn = 7
  392.     ELSEIF x$ = "D" THEN
  393.         bcnb = 2
  394.         clup = 7
  395.         cldn = 2
  396.     ELSEIF x$ = "N" THEN
  397.         bcnb = 0
  398.         clup = 7
  399.         cldn = 7
  400.     END IF
  401.     IF bc = 1 AND LEN(x$) > 0 THEN
  402.         LOCATE 5, 22: COLOR clup: PRINT " *BAR01B*            *BAR02C*      "
  403.         LOCATE 8, 22: COLOR cldn: PRINT " *BAR03D*            *BAR04E*      "
  404.         LOCATE 10, 22: COLOR clup: PRINT " *BAR01B*            *BAR02C*      "
  405.         LOCATE 13, 22: COLOR cldn: PRINT " *BAR03D*            *BAR04E*      "
  406.     ELSEIF bc = 0 AND LEN(x$) > 0 THEN
  407.         LOCATE 5, 22: COLOR clup: PRINT " *BAR01*             *BAR02*     "
  408.         LOCATE 8, 22: COLOR cldn: PRINT " *BAR03*             *BAR04*     "
  409.         LOCATE 10, 22: COLOR clup: PRINT " *BAR01*             *BAR02*     "
  410.         LOCATE 13, 22: COLOR cldn: PRINT " *BAR03*             *BAR04*     "
  411.     END IF
  412.  LOOP UNTIL bcnb > -1 AND x$ = CHR$(13)
  413.  linex = linex + 1
  414.  '
  415.  COLOR 3
  416.  IF bcnb = 1 THEN
  417.     x1$ = "D"
  418.     clup = 2
  419.     cldn = 3
  420.  ELSEIF bcnb = 2 THEN
  421.     x1$ = "U"
  422.     clup = 3
  423.     cldn = 2
  424.  ELSE
  425.     x1$ = "U"
  426.     clup = 3
  427.     cldn = 7
  428.  END IF
  429.  bcdc = -1
  430.  IF bcnb = 0 THEN
  431.     LOCATE 5, 22: COLOR clup: PRINT "JBC-BAR01            JBC-BAR02     "
  432.     LOCATE 8, 22: COLOR cldn: PRINT "JBC-BAR03            JBC-BAR04     "
  433.     LOCATE 10, 22: COLOR clup: PRINT "JBC-BAR01            JBC-BAR02     "
  434.     LOCATE 13, 22: COLOR cldn: PRINT "JBC-BAR03            JBC-BAR04     "
  435.  ELSEIF bc = 1 THEN
  436.     LOCATE 5, 22: COLOR clup: PRINT "JBC-BAR01           JBC-BAR02*      "
  437.     LOCATE 8, 22: COLOR cldn: PRINT " *BAR03D*            *BAR04E*      "
  438.     LOCATE 10, 22: COLOR clup: PRINT "JBC-BAR01           JBC-BAR02      "
  439.     LOCATE 13, 22: COLOR cldn: PRINT " *BAR03D*            *BAR04E*      "
  440.  ELSEIF bc = 0 THEN
  441.     LOCATE 5, 22: COLOR clup: PRINT " *BAR01*             *BAR02*     "
  442.     LOCATE 8, 22: COLOR cldn: PRINT "JBC-BAR03            JBC-BAR04     "
  443.     LOCATE 10, 22: COLOR clup: PRINT " *BAR01*             *BAR02*     "
  444.     LOCATE 13, 22: COLOR cldn: PRINT "JBC-BAR03            JBC-BAR04     "
  445.  END IF
  446.  COLOR 3
  447.  LOCATE linex, 5: PRINT "Description Up BarCode or Down or Nothing (U,D,N) ? ";
  448.  COLOR 7: PRINT x1$
  449.  DO
  450.     x$ = UCASE$(INKEY$)
  451.     IF x$ = CHR$(13) AND LEN(x1$) > 0 THEN
  452.         x2$ = x1$
  453.         x1$ = ""
  454.         LOCATE linex, 57: COLOR 3: PRINT x1$ + "  "
  455.     ELSE
  456.         x2$ = x$
  457.     END IF
  458.     IF x$ = "U" OR x$ = "D" OR x$ = "N" OR x$ = CHR$(13) THEN
  459.         IF x2$ = "U" AND bcnb <> 1 THEN
  460.             x1$ = ""
  461.             LOCATE linex, 57: COLOR 3: PRINT x2$ + "  "
  462.             bcdc = 1
  463.             clup = 3
  464.             cldn = 2
  465.             IF bcnb = 0 THEN cldn = 7
  466.         ELSEIF x2$ = "D" AND bcnb <> 2 THEN
  467.             x1$ = ""
  468.             LOCATE linex, 57: COLOR 3: PRINT x2$ + "  "
  469.             bcdc = 2
  470.             clup = 2
  471.             cldn = 3
  472.             IF bcnb = 0 THEN clup = 7
  473.         ELSEIF x2$ = "N" THEN
  474.             x1$ = ""
  475.             LOCATE linex, 57: COLOR 3: PRINT x2$ + "  "
  476.             bcdc = 0
  477.             clup = 7
  478.             cldn = 7
  479.             IF bcnb = 1 THEN clup = 2
  480.             IF bcnb = 2 THEN cldn = 2
  481.         END IF
  482.     ELSEIF LEN(x$) > 0 THEN
  483.         BEEP
  484.     END IF
  485.     IF bc = 1 AND (x$ = "U" OR x$ = "D" OR x$ = "N" OR x$ = CHR$(13)) AND bcnb <> 0 THEN
  486.         LOCATE 5, 22: COLOR clup: PRINT "JBC-BAR01           JBC-BAR02*      "
  487.         LOCATE 8, 22: COLOR cldn: PRINT " *BAR03D*            *BAR04E*      "
  488.         LOCATE 10, 22: COLOR clup: PRINT "JBC-BAR01           JBC-BAR02      "
  489.         LOCATE 13, 22: COLOR cldn: PRINT " *BAR03D*            *BAR04E*      "
  490.     ELSEIF bc = 0 AND (x$ = "U" OR x$ = "D" OR x$ = "N" OR x$ = CHR$(13)) AND bcnb <> 0 THEN
  491.         LOCATE 5, 22: COLOR clup: PRINT " *BAR01*             *BAR02*     "
  492.         LOCATE 8, 22: COLOR cldn: PRINT "JBC-BAR03            JBC-BAR04     "
  493.         LOCATE 10, 22: COLOR clup: PRINT " *BAR01*             *BAR02*     "
  494.         LOCATE 13, 22: COLOR cldn: PRINT "JBC-BAR03            JBC-BAR04     "
  495.     ELSEIF (x$ = "U" OR x$ = "D" OR x$ = "N" OR x$ = CHR$(13)) AND bcnb = 0 THEN
  496.         LOCATE 5, 22: COLOR clup: PRINT "JBC-BAR01            JBC-BAR02     "
  497.         LOCATE 8, 22: COLOR cldn: PRINT "JBC-BAR03            JBC-BAR04     "
  498.         LOCATE 10, 22: COLOR clup: PRINT "JBC-BAR01            JBC-BAR02     "
  499.         LOCATE 13, 22: COLOR cldn: PRINT "JBC-BAR03            JBC-BAR04     "
  500.     END IF
  501.  LOOP UNTIL bcdc > -1 AND x$ = CHR$(13)
  502.  linex = linex + 1
  503.  '
  504. retry:
  505.  n1$ = "JBC_BAR.TXT"
  506.  LOCATE linex, 5: COLOR 4: PRINT "BarCode TXT FileName  "; : COLOR 7: PRINT n1$
  507.  COLOR 4:
  508.  LOCATE linex, 25: INPUT ""; x$
  509.  ON ERROR GOTO retry
  510.  IF LEN(x$) > 0 THEN n1$ = x$
  511.  OPEN n1$ FOR OUTPUT AS #1
  512.  LOCATE linex, 27: PRINT n1$
  513.  SLEEP (2)
  514.  x$ = INKEY$
  515.  IF x$ = CHR$(13) THEN x$ = ""
  516.  '
  517.  COLOR 0
  518.  ON ERROR GOTO 0
  519.  linex = 17
  520.  FOR i = 0 TO 5
  521.     LOCATE linex + i, 5: PRINT SPACE$(70);
  522.  NEXT i
  523.  '
  524.  LOCATE 23, 5: COLOR 12: PRINT "     -----------------------------------------------";
  525.  COLOR 6
  526.  LOCATE 24, 10: COLOR 1: PRINT "WARNING: ";
  527.  COLOR 6: PRINT "Space "; : COLOR 1: PRINT "Option                             ";
  528.  COLOR 4, 0
  529.  pp = 0
  530.  p$ = "LPT1"
  531.  LOCATE linex, 5: PRINT "PrinterPort : "; : COLOR 7: PRINT p$;
  532.  COLOR 4
  533.  DO
  534.     x$ = INKEY$
  535.     IF x$ = CHR$(32) THEN
  536.         'pp = (pp + 1) MOD 5            ' LPT1..3,COM1..2
  537.         pp = (pp + 1) MOD 2            ' LPT1..2
  538.         IF pp <= 2 THEN
  539.             p$ = "LPT" + LTRIM$(HEX$(pp + 1))
  540.         ELSE
  541.             p$ = "COM" + LTRIM$(HEX$(pp - 2))
  542.         END IF
  543.     ELSEIF LEN(x$) > 0 AND x$ <> CHR$(13) THEN
  544.         BEEP
  545.     END IF
  546.     IF LEN(x$) > 0 OR x$ = CHR$(13) THEN LOCATE linex, 19: PRINT p$;
  547.  LOOP UNTIL x$ = CHR$(13)
  548.  IF pp > 2 THEN
  549.     COLOR 12, 0
  550.     bdr = 0
  551.     p$ = "9600"
  552.     LOCATE linex, 25: PRINT "BaudRate="; : COLOR 7: PRINT p$;
  553.     COLOR 12
  554.     DO
  555.         x$ = INKEY$
  556.         IF x$ = CHR$(32) THEN
  557.             bdr = (bdr + 1) MOD 8
  558.             SELECT CASE bdr
  559.                 CASE IS = 0
  560.                     p$ = "9600"
  561.                     brd$ = CHR$(&HE0)
  562.                 CASE IS = 1
  563.                     p$ = "4800"
  564.                     brd$ = CHR$(&HC0)
  565.                 CASE IS = 2
  566.                     p$ = "2400"
  567.                     brd$ = CHR$(&HA0)
  568.                 CASE IS = 3
  569.                     p$ = "1200"
  570.                     brd$ = CHR$(&H80)
  571.                 CASE IS = 4
  572.                     p$ = "600 "
  573.                     brd$ = CHR$(&H40)
  574.                 CASE IS = 5
  575.                     p$ = "300 "
  576.                     brd$ = CHR$(&H20)
  577.                 CASE IS = 6
  578.                     p$ = "130 "
  579.                     brd$ = CHR$(&H10)
  580.                 CASE IS = 7
  581.                     p$ = "110 "
  582.                     brd$ = CHR$(&H8)
  583.             END SELECT
  584.         ELSEIF LEN(x$) > 0 AND x$ <> CHR$(13) THEN
  585.             BEEP
  586.         END IF
  587.         IF LEN(x$) > 0 OR x$ = CHR$(13) THEN LOCATE linex, 34: PRINT p$;
  588.     LOOP UNTIL x$ = CHR$(13)
  589.     COLOR 13, 0
  590.     pb = 0
  591.     p$ = "None"
  592.     LOCATE linex, 39: PRINT "ParityBit="; : COLOR 7: PRINT p$;
  593.     COLOR 13
  594.     DO
  595.         x$ = INKEY$
  596.         IF x$ = CHR$(32) THEN
  597.             pb = (pb + 1) MOD 3
  598.             SELECT CASE pb
  599.                 CASE IS = 0
  600.                     p$ = "None"
  601.                 CASE IS = 1
  602.                     p$ = "Even"
  603.                 CASE IS = 2
  604.                     p$ = "Odd "
  605.             END SELECT
  606.         ELSEIF LEN(x$) > 0 AND x$ <> CHR$(13) THEN
  607.             BEEP
  608.         END IF
  609.         IF LEN(x$) > 0 OR x$ = CHR$(13) THEN LOCATE linex, 49: PRINT p$;
  610.     LOOP UNTIL x$ = CHR$(13)
  611.     COLOR 14, 0
  612.     stb = 0
  613.     p$ = "1"
  614.     LOCATE linex, 54: PRINT "StopBit="; : COLOR 7: PRINT p$;
  615.     COLOR 14
  616.     DO
  617.         x$ = INKEY$
  618.         IF x$ = CHR$(32) THEN
  619.             stb = (stb + 1) MOD 2
  620.             IF stb = 0 THEN
  621.                 p$ = "1"
  622.             ELSE
  623.                 p$ = "2"
  624.             END IF
  625.         ELSEIF LEN(x$) > 0 AND x$ <> CHR$(13) THEN
  626.             BEEP
  627.         END IF
  628.         IF LEN(x$) > 0 OR x$ = CHR$(13) THEN LOCATE linex, 62: PRINT p$;
  629.     LOOP UNTIL x$ = CHR$(13)
  630.     COLOR 10, 0
  631.     db = 0
  632.     p$ = "7"
  633.     LOCATE linex, 64: PRINT "DataBit="; : COLOR 7: PRINT p$;
  634.     COLOR 10
  635.     DO
  636.         x$ = INKEY$
  637.         IF x$ = CHR$(32) THEN
  638.             db = (db + 1) MOD 2
  639.             IF db = 0 THEN
  640.                 p$ = "7"
  641.             ELSE
  642.                 p$ = "8"
  643.             END IF
  644.         ELSEIF LEN(x$) > 0 AND x$ <> CHR$(13) THEN
  645.             BEEP
  646.         END IF
  647.         IF LEN(x$) > 0 OR x$ = CHR$(13) THEN LOCATE linex, 72: PRINT p$;
  648.     LOOP UNTIL x$ = CHR$(13)
  649.  END IF
  650.  pp = 0
  651.  linex = linex + 1
  652.  '
  653.  COLOR 5, 0
  654.  tp = 0
  655.  tp$ = "HP Laser Jet"
  656.  LOCATE linex, 5: PRINT "PrinterType : "; : COLOR 7: PRINT tp$;
  657.  COLOR 5
  658.  DO
  659.     x$ = INKEY$
  660.     IF x$ = CHR$(32) THEN
  661.         'tp = (tp + 1) MOD 5
  662.         SELECT CASE tp
  663.             CASE IS = 0
  664.                 tp$ = "HP Laser Jet"
  665.             CASE IS = 1
  666.                 tp$ = "Epson Fx-X  "
  667.             CASE IS = 2
  668.                 tp$ = "Epson LQ-X  "
  669.             CASE IS = 3
  670.                 tp$ = "P5X         "
  671.             CASE IS = 4
  672.                 tp$ = "P6X         "
  673.         END SELECT
  674.     ELSEIF LEN(x$) > 0 AND x$ <> CHR$(13) THEN
  675.         BEEP
  676.     END IF
  677.     IF LEN(x$) > 0 OR x$ = CHR$(13) THEN LOCATE linex, 19: PRINT tp$;
  678.  LOOP UNTIL x$ = CHR$(13)
  679.     tp = 0
  680.  linex = linex + 1
  681.  '
  682.  COLOR 6, 0
  683.  ct = 0
  684.  ct$ = "Code 39"
  685.  LOCATE linex, 5: PRINT "BarCodeType : "; : COLOR 7: PRINT ct$;
  686.  COLOR 6
  687.  DO
  688.     x$ = INKEY$
  689.     IF x$ = CHR$(32) THEN
  690.         'ct = (ct + 1) MOD 10
  691.         SELECT CASE ct
  692.             CASE IS = 0
  693.                 ct$ = "Code 39   "
  694.             CASE IS = 1
  695.                 ct$ = "Code 38 Full ASCII"
  696.             CASE IS = 2
  697.                 ct$ = "Interleaved 2/5   "
  698.             CASE IS = 3
  699.                 ct$ = "EAN-8          "
  700.             CASE IS = 4
  701.                 ct$ = "EAN-13"
  702.             CASE IS = 5
  703.                 ct$ = "UPC-A "
  704.             CASE IS = 6
  705.                 ct$ = "UPC-E"
  706.             CASE IS = 7
  707.                 ct$ = "CodeBar"
  708.             CASE IS = 8
  709.                 ct$ = "UPC E to A"
  710.             CASE IS = 9
  711.                 ct$ = "UPC A to E"
  712.         END SELECT
  713.     ELSEIF LEN(x$) > 0 AND x$ <> CHR$(13) THEN
  714.         BEEP
  715.     END IF
  716.     IF LEN(x$) > 0 OR x$ = CHR$(13) THEN LOCATE linex, 19: PRINT ct$;
  717.  LOOP UNTIL x$ = CHR$(13)
  718.  ct = 0
  719.  linex = linex + 1
  720. '
  721.  COLOR 1, 0
  722.  sc$ = "@"
  723.  sc = 21
  724.  LOCATE linex, 5: PRINT "SeparateCharacter : "; : COLOR 7: PRINT sc$ + sc$
  725.  COLOR 1
  726.  DO
  727.     x$ = INKEY$
  728.     IF x$ = CHR$(32) THEN
  729.         'sc = (sc + 1) MOD 22
  730.         IF sc >= 0 AND sc < 15 THEN
  731.             sc$ = CHR$(sc + 33)
  732.         ELSE
  733.             sc$ = CHR$(sc + 43)
  734.         END IF
  735.     END IF
  736.     IF x$ = CHR$(32) OR x$ = CHR$(13) THEN
  737.         LOCATE linex, 25: PRINT sc$ + sc$
  738.     ELSEIF LEN(x$) > 0 THEN
  739.         BEEP
  740.     END IF
  741.  LOOP UNTIL x$ = CHR$(13)
  742.  sc$ = "@"
  743.  SLEEP (2)
  744.  x$ = INKEY$
  745.  IF x$ = CHR$(13) THEN x$ = ""
  746.  '
  747.  ON ERROR GOTO 0
  748.  COLOR 0
  749.  linex = 17
  750.  FOR i = 0 TO 5
  751.     LOCATE linex + i, 5: PRINT SPACE$(70);
  752.  NEXT i
  753.  '
  754.  COLOR 4, 0
  755.  linex = 17
  756.  pw = 210
  757.  pl = 295
  758.  LOCATE linex, 41: PRINT "         "
  759.  LOCATE linex, 5: PRINT "Size of Print Paper (mm): Width ="; : COLOR 7: PRINT pw;
  760.  LOCATE linex, 46: COLOR 4: PRINT "Length ="; : COLOR 7: PRINT pl; : COLOR 4: PRINT " (A4) ";
  761.  LOCATE 23, 5: COLOR 12: PRINT "     -----------------------------------------------";
  762.  LOCATE 24, 10: COLOR 1: PRINT "WARNING: ";
  763.  COLOR 4: PRINT "40 < Width < 500  ;  40 < Length < 500";
  764.  DO
  765.     LOCATE linex, 39: INPUT "", x
  766.     IF x > 0 THEN pw = x
  767.     LOCATE linex, 51 + LEN(pw): INPUT "", x
  768.     IF x > 0 THEN pl = x
  769.     LOCATE linex, 5: PRINT "Size of Print Paper (mm): Width ="; pw;
  770.     LOCATE linex, 46: COLOR 4: PRINT "Length ="; pl; : PRINT "           "
  771.  LOOP UNTIL pw >= 40 AND pw < 500 AND pl >= 40 AND pl < 500
  772.  COLOR 2, 0
  773.  pw = pw - 20
  774.  pl = pl - 20
  775.  linex = linex + 1
  776.  gt = 4
  777.  LOCATE 24, 10: COLOR 1: PRINT "WARNING: ";
  778.  COLOR 2: PRINT "3 < G.T < "; pw - 20; "  ";
  779.  COLOR 3: PRINT "4 < G.L < "; pl - 20; "         "; : COLOR 2
  780.  LOCATE linex, 5: PRINT "Gap of Top (Line) =    (4mm/Line)   ";
  781.  LOCATE linex, 24: COLOR 7: PRINT gt: COLOR 2, 0
  782.  LOCATE 4, 17: PRINT CHR$(218); CHR$(196); CHR$(196); CHR$(18)
  783.  LOCATE 5, 12: PRINT "G.T "; CHR$(196); CHR$(217);
  784.  DO
  785.     LOCATE linex, 25: INPUT "", x
  786.     IF x > 0 THEN gt = x
  787.     IF x = 0 THEN
  788.         LOCATE linex, 24: PRINT gt
  789.     END IF
  790.  LOOP UNTIL gt > 3 AND gt < pw - 20
  791.  gt = gt - 3
  792.  '
  793.  gl = 5
  794.  COLOR 3
  795.  LOCATE linex, 46: PRINT "Gap of Left (Chr) =    (2.54mm/Chr)";
  796.  LOCATE linex, 65: COLOR 7: PRINT gl: COLOR 3
  797.  LOCATE 6, 6: PRINT CHR$(17); CHR$(196); CHR$(196); CHR$(196); CHR$(196); CHR$(196); CHR$(196); CHR$(196); CHR$(196); CHR$(196); CHR$(196); CHR$(196); CHR$(196); CHR$(16)
  798.  LOCATE 7, 12: PRINT "G.L "
  799.  DO
  800.     LOCATE linex, 66: INPUT "", x
  801.     IF x > 0 THEN gl = x
  802.     IF x = 0 THEN
  803.         LOCATE linex, 65: PRINT gl
  804.     END IF
  805.  LOOP UNTIL gl > 4 AND gl < pw - 20
  806.  gl = gl - 4
  807.  linex = linex + 1
  808.  '
  809.  COLOR 6
  810.  hc = 3
  811.  LOCATE linex, 5: PRINT "High of Code (mm)="; : COLOR 7: PRINT hc * 4; SPACE$(20): COLOR 6
  812.  LOCATE 24, 10: COLOR 1: PRINT "WARNING: ";
  813.  COLOR 6: PRINT "Space "; : COLOR 1: PRINT "Option                             ";
  814.  COLOR 6
  815.  LOCATE 11, 17: PRINT CHR$(95); CHR$(24)
  816.  LOCATE 12, 11: PRINT "H.C "; CHR$(196); CHR$(217); " "; CHR$(25);
  817.  LOCATE linex, 5: PRINT "High of Code (mm) ="; : COLOR 7: PRINT hc * 4; SPACE$(20): COLOR 6
  818.  DO
  819.     x$ = INKEY$
  820.     IF x$ = CHR$(32) THEN hc = (hc MOD 8) + 1
  821.     IF LEN(x$) > 0 THEN LOCATE linex, 5: PRINT "High of Code (mm) ="; hc * 4; SPACE$(20)
  822.  LOOP UNTIL x$ = CHR$(13)
  823.  LOCATE 24, 10: COLOR 1: PRINT "WARNING: ";
  824.  COLOR 5: PRINT "Space "; : COLOR 1: PRINT "Option                             ";
  825.  COLOR 5
  826.  wc = 2
  827.  wcx = INT((wc + 2) * (lnx + bc + 2) * 134) / 100
  828.  LOCATE linex, 46: PRINT "Width of Code (mm) ="; : COLOR 7: PRINT wcx; : COLOR 5
  829.  LOCATE 14, 20: PRINT CHR$(17); CHR$(196); CHR$(196); CHR$(196); CHR$(196); CHR$(196); CHR$(196); CHR$(196); CHR$(196); CHR$(196); CHR$(196); CHR$(16)
  830.  LOCATE 15, 25: PRINT "W.C"
  831.  LOCATE linex, 66: COLOR 7: PRINT wcx; : COLOR 5
  832.  DO
  833.     x$ = INKEY$
  834.     IF x$ = CHR$(32) THEN wc = ((wc + 1) MOD 3)
  835.     wcx = INT((wc + 2) * (lnx + bc + 2) * 134) / 100
  836.     IF LEN(x$) > 0 THEN LOCATE linex, 66: PRINT wcx;
  837.  LOOP UNTIL x$ = CHR$(13)
  838.  linex = linex + 1
  839.  IF wc = 0 THEN
  840.     wcx = INT((lnx + bc + 2) * 2.675) + 4
  841.  ELSEIF wc = 1 THEN
  842.     wcx = INT((lnx + bc + 2) * 4.017) + 3
  843.  ELSEIF wc = 2 THEN
  844.     wcx = INT((lnx + bc + 2) * 5.375) + 2
  845.  END IF
  846.  pp = pp        'PrinterPort [0..4] = LPT1..3, COM1..2
  847.  tp = 0         'PrinterType [0..4] = HP Laser jet,Epson FX-X,Epson LQ-X,
  848.                 '                     NEC P5X,NEC P6X
  849.  ct = 0         'BarCodeType [0..9] = Code39,Code39Full,Interleaved 2/5,EAN8,EAN13
  850.                 '                     UPC-A,UPC-E,CodeBar,UPC E to A,UPC A to E
  851.  sc$ = "@"      'SeparateCharacter [!,#../  :,;..?,@]
  852.  md = 0         'Mode for Txt & Bar [0..3] = T & B, T / B, & B T, / B T
  853.  cpi = 0        'CharactersPerInch [0..1] = 10cpi, 12cpi
  854.  lpi = 0        'LinesPerInch [0..1] = 6lpi, 8lpi
  855.  ht = hc - 1    'Height [0..7] = (1..8) * 25.4 / ((lpi + 3) * 2)  (mm)
  856.  dns = wc        'Density [0..2] = (1..3) * 25.4 / ((cpi + 5) * 2)  (mm)
  857.  slt = 0        'ScaleTimes [0..7] = (1..8) * dns
  858.  ret = 0        'RestrikeTimes [0..2] = Grey
  859.  tpt$ = "!"     'TypePrompt [!,#,../  :,;..?]
  860.  '
  861.  bdr = &HE0     'BaudRate [E0,C0..20,10] = 9600,4800..110
  862.  pb = 0         'ParityBit [00,08,18] = none,odd,even
  863.  stb = 0        'StopBit [00,04] = 1 bit , 2 bit
  864.  db = 2         'DataBit [02,03] = 7 bit , 8 bit
  865.  dtr = 0        'DTR [00,01] = high,low
  866.  '
  867.  n2$ = "JBC_BAR.CFG"
  868.  OPEN n2$ FOR OUTPUT AS #2
  869.  PRINT #2, CHR$(pp); CHR$(0); CHR$(tp); CHR$(0);
  870.  PRINT #2, CHR$(ct); CHR$(0); sc$; CHR$(0);
  871.  PRINT #2, CHR$(md); CHR$(0); CHR$(cpi); CHR$(0);
  872.  PRINT #2, CHR$(lpi); CHR$(0); CHR$(ht); CHR$(0);
  873.  PRINT #2, CHR$(dns); CHR$(0); CHR$(slt); CHR$(0);
  874.  PRINT #2, CHR$(ret); CHR$(0); CHR$(0); CHR$(0);
  875.  '
  876.  PRINT #2, tpt$; CHR$(0); CHR$(bdr); CHR$(0);
  877.  PRINT #2, CHR$(pb); CHR$(0); CHR$(stb); CHR$(0);
  878.  PRINT #2, CHR$(db); CHR$(0); CHR$(dtr); CHR$(0);
  879.  CLOSE #2
  880.  '
  881.  COLOR 1
  882.  bcc = INT((pw - gl * 5.08 + 12) / (wcx + 12))
  883.  x = bcnb + bcdc
  884.  IF x >= 2 THEN
  885.     x = 2
  886.     IF bcnb = 0 OR bcdc = 0 THEN x = 1
  887.  END IF
  888.  bcl = INT((pl - gt * 8.46) / (hc * 4.23 + x * 4.23 + 8.46))
  889.  LOCATE linex, 5: PRINT "BarCode Columns per Line ="; : COLOR 7: PRINT bcc; SPACE$(20): COLOR 1
  890.  LOCATE linex, 46: PRINT "BarCode Lines per Page ="; : COLOR 7: PRINT bcl; : COLOR 1
  891.  linex = linex + 1
  892.  COLOR 4
  893.  IF bcc > 1 THEN dc = INT((pw - gl * 5 - bcc * wcx) / (bcc - 1) / 2.54)
  894.  dr = INT((pl - (gt * 2 + bcl * hc + bcl * x) * 4.23) / bcl / 4.23)
  895.  LOCATE 24, 10: COLOR 1: PRINT "WARNING: ";
  896.  COLOR 10: PRINT "4 < D.C <"; INT(pw - gl * 5 - wcx * 2); "  ";
  897.  COLOR 11: PRINT "1 < D.R <"; INT(pl - (gt + hc) * 4.23 * 2); "            "; : COLOR 10
  898.  LOCATE linex, 5: PRINT "Distance between Column (Character) =    (2.54mm/Chr) ";
  899.  LOCATE linex, 42: COLOR 7: PRINT dc; : COLOR 10
  900.  LOCATE 7, 32: PRINT CHR$(17); CHR$(196); CHR$(196); CHR$(196); CHR$(196); CHR$(196); CHR$(196); CHR$(16)
  901.  LOCATE 8, 34: PRINT "D.C"
  902.  IF bcc > 1 THEN
  903.     DO
  904.         LOCATE linex, 43: INPUT "", xdc
  905.         IF xdc > 0 THEN dc = xdc
  906.         IF xdc = 0 THEN LOCATE linex, 42: PRINT dc
  907.     LOOP UNTIL (dc > 4) AND (dc < INT(pw - gl * 5 - wcx * 2))
  908.  ELSE
  909.     dc = 0
  910.  END IF
  911.  COLOR 11
  912.  LOCATE linex, 46: PRINT "Distance between Row (Line) ="; : COLOR 7: PRINT dr: COLOR 11
  913.  LOCATE 9, 34: PRINT "D.R "; CHR$(196); CHR$(196); CHR$(18)
  914.  IF bcl > 1 THEN
  915.     DO
  916.         LOCATE linex, 76: INPUT "", xdr
  917.         IF xdr > 0 THEN dr = xdr
  918.         IF xdr = 0 THEN LOCATE linex, 75: PRINT dr
  919.     LOOP UNTIL dr > 1 AND dr < INT(pl - (gt + hc) * 4.23 * 2)
  920.  ELSE
  921.     dr = 0
  922.  END IF
  923.  linex = linex + 1
  924.  COLOR 13, 0
  925.  IF bcc > 1 THEN bcc = INT((pw - gl * 5 + dc * 2.54) / (wcx + dc * 2.54))
  926.  IF bcl > 1 THEN bcl = INT((pl - gt * 8.46) / ((hc + x + dr) * 4.23))
  927.  LOCATE linex, 5: PRINT "Total Number for BarCode : "; bcc * bcl; "="; bcc; "X"; bcl;
  928.  COLOR 7, 0
  929.  SLEEP (3)
  930.  '
  931.  CLS
  932.  ii = 0
  933.  x0$ = ""
  934.  xw = INT(wcx / 2.5 + .5) - (LEN(pdb$) + lnx)
  935.  IF xw < 0 THEN xw = 0
  936.  IF bcdc = 1 THEN
  937.     up1$ = SPACE$(INT(xw / 2 + 1))
  938.  ELSEIF bcdc = 2 THEN
  939.     dn1$ = SPACE$(INT(xw / 2 + 1))
  940.  END IF
  941.  '
  942.  xw = INT(wcx / 2.5 + .5) - (2 + lnx + bc)
  943.  IF xw < 0 THEN xw = 0
  944.  IF bcnb = 1 THEN
  945.     up1$ = SPACE$(INT(xw / 2 + 1.5))
  946.  ELSEIF bcnb = 2 THEN
  947.     dn1$ = SPACE$(INT(xw / 2 + 1.5))
  948.  END IF
  949.  '
  950.  pg = 1
  951.  DO UNTIL nub$(ii) = ""
  952.     IF bcl > 1 THEN
  953.         IF pw / 2.54 > 50 THEN
  954.             zz$ = SPACE$((pw / 2.54 - 40) / 2 - 5)
  955.         ELSE
  956.             zz$ = SPACE$(gl)
  957.         END IF
  958.         a$ = zz$ + " JBC Print Code-39 " + DATE$ + "  " + TIME$ + "   Page" + STR$(pg)
  959.         PRINT #1, a$
  960.         PRINT #1, ""
  961.     END IF
  962.     FOR i = 1 TO gt
  963.         PRINT #1, ""
  964.     NEXT i
  965.     FOR i = 1 TO bcl
  966.         x$ = SPACE$(gl)
  967.         xup$ = x$
  968.         xdn$ = x$
  969.         IF nub$(ii) = "" THEN
  970.             PRINT #1, ""
  971.         ELSE
  972.             FOR j = 1 TO bcc
  973.                 IF nub$(ii) = "" THEN
  974.                     j = bcc + 2
  975.                 ELSE
  976.                     IF x0$ = "" THEN
  977.                         x1 = INSTR(1, nub$(ii), ",")
  978.                         x1$ = MID$(nub$(ii), 1, x1 - 1)
  979.                         x2 = INSTR(x1 + 1, nub$(ii), ",")
  980.                         x2$ = MID$(nub$(ii), x1 + 1, x2 - x1 - 1)
  981.                         x = VAL(MID$(nub$(ii), x2 + 1))
  982.                         IF x1$ = x2$ THEN
  983.                             stp = 0
  984.                         ELSEIF x1$ < x2$ THEN
  985.                             stp = 1
  986.                         ELSE
  987.                             stp = -1
  988.                         END IF
  989.                         x0$ = x1$
  990.                     END IF
  991.                     IF bcdc = 1 THEN
  992.                         xsp$ = SPACE$(INT((j - 1) * (dc + (wcx - 1) / 2.5) + .4) + gl - LEN(xup$))
  993.                         xup$ = xup$ + xsp$ + up1$ + pdb$ + x0$
  994.                     END IF
  995.                     IF bcdc = 2 THEN
  996.                         xsp$ = SPACE$(INT((j - 1) * (dc + (wcx - 1) / 2.5) + .4) + gl - LEN(xdn$))
  997.                         xdn$ = xdn$ + xsp$ + dn1$ + pdb$ + x0$
  998.                     END IF
  999.                     xs$ = x0$
  1000.                     IF bc = 1 THEN xs$ = fnchksum$(x0$)
  1001.                     IF bcnb = 1 THEN
  1002.                         xsp$ = SPACE$(INT((j - 1) * (dc + (wcx - 1) / 2.5) + .4) + gl - LEN(xup$))
  1003.                         xup$ = xup$ + xsp$ + up1$ + "*" + xs$ + "*"
  1004.                     END IF
  1005.                     IF bcnb = 2 THEN
  1006.                         xsp$ = SPACE$(INT((j - 1) * (dc + (wcx - 1) / 2.5) + .4) + gl - LEN(xdn$))
  1007.                         xdn$ = xdn$ + xsp$ + dn1$ + "*" + xs$ + "*"
  1008.                     END IF
  1009.                     'PRINT j - 1, (j - 1) * (dc + (wcx - 1) / 2.5) + 1.4
  1010.                     xsp$ = SPACE$((j - 1) * (dc + lnx + bc + 4) + gl - LEN(x$))
  1011.                     x$ = x$ + xsp$ + sc$ + sc$ + xs$ + sc$ + sc$
  1012.                     IF x0$ = x2$ THEN
  1013.                         ii = ii + 1
  1014.                         x0$ = ""
  1015.                     ELSE
  1016.                         x0$ = fninc$(x0$, x, stp)
  1017.                     END IF
  1018.                 END IF
  1019.             NEXT j
  1020.             IF bcdc = 1 OR bcnb = 1 THEN
  1021.                 PRINT #1, xup$
  1022.                 xup$ = ""
  1023.             END IF
  1024.             PRINT #1, x$
  1025.             x$ = ""
  1026.             IF bcdc = 2 OR bcnb = 2 THEN
  1027.                 PRINT #1, xdn$
  1028.                 xdn$ = ""
  1029.             END IF
  1030.             IF i < bcl AND dr > 0 THEN
  1031.                 FOR j = 1 TO dr
  1032.                     PRINT #1, ""
  1033.                 NEXT j
  1034.             END IF
  1035.         END IF
  1036.     NEXT i
  1037.     PRINT #1, CHR$(12);
  1038.     pg = pg + 1
  1039.  LOOP
  1040.  CLOSE #1
  1041. '
  1042. pgend:
  1043.  SYSTEM
  1044.  END
  1045.  
  1046.