[comp.binaries.ibm.pc.d] XXD.BAS - Easy bootstrap for fast XXdecode program

w8sdz@WSMR-SIMTEL20.ARMY.MIL (Keith Petersen) (10/03/89)

100 REM - BASIC PROGRAM TO CREATE XXD.COM (a fast xxdecoder)
110 CLS:PRINT "Creating XXD.COM     ": OPEN "XXD.COM     " AS #1 LEN = 1
120 FIELD #1, 1 AS A$: CHECKSUM#=0
130 FOR I = 1 TO    48
140  LINESUM#=0: LOCATE 2,3: PRINT "Countdown: "    48 - I ;
150  FOR J = 1 TO  16: READ BYTE$: CHECKSUM#=CHECKSUM#+VAL("&H"+BYTE$)
160   LINESUM#=LINESUM#+VAL("&H"+BYTE$)
170   IF (BYTE < 256) THEN LSET A$=CHR$(VAL("&H"+BYTE$)): PUT #1
180  NEXT J
190  READ LINETOT$: LINECHECK# = VAL("&H"+LINETOT$)
200  IF LINECHECK# = LINESUM# THEN GOTO 220
210  LOCATE 4,2: PRINT "Error in line #"  ;  260 +  10 * I: GOTO 260
220 NEXT I
230 CLOSE: READ FILETOT$ : FILECHECK# = VAL(FILETOT$)
240 IF CHECKSUM# <> FILECHECK# THEN GOTO 260
250 PRINT: PRINT "XXD.COM      created successfully": SYSTEM
260 PRINT: PRINT "XXD.COM      is not valid!": END
270 DATA E9, 93,  0, 49, 6E, 70, 75, 74, 20, 66, 69, 6C, 65, 20, 65, 72,   643
280 DATA 72, 6F, 72, 2E,  D,  A, 4F, 75, 74, 70, 75, 74, 20, 66, 69, 6C,   584
290 DATA 65, 20, 65, 72, 72, 6F, 72, 2E,  D,  A, 73, 74, 61, 72, 74, 20,   542
300 DATA 6E, 6F, 74, 20, 66, 6F, 75, 6E, 64, 2E,  D,  A, 45, 6E, 64, 20,   509
310 DATA 6E, 6F, 74, 20, 66, 6F, 75, 6E, 64, 2E,  D,  A,  0,  0,  0,  0,   3D2
320 DATA B0,  3, B0,  3, 60,  3, 2B, 2D, 30, 31, 32, 33, 34, 35, 36, 37,   3BD
330 DATA 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 49, 4A, 4B, 4C, 4D, 4E,   45A
340 DATA 4F, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 5A, 61, 62, 63, 64,   580
350 DATA 65, 66, 67, 68, 69, 6A, 6B, 6C, 6D, 6E, 6F, 70, 71, 72, 73, 74,   6C8
360 DATA 75, 76, 77, 78, 79, 7A, E8, CA,  1, E8, 3B,  1, BF, 60,  3, E8,   7AE
370 DATA C8,  0, AD, 3D, 62, 65, 75, F4, AD, 3D, 67, 69, 75, EE, AD, 3D,   7E9
380 DATA 6E, 20, 75, E8, BF, 60,  3, AC, 3A, C4, 76, FB, AC, 3A, C4, 75,   847
390 DATA FB, AC, 3A, C4, 76, FB, 3A, C4, 74,  4, AA, AC, EB, F8, BA, 60,   9DF
400 DATA  3, 33, C9, 88,  D, B4, 3C, CD, 21, 73,  3, E9, F1,  0, A3, 4E,   6B3
410 DATA  1, BF, 60,  3, E8, 83,  0, 8A,  4,  A, C0, 74, 65, 3C, 2B, 74,   59A
420 DATA 61, 3C, 20, 74, 5D, 57, BB, 56,  1, BA, 40,  0, 56, AC,  A, C0,   5BD
430 DATA 74, 12, 8B, FB, 8B, CA, F2, AE, 75, 45, 8B, C7, 48, 2B, C3, 88,   8CB
440 DATA 44, FF, EB, E9, 5E, 5F, AC, 32, E4, 8B, E8, B9,  4,  6, AD, 86,   8FF
450 DATA C4, 8A, D0, D0, E4, D0, E4, D2, E8,  A, C4, AA, 4D, 74, B5, 8A,   AB8
460 DATA E2, AC, 8A, D0, D2, E4, D0, E8, D0, E8,  A, C4, AA, 4D, 74, A4,   AEB
470 DATA 8A, E2, AC, 8A, CD, D2, E4,  A, C4, AA, 4D, 75, CE, EB, 95, E9,   A96
480 DATA A1,  0, E8, 15,  0, AD, 3D, 65, 6E, 75,  5, AC, 3C, 64, 74,  3,   598
490 DATA E8, 9E,  0, E8, 51,  0, B4, 4C, CD, 21, 8B, 36, 50,  1, 89, 3E,   686
500 DATA 54,  1, BD, 43,  0, BF, 10,  3, C6,  5,  0, 3B, 36, 52,  1, 72,   428
510 DATA  6, E8, 33,  0, E8, 50,  0, AC, 3C,  D, 74, 1B, 3C,  A, 74, 18,   4AF
520 DATA AA, 4D, 75, E7, 3B, 36, 52,  1, 72,  3, E8, 3A,  0, AC, 3C,  A,   5A0
530 DATA 75, F2, BF, 60,  3, EB, C7, 46, C6,  5,  0, 89, 36, 50,  1, 8B,   6E7
540 DATA 3E, 54,  1, BE, 10,  3, C3, BA, 60,  3, 8B, CA, 87,  E, 54,  1,   583
550 DATA 2B, CA, 76,  A, 8B, 1E, 4E,  1, B4, 40, CD, 21, 72,  1, C3, BA,   63F
560 DATA 16,  1, B9, 14,  0, EB, 22, BA, B0,  3, B9,  0, E1, 8B, 1E, 4C,   5ED
570 DATA  1, B4, 3F, CD, 21, 72,  C,  B, C0, 74,  8, 8B, F2,  3, C6, A3,   690
580 DATA 52,  1, C3, BA,  3,  1, B9, 13,  0, 50, E8,  A,  0, 58, E9, 65,   588
590 DATA FF, BA, 3C,  1, B9, 10,  0, BB,  2,  0, B4, 40, CD, 21, C3, 90,   6B1
600 DATA 54, 68, 69, 73, 20, 70, 72, 6F, 67, 72, 61, 6D, 20, 72, 65, 71,   618
610 DATA 75, 69, 72, 65, 73, 20, 44, 4F, 53, 20, 56, 65, 72, 73, 69, 6F,   5C6
620 DATA 6E, 20, 32, 2E, 30, 20, 6F, 72, 20, 68, 69, 67, 68, 65, 72, 2E,   4E4
630 DATA  D,  A, 24,  D,  A, 49, 6E, 70, 75, 74, 20, 70, 61, 74, 68, 2F,   45E
640 DATA 66, 69, 6C, 65, 3A, 20, 20, 4E, 6F, 20, 61, 63, 74, 69, 6F, 6E,   575
650 DATA  D,  A, 24, B4, 30, CD, 21, 3C,  2, 73,  C, BA, 10,  3, B4,  9,   454
660 DATA CD, 21, B8,  1, 4C, CD, 21, E8, 36,  0, 73, 23, BA, 43,  3, B9,   64E
670 DATA 14,  0, BB,  2,  0, B4, 40, CD, 21, BF, 7F,  0, C6,  5, 50, 8B,   597
680 DATA D7, B4,  A, CD, 21, E8, 18,  0, 73,  5, BA, 57,  3, EB, CF, BA,   783
690 DATA D2,  3, B8,  0, 3D, CD, 21, 72,  4, A3, 4C,  1, C3, E9, 43, FF,   70C
700 DATA BE, 80,  0, BF, D2,  3, FC, AC,  A, C0, 74,  F, B4, 20, AC, 3A,   781
710 DATA C4, 76, FB, 3A, C4, 76,  6, AA, AC, EB, F8, F9, C3, C6,  5,  0,   96F
720 DATA F8, C3, 58, 58, 44, 20, 76, 31, 2E, 30,  0, 44, 61, 76, 69, 64,   5BC
730 DATA 20, 50, 20, 4B, 69, 72, 73, 63, 68, 62, 61, 75, 6D, 2C, 20, 54,   539
740 DATA 6F, 61, 64, 20, 48, 61, 6C, 6C,  0,  0,  0,  0,  0,  0,  0,  0,   2D5
750 DATA 78360