Listing of file='T27D040B' on disk='vmedia/702-0079.wvd.zip'
# Sector 667, program filename = 'T27D040B' 0010 REM T27D040B 05/26/77 -WITH PRT---2227B TTY EMULATOR---PREPARED BY TYLER OLSEN, WANG LABS R&D 0020 DIM E$(7)8 : GOTO 530 : DIM C2$(16)16,I$(250)1,B$1,C$1,B$(5)4,S$(6)1 0050 $GIOSENDDATA#1(G9$,A$)C$ 0070 $IF ON /001,320 0080 $GIOREADSTATUS#1(G1$,A$)S$() : IF S$(3)>HEX(00)THEN 280 : IF S$(1)>HEX(00)THEN 290 : IF S$(4)=HEX(00)THEN 70 : $GIOINPUTRCVDDATA#1(G7$,A$)I$()<I> : A=VAL(STR(A$,10)) : IF A+D>64THEN 180 : $GIO/005(A000,A$)I$()<I,A> : D=D+A : GOTO 220 0180 B=65-D : $GIO/005(A000400D400A,A$)I$()<I,B> : D=A-B : $GIO/005(A000,A$)I$()<I+B,D> 0220 I=I+A : A=I-1 : IF I$(A)<>HEX(0D)THEN 70 : PRINT : ON OGOTO 270 : $GIO/215(A000,A$)I$()<1,A> 0270 INIT(00)I$() : D,I=1 : GOTO 70 0280 PRINT E$(VAL(S$(3))); : GOTO 80 0290 PRINT "...BREAK RECEIVED" : GOTO 70 0320 SELECT PRINT 005 : KEYIN C$,330,460 0330 ON OGOTO 370 : ON IGOTO 360 : $GIO/215(A000,A$)I$()<1,I-1> : I=1 : SELECT PRINT 215 : PRINT "<<K.B. RESPONSE>>"; : SELECT PRINT 005 0360 $GIO/215(A000,A$)C$ 0370 IF C$<HEX(20)THEN 410 0380 PRINT C$; : D=D+1 : IF D<65THEN 50 : PRINT : D=1 : GOTO 50 0400 PRINT : INIT(00)I$() : D,I=1 : GOTO 50 0410 ON VAL(C$)-7GOTO 430,380,420,50,50,400 : GOTO 50 0420 PRINT C$; : GOTO 50 0430 D=D-1 : IF D>0THEN 440 : D=64 : PRINT HEX(0C); 0440 PRINT HEX(082008); : GOTO 50 0460 ON VAL(C$)-6GOTO 420,430,380,420,50,50,50,470,490 : GOTO 50 0470 O=-O : PRINT "PRT "; : ON OGOTO 480 : PRINT "ON" : GOTO 70 0480 PRINT "OFF" : GOTO 70 0490 PRINT "....SEND BREAK" : $GIO#1(4407,A$) : GOTO 70 0530 G0$=HEX(4402A000440C) : G1$=HEX(4403102002FF03FF1223C620) : G3$=HEX(4405A000440C) : G6$=HEX(4408) : G7$=HEX(4409102002FF03FF1223C620) : G9$=HEX(440BA000440C) : SELECT #101C : C2$(1),C2$(9)=HEX(00010203040506070809000B0C8D0E0F) : C2$(2),C2$(10)=HEX(10A012131415161718191A1B1C1D1E1F) 0740 C2$(3),C2$(11)=HEX(202122232425262728292A2B2C2D2E2F) : C2$(4),C2$(12)=HEX(303132333435363738393A3B3C3D3E3F) : C2$(5),C2$(13)=HEX(404142434445464748494A4B4C4D4E4F) : C2$(6),C2$(14)=HEX(505152535455565758595A5B5C5D5E5F) 0780 C2$(7),C2$(15)=HEX(606162636465666768696A6B6C6D6E6F) : C2$(8),C2$(16)=HEX(707172737475767778797A7B7C7D7E00) : O=1 : PRINT HEX(03),,"2227B KEYBOARD/TIME SHARE INTERACTION" : PRINT "S.F. '1 = EMULATE TELETYPE 110 BAUD" : PRINT "S.F. '2 = EMULATE TELETYPE 300 BAUD" 0860 PRINT "S.F. '3 = EMULATE TELETYPE 1200 BAUD" : PRINT "S.F. '14 = PRINTER ON/OFF LINE FLAG" : PRINT : PRINT "RECEIVED ERRORS WILL DISPLAY AS FOLLOWS:" : E$(1)=HEX(7E) : E$(7),E$(6),E$(3),E$(2)=".OVERRUN." : E$(5),E$(4)=HEX(7F) : PRINT " PARITY="; : PRINT E$(1) : PRINT " OVERRUN="; : PRINT E$(2) 0910 PRINT " FRAMING="; : PRINT E$(4) : STOP " KEY DESIRED START-UP" 0930 DEFFN'1 : PRINT HEX(03),,"EMULATE TTY 110 BAUD" : B$(1)=HEX(3311217F) 0950 B$(2)=HEX(00010000) : B$(3)=HEX(1C0C0000) : B$(4)=HEX(00000000) : B$(5)=HEX(00000000) : GOSUB 1200 : C$=HEX(00) : D,I=1 : PRINT : PRINT "S.F. KEYS MAY BE USED TO SEND CONTROL CODE EQUIVALENTS" : PRINT " E.G. '27=HEX(1B)=ESCAPE" : PRINT " '17=HEX(11)=X-ON" : PRINT " S.F. '14 PUTS OUTPUT ON/OFF LINE PRINTER" 1050 PRINT " S.F. '15 IS PROGRAMMED TO SEND A BREAK SIGNAL." : ON Z9GOTO 1070 : $GIORESET#1(4580,A$) 1070 $GIOSETCONTROLS#1(G0$,A$)B$() : $GIOSETRCVTABLE#1(G3$,A$)C2$() : $GIOSTARTRCV#1(G6$,A$) : PRINT : PRINT : PRINT "KEYBOARD/T.C. NOW ACTIVE" : GOTO 70 1110 DEFFN'2 : PRINT HEX(03),,"EMULATE TTY 300 BAUD" : B$(1)=HEX(1711217F) : GOTO 950 1140 DEFFN'3 : PRINT HEX(03),,"EMULATE TTY 1200 BAUD" : B$(1)=HEX(1913217F) : GOTO 950 : DIM P2$(16)4,P3$(4),P4$(4),P6$(4) 1200 P2$(1)="50" : P2$(2)="75" : P2$(3)="100" : P2$(4)="110" : P2$(5)="134" : P2$(6)="150" : P2$(7)="200" : P2$(8)="300" : P2$(9)="600" : P2$(10)="1200" : P2$(11)="1800" : P2$(12)="2400" : P2$(13)="3600" : P2$(14)="4800" : P2$(15)="7200" : P2$(16)="9600" 1250 P3$(1)="HALF DUPLEX" : P3$(2)="HALF W/DEL" : P3$(3)="FULL DUPLEX" : P3$(4)="FULL W/DEL" : P4$(1)="DISABLE" : P4$(2)="ENABLE T/R" : P4$(3)="BRK ON 2ND" : P4$(4)="BRK INVERTED" : P6$(1)="NO" : P6$(2)="EVEN" : P6$(3)="NO" : P6$(4)="ODD" 1300 C$=STR(B$(1),1) : ROTATE(C$,4) : AND (C$,0F) : PRINT ((VAL(C$)+1))/2;" STOP BITS--"; : C$=STR(B$(1),1) : AND (C$,0F) : PRINT P2$(VAL(C$)+1);" BAUD--"; : C$=STR(B$(1),2) : ROTATE(C$,4) : AND (C$,0F) : PRINT P3$(VAL(C$)+1);" MODE--"; : C$=STR(B$(1),2) : AND (C$,0F) : PRINT P4$(VAL(C$)+1);" BREAK--" 1340 C$=STR(B$(1),3) : ROTATE(C$,4) : AND (C$,0F) : PRINT VAL(C$)+5;" DATA BITS--"; : C$=STR(B$(1),3) : AND (C$,0F) : PRINT P6$(VAL(C$)+1);" PARITY"; : RETURN