' +JJJJ ?\>m0M='+l> /+l   d]@ŵLҦ]]LF L}BBL] X  ` 鷎귭෍ᷩ췩緈JJJJx Lȿ L8ᷭ緍췩 緍i 8 `巬 췌`x (`(8`I`B` ``>J>J>VU)?`8'x0|&HhHh VY)'&Y)xꪽ)' `Hh`V0^*^*>&` aI꽌ɪVɭ&Y&&Y& 꽌ɪ\8`&&꽌ɪɖ'*&%&,E'зЮ꽌ɪФ`+*xS&x'8*3Ixix&& 8  '  & x)*++`FG8`0($ p,&"ųųೳŪŪųųij  !"#$%&'()*+,-./0123456789:;<=>?   1 '" *"( (9"1 ( ,.(0# 2  /#0/#0 *?'#07#00/0/'#07#0:"4<*55/**5/*%5/)1/)1/)1/)'#0/#0*5/*75/**5/*:5//#0/#0'#07#0:::*::'#07#0"):$(%"%:$(%"%$$2%4%$$2%4%$(2()!)E(!8b $!H(+ "@H !D)"E` @ $ C ` DQ &J80^݌Hh ü ü݌ ռ ռ ռA ļD ļ? ļAEDE?HJ>h Լ ռ ռ ռ`HJ>݌h Hh݌`葠葠ȔЖȔЖȠHIHHHHhHH݌hHhHh݌H6 VDP (ED Z $0x8x D- ܸDD# H8`?E Vk *f???0xE Hh D#-EEE8` D ܸx D - ܸx8`-0ݩ?ʥD EEE`   LDcpq` [` ~  LӜu`".Q`pNФbptťܥm2<(-Py0\|e<6e<g< JJJJj귍hI  aUL@ kU8  L  Q^R(jQ0l^l\  wUuW ԧ H h@ [_ /QSIRb_L`LLLL`ª`LQLYLeLXLeLee ўQH\(h0L& Ꝥ$`( R \ZLl8 ўR HH\`\Z[YS6`LxQɿu3'RͲʎRʎ]]]ɍuL͟ɍ}RLRɍg^H8 ^hZLɍR LͲɊRR% QLܤͲ Z@ -^ ş\[Z QY\[Z8`l6Lş_Ȍb_Ͳ] )Y h( ֭ͲLɍ [LLĦ__ ^ 9 LҦ3 9 a   0LjLY u< (_9 ˭ɠuɠK_9 ?LˆʎõĵL õ ĵµ aµ`` L̦µ_bJLuLz`  ȟ QlXJ̥KlV  ȟ QlV eօ3L e3L &RL &QL d L4 Ne)n `@-eff L f`L . tQLѤ LҦL` OPu d L Ne)noon 8ɍ` ^f\õL ^NR  RΩLҦ)\Z ʽ LHv 3h`0h8` [L NС õ`A@` ŵL^Lõ`  \ 濭0 \  ȟ Q ^\lZl^?cqH şch`fhjõĵ@OAP`u@`@&`QR`E Ls  @DAE@u`8` %@ @A@`@`@A`Mµ ) LЦ`8@AWc@8@-@HAȑ@hHȑ@ȑ@hHȑ@Ȋ@ch8&ȑ@Hȑ@Ah@LHȑ@ȑ@ htphso`hMhL`9V8U897T6S67`INILOASAVRUCHAIDELETLOCUNLOCCLOSREAEXEWRITPOSITIOOPEAPPENRENAMCATALOMONOMOPRINMAXFILEFINBSAVBLOABRUVERIF!pppp p p p p`" t""#x"p0p@p@@@p@!y q q p@  LANGUAGE NOT AVAILABLRANGE ERROWRITE PROTECTEEND OF DATFILE NOT FOUNVOLUME MISMATCI/O ERRODISK FULFILE LOCKESYNTAX ERRONO BUFFERS AVAILABLFILE TYPE MISMATCPROGRAM TOO LARGNOT DIRECT COMMANč$3>L[dmx- ( k  Ϡ@跻~!Wo*9~~~~ɬƬ~_ j ʪHɪH`Lc (L ܫ㵮赎 ɱ^_ J QL_Ls贩紎 DǴҵԵƴѵӵµȴ 7 ַ :ŵƴѵǴҵȴµ納贍﵎ٵ്ᵭⳍڵL^ѵ-I `  4 ò-յ!  8صٵ紭ﵝ 7L (0+BC  7L HH`LgL{0 HH` õL H hBL BH [ h`Lo õ ڬL B ڬ LʬH hB@ յյ [L (ȴ) ȴ 7L L ( L (ȴL{ƴѵ洩ƴǴҵ 7 ^* B0 HȱBh ӵԵ 8 L8 ݲ` ܫ  / / ED B / / ]ƴS0Jȴ ȴ)  紅D贅E B ƴ  / 0L Ν `HD٤DEEhiHLGh ` ŵBѵ-` ѵB-` ܫ XI볩쳢8 DH E𳈈췍Ȍ X0 · JLǵBȵC`,յp` 䯩 R-յյ`յ0` K R-յյ`ɵʵӵԵ` 4 K ( ѵҵLBȱBL8` DBHBH : ַ޵BȭߵBhhӵԵ RBܵmڵ޵ȱBݵm۵ߵ` 䯩LR˵̵ֵ׵`êĪLR E( 8` R` ELRŪƪ`췌 յյI뷭鷭귭ⵍ㵍跬ª 뷰` Lf ݵܵߵ޵ ^`8ܵ i B8` 4L ֵȱB׵ ܯ䵍൭嵍 ` DȑB׵Bֵ  ַ յյ`굎뵎쵬 뵎쵌``õĵBCõĵ`µµ`L õBĵCصص Qƴ0"Bƴ 󮜳` 0۰ϬBƴ8`i#`ЗLw!0>ﵭ` m ﳐ 7i볍 8 ЉLw`H h ݲL~ `浍국䵍뵩嵠Jm赍嵊mjnnn浈ۭm浍浭m䵍䵩m嵍`"L ŵ8ŵH ~(` d ֠z# u`0T$X0:II07:XXX((A$,8II,1)"1"):II:^$23::"CH 0 -->";:10:A$" <-- CH 15";:AXX2:9100:A$A$B$Z#S#A$"":II07:A$(X127)A$:X256(X127)XX:II:k# SET OUTPUTS TO A$#AD2,255:AD3,255: SET DATA DIRECTION REG$ TO OUTPUTS$B$A$$A$(A$,8):9300:AD1,X"$A$(B$,8):9300:AD,X,$A$B$:S$D:7,N: SETUP OUTPUT AND ADDRESS;C$"W"ČWPAM16:6100N$RPAM16:D(6)q."INPUT DATA: ";D:"";C$:6100wW'# USEFUL ROUTINES (#AD2,0:AD3,0: SET DATA DIRECTION REG2# TO INPUTS<#X1(AD):X2(AD1)F#XX1:9100:B$A$P#;C$(C$" ",1):C$"R"C$"W"ĺ"COMMAND ERROR":6100e"ADDRESS (0..63): ";N:N0N636120"LO OR HI 8 LINES: ";CC$:CC$(CC$" ",1):CC$"H"CC$"L"6130CC$"L"NN64C$"W"Ą"OUTPUT DATA (0..255): ";D:D0D2556150!6,48II1:5530: NOT EOL4" HIT ANY CHARACTER";f(16384)1285560: WAIT SO CAN SEE RESULTSt16368,0zop PAM16-D DEMO u::10:"PAM16-D DEMO"z34,3:" ":RPAM16PA:WPAM16PA3:"READ OR WRITE: ";C$:(C$)0ıSE: CALL SETDI09 1I1: SETUP TO GET INPUTS O:"INPUT CHANNEL RESULTS"STEP";:6:"LENGTH";:15:"CHANNEL";:25:"VALUE"A%(CMD,I)165550: NOT READ COMMAND I;:6:A%(CMD,I);:15:A%(CHANNEL,I);:25:A%(NUMBER,I)A%(CMD,I)PC$"W"Ą"OUTPUT VALUE (0..65535): ";N:N0N655355200DZ5260"DELAY TIME (MILLISECONDS 1..32767): ";N:N1N327675250A%(NUMBER,I)NII1:IMAX5100: NEXT COMMAND |A%(CMD,I)EOL8,1: SET WHICH INTEGER ARRAY TO USECC(WRITE(C$"W")DLY(C$"D"))(N0aC$"D"Ą"NUMBER OF BITS (1..16): ";N:N1N16140N16N0: 0 FOR 16 BITS(A%(CMD,I)CCN: COMMAND*16+LEN2C$"D"5250<"STARTING CHANNEL # (0..31): ";N:N0N315180FA%(CHANNEL,I)N:ICATED FOR EACH CHANNEL, ALONG"]`"WITH A BINARY REPRESENTATION OF ALL SIX-TEEN CHANNELS."cbc"YOU CAN CHANGE THE STATUS OF A CHANNEL"d"BY CONNECTING A DATA LINE TO GROUND.EX."e"CONNECT DL0 TO GROUND,(REFER TO USER'S"f"MANUAL),WAT";D:D0D2556150<6,D:7,N: SETUP OUTPUT AND ADDRESSVC$"W"ČWPAM16:6100i$RPAM16:D(6)."INPUT DATA: ";D:"";C$:6100WX]"THIS DEMO READS THE DATA LINES OF CON-"^"NECTOR ZERO, OF THE DI09. THE STATUS"_"IS INDD OR WRITE: ";C$:(C$)0ıVC$(C$" ",1):C$"R"C$"W"ĺ"COMMAND ERROR":6100"ADDRESS (0..63): ";N:N0N636120"LO OR HI 8 LINES: ";CC$:CC$(CC$" ",1):CC$"H"CC$"L"6130CC$"L"NN64C$"W"Ą"OUTPUT DATA (0..255): ER,I)-A%(CMD,I)48II1:5530: NOT EOLI" HIT ANY CHARACTER";{(16384)1285560: WAIT SO CAN SEE RESULTS16368,0op PAM16-D DEMO u::10:"PAM16-D DEMO"z34,3:" ":RPAM163256:WPAM1632563:"REA TO USESE: CALL SETDI09 >I1: SETUP TO GET INPUTS d:10:"INPUT CHANNEL RESULTS":6"STEP";:6:"LENGTH";:15:"CHANNEL";:25:"VALUE"A%(CMD,I)165550: NOT READ COMMAND I;:6:A%(CMD,I);:15:A%(CHANNEL,I);:25:A%(NUMBHANNEL,I)NHPC$"W"Ą"OUTPUT VALUE (0..65535): ";N:N0N655355200RZ5260"DELAY TIME (MILISECONDS 1..32767): ";N:N1N327675250A%(NUMBER,I)NII1:IMAX5100: NEXT COMMAND |A%(CMD,I)EOL8,1: SET WHICH INTEGER ARRAY(C$"W")DLY(C$"D"))N0cC$"D"Ą"LENGTH OF WORD,I.E.# BITS (1..16): ";N:N1N165140N16N0: 0 FOR 16 BITS(A%(CMD,I)CCN: COMMAND*16+LEN2C$"D"5250<"CHANNEL # OF MOST SIGNIFICANT BIT(0..31)";N:N0N315180 FA%(C5(DI099))2567+ANSHBLB=7+"YOU TYPED ";ANS;" KEYS."T7+"AGAIN,Y/N ? ";A$f7+A$"Y"11080y7+A$"N"112407,119997$, INSTRUCTIONS FOR DEMO7.: FOR INSTRUCTIONS SUBROUTINE7.(34),0:7256A COUNTER6R+(DI099),25526W+ SET DL0 TO OUTPUTB6\+(DI093),1H6e+k6f+"INPUT A STRING FOR DEMO ";A$w6p+I(A$)6z+I0112006+II16+ TOGGLE DL0 ONCE PER CHARACTER6+(DI091),16+(DI091),06+111306+LB255(DI098)7+HB(25ERS IN THE STRING."A5/+(34),15::"TYPE RETURN TO CONTINUE ";A$b53+SLOT4: SLOT # OF DI09 CARD54+DI0916384SLOT256: DI09 CARD ADDRESS59+ SET TIMER #1 TO COUNT MODE.5>+(DI0911),325C+ SET LSB OF COUNTER5H+(DI098),2556M+ SET MSB OF"RETURN. DATA LINE 0,(DL0),IS THEN TOG-"X4)+"GLED ONCE PER CHARACTER IN THE STRING."^4*+4++" THE TIMER WILL SENSE EACH OF THESE"4,+"PULSES,ON DATA LINE 14. THEN THE DEMO"4-+"WILL LOOK INTO TIMER #1 AND TELL YOU THE";5.+"NUMBER OF CHARACTE 0 TO 14,(DL0-DL14)."::I3+"REFER TO USER'S MANUAL FOR PIN DIAGRAM."m3 +20:"TYPE RTN TO CONTINUE.";A$3%+:5:" THIS DEMO SHOWS HOW TIMER #1 CAN FUNC-"3&+"TION AS A COUNTER. THE DEMO WILL ASK"3'+"YOU FOR A STRING. ENTER ONE,AND TYPE"*4(+ITS HAVE";;2{'"BEEN TRANSFERED,A PEEK OF SHIFT REGISTER";_2|'"0 SHOWS THE TRANSFERED DATA."e2}'s2*(34),0:2* PULSE COUNTER DEMO2+ COUNTS PULSES ON DL14 USING COUNTER #12+:2:12:"COUNTER DEMO":(34),32+::43 +"CONNECT DATA LINRS";]1u'"OF THE DI09 WORK. THE DATA SHIFTS OUT":"OF SHIFT REGISTER #1,THRU CL#7,TO SHIFT"}1v'"REGISTER #0,THRU CL#3.":1x'" TIMER #3 PUTS PULSES ON CL#6,WHICH"1y'"CLOCKS THE DATA OUT OF SHIFT REGISTER 1,"; 2z'"INTO SHIFT REGISTER 2. WHEN 8 BGISTER 0 FOR TRANFER COMPLETED.00`'B(DI0910)`0e'B;" HAS BEEN RECIEVED IN SHIFT REGISTER 0"w0j'"AGAIN,Y/N ? ";X$0o'X$"Y"100550p'X$"N"100900q'109990s'2:10:"SHIFT REGISTER DEMO":(34),31t':" THIS DEMO SHOWS HOW THE SHIFT REGISTE/B'(DI0927),20A/D' SET TIMER #3 LOWER LATCH FOR PULSE PERIOD.T/E'(DI0924),100/G':"VALUE FOR TRANSFER,(0";:10:A$" <-- CH 15";:-' +="TYPE RTN TO CONTINUE";A$%+>++?X+(#AD2,0:AD3,0: SET DATA DIRECTION REGh+2# TO INPUTS+<#X1(AD):X2(AD1)+F#XX1:9100:B$A$+P#XX2:9100:A$A$B$+Z#+#A$"":II07:A$(X127)A$:X256(X127)XX:II:,# SET OUTPUTS M-16,AN ADDRESSABLE"@*"ISOLATED INTERFACE. MAKE SURE IT IS"n*"CONNECTED PROPERLY BEFORE RUNNING THIS"{*"DEMO."**"THIS DEMO READS OR WRITES TO THE PAM-16.";*"SELECT READ OR WRITE,AND ANSWER THE "*"PROMPTS."*:*;+<OU";B)"CAN HAVE AS MANY STEPS AS YOU WANT IN":"YOUR ROUTINE."H)u)"THINK OF A STEP AS AN INSTRUCTION AND")"THE PROMPT AS THE PARAMETERS FOR IT.")7994):4)" THIS DEMO SHOWS HOW TO USE YOUR DI09 IN";*"CONNECTION WITH A PAHICH"6("WILL HELP YOU USE THE DI09. YOU CAN SET";g("UP FOR A READ OR A WRITE TO ANY CHANNEL.";("ALSO YOU CAN HAVE A DELAY TIME BETWEEN":"THESE STEPS."(" TO WRITE A ROUTINE SIMPLY TYPE ONE OF")"THE COMANDS,AND ANSWER THE PROMPTS. Y"NECTED TO CONTROL LINE 4. IT SHOULD BE"['"ABLE TO PRODUCE A 0-5V SQUARE WAVE. THE";'"NEXT SECTION WILL MEASURE THE FREQUENCY"'"AND THE PERIOD OF THE SIGNAL IN MICRO-":"SECONDS."'7994':4(" THIS DEMO IS OF A MINI LANGUAGE W"TURNS. TO RETURN TO THE MENU,TYPE RTN7&"AGAIN."A&7994o&:4::"CONNECT DATA LINES 30 AND 31.":&6:"REFER TO USER'S MANUAL FOR PIN DIAGRAM."&15:"TYPE RTN TO CONTINUE";A$&:4&" A SIGNAL GENERATOR SHOULD NOW BE CON-"*'OR YOU. THE":%"DEMO WILL PROMPT YOU FOR AN INTERVAL."f%"ENTER A TIME,IN SECONDS,AND HIT RTN."%"THE BELL WILL SOUND AT THE END OF THE":"INTERVAL.":%" TO RESET THE TIMER,TYPE RTN. YOU CAN"%"ENTER A NEW TIME WHEN THE CURSOR RE-")&7994T$10::"CONNECT DATA LINES 30 AND 31,(DL30-DL31)";:"BEFORE CONTINUING.":Z$$"REFER TO USER'S MANUAL FOR PIN DIAGRAM."$15::"TYPE RTN TO CONTINUE";A$::4$" THIS DEMO SHOWS HOW THE TIMERS CAN BE" %"USED TO TIME INTERVALS F TYPE A '1' OR A '0',"F#u"TO WRITE TO THAT LINE. A RTN WILL MOVE"c#v"TO THE NEXT CHANNEL. "i#w#x" IF YOU HAVE A VOLT METER,YOU CAN SEE":"THE ";#y"DATA LINES CHANGE FROM ON,(5V),TO":"OFF,";#z"(0V),AS YOU WRITE TO THAT CHANNEL."${OUND,(REFER TO USER'S MANUAL). WATCH"V"g"THE EFFECT THIS HAS ON THE NEXT DISPLAY."`"p7994"q" THIS DEMO WRITES TO THE DATA LINES ON""r"CONNECTOR 0,(DL0-DL15). THE BLINKING""s"CURSOR INDICATES THE CHANNEL WHICH IS"#t"BEING WRITTEN TO.ONG WITH A"7!`"BINARY REPRESENTATION OF ALL SIXTEEN"e!a"CHANNELS AT THE BOTTOM OF THE DISPLAY."k!b!c" YOU CAN CHANGE THE STATUS OF A CHANNEL"!d"BY CONNECTING A DATA LINE TO GROUND."!e"FOR EXAMPLE,CONNECT DATA LINE 0,(DL0),TO";&"f"GR6,D:7,N: SETUP OUTPUT AND ADDRESS= C$"W"ČWPAM16:6100P $RPAM16:D(6)s ."INPUT DATA: ";D:"";C$:6100y W X ]" THIS DEMO READS THE DATA LINES OF CON-" ^"NECTOR ZERO,(DL0-DL15). THE STATUS IS" !_"INDICATED FOR EACH CHANNEL,ALı=C$(C$" ",1):C$"R"C$"W"ĺ"COMMAND ERROR":6100g"ADDRESS (0..63): ";N:N0N636120"LO OR HI 8 LINES: ";CC$:CC$(CC$" ",1):CC$"H"CC$"L"6130CC$"L"NN64C$"W"Ą"OUTPUT DATA (0..255): ";D:D0D2556150# OTHER ROUTINE,Y/N ? ";F$:F$"Y"50017F$"N"5555E16368,0Koap PAM16-D DEMO ks7150u::10:"PAM16-D DEMO"v8:"TYPE RTN FOR MENU."z34,3:" ":RPAM16126256:WPAM161262563:"READ OR WRITE: ";C$:(C$)0550: NOT READ COMMAND 6I;:6:A%(CMD,I)0ĺ"16";TA%(CMD,I)0ĺA%(CMD,I);~15:A%(CHANNEL,I);:25:A%(NUMBER,I)A%(CMD,I)48II1:5530: NOT EOL:"RUN YOUR ROUTINE AGAIN,Y/N ? ";F$:F$"Y"5505F$"N"5553%:"WRITE ANCMD,I)EOL,:"YOUR ROUTINE IS RUNNING."V8,1: SET WHICH INTEGER ARRAY TO USEnSE: CALL SETDI09 I1: SETUP TO GET INPUTS :10:"INPUT CHANNEL RESULTS":6"STEP";:6:"LENGTH";:15:"CHANNEL";:25:"VALUE"A%(CMD,I)165KEY15%TLE0KEY:MAXMAX2LE:LE[UNMAXĺ"OUTPUT TOO LARGE FOR WORD LENGTH.":5200uVN32767N(65536N)Z5260"DELAY TIME (MILISECONDS 1..32767): ";N:N1N327675250A%(NUMBER,I)NII1:IMAX5100: NEXT COMMAND |A%()ĺ"LENGTH OF WORD REQUIRES LOWER LSB.":5180sCA%(CMD,I)CC0N16ĺ"LENGTH OF WORD REQUIRES A LOWER LSB":5180FA%(CHANNEL,I)NPC$"W"Ą"OUTPUT VALUE (0..65535): ";N:N0N655355200QC$"W"5210RMAX0:KEYA%(CMD,I)CC1SKEY1N0LC$"D"Ą"LENGTH OF WORD,I.E.# BITS (1..16): ";N:N1N165140jN16N0: 0 FOR 16 BITS(A%(CMD,I)CCN: COMMAND*16+LEN2C$"D"5250<"CHANNEL # OF LEAST SIGNIFICANT BIT (0..31) ";N:N0N315180-AN32(A%(CMD,I)CC"STEP: ";I:"COMMAND (READ,WRITE OR DELAY): ";C$C(C$)05500ZSE: CALL SETDI09C$(C$" ",1):C$"R"C$"W"C$"D"ĺ"COMAND ERROR":5100C$"R"ĺ"READ"C$"W"ĺ"WRITE"C$"D"ĺ"DELAY" CC(WRITE(C$"W")DLY(C$"D")) *7100: SETDI09 ROUTINE DEMOG:2:10:"SETDI09 DEMO"Z34,3:" ":s SETDI09 COMMANDS:RD0:WRITE16:DLY32:EOL48CMD0:CHANNEL1:NUMBER2 SETUP SLOT NUMBERA%(0,0)4: SLOT 4I1: INIT STEP NUMBER1NG,"/"VARY THE PULSE FREQUENCY. THE RATE"Z"AT WHICH THEY PRINT CHANGES AS MORE""INTERRUPTS ARE HANDLED. RTN FOR MENU."34,(37)1:" ":(16384)128āI("A")40("A"):(I);:I:430016368,0:SI: STOP INTERRUPTS&28:(" "((270270A)),6);>(16384)1284040L16368,0nh::2:10:"DI09 PULSE DEMO"tr|"THE PULSES ARE CONTINUING TO BE SAMPLED,";"EVEN WHILE BASIC IS DOING OTHER THINGS.""WHILE THE CHARACTERS ARE PRINTIOUTPUT VALUE+A(6)256(7):AA14100>A1A:A65541AwA10ė:" NO PULSES IN 1/4 OF A SECOND";:4100A30ė:" PULSE RATE FASTER THAN RESOLUTION";:4100:6:(" "(A),6);16:(" "((1000000A270270)),6);75#::2:10:"DI09 PULSE DEMOC9:4:"TYPE RTN TO GO ON."qPU38144:GVPU3:SIGV3: START/GET/STOP{A1134,10:" ":PU: START THINGS GOING" COUNTS WIDTH (US) FREQ (HZ)"34,11:35,11 GV: GET 3 LO-ORDER9 AD25,B256: TIMER 3 HI-ORDER AND STARTc& (AD29)963110: WAIT FOR TIMEOUT 0 AD25,B256: START NEXT WITH MIN TIME DELAY: "";D (16384)1273110: DON'T STOPN 16368,0:3020 PULSE INPUT DISPLAY70B(A8) B0B655361F AD14,127:AD30,127: INTERRUPTS OFFU AD27,224 TIMER 2 CONTINUOUS @ 1US OUTPUT TO CL31 TIMER 3 COUNT PULSES ON DL30 AD20,208:AD21,248 16368,0: NO TYPE AHEAD  AD24,B256(B256): TIMER :7050 :34,2:" ":= :2:10:"DI09 TIMER DEMO"i 20:"TYPE RTN TO STOP AND RESET TIMER" 23:"TYPE RTN FOR MENU" 4:"ENTER INTERVAL IN SECONDS,(.5 60 THEN 3020 I(C$)3210089000: SET BACK TO INPUTS>lT 23::"CH 0 -->";:10:A$" <-- CH 15";: 5I:21:IO$((A$,I1,1)"1");:9400 TIMER FUNCTIONS DEMO :4:"TIMERS OR COUNTERS,(T/C) ? ";P$:P$"C"11000 P$"T"3001 I29004I015->5I:14:C$@H(C$)132199XM(C$)3I16:2199RC$"Z"C$"0"A$((" "A$,I1)"0"(A$,I2),16):9200:2950:2110\(C$"O")(C$"1")2110fA$((" "A$,I1)"1"(A$,I2),16):9200:2950p2110 A DI09 CHANNEL :7025N A$"0000000000000000":9200: SET TO ALL ZEROSo :2:10:"DI09 OUTPUT DEMO" 22:"RTN FOR NEXT CHANNEL." "CTRL-C FOR MENU." 4:10:"CHANNEL STATE" I015 12(I10):I;:21:IO$((A$,I1,1)"1")23:"TYPE RTN FOR MENU"7 2:10:"DI09 INPUT DEMO"^ 9000: READ CHANNELS 0 - 15 TO A$e 4 10:"CHANNEL STATE" I015 12(I10):I;:21:IO$((A$,1I,1)"1") $I )9400 .(16384)1281010 816368,0   SET "TIMER/COUNTER FUNCTION"? "MEASURE PULSE FREQUENCY"d "SETDI09 - A HANDY SUBROUTINE" "PAM16-D DRIVER FOR THE PAM16"  ""  READ DI09 CHANNELS :4:"READ OR WRITE,(R/W) ? ";P$:P$"W"2000 P$"R"1001 :7000 ETTER OF YOUR CHOICE:"% n3:18:A$- sJ07 x:I0L C$:(C$)0150f II1:A$(C$,1)JIo 130 J0ĺ"";:110 : J1000,10000,3000,4000,5000,6000 25 "READ/WRITE DATA LINES." "USE OF SHIFT REGISTER" D$"NOMON I,O,C" :A 9:"INTERACTIVE STRUCTURES INC."b (3:14::"*** DI09 ***": 26:"DEMONSTRATION DISKETTE - FEB 10, 1981" <"COPY, LIST AND USE CONTENTS AS NEEDED" F PA$:(A$)0ĺ:". "A$:80 d:"ENTER THE FIRST L/36607: 5AD163842256: DI09 IN SLOT 2]IO$(1):IO$(0)"ZERO":IO$(1)"ONE "|A%(2,20): SETDI09 PARAMSMAX20 D$(4): CONTROL DD$"BLOAD DI09P"D$"BLOAD SETDI09":SE94096D$"BLOAD PAM16-D,A$7E00":PA126256               5(DI099))2567+ANSHBLB=7+"YOU TYPED ";ANS;" KEYS."T7+"AGAIN,Y/N ? ";A$f7+A$"Y"11080y7+A$"N"112407,119997$, INSTRUCTIONS FOR DEMO7.: FOR INSTRUCTIONS SUBROUTINE7.(34),0:7256A:SOME DOS COMANDS WILL ACT"? "STRANGE WHEN THIS IS IN USE."b 15:"TYPE RTN TO CONTINUE";A$h AILL RUN UNTIL A", "RESET OR POWER DOWN."2 ] " A CTRL-C STOPS THE DISPLAY,BUT THE" "TIMER IS STILL RUNNING. A PEEK TO 8,7,6"; "WILL GIVE HR,MN,SC,RESPECTIVLY. YOU CAN"; "USE THIS IN YOUR PROGRAMS." :::"WARNING";: "2566+ANSHBLB16+"YOU TYPED ";ANS;" KEYS."H6+"AGAIN,Y/N ? ";A$Z6+A$"Y"11080m6+A$"N"11240x6,119996$, INSTRUCTIONS FOR DEMO6.: FOR INSTRUCTIONS SUBROUTINE6.(34),0:3R+(DI099),255'5W+ SET DL0 TO OUTPUT75\+(DI093),1=5e+`5f+"INPUT A STRING FOR DEMO ";A$l5p+I(A$){5z+I0112005+II15+ TOGGLE DL0 ONCE PER CHARACTOR5+(DI091),15+(DI091),05+111305+LB255(DI098)6+HB(255(DI099))STRING."64/+(34),15::"TYPE RETURN TO CONTINUE ";A$W43+SLOT4: SLOT # OF DI09 CARD44+DI0916384SLOT256: DI09 CARD ADDRESS49+ SET TIMER #1 TO COUNT MODE.4>+(DI0911),324C+ SET LSB OF COUNTER4H+(DI098),2554M+ SET MSB OF COUNTER5DATA LINE 0,(DL0),IS THEN TOG-"M3)+"GLED ONCE PER CHARACTOR IN THE STRING."S3*+~3++" THE TIMER WILL SENSE EACH OF THESE"3,+"PULSES,ON DATA LINE 14. THEN THE DEMO"3-+"WILL LOOK INTO TIMER #1 AND TELL YOU THE";4.+"AMOUNT OF CHARACTORS IN THE DL0-DL14)."::>2+"REFER TO USER'S MANUAL FOR PIN DIAGRAM."b2 +20:"TYPE RTN TO CONTINUE.";A$2%+:5:" THIS DEMO SHOWS HOW TIMER #1 CAN FUNC-"2&+"TION AS A COUNTER. THE DEMO WILL ASK"2'+"YOU FOR A STRING. ENTER ONE,AND TYPE"3(+"RETURN. 01{'"BEEN TRANSFERED,A PEEK OF SHIFT REGISTER";T1|'"0 SHOWS THE TRANSFERED DATA."Z1}'h1*(34),0:1* PULSE COUNTER DEMO1+ COUNTS PULSES ON DL14 USING COUNTER #11+:2:12:"COUNTER DEMO":(34),31+::42 +"CONNECT DATA LINE 0 TO 14,(OF THE DI09 WORK. THE DATA SHIFTS OUT":"OF SHIFT REGISTER #1,THRU CL#7,TO SHIFT"r0v'"REGISTER #0,THRU CL#3.":0x'" TIMER #3 PUTS PULSES ON CL#6,WHICH"0y'"CLOCKS THE DATA OUT OF SHIFT REGESTER 1,";0z'"INTO SHIFT REGESTER 2. WHEN 8 BITS HAVE";ER COMPLETED./`'B(DI0910)U/e'B;" HAS BEEN SHIFTED FROM SHIFT REGISTER 0 TO 1."l/j'"AGAIN,Y/N ? ";X$~/o'X$"Y"10055/p'X$"N"10090/q'10999/s'2:10:"SHIFT REGISTER DEMO":(34),3/t':" THIS DEMO SHOWS HOW THE SHIFT REGISTERS";R0u'".D' SET TIMER #3 LOWER LATCH FOR PULSE PERIOD.B.E'(DI0924),100o.G':"VALUE FOR TRANSFER,(0";:10:A$" <-- CH 15";:,' SHIFT REGEST COUNTER6R+(DI099),25526W+ SET DL0 TO OUTPUTB6\+(DI093),1H6e+k6f+"INPUT A STRING FOR DEMO ";A$w6p+I(A$)6z+I0112006+II16+ TOGGLE DL0 ONCE PER CHARACTER6+(DI091),16+(DI091),06+111306+LB255(DI098)7+HB(25ERS IN THE STRING."A5/+(34),15::"TYPE RETURN TO CONTINUE ";A$b53+SLOT4: SLOT # OF DI09 CARD54+DI0916384SLOT256: DI09 CARD ADDRESS59+ SET TIMER #1 TO COUNT MODE.5>+(DI0911),325C+ SET LSB OF COUNTER5H+(DI098),2556M+ SET MSB OF"RETURN. DATA LINE 0,(DL0),IS THEN TOG-"X4)+"GLED ONCE PER CHARACTER IN THE STRING."^4*+4++" THE TIMER WILL SENSE EACH OF THESE"4,+"PULSES,ON DATA LINE 14. THEN THE DEMO"4-+"WILL LOOK INTO TIMER #1 AND TELL YOU THE";5.+"NUMBER OF CHARACTE 0 TO 14,(DL0-DL14)."::I3+"REFER TO USER'S MANUAL FOR PIN DIAGRAM."m3 +20:"TYPE RTN TO CONTINUE.";A$3%+:5:" THIS DEMO SHOWS HOW TIMER #1 CAN FUNC-"3&+"TION AS A COUNTER. THE DEMO WILL ASK"3'+"YOU FOR A STRING. ENTER ONE,AND TYPE"*4(+ITS HAVE";;2{'"BEEN TRANSFERED,A PEEK OF SHIFT REGISTER";_2|'"0 SHOWS THE TRANSFERED DATA."e2}'s2*(34),0:2* PULSE COUNTER DEMO2+ COUNTS PULSES ON DL14 USING COUNTER #12+:2:12:"COUNTER DEMO":(34),32+::43 +"CONNECT DATA LINRS";]1u'"OF THE DI09 WORK. THE DATA SHIFTS OUT":"OF SHIFT REGISTER #1,THRU CL#7,TO SHIFT"}1v'"REGISTER #0,THRU CL#3.":1x'" TIMER #3 PUTS PULSES ON CL#6,WHICH"1y'"CLOCKS THE DATA OUT OF SHIFT REGISTER 1,"; 2z'"INTO SHIFT REGISTER 2. WHEN 8 BGISTER 0 FOR TRANFER COMPLETED.00`'B(DI0910)`0e'B;" HAS BEEN RECIEVED IN SHIFT REGISTER 0"w0j'"AGAIN,Y/N ? ";X$0o'X$"Y"100550p'X$"N"100900q'109990s'2:10:"SHIFT REGISTER DEMO":(34),31t':" THIS DEMO SHOWS HOW THE SHIFT REGISTE/B'(DI0927),20A/D' SET TIMER #3 LOWER LATCH FOR PULSE PERIOD.T/E'(DI0924),100/G':"VALUE FOR TRANSFER,(0";:10:A$" <-- CH 15";:-' +="TYPE RTN TO CONTINUE";A$%+>++?X+(#AD2,0:AD3,0: SET DATA DIRECTION REGh+2# TO INPUTS+<#X1(AD):X2(AD1)+F#XX1:9100:B$A$+P#XX2:9100:A$A$B$+Z#+#A$"":II07:A$(X127)A$:X256(X127)XX:II:,# SET OUTPUTS S SUBROUTINE6.(34),0:ABROUTINE46.(34),0:AMER #3 PUTS PULSES ON CL#6,WHICH"R i"CLOCKS THE DATA OUT OF SHIFT REGESTER 1,"; j"INTO SHIFT REGESTER 2. WHEN 8 BITS HAVE"; k"BEEN TRANSFERED,A PEEK OF SHIFT REGESTER"; l"0 SHOWS THE TRANFERED DATA." m A+(DI091),15+(DI091),0(5+11130=5+LB255(DI098)X5+HB(255(DI099))256f5+ANSHBLB5+"YOU TYPED ";ANS;" KEYS."5+"AGAIN,Y/N ? ";A$5+A$"Y"110805+A$"N"112405,119995$, INSTRUCTIONS FOR DEMO 6.: FOR INSTRUCTIONROM SHIFT REGESTER 0 TO 1."2 Z"AGAIN Y/N ? ";X$B _X$"Y"ī55H ay d" THIS DEMO SHOWS HOW THE SHIFT REGESTERS"; e"OF THE DI09 WORK. THE DATA SHIFTS OUT" f"OF SHIFT REGESTER #1,THRU CL#7,TO SHIFT" g"REGESTER #0,THRU CL#3."! h:" TILOCK PULSES FOR SHIFT.( 5(DI0924),14W 7"VALUE FOR SERIAL TRANFER,(0+ER. THE DEMO WILL ASK"D2'+"YOU FOR A STRING. ENTER ONE,AND TYPE"s2(+"RETURN. DATA LINE 0,(DL0),IS THEN TOG-"2)+"GLED ONCE PER CHARACTOR IN THE STRING."2*+2++" THE TIMER WILL SENSE EACH OF THESE"3,+"PULSES,ON DATA LINE 14. THEN THE DEMO"#1'1+:2:12:"COUNTER DEMO":(34),321+::4c1 +"CONNECT DATA LINE 0 TO 14,(DL0-DL14)."::1+"REFER TO USER'S MANUAL FOR PIN DIAGRAM."1 +20:"TYPE RTN TO CONTINUE.";A$1%+:5:" THIS DEMO SHOWS HOW TIMER #1 CAN FUNC-"2&+"TION AS A COUNTHE DATA OUT OF SHIFT REGESTER 1,";S0z'"INTO SHIFT REGESTER 2. WHEN 8 BITS HAVE";0{'"BEEN TRANSFERED,A PEEK OF SHIFT REGISTER";0|'"0 SHOWS THE TRANSFERED DATA."0}'0*(34),0:0* PULSE COUNTER DEMO1+ COUNTS PULSES ON DL14 USING COUNTER IFT REGISTER DEMO":(34),3M/t':" THIS DEMO SHOWS HOW THE SHIFT REGISTERS";/u'"OF THE DI09 WORK. THE DATA SHIFTS OUT":"OF SHIFT REGISTER #1,THRU CL#7,TO SHIFT"/v'"REGISTER #0,THRU CL#3.":/x'" TIMER #3 PUTS PULSES ON CL#6,WHICH""0y'"CLOCKS TT TRANSFER..J'A010055+.L'(DI0926),Aa.V' LOOK IN SHIFT REGISTER 0 FOR TRANFER COMPLETED.r.`'B(DI0910).e'B;" HAS BEEN SHIFTED FROM SHIFT REGISTER 0 TO 1.".j'"AGAIN,Y/N ? ";X$.o'X$"Y"10055.p'X$"N"10090.q'10999/s'2:10:"SHI0911),12@-=' SET SHIFT REGESTER 1 TO TIMER #3 CLOCKING MODE.R-B'(DI0927),20-D' SET TIMER #3 LOWER LATCH FOR PULSE PERIOD.-E'(DI0924),100-G':"VALUE FOR TRANSFER,(0";:10:A$" <-- CH 15";:[+' SHIFT REGESTER DEMOa+'+':4:"CONNECT CONTROL LINES 2 AND 6,(CL2-CL6).";+'"CONNECT CONTROL LINES 3 AND 7,(CL3-CL7)."+'10::"REFER TO USER'S MANUAL FOR PIN DIAGRAM."",#A$"":II07:A$(X127)A$:X256(X127)XX:II:N*# SET OUTPUTS TO A$*#AD2,255:AD3,255: SET DATA DIRECTION REG*$ TO OUTPUTS*$B$A$*$A$(A$,8):9300:AD1,X*"$A$(B$,8):9300:AD,X*,$A$B$:*S$+T$X0:II07:XXX((A$"SELECT READ OR WRITE,AND ANSWER THE "7)"PROMPTS."=):C);I)<h)="TYPE RTN TO CONTINUE";A$n)>t)?)(#AD2,0:AD3,0: SET DATA DIRECTION REG)2# TO INPUTS)<#X1(AD):X2(AD1))F#XX1:9100:B$A$)P#XX2:9100:A$A$B$)Z#6*" THIS DEMO SHOWS HOW TO USE YOUR DI09 IN";]("CONNECTION WITH A PAM-16,AN ADDRESSABLE"("ISOLATED INTERFACE. MAKE SURE IT IS"("CONNECTED PROPERLY BEFORE RUNNING THIS"("DEMO."(("THIS DEMO READS OR WRITES TO THE PAM-16.";') ROUTINE SIMPLY TYPE ONE OF"M'"THE COMANDS,AND ANSWER THE PROMPTS. YOU";'"CAN HAVE AS MANY STEPS AS YOU WANT IN":"YOUR ROUTINE."''"THINK OF A STEP AS AN INSTRUCTION AND"'"THE PROMPT AS THE PARAMETERS FOR IT."'7994':4.(":"SECONDS."&7994 &:4N&" THIS DEMO IS OF A MINI LANGUAGE WHICH"&"WILL HELP YOU USE THE DI09. YOU CAN SET";&"UP FOR A READ OR A WRITE TO ANY CHANNEL.";&"ALSO YOU CAN HAVE A DELAY TIME BETWEEN":"THESE STEPS."'" TO WRITE A CONTINUE";A$%:4D%" A SIGNAL GENERATOR SHOULD NOW BE CON-"s%"NECTED TO CONTROL LINE 4. IT SHOULD BE"%"ABLE TO PRODUCE A 0-5V SQUARE WAVE. THE";%"NEXT SECTION WILL MEASURE THE FREQUENCY" &"AND THE PERIOD OF THE SIGNAL IN MICRO-TIMER,TYPE RTN. YOU CAN"E$"ENTER A NEW TIME WHEN THE CURSOR RE-"r$"TURNS. TO RETURN TO THE MENU,TYPE RTN$"AGAIN."$7994$:4::"CONNECT DATA LINES 30 AND 31.":$6:"REFER TO USER'S MANUAL FOR PIN DIAGRAM." %15:"TYPE RTN TO" THIS DEMO SHOWS HOW THE TIMERS CAN BE"V#"USED TO TIME INTERVALS FOR YOU. THE"#"DEMO WILL PROMPT YOU FOR AN INTERVAL."#"ENTER A TIME,IN SECONDS,AND HIT RTN."#"THE BELL WILL SOUND AT THE END OF THE":"INTERVAL.":$" TO RESET THE FROM ON,(5V),TO":"OFF,";D"z"(0V),AS YOU WRITE TO THAT CHANNEL."N"{7994"10::"CONNECT DATA LINES 30 AND 31,(DL30-DL31)";:"BEFORE CONTINUING.":"""REFER TO USER'S MANUAL FOR PIN DIAGRAM.""15::"TYPE RTN TO CONTINUE";A$::4*#ING"1!s"CURSOR INDICATES THE CHANNEL WHICH IS"`!t"BEING WRITTEN TO. TYPE A '1' OR A '0',"!u"TO WRITE TO THAT LINE. A RTN WILL MOVE"!v"TO THE NEXT CHANNEL. "!w!x" IF YOU HAVE A VOLT METER,YOU CAN SEE":"THE ";"y"DATA LINES CHANGEINE TO GROUND."@ e"FOR EXAMPLE,CONNECT DATA LINE 0,(DL0),TO";o f"GROUND,(REFER TO USER'S MANUAL). WATCH" g"THE EFFECT THIS HAS ON THE NEXT DISPLAY." p7994 q" THIS DEMO WRITES TO THE DATA LINES ON"!r"CONNECTOR 0,(DL0-DL15). THE BLINKCTOR ZERO,(DL0-DL15). THE STATUS IS"T_"INDICATED FOR EACH CHANNEL,ALONG WITH A"`"BINARY REPRESENTATION OF ALL SIXTEEN"a"CHANNELS AT THE BOTTOM OF THE DISPLAY."bc" YOU CAN CHANGE THE STATUS OF A CHANNEL" d"BY CONNECTING A DATA L"L"NN64CC$"W"Ą"OUTPUT DATA (0..255): ";D:D0D2556150l6,D:7,N: SETUP OUTPUT AND ADDRESSC$"W"ČWPAM16:6100$RPAM16:D(6)."INPUT DATA: ";D:"";C$:6100WX]" THIS DEMO READS THE DATA LINES OF CON-"%^"NE ":$RPAM163256:WPAM1632563K:"READ OR WRITE: ";C$:(C$)0ıC$(C$" ",1):C$"R"C$"W"ĺ"COMMAND ERROR":6100"ADDRESS (0..63): ";N:N0N636120"LO OR HI 8 LINES: ";CC$:CC$(CC$" ",1):CC$"H"CC$"L"6130 CC$UMBER,I)0A%(CMD,I)48II1:5530: NOT EOL" ANOTHER TRY ? (Y/N)";F$:F$"Y"ī500116368,0op PAM16-D DEMO s7150u::10:"PAM16-D DEMO"v8:"TYPE RTN FOR MENU."z34,3:" I1: SETUP TO GET INPUTS A:10:"INPUT CHANNEL RESULTS":6y"STEP";:6:"LENGTH";:15:"CHANNEL";:25:"VALUE"A%(CMD,I)165550: NOT READ COMMAND I;:6:A%(CMD,I)0ĺ"16";:A%(CMD,I)0ĺA%(CMD,I);15:A%(CHANNEL,I);:25:A%(NLUE (0..65535): ";N:N0N655355200/Z5260n"DELAY TIME (MILISECONDS 1..32767): ";N:N1N327675250A%(NUMBER,I)NII1:IMAX5100: NEXT COMMAND |A%(CMD,I)EOL8,1: SET WHICH INTEGER ARRAY TO USESE: CALL SETDI09 C$"D"Ą"LENGTH OF WORD,I.E.# BITS (1..16): ";N:N1N165140`N16N0: 0 FOR 16 BITS(A%(CMD,I)CCN: COMMAND*16+LEN2C$"D"5250<"CHANNEL #,LEAST SIGNIFICANT BIT(0..31)";N:N0N315180FA%(CHANNEL,I)N%PC$"W"Ą"OUTPUT VAI:"COMMAND (READ,WRITE OR DELAY): ";C$9(C$)05500PSE: CALL SETDI09C$(C$" ",1):C$"R"C$"W"C$"D"ĺ"COMAND ERROR":5100C$"R"ĺ"READ"C$"W"ĺ"WRITE"C$"D"ĺ"DELAY" CC(WRITE(C$"W")DLY(C$"D"))N0B 7100: SETDI09 ROUTINE DEMO=:2:10:"SETDI09 DEMO"P34,3:" ":i SETDI09 COMMANDS:RD0:WRITE16:DLY32:EOL48CMD0:CHANNEL1:NUMBER2 SETUP SLOT NUMBERA%(0,0)4: SLOT 4I1: INIT STEP NUMBER'"STEP: ";"c d3:"HIT ANY KEY TO CONTINUE";X$:9?E(#K)#Y*#25614,64_+#X THE STATUS OF SECURITY BY";K]"CONNECTING THE DATA LINE TO GROUND,THUS"h^"TAKING THE INPUT LOW."n_`"THE SYSTEM IS EXPANDABLE TO INCLUDE MORE ";:"SENSORS"ab"A LOG OF OCCURENCES IS ALSO KEPT. IT":"GIVES THE TIME AND WHAT OCCURED.z#????     ٠ ˠˠϠ0ɱϠϠϠ͠"0Ӡ1Ůʰ Ϡ1ɰРɰͱĠԠӠ SI: STOP INTERRUPTS A7100: SETDI09 ROUTINE DEMO^:2:10:"SETDI09 DEMO"q34,3:" ": SETDI09 COMMANDS:RD0:WRITE16:DLY32:EOL48CMD0:CHANNEL1:NUMBER2 SETUP SLOT NUMBERA%(0,0)4: SLOT 4I1:+"WHILE THE CHARACTERS ARE PRINTING"V"VARY THE PULSE FREQUENCY. THE RATE""AT WHICH THEY PRINT CHANGES AS MORE""INTERRUPTS ARE HANDLED"34,(37)1:" ":(16384)128āI("A")40("A"):(I);:I:430016368,0:16:(" "((1000000A270270)),6);R28:(" "((270270A)),6);j(16384)1284040x16368,0h::2:10:"DI09 PULSE DEMO"r|"THE PULSES ARE CONTINUED TO BE SAMPLED""EVEN WHILE BASIC IS DOING OTHER THINGS" FREQ (HZ)"34,11:35,118GV: GET OUTPUT VALUEWA(6)256(7):AA14100jA1A:A65541AA10ė:" NO PULSES IN 1/4 OF A SECOND";:4100A30ė:" PULSE RATE FASTER THAN RESOLUTION";:4100:6:(" "(A),6);+3020 $ PULSE INPUT DISPLAY.7075O::2:10:"DI09 PULSE DEMOo8:4:"TYPE RTN TO GO ON."PU38144:GVPU3:SIGV3: START/GET/STOPA1134,10:" ":PU: START THINGS GOING " COUNTS WIDTH (US) TYPE AHEAD7 AD24,B256(B256): TIMER 3 LO-ORDERe AD25,B256: TIMER 3 HI-ORDER AND START& (AD29)963110: WAIT FOR TIMEOUT 0 AD25,B256: START NEXT WITH MIN TIME DELAY: "";D (16384)1273110: DON'T STOPN 16368,0: A(C$):A03020' A6030204 B(A8)G B0B655361r AD14,127:AD30,127: INTERRUPTS OFF AD27,224 TIMER 2 CONTINUOUS @ 1US OUTPUT TO CL31 TIMER 3 COUNT PULSES ON DL30 AD20,208:AD21,248  16368,0: NO * 5I:21:IO$((A$,I1,1)"1");:9400E TIMER FUNCTIONS DEMOO 7050d :34,2:" ": :2:10:"DI09 TIMER DEMO" 20:"TYPE RTN TO STOP AND RESET TIMER" 23:"TYPE RTN FOR MENU" 4:"ENTER INTERVAL IN SECONDS: ";C$:(C$)0A$((" "A$,I1)"0"(A$,I2),16):9200:2950:2110T\(C$"O")(C$"1")2110fA$((" "A$,I1)"1"(A$,I2),16):9200:2950p2110I(C$)321009000: SET BACK TO INPUTST 23::"CH 0 -->";:10:A$" <-- CH 15";:! :2:10:"DI09 OUTPUT DEMO"< 23:"CTRL-C FOR MENU"Z 4:10:"CHANNEL STATE"f I015 12(I10):I;:21:IO$((A$,I1,1)"1") I 2900 4I015 >5I:14:C$ H(C$)132199 M(C$)3I16:21996RC$"Z"C$"0"NNELS 0 - 15 TO A$ 44 10:"CHANNEL STATE"@ I015m 12(I10):I;:21:IO$((A$,1I,1)"1")t $I~ )9400 .(16384)1281010 816368,0   SET A DI09 CHANNEL 7025 A$"0000000000000000":9200: SET TO ALL ZEROS" "USE THE TIMERS": "MEASURE PULSE FREQUENCY"_ "SETDI09 - A HANDY SUBROUTINE" "PAM16-D DRIVER FOR THE PAM16"  ""  READ DI09 CHANNELS 7000 23:"TYPE RTN FOR MENU" 2:10:"DI09 INPUT DEMO" 9000: READ CHALETTER OF YOUR CHOICE:"& n3:18:A$. sJ08 x:I0M C$:(C$)0150g II1:A$(C$,1)JIp 130 J0ĺ"";:110 : J1000,2000,3000,4000,5000,6000 25 "READ INPUT DATA LINES" "WRITE OUTPUT DATA LINES D$"NOMON I,O,C" :B 9:"INTERACTIVE STRUCTURES INC."c (3:14::"*** DI09 ***": 26:"DEMONSTRATION DISKETTE - FEB 10, 1981" <"COPY, LIST AND USE CONTENTS AS NEEDED" F PA$:(A$)0ĺ:". "A$:80 d:"ENTER THE FIRST 36863: $8FFF9AD163844256: DI09 IN SLOT 4aIO$(1):IO$(0)"ZERO":IO$(1)"ONE "A%(2,20): SETDI09 PARAMSMAX20 D$(4): CONTROL DD$"BLOAD DI09P"D$"BLOAD SETDI09":SE94096D$"BLOAD PAM16-D,A$300":PA3256             " THIS DEMO IS OF A MINI LANGUAGE WHICH"Z$"WILL HELP YOU USE THE DI09. YOU CAN SET";$"UP FOR A READ OR A WRITE TO ANY CHANNEL.";$"ALSO YOU CAN HAVE A DELAY TIME BETWEEN":"THESE STEPS."$" TO WRITE A ROUTINE SIMPLY TYPE ONE OF"(%"THL GENERATOR SHOULD NOW BE CON-"N#"NECTED TO CONTROL LINE 4. IT SHOULD BE"#"ABLE TO PRODUCE A 0-5V SQUARE WAVE. THE";#"NEXT SECTION WILL MEASURE THE FREQUENCY"#"AND THE PERIOD OF THE SIGNAL IN MICRO-":"SECONDS."#7994#:4)$ A NEW TIME WHEN THE CURSOR RE-"M""TURNS. TO RETURN TO THE MENU,TYPE RTN[""AGAIN."e"7994":4::"CONNECT DATA LINES 30 AND 31.":"6:"REFER TO USER'S MANUAL FOR PIN DIAGRAM.""15:"TYPE RTN TO CONTINUE";A$":4#" A SIGNAAN BE"2!"USED TO TIME INTERVALS FOR YOU. THE"_!"DEMO WILL PROMPT YOU FOR AN INTERVAL."!"ENTER A TIME,IN SECONDS,AND HIT RTN."!"THE BELL WILL SOUND AT THE END OF THE":"INTERVAL.":!"TO RESET THE TIMER,TYPE RTN. YOU CAN" ""ENTERA RTN WILL MOVE"- v"TO THE NEXT CHANNEL. "7 {7994y 10::"CONNECT DATA LINES 30 AND 31 BEFORE":"CONTINUING.":  "REFER TO USER'S MANUAL FOR PIN DIAGRAM." 15::"TYPE RTN TO CONTINUE";A$::4!" THIS DEMO SHOWS HOW THE TIMERS CATCH THE EFFECT ON THE DISPLAY."*g7994Xq" THIS DEMO WRITES TO THE DATA LINES ON"r"CONNECTOR 0,(DL0-DL15). THE BLINKING"s"CURSOR INDICATES THE CHANNEL WHICH IS"t"BEING WRITTEN TO. TYPE A '1' OR A '0'," u"TO WRITE TO THAT LINE. NDICATED FOR EACH CHANNEL, ALONG"_`"WITH A BINARY REPRESENTATION OF ALL SIX-TEEN CHANNELS."ebc"YOU CAN CHANGE THE STATUS OF A CHANNEL"d"BY CONNECTING A DATA LINE TO GROUND.EX."e"CONNECT DL0 TO GROUND,(REFER TO USER'S" f"MANUAL),W: ";D:D0D2556150>6,D:7,N: SETUP OUTPUT AND ADDRESSXC$"W"ČWPAM16:6100k$RPAM16:D(6)."INPUT DATA: ";D:"";C$:6100WX]"THIS DEMO READS THE DATA LINES OF CON-"^"NECTOR ZERO, OF THE DI09. THE STATUS"!_"IS IEAD OR WRITE: ";C$:(C$)0ıXC$(C$" ",1):C$"R"C$"W"ĺ"COMMAND ERROR":6100"ADDRESS (0..63): ";N:N0N636120"LO OR HI 8 LINES: ";CC$:CC$(CC$" ",1):CC$"H"CC$"L"6130CC$"L"NN64C$"W"Ą"OUTPUT DATA (0..255)MBER,I)/A%(CMD,I)48II1:5530: NOT EOLK" HIT ANY CHARACTER";}(16384)1285560: WAIT SO CAN SEE RESULTS16368,0op PAM16-D DEMO u::10:"PAM16-D DEMO"z34,3:" ":RPAM163256:WPAM1632563:"RAY TO USE!SE: CALL SETDI09 @I1: SETUP TO GET INPUTS f:10:"INPUT CHANNEL RESULTS":6"STEP";:6:"LENGTH";:15:"CHANNEL";:25:"VALUE"A%(CMD,I)165550: NOT READ COMMAND I;:6:A%(CMD,I);:15:A%(CHANNEL,I);:25:A%(NU(CHANNEL,I)NJPC$"W"Ą"OUTPUT VALUE (0..65535): ";N:N0N655355200TZ5260"DELAY TIME (MILISECONDS 1..32767): ";N:N1N327675250A%(NUMBER,I)NII1:IMAX5100: NEXT COMMAND |A%(CMD,I)EOL 8,1: SET WHICH INTEGER ARR(C$"W")DLY(C$"D"))N0bC$"D"Ą"LENGTH OF WORD,I.E.# BITS (1..16): ";N:N1N16140N16N0: 0 FOR 16 BITS(A%(CMD,I)CCN: COMMAND*16+LEN2C$"D"5250<"CHANNEL # OF MOST SIGNIFICANT BIT (0..31): ";N:N0N315180 FA% INIT STEP NUMBERH"STEP: ";I:"COMMAND (READ,WRITE OR DELAY): ";C$Z(C$)05500qSE: CALL SETDI09C$(C$" ",1):C$"R"C$"W"C$"D"ĺ"COMAND ERROR":5100C$"R"ĺ"READ"C$"W"ĺ"WRITE"C$"D"ĺ"DELAY" CC(WRITEyLxx/@ ĭĩĭX`ĭčx)x<0<00E@SI: STOP INTERRUPTS A7100: SETDI09 ROUTINE DEMO^:2:10:"SETDI09 DEMO"q34,3:" ": SETDI09 COMMANDS:RD0:WRITE16:DLY32:EOL48CMD0:CHANNEL1:NUMBER2 SETUP SLOT NUMBERA%(0,0)4: SLOT 4I1:+"WHILE THE CHARACTERS ARE PRINTING"V"VARY THE PULSE FREQUENCY. THE RATE""AT WHICH THEY PRINT CHANGES AS MORE""INTERRUPTS ARE HANDLED"34,(37)1:" ":(16384)128āI("A")40("A"):(I);:I:430016368,0:16:(" "((1000000A270270)),6);R28:(" "((270270A)),6);j(16384)1284040x16368,0h::2:10:"DI09 PULSE DEMO"r|"THE PULSES ARE CONTINUED TO BE SAMPLED""EVEN WHILE BASIC IS DOING OTHER THINGS" FREQ (HZ)"34,11:35,118GV: GET OUTPUT VALUEWA(6)256(7):AA14100jA1A:A65541AA10ė:" NO PULSES IN 1/4 OF A SECOND";:4100A30ė:" PULSE RATE FASTER THAN RESOLUTION";:4100:6:(" "(A),6);+3020 $ PULSE INPUT DISPLAY.7075O::2:10:"DI09 PULSE DEMOo8:4:"TYPE RTN TO GO ON."PU38144:GVPU3:SIGV3: START/GET/STOPA1134,10:" ":PU: START THINGS GOING " COUNTS WIDTH (US) TYPE AHEAD7 AD24,B256(B256): TIMER 3 LO-ORDERe AD25,B256: TIMER 3 HI-ORDER AND START& (AD29)963110: WAIT FOR TIMEOUT 0 AD25,B256: START NEXT WITH MIN TIME DELAY: "";D (16384)1273110: DON'T STOPN 16368,0: A(C$):A03020' A6030204 B(A8)G B0B655361r AD14,127:AD30,127: INTERRUPTS OFF AD27,224 TIMER 2 CONTINUOUS @ 1US OUTPUT TO CL31 TIMER 3 COUNT PULSES ON DL30 AD20,208:AD21,248  16368,0: NO * 5I:21:IO$((A$,I1,1)"1");:9400E TIMER FUNCTIONS DEMOO 7050d :34,2:" ": :2:10:"DI09 TIMER DEMO" 20:"TYPE RTN TO STOP AND RESET TIMER" 23:"TYPE RTN FOR MENU" 4:"ENTER INTERVAL IN SECONDS: ";C$:(C$)0A$((" "A$,I1)"0"(A$,I2),16):9200:2950:2110T\(C$"O")(C$"1")2110fA$((" "A$,I1)"1"(A$,I2),16):9200:2950p2110I(C$)321009000: SET BACK TO INPUTST 23::"CH 0 -->";:10:A$" <-- CH 15";:! :2:10:"DI09 OUTPUT DEMO"< 23:"CTRL-C FOR MENU"Z 4:10:"CHANNEL STATE"f I015 12(I10):I;:21:IO$((A$,I1,1)"1") I 2900 4I015 >5I:14:C$ H(C$)132199 M(C$)3I16:21996RC$"Z"C$"0"NNELS 0 - 15 TO A$ 44 10:"CHANNEL STATE"@ I015m 12(I10):I;:21:IO$((A$,1I,1)"1")t $I~ )9400 .(16384)1281010 816368,0   SET A DI09 CHANNEL 7025 A$"0000000000000000":9200: SET TO ALL ZEROS" "USE THE TIMERS": "MEASURE PULSE FREQUENCY"_ "SETDI09 - A HANDY SUBROUTINE" "PAM16-D DRIVER FOR THE PAM16"  ""  READ DI09 CHANNELS 7000 23:"TYPE RTN FOR MENU" 2:10:"DI09 INPUT DEMO" 9000: READ CHALETTER OF YOUR CHOICE:"& n3:18:A$. sJ08 x:I0M C$:(C$)0150g II1:A$(C$,1)JIp 130 J0ĺ"";:110 : J1000,2000,3000,4000,5000,6000 25 "READ INPUT DATA LINES" "WRITE OUTPUT DATA LINES D$"NOMON I,O,C" :B 9:"INTERACTIVE STRUCTURES INC."c (3:14::"*** DI09 ***": 26:"DEMONSTRATION DISKETTE - FEB 10, 1981" <"COPY, LIST AND USE CONTENTS AS NEEDED" F PA$:(A$)0ĺ:". "A$:80 d:"ENTER THE FIRST 36863: $8FFF9AD163844256: DI09 IN SLOT 4aIO$(1):IO$(0)"ZERO":IO$(1)"ONE "A%(2,20): SETDI09 PARAMSMAX20 D$(4): CONTROL DD$"BLOAD DI09P"D$"BLOAD SETDI09":SE94096D$"BLOAD PAM16-D,A$300":PA3256            DIRECTION REG'$ TO OUTPUTS('$B$A$E'$A$(A$,8):9300:AD1,X`'"$A$(B$,8):9300:AD,Xl',$A$B$:r'S$'T$X0:II07:XXX((A$,8II,1)"1"):II:'$23::"CH 0 -->";:10:A$" <-- CH 15";:N/&(#AD2,0:AD3,0: SET DATA DIRECTION REG?&2# TO INPUTSW&<#X1(AD):X2(AD1)l&F#XX1:9100:B$A$&P#XX2:9100:A$A$B$&Z#&#A$"":II07:A$(X127)A$:X256(X127)XX:II:&# SET OUTPUTS TO A$ '#AD2,255:AD3,255: SET DATA E COMANDS,AND ANSWER THE PROMPTS. YOU";f%"CAN HAVE AS MANY STEPS AS YOU WANT IN":"YOUR ROUTINE."l%%"THINK OF A STEP AS AN INSTRUCTION AND"%"THE PROMPT AS THE PARAMETERS FOR IT."%:%;%<%="TYPE RTN TO CONTINUE";A$%>&?L LHx`x`ĩččą čĩčĩĩĩSX`x X``ĭ) ąą ĩĭĥE@ĩĩ E@0: DON'T STOP"N 16368,0:3020(B PULSE INPUT DISPLAYL7075m::2:10:"DI09 PULSE DEMO9:4:"TYPE RTN TO GO ON."PU38144:GVPU3:SIGV3: START/GET/STOPA1134,10:" ":PU: START THINGS GOINGAD21,248( 16368,0: NO TYPE AHEADU AD24,B256(B256): TIMER 3 LO-ORDER AD25,B256: TIMER 3 HI-ORDER AND START& (AD29)963110: WAIT FOR TIMEOUT 0 AD25,B256: START NEXT WITH MIN TIME DELAY: "";D (16384)127311VAL IN SECONDS: ";C$:(C$)0ı6 A(C$):A03020E A603020R B(A8)e B0B655361 AD14,127:AD30,127: INTERRUPTS OFF AD27,224 TIMER 2 CONTINUOUS @ 1US OUTPUT TO CL31 TIMER 3 COUNT PULSES ON DL30  AD20,208:0 -->";:10:A$" <-- CH 15";:H 5I:21:IO$((A$,I1,1)"1");:9400c TIMER FUNCTIONS DEMOm 7050 :34,2:" ": :2:10:"DI09 TIMER DEMO" 20:"TYPE RTN TO STOP AND RESET TIMER" 23:"TYPE RTN FOR MENU" 4:"ENTER INTERI16:2199TRC$"Z"C$"0"A$((" "A$,I1)"0"(A$,I2),16):9200:2950:2110r\(C$"O")(C$"1")2110fA$((" "A$,I1)"1"(A$,I2),16):9200:2950p2110I(C$)321009000: SET BACK TO INPUTST 23::"CH ! :2:10:"DI09 OUTPUT DEMO"B 22:"RTN FOR NEXT CHANNEL."Z "CTRL-C FOR MENU."x 4:10:"CHANNEL STATE" I015 12(I10):I;:21:IO$((A$,I1,1)"1") I 2900 4I015 >5I:14:C$ H(C$)132199 M(C$)3NNELS 0 - 15 TO A$ 44 10:"CHANNEL STATE"@ I015m 12(I10):I;:21:IO$((A$,1I,1)"1")t $I~ )9400 .(16384)1281010 816368,0   SET A DI09 CHANNEL 7025 A$"0000000000000000":9200: SET TO ALL ZEROS" "USE THE TIMERS": "MEASURE PULSE FREQUENCY"_ "SETDI09 - A HANDY SUBROUTINE" "PAM16-D DRIVER FOR THE PAM16"  ""  READ DI09 CHANNELS 7000 23:"TYPE RTN FOR MENU" 2:10:"DI09 INPUT DEMO" 9000: READ CHALETTER OF YOUR CHOICE:"& n3:18:A$. sJ08 x:I0M C$:(C$)0150g II1:A$(C$,1)JIp 130 J0ĺ"";:110 : J1000,2000,3000,4000,5000,6000 25 "READ INPUT DATA LINES" "WRITE OUTPUT DATA LINES D$"NOMON I,O,C" :B 9:"INTERACTIVE STRUCTURES INC."c (3:14::"*** DI09 ***": 26:"DEMONSTRATION DISKETTE - FEB 10, 1981" <"COPY, LIST AND USE CONTENTS AS NEEDED" F PA$:(A$)0ĺ:". "A$:80 d:"ENTER THE FIRST s"36863: $8FFF9AD163844256: DI09 IN SLOT 4aIO$(1):IO$(0)"ZERO":IO$(1)"ONE "A%(2,20): SETDI09 PARAMSMAX20 D$(4): CONTROL DD$"BLOAD DI09P"D$"BLOAD SETDI09":SE94096D$"BLOAD PAM16-D,A$300":PA3256            ? B \ |=) Lj   ȑLjۑ `<`> 0<`I9ۑ `ۑ I%`ۑI9  `9 ~ ~ 0`?kl$ȱ ȱee "eHȱehn`m``) i i 0` $IiIiȈLj=) ߑ    -=) I<- ȱ-   TO THE DATA LINES ON"C r"CONNECTOR 0,(DL0-DL15). THE BLINKING"p s"CURSOR INDICATES THE CHANNEL WHICH IS" t"BEING WRITTEN TO. TYPE A '1' OR A '0'," u"TO WRITE TO THAT LINE. A RTN WILL MOVE" v"TO THE NEXT CHANNEL. " w'!x" IF YOU AN CHANGE THE STATUS OF A CHANNEL"Nd"BY CONNECTING A DATA LINE TO GROUND."e"FOR EXAMPLE,CONNECT DATA LINE 0,(DL0),TO";f"GROUND,(REFER TO USER'S MANUAL). WATCH"g"THE EFFECT THIS HAS ON THE NEXT DISPLAY."p7994 q" THIS DEMO WRITESX6]" THIS DEMO READS THE DATA LINES OF CON-"d^"NECTOR ZERO,(DL0-DL15). THE STATUS IS"_"INDICATED FOR EACH CHANNEL,ALONG WITH A"`"BINARY REPRESENTATION OF ALL SIXTEEN"a"CHANNELS AT THE BOTTOM OF THE DISPLAY."b"c" YOU C LINES: ";CC$:CC$(CC$" ",1):CC$"H"CC$"L"6130JCC$"L"NN64C$"W"Ą"OUTPUT DATA (0..255): ";D:D0D25561506,D:7,N: SETUP OUTPUT AND ADDRESSC$"W"ČWPAM16:6100$RPAM16:D(6)."INPUT DATA: ";D:"";C$:6100W10:"PAM16-D DEMO"0v8:"TYPE RTN FOR MENU."Cz34,3:" ":cRPAM163256:WPAM1632563:"READ OR WRITE: ";C$:(C$)0ıC$(C$" ",1):C$"R"C$"W"ĺ"COMMAND ERROR":6100"ADDRESS (0..63): ";N:N0N6361206"LO OR HI 80ĺ"16";:A%(CMD,I)0ĺA%(CMD,I);M15:A%(CHANNEL,I);:25:A%(NUMBER,I)uA%(CMD,I)48II1:5530: NOT EOL" HIT ANY CHARACTER";(16384)1285560: WAIT SO CAN SEE RESULTS16368,0op PAM16-D DEMO s7150u::)8,1: SET WHICH INTEGER ARRAY TO USEASE: CALL SETDI09 `I1: SETUP TO GET INPUTS :10:"INPUT CHANNEL RESULTS":6"STEP";:6:"LENGTH";:15:"CHANNEL";:25:"VALUE"A%(CMD,I)165550: NOT READ COMMAND #I;:6:A%(CMD,I)(0..31)";N:N0N315180-FA%(CHANNEL,I)NjPC$"W"Ą"OUTPUT VALUE (0..65535): ";N:N0N655355200tZ5260"DELAY TIME (MILISECONDS 1..32767): ";N:N1N327675250A%(NUMBER,I)NII1:IMAX5100: NEXT COMMAND |A%(CMD,I)EOLC$"D"ĺ"DELAY"7 CC(WRITE(C$"W")DLY(C$"D"))?N0C$"D"Ą"LENGTH OF WORD,I.E.# BITS (1..16): ";N:N1N165140N16N0: 0 FOR 16 BITS(A%(CMD,I)CCN: COMMAND*16+LEN2C$"D"5250<"CHANNEL # OF LEAST SIGNIFICANT BITRA%(0,0)4: SLOT 43I1: INIT STEP NUMBERi"STEP: ";I:"COMMAND (READ,WRITE OR DELAY): ";C${(C$)05500SE: CALL SETDI09C$(C$" ",1):C$"R"C$"W"C$"D"ĺ"COMAND ERROR":5100C$"R"ĺ"READ"C$"W"ĺ"WRITE"):(I);:I:4300516368,0:SI: STOP INTERRUPTS;Ab7100: SETDI09 ROUTINE DEMO:2:10:"SETDI09 DEMO"34,3:" ": SETDI09 COMMANDS:RD0:WRITE16:DLY32:EOL48CMD0:CHANNEL1:NUMBER2 SETUP SLOT NUMBEASIC IS DOING OTHER THINGS"!K"WHILE THE CHARACTERS ARE PRINTING,"v"VARY THE PULSE FREQUENCY. THE RATE""AT WHICH THEY PRINT CHANGES AS MORE""INTERRUPTS ARE HANDLED."34,(37)1:" ":(16384)128āI("A")40("A":6:(" "(A),6);I16:(" "((1000000A270270)),6);p28:(" "((270270A)),6);(16384)128404016368,0h::2:10:"DI09 PULSE DEMO"r|"THE PULSES ARE CONTINUED TO BE SAMPLED,""EVEN WHILE B)" COUNTS WIDTH (US) FREQ (HZ)";34,11:35,11VGV: GET OUTPUT VALUEuA(6)256(7):AA14100A1A:A65541AA10ė:" NO PULSES IN 1/4 OF A SECOND";:4100A30ė:" PULSE RATE FASTER THAN RESOLUTION";:4100e/ ĩĩĥ)Iĩ΍ ĭI ĩ` ĩčĥ)IĥIĩ ĩ ĩč`X1:9100:B$A$')P#XX2:9100:A$A$B$-)Z#g)#A$"":II07:A$(X127)A$:X256(X127)XX:II:)# SET OUTPUTS TO A$)#AD2,255:AD3,255: SET DATA DIRECTION REG)$ TO OUTPUTS)$B$A$)$A$(A$,8):9300:AD1,X*"$A$(B$,8):9300:A"THIS DEMO READS OR WRITES TO THE PAM-16.";X("SELECT READ OR WRITE,AND ANSWER THE "h("PROMPTS."n(:t(;z(<(="TYPE RTN TO CONTINUE";A$(>(?((#AD2,0:AD3,0: SET DATA DIRECTION REG(2# TO INPUTS(<#X1(AD):X2(AD1))F#X AS THE PARAMETERS FOR IT."%'7994.':4_'" THIS DEMO SHOWS HOW TO USE YOUR DI09 IN";'"CONNECTION WITH A PAM-16,AN ADDRESSABLE"'"ISOLATED INTERFACE. MAKE SURE IT IS"'"CONNECTED PROPERLY BEFORE RUNNING THIS"'"DEMO."',(Y TIME BETWEEN":"THESE STEPS."M&" TO WRITE A ROUTINE SIMPLY TYPE ONE OF"~&"THE COMANDS,AND ANSWER THE PROMPTS. YOU";&"CAN HAVE AS MANY STEPS AS YOU WANT IN":"YOUR ROUTINE."&&"THINK OF A STEP AS AN INSTRUCTION AND"'"THE PROMPTNCY">%"AND THE PERIOD OF THE SIGNAL IN MICRO-":"SECONDS."H%7994Q%:4%" THIS DEMO IS OF A MINI LANGUAGE WHICH"%"WILL HELP YOU USE THE DI09. YOU CAN SET";%"UP FOR A READ OR A WRITE TO ANY CHANNEL.";&"ALSO YOU CAN HAVE A DELA'S MANUAL FOR PIN DIAGRAM.">$15:"TYPE RTN TO CONTINUE";A$G$:4u$" A SIGNAL GENERATOR SHOULD NOW BE CON-"$"NECTED TO CONTROL LINE 4. IT SHOULD BE"$"ABLE TO PRODUCE A 0-5V SQUARE WAVE. THE";%"NEXT SECTION WILL MEASURE THE FREQUEHE END OF THE":"INTERVAL.":J#"TO RESET THE TIMER,TYPE RTN. YOU CAN"v#"ENTER A NEW TIME WHEN THE CURSOR RE-"#"TURNS. TO RETURN TO THE MENU,TYPE RTN#"AGAIN."#7994#:4::"CONNECT DATA LINES 30 AND 31.":$6:"REFER TO USERAM."."15::"TYPE RTN TO CONTINUE";A$::4\"" THIS DEMO SHOWS HOW THE TIMERS CAN BE"""USED TO TIME INTERVALS FOR YOU. THE"""DEMO WILL PROMPT YOU FOR AN INTERVAL."""ENTER A TIME,IN SECONDS,AND HIT RTN."#"THE BELL WILL SOUND AT THAVE A VOLT METER,YOU CAN SEE":"THE ";Y!y"DATA LINES CHANGE FROM ON,(5V),TO":"OFF,";!z"(0V),AS YOU WRITE TO THAT CHANNEL."!{7994!10::"CONNECT DATA LINES 30 AND 31 BEFORE":"CONTINUING.":!""REFER TO USER'S MANUAL FOR PIN DIAGRRT DEMO ROUTINE";A$1 K:"LOADING DEMO ROUTINE"B P"RUN DEMO"D :4 HELLO PROGRAMG"CHECK OUT THE FOLLOWING PROGRAMS:"N8w" . SECURITY-AN EXPANSION IDEA.":#" . CLOCK-YOU CAN GUESS."%14(:" THESE ARE PROGRAMS WHICH YOU MAY WANT":"TO USE LATER ON." F20:"TYPE RETURN TO STAC !34,5"35,10&GX"THIS IS A DEMO OF A SECURITY SYSTEM.nY"IT SAMPLES CHANNEL 0 AND 1 ONLY.Z"CHANNEL 0 REPRESENTS THE FRONT DOOR":"SENSOR. ";["CHANNEL 1 REPRESENTS A HEAT ":"SENSOR IN THE BOILER ROOM. "\:"YOU CAN CHANGE20 5 HR(8)$ MN(7)0 SC(6)6 M HR;":";MN;":";SC;Z :" "` r 35,24:24:1} 34,10 "DOOR OPEN AT ";HR;":";MN;":";SC 34,5 35,10  35,24:24:1 34,10"FIRE AT ";HR;":";MN;":";SNT DOOR OPEN" @# JI1200:I9 M(DI1)252ī260? TW Y"BLOAD TIME.OBJ0"| ^"INPUT TIME HR,MN,SC ";HR,MN,SC _HR24350 `MN59350 aSC59350 h6,SC r7,MN 8,HR "HIT ANY KEY TO START TIME ";X$ 36864  "FIRE IN BOILER ROOM" 2 (DI1)253ī210> DFLAG0D V DFLAG1ī254_ 500k DFLAG1} FFLAG1ī260 530 FFLAG1 6:958 430  "":"":"" 11:8 ""FIRE IN THE BOILER ROOM" ,15 67:"FRO5ī50 90 DFLAG1150' 5003 DFLAG1< ""E 430R 6:958Y 7v :15:"FRONT DOOR OPEN"| (DI1)254ī150 FFLAG0 FFLAG1210 530 FFLAG1 "":"" 430 6::958 7 15: 8FFLAG0 9DFLAG0+ <7:12:A$:B AA$(A$,2)(A$,1)c FDI15360: SETUP FOR SLOT 4 PDI3,0: DIRECTION REGISTER SET FOR INPUT ZX(DI1): READ PORT A DATA LINES 0-7 [430 dX254İ141 nX253İ201 xX252İ251 X25` 940969000'600GA$" SECURITY IS INTACT "P345Z34,0e35,24k s10"INTERACTIVE STRUCTURES INC."10"DI09 DIGITAL INTERFACE"#10("USED AS A SECURITY SYSTEM")34,426:958 7       HELLORITY"AD,X*,$A$B$:*S$D*T$X0:II07:XXX((A$,8II,1)"1"):II:r*$23::"CH 0 -->";:10:A$" <-- CH 15";:75#::2:10:"DI09 PULSE DEMOC9:4:"TYPE RTN TO GO ON."qPU38144:GVPU3:SIGV3: START/GET/STOP{A1134,10:" ":PU: START THINGS GOING" COUNTS WIDTH (US) FREQ (HZ)"34,11:35,11 GV: GET 3 LO-ORDER9 AD25,B256: TIMER 3 HI-ORDER AND STARTc& (AD29)963110: WAIT FOR TIMEOUT 0 AD25,B256: START NEXT WITH MIN TIME DELAY: "";D (16384)1273110: DON'T STOPN 16368,0:3020 PULSE INPUT DISPLAY70B(A8) B0B655361F AD14,127:AD30,127: INTERRUPTS OFFU AD27,224 TIMER 2 CONTINUOUS @ 1US OUTPUT TO CL31 TIMER 3 COUNT PULSES ON DL30 AD20,208:AD21,248 16368,0: NO TYPE AHEAD  AD24,B256(B256): TIMER :7050 :34,2:" ":= :2:10:"DI09 TIMER DEMO"i 20:"TYPE RTN TO STOP AND RESET TIMER" 23:"TYPE RTN FOR MENU" 4:"ENTER INTERVAL IN SECONDS,(.5 60 THEN 3020 I(C$)3210089000: SET BACK TO INPUTS>lT 23::"CH 0 -->";:10:A$" <-- CH 15";: 5I:21:IO$((A$,I1,1)"1");:9400 TIMER FUNCTIONS DEMO :4:"TIMERS OR COUNTERS,(T/C) ? ";P$:P$"C"11000 P$"T"3001 I29004I015->5I:14:C$@H(C$)132199XM(C$)3I16:2199RC$"Z"C$"0"A$((" "A$,I1)"0"(A$,I2),16):9200:2950:2110\(C$"O")(C$"1")2110fA$((" "A$,I1)"1"(A$,I2),16):9200:2950p2110 A DI09 CHANNEL :7025N A$"0000000000000000":9200: SET TO ALL ZEROSo :2:10:"DI09 OUTPUT DEMO" 22:"RTN FOR NEXT CHANNEL." "CTRL-C FOR MENU." 4:10:"CHANNEL STATE" I015 12(I10):I;:21:IO$((A$,I1,1)"1")23:"TYPE RTN FOR MENU"7 2:10:"DI09 INPUT DEMO"^ 9000: READ CHANNELS 0 - 15 TO A$e 4 10:"CHANNEL STATE" I015 12(I10):I;:21:IO$((A$,1I,1)"1") $I )9400 .(16384)1281010 816368,0   SET "TIMER/COUNTER FUNCTION"? "MEASURE PULSE FREQUENCY"d "SETDI09 - A HANDY SUBROUTINE" "PAM16-D DRIVER FOR THE PAM16"  ""  READ DI09 CHANNELS :4:"READ OR WRITE,(R/W) ? ";P$:P$"W"2000 P$"R"1001 :7000 ETTER OF YOUR CHOICE:"% n3:18:A$- sJ07 x:I0L C$:(C$)0150f II1:A$(C$,1)JIo 130 J0ĺ"";:110 : J1000,10000,3000,4000,5000,6000 25 "READ/WRITE DATA LINES." "USE OF SHIFT REGISTER" D$"NOMON I,O,C" :A 9:"INTERACTIVE STRUCTURES INC."b (3:14::"*** DI09 ***": 26:"DEMONSTRATION DISKETTE - FEB 10, 1981" <"COPY, LIST AND USE CONTENTS AS NEEDED" F PA$:(A$)0ĺ:". "A$:80 d:"ENTER THE FIRST L/36607: 5AD163842256: DI09 IN SLOT 2]IO$(1):IO$(0)"ZERO":IO$(1)"ONE "|A%(2,20): SETDI09 PARAMSMAX20 D$(4): CONTROL DD$"BLOAD DI09P"D$"BLOAD SETDI09":SE94096D$"BLOAD PAM16-D,A$7E00":PA126256                    A$ Z36864 z }1& HR(8)2 MN(7)> SC(6)] "TIME ";HR;":";MN;":";SC;l " "| I1150:I 125 " THIS IS A CLOCK/REAL TIMER. IT USES" "TIMER 0. JUST SET UP THE START TIME AND"; "START THE TIMER. IT Wj TIME OF DAY PROG6"BLOAD TIME.OBJ0"?200H:5e"24 HOUR TIME IS USED.""TIME HR,MN,SC ";HR,MN,SC(HR;":";MN;":";SC)SC5930*MN5930+HR233026,SC<7,MNF8,HR P"HIT ANY KEY TO START ";  TYPE A '1' OR A '0',"F#u"TO WRITE TO THAT LINE. A RTN WILL MOVE"c#v"TO THE NEXT CHANNEL. "i#w#x" IF YOU HAVE A VOLT METER,YOU CAN SEE":"THE ";#y"DATA LINES CHANGE FROM ON,(5V),TO":"OFF,";#z"(0V),AS YOU WRITE TO THAT CHANNEL."${OUND,(REFER TO USER'S MANUAL). WATCH"V"g"THE EFFECT THIS HAS ON THE NEXT DISPLAY."`"p7994"q" THIS DEMO WRITES TO THE DATA LINES ON""r"CONNECTOR 0,(DL0-DL15). THE BLINKING""s"CURSOR INDICATES THE CHANNEL WHICH IS"#t"BEING WRITTEN TO.ONG WITH A"7!`"BINARY REPRESENTATION OF ALL SIXTEEN"e!a"CHANNELS AT THE BOTTOM OF THE DISPLAY."k!b!c" YOU CAN CHANGE THE STATUS OF A CHANNEL"!d"BY CONNECTING A DATA LINE TO GROUND."!e"FOR EXAMPLE,CONNECT DATA LINE 0,(DL0),TO";&"f"GR6,D:7,N: SETUP OUTPUT AND ADDRESS= C$"W"ČWPAM16:6100P $RPAM16:D(6)s ."INPUT DATA: ";D:"";C$:6100y W X ]" THIS DEMO READS THE DATA LINES OF CON-" ^"NECTOR ZERO,(DL0-DL15). THE STATUS IS" !_"INDICATED FOR EACH CHANNEL,ALı=C$(C$" ",1):C$"R"C$"W"ĺ"COMMAND ERROR":6100g"ADDRESS (0..63): ";N:N0N636120"LO OR HI 8 LINES: ";CC$:CC$(CC$" ",1):CC$"H"CC$"L"6130CC$"L"NN64C$"W"Ą"OUTPUT DATA (0..255): ";D:D0D2556150# OTHER ROUTINE,Y/N ? ";F$:F$"Y"50017F$"N"5555E16368,0Koap PAM16-D DEMO ks7150u::10:"PAM16-D DEMO"v8:"TYPE RTN FOR MENU."z34,3:" ":RPAM16126256:WPAM161262563:"READ OR WRITE: ";C$:(C$)0550: NOT READ COMMAND 6I;:6:A%(CMD,I)0ĺ"16";TA%(CMD,I)0ĺA%(CMD,I);~15:A%(CHANNEL,I);:25:A%(NUMBER,I)A%(CMD,I)48II1:5530: NOT EOL:"RUN YOUR ROUTINE AGAIN,Y/N ? ";F$:F$"Y"5505F$"N"5553%:"WRITE ANCMD,I)EOL,:"YOUR ROUTINE IS RUNNING."V8,1: SET WHICH INTEGER ARRAY TO USEnSE: CALL SETDI09 I1: SETUP TO GET INPUTS :10:"INPUT CHANNEL RESULTS":6"STEP";:6:"LENGTH";:15:"CHANNEL";:25:"VALUE"A%(CMD,I)165KEY15%TLE0KEY:MAXMAX2LE:LE[UNMAXĺ"OUTPUT TOO LARGE FOR WORD LENGTH.":5200uVN32767N(65536N)Z5260"DELAY TIME (MILISECONDS 1..32767): ";N:N1N327675250A%(NUMBER,I)NII1:IMAX5100: NEXT COMMAND |A%()ĺ"LENGTH OF WORD REQUIRES LOWER LSB.":5180sCA%(CMD,I)CC0N16ĺ"LENGTH OF WORD REQUIRES A LOWER LSB":5180FA%(CHANNEL,I)NPC$"W"Ą"OUTPUT VALUE (0..65535): ";N:N0N655355200QC$"W"5210RMAX0:KEYA%(CMD,I)CC1SKEY1N0LC$"D"Ą"LENGTH OF WORD,I.E.# BITS (1..16): ";N:N1N165140jN16N0: 0 FOR 16 BITS(A%(CMD,I)CCN: COMMAND*16+LEN2C$"D"5250<"CHANNEL # OF LEAST SIGNIFICANT BIT (0..31) ";N:N0N315180-AN32(A%(CMD,I)CC"STEP: ";I:"COMMAND (READ,WRITE OR DELAY): ";C$C(C$)05500ZSE: CALL SETDI09C$(C$" ",1):C$"R"C$"W"C$"D"ĺ"COMAND ERROR":5100C$"R"ĺ"READ"C$"W"ĺ"WRITE"C$"D"ĺ"DELAY" CC(WRITE(C$"W")DLY(C$"D")) *7100: SETDI09 ROUTINE DEMOG:2:10:"SETDI09 DEMO"Z34,3:" ":s SETDI09 COMMANDS:RD0:WRITE16:DLY32:EOL48CMD0:CHANNEL1:NUMBER2 SETUP SLOT NUMBERA%(0,0)4: SLOT 4I1: INIT STEP NUMBER1NG,"/"VARY THE PULSE FREQUENCY. THE RATE"Z"AT WHICH THEY PRINT CHANGES AS MORE""INTERRUPTS ARE HANDLED. RTN FOR MENU."34,(37)1:" ":(16384)128āI("A")40("A"):(I);:I:430016368,0:SI: STOP INTERRUPTS&28:(" "((270270A)),6);>(16384)1284040L16368,0nh::2:10:"DI09 PULSE DEMO"tr|"THE PULSES ARE CONTINUING TO BE SAMPLED,";"EVEN WHILE BASIC IS DOING OTHER THINGS.""WHILE THE CHARACTERS ARE PRINTIOUTPUT VALUE+A(6)256(7):AA14100>A1A:A65541AwA10ė:" NO PULSES IN 1/4 OF A SECOND";:4100A30ė:" PULSE RATE FASTER THAN RESOLUTION";:4100:6:(" "(A),6);16:(" "((1000000A270270)),6);NNEL1:NUMBER2( SETUP SLOT NUMBER?A%(0,0)4: SLOT 4ZI1: INIT STEP NUMBER"STEP: ";I:"COMMAND (READ,WRITE OR DELAY): ";C$(C$)05500SE: CALL SETDI09C$(C$" ",1):C$"R"C$"W"C$"D"ĺ"COMAND ERROR":5100  "::(16384)128āI("A")40("A"):(I);:I:4300^16368,0:SI: STOP INTERRUPTSdj SET DI09 ROUTINE DEMO:2:10:"SETDI09 DEMO"34,3:" ": SETDI09 COMMANDS:RD0:WRITE16:DLY32:EOL48CMD0:CHACONTINUED TO BE SAMPLED"F"EVEN WHILE BASIC IS DOING OTHER THINGS"Lu"WHILE THE CHARACTERS ARE PRINTING""VARY THE PULSE FREQUENCY. THE RATE""AT WHICH THEY PRINT CHANGES AS MORE""INTERRUPTS ARE HANDLED"34,(37)1:" ULSE RATE FASTER THAN RESOLUTION";:4100F:6:(" "(A),6);u16:(" "((1000000A270270)),6);28:(" "((270270A)),6);(16384)128404016368,0h::2:10:"DI09 PULSE DEMO"r|"THE PULSES ARE ":+PU: START THINGS GOINGU" COUNTS WIDTH (US) FREQ (HZ)"g34,11:35,11GV: GET OUTPUT VALUEA(6)256(7):AA14100A1A:A65541AA10ė:" NO PULSES IN 1/4 OF A SECOND";:4100(A30ė:" P 30 AD25,B256: START NEXT WITH MIN TIME DELAY=: "";bD (16384)1273110: DON'T STOPvN 16368,0:3020| PULSE INPUT DISPLAY::2:10:"DI09 PULSE DEMOPU38144:GVPU3:SIGV3: START/GET/STOPA1134,10:" 2 CONTINUOUS @ 1US OUTPUT TO CL31D TIMER 3 COUNT PULSES ON DL30^ AD20,208:AD21,248| 16368,0: NO TYPE AHEAD AD24,B256(B256): TIMER 3 LO-ORDER AD25,B256: TIMER 3 HI-ORDER AND START& (AD29)963110: WAIT FOR TIMEOUTCTIONS DEMO  :34,2:" ":@ :2:10:"DI09 TIMER DEMO"t 4:"ENTER INTERVAL IN SECONDS: ";C$:(C$)0ı A(C$):A13020 A603020 B(A8) B0B655361 AD14,127:AD30,127: INTERRUPTS OFF AD27,224! TIMER C$"O")(C$"1")2110LfA$((" "A$,I1)"1"(A$,I2),16):9200:2950Vp2110]Ip(C$)321009000: SET BACK TO INPUTST 23::"CH 0 -->";:10:A$" <-- CH 15";: 5I:21:IO$((A$,I1,1)"1");:9400  TIMER FUN 4:10:"CHANNEL STATE") I015V 12(I10):I;:21:IO$((A$,I1,1)"1")] Ig 2900s 4I015 >5I:14:C$ H(C$)132199 M(C$)3I16:2199 RC$"Z"C$"0"A$((" "A$,I1)"0"(A$,I2),16):9200:2950:2110\( 10:"CHANNEL STATE"% I015R 12(I10):I;:21:IO$((A$,1I,1)"1")Y $Ic )9400{ .(16384)1281010 816368,0   SET A DI09 CHANNEL A$"0000000000000000":9200: SET TO ALL ZEROS :2:10:"DI09 OUTPUT DEMO"DATA LINES"# "USE THE TIMERS"D "MEASURE PULSE FREQUENCY"i "SETDI09 - A HANDY SUBROUTINE" "PAM16-D DRIVER FOR THE PAM16"  ""  READ DI09 CHANNELS 2:10:"DI09 INPUT DEMO" 9000: READ CHANNELS 0 - 15 TO A$ 4THE FIRST LETTER OF YOUR CHOICE:"0 n3:18:A$8 sJ0B x:I0W C$:(C$)0150q II1:A$(C$,1)JIz 130 J0ĺ"";:110 : J1000,2000,3000,4000,5000,6000 25 "READ INPUT DATA LINES" "WRITE OUTPUT 56 D$"NOMON I,O,C" :E 9:"INTERACTIVE STRUCTURES INC."m (3:10::"** DI09/UI16/PAM16 **": 26:"DEMONSTRATION DISKETTE - FEB 10, 1981" <"COPY, LIST AND USE CONTENTS AS NEEDED" F PA$:(A$)0ĺ:". "A$:80! d:"ENTER _36863: $8FFF9AD163844256: DI09 IN SLOT 4aIO$(1):IO$(0)"ZERO":IO$(1)"ONE "A%(2,20): SETDI09 PARAMSMAX20 D$(4): CONTROL DD$"BLOAD DI09P"D$"BLOAD SETDI09":SE94096 D$"BLOAD PAM16-D,A$9400":PA1482     M-16,AN ADDRESSABLE"@*"ISOLATED INTERFACE. MAKE SURE IT IS"n*"CONNECTED PROPERLY BEFORE RUNNING THIS"{*"DEMO."**"THIS DEMO READS OR WRITES TO THE PAM-16.";*"SELECT READ OR WRITE,AND ANSWER THE "*"PROMPTS."*:*;+<OU";B)"CAN HAVE AS MANY STEPS AS YOU WANT IN":"YOUR ROUTINE."H)u)"THINK OF A STEP AS AN INSTRUCTION AND")"THE PROMPT AS THE PARAMETERS FOR IT.")7994):4)" THIS DEMO SHOWS HOW TO USE YOUR DI09 IN";*"CONNECTION WITH A PAHICH"6("WILL HELP YOU USE THE DI09. YOU CAN SET";g("UP FOR A READ OR A WRITE TO ANY CHANNEL.";("ALSO YOU CAN HAVE A DELAY TIME BETWEEN":"THESE STEPS."(" TO WRITE A ROUTINE SIMPLY TYPE ONE OF")"THE COMANDS,AND ANSWER THE PROMPTS. Y"NECTED TO CONTROL LINE 4. IT SHOULD BE"['"ABLE TO PRODUCE A 0-5V SQUARE WAVE. THE";'"NEXT SECTION WILL MEASURE THE FREQUENCY"'"AND THE PERIOD OF THE SIGNAL IN MICRO-":"SECONDS."'7994':4(" THIS DEMO IS OF A MINI LANGUAGE W"TURNS. TO RETURN TO THE MENU,TYPE RTN7&"AGAIN."A&7994o&:4::"CONNECT DATA LINES 30 AND 31.":&6:"REFER TO USER'S MANUAL FOR PIN DIAGRAM."&15:"TYPE RTN TO CONTINUE";A$&:4&" A SIGNAL GENERATOR SHOULD NOW BE CON-"*'OR YOU. THE":%"DEMO WILL PROMPT YOU FOR AN INTERVAL."f%"ENTER A TIME,IN SECONDS,AND HIT RTN."%"THE BELL WILL SOUND AT THE END OF THE":"INTERVAL.":%" TO RESET THE TIMER,TYPE RTN. YOU CAN"%"ENTER A NEW TIME WHEN THE CURSOR RE-")&7994T$10::"CONNECT DATA LINES 30 AND 31,(DL30-DL31)";:"BEFORE CONTINUING.":Z$$"REFER TO USER'S MANUAL FOR PIN DIAGRAM."$15::"TYPE RTN TO CONTINUE";A$::4$" THIS DEMO SHOWS HOW THE TIMERS CAN BE" %"USED TO TIME INTERVALS F"VARY THE PULSE FREQUENCY. THE RATE"P"AT WHICH THEY PRINT CHANGES AS MORE"~"INTERRUPTS ARE HANDLED. RTN FOR MENU."34,(37)1:" ":(16384)128āI("A")40("A"):(I);:I:430016368,0:SI: STOP INTERRUPTS(" "((270270A)),6);4(16384)1284040B16368,0dh::2:10:"DI09 PULSE DEMO"jr|"THE PULSES ARE CONTINUING TO BE SAMPLED,";"EVEN WHILE BASIC IS DOING OTHER THINGS.""WHILE THE CHARACTERS ARE PRINTING,"%UE!A(6)256(7):AA141004A1A:A65541AmA10ė:" NO PULSES IN 1/4 OF A SECOND";:4100A30ė:" PULSE RATE FASTER THAN RESOLUTION";:4100:6:(" "(A),6);16:(" "((1000000A270270)),6);28::2:10:"DI09 PULSE DEMO99:4:"TYPE RTN TO GO ON."gPU38144:GVPU3:SIGV3: START/GET/STOPqA1134,10:" ":PU: START THINGS GOING" COUNTS WIDTH (US) FREQ (HZ)"34,11:35,11GV: GET OUTPUT VALR/ AD25,B256: TIMER 3 HI-ORDER AND STARTY& (AD29)963110: WAIT FOR TIMEOUT 0 AD25,B256: START NEXT WITH MIN TIME DELAY: "";D (16384)1273110: DON'T STOPN 16368,0:3020 PULSE INPUT DISPLAY7075: B0B655361< AD14,127:AD30,127: INTERRUPTS OFFK AD27,224y TIMER 2 CONTINUOUS @ 1US OUTPUT TO CL31 TIMER 3 COUNT PULSES ON DL30 AD20,208:AD21,248 16368,0: NO TYPE AHEAD AD24,B256(B256): TIMER 3 LO-ORDE :7050 :34,2:" ":> :2:10:"DI09 TIMER DEMO"j 20:"TYPE RTN TO STOP AND RESET TIMER" 23:"TYPE RTN FOR MENU" 4:"ENTER INTERVAL IN SECONDS,(.5";:10:A$" <-- CH 15";: 5I:21:IO$((A$,I1,1)"1");:9400 TIMER FUNCTIONS DEMO :4:"TIMERS OR COUNTERS,(T/C) ? ";P$:P$"C"11000 P$"T"3001  I29004I015.>5I:14:C$AH(C$)132199YM(C$)3I16:2199RC$"Z"C$"0"A$((" "A$,I1)"0"(A$,I2),16):9200:2950:2110\(C$"O")(C$"1")2110fA$((" "A$,I1)"1"(A$,I2),16):9200:2950p2110T A DI09 CHANNEL :7025O A$"0000000000000000":9200: SET TO ALL ZEROSp :2:10:"DI09 OUTPUT DEMO" 22:"RTN FOR NEXT CHANNEL." "CTRL-C FOR MENU." 4:10:"CHANNEL STATE" I01512(I10):I;:21:IO$((A$,I1,1)"1")23:"TYPE RTN FOR MENU"8 2:10:"DI09 INPUT DEMO"_ 9000: READ CHANNELS 0 - 15 TO A$f 4 10:"CHANNEL STATE" I015 12(I10):I;:21:IO$((A$,1I,1)"1") $I )9400 .(16384)1281010 816368,0   SE "TIMER/COUNTER FUNCTION"@ "MEASURE PULSE FREQUENCY"e "SETDI09 - A HANDY SUBROUTINE" "PAM16-D DRIVER FOR THE PAM16"  ""  READ DI09 CHANNELS :4:"READ OR WRITE,(R/W) ? ";P$:P$"W"2000 P$"R"1001 :7000 LETTER OF YOUR CHOICE:"& n3:18:A$. sJ08 x:I0M C$:(C$)0150g II1:A$(C$,1)JIp 130 J0ĺ"";:110 : J1000,10000,3000,4000,5000,6000 25 "READ/WRITE DATA LINES." "USE OF SHIFT REGISTER" D$"NOMON I,O,C" :B 9:"INTERACTIVE STRUCTURES INC."c (3:14::"*** DI09 ***": 26:"DEMONSTRATION DISKETTE - FEB 10, 1981" <"COPY, LIST AND USE CONTENTS AS NEEDED" F PA$:(A$)0ĺ:". "A$:80 d:"ENTER THE FIRST .36863: $8FFF9AD163844256: DI09 IN SLOT 4aIO$(1):IO$(0)"ZERO":IO$(1)"ONE "A%(2,20): SETDI09 PARAMSMAX20 D$(4): CONTROL DD$"BLOAD DI09P"D$"BLOAD SETDI09":SE94096D$"BLOAD PAM16-D,A$300":PA3256              !! ! ! ! ! !!     ' OR A '0',";"u"TO WRITE TO THAT LINE. A RTN WILL MOVE"X"v"TO THE NEXT CHANNEL. "^"w"x" IF YOU HAVE A VOLT METER,YOU CAN SEE":"THE ";"y"DATA LINES CHANGE FROM ON,(5V),TO":"OFF,";"z"(0V),AS YOU WRITE TO THAT CHANNEL.""{7994I# TO USER'S MANUAL). WATCH"K!g"THE EFFECT THIS HAS ON THE NEXT DISPLAY."U!p7994!q" THIS DEMO WRITES TO THE DATA LINES ON"!r"CONNECTOR 0,(DL0-DL15). THE BLINKING"!s"CURSOR INDICATES THE CHANNEL WHICH IS" "t"BEING WRITTEN TO. TYPE A '1, `"BINARY REPRESENTATION OF ALL SIXTEEN"Z a"CHANNELS AT THE BOTTOM OF THE DISPLAY."` b c" YOU CAN CHANGE THE STATUS OF A CHANNEL" d"BY CONNECTING A DATA LINE TO GROUND." e"FOR EXAMPLE,CONNECT DATA LINE 0,(DL0),TO";!f"GROUND,(REFERSETUP OUTPUT AND ADDRESS2C$"W"ČWPAM16:6100E$RPAM16:D(6)h."INPUT DATA: ";D:"";C$:6100nWtX]" THIS DEMO READS THE DATA LINES OF CON-"^"NECTOR ZERO,(DL0-DL15). THE STATUS IS" _"INDICATED FOR EACH CHANNEL,ALONG WITH A"(C$" ",1):C$"R"C$"W"ĺ"COMMAND ERROR":6100\"ADDRESS (0..63): ";N:N0N636120"LO OR HI 8 LINES: ";CC$:CC$(CC$" ",1):CC$"H"CC$"L"6130CC$"L"NN64C$"W"Ą"OUTPUT DATA (0..255): ";D:D0D25561506,D:7,N: OTHER RUN ? ";F$:F$"Y"ī50010F$"N"5555>16368,0DoZp PAM16-D DEMO ds7150u::10:"PAM16-D DEMO"v8:"TYPE RTN FOR MENU."z34,3:" ":RPAM163256:WPAM1632563:"READ OR WRITE: ";C$:(C$)0ı2C$LUE"0A%(CMD,I)165550: NOT READ COMMAND OI;:6:A%(CMD,I)0ĺ"16";mA%(CMD,I)0ĺA%(CMD,I);15:A%(CHANNEL,I);:25:A%(NUMBER,I)A%(CMD,I)48II1:5530: NOT EOL" STEPS COMPLETED,AN(NUMBER,I)N3II1:IMAX5100: NEXT COMMAND E|A%(CMD,I)EOLo8,1: SET WHICH INTEGER ARRAY TO USESE: CALL SETDI09 I1: SETUP TO GET INPUTS :10:"INPUT CHANNEL RESULTS":6"STEP";:6:"LENGTH";:15:"CHANNEL";:25:"VAEQUIRES LOWER LSB.":5180_CA%(CMD,I)CC0N16ĺ"LENGTH OF WORD REQUIRES A LOWER LSB":5180sFA%(CHANNEL,I)NPC$"W"Ą"OUTPUT VALUE (0..65535): ";N:N0N655355200Z5260"DELAY TIME (MILISECONDS 1..32767): ";N:N1N327675250 A%C$"D"Ą"LENGTH OF WORD,I.E.# BITS (1..16): ";N:N1N165140`N16N0: 0 FOR 16 BITS(A%(CMD,I)CCN: COMMAND*16+LEN2C$"D"5250<"CHANNEL #,LEAST SIGNIFICANT BIT(0..31)";N:N0N315180AN32(A%(CMD,I)CC)ĺ"LENGTH OF WORD RI:"COMMAND (READ,WRITE OR DELAY): ";C$9(C$)05500PSE: CALL SETDI09C$(C$" ",1):C$"R"C$"W"C$"D"ĺ"COMAND ERROR":5100C$"R"ĺ"READ"C$"W"ĺ"WRITE"C$"D"ĺ"DELAY" CC(WRITE(C$"W")DLY(C$"D"))N0B 7100: SETDI09 ROUTINE DEMO=:2:10:"SETDI09 DEMO"P34,3:" ":i SETDI09 COMMANDS:RD0:WRITE16:DLY32:EOL48CMD0:CHANNEL1:NUMBER2 SETUP SLOT NUMBERA%(0,0)4: SLOT 4I1: INIT STEP NUMBER'"STEP: "; TIMER P(DI098),255- U SET HIGH TIMER? Z(DI099),255W _ SET DL0 TO 0UTPUTg d(DI093),1 n"HIT AS MANY KEYS AS TRANSITIONS";A$ xI(A$) I0ī200 II1 (DI091),1 (DI091),0 130 LB255(DI098) HB(255 *"THE STRING AND TOGGLES THE OUTPUT LINE"Z +"THAT MANY TIMES. THE TIMER COUNTS THE"{ ,"TRANSITIONS IN THE LINE": 2SLOT4: SLOT # FOR DI09 <DI0916384SLOT256: CARD ADDRESS A SET TIMER 1 MODE TO COUNT F(DI0911),32 K SET LOWaP DEMO ON COUNTING TRANSITIONS ON DATA LINE 0, USING TIMER 1 IN COUNT MODEVs:"CONNECT DL0 TO DL14"y"REFER TO USER'S MANUAL"#$("THIS WILL COUNT THE TIMES YOU HIT A KEY")"THE PROGRAM CALCULATES THE LINGTH OF",  ! RTN TO CONTINUE";A$*> *?M*(#AD2,0:AD3,0: SET DATA DIRECTION REG]*2# TO INPUTSu*<#X1(AD):X2(AD1)*F#XX1:9100:B$A$*P#XX2:9100:A$A$B$*Z#*#A$"":II07:A$(X127)A$:X256(X127)XX:II:*# SET OUTPUTS TO A$++#RESSABLE"5)"ISOLATED INTERFACE. MAKE SURE IT IS"c)"CONNECTED PROPERLY BEFORE RUNNING THIS"p)"DEMO."v))"THIS DEMO READS OR WRITES TO THE PAM-16.";)"SELECT READ OR WRITE,AND ANSWER THE ")"PROMPTS."):);)<*="TYPECAN HAVE AS MANY STEPS AS YOU WANT IN":"YOUR ROUTINE."=(j("THINK OF A STEP AS AN INSTRUCTION AND"("THE PROMPT AS THE PARAMETERS FOR IT."(7994(:4(" THIS DEMO SHOWS HOW TO USE YOUR DI09 IN"; )"CONNECTION WITH A PAM-16,AN ADD"WILL HELP YOU USE THE DI09. YOU CAN SET";\'"UP FOR A READ OR A WRITE TO ANY CHANNEL.";'"ALSO YOU CAN HAVE A DELAY TIME BETWEEN":"THESE STEPS."'" TO WRITE A ROUTINE SIMPLY TYPE ONE OF"'"THE COMANDS,AND ANSWER THE PROMPTS. YOU";7(" CONTROL LINE 4. IT SHOULD BE"P&"ABLE TO PRODUCE A 0-5V SQUARE WAVE. THE";&"NEXT SECTION WILL MEASURE THE FREQUENCY"&"AND THE PERIOD OF THE SIGNAL IN MICRO-":"SECONDS."&7994&:4&" THIS DEMO IS OF A MINI LANGUAGE WHICH"+'TO RETURN TO THE MENU,TYPE RTN,%"AGAIN."6%7994d%:4::"CONNECT DATA LINES 30 AND 31.":%6:"REFER TO USER'S MANUAL FOR PIN DIAGRAM."%15:"TYPE RTN TO CONTINUE";A$%:4%" A SIGNAL GENERATOR SHOULD NOW BE CON-"&"NECTED TOE"/$"DEMO WILL PROMPT YOU FOR AN INTERVAL."[$"ENTER A TIME,IN SECONDS,AND HIT RTN."$"THE BELL WILL SOUND AT THE END OF THE":"INTERVAL.":$" TO RESET THE TIMER,TYPE RTN. YOU CAN"$"ENTER A NEW TIME WHEN THE CURSOR RE-"%"TURNS. 10::"CONNECT DATA LINES 30 AND 31,(DL30-DL31)";:"BEFORE CONTINUING.":O#~#"REFER TO USER'S MANUAL FOR PIN DIAGRAM."#15::"TYPE RTN TO CONTINUE";A$::4#" THIS DEMO SHOWS HOW THE TIMERS CAN BE"$"USED TO TIME INTERVALS FOR YOU. TH(DI099))256 ANSHBLB; "YOU TYPED ";ANS;" KEYS."O "AGAIN Y/N";A$_ A$"Y"ī10S"VARY THE PULSE FREQUENCY. THE RATE"P"AT WHICH THEY PRINT CHANGES AS MORE"~"INTERRUPTS ARE HANDLED. RTN FOR MENU."34,(37)1:" ":(16384)128āI("A")40("A"):(I);:I:430016368,0:SI: STOP INTERRUPTS(" "((270270A)),6);4(16384)1284040B16368,0dh::2:10:"DI09 PULSE DEMO"jr|"THE PULSES ARE CONTINUING TO BE SAMPLED,";"EVEN WHILE BASIC IS DOING OTHER THINGS.""WHILE THE CHARACTERS ARE PRINTING,"%UE!A(6)256(7):AA141004A1A:A65541AmA10ė:" NO PULSES IN 1/4 OF A SECOND";:4100A30ė:" PULSE RATE FASTER THAN RESOLUTION";:4100:6:(" "(A),6);16:(" "((1000000A270270)),6);28::2:10:"DI09 PULSE DEMO99:4:"TYPE RTN TO GO ON."gPU38144:GVPU3:SIGV3: START/GET/STOPqA1134,10:" ":PU: START THINGS GOING" COUNTS WIDTH (US) FREQ (HZ)"34,11:35,11GV: GET OUTPUT VALR/ AD25,B256: TIMER 3 HI-ORDER AND STARTY& (AD29)963110: WAIT FOR TIMEOUT 0 AD25,B256: START NEXT WITH MIN TIME DELAY: "";D (16384)1273110: DON'T STOPN 16368,0:3020 PULSE INPUT DISPLAY7075: B0B655361< AD14,127:AD30,127: INTERRUPTS OFFK AD27,224y TIMER 2 CONTINUOUS @ 1US OUTPUT TO CL31 TIMER 3 COUNT PULSES ON DL30 AD20,208:AD21,248 16368,0: NO TYPE AHEAD AD24,B256(B256): TIMER 3 LO-ORDE :7050 :34,2:" ":> :2:10:"DI09 TIMER DEMO"j 20:"TYPE RTN TO STOP AND RESET TIMER" 23:"TYPE RTN FOR MENU" 4:"ENTER INTERVAL IN SECONDS,(.5";:10:A$" <-- CH 15";: 5I:21:IO$((A$,I1,1)"1");:9400 TIMER FUNCTIONS DEMO :4:"TIMERS OR COUNTERS,(T/C) ? ";P$:P$"C"11000 P$"T"3001  I29004I015.>5I:14:C$AH(C$)132199YM(C$)3I16:2199RC$"Z"C$"0"A$((" "A$,I1)"0"(A$,I2),16):9200:2950:2110\(C$"O")(C$"1")2110fA$((" "A$,I1)"1"(A$,I2),16):9200:2950p2110T A DI09 CHANNEL :7025O A$"0000000000000000":9200: SET TO ALL ZEROSp :2:10:"DI09 OUTPUT DEMO" 22:"RTN FOR NEXT CHANNEL." "CTRL-C FOR MENU." 4:10:"CHANNEL STATE" I01512(I10):I;:21:IO$((A$,I1,1)"1")23:"TYPE RTN FOR MENU"8 2:10:"DI09 INPUT DEMO"_ 9000: READ CHANNELS 0 - 15 TO A$f 4 10:"CHANNEL STATE" I015 12(I10):I;:21:IO$((A$,1I,1)"1") $I )9400 .(16384)1281010 816368,0   SE "TIMER/COUNTER FUNCTION"@ "MEASURE PULSE FREQUENCY"e "SETDI09 - A HANDY SUBROUTINE" "PAM16-D DRIVER FOR THE PAM16"  ""  READ DI09 CHANNELS :4:"READ OR WRITE,(R/W) ? ";P$:P$"W"2000 P$"R"1001 :7000 LETTER OF YOUR CHOICE:"& n3:18:A$. sJ08 x:I0M C$:(C$)0150g II1:A$(C$,1)JIp 130 J0ĺ"";:110 : J1000,10000,3000,4000,5000,6000 25 "READ/WRITE DATA LINES." "USE OF SHIFT REGISTER" D$"NOMON I,O,C" :B 9:"INTERACTIVE STRUCTURES INC."c (3:14::"*** DI09 ***": 26:"DEMONSTRATION DISKETTE - FEB 10, 1981" <"COPY, LIST AND USE CONTENTS AS NEEDED" F PA$:(A$)0ĺ:". "A$:80 d:"ENTER THE FIRST .36863: $8FFF9AD163844256: DI09 IN SLOT 4aIO$(1):IO$(0)"ZERO":IO$(1)"ONE "A%(2,20): SETDI09 PARAMSMAX20 D$(4): CONTROL DD$"BLOAD DI09P"D$"BLOAD SETDI09":SE94096D$"BLOAD PAM16-D,A$300":PA3256"" " " " " """""""""