tarbell cassette interface - amaus.org cassette... · the tarbell cassette interface tarbell...

Click here to load reader

Post on 27-Aug-2018

267 views

Category:

Documents

1 download

Embed Size (px)

TRANSCRIPT

  • THE

    TARBELL

    CASSETTE

    INTERFACE

    TARBELL ELECTRON ICS20620 S. Leapwood Ave., Suite P

    Carson, California 90746(213) 538-4251

  • TABLE OF CONTENTS

    PAGE

    1. Specifications2. Interface History and Sales Pitch3. Selecting a Cassette Unit for Digital RAcording4. The Kansas City (Byte!Lancaster/CUTS) Format

    5. Parts List6. Assembly Instructions7. Assembly Drawings8. Modifications9. Soldering, Cleaning, and Installation Notes10. Initial Adjustment Instructions

    11. Operating Instructions12. Bootstrap and Sync Code Generator Programs13. Output Routine With Checksum14. Input Routine With Checksum15. How to Save and Load Data From a BASIC Program16. Controlling the Start-Stop Function

    17. Theory of Operation - Output Section18. Theory of Operation - Input Section19. Schematic - Output Section20. Schematic - Input Section21. Timing Diagram22. Pin Function List

    23. If You Have Problems24. Ideas For Using the Cassette Interface25. Modifications on Cassette BASIC CSAVE and CLOAD26. Processor Technology Software Package #1 Modified27. Writing Programs For the Cassette Interface28. Interrupt Control29. PHI-DECK Adapter Information

    30. 74f.LOO, 7403, 74L11, 74()4., 74L04, 7406, 7425, 7408, 74L3031. 74L73 , 7473, 74L7432. 74L75 , 74L8633. 7496, DM813134. 74L164 , NE55535. 8T20

    36. Customer Evaluation and Registration

    January 14, 1977

  • TMd:H.lL ELECl H~)I\ilC3'-"""""""0 c L ~ .. ",~ dr'" (:, .. ;'.,.. f.)LU\..)L d. COj.JhdO -\,8., v . ,." I

    Carson, Cdi[f.>rnia 90746(213) 5384251

    THE TARBELL CASSETTE INTERFACE (FOR ALTAIR 8800 USERS)

    SPEED: UP TO 540 BYTES PER SECOND (2200 BITS PER INCH).187 BYTES PER SECOND FOR TARBELL STANDARD 800 BITS/INCH.30 BYTES PER SECOND FOR "BYTE/LANCASTER" STANDARD.

    ENCODING METHOD: PHASE-ENCODED (EXCLUSIVE-OR OF CLOCK AND DATA).SELF-CLOCKING (CLOCK VARIES ALONG VITH TAPt SPEED).USED ON MY OWN SYSTEM FOR THE LAST 4 YEARS.CAN BE USED TO GENERATE "BYTE/LANCASTER" TAPIS.

    CASSETTE. WILL WORK WITH MOST AUDIO CASSETTE UNITS. MAY BE ADAPTEDTO AUTOMATIC DIGITAL CASSETTE UNITS. WILL ALSO WORKWITH REGULAR REEL-REEL TAPE RECORDERS. I HAVE BEE~ USINGA REALISTIC (RADIO SHACK) CTR-19 AND A u.c. PENNY 6536'($39.95). TAPE SHOULD BE OF LOW-NOISE TYPE.

    8192 BYTE LOAD TIME. 15 SEC' 540 BYTES PER SECOND.43 SEC' 187 BYTES PER SECOND.4 MINUTES' 30 BYTES PER SECOND.

    DEVICE-CODE EASILY SELECTED WITH ON-BOARD DIP-SVITCH.

    STATUS. 4 EXTRA STATUS LINES AVAILABLE FOR INPUT.

    CONTROL: 4 EXTRA CONTROL LINES AVAILABLE FOR OUTPUT" WHICH MAYBE USED TO DRIVE RELAYS FOR EXTRA CASSETTE UN11S;2 SPARE IC SLOTS TO LET YOU DO YOUR OVN THING.

    COMPATIBILITY: PLUGS DIRECTLY INTO ALTAIR 8800 OR IMSAI 8080.HAS SERIAL-PARALLEL AND PARALLEL-SERIAL CONVERSIONON BOARD. PATCHES PROVIDED FOR POPULAR SOFT_ARE.

    SOFTWARE: COMES WITH COMPLETE SET OF INPUT/OUTPUT SUBROUTI~ES"BOOTSTRAP" AND "BYTE STANDARD" (LANCASTER) SOFTWARE.

    COST: S120 rOR COMPLETE KIT" S175 ASSEMBLED AND CHECKED-OUT.

    MANUALsASSEMBLY INSTRUCTIONS AND DRAWING" PARTS AND PIN FUNCTION LISTSSOLDERING, CLEANING" AND INSTALLATION NOTESI OPERATING INSTRUCTIONSINITIAL AD~STMENT PROCEDURES, INPUT/OUTPUT ROUTINES WITH CHECkSUMBOOTSTRAP PROGRAM AND TEST-STREAM GE~ERATOR PROGRAM .

    PARTS IALL RESISTORS" CAPACITORS, AND INTEGRATED CIRCUITSCASSETTE CABLE, RIBBON CABLE" AND DIP CONNECTORLOW-NOISE CASSETTE WITH TEST STREAMDOUBLE-SIDED BOARD WITH PLATED-THRU HOLES AND GOLD EDGE CONHEeTOR

    -. ~.~

    WARRANTY I IF NOT COMPLETELY SATISFIED, RETURN BOARD FOR REFUNDOR FREE REPAIR WITHIN 90 DAYS AFTER PURCHASE.

    FIRST DELIVERIES WERE MADE IN SEPTEMBER, 1975. DELIVERY IS1 TO 3 WI&~S AFTER RECEIVING ORDER. THE 2S-PAGE MANuAL IS AVAILABLEAT $4. 'CAtIFORNIA RESIDENTS PLEASE ADD 61 SALES TAX. MAJ

  • HISTORY AND SALES PITCH

    I HAVE BEEN USING AN INEXPENSIVE AUDIO CASSETTE RECORDER INMY HOME-DESIGNED COMPUTER SYSTEM SINCE 1972. 1 HAVE OVER600 FILES ON CASSETTESI MOSTLY ABOUT 4 ~YTES EACH.MY ESTIMATE IS THAT THE ERROR RATE IS LESS THAN 1 ERROR IN110001000 BITS. I SAY THIS BECAUSE I CAN USUALLY RECORD 304 KBYTE FILES ON ONE SIDE OF A C-60 CASSETTE WITHOUT ANY ERRORS.THIS INTERFACE GAVE ME VERY GOOD SERVICE WHILEI WAS WRITING THE DISX OPERATING SYSTEM FOR MY 500 XBYTE DISK.SINCE I STARTED USING MY DISX SYSTEM A FEW YEARS AGOI THECASSETTE HAS SERVED AS BACKUP STORAGE - A RELIABLE PLACETO STORE DATA AND PROGRAMS AFTER THEY ARE DEBUGGED.

    THE ENCODING METHOD I USE IS VERY SIMPLEI AND HAS BEEN INUSE IN INDUSTRY FOR QUITE SOME TIME. PICTURE A SHIFT REGISTERWHICH IS LOADED WITH THE DATA TO BE RECORDED. THE REGISTERIS THEN CLOCKED WITH A SQUARE WAVE. THE OUTPUT OF THE SHIFTREGISTER IS EXCLUSIVE-ORED WITH THE CLOCXI PRODUCING THEBI-PHASE DATA. THIS DATA GOES DIRECTLY TO THE CASSETTERECORDER'S INPUT. THE MOST DIFFICULT PART OF THE PROCESS 15RECOVERING THE DATA. MANY LONG HOURS WERE SPENT STUDYING THISPROBLEM AND TRYING DIFFERENT METHODS. IN THE ORIGINAL INTERFACETHIS WAS ACCOMPLISHED WITH A 760 HIGH-SPEED COMPARATORI A 14121NON-RETRIGGERABLE ONE-SHOTI AND A DOUBLE-GLITCH GENERATOR HADEWITH AN EXCLUSIVE-OR GATE. SINCE THENI THE 8T20 HAS BEEN DEVELOPEDJWHICH COMBINES THESE THREE FUNCTIONS ON A SINGLE CHIPI AND IS THEUNIT USED IN THE ALTAIR INTERFACE.

    THE PRESENT DESIGN IS EVEN MORE RELIABLE THAN THE PREVIOUS ONEIAND IS CAPABLE OF RECORDING AND RECOVERING ERROR-FREE DATA ATA RATE OF 540 BYTES PER SECOND ON A STANDARD AUDIO CASSETTERECORDER. (YESI THAT IS OVER 2200 BITS PER INCHI) I AH STILLIHOWEVERI ENCOURAGING USERS TO EXCHANGE DATA RECORDED AT 181BYTES PER SECOND C1500 BITS PER SECONDI 800 BITS PER INCH).THE MAIN ADVANTAGE OF THIS METHOD OVER OTHERS IS IT'S ABILITY TOWITHSTAND A LARGE AMOUNT OF WOW AND FLUTTERI WHICH MAY BE INTRODUCEBY CHEAP RECORDERSI AND STILL RECOVER THE DATA RELIABLY. THISFEATURE STEMS FROM THE SELF-CLOCKING NATURE OF THE RECORDED SIGNAL:THE RECOVERED CLOCK VARIES RIGHT ALONG WITH THE DATAl SO THAT THtSPEED VARIATIONS ARE ESSENTIALLY IGNORED. THE MAIN DISADVANTAGEOF THIS METHOD IS THAT IT REQUIRES GOOD LOW-NOISE TAPEI AND ADECENT FREQUENCY RESPONSE ON THE CASSETTE UNIT. THE CASSETTE UNITI'VE BEEN USING LATELY Cu.C. PENNY 16536) HAS A FREQUENCY RESPONS80-81000 HZ. THE MOST IMPORTANT PART 15 THE HIGH END. THESEREQUIREMENTS ARE DUE TO THE HIGH SPEED OF THE INTERFACE 1 AND WOULDBE THE SAME FOR ANY HIGH SPEED DEVICE.

    THE SPEED MAY NOT SEEM VERY IMPORTANT TO YOU NOW. BUT A GOODPORT ION OF YOUR TIME IS GO ING TO BE SPENT SAV ING AND LOAD INGDATAl PROGRAMSI AND OTHER TEXT. THERE IS A WORLD OF DIFFERENCEBETWEEN LOADING BASIC AT SAYI 30 BYTES/SEC C4 MINUTES), ANDAT 187 BYTES/SEC C40 SEC). IT DOESN'T SEEM LIKE MUeHl BUTWHEN YOU HAVE TO DO IT OVERI AND OVER, AND OVER IT GETSTO BE A BIT MUCH. ESPECIALLY WHEN YOU'RE DEVELOPING YOUR OWNPROGRAMSI AND THEY TEND TO RUN AMUCK AND WIPE OUT CORE.THINK ABOUT ITI THEN BUY THE TARBELL CASSETTE INTERFACE.THE ONLY METHOD PROVEN WITH TIME. ASX YOUR FRIEND WHO HAS ONE.

    2

  • SELECTING A CASSETTE UNIT FOR DIGITAL RECORDING

    FIRST OF ALL~ THE MOST EXPENSIVE CASSETTE RECORDERSARE NOT NECESSARILY THE BEST FOR RECORDING DIGITAL DATA.THERE ARE SEVERAL FACTORS THAT COMBINE TO HAKE A GOODUNIT FOR THE HOBBYIST'

    1. IT SHOULD HAVE A GOOD HIGH-FREQUENCY RESPONSE,PREFERABLY UP TO AT LEAST B,OOO HZ.

    2. IT SHOULD HAYE A TONE CONTROL, SO THAT THE INHERENTFREQUENCY RESPONSE HAY BE REALIZED. '

    3. ALTHOUGH AUTOMAT IC VOLUME CONTROL IS MORE CONVENIENTFROM AN OPERATIONAL POINT OF VIEW, IT ALSO REQUIRESA FEW SECONDS OF SETTLING TIME BEFORE STARTING to RECORD.

    4. IF IT DOES NOT HAVE AUTOMATIC VOLUME CONTROL, IT IS GOOD TOHAVE A RECORDING LEYEL METER. THIS ALLOWS EASlER ADJUSTMENTFOR THE CORRECT RECORDING LEYEL.

    5. IT IS YERY IMPORTANT TO HAYE A DIGITAL COUNTER. THISMAKES IT POSSIBLE TO QUICKLY LOCATE THE DESIRED PROGRAMAMONG SEVERAL.

    6. IT SHOULD BE CAPABLE OF RUNNING DIRECTLY ON THE AC LINE.BATTERIES TEND TO MAKE THE MOTOR GET SLOWER AS THEY YEAR.

    7. IT 15 HANDY TO HAVE AN AUXILLIARY INPUT, SO THAT A FAIRLYHIGH LEVEL MAY BI FED TO TaE RECORDER, AND NOlSE kEPt-TOA MINIMUM.

    8. A REMOTE INPUT ~CK IS VALUABLE TO CONTROL START-STOPDURING ASSEMBLER AND COMPILER OPERATIONS.

    9. JACKS FOR MIC~ AUX, REMOTE, AND EARPHONE ARE USUALLY INGLVE>ID,BUT YOU SHOULD CHECK TO MAKE SURE THEy ARE THERE~ ANYfAY.. .

    10. LOW WOW AND FLUTTER CHARACTERISTICS ARE IMPORTANT, BUT AREHUCH MORE IMPORTANT WHEN USING AN ASYNCRONOUS INTERfACE,WHICH IS NOT SELF-CLOCKING.

    11. IF IT IS DESIRED TO DO AUTOMATIC REWIND, FAST-FORWARD,AND RECORD/PLAYBACK SWITCHING UNDER PROGRAM CONTROL, YOUMUST PURCHASE A RECORDER THAT HAS THESE FACILITIES. A_OTHERFEATURE TO LOOK FOR ON THIS TYPE OF UNIT IS A-WAY to ~EP''TRACK OF WHERE YOU ARE ON THE CASSETTE TAPE.

    12. PEOPLE HAVE EXPERIENCED PROBLEMS WITH PANASONIC RECORDERS.I AM PRESENTLY RECOMMENDING THE J.C. PENNEY MODEL 6536 - -AT $39.95 AS THE BEST BUY 1 KNOW,' AND SEVERAL PEOPLE AREUSING THEM WITH MY INTERFACE WITH GOOD RESULTS. OTHER .,BRANDS THAT I KNOW HAYE BEEN SUCCESSFUL ARE SONY ANO"REALlSTIC.

    , ..- ...

    OF COURSE, NONE OF THE ABOVE ITEMS IS ABSOLUTELY NECESSARY FORRECORDING DIGITAL DATA ON AN AUDIO CASSETTE. BUT THE MORE OFTHESE REQUIREMENTS THAT ARE FILLED, THE MORE CAPABLE YOUR-UNIT WILL BE, AND THE EASIER IT WILL 81 TO USE.

    3

  • USING THE TARBIJ..L CAGSETTE INTE..TU'ACE ]'OR 'rRE KANSAS CITY ]'OR11AT

    Some time ago, there was a meeting of various cassette interfacemanl.1faet;urern to deter.nine a. ct1"ul

  • CASSETTE INTERFACE P;\I1T S LIST

    INTEGHATED CIHCUITSREF NOS DESCRIPTION QTY PT NO +S GND -5

    1 QUAD 2-INPUT AND 1 7408 1/~ 72 DUAL .J-}( FLIP-FLOP 1 71J73 4 1 13 8-BIT SHIFT nEG ISTER 1 7'~LI64 14 74,,23 DUAL TYPE-D FL IP-FLOP 2 74L7/~ 14 76 5 "VOLT REGULATOR 1 U13091: INVEHTEH 1 7 /104 1/1 '/21 .. 27 s-n IT SHIFT HEGISTER 2 7/.. 9C) 5 1222 *T II'IER 1 NE555 8 126 QUAD 2- INPUT NAND 1 7/1LOO 14 728 . DUAL 4- INPUT Non 1 7/j25 14 730 QUAD EXC LUS IV1:>-OR 1 74L86 14 732 6-BIT COl~P{l.FMTORS 1 01'18131 16 B34 QUAD LATCH 1 7L!L75 5 1235 HEX INVERTER BUFF'ER O/C 1 7406 14 7

    Cl"C5"ClO-CI5 1 MFD CAPAC ITORC6 .02 1'1I"D CAPACITORC7 .033 011 $039 lWD CAP,;.C ITORC8 *.01 NrD CAP/-\C ITonC9 28 OR 25 1"11"1) C/,;PAC ITORC16 2200 PI" CAPACITORC17 .0 I l'JFD CI-iPAC ITon

    RIR2R3R4R5R6R7R8R9RIO-RI7

    CRICR2CR3

    51

    "1PIPCICSI

    2.!! HOHN RESISTOR (RED"Yl:;LLO\oJ"H)::O)4.7 KOHN RESISTOR (YELLOW"VIOLETJRED)I. fi KOIIM RES ISTOR (BROWN .. GHEEN .. RED)330 OHM RESISTOR (ORANGE"ORANGE"BROWN)220,OHM RESISTOR lW (RED"RED"BROWN)

    *27 KOHM RESISTOR (RED"VIOLET .. ORANGE)*APPROX 10 !-;QHM RES ISTOR CBRO\lTN,BLA.CK.. ORANGE)

    50 EOHN POTENT IONETER100 OHM RES ISTOR CBHOWN"Bl.J'I.G K"HROWN)1 KaHN RES lSTOR (BRDWN"Bl.ACh.. RED)

    IN914 SIGNAL DIODEIN750 4.7 VOLT ZENEn DIODEl.IGHT-EMITTING DIODE

    DIP-SWITCHDIP-SOCKETDIP-PLUG2 CASSETTE COAX CABLESFLAT RIBBON CABl.EPRINTED CIRCUIT BOARDSCOTCH LOW-NOISE CASSETTETO-3 I NSUl...AT ING WAFER.2 SETS OF 4-40 NUTS" SCREWS" AND WASHERS

    * THE ITEMS MARXED WITH AN ASTERISK ARE MATCHED AND BAGGED SEPARATELY.74LS MAY BE SUBSTITUTED FOR 741. SERIES IC'S IN MOST CASES.

    If

  • 78

    wC-Q,~

    IoUQ-I

    oC,v'l

  • a iQWI QUIMq'lIs- ..uCaaL_a.,. a D~

    "- ... \,.~.clz ',. !- It I u.I. I .

    ~too Ico! QII.

    C1M ,- ! --'I ;. I

    '"Dr: - olDi1M D a~ ~ a"lDIj I-l1li._0 Z-'I>- Z u.I... zm ...'It 0:Ii 1M- A-IAI ..:

    ~en :z:Co!) ,W :..,;' 0en hC - U-1MD.

    D.~

    Z

    -ZD.

    '"C:z:

    '"u-00

    1M...0Z

    7..

  • ASSEMBLY INSTRUCT IONS

    /1. TAm: OUT ALL THE PARTS AND CHECK THEN AGAINST THE PARTS 1.1ST.IF THERE ARE ANY PAnTS ~I~SING, Dnop us A NOTE, AND WE WILL'SEND THEM TO you. NOTE Tl!.~T THE NE555" 10]( (APPROX.) RESISTOR ..27K RESISTOR, AND .01 MFD CAPACITOR WHICH ARE PACKAGED IN"THESEPERATE BAG fI!\E i-m.TeBED FOR 1500 HZ AND (.nE: ~'lAHKED U IT1IASTERI$hS ON THE: PAtlTS LIST. OTHER COllI"ONI-:NTS USED FOR TI-lESEWILL CAUSE THE OUTPUT TO RUN AT A DIfFERENT FREQUENCY. "

    2. USING THE AS5El'!;~LY DRI\HING ON PAGE 7 .. INSERT TIlE DISC'~ETf,cor:PONl::NTS WP,G '..1ITH CIiPl\C 110ns, rn;:s ISion~~ .. LED". DljJ

  • MODIFICATIONS ON THE TARBELL CASSETTE INTERFACE AS OF SEPT I~ 1976.

    INCLUDED ON REVISION B:

    I. RESISTOR RI HAS BEEN CHANGED TO A 2.4 KOHM RESISTOR.2. ON THE OUTPUT VOLTAGE DIVIDER~ RIO IS RECOMMENDED TO BE

    I KOHM FOR AUXILLIARY CASSETTE INPUTS~ INSTEAD OF 10 KOHM.

    INCLUDED ON REVISION C:

    3. A.I MFD CAPACITOR HAS BEEN ADDED IN PARALLEL WITH Rl1.THIS IMPROVES RELIABILITY WITH SOME TYPES OF RECORDERS.

    -4. A I KOHM RESISTOR HAS BEEN ADDED BETWEEN PINS 10 AND 14OF IC 35. THIS PROVIDES PULL-UP TO DRIVE THE 7475 LATCH.

    5. THE TRACE TO PIN 8 OF IC 5 (GROUND) HAS BEEN CUT AND ALINE RUN DIRECTLY TO THE GROUND EUS ON THE BOTTOM. THISELIMINATES CROSS-TALK FROM THE NE555 OSCILLATOR.

    6. A 2200 PF CAPCITOR SHOULD BE ADDED BETWEEN PINS 6 AND 8 ONIC 5. THIS REDUCES THE EFFECTS OF HIGH-FREQUENCY NOISEGENERATED IN SOME COMPUTERS.

    INCLUDED ON REVISION D:

    7. ADD A .01 MFD CAPACITOR BETWEEN PINS 15 AND 8 OF IC S.8. ADD A IK RESISTOR BETWEEN PINS 12 AND 14 OF IC 30.9. CONNECT ONE SIDE OF A IX RESISTOR TO 5 VOLTS~ THE OTHER TO

    IC29-7&10~ IC2-14&3&7&10~ IC8-14&3&7.10. CONNECT ONE SIDE OF A IK RESISTOR TO 5 VOLTS~ THE OTHER TO

    IC23-4& 10& 13.II. CONNECT ONE SIDE OF A 1K RESISTOR TO 5 VOLTS~ THE OTHER TO

    IC4-13&10~ IC3-9.12. CONNECT PIN I TO PIN 2 ON IC3.

    THERE HAVE BEEN SEVERAL QUESTIONS REGARDING THE USE OF RATESHIGHER THAN THE STANDARD 167 BYTES PER SECOND. CHANGES AREREQUIRED ON BOTH THE INPUT AND OUTPUT SECTIONS. ON THE INPUTSECTION~ THE POTENTIOMETER THAT IS PROVIDED ON THE BOARD MAYBE ADJUSTED TO CHANGE THE FREQUENCY. ON THE OUTPUT SECTION~ANY OF THREE COMPONENTS MAY BE CHANGED TO CHANGE THE FREQUENCY:R6~ R7~ OR C8. IF YOU WANT TO OPERATE AT TWO FREQUENCIES~ FOREXAMPLE A HIGHER ONE~ AND THE STANDARD~ IT IS FEASIBLE TO INSTALLA SWITCH FOR THE ABOVE ME~lIONED COMPONENTS. FOLLOWING 'OULD BEA REASONABLE PROCEDURE FOR EXPERIMENTING WITH THE HIGHER RATES:

    1. REDUCE THE VALUE OF R6~ R7~ OR C8 BY ABOUT THE AMOUNT YOUWANT TO INCREASE THE FREQUENCY.

    2. USE THE CASSETTE OUTPUT ROUTINE AND A STOP WATCH TO VERIFYTHAT THE INCREASE IN OUTPUT SPEED HAS BEEN ATTAINED.

    3. USE THE SYNC GENERATOR PROGRAM TO MAKE A TAPE WITH A LONGSTREAM OF SYNC BYTES AT THE NEW FREQUENCY.

    4. PLAY IT BACK~ ADUUST ING THE POT FOR THE LED TO COME ON.CLOSER ADJUSTMENT OF THE CASSETTE VOLUME CONTROL MAY ALSOBE NECESSARY.

    5. THE.l CAPACITOR MODIFICATION MENTIONED IN ITEM 3 ABOVE WILLALSO HAVE TO BE REDUCED ACCORDINGLY.

    8

  • SOLDERING, CLEANING, AND INSTALLATION NOTES

    SOLDERING:

    Be sure to use good resin-core solder. Acid-core solder willcorrode. Use a small soldering element, preferably about 27watts. Keep your tip clean by wiping on a sponge. Apply heatto the joint first, then solder, then remove solder, then removethe heat (soldering iron). Don't leave the heat applied to theconnection more than a few seconds at a time. Some of thecomponents can be destroyed b:'l too much heat, especial1;>" theintegrated circuits (IC's). Be sure there is a smoot~l flow ofsolder over the complete connection, and that the joint looksshiny.

    CLEANING:

    After you finish soldering, there will be many small conductiveparticles on the board which you car.....'1ot ahrays see. Take asmall pointed instrument of some so,rt, such as a jeweler'sscrewdriver, and scrape between all printed wiring which isclose together, such as those leading to the IC pins. Thismay take some time, but it is well worth it. Then scrub thebottom (side B) of the board with alcohol. Then visuallyinspect the board under a strong light, and again remove anydangerous looking pnrticles.

    INSTALLATION:

    First set the dip-switches to the following positions:

    1-off, 2-off, 3-on, 4~off, 5-off, 6-on, 7-off (input phase inversion)

    Switches 1 through 6 correspond to address bits 2 through 7respectively, and off is a one, on is a zero. Address bit1 can be either way, as it is ignored by the present interface.Address bit 0 is zero for status/control, and one for data.Therefore, the switch settings above correspond to deviceaddress 011011XX (most significant bit first), where X indicatesbits that can be either way. This is the device select codethat is used in all software for the cassette interfacethat is supplied by Tarbell Electronics.

    Then insert the board into the 100-pin socket, being surethat the component side of the board is to the right (Altair)or front (IMSAI) as viewed from the front of the computer.Then install ~he ribbon cable between the dipconnector onthe interface board and the 25-pin connector slot in the rear.Then install the coax cables between the 25-pin connector andthe cassette recorder. The coax cables may also be connecteddirectly between the interface board and the recorder. Seethe pin function list page for the proper connections.

    Q

  • INITIAL AD~USTMENT INSTRUCTIONS

    THIS INTERFACE WAS DESIGNED TO BE AS EASY AS POSSIBLE TO GET UPAND GO ING. THERE ARE, HOWEVER, SOME INIT IAL AD~USn;ENTS TO BE~~DE, AFTER WHICH THERE NEED NEVER BE ANY MORE.

    1. PUT THE TEST CASSETTE INTO YOUR CASSETTE RECORDER.

    2. IF YOUR RECORDER HAS A TONE CONTROL, TURN IT TOTHE MAXIMUM (BEST HIGH-FREQUENCY RESPONSE) POSITION.

    3. TURN YOUR VOLUME CONTROL TO A MIDDLE POSITION.

    4. TURN THE POTENT IOMETER ON THE INTERFACE TO A MIDDLE POS IT ION.

    5. PRESS THE "PLAY" BUTTON ON YOUR RECORDER.

    6. IF THE LED (RED LIGHT) ON THE INTERFACE DOES NOT COMEON AFTER A FEV SECONDS, AD~ST YOUR VOLUME AND THEINTERFACE POTENTIOMET~R UNTIL THE LIGHT COMES ON.

    7. IF THE LED STILL DOESN'T COME ON, CHANGE SWITCH 07(INPUT PHASE REvERSAL)-ON THE DIP-SWITCH TO THEOPPOSITE POSITION, THEN REPEAT STEP 6.

    8. IF THE LED STILL DOESN'T COME ON AFTER AD~USTINGYOUR VOLUME AND THE INTERFACE POT, SOMETHING ISWRONG WITH YOUR RECEIVER SECTION.

    9. WHEN THE LED COMES ONE, tHIS INDICATES THAT THE RECEIVERIS OPERATING PROPERLY, AND IS DETECTING THE CONTINUOUS STREAMOF SYNC BYTES WHICH IS ON THE TEST TAPE. FURTHEn ADJUST BOTHTHE VOLUME CONTROL AND THE INTERFACE POT SO T~.T YOU CAN TURN

    . EACH OF THEM FROM SIDE TO SIDE A LITTLE WITHOUT THE LIGHTGOING OUT. THE LIGHT SHOULD BE VERY STABLE, WITH NO FLICKER.

    NOTE: SINCE THE LED ONLY STAYS ON WHEN IT IS DETECTINGCONTINUOUS SYNC B)iES, IN NORMAL OPERATION (WITHREAL DATA) IT WILL ~UST FLICKER ONCE IN A WHILE.

    I. RUN THE SYNC CODE GENERATOR PROGRAM WITH YOUR RECORDERIN RECORD MODE, ONTO A BLANK TAPE.

    2. TRY THE PROCEDURE ABOVE. IF THE LIGHT DOES NOT COME ONCONTINUOUSLY, YOU MAY BE RECORDING AT TOO HIGH OR TOOLOW A LEVEL. TRY DIFFERENT LEVELS UNTIL YOU FIND THEBEST PLACE. YOU ALSO MAY BE RECORDING IN THE OPPOSITEPt~SE. IF SO, CHANGE THE vUMPER FROM PIN 9 TO PIN 8ON IC 23.

    NOTE: IF YOU ~VE AN OSCILLOSCOPE, IC 4 PIN 11 SHOULD SHOWA NICE CLEAN WAVE FORM, WITH ABOUT 25% DUTY CYCLE.ALTHOUGH THERE MAY BE LONG-TERM vITTER, BECAUSE OF THEFLUTTER AND WOW ON THE CASSETTE RECORDER, FAST vITTERON THE EDGES OF THE WAVE-FORM SHOULD BE FAIRLY SMALL.THE LESS THIS HIGH-SPEED ~ITTER IS, THE MORE TOLERANCEYOUR INTERFACE WILL HAVE TO TAPE SPEED VARIATIONS.

    10

  • CASSETTE I~TERFACE O?ERATI~G I~STRUGTIONS

    TEESE INST~UCTIO~S PEnTAIN TO OPEqATING THE I~TERFACE WITHAN ORDINARY ATlDIO CASSETTE RECORDER, AND ASSUI'JETliAT THEPROPER SOFTWARE (PROG~A~S, SUBROUTINES) IS IN ThE CO~PUTERTO COt'H'lUK ICATE \oJ ITE THE lNTERFACE.

    TO PERFORM AN OUTPUT (SAVE, WRITE) OPERATION:

    1. IF' YOun VOLTJrJE COr:TROL HAS At

  • CASSETTE BOOTSTRAP PROGRAM

    THIS PROGRAM LOADS DATA STARTING AT ZERO AND KEEPS ON GOING.THERE IS NO COUNT OF BYTES, AND NO CHECKSUM. IT IS ASSt~BLEDTO RUN AT 2FOO

  • CASSETTE INTERFACE OUTPUT ROUTINE

    THIS PROGRAM WRITES A BLOC~ OF MEMORY OUT ONTO CASSETTE TAPE.THE PROGRAM IS ASSEt-:BLED TO START AT 3100 (HEX)~ BUT MAY BEREASSEMBLED TO START ANYWHERE. THE BLOC~ STARTING ADDRESS ISLOCATED AT ADDRESS 3104 (HEX). THE BLOC~ LENGTH (2 BYTES) ISLOCATED AT ADDRESS 3107 (HEX). THE PROGRAM WILL WRITE A "\1" ONTHE COMMENT DEVICE WHEN IT IS THROUGH WITH IT'S DATA TRANSFER.

    3100310331063109310B310031 103112311531163119311A311B311 C311 D311 F3120312331243127312831283120312F3132313331353137313A313B3130313E313F3140314131423143

    31 43 3121 00 0001 00 20IE 003E 3CCD 32 313E E6CD 32 317ECD 32 3183SF23DB3E 00B8C2 15 31B9C2 15 3178CD 32 313E 57D3 01C3 2F 31F5DB 6EE6 20C2 33 31F1D3 6FC9000000000000

    LXILXILXI~WI

    r-;VICALL1"lV ICALL

    LOOP MOVCALLADDMOVIt\XDCXEVICl'lPl.1~;Z

    OjPJ!'JZt",OVCALLI-;V IOUT

    WAIT Jt-:PCOUT PUSHCLOP I t\

    ANIJNZPOPOUTRETooooo

    STA~ 0CASD EQU

    SP .. STA~H"O8 .. 2000HE.. OA,,3CHCOUTA"OE6HCOUTA.. l-lCOUTEE.. AHBA.. OBLOOPCLOOPA.. ECOUTA....W..1WAITPSWCASC20HCLOPPSWCASD

    6FH

    13

    SET STACK POINTER.GET BLOCK ADDRESS.SET BLOCK LENGTH = 8192.SET E=O.GET START BYTE.OUTPUT START BYTE TO CASSETTE.GET SYNC BYTE.OUTPUT SYNC BYTE TO CASSETTE.GET A DATA BYTE FROM MEMORY.OUTPUT DATA BYTE TO CASSETTE.ADD E (CHE,CKSUM) TO A.PUT NEW CHECKSUM INTO E.INCREt-:ENT MEMORY POINTER.DECREMENT COUNTER.!'lAKE A=O.IF 8 NOT = 0 ..

    REPEAT LOOP.IF C ).\;OT = 0 ..

    REPEAT LOOP.OTP.ERWISE~ GET CHECKSUMAl\D OUTPUT IT.WRITE "w" (END OF WRITE).PRINT Ol\ CONSOLE.WAIT HERE WHEN DONE.SAVE A AND FLAGS.READ CASSETTE STATUS.CLEAR ALL BUT alT 5.TRY AGAIN IF NOT READY.RESTORE A AND FLAGS.OUTPUT DATA TO CASSETTE.RETURN FROM COUTo

  • CASSETTE INTERFACE IN~UT ROUTINE

    THIS PROGRAM READS A BLOCK OF BYTES FROM CASSETTE INTO MEMORY.THE PROGRAM IS ASSEMBLED TO START AT 3100 CHEX)~ BUT ~~Y BEREASSE!-lBLED TO START ANYHHERE~ ALTHOUGH CARE SHOULD BE TAKENTO 11I:51.1'1.E TEAT THE DATA IT IS READING DOES NOT WRITE OVER THEPROGRArl ITSELF. TH IS f-1AY BE ACCOMPLISHED BY LOCAT ING THEpT:lOGRAr" 1htt,ED lATELY BELOH OR A BLOC K LENGTH ABOVE THE DATATO BE READ IN. THE START ING ADDRESS FOR THE BLOCK IS LOCATEDg' ADDRESS 3185 (HEX). THE 8LOCK LENGTH IS LOCATED IN ADDRESS3188 (HEX) (THO BYTES).

    3180312231843187318/\..318C318E3190319331953196319731983199319A319C319D31AO31Al31A431A631A831AB31AD31AE318031B3318531B7

    3E 10D3 6E21 00 0011 00 2006 00D3 6EE6 10C2 8C 31D3 6F7780Ll7

    23IE3E 00BAC2 BC 31B8C2 8C 31DB 6EE6 10C2 A4 31DB 6FB83E 45C2 85 31C6 02D3 01C3 87 31

    LOOP

    CHEK

    ERRENDCASCCASDCRTD

    MVIOUTLXILXIMVIINANIJNZINMOVADD!'lOVINXDCXMVICI1PJNZcr1PJNZINAt: IJNZINCLPMV IJI,}ZADIOUTJt,;pEQUEQUEQU

    Pu 10HCASCH.. OD~2000H

    8 .. 0CASC10HLOOPCASDM~A

    83~A

    HDA.. ODLOOPELOOPCASC10HCHEKCASD8A~"E"

    E11R2CRTDEND6EH6FH01H

    14

    SET BIT 4 OF A=l.RESET INTERFACE.GET STARTING ADDRESS.GET BLOCK LENGTH.SET CHECKSUM = O.READ CASSETTE STATUS.LOOK AT BIT 4.WAIT IF NOT READY.READ DATA FROM CASSETTE.PUT DATA INTO MEMORY.ADD CHECl{SUI-l TO A.PUT IT 8ACK IN B.INCREMENT MEMORY POINTER.DECREMENT COU~TER.CLEAR A.IF D KGT ::; O~

    READ 1';ORE.IF E NOT ::; o~

    READ I-lORE.READ STATUS.LOOK AT BIT 4.WAIT IF NOT READY.READ CHECI{SU!"COl"lPARE TO 8.PUT CODE FOR "E" IN A.IF CHEC I~SU!"lS NOT EQUAL.. ERROR.ADD A 2 TO l"iAKE "G" IF EQUAL.PH INT "E" FOR "G".WAIT HERE WEEN DONE.CASSETTE STATUS/CONTROL PORT.CASSETTE DATA PORT.CONSOLE DATA PORT.

  • 1 REM THIS PR0GRAM SHewS H0W T0 SAVE DATA "NT" A CASSETTE2 REM AND L0AD IT BACK INTS MEM0RY FR0M A PR0GRAM RUNNING3 REM UNDER 8K BASIC 3.1. IT ALLSWS Y8U T8 ENTER LINES 8'4 REM TEXT FReM THE CeNSeLE KEYBeARD, SAVE THEM 8N CASSETtE,5 REM L0AD THEM BACK INT0 MEM8RY, AND PRINT THEM.10 CLEAR 3000:L-SO:DIM A$(SO):REM RESERVE FeR UP T0 50 LINES.20 CC=110sCDcl11:REM CASSETTE ceNTRSL AND DATA peRT NUMBERS.30 TS="I" IREM END-0F-F ILE CHARACTER.40 0=100100 INPUT "C0MMAND"JCS110 IF CS="ENTER" THEN 1000120 IF CSc"PRINT" THEN 2000130 IF C$c"SAVE" THEt.J 3000140 IF C$="GET" THEN 4000900 PRINT" INVALID C0MMAND." IG0T0 lao1000 REM ENTER TEXT FR0M THE C8NSeLE KEYB0ARD1020 F0R N=l T0 L:REM ENTER A MAXIMUM eF L LINES.1030 INPUT BS:REM READ A LINE FReM KEYBeARD.1040 IF BS="I" THEN 1070 IREM A S TERMINATES THE INPUT.1050 AS(N)=BS:NEXT NIREM PUT LINE INT0 BUFFER.1070 NaN-1IGeT" 100:REM N-THE NUMBER 0F LINES ENTERED.2000 REM PRINT THE BUFFER AREA 0N THE CeNS0LE.2010 FeR I-I T0 N:PRlNT A$(I)sNEXT l:GeTe 1003000 REM SAVE THE BUFFER 0NT0 CASSETTE TAPE.3010 SS=CHRS(195)+CHRS(230)sREM 5S-START & SYNC BYTES.3019 REM CHANGE THE C0NS0LE BUTPUT R0UTINE F0R CASSETTE.3020 P0KE 1230,CC:peKE 1232,32:P0KE 1236,CD3030 F0R I-I T0 N3040 F0R K-l T0 DaNEXT KaREM DELAY FeR ceUNT 0F D.3050 BS=SS+AS(I)aREM HSSK START & SYNC BYTES Te LINE.3060 PRINT BS:REM WRITE LINE SNT0 CASSETTE.3070 NEXT I3080 BS-SS+T$:REM H0eK START & SYNC BYTES T0 TERMINAT8R.3065 FeR Kel T0 DaNEXT KaREM DELAY F0R C0UNT 0F D.3090 PRINT BSaREM WRITE THE END-SF-FILE MARK.3099 REM CHANGE CSNSeLE R0UTINE BACK T8 N8RMAL.3100 PSKE 1230,OaP0KE 1232,128:PSKE 1238,13110 GST0 1004000 REM GET TEXT FRSM CASSETTE AND PUT INTI BUFFER.4010 REM CHANGE C0NS0LE INPUT R8UTINE FeR CASSETTE.4011 peKE 1241,CC:PlKE 1243,16aP0KE 1248,CDIP0KE 1232,04012 P0KE 1238,2554020 F0R 1=1 T0 L4030 0UT CC,16aREM RESET CASSETTE INPUT SECTISN.4040 INPUT B$:REM READ A LINE 0' TEXT FR8M CASSETTE.4050 IF BS-TS THEN 40804060 AS (I )-BS4010 NEXT I4080 N-l-14090 REM CHANGE CeNSSLE ReuT INE BACK T8 NSRMAL.4091 P8KE 1241,OaP8KE 1243,IIP8KE 1248,IIP0KE 1232,1284092 P8KE 1238,14100 GST0 1008K

    15

  • SAVING AND LOADING DATA TO AND FROM CASSETTE FROM BASIC PROGRAMS

    It is quite often desireable to save and load data to and fromcassette, while running a BASIC program. For example, you mighthave a nice inventory program running in BASIC, but it's of limitedutility if there is no way to save the inventory on cassette forovernight storage. You can leave the computer running, but if thereis an interruption in power, or a computer failure, your inventoryis lost. Other applications include accounts receivable, mailinglists, and payroll.

    There are several ways of handling this function, depending on theversion of BASIC you use. Some versions of BASIC have a commandwhich can save and load a numerical array to and from cassette.ALTAIR- DISK BASIC is one of these. The only problem with thisway, is that DISK BASIC is fairly large, and that strings have tobe converted to numerical arrays. Another way is describedexplicitly by a program on page 15 of the Tarbell Cassette Interfac~...,Manual. In this method, the console (TTY, CRT) routines are modifi .by POKE commands, so that they are temporarily cassette I/O routinesThen the PRINT and INPUT statements may be used to transfer the datAfter the data is transferred, POKE statements restore the consoleroutines to their original form. The disadvantage here is thatdifferent versions of BASIC have their console I/O routines indifferent places, so the program has to be adapted when changingfrom one version to another.

    Another possibility is to POKE the data into an unused area of memo~The USR function then is used to transfer to your own output routin~(possibly an adaptation from one in the manual). This routine only:needs to transfer a block of memory onto tape. The USR function cbe used with a different argument to run an input routine, then theBASIC program can retrieve the data with the PEEK function. The maproblem with this method is that the I/O routines generally have toloaded seperately, and are not yet written and tested.

    Still another way is to use a general purpose monitor program. Thiprogram would also be loaded seperately, but might reside in read-only-memory (ROM). The monitor would handle all input/outpli:i functiincluding console and cassette I/O. {lne of the commands in themonitor is to assign different functions to different I/O devicesthan normally handle these functions. For example, the consolefunction could be assigned to the cassette interface instead of theTTY. Then PRINT and INPUT statements could be used for I/O to andfrom cassette.

    The monitor described above is presently under development byTarbell Electronics. In addition to the Assign command, it hascommands for dumping and loading memory, checking records forerrors, and moving data from one area in memory to another.

    15A

  • CONTROLLING THE START-STOP (REMOTE) FUNCTION ON YOUR CASSETTE

    MOST CASSETTE RECORDERS HAVE A REMOTE CONTROL INPUT. MEANTFOR CONTROL FROM A MICROPHONE SWITCH. THIS FACI~ITY CAN BEOPERATED BY A COMPUTER PROGRAM TO START AND STOP THE TAPEAUTOMATISALLY.. ACCORDING TO THE NEEDS OF THE PROGRAM.THIS IS PARTICULARLY IMPORTANT IF THE AMOUNT OF DATA ON TAPE ISMORE THAN WILL FIT INTO MAIN MEMORY ALL AT ONCE. IN THIS CASE..THE DATA MAY BE "BLOCKED"; THAT IS, GAPS MAY BE INSERTED BETWEENBLOCKS OF DATA, WHICH ALLOW TIME FOR THE TAPE TO START AND STOP.THE PROGRAM MAY THEN START THE TAPE., READ SOME DATA, STOP THETAPE., WORK ON THE DATA., START ANOTHER TAPE, WRITE SOME DATA.. ANDSTOP THE TAPE. THIS PROCESS MAY BE REPEATED um IL AL1. THE DATAIS PROCESSED. SOME EXAMPLES WHERE THIS OPERATION MIGHT BENECESSARY ARE AS FOLLOWSa1) AN ASSEMB1.ER, WHERE THB SOURCE IS LARGER THAN MEMORY, MAY

    READ SOURCE FROM ONE TAPE AND WRITE MACHIN. CODE TO ANOTHER.2) A COMPILER., IN THE SAME SITUATION.3) A MERGING PROGRAM, WHERE AN OLD FILE IS UPDATED VITH CHANGES

    TO FORM A NEW FILE. .

    THE CIRCUIT FOR CONTROL~ING ONE TAPE UNIT IS SHOWN BELOW.

    ro ~!'I'TI! INP...1joN CAS r~ rrf'

    IN 71'0

    THESE ROUTINES MAY BE USED FOR STARTING AND STOPPING THE CASSETTEBEFORE AND AFTER INPUT AND OUTPUT OPERATIONSa

    START LDA CTLS GET CONTROL STATUS BYTE.ORI 01 SET BIT 0 ONE.STA CTLS UPDATE CONTROL STATUS BYTE.OUT CASC START THE TAPE.CALL DELAY WAIT FOR TAPE TO GET UP TO SPEED.RET RETURN CNEXT DO YOUR 110)

    STOP

    CTLSCASC

    LOA CT1.S GET CONTROL STATUS BYTE.AND OFEH SET BIT 0 TO ZERO.STA CTLS UPDATE CONTROL STATUS BYTE.OUT CASC STOP THE TAPE.RET RETURN FROM I/O ROUTINE.

    DB 0 CONTROL STATUS BYTE.EQU 6EH CASSETTE CONTROL PORT.

    THE START-UP DELAY IS DETERMINED BY YOUR RECORDER, ANDSHOULD BE LONGER BEFORE A WRITE THAN BEFORE A READ OPERATION.

    NOTE I A MODULE WHlCH ALLOWS THE CONTROL OF UP TO FOUR CASSETTERECORDERS WITH A TARBELL CASSETTE INTERFACE IS AVAILABLEFROMr RO-CHE SYSTEMS, 1101 MAMMOTH AVE.. VAN NUYS, CA '1485.

    16 .

  • THEORY OF CASSETTE INTERFACE OPERATION

    OUTPUT SECT ION

    TNE PURPOSE OF THIS SECTION IS TO CONVERT 8-BIT PARALLELBYTES FROM THI CO~UTtR TO A SERIAL BI-PHASE !NCODED DATASTREAM FOR THE RECORDER. THE NESS5 (IC 21) IS CONNECTEDAS AN OSCILLATOR TO OSCILLATE AT TWIC! THE FREQUENCY 0'THE REQUIRED CLOCK RATE. FOR 800 BITS PER INCH. THE C~'CKRATE NEEDS TO BE 1500 HZ FOR A RECOADER RUN~ING AT I 1/8INCHES PER SECOND. SO IC 22 RUNS AT 3000 HZ. DETEaSINEDBY THE MATCHED SET OF COMPONENTS CIC 22. C8. R6. AND R1).THE OUTPUT ON PIN 3 IS FED TO A J-K FLIP-FLOP. VHICH DI9IDEST5E FREQUENCY BY TWO. THE MAIN FUNCTION OF THIS F.LIP-FLOPIS TO MAKE THE WAVE-FORM PERFECTLY SYMMETRICAL. tHISSQUARE-WAVE 15 THEN FED TO AN INPUT OF THE"ExCLUSIVE-ORGATE AT IC 30 PIN 6.

    IC 32. THE DM8131. 15 A 6-BIT DIGITAL COMPARATOR. IT'S PURPOSEIS TO COMPARE THE ADDRESS ON BITS 2 THROUGH 1 OF THl: ADDRESS BOSWITH THE SETT ING ON THE DIP SWITCH. WHEN THEY MATCH. THE OUTPUTAT PIN 9 GOES LOW. INDICATING THAT THIS DEVICE IS BEING SELECTED.THIS SIGNAL IS INVERTED AND AND!D WITH THE waITE SIGNAL ARD tHESTATUS OUTPUT SIGNAL ON tHE aus. THIs PRODUCES A HIGH OutPUT AtIC 14 PIN 6 WHEN THIS DEVICE IS BEING WRITTEN TO.

    THIS SIGNAL IS IN TURN ANDED WITH ADDRESS BIT 0 TO STROBE DATAINTO THE SHIFT RESISTER CIC 26 PIN 6 AND IC 20 PUtS 4 AJID 2).THE DATA IS SHIFTED OUT OF THE SHIFT REG I$TER BYTHE C1.0CKPREVIOUSLY MENTIONED. THE SHIFT REGISTER IS MADE OP OF lC'S21# 21. AND 23. DATA ENTERS AT THE aOT1'OM AND IS SHIFTED OUTTOWARD THE RIGHT. WHERE IT IS COMalNED WITH THE CLOCK TO FORMTHE BI-PHASE SIGNAL FOR tHE RECORDER.

    THE FIRST EIGHT OUTPUTS OF THE SHIFT REGISTER ARE FED INTOIC 28. SINCE A ZERO IS BEING FED INTO T:RE LEFT tHD OF THESHIFT REGISTER FOR EACH SHIFT (IC 21 PIN 9)# THESE LEFTEIGHT BITS WILL ALL BECOME ZERO AFTER 8 SHIFTS. AT TftlS TIMSTHE OUTPUTS AT IC 28 PINS 6 AND 8 WILL BOTH BE HIGH# CAUSIW&THE OUTPUT AT IC 14 PIN 8 TO GO HIGH. tHIS SIGNAL .ILL BEUSED BY THE COMPUTER TO DETERMINE WHEN THI INtERrACE NEEDSMORE OUTPUT DATA.

    WHEN ADDRESS BIT 0 IS LOV. THE OUTPUT AT IC 14 PIN 6 ANnED WITHIC 31 PIN e CAUSES A HIGH OUTPUT AT IC 35 pta 10. THIS STROBESBITS 0# 1# 2. AND 3 ON THE DATA BUS UITO THE LATCH OF lC 34.THE OUTPUTS OF THIS LATCH ARE autFa&D WITH IC 35# dD APPEAR ATPINS 2# 4# 6# AND 8. THSE ARE THEN FID TO THE DIP-SOCKET.IF DATA BUS BIT 4 IS HIGH# A PULSE APPEARS AT PIN. OF lC 26.THIS IS USEn TO RESET THE COUNTER Ia THE INPUT SECTION.

  • THEORY OF OPERATION

    INPUT SECTION

    THE PURPOSE OF THIS SECTION IS TO, CONVERT THE BI-PHASE AUDIOSIGNAL COMING FROM THE CASSETTE RECORDER TO a-BIT PARALLELBYTES FOR THE COMPUTER. THE AUDIO SIGNAL COMING DJtlECTL't FROMTHE CASSETTE EARPHONE OR SPEAKER OUTPUT IS TERMINATD BY THE100 OHM RESISTOR AND FED THROUGH THE .02 CAPACITOR TO THEINPUT OF THE 8T20 (IC 5 PINS 6 AND 7). THIS l~PUT HAS ABUILT-IN VOLTAGE-DIVIDERI WHICH BIASES THE DC LEVEL TO AGOOD MIDWAY TTL REFERENCE VOLTAGE BETWEEN ONE AND ZERO.THIS IS ONE INPUT OF A HIGH-SPEED COMPARITOR. THE OTHERINPUT (lC 5 PIN 5) IS CONNECTED THROUG~ A RESISTOR DIVIDERAND A IN914 DIODE TO ONE OF THE COMPARITOR OUTPUTS (IC 5 PIN 9).THIS PROVIDES A SMALL AMOUNT OF HYSTERESIS TO COMBAT NOISEPROBLEMS. THE OTHER OUTPUT OF TfiE COMPARITOR (IC 5 PIN 1)15 EXCLOSIV~-ORED WITH SWITCH 7 ON THE DIP-SWITCH TO PROVIDEA WAY TO INVERT THE INPUT DATA STREAM. TH1S 15 THEN FED TOA D-TYPE FLIP-FLOP (IC 4 PIN 12).

    MEANWHILEI INSIDE IC 51 THE OUTPUTS OF THE COMPARITOR SECTION AREFED TO AN EDGE-DETECTORI WHICH DETECTS BOTH POSITIVE AND NEGATIVE-GOING TRANSITIONS. THE OUTPUT OF THIS DETECTOR IS tHEN USED TOTRIGGER A STABLE NON-RETRIGGERABLE ONE-SHOT. THE CAPACITOR FORTHIS ONE-SHOT IS BETVEEN PINS 12 AND 14 OF Ie 51 AND THE RESISTORIS TIlE 50 KOHM POTENT IOMETi~R. T~ OUTPUT OF THE ONE-SHOT IS THERECOVERED CLOCK (IC 5 PINS 10 AND 11>. THIS IS FED TO THREEDIFFERENT PLACES. 1) IC 4 PIN 111 WHERE IT TRIGGERS THE FLIP-'~OPTO RECOVER THE SERIAL DATA STREAM, 2) IC 3 PIN 8 WHERE IT ISUSED TO SHIFT THE SERIAL-PARALLEL SHIFT-REGISTER, 3) IC 29 PIN1 AND IC 26 PIN 13 1 WHERE IT IS USED TO STEP THE 8 COUNTER.

    IN A START-UP POSITIONI IC 29 PIN 12 IS ZEROI HAVING BEEN RESETEITHER BY THE RESET SWITCH OR BY A RESET COMMAND FROM THE PROGRAM.THIS STOPS THE CLOCK FROM TRIGGERING THE 8 COUNTER, WHICH HASALSO BEEN RESET. AS THE SERIAL STREAM FLOWS THROUGH THE SHIFT-RESISTER (IC 3), IT IS CONTINUALLY INSPECTED BY THE SYNC DECODRMADE UP OF IC'S 9 AND 10. WHENEVER A SYNC CODE APPEARS IN THESHIFT REGISTEftl IC 10 PIN 8 GOES LOW. THIS LIGHts TUE SYNC LEDAND ALSO ALLOWS THE FLIP-FLOP AT IC 9 PIN 12 TO GO HIGH. tHISALLOWS THE CLOCK TO AP~EAR AT IC 26 PIN 11, AND TRIGGER THE 8COUNTER. WHEN THE COUNTER HAS COUNTEr> TO -81' IC 8 PIN 12 GOESHIGH,T'UGGERING THE READY tLIP-FLOP AT IC 8 ~IN 9. THIS READYCONDITION INDICATES TO THE COMPUTER THAT THERE IS A BYTE IN THESHIFT REG lSTErt READY TO READ. THE COMPUTER MAY THEN READ THISBYTE THROUGH GATES OF IC'S 13 AND 19.

    IN ORDER TO READ DATA THE SIGNAL AT POINT B, WHICH COMES FROMTHE OUTPUT SECT ION IS AlmED WITH THE TWO INPUT GATE SIGNALSPDBIN AND SINP (IC 14 PINS 131 1 AND 2). WHEN ADDRESS BIT 0IS HIGHI THIS SIGNAL 15 ANDED WITH IT TO GATE DATA FROM THESHIFT REGISTER ONTO THE INPUT DATA BUS (IC 1 PIN 3). WHENenDRESS BIT 0 IS LOW, THIS SIGNAL IS ANDED WITH IT to GATEVARIOUS STATUS BITS ONTO THE INPUT DATA BUS. FOOR OF THESEINPUTS ARE GENERAL-PURPOSE, ~D COME' FROM THE DIP-SOCKET. THEOTHERS ARE PICKED UP AT IC 25 PIN 3 (INPUT STATUS), AND tC 25PIN 6

  • -

    ..., 2/1 +8V 6IS C II DIS (II) ~VII 2J

    LIl_a fir) CII cl-aClO_

    D III+-!) GNO

    C!tIC"'"'

    ....I IS .. IS

    Go 0. S' 0.. 0. 0. '''0 SERIALa.-TA- /I~ 27 - JI-IO/I 0 ' or c ,. TO CASSETTE2 ."

    II'

    O~ 002 00.. D06CNl DOI lIII)OO3 (>II) D05 foo) 007 ':'

    CItJ - C) C80JGENERAL - PCJRPOSE

    ~...- COWROC. LINES~ JI -8-7-6-51, , 8 /I f5V ..,V "1.'-1-D)A7 " ..

    ,AS /l1li.. ..12 a

    ~)A5 III .. lll ,. /I " ... c.M ". , ..... ~.(;JI) A3 0'_"., *'1:- ~""A2 II /I ~1O. 11-.....

    0llell.."

    C'l'J'JPiiir...)$OUT .MATCHED PlltRTS

    P,JA SEE INSTRUCTIONSA/I T

    'P

    CdSSTTE INTERFACE CXITPUT SECTION

  • 2~DI4

    (gJ)

    --'

    I ..~=;!. ".I'" R"12 Q.EO~"'5

    ELR, 1$

    Rf7

    cue10

    6~~/~B~/~~ 13 13 I~, 19 19\,n.. 9 2 ~ 12 ,

    J===1 [8

    /3 3 1 I,

    lfj/.... 2QC

  • C.ASSETTE' INTr;R'fA":''- rrMIN& DIAq'RAN

    $EP.IIrL 8 JNA R. 'f 0;' TA,e Z P... 9

    Cl-oCI< - (PIN i:-, )

    - tJ~ 2 M~ (PI"J l' - ~ Poi! PATA ('f-") (XNVA t.ID l--1 ERE) ) I I 1)

    ~ c:. l.0 c...- r s r .... f K0 i' E" VH i" 'i (" A'-! ZR. F I I~ S T Dt'I~ ~ ;'j,>, rJ.; i?"

  • CASSETTE INTERFACE PIN FUNCTIONS

    Jl (DIP SOC KET)

    12345678

    GP STATUS IN BIT 0GP STATUS IN BIT 1GP STATUS IN BIT 2GP STATUS IN BIT 3GP CONTROL OUT BIT 3GP CONTROL OUT BIT 2GP CONTROL OUT BIT 1GP CONTROL OUT 8IT a

    16151413121 110

    9

    GROUNDDATA FROM CASSETTESPARESPARE+5 VOLTSSPAREDATA TO CASSETTEGROUND

    NOTES: GP STANDS FOR GENERAL-PURPOSEDATA FRO~ CASSETTE SHOULD BE CONNECTED TO EARPHONE JACKDATA TO CASSETTE SHOULD BE CONNECTED TO AUXILLIARY JACK.IF ~I KE JAC E IS USED" OR IF THE RECORDER ONLY OPERATES 91THAUTOMATIC VOLUME CONTROL ON RECORDf THEN DIVIDER RESISTORSMAY HAVE TO BE CHANGED FOR THE PROPER RECORDING LEVEL.THE DIVIDER RESISTORS ARE RIO AND Rl!.

    P2 (8800 BUS PINS)

    1 +8V29 ADDRESS LINE #530 ADDRESS LINE #431 ADDRESS LINE #335 DATA OUT LINE #136 DATA OUT LINE #036 DATA OUT LINE #439 DATA OUT LINE #540 DATA OUT LINE 1641 DATA IN LINE 1242 DATA IN LINE 1343 DATA IN LINE 1745 OUT46 INP50 GROUND51 +8V52 -16V75 RESET -NOT77 WRITE-NOT78 DATA BUS', IN79 ADDRESS LINE 1081 ADDRESS LINE 1282 ADDRESS LINE 1683 ADDRESS LINE 1768 DATA OUT LINE 1289 DATA OUT LINE 1390 DATA OUT LINE 1791 DATA IN LINE 1492 DATA IN LINE 1593 DATA IN LINE 1694 DATA IN LINE 1195 DATA IN LINE 10JOO GROUND 22

  • IF YOU CANNOT MAKE AT LEAST TEN 8X-BYTE TRANSFERS WITH NO ERRORS~YOU HAVE A PROBLEM~ AND THE ITEMS BELOW MAY BE OF SOME HELP:

    1. CHECK TO MAKE SURE THAT ALL THE COMPONENTS AND JUMPERS AREIN THEIR PROPER LOCATIONS~ AND THAT THEY ARE ORIENTED ASSHOWN IN THE ASSEMBLY DRAWING.

    2. MAKE SURE THAT THE BOARD IS CLEAN~ ESPEC IALLY THAT THEREIS NO FLUX RESIDUE BETWEEN IC PINS OR OTHER CLOSE LINES.

    3. DEMAGNETIlE AND CLEAN THE RECORD/PLAYBACK HEAD ON YOUR RECORDER.

    4. WHEN YOU PLUG IN THE BOARD~ BE SURE THAT THE PINS ONTHE BOARD EDGE CONNECTOR LINE UP WITH THE PINS IN THEMOTHERBOARD CONNECTOR.

    s. HAVE YOU TRIED BOTH PHASES WITH THE PHASE SWITCH, ANDARE THE OTHER SETTINGS ON THE DIP-SWITCH CORRECT?

    6. YOU SHOULD BE ABLE TO ADJUST THE VOLUME ON YOUR RECORDER BY ABOUT50% DURING PLAYBACK~ AND STILL HAVE THE SYNC LIGHT LIT WHEN READINGTHE SYNC STREAM. IF IT DOESN'T LIGHT AT ALL~ THERE IS PROBABLYSOME GROSS PROBLEM ON THE BOA~D, SUCH AS A BAD PLATED THROUGH HOLE,A SOLDER BRIDGE~ OR A BAD INTEGRATED CIRCUIT. IF YOU ARE USING ATAPE DECK THAT HAS ONLY A PREAMP~ YOU MAY NEED TO ADD AN EXTRASTAGE OF AMPLIFICATION IN ONE OF THE EXTRA IC SLOTS.

    7. IF YOU HAVE AN OSCILLOSCOPE, THE BEST PLACE TO LOOKTO SEE HOW THE RECEIVER INPUT SECTION IS OPERATING IS ATIC 4, PIN 11. THIS SIGNAL SHOULD BE FAIRLY CLEAN~ WITHSOME OVERALL JITTER~ DUE TO THE TAPE WOW AND FLUTTER, ANDSOME HIGH-SPEED JITTER ON THE EDGE OF THE WAVEFORM. IT ISTHIS HIGH-SPEED JITTER THAT yOU SHOULD TRY TO MAKE A MINIMUM.

    8. IF YOU HAVE A VIDEO INTERFACE~ OR OTHER ~OURCE OF HIGH-FREQUENCY.NOISE~ TRY LOCATING IT FURTHER AWAY FROM THE CASSETTE INTERFACE.

    9. ARE YOU SURE THAT YOUR RECORDER HAS A FREQUENCY RESPONSE TO 8KHZ?

    10. HAVE YOU USED THE PROPER VOLTAGE DIVIDER (RIO, HII> FORYOUR PARTICULAR RECORDER? IF YOU ARE ABLE TO RECOVERTHE SYNC STREAM I WROTE SATISFACTORILY, BUT ARE HAVINGTROUBLE WITH RECORDINGS YOU MAKE YOURSELF~ THE LEVELGOING FROM THE INTERFACE TO THE RECORDER MAY BE TOOHIGH OR TOO LOW~ ESPECIALLY IF YOU HAVE AUTOMATIC LEVELCONTROL. YOU MAY ALSO WANT TO TRY OPERAT ING WlTHOUT C15.

    11. HAVE YOU CHECKED YOUR +5 VOLT POWER? TOO MANY BOARDS IN YOURCOMPUTER COULD INTRODUCE RIPPLE ON THIS SUPPLY.

    12. DON'T USE DIGITALLY CERTIFIED TAPE~ ONLY AUDIO LOW-NOISE TAPE.

    13. IF YOUR RECORDER HAS AN INTERNAL MICROPHONE~ BE SURE IT IS NOTACTIVE WHILE YOU ARE MAKING A RECORDING (THE J.C. PENNY HAS ASWITCH ON THE TONE CONTROL WHICH CUTS OFF THE INTERNAL MIC).

    14. IF YOU STILL HAVE PROBLEMS~ PLEASE RETURN THE UNIT~ PREFERABLYVITH YOUR CASSETTE RECORQER~ AND 1 WILL GET IT OPERATING PERFECTLYWITHOUT CHARGE. THE REPAIR TURNAROUND TIME IS 1 TO 3 WEEKS.

    15. IF YOU ARE COMPLETELY DISSATlSFIED~ YOU MAY RETURN THE INTERFACEFOR A COMPLETE REFUND WITHIN 90 DAYS AFTER YOU ACCEPTED DELl~ERY.

    ~'2

  • IDEAS FOR USING THE CASSETTE INTERFACE

    S~ING AND LOADING PROGRAMS

    PROGRAMS MAY BE TOGGLED INTO MEMORY# LOADED FROM PAPER TAPE# ORLO~ED BY SOME OTHER MEANS. THEY MAY THEN BE DUMPED ONTO CASSETTEUSING THE CASSETTE OUTPUT ROUTINE. THE OUTPUT ROUTINE ITSELF MAYBE DUMPED ALONG WITH THE OTHER PROGRAM# SO THAT IT WILL- BE AltA 11.ABLELATER FOR FURTHER DUMPS. ROUTINES HAY THEN at LOADED FROM CASSETTE~MOil)! l' IED# AND DUMPED BACK OUT TO CASSETT IN A CONT INUOUS PROCESS OFDEVELOPMENT. .

    USING A BACKUP

    A BACKUP IS A METHOD OF MAKING SURE THAT VALUABLE PROGRAMS ORDATA IS NOT LOST. ONE SIMPLE WAY OF PROVIDING A BACKUP IS TORECORD A PARTICULAR PROGRAM IN TWO DIFFERtNT PLACES ON THE SAMETAPE# OR ON TWO DIFFERENT TAPES. YOU MAY WANT TO GO BACK ANDFORTH BETWEEN THE TWO COPIES# EACH TIME THE PROGRAM IS CHANGED.IN THIS WAY, YOU ALWAYS HAVE A COpy OF THE LAST PROGRAM, ANDONLY THE MOST RECENT CHANGES ARE LOST IF A POWER FAILURE OROTHER EQUIPMENT TROUBLE DEVELOPS DURING THE PROCESS OF SAVING.

    STARTING AND STOPPING AUTOMATICALLY

    MOST AUDIO CASSETTE RECORDERS HAVE AN INPUT LABELED "REMOTE".TH!IS IS NORMALLY OPERATED FROM A SWITCH ON THE MICROPHONE, SOTHAT THE RECORDER CAN BE STARTED AND STOPPED WHILE DICTATING.THIIS INPUT CAN BE USED TO START AND STOP THE RECORDER UNDER .PROGRAM CONTROL FROM THE COMPUTER. ONE OF THE 4 EXTRA CONTROLLI~ES COMING FROM THE CASSETTE INTERFACE (DI~-SOCkET PINS 5, 6171 OR 'S) CAN BE USED TO DRIVE A RELAY WHICH WOULD HAVE ITSCO~TACTS CONNECTED TO THE RECORDER REMOTE JACK. TaE HAINREQUIREMENTS ARE THAT THE 40 MA AVAILABLE FROM' THE CONTROL l.INEBE ABLE TO DRIVE THE RELAY, AND THAT THE RELAY CONTACTS ARE ABLETO HANDLE THE CURRENT INTO THE REMOTE JACK, WHICH CAN BE AS HIGHAS ONE AMPERE.

    OPERATING WITH MORE THAN ONE CASSETTE RECORDER

    SOMETIMES IT IS DESIREABLE TO OPERATE WITH TWO OR MORE CASSETTEUNlTS. WITH THE TARBELl. CASSETTE INTERFACE, IT IS ALaEADYPOSSIBLE TO READ FROM ONE CASSETTE RECORDER, WHILE WRITING OWTOANOTHER. THIS IS BECAUSE THE INPUT AND OUTPUT SECT 10ilS AREENt IRELY INDEPENDENT 1 AIJD MAY BE PROGRAMMED SEPERAT!LY. l' ITIS DESIRED TO READ FROM ONE OF TVO UNITS, AND VRITE ONTO A~OTBlR,SUeH AS DURING A MERGING OPERATION, RELAYS MAY 8E USED TO' SWITCH-BAeK AND FORTH BETWEEN THE TWO INPUT UNITS, UNDER CONTROL OF' OlltOF. THE 4 CONTROL LINES. IF, HOWEVER, IT IS NEC!:SSARY TO READ -SI~LTANEOUSLY FROM TWO DIFFERENT UNITS, OR WRITE DIFFERENTINFORMATION ONTO TWO UNITS AT THE S~ TIME, It VILLS! IECESSARYTO HAVE TVO CASSETTE INTERFACES. .

    24

  • MOD IF ICAT IONS ON CASSETTE BASIC FOR CSAVE AND CLOADUSING TARBELL CASSETTE INTERFACE

    8X BASIC 3.2 12K BASIC 3.2 DISK BASIC

    ADDR OLD NEW ADDR OLD NEW AODR OLO NEW ADOR OLD NEt"

    1008 06 6E 155A 06 6E OE5S 06 FA IDFE DB OB1009 E6 6 155B E6 E6 OE59 D2 67 IDFF 06 6E100A 01 10 155C 01 10 OE5A FA DE IEOO E6 E6100B C2 C2 155D C2 C2 OE5B 67 3E lEOI 80 20100C 07 07 155E 59 59 OE5C OE 19 IE02 C2 C21000 10 10 1551' 15 15 OE5D 78 CD IE03 FE FElODE DB DB 1560 08 D8 OE5E CD I'D IE04 10 10100F 07 6F 1561 07 61' OE5F FA ID lE05 1'1 1'1

    OE60 10 21' lE06 03 D31016 06 6 1568 06 6E OE61 CO CO IE07 07 61'1017 6 6 1569 E6 E6 OE62 FA FD lE08 C9 C91018 80 20 156A 80 20 OE63 ID ID lE09 06 061019 C2 C2 1568 C2 C2 OE64 C3 C3 lEOA 01 01lOlA 15 15 156C 67 67 OE65 74 74 lEOB FE FE101B 10 10 1560 15 15 OE66 OE OE lEOC 2E 2E10lC Fl Fl 156E 1'1 Fl DE67 DE 3E 1EOO CA CA10lD D3 03 1561' D3 03 OE68 OLj 10 lEOE 12 12101E 07 6F 1570 07 61' OE69 CD 03 lEOF DE DE10lF C9 C9 1571 C9 C9 OE6A 1'0 6E lEI0 E5 E51020 ES E5 1572 E5 E5 OE68 ID 00 1Ell 3E CO1021 3 CD 1573 3E CD OE6C 88 00 1E12 03 1'01022 D3 14 1574 03 66 OE60 C2 00 lE13 CD 101023 CD 10 1575 CO 15 OE6E 67 00 lE14 1'0 3E1024 14 3E 1576 66 3E OE6F OE 00 lEIS 10 E61025 10 E6 1577 15 E6 OE70 OD 00 lE16 CO CO

    OE71 C2 00 lE17 FA FD1053 06 3E 15A5 06 3E OE72 69 00 lE18 10 1D1054 03 10 15A6 03 10 OE73 OE 001055 CD D3 15A7 CD 03 OE74 1'7 1'7 1E48 06 3E1056 07 6E 15A8 59 6E lE49 03 101057 10 00 15A9 15 00 101'0 08 DB lE4A CO 031058 D6 00 15AA 06 00 101'1 06 6E lE48 1'0 6E1059 D3 00 15AB 03 00 101'2 E6 E6 lE4C ID 0010SA C2 00 15AC C2 00 101'3 01 10 lE4D 06 001058 A3 00 15AO AS 00 IOF4 C2 C2 lE4E 03 0010SC 10 00 ISAE 15 00 10FS 1'0 1'0 lE4F C2 0010SD 05 00 15AF 05 00 101'6 10 10 lE50 48 00lOSE C2 00 15BO C2 00 101'7 DB DB lE51 IE 00105F AS 00 15Bl A7 00 IDr8 07 6F lE52 05 001060 l' 00 15B2 15 00 lE53 C2 00

    lE54 4A 00lE55 IE 00

    2!

  • PROCESSOR TECHNOLOGY SOFTWARE PACKAGE #1

    Modified for Low Memory and Cassette by Fred Clark,Modified for Tarbell Oassette by Don Tarbell.

    The main purpose of this software is to allow development of assembly-language programs. Programs may be entered from the keyboard in standardassembly-language format, edited, assembled, and saved on cassette ineither source or machine format. These programs may be then loaded backinto ~emory at some future time for listing, 'editing or running. Followineis a summary of the commands. All address and byte information is in hex.

    OFlL

    FILES

    FILE /NAME/ AAAA

    FILE /NAME/ 0FILE /NAME/FILE

    ASSM AAAAASSM AAAA BBBBOUSTSFILLFIL

    DUMP SSSS EEEEEXEC AAAAEXEC /NAME/Em'R AAAALIST NNNNDELT NNNN MMMMNNNN (text entered)

    -Creates a file of name NAME at address AAAA (hex).Up to six text files can be in memory at the same

    .,time. The file just created is the current file.~This command deletes the file named NAME.-Makes the named file the current file.-Prints the starting and ending addresses of thecurrent file, and it's name.

    -Lists the name, starting &ending address for eachof the files in the system. Current file at top.

    -Dumps the contents of memory fromSSSS to EEEE.-Executes the machine-language program at address AAAA.-Searches the cassette for named file, loads and exec.-Enter data into memory: B1 B2 B3 B4/-Lists the current file starting at line NNNN.-Deletes lines NNNN through MMMM from current file.-Enter a line of text into the current file. Alwaysuse 4 decimal digits. It works similar to BASIC,in that the numbered lines are ordered automatically.

    -Assembles current file into address AAAA.-Assembles at address AAAA, but puts code at BBBB.-Execute a customer (user) routine at address EOOO.-Save the current file on cassette.-Load the current file from cassette. The name of

    the file on tape must match the name of the currentfile. Be sure there is enoQgh room in memory.

    -Oheck a cassette file written with the SFIL commandabove, for errors, without overwriting current file.

    AFIL -Append a file from cassette to the current file.SAVE SSSS DEE -Save a block of memory from SSSS to EEEE on cassette.LOAD SSSS -Load a block of memory from cassette starting at SSSS.~ SSSS -Check a cassette file written with SAVE command.NAME /NAMEI -Rename the current file to NAME.RNU11 N -Renumber the cur.ent file b~_ increment N.NLIS NNNN -l.ists the current file at NNNN without line numbers.This software is useful, but may not be completely free of bugs. Itloads into the first 4096 bytes of memory, and uses about 2048 bytesfollOWing, for tables and scratch pad. Ctl-C escapes from any printing.Ot1-W freezes printing until another character is typed. The packageis available from Tarbell Electronics for the prices listed below:

    Oassette Tape with software and instructions:A reassembled and patched (updated) listing:

    15.00.,.00

    26

  • WRITING PROGRAMS FOR THE CASSETTE INTERFACE

    SOMETIMES IT IS NECESSARY TO WRITE ASSEMBLY OR MACHINE LANGUAGEPROGRAMS FOR A PARTICULAR INTERFACE. THE CLASS OF PROGRAMSWE ARE TALKING ABOUT HERE ARE CALLED "DRIVERS". THESE WOULD BEREQUIRED FOR LINKAGE TO A PIECE OF SOFTWARE FOR WHICH PATCHESARE NOT PROVIDED IN THE MANUAL.

    THIS INTERFACE IS A SYNCRONOUS DEVICE. ONE OF THE IMPLICATIONSOF THIS IS THAT DATA OR PROGRAMS ARE MOST EFFICIENTLY WRITTEN ASA CONTIGUOUS BLOCKI RATHER THAN AS SEPERATE BYTES. THERE ARE A FEWRULES THAT MUST BE FOLLOWED WHEN WRITING SOFTWARE FOR THIS DEVICE:1. THE FIRST BYTE MUST BE A "START BYTE" WHICH MAY BE ANY BYTE

    EXCEPT 001 FFI OR E6 (HEXADECIMAL).2. THE SECOND BYTE MUST BE A "SYNC BYTE" WHICH MUST BE E6 (HEX).3. THE SOFTWARE MUST BE ABLE TO DELIVER BYTES TO THE INTERFACE

    AS FAST AS IT CAN ACCEPT THEMI WHICH AT THE STANDARD SPEED IIS 187 BYTES PER SECOND. THIS MEANS THAT ANY LOOP .THAT THEPROGRAM GOES THROUGH WHICH IS BETWEEN BYTESI MUST LAST LESSTHAN 5.3 MILLISECONDS. AN AVERAGE INSTRUCTION TIME ON THE8080 WITH NO WAIT STATES IS 2 CYCLESI OR 1 MICROSECOND. THUSITHERE SHOULD BE NO MORE THAN ABOUT 5300 INSTRUCTION EXECUTIONSBETWEEN BYTES BEING SENT OUT. THIS IS NORMALLY NOT A PROBLEM.

    4. A SIMILAR CONSTRAINT MUST BE OBSERVED WITH RESPECT TO THEINPUT SOFTWAREI WHICH SHOULD BE ABLE TO ACCEPT DATA AS FASTAS IT IS BEING MADE READY BY THE INTERFACE.

    THERE ARE SITUATIONS IN WHICH THE DATA CANNOT BE PROVIDED ORACCEPTED FAST ENOUGH BY THE SOFTWARE. ONE EXAMPLE OF THIS ISDATA WHICH IS BEING GENERATED BY A PROGRAM RUNNING IN BASIC.THIS PROBLEM IS SOLVED BY SENDING THE DATA OUT AND READING ITIN A LINE AT A TIMEI WITH NULLS IN BETWEEN. THE PAGE ENTITLED"HOW TO SAVE AND LOAD DATA FROM A BASIC PROGRAM" IS A SAMPLEPROGRAM THAT SHOWS HOW TO DO THIS. THERE ARE AT LEAST TWOOTHER WAYS TO HANDLE THIS PR6BLEM: 1) SEND EACH BYTE AS ASEPERATE BLOCK WITH IT'S OWN START AND SYNC BYTES. 2) ACCUMULATEBYTES IN A BUFFER AREA OF MEMORYI AND START AND STOP THE CASSETTERECORDER UNDER CONTROL OF THE COMPUTER WHEN IT IS TIME TO DUMPAND REFILL THE BUFFER.

    OTHER ITEMS TO BE CONSIDERED WHEN WRITING SOFTWARE:1. SINCE TAPE IS AN IMPERFECT MEDIUMI IT IS GENERALLY USEFUL

    TO INCORPORATE AN ERROR-CHECKING SCHEMEl SUCH AS THECHECKSUM SYSTEM THAT IS DEMONSTRATED OK THE PAGES ENTITLED"OUTPUT ROUT INE WITH CHECKSUl-'J" AND" INPUT ROUT INE WITHCHECKSUM". THERE ARE MANY SYSTEMS POSS IBLEI EACH PROV IDINGDIFFERENT KINDS AND LEVELS OF PROTECTIONI AND BOOKS HAVEBEEN WRITTEN ABOUT THESE.

    2. IT IS SOMETIMES HANDY TO HAVE AN IDENTIFIERI SUCH AS ANAMEI WRITTEN ALONG WITH THE FILE ONTO CASSETTE. ANEXAMPLE IS THE ONE-LETTER NAME GIVEN TO ALTAIR BASICPROGRAMS WHEN WRITING TO CASSETTE.

    3. ANOTHER ITEM THAT IS USEFUL IS A WAY FOR THE PROGRAMTO TELL HOW LONG THE FILE IS. A ONE OR TWO-BYTE HEADERTO INDICATE LENGTH OF A FILE OR BLOCK IS SOMETIMES USED.IN THE MODIFIED PROCESSOR TECHNOLOGY SOFTWARE PACKAGE 11THAT I SUPPORT I BLOCKS ARE PRECEEDED BY ONE LENGTHBYTE THAT MAY BE FROM 1 TO 255. A LENGTH OF ZEROINDICATES THE END OF THE FILE.

    4. A "TYPE BYTE" IS A UNIQUE BYTE FOR A PART ICULAR FORMATOF FILEI SO THAT A SOPHISTICATED LOADER MAY DISTINGUISHBETWEEN DIFFERENT TYPESI AND LOAD THEM APPROPRIATELY.I USE A 90 (HEX) TYPE BYTE IMMEDIATELY FOLLOWING THESYNC BYTE ON THE PROC. TECH. SOFTWARE.

    ; 27

  • Vc~1"oR~j)

    I N7ER~lJlIfL fNeS

    VI"vt I'lIZvI3\II..,.

    vrfVIGt1/11

    P1. ""1'

    TO(>N~

    flFTUS(

    Eb( PI"'S

    I

    ~![Y1'0 .1.

    ()pr'ON~ r"'vn~~

    2

    USING TID; TARBELL CASSETTE INTEHFACE UNDER IN'1'EJ:U'1UPT CO?{THOIJ

    There is ~o ~uilt-in pr~~is~on for interrupts in the desicn.However, lt 15 not too Qlfflcult to make a moJificRtion totl:e board to r:rovide for interrupts. Tw'o bits in the controlL.ne reSH3t;er, 8re used as in~,errupt;-enab1e flip-flo}"s. I:; .. ~~rlCCSfiS2T7 to Ju:::tnll c-'no:'1:er 74 03 quad ?-inl:'ut OT)(.?n-(~(.,:1 f'~,tjT'Ii;:.ND P.,",:;.., in cn(; () f t h., ;:: rare F~ I,e-

  • PRELll1INARY PHI-DECK ADAljT~'R INFOHMATION

    We have purchased the introductory variable-speed PHI-DECKpacka~e, which includes the deck, control electronics, powersupply, and control box. We have been experimenting with anadapter which connectn between the Tarbell Cassette Interface,the read-write hends, and the control electronics. Thisadapter provides st~!rt-stop, fonmI'd, rewind, Hnd fast-forwardcontrol for the PHI-DECK from the 'larbell Casse-cte Interface.It also includes read-write electronics for one chan..'1cl. Itis still in the experimental staGe, but speeds of 1000 bytesper second have been attlt. ~fA~ 'fOAHI r:oA waiTE 1'f 10011:.. /(

    (' /ZAuJJ 1) n-

  • '~L" RND

    .J!:L- + 5 VOG

    """lp\JT

  • la . I OUT~~J Q INPUT5Cl,I