10 ' Picture City Personal Computer Programming Club "CHARDISP" 20 ' Michael Csontos, 3228 Livonia Center Road, Lima, NY 14485 30 KEY OFF:CLS 40 PRINT "This program allows you to view the complete character set for 50 PRINT " the IBM Personal Computer on the display in a form which 60 PRINT " allows you to closely examine it for selection of characters 70 PRINT " which might be useful for special purposes. 80 PRINT 90 PRINT "The entire set will scroll slowly and may be stopped at any time by 100 PRINT " pressingand keys simutaniously. To resume 110 PRINT " the scrolling, press the space bar. Use + 3 or 4 times, and . 140 PRINT " 150 PRINT "To use characters which are not represented by keys on the keyboard, 160 PRINT " the sequence CHR$(n) must be used in a print statement, where 170 PRINT " n is the number that appears at the beginning of the line 180 PRINT " in the display, e.g. PRINT CHR$(146) produces ";CHR$(146);"." 190 PRINT 200 PRINT "Non-displayed characters are described only, since outputting them 210 PRINT " to the display might produce a confusing result. 220 PRINT " 230 INPUT "Ready to start (Y/N)";A$ 240 IF A$="Y" GOTO 290 250 IF A$="y" GOTO 290 260 IF A$="n" THEN GOTO 580 270 IF A$="N" THEN GOTO 580 280 PRINT:PRINT "The program will respond to keys y,Y,n or N only!":FOR W=1 TO 5000:NEXT :GOTO 10 290 CLS 300 FOR N=0 TO 255 310 IF N<10 THEN PRINT " "; 320 IF N<100 THEN PRINT " "; 330 PRINT N; 340 IF N=0 THEN PRINT "NULL":L$=STRING$(20,CHR$(1)):GOTO 740 350 IF N=7 THEN PRINT "BEEP";CHR$(7):GOTO 590 360 IF N=8 THEN PRINT "BACKSPACE":GOTO 590 370 IF N=9 THEN PRINT "TAB":GOTO 590 380 IF N=10 THEN PRINT "LINE FEED":GOTO 590 390 IF N=11 THEN PRINT "HOME":GOTO 590 400 IF N=12 THEN PRINT "FORM FEED":GOTO 590 410 IF N=13 THEN PRINT "CARRIAGE RETURN":GOTO 700 420 IF N=28 THEN PRINT "CURSOR RIGHT":GOTO 590 430 IF N=29 THEN PRINT "CURSOR LEFT":GOTO 590 440 IF N=30 THEN PRINT "CURSOR UP":GOTO 590 450 IF N=31 THEN PRINT "CURSOR DOWN":GOTO 590 460 IF N=32 THEN PRINT "SPACE":GOTO 730 470 IF N=255 THEN PRINT "BLANK 'FF'":GOTO 590 480 PRINT CHR$(N);" "; 490 FOR M=1 TO 72 500 PRINT CHR$(N); 510 NEXT M 520 FOR Q=0 TO 1500:NEXT'delay at end of full charactor lines 530 IF FIX(N/2)=N/2 THEN 600 ELSE 650 540 PRINT SPC(40);Z$;W$;:FOR P=0 TO 400:NEXT 'delay at end of split lines 550 GOSUB 760 560 NEXT N 570 FOR NN=0 TO 10:PRINT:FOR NNN=0 TO 1500:NEXT:PRINT:GOSUB 760:FOR NNNN=0 TO 1000:NEXT:NEXT:CLS 580 PRINT:PRINT "G";CHR$(1);CHR$(2);CHR$(3);" B";CHR$(157);CHR$(144):PRINT:KEY ON:END 590 FOR O=0 TO 2000:NEXT:PRINT:FOR O=0 TO 1000:NEXT:GOTO 550'delays for non-print lines 600 X$=CHR$(N) 610 Z$=STRING$(20,X$) 620 IF N=6 THEN Y$=" ":GOTO 640 630 Y$=CHR$(N+1) 640 W$=STRING$(20,Y$):GOTO 540 650 IF N=7 THEN Y$=" ":GOTO 670 660 Y$=CHR$(N) 670 W$=STRING$(20,Y$) 680 X$=CHR$(N+1) 690 Z$=STRING$(20,X$):GOTO 540 700 K$=STRING$(20,CHR$(14)) 710 PRINT SPC(40);K$ 720 GOTO 550 730 L$=STRING$(20,CHR$(33)) 740 PRINT SPC(60);L$; 750 GOTO 550 760 DEF SEG = &HB800 770 FOR COLUMN = 50 TO 70 780 POKE ((CSRLIN-10)*160+(COLUMN-1)*2)+1,112 790 NEXT COLUMN 800 FOR COLUMN = 50 TO 70 810 POKE ((CSRLIN-11)*160+(COLUMN-1)*2)+1,112 820 NEXT COLUMN 830 RETURN 840 ' SAVE"CHARDISP