MediaWiki:Sitenotice:
2024-03-02: The wiki ran out of disk space, so things were not working. This has been resolved by adding another 5GB of quota ;-) Thanks to Tim Lindner for reporting the issues. 2020-05-17: If a page gives you an error about some revision not being found, just EDIT the page and the old page should appear in the editor. If it does, just SAVE that and the page should be restored. OS-9 Al (talk) 12:22, 17 May 2020 (CDT)

Undercolor/850105/Entryway

From CoCopedia - The Tandy/Radio Shack Color Computer Wiki
Jump to navigation Jump to search

Home Articles Companies Publications Hardware People Software Timeline ... Emulators Internet Resources
(Don't see something listed? Click "edit" and add it! Together we can build this database. When making a new info page, refer to this InfoBox Template for guidelines.)



UnderColor, Volume 1, Number 5, February 20, 1985

  • Title: Entryway
  • Author: Mike Rigsby
  • Synopsis: Alternate Methods
  • Page Scans: Link

Article

Voice actuation—visions of the future. It doesn't have to be so, and for users with motor skill deficiencies, voice actuation, single-keystroke actuation, or contact actuation are imperative to computer use. Let's look at ways to simply and inexpensively implement these actuation methods.

The program and equipment we will use must be set up by a person with appropriate physical capabilities. Loss of electrical service, however brief, means the software must be reloaded. If this is a problem, you should consider an Uninterruptible Power System (UPS). UPS systems often cost $400 or more.

This project is accomplished in two parts—hardware and software. Let's look at each in turn.

Hardware

Voice control of the computer requires equipment for sound input. Sophisticated amplifiers (even the one on your inexpensive cassette recorder) generate noise that the computer is sensitive to. Use the Radio Shack mini-amplifier, part 277-1008 with any microphone. Adjust the volume to the midpoint. A battery eliminator rather than a battery could cause problems if used on the amplifier. Remember that background noise, or too much amplification, creates false signals.

Contact control comes from the joystick, and can be tested by depressing the fire button on the right joystick. Any normally open contact could be substituted for the fire button, but it must be wired into a plug which fits in the joystick jack.

The eyebrow switch can be used only if the user has sufficient muscle control to lower the eyebrow in a deliberate blink. A normal "eye wetting" blink does not cause enough deflection of the brow. Any activity which can be controlled and result in a switch closure can be used to operate this program.

Software

The software (see the Listing) produces a display (see Fig. 1). A rectangular cursor appears by the leftmost star and flashes for a brief time period next to each star, moving from left to right and repeating its sequence until a control action is taken.

Let us assume that control is being taken from an eyebrow switch. Assume that the cursor is in the second position (above the column containing C, D, H, N, S, T). I blink my eye and the cursor will travel down the column instead of continuing across the top of the row. When the cursor is next to the letter H l blink my eye again; H appears on a message line

on the lower portion of the video display. The cursor then returns to the leftmost star and commences its movement to the right again.

But what if? What if I only blink once? The cursor would travel down the column, then return to the leftmost star (home position) and begin again. What if l blink at the wrong letter? The BK position (fifth column) will backspace and erase one position on the message line. SP generates a space, PR causes the message line to be output to a printer, and SPEED generates a new display. The speed display lets me, through an eye blink, increase or decrease the amount of time the cursor spends at each location—the numerical value of the timing constant is given here. Warning: going to the SPEED display causes anything on the message line to vanish!

The message line is 64 characters long (two lines on a tv). Any attempt to produce a 65th character will result in automatic printing of the existing 64 characters.

Connections

Three methods of input are allowed: keystroke (subroutine at line 500); voice (subroutine at line 1500); and switch (subroutine at line 2000). The voice and switch subroutines include a small time delay (for—next loop) to decrease problems which could occur as a result of long sounds or contact bounce.

I found making BK work a little tricky; the first activation must erase the present character position on the message line; the second sequential BK must erase the present position minus one. Placing a character on the message line after a BK command requires placing it at the present position, not the present position plus one.

I based character placement on frequency of use, not alphabetical order, hoping to increase the speed of operation. If your printer is configured to run at 1200 baud rather than 600, add a line:

3025 POKE 150,41

Listings

0 GOTO 3000
1 INPUT"FOR KEYBOARD, TYPE '1' FOR AUDIO, TYPE '2' FOR EXTERNAL SWITCH, TYPE '3'";Q
9 N=50
10 CLS
15 R=1407
16 R1=0
20 PRINT@3,"#   #  #  #  #  #  #"
30 PRINT@67,"SP  C  F  B  .  0  5"
40 PRINT@99,"A   D  G  J  ,  1  6"
50 PRINT@131,"E   H  L  K  PR 2  7"
60 PRINT@163,"I   N  P  M  BK 3  8"
70 PRINT@195,"O   S  R  Q  X  4  9"
80 PRINT@227,"U   T  Y  V  Z"
90 PRINT@271,"W   SPEED"
100 X=1026
110 POKEX,128
120 ON Q GOSUB 500,1500,2000
130 POKEX,143
145 IF B=1 THEN 180
150 X=X+4
160 IF X=1054 THEN X=1026
170 GOTO 110
180 X=X+32
181 IF X<1083 THEN X=X+32
182 IF X=1282 THEN GOTO100
183 IF X=1286 THEN GOTO100
184 IF X=1290 THEN GOTO 100
185 IF X=1326 THEN GOTO 100
186 IF X=1330 THEN GOTO 100
187 IF X=1270 THEN GOTO 100
188 IF X=1274 THEN GOTO 100
190 POKEX,128
200 ON Q GOSUB 500,1500,2000
210 POKEX,143
215 IF B=1 GOTO 700
230 GOTO 180
500 B=0
501 FOR Y=1 TO N
502 A$=INKEY$
504 IF A$=""THEN 510
506 B=1:GOTO520
510 NEXT Y
520 RETURN
700 IF X=1090 GOTO 800
702 IF X=1170 GOTO 900
704 IF X=1202 GOTO 1000
706 IF X=1298 GOTO 1100
709 X=X+1
710 Z=PEEK(X)
715 IF R1=R THEN 750
720 R=R+1
725 IF R=1473 THEN 900
730 POKER,Z
740 GOTO 100
750 POKER,Z
760 R1=R1-1
770 GOTO 100
800 Z=96
810 GOTO 720
900 X=1408
910 T1=PEEK(X)
915 IF T1=96 THEN T1=32
920 B$=CHR$(T1)
930 A$=A$+B$
940 X=X+1
950 IF X=1473 THEN 990
960 GOTO 910
990 PRINT#-2,A$
995 GOTO 10
1000 IF R1=R THEN R=R-1
1010 R1=R
1015 IF R=1407 THEN R=1408
1020 Z=96
1030 GOTO 730
1100 CLS
1110 PRINT@10,"CONSTANT";N
1120 PRINT@67,"FASTER   SLOWER   RETURN"
1130 X=1090
1140 POKEX,128
1150 ON Q GOSUB 500,1500,2000
1160 POKEX,143
1170 IF B=1 GOTO 1200
1180 X=X+9
1190 IF X>1110 THEN X=1090
1195 GOTO 1140
1200 IF X=1090 THEN N=N-5
1210 IF X=1099 THEN N=N+5
1220 IF X>1099 THEN GOTO 10
1230 GOTO 1110
1500 B=0
1501 FOR Y=1 TO N
1502 L=PEEK(65312)
1504 IF L=3 THEN 1510
1506 B=1
1507 FOR Y6=1 TO 20
1508 NEXT Y6
1509 GOTO 1520
1510 NEXT Y
1520 RETURN
2000 B=0
2010 FOR Y=1 TO N
2020 P=PEEK(65280)
2030 IF P=255 THEN 2100
2040 IF P=127 THEN 2100
2050 B=1
2052 FOR Y7=1 TO 10
2054 NEXT Y7
2056 GOTO 2110
2100 NEXT Y
2110 RETURN
3000 CLS
3010 PRINT"THIS PROGRAM PROVIDES VOICE OR  SINGLE MOVEMENT CONTROL OF A    PRINTER.  INPUT MAY BE ACCEPTED FROM THE COMPUTER KEYBOARD, OR"
3020 PRINT"A MICROPHONE AND AUDIO AMPLIFIER(RADIO SHACK 277-1008), OR FROM AN EXTERNAL SWITCH CONTACT WIRED THROUGH THE RIGHT JOYSTICK PORT."
3030 GOTO 1