Google
 

Trailing-Edge - PDP-10 Archives - decuslib10-01 - 43,50110/chars.uti
There are 2 other files named chars.uti in the archive. Click here to see a list.
100'  NAME--CHARS
110'
120'  DESCRIPTION--LISTS THE STANDARD ASCII CHARACTERS.
130'
140'  SOURCE--BASED ON THE REPORT ON ASCII FOUND IN:COMMUNICATIONS OF
150'  THE ACM, VOLUME 8,NUMBER 4,APRIL 1965,PP207-214.
160'  UPDATED BY:
170'  "REVISED U.S.A. STANDARD CODE FOR INFORMATION INTERCHANGE",
180'  WESTERN UNION TECHNICAL REVIEW, VOLUME 21,NUMBER 4,
190'  NOVEMBER 1967, PP184-191.
200'  THE PROGRAM WAS WRITTEN BY GREGORY M. DOBBS'69.
210'
220'  INSTRUCTIONS--TYPE "RUN" TO USE THE PROGRAM. THE COMMENTARY IS
230'  FOR ITS USE WITH THE MODEL 33/35/37 KSR/ASR TELETYPES AND 
240'  TIME-SHARING SOFTWARE, SUCH AS THE BASIC COMPILER.
250'  ABBREVIATIONS AND SYMBOLS USED:
260'  N.A.        NOT AVAILABLE
270'  'C'         CONTROL (DEPRESS THE CTRL KEY WHEN TYPING CHARACTER)
280'  'S'         SHIFT (DEPRESS THE SHIFT KEY WHEN TYPING CHARACTER)
290'  'CS'        CONTROL-SHIFT (DEPRESS BOTH CTRL AND SHIFT WHEN
300'              TYPING CHARACTER.)
310'  (CC)        COMMUNICATIONS CONTROL CHARACTER
320'  (FE)        FORMAT EFFECTOR
330'  (IS)        INFORMATION SEPARATOR
340'
350'
360'  *  *  *  *  *  *   MAIN PROGRAM  *  *  *  *  *  *  *  *  *  *
370'
380 DIM A$(127),B$(127),C$(127),D$(127)
390 PRINT TAB(10);"ASCII";TAB(21);"MODEL 33/35 TTY"
400 PRINT "OCT";TAB(5);"DEC";TAB(10);"CHARACTER";TAB(21);
410 PRINT "SEND";TAB(31);"RECEIVE";TAB(44);"COMMENTS"
420 PRINT
430 DEF FNO(N)
440 LET D1=INT(N/64)
450 LET D2=INT((N-D1*64)/8)
460 LET D3=N-64*D1-8*D2
470 LET FNO=D1*100+D2*10+D3
480 FNEND
490 LET A$(0)="'CS'P"
500 FOR X=1 TO 26
510 LET X(0)=4
520 LET X(1)=39
530 LET X(2)=99
540 LET X(3)=39
550 LET X(4)=X+96
560 CHANGE X TO A$(X)
570 NEXT X
580 LET A$(27)="'CS'K"
590 LET A$(28)="'CS'L"
600 LET A$(29)="'CS'M"
610 LET A$(30)="'CS'N"
620 LET A$(31)="'CS'O"
630 LET A$(32)="SPACE"
640 LET C=49
650 FOR Z=33 TO 43
660 LET X(0)=4
670 LET X(1)=X(3)=39
680 LET X(2)=115
690 LET X(4)=C
700 LET C=C+1
710 CHANGE X TO A$(Z)
720 NEXT Z
730 FOR Z=44 TO 59
740 LET X(0)=1
750 LET X(1)=Z
760 CHANGE X TO A$(Z)
770 NEXT Z
780 LET A$(60)="'S',"
790 LET A$(61)="'S'-"
800 LET A$(62)="'S'."
810 LET A$(63)="'S'/"
820 LET A$(64)="'S'P"
830 FOR Z=65 TO 90
840 LET X(0)=1
850 LET X(1)=Z
860 CHANGE X TO A$(Z)
870 NEXT Z
880 LET A$(91)="'S'K"
890 LET A$(92)="'S'L"
900 LET A$(93)="'S'M"
910 LET A$(94)="'S'N"
920 LET A$(95)="'S'O"
930 FOR Z=96 TO 123
940 LET A$(Z)="N.A."
950 NEXT Z
960 LET A$(124)="ACK"
970 LET A$(125)="ALT MODE"
980 LET A$(126)="N.A."
990 LET A$(127)="RUBOUT"
1000 FOR I=0 TO 32
1010 READ B$(I)
1020 NEXT I
1030 FOR I=33 TO 95
1040 LET X(0)=1
1050 LET X(1)=I
1060 CHANGE X TO B$(I)
1070 NEXT I
1080 LET B$(94)="CIRCUMFLEX"
1090 LET B$(95)="UNDERLINE"
1100 LET B$(96)="GRAVE"
1110 FOR I=97 TO 122
1120 LET X(0)=5
1130 LET X(1)=X(4)=39
1140 LET X(2)=108
1150 LET X(3)=99
1160 LET X(5)=I
1170 CHANGE X TO B$(I)
1180 NEXT I
1190 LET B$(123)="L.BRACE"
1200 LET B$(124)="VERT.LINE"
1210 LET B$(125)="R.BRACE"
1220 LET B$(126)="TILDE"
1230 LET B$(127)="DEL"
1240 LET C$(1)="SOH"
1250 LET C$(2)="STX"
1260 LET C$(3)="EOM/ETX"
1270 LET C$(4)="EOT"
1280 LET C$(5)="WRU"
1290 LET C$(6)="RU"
1300 LET C$(7)="BELL"
1310 LET C$(9)="TAB"
1320 LET C$(10)="LINE FEED"
1330 LET C$(11)="VT"
1340 LET C$(12)="FORM/FF"
1350 LET C$(13)="RETURN"
1360 LET C$(17)="X-ON"
1370 LET C$(18)="AUX.TAPE ON"
1380 LET C$(19)="X-OFF"
1390 LET C$(20)="AUX.TAPE OFF"
1400 LET C$(21)="ERROR"
1410 LET C$(27)="ESC"
1420 LET C$(32)="SPACE"
1430 FOR I=33 TO 122
1440 LET X(0)=1
1450 LET X(1)=I
1460 CHANGE X TO C$(I)
1470 NEXT I
1480 FOR I=0 TO 47
1490 READ D$(I)
1500 NEXT I
1510 FOR I=58 TO 64
1520 READ D$(I)
1530 NEXT I
1540 FOR I=91 TO 96
1550 READ D$(I)
1560 NEXT I
1570 FOR I=123 TO 127
1580 READ D$(I)
1590 NEXT I
1600 FOR I=0 TO 127
1610 PRINT FNO(I);TAB(5);I;TAB(10);B$(I);TAB(21);
1620 PRINT A$(I);TAB(31);C$(I);
1630 IF D$(I)="" THEN 1650
1640 PRINT TAB(44);D$(I);
1650 PRINT
1660 NEXT I
1670 DATA NUL,SOH,STX,ETX,EOT,ENQ,ACK,BEL,BS,HT,LF,VT,FF,CR,SO,SI,DLE
1680 DATA DC1,DC2,DC3,DC4,NAK,SYN,ETB,CAN,EM,SUB,ESC,FS,GS,RS,US
1690 DATA SP
1700 DATA NULL,START OF HEADING(CC),START OF TEXT(CC),END OF TEXT(CC)
1710 DATA END OF TRANSMISSION(CC),ENQUIRY(CC),ACKNOWLEDGE(CC),BELL
1720 DATA BACKSPACE(FE),HORIZONTAL TABULATION(FE),LINE FEED(FE)
1730 DATA VERTICAL TABULATION(FE),FORM FEED(FE),CARRIAGE RETURN(FE)
1740 DATA SHIFT OUT,SHIFT IN,DATA LINK ESCAPE(CC),DEVICE CONTROL 1
1750 DATA DEVICE CONTROL 2,DEVICE CONTROL 3,DEVICE CONTROL 4(STOP)
1760 DATA NEGATIVE ACKNOWLEDGE(CC),SYNCHRONOUS IDLE(CC)
1770 DATA END TRANSMISSION BLOCK(CC),CANCEL,END OF MEDIUM
1780 DATA SUBSTITUTE,ESCAPE,FILE SEPARATOR(IS),GROUP SEPARATOR(IS)
1790 DATA RECORD SEPARATOR(IS),UNIT SEPARATOR(IS),SPACE
1800 DATA EXCLAIMATION POINT,QUOTATION MARKS/DIAERESIS
1810 DATA NUMBER SIGN,DOLLAR SIGN,PERCENT,AMPERSAND
1820 DATA APOSTROPHE/ACUTE ACCENT,OPENING PARENTHESIS,CLOSING PARENTHESIS
1830 DATA ASTERISK,PLUS,COMMA/CEDILLA,HYPHEN/MINUS,PERIOD/DECIMAL POINT
1840 DATA SLANT
1850 DATA COLON,SEMICOLON,LESS THAN,EQUALS,GREATER THAN,QUESTION MARK
1860 DATA COMMERCIAL AT
1870 DATA OPENING BRACKET,BACKSLASH,CLOSING BRACKET,CIRCUMFLEX
1880 DATA UNDERLINE,GRAVE ACCENT
1890 DATA OPENING BRACE,VERTICAL LINE,CLOSING BRACE,TILDE,DELETE
1900 END