⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lk607a.bas

📁 写卡用的软件
💻 BAS
📖 第 1 页 / 共 3 页
字号:
7610 ON ET% GOTO 7630, 7640, 7650, 7660, 7670, 7680, 7690
7620 T0% = 0: GOTO 7700
7630 T1% = 12: GOTO 7700
7640 T2% = 12: GOTO 7700
7650 T1% = 9: T2% = 14: GOTO 7700
7660 T3% = 12: GOTO 7700
7670 T1% = 9: T3% = 14: GOTO 7700
7680 T2% = 9: T3% = 14: GOTO 7700
7690 T0% = 0: T1% = 7: T2% = 12: T3% = 17
7700 RETURN 150

10280 '***** MAKE DISPLAY BOXES *****
10290 LOCATE TOPROW1, LEFTCOL1, 0: PRINT TLC$; STRING$(BWIDTH - 2, HORIZ$); TRC$;
10300 LOCATE TOPROW1 + 1, LEFTCOL1, 0: PRINT VERT$; LEFT$(MS$, BWIDTH - 2); VERT$;
10310 LOCATE TOPROW1 + 2, LEFTCOL1, 0: PRINT LST$; STRING$(BWIDTH - 2, HORIZ$); RST$;
10320 FOR K = 3 TO BHEIGHT - 2: LOCATE TOPROW1 + K, LEFTCOL1, 0: PRINT VERT$; LEFT$(MS$, BWIDTH - 2); VERT$; : NEXT K
10330 LOCATE TOPROW1 + BHEIGHT - 1, LEFTCOL1, 0: PRINT BLC$; STRING$(BWIDTH - 2, HORIZ$); BRC$;
10340 RETURN
10350 '
10360 '============================================================
10370 REM $$$ READ 1 BYTE OF FORMAT $$$
10380 CH$ = INPUT$(1, 1): CH% = ASC(CH$): CS% = CS% XOR CH%: CH% = CH% - 128: RETURN
10390 '
10400 REM $$$ READ J% BYTES OF FORMAT INTO LB$ $$$
10410 PRINT ".";
10420 LB$ = LEFT$(FC$, J%): FOR K = 1 TO J%: CH% = ASC(INPUT$(1, 1)): CS% = CS% XOR CH%: MID$(LB$, K) = CHR$(CH% - 128): NEXT K: RETURN
10430 '
10440 REM $$$ EXIT PROGRAM $$$
10475 COLOR 7, 0, 0: CLS : LOCATE 1, 1: PRINT "THANKS FOR USE LK607MSR, SEE YOU NEXT TIME": SYSTEM

60000 '===================================================================
60010 ' 60000 - READ THE SERIAL BUFFER - added 870622
60020 '         Reads the serial buffer into LB$ until
60030 '         an ETX=chr$(2) is encountered, or the
60040 '         length of LB$ is greater than 255, or
60050 '         more than a second expires.
60060 '
60070 ' CALLING SEQUENCE :
60080 '
60090 ' LB$=<STRING LE 255>
60093 '
60095 '===================================================================
60100
60110 '***** WAIT FOR START OF MESSAGE ******
60120 WHILE LOC(1) <= 0
60130     FOR I = 1 TO 100
60140     NEXT I
60150 WEND
60160 ETX = 0: CNTGE255 = 0: TIMEOUT = 0
60170 STIME% = 0
60180 WHILE NOT ETX AND NOT CNTGT255 AND NOT TIMEOUT
60190     LB$ = LB$ + INPUT$(LOC(1), 1)
60200 '    ******* CHECK LENGTH *******
60210    IF LEN(LB$) > 255 THEN CNTGT255 = -1
60220 '    ******* SCAN FOR ETX *******
60230     FOR I = 2 TO LEN(LB$)
              IF BCC% THEN 60240
              IF MID$(LB$, I, 1) = CHR$(3) THEN EXT = -1
60240         IF MID$(LB$, I - 1, 1) = CHR$(3) THEN ETX = -1
60250     NEXT I
60260 '    ******* CHECK TIME *******
          STIME% = 0
60270     WHILE LOC(1) <= 0 AND NOT ETX AND NOT TIMEOUT
              STIME% = STIME% + 1
60280         IF STIME% > 10000 THEN TIMEOUT = -1
60290     WEND
60300 WEND
60310 RETURN
70000
'=========================================================
' 70000 - PARSE THE INPUT
' DATE - 870916
'=========================================================
PERCENT.POS% = INSTR(LB$, "%")
FIRST.START.CHAR$ = ""
SEMICOLON.POS% = INSTR(LB$, ";")
PLUS.POS% = INSTR(LB$, "+")
POS.OF.FIRST% = 10000
IF PERCENT.POS% > 0 AND PERCENT.POS% < POS.OF.FIRST% THEN
    POS.OF.FIRST% = PERCENT.POS%
    FIRST.START.CHAR$ = "%"
END IF
IF SEMICOLON.POS% > 0 AND SEMICOLON.POS% < POS.OF.FIRST% THEN
    POS.OF.FIRST% = SEMICOLON.POS%
    FIRST.START.CHAR$ = ";"
END IF
IF PLUS.POS% > 0 AND PLUS.POS% < POS.OF.FIRST% THEN
    POS.OF.FIRST% = PLUS.POS%
    FIRST.START.CHAR$ = "+"
END IF
IF FIRST.START.CHAR$ = "%" THEN
    I% = INSTR(LB$, "%")             ' FIND BEGIN OF TRACK 1
    J% = INSTR(LB$, "?")             ' FIND END OF TRACK 1
    O1$ = MID$(LB$, I%, J% - I% + 1) ' EXTRACT TRACK 1
    I% = INSTR(LB$, "?;")            ' FIND BEGIN OF TRACK 2
    IF I% <> 0 THEN
        I% = I% + 1
        J% = INSTR(I%, LB$, "?")     ' FIND END OF TRACK 2
        O2$ = MID$(LB$, I%, J% - I% + 1)' EXTRACT TRACK 2
    END IF
    I% = INSTR(LB$, "?+")            ' FIND BEGIN OF TRACK 3
    IF I% <> 0 THEN
        I% = I% + 1
        J% = INSTR(I%, LB$, "?")     ' FIND END OF TRACK 3
        O3$ = MID$(LB$, I%, J% - I% + 1)' EXTRACT TRACK 3
    END IF
END IF
IF FIRST.START.CHAR$ = ";" THEN
    I% = INSTR(LB$, ";")             ' FIND BEGIN OF TRACK 2
    J% = INSTR(LB$, "?")             ' FIND END OF TRACK 2
    O2$ = MID$(LB$, I%, J% - I% + 1) ' EXTRACT TRACK 2
    I% = INSTR(LB$, "?+")            ' FIND BEGIN OF TRACK 3
    IF I% <> 0 THEN
        I% = I% + 1
        J% = INSTR(I%, LB$, "?")     ' FIND END OF TRACK 3
        O3$ = MID$(LB$, I%, J% - I% + 1)' EXTRACT TRACK 3
    END IF
END IF
IF FIRST.START.CHAR$ = "+" THEN
    I% = INSTR(LB$, "+")            ' FIND BEGIN OF TRACK 3
    J% = INSTR(LB$, "?")            ' FIND END OF TRACK 3
    O3$ = MID$(LB$, I%, J% - I% + 1)' EXTRACT TRACK 3
END IF
RETURN

90000
'======================================================================
' 90000 - UNABLE TO OPEN SERIAL PORT
' DATE - 880125
'======================================================================
CLS
BEEP
PRINT : PRINT : PRINT : PRINT : PRINT
PRINT "                             OPERATION ABORTED!"
PRINT "                             PROGRAM TERMINATED!"
PRINT
PRINT "                         UNABLE TO OPEN SERIAL PORT."
PRINT "                PLEASE CHECK YOUR SERIAL PORT (COM1 OR COM2)"
PRINT
PRINT "                To change your serial port, hit the ESC key"
PRINT "                    immediately after entering MRW600"
PRINT : PRINT : PRINT
GOTO THE.END

THE.END:
END

8000 '******************************
8001 '******  ENCODE CARDS  ********
8002 '******************************
8005
8010 DIM TRACE$(3)
8020 CLS : SCREEN , , 0, 0: T8% = 1: O1$ = " ": O2$ = " ": O3$ = " ": TRACE$(1) = " ": TRACE$(2) = " ": TRACE$(3) = " "
8022 GOSUB 3750
8025 GOSUB 9000
     IF M9% = 1 THEN X1% = 1
8027 IF M9% = 2 THEN X2% = 1
8029 IF M9% = 3 THEN X3% = 1
8030 GOSUB 3030
8032 IF M9% = 1 THEN L% = LEN(O1$): O1$ = LEFT$(O1$, L% - 1): O1$ = RIGHT$(O1$, L% - 2): TRCAE$(1) = O1$: X1% = 1
8034 IF M9% = 2 THEN L% = LEN(O2$): O2$ = LEFT$(O2$, L% - 1): O2$ = RIGHT$(O2$, L% - 2): TRACE$(2) = O2$: X2% = 1
8036 IF M9% = 3 THEN L% = LEN(O3$): O3$ = LEFT$(O3$, L% - 1): O3$ = RIGHT$(O3$, L% - 2): TRACE$(3) = O3$: X3% = 1
8040 TRACE$(1) = O1$: TRACE$(2) = O2$: TRACE$(3) = O3$
8050 'GOSUB 9000
8060 FOR I% = 0 TO N% - 1
8070 CLS : SCREEN , , 0, 0
8080 LOCATE 2, 20, 0: COLOR 5, 0, 0: PRINT "******  ENCODE CARDS  ******"
8090 LOCATE 5, 1, 0: COLOR FG2, BG2: PRINT "TRACE 1 DATA": COLOR FG1, BG1: PRINT STRING$(76, "."): LOCATE 6, 1, 0: PRINT TRACE$(1)
8100 LOCATE 10, 1, 0: PRINT STRING$(80, " "): LOCATE 10, 1, 0: COLOR FG2, BG2: PRINT "TRACE 2 DATA": COLOR FG1, BG1: PRINT STRING$(36, "."): LOCATE 11, 1, 0: PRINT TRACE$(2)
8110 LOCATE 15, 1, 0: PRINT STRING$(80, " "): LOCATE 15, 1, 0: COLOR FG2, BG2: PRINT "TRACE 3 DATA": COLOR FG1, BG1: PRINT STRING$(104, "."): LOCATE 16, 1, 0: PRINT TRACE$(3)
8120 O1$ = TRACE$(1): O2$ = TRACE$(2): O3$ = TRACE$(3)
8124 IF M9% = 1 THEN OB$ = SX$ + B1$ + O1$ + B4$ + EX$
8126 IF M9% = 2 THEN OB$ = SX$ + B2$ + O2$ + B4$ + EX$
8128 IF M9% = 3 THEN OB$ = SX$ + B3$ + O3$ + B4$ + EX$
8130 ER% = 0
8140 GOSUB 2060
8150 L% = LEN(TRACE$(M9%))
8155 IF L% = 0 THEN TRACE$(M9%) = "0" + TRACE$(M9%): L% = 1
8160 C$ = MID$(TRACE$(M9%), L%, 1)
8170 J% = ASC(C$): J% = J% + 1
8180 IF J% = 58 THEN J% = 48: A$ = CHR$(J%): MID$(TRACE$(M9%), L%, 1) = A$: L% = L% - 1: GOTO 8155
8182 A$ = CHR$(J%): MID$(TRACE$(M9%), L%, 1) = A$
8190 NEXT I%
8192 CLS
8200 LOCATE 15, 25, 0: COLOR 15, 0, 0: PRINT "PRESS"; : COLOR 5, 0, 0: PRINT " ESC "; : COLOR 15, 0, 0: PRINT "TO RETURN !"
8210 IF INKEY$ = CHR$(27) THEN 9500
8220 GOTO 8200
8230 RETURN
9000 '****************************
9001 '
9002 '****************************
9005 KY$ = INKEY$
9010 IF KY$ = CHR$(27) THEN GOTO 5590
9100 TOPROW2 = 19: LEFTCOL2 = 12: D2 = 48: BHEIGHT2 = 8
9200 LOCATE TOPROW2, LEFTCOL2, 0: PRINT TLC$; STRING$(D2 - 2, HORIZ$); TRC$;
9215 FOR I% = 1 TO 3
9210 LOCATE TOPROW2 + I%, LEFTCOL2, 0: PRINT VERT$; LEFT$(MS$, D2 - 2); VERT$;
9220 NEXT I%
9230 LOCATE TOPROW2 + 4, LEFTCOL2, 0: PRINT BLC$; STRING$(D2 - 2, HORIZ$); BRC$
9240 LOCATE TOPROW2 + 1, LEFTCOL2 + 1, 0: PRINT "HOW MANY CARDS DO YOU WANT TO ENCODE "; : INPUT N%
9250 LOCATE 22, 13, 0: PRINT STRING$(46, " "): LOCATE TOPROW2 + 3, LEFTCOL2 + 1, 1: COLOR 7, 0, 0: PRINT "Which TRACK do you want to write?(1,2,3):";
9251 KKK$ = INKEY$
     IF KKK$ = "1" THEN
       M9% = 1
     ELSEIF KKK$ = "2" THEN
       M9% = 2
     ELSEIF KKK$ = "3" THEN
       M9% = 3
     ELSE
      GOTO 9251
     END IF
9255 '
9260 RETURN
9265 '
9266 '
9300 '*****************************
9301 '*****  MAKE A DATAFILE  *****
9302 '*****************************
9305 CLS : SCREEN , , 0, 0
9310 LOCATE 3, 20, 0: COLOR 5, 0, 0: PRINT "******  WRITE CARDS FROM DATAFILE  ******": PRINT
9320 PRINT "DO YOU WANT TO CREATE A DATAFILE? (Y/N) ";
9330 KY$ = INKEY$: IF KY$ = "" THEN 9330
9340 IF KY$ = "Y" THEN PRINT "Y": GOTO 9360
9350 IF KY$ = "N" THEN PRINT "N": GOTO 9425
9360 LOCATE 7, 1, 0: PRINT "PLEASE INPUT THE FILENAME: "; : LINE INPUT NAME$: PRINT
9370 PRINT STRING$(80, "=")
9380 COLOR 7, 0, 0: PRINT "INPUT "; : COLOR 5, 0, 0: PRINT "OK "; : COLOR 7, 0, 0: PRINT "THEN END !"
9390 OPEN NAME$ FOR OUTPUT AS #2
9395 Q% = 0
9397 LOCATE 18, 1, 0: PRINT "QUANTITY: "; Q%
9400 LOCATE 12, 1, 0: PRINT STRING$(80, " "): LOCATE 12, 1, 0: INPUT "TRACE DATA 1 : "; TX$(1): O1$ = B1$ + TX$(1) + B4$
9401 IF TX$(1) = "OK" THEN 9420
9402 LOCATE 14, 1, 0: PRINT STRING$(80, " "): LOCATE 14, 1, 0: INPUT "TRACE DATA 2 :"; TX$(2): O2$ = B2$ + TX$(2) + B4$
9403 LOCATE 16, 1, 0: PRINT STRING$(80, " "): LOCATE 16, 1, 0: INPUT "TRACE DATA 3 :"; TX$(3): O3$ = B3$ + TX$(3) + B4$
9405 Q% = Q% + 1
9408 TX$ = O1$ + O2$ + O3$
9410 PRINT #2, TX$
9415 GOTO 9397
9420 CLOSE #2
9425 LOCATE 20, 1, 0: PRINT STRING$(80, "=")
9430 LOCATE 22, 1, 0: PRINT "DO YOU WANT TO WRITE CARDS ?  (Y/N)";
9435 KY$ = INKEY$: IF KY$ = "" THEN 9435
9440 IF KY$ = "Y" THEN PRINT "Y": GOTO 9830
9445 IF KY$ = "N" THEN PRINT "N": RETURN
9450 IF KY$ = CHR$(27) THEN RETURN



9500 IF T7% = 1 THEN CLOSE 2
9501 IF T8% = 1 THEN ON ERROR GOTO 0
9502 T7% = 0: T8% = 0: X1% = 0: X2% = 0: X3% = 0
9510 CLS : SCREEN , , 0, 0:
9520 TOPROW = 7: LEFTCOL = 19: WIDTH1 = 40: HEIGHT = 11
9530 COLOR FG1, SCRN2: CLS : COLOR FG1, BG1: GOSUB 9700
9540 LOCATE TOPROW + 1, LEFTCOL + 14, 0: PRINT "WRITE CARD"
9550 LOCATE TOPROW + 4, LEFTCOL + 2, 0: PRINT "1. WRITE A CARD"
9560 LOCATE TOPROW + 6, LEFTCOL + 2, 0: PRINT "2. WRITE CARDS WITH CONTINUSLY CODE"
9570 LOCATE TOPROW + 8, LEFTCOL + 2, 0: PRINT "3. WRITE CARDS FROM FILE"
9580 LOCATE TOPROW + 11, LEFTCOL + 4, 0: PRINT "ENTER 1, 2 OR 3 ===>"
9590 KY$ = INKEY$
9600 IF KY$ = CHR$(49) THEN 3025
9610 IF KY$ = CHR$(50) THEN GOSUB 8000
9620 IF KY$ = CHR$(51) THEN GOSUB 9300: GOTO 9510
9630 IF KY$ = CHR$(27) THEN 5590
9640 GOTO 9590
9700 LOCATE TOPROW, LEFTCOL, 0: PRINT TLC$; STRING$(WIDTH1 - 2, HORIZ$); TRC$;
9710 LOCATE TOPROW + 1, LEFTCOL, 0: PRINT VERT$; LEFT$(MS$, WIDTH1 - 2); VERT$;
9720 LOCATE TOPROW + 2, LEFTCOL, 0: PRINT LST$; STRING$(WIDTH1 - 2, HORIZ$); RST$;
9730 FOR I% = 3 TO HEIGHT - 2
9740 LOCATE TOPROW + I%, LEFTCOL, 0: PRINT VERT$; LEFT$(MS$, WIDTH1 - 2); VERT$;
9750 NEXT I%
9760 LOCATE TOPROW + 10, LEFTCOL, 0: PRINT LST$; STRING$(WIDTH1 - 2, HORIZ$); RST$;
9780 LOCATE TOPROW + 11, LEFTCOL, 0: PRINT VERT$; LEFT$(MS$, WIDTH1 - 2); VERT$;
9790 LOCATE TOPROW + 12, LEFTCOL, 0: PRINT BLC$; STRING$(WIDTH1 - 2, HORIZ$); BRC$;
9800 RETURN
9810 '***************************************
9811 '*****  WRITE CARDS FROM DATAFILE  *****
9812 '***************************************
9820 '
9830 CLS : SCREEN , , 0, 0: T7% = 1: Q% = 0
9840 LOCATE 5, 15, 0: COLOR 5, 0, 0: PRINT "******  WRITE CARDS FROM FILE  ******"
9850 LOCATE 8, 3, 0: PRINT "PLEASE INPUT DATA FILENAME: "; : LINE INPUT NAME$
9855 ON ERROR GOTO 9950
9860 OPEN NAME$ FOR INPUT AS #2
9870 '
9880 IF EOF(2) THEN CLOSE #2: RETURN
9890 LINE INPUT #2, TX$
9895 Q% = Q% + 1: LOCATE 12, 3, 0: PRINT "QUANTITY: "; Q%
9900 'TX$ = B2$ + TX$ + B4$
9902 ER% = 0
9905  ON ERROR GOTO 0
9907 LOCATE 5, 15, 0: COLOR 5, 0, 0: PRINT "******  WRITE CARDS FROM FILE  ******"
9910 LOCATE 10, 3, 0: PRINT "TRACE:"; : PRINT TX$: IF T9% = 1 THEN RETURN
9912 OB$ = SX$ + TX$ + EX$
9913 GOSUB 2060
9914 KY$ = INKEY$
9915 IF KY$ = CHR$(27) THEN 9510
9920 T9% = 0: GOTO 9880
9950  CLS : LOCATE 8, 32, 0: COLOR 31, 0, 0: PRINT "BAD FILE NAME !": LOCATE 16, 26, 0: COLOR 15, 0, 0: PRINT "Depress any key to retry !": LOCATE 17, 28, 0: PRINT "Press ESC to return !"
9952 KY$ = INKEY$
9955 IF KY$ = CHR$(27) THEN RESUME 9510
9957  IF KY$ = "" THEN 9952
9558 RESUME 9830
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -