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