'=========================================================================== ' Subject: ENGLISH CHARACTER SET VIEWER Date: 06-28-00 (19:51) ' Author: Edward L. Blake Code: QB, QBasic, PDS ' Origin: blakee@cyanwerks.com Packet: TEXT.ABC '=========================================================================== ' 1995-1996 Edward L. Blake ' Character Set Viewer (English Version) ' French version is included somewhere else ' Email: blakee@cyanwerks.com ' DECLARE SUB PRINTER () DECLARE SUB MENU (A!) DECLARE SUB CHANGEBAR (A$) DECLARE SUB BCKGND () DECLARE SUB WIN (X1!, Y1!, X2!, Y2!, A$) ' $DYNAMIC DIM C(255) AS STRING * 4 DIM D(255) AS STRING * 3 ' $STATIC DIM E$(50) ON ERROR GOTO ERRAND COLOR 5, 0 CLS BCKGND COLOR 7, 1 WIN 30, 9, 53, 13, "" CHANGEBAR " ASCII character set viewer - 1996 Edward Blake " COLOR 7, 1 FOR I = 0 TO 255 A$ = CHR$(I) IF A$ = CHR$(0) THEN C(I) = "NUL " IF A$ = CHR$(1) THEN C(I) = "SOH " IF A$ = CHR$(2) THEN C(I) = "STX " IF A$ = CHR$(3) THEN C(I) = "ETX " IF A$ = CHR$(4) THEN C(I) = "EOT " IF A$ = CHR$(5) THEN C(I) = "ENQ " IF A$ = CHR$(6) THEN C(I) = "ACK " IF A$ = CHR$(7) THEN C(I) = "BEL " IF A$ = CHR$(8) THEN C(I) = "BS " IF A$ = CHR$(9) THEN C(I) = "HT " IF A$ = CHR$(10) THEN C(I) = "LF " IF A$ = CHR$(11) THEN C(I) = "VT " IF A$ = CHR$(12) THEN C(I) = "FF " IF A$ = CHR$(13) THEN C(I) = "CR " IF A$ = CHR$(14) THEN C(I) = "SO " IF A$ = CHR$(15) THEN C(I) = "SI " IF A$ = CHR$(16) THEN C(I) = "DLE " IF A$ = CHR$(17) THEN C(I) = "DC1 " IF A$ = CHR$(18) THEN C(I) = "DC2 " IF A$ = CHR$(19) THEN C(I) = "DC3 " IF A$ = CHR$(20) THEN C(I) = "DC4 " IF A$ = CHR$(21) THEN C(I) = "NAK " IF A$ = CHR$(22) THEN C(I) = "SYN " IF A$ = CHR$(23) THEN C(I) = "ETB " IF A$ = CHR$(24) THEN C(I) = "CAN " IF A$ = CHR$(25) THEN C(I) = "EM " IF A$ = CHR$(26) THEN C(I) = "SUB " IF A$ = CHR$(27) THEN C(I) = "ESC " IF A$ = CHR$(28) THEN C(I) = "FS " IF A$ = CHR$(29) THEN C(I) = "GS " IF A$ = CHR$(30) THEN C(I) = "RS " IF A$ = CHR$(31) THEN C(I) = "US " IF A$ = CHR$(32) THEN C(I) = "Spc " IF LEN(A$) = 1 AND A$ > CHR$(32) AND A$ <= CHR$(255) THEN C(I) = "" + A$ + " " D(I) = "00" + LTRIM$(STR$(I)) IF I > 9 THEN D(I) = "0" + LTRIM$(STR$(I)) IF I > 99 THEN D(I) = LTRIM$(STR$(I)) LOCATE 10, 31: PRINT "Proscession ...(" + STR$(INT((100 / 255) * I)) + "%)" NEXT I I = 0 FOR X = 0 TO 246 STEP 9 FOR Y = 1 TO 9 LOCATE 11, 31: PRINT "Formating ...(" + STR$(INT((100 / 255) * X)) + "%)" E$(I) = E$(I) + D(Y + X) + " " + C(Y + X) NEXT Y I = I + 1 NEXT X FOR X = 253 TO 255 E$(I) = E$(I) + D(X) + " " + C(X) NEXT X LOCATE 11, 31: PRINT "Formating ...(" + STR$(INT((100 / 255) * X)) + "%)" LOCATE 12, 31: PRINT "push ENTER to continue" DO UNTIL INKEY$ = "": LOOP DO UNTIL INKEY$ = CHR$(13): LOOP ERASE C, D CHANGEBAR "³ File ³ Menu - ALT + letter" COLOR 7, 1 WIN 4, 2, 77, 23, "ASCII Codes" X = 0 DO I$ = INKEY$ IF I$ = CHR$(0) + CHR$(80) THEN X = X + 1 IF I$ = CHR$(0) + CHR$(72) THEN X = X - 1 IF X < 0 THEN X = 0 IF X > 10 THEN X = 10 IF I$ = CHR$(27) THEN COLOR 7, 0 CLS SYSTEM END IF IF I$ = CHR$(0) + CHR$(33) THEN COLOR 15, 1 LOCATE 25, 1: PRINT "³ File ³"; COLOR 7, 1 MENU 1 END IF FOR I = 0 TO 19 LOCATE I + 3, 5: PRINT E$(X + I) + STRING$(72 - LEN(E$(X + I)), " ") NEXT I LOOP ERRAND: IF ERR THEN BEEP ERRV = 1 RESUME NEXT END IF SUB BCKGND FOR I = 1 TO 24 LOCATE I, 1: PRINT STRING$(80, 177); NEXT I LOCATE 25, 1: PRINT STRING$(80, 177); END SUB SUB CHANGEBAR (A$) COLOR 0, 7 LOCATE 25, 1: PRINT A$; COLOR 15, 0 END SUB SUB MENU (A) SELECT CASE A CASE 1 COLOR 0, 7 LOCATE 20, 1: PRINT "ÚÄÄÄÄÄÄÄÄÄÄÄÄÄ¿"; LOCATE 21, 1: PRINT "³Printer ³"; LOCATE 22, 1: PRINT "³ÄÄÄÄÄÄÄÄÄÄÄÄij"; LOCATE 23, 1: PRINT "³Close ³"; LOCATE 24, 1: PRINT "ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ"; COLOR 15, 1 LOCATE 21, 2: PRINT "Printer "; COLOR 0, 7 LOCATE 23, 2: PRINT "Close "; DO I$ = INKEY$ IF I$ = CHR$(27) THEN COLOR 5, 0 BCKGND CHANGEBAR "³ File ³ Menu - ALT + Lettre" COLOR 7, 1 WIN 4, 2, 77, 23, "ASCII Codes" EXIT SUB END IF IF I$ = CHR$(0) + CHR$(80) THEN Z = Z + 1 IF I$ = CHR$(0) + CHR$(72) THEN Z = Z - 1 IF Z >= 2 THEN Z = 0 IF Z = 0 THEN COLOR 15, 1 LOCATE 21, 2: PRINT "Printer "; COLOR 0, 7 LOCATE 23, 2: PRINT "Close "; END IF IF Z = 1 THEN COLOR 15, 1 LOCATE 23, 2: PRINT "Close "; COLOR 0, 7 LOCATE 21, 2: PRINT "Printer "; END IF IF I$ = CHR$(13) THEN IF Z = 1 THEN COLOR 7, 0 CLS SYSTEM END IF IF Z = 0 THEN PRINTER END IF LOOP END SELECT END SUB SUB PRINTER SHARED E$(), ERRV COLOR 15, 1 WIN 1, 1, 80, 3, "" LOCATE 2, 20: PRINT "Printing in proscesing ³ ³"; OPEN "LPT1:" FOR OUTPUT AS #1 IF ERRV THEN COLOR 31, 4 WIN 1, 1, 80, 3, "ERROR!!" LOCATE 2, 20: PRINT "Printer error!"; CLOSE #1 EXIT SUB END IF FOR I = 0 TO 35 PRINT #1, E$(I) LOCATE 2, 20: PRINT "Printing in proscesing ³" + STRING$(I + 1, 219); IF ERRV THEN COLOR 31, 4 WIN 1, 1, 80, 3, "ERROR!!" LOCATE 2, 20: PRINT "Printer error!"; CLOSE #1 EXIT SUB END IF NEXT I CLOSE #1 COLOR 0, 5 FOR I = 1 TO 2 LOCATE I, 1: PRINT STRING$(80, 177); NEXT I COLOR 7, 1 WIN 4, 2, 77, 23, "ASCII Codes" END SUB SUB WIN (X1, Y1, X2, Y2, A$) FOR I = Y1 TO Y2 LOCATE I, X1: PRINT STRING$(X2 - X1, 32); NEXT I LOCATE Y1, X1 + 1: PRINT STRING$(X2 - X1 - 1, 196); LOCATE Y2, X1 + 1: PRINT STRING$(X2 - X1 - 1, 196); FOR I = Y1 + 1 TO Y2 - 1 LOCATE I, X1: PRINT CHR$(179); LOCATE I, X2: PRINT CHR$(179); NEXT I LOCATE Y1, X1: PRINT CHR$(218); LOCATE Y1, X2: PRINT CHR$(191); LOCATE Y2, X1: PRINT CHR$(192); LOCATE Y2, X2: PRINT CHR$(217); IF A$ <> "" THEN LOCATE Y1, INT((X2 + X1) / 2) - ((LEN(A$) + 2) / 2): PRINT "[" + A$ + "]" END IF END SUB