Blue Box Programs

Programs sent in by Ford Prefect, thanks.

Texas Instrument 99/4A

FROM BASIC:
  0: CALL SOUND(100, 1300, 0, 1500, 0)
  1: CALL SOUND(100,  700, 0,  900, 0)
  2: CALL SOUND(100,  700, 0, 1100, 0)
  3: CALL SOUND(100,  900, 0, 1100, 0)
  4: CALL SOUND(100,  700, 0, 1300, 0)
  5: CALL SOUND(100,  900, 0, 1300, 0)
  6. CALL SOUND(100, 1100, 0, 1300, 0)
  7: CALL SOUND(100,  700, 0, 1500, 0)
  8: CALL SOUND(100,  900, 0, 1500, 0)
  9. CALL SOUND(100, 1100, 0 ,1500, 0)
 KP: CALL SOUND(100, 1100, 0, 1700, 0)
KP2: CALL SOUND(100, 1300, 0, 1700, 0)
 11: CALL SOUND(100,  700, 0, 1700, 0)
 12: CALL SOUND(100,  900, 0, 1700, 0)
 ST: CALL SOUND(100, 1500, 0, 1700, 0)

Commodore 64

  5 S=54272
  6 DIM B(7),AC(7)
 10 FOR LS=S TO S+24:POKE LS,0:NEXT
 20 POKE S+5,64:POKE S+6,100
 25 POKE S+12,64:POKE S+13,100
 30 POKE S+24,15
 40 FOR T=1 TO 7
 50 READ A(T),B(T)
 60 NEXT T
 70 PRINT "USE 1-0 FOR DIGITS 1-0"
 80 PRINT "USE K FOR KP : USE S FOR ST"
 88 PRINT "USE + FOR 11 : USE - FOR 12"
 90 PRINT "USE L FOR KP2"
 95 PRINT "PRESS SPACE BAR FOR 2600 HZ"
100 PRINT "PRESS THE APPROPRIATE KEY AND THE TONE WILL BE EMITTED FROM THE TV"
110 GET A$: IF A$="" THEN 110
120 IF A$="S" THEN T=5:U=6
125 IF A$="L" THEN T=4:U=6
130 IF A$="K" THEN T=3:U=6
140 IF A$="+" THEN T=2:U=6
150 IF A$="-" THEN T=1:U=6
152 IF A$="1" THEN T=1:U=2
154 IF A$="2" THEN T=1:U=3
156 IF A$="3" THEN T=2:U=3
158 IF A$="4" THEN T=1:U=4
160 IF A$="5" THEN T=2:U=4
162 IF A$="6" THEN T=3:U=4
163 IF A$="7" THEN T=1:U=5
164 IF A$="8" THEN T=2:U=5
166 IF A$="9" THEN T=3:U=5
168 IF A$="0" THEN T=4:U=5
169 IF A$=" " THEN T=7:U=7
170 POKE S+1,A(T):POKE S,B(U)
175 POKE S+8,A(T):POKE S+7,B(U)
180 POKE S+4,17:POKE S+11,17
190 GET Z$:IF Z$="" THEN 190
200 POKE S+4,16:POKE S+11,16
210 GOTO 110
500 DATA 44,0,57,0,70,0,83,0,96,0,10B,0,166,0
510 REM THE ABOVE DATA STATEMENT MAY HAVE TO BE ADJUSTED TO GET THE EXACT TONE.

Atari

  1 POKE 82,0:POKE 755,0
  2 OPEN #1,4,0,"K:"
 50 PRINT "ATARI BLUE BOX PROGRAM"
 51 PRINT "0-9 = MF 0-9"
 52 PRINT "K = KEYPULSE"
 53 PRINT "S = START"
 54 PRINT "SPACE BAR = 2600 HZ ON/OFF"
 55 PRINT "You must press the space bar twice"
 56 PRINT "for the program to work correctly."
 60 REM
140 DIM N$(1)
144 GET #1,N
145 N$=""
146 LET N$=CHR$(N):? N$;" ";
150 IF N$=" " THEN ? "2600Hz ";:GOSUB 290
160 FOR LOOP=1 TO LEN(N$)
170 IF LEN(N$)=0 THEN GOTO 500
190 CHAR=ASC(N$(LOOP,LOOP))-ASC("0"):TRAP 200: RESTORE 360+CHAR*10:GOTO 220
200 IF N$(LOOP,LOOP)="K" THEN RESTORE 460:GOTO 220
210 IF N$(LOOP,LOOP)="S" THEN RESTORE 470:GOTO 220
215 CLR: GOTO 60
220 READ A,B,C,D
230 POKE 53760,A:POKE 53762,B:POKE 53764,C:POKE 53766,D
240 POKE 53767,168:POKE 53763,168
250 FOR A=1 TO 15:NEXT A
260 POKE 53767,160:POKE 53763,160
270 NEXT LOOP
280 CLR: GOTO 60
290 SOUND 0,0,0,0:POKE 53768,120
300 POKE 53760,81:POKE 53762,1:POKE 53764,0:POKE 53766,0
310 POKE 53767,168:POKE 53763,168
320 GET #1,N:IF N<>32 THEN 320
330 POKE 53767,160:POKE 53763,160
340 N$=""
350 RETURN
360 DATA 165,2,80,2
370 DATA 240,4,210,3
380 DATA 240,4,40,3
390 DATA 210,3,40,3
400 DATA 240,4,165,2
410 DATA 210,3,165,2
420 DATA 40,3,165,2
430 DATA 240,4,80,2
440 DATA 210,3,80,2
450 DATA 40,3,80,2
460 DATA 40,3,8,2
470 DATA 80,2,8,2
480 FOR A=1 TO 700:NEXT A
490 NEXT LOOP
500 CLR:GOTO 60
510 REM --- BY: DEVIOUS XEVIOUS ---
Return to $2600 Index