MY 64 SPEAKS MITEL! Bob Underdown P.O. Box 2947 Fayetteville, AR 72702 GEnie name: B.UNDERDOWN Telephone Serviceman w/ Executone of Northwest Arkansas This text file describes how to make touch-tone programmimg tapes for the MITEL SX-20 phone systems. I've used such tapes successfully for over 2 years and have saved countless hours and head-aches. In case you're not familiar with the SX-20, it's a small PBX usually used as a hotel/motel telephone system. It's programmed by going off hook on the main console, selecting a free line, (or loop as MITEL calls it.) and manually keying in digits on the touch-tone pad. It's a little time consuming, and if you're unfamiliar with the programming, it can be confusing. Well, a couple of years ago, I decided to come up with a better system for entering the digits. The salesman who sold all of our MITEL systems did some fancy programming changes from default that really confuses our newer employees. I had to come up with better system or face being 'on call' all of the time, and I hate to be 'on call!' I'm using the SID chip in the 64 to generate the necessary tones and saving these tones onto tape. Instead of taking 20-30 minutes with all sorts of possible errors. This system can program an SX-20 in 1 minute and 50 seconds with almost 100% reliablity. I'm taking the audio from the monitor output jack on the c-64 and feeding it directly into a standard cassette recorder. I then use the tapes I've made to program the phone system. You'll need the following: 1) A cassette tape recorder. 2) A c-64 monitor cable or an 5 pin DIN to RCA converter cable. 3) The program listed below. 4) And of course a c-64 or c-128 in the c-64 mode. The program listed below is for an SX-20 Generic 200. I've also used this sucessfully with a Generic 400. We have no Generic 500's or above, but I can see no probelm with modifying the data statements. Notice that the data statements end with a jump to #51. There is of course, no #51 in any MITEL program. This will generate an error on the MITEL and end programming. I've done this so I could save the tone sequence more than once per tape side. You're probably asking how to interface the tape player to the MITEL. Since we mostly have older Generic 200's, which use a standard 10 button phone for a console, I have simply installed a 3.5 mm headphone jack in our shop 10 button console. I've connected the audio to L1 and L2 on the phone's network through a .01 capactor. This work beautifully on a Generic 200/400, but this is probably out of the question on MITEL SX-20's with Generic 500 or higher software, since they have a special console. I believe that if you make up a cable with a plug matching your cassette recorder's output on one end and a pair of clips on the other, you could simply remove the transmitter from the phone's handset and clip across the transmitter contacts... Some experimenting as to volume level for the cassette would be needed. This would be the way to modify my system for use with other types of PBX's, SMDR's, autodialers, etc. that are programmed with touch-tones. I'd really like to thank who ever originally wrote the touch-tone generating subroutine, I got it from a public domain auto-dialer program a couple of years ago. You can see what a time saver this has been. Now, our employees never have to go on a major service MITEL SX-20 service call without a fully programmed cpu card. 10 data#61*1112111*2111112*33711000*42131210*50010000* 20 data#69*017200* 30 data#62*0100*0200*0300*0400*0500*0600*0700*0800*0900*1000*1100*1200*1300*1400* 40 data#62*0161*0260*037*045*0566*1400* 50 data#63*0111111*0200*0521800*4400* 60 data#64*0100000*0200*0521800*4400* 70 data#65*1001219*2001208*31111063*41111064* 80 data#66*01110010*012037*013537* 90 data02110010*022037*023537* 100 data03110010*032037*033537* 110 data04120011*042037*043501* 120 data05120011*052037*053537* 130 data06120010*062037*063537* 190 data12100110*1220011*123001* 200 data#67* 210 data11111100*1210111*13000000* 220 data21111100*2210111*23000000* 230 data31110000*3210111*33000000* 240 data41110000*4210111*43000000* 250 data#69*0139101*#70*0139110* 260 data#68*1300000*3800000*40310140*41310141*44110144*7200000* 270 data#51* 900 dataend 993 printchr$(147):dimc$(100) 1000 p=1 1010 read c$(p) 1020 if c$(p)="end" then 1040 1030 p=p+1:goto 1010 1040 pm=p-1:cf=.975:k=.059604645 1050 for n=0 to 3:read f:f=f*cf/k 1060 rh(n)=int(f/256):rl(n)=f-256*rh(n):next 1070 data 697,770,852,941 1080 for n=0 to 2:read f:f=f*cf/k 1090 ch(n)=int(f/256):cl(n)=f-256*ch(n):next 1091 data 1209,1336,1477 1092 a=1:v1=54272:v2=v1+7:poke v1+24,15 1093 poke v1+5,0:poke v1+6,240 1094 poke v2+5,0:poke v2+6,240 1260 nb$=c$(a):ifnb$="end"thenprint"Done!":end 1270 for j=1 to len(nb$) 1280 n$=mid$(nb$,j,1):printn$; 1290 if n$="0" then n$="11" 1300 if n$="*" then n$="10":print 1310 if n$="#" then n$="12" 1320 if n$=" "orn$="-"orn$="("orn$=")"then 1410 1330 va=val(n$)-1 1340 r%=va/3 1350 c%=va-3*r% 1360 poke v1+1,rh(r%):poke v1,rl(r%) 1370 poke v2+1,ch(c%):poke v2,cl(c%) 1380 poke v1+4,17:poke v2+4,17 1390 for n=1 to 50:next:rem delay-experiment with this to speed up or slow down 1400 poke v1+4,0:poke v2+4,0 1410 next:a=a+1:goto126