PORTABLE RANDOM ACCESS AUDIO RECORDING AND PLAYBACK APPARATUS

Abstract: A portable random access audio recording and playback apparatus uses a random access solid state memory (12) disposed for recording, storing and playing back audio information and operator actuated apparatus (32) for selecting information to be played back.

Description: 1 PORTABLE RANDOM ACCESS AUDIO RECORDING AND PLAYBACK APPARATUS FIE P 9F THE INVENTION The present invention relates to random access 5 audio storage and playback apparatus. BACKGROUND OF THE INVENTION There presently exists random access audio storage and playback apparatus. One embodiment of such apparatus is a CD ROM which employs a conventional 10 compact disk and disk reader. CD ROMs have a number of disadvantages including their inherent read-only qualities, mechanical complexity and relatively high cost. Portable CD ROM equipment is not presently commercially available. 15 U.S. Patent 4,636,876 describes the use of speech compression in an audio digital recording and playback system. U.S. Patent 5,059,126 describes an interactive CD based audio system employing a bar-code reader as a 20 selector input. SUMMARY OF THE INVENTION The present invention seeks to provide improved random access audio storage and playback » apparatus. * 25 There is thus provided in accordance with a . preferred embodiment of the invention portable random access audio recording and playback apparatus comprising a portable enclosure, a random access solid state memory disposed in the enclosure for recording, storing and - 2 - playing back audio information and operator actuated apparatus for selecting information to be played back. Further in accordance with a preferred embodiment of the present invention, there is provided apparatus for downloading compressed audio information from an audio information source. Additionally in accordance with a preferred embodiment of the invention the operator actuated means for selecting information may include code reader apparatus. Further in accordance with a preferred embodiment of the invention the operator actuated means for selecting information may include wireless information communication apparatus. Additionally in accordance with a preferred embodiment of the present invention, there is provided apparatus for uploading compressed audio information to audio information utilization apparatus. BRIEF DESCRIPTION OF THE DRAWINGS The present invention will be understood and appreciated more fully from the following detailed description, taken in conjunction with the drawings in which: Fig. 1 is a pictorial illustration of portable random access audio recording and playback apparatus constructed and operative in accordance with a preferred embodiment of the present invention; Fig. 2 is a functional block diagram illustration of the apparatus of Fig. 1; Fig. 3 is a schematic illustration (NET LIST No. 6, Annex 2) of a preferred embodiment of digital speech processing (DSP) circuitry employed in the apparatus of Figs. 1 and 2; Figs. 4 and 5 are a schematic illustration (NET LIST No. 5, Annex 2) of a preferred embodiment of digital speech processing interface circuitry employed in the apparatus of Figs. 1 and 2; 26 - 3 - Figs. 6 and 7 are a schematic illustration (NET LIST No. 1, Annex 2) of a preferred embodiment of CPU circuitry employed in the apparatus of Figs. 1 and 2; Figs. 8 and 9 are a schematic illustration (NET LIST No. 2, Annex 2) of a preferred embodiment of the user interface circuitry employed in the apparatus of Figs. 1 and 2; Fig. 10 is a schematic illustration (NET LIST No. 4, Annex 2) of a preferred embodiment of the selector interface circuitry employed in the apparatus of Figs. 1 and 2; Figs..11 and 12 are a schematic illustration (NET LIST No. 3, Annex 2) of a preferred embodiment of the code reader circuitry employed in the apparatus of Figs. 1 and 2; Fig. 13 is a flow chart state diagram illustration of the operation of the apparatus of Figs. 1 - 8; Fig. 14 illustrates the use of the system with a map bearing bar codes; Fig. 15 illustrates the use of the system in a museum context; and Fig. 16 illustrates the use of the system in language study. DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT Reference is now made to Figs. 1 and 2 , which illustrate portable random access audio recording and playback apparatus constructed and operative in accordance with a preferred embodiment of the present invention. The apparatus preferably comprises a hand held housing 10 containing digital speech processing (DSP) circuitry 12 including a solid state RAM memory 14, processing circuitry 16 and an analog front end 18 having ports for input and output of audio information, such as via a microphone or loudspeaker 19. The DSP circuitry 12 communicates via DSP interface circuitry 20 with a CPU 22. The CPU communicates via a selector interface 24 with either or both of a code reader 23 and a wireless receiver 25 for receiving selection inputs, for addressing the solid state RAM memory 14. Information stored or to be stored in the solid state RAM memory 14 may be up-loaded or down¬ loaded from an external information storage or supply medium via a data interface 26, which communicates with the CPU 22. A user interface circuit 28 provides communication between the CPU and a plurality of indicators and input devices, typically including a plurality of LEDs 30 (shown in Fig. 1) and typically 6 single and double action function keys 32, which may have the functions indicated in Fig. 2. Fig. 3 (Net List No. 6) is a schematic illustration of a preferred embodiment of digital speech processing circuitry 12 employed in the apparatus of Figs. 1 and 2, which is based on a DSPG6005 chip commercially available from DSP Group, Inc. and which may communicate with suitable audio input and output devices. Figs. 4 and 5 (Net List No. 5) are a schematic illustration of a preferred embodiment of digital speech processing (DSP) interface circuitry 20 employed in the apparatus of Figs. 1 and 2. Figs. 6 and 7 (Net List No. 1) are a schematic illustration of a preferred embodiment of CPU circuitry 22 employed in the apparatus of Figs. 1 and 2. A listing of preferred operating software residing in the 27256 chip in the CPU circuitry of Figs. 6 and 7 appears in Annex I. Figs. 8 and 9 (Net List No. 2) are a schematic illustration of a preferred embodiment of the user interface circuitry employed in the apparatus of Figs. 1 and 2 as well as LEDs 30 and switches 32. Fig. 10 (Net List No. 4) is a schematic illustration of a preferred 6 - 5 - embodiment of the selector interface circuitry employed in the apparatus of Figs. 1 and 2; Figs. 11 and 12 (Net List No. 3) are a schematic illustration of a preferred embodiment of the code reader 23 employed in the apparatus of Figs. 1 and 2. Net lists of a preferred embodiment of the circuitry of Fig. 2, as shown in the schematic illustrations of Figs. 3 - 12, appear in Annex 2. Reference is now made to Fig. 13, which is a flow chart state diagram illustration of the operation of the apparatus of Figs. 1 - 12. As envisioned in Fig. 13, the apparatus of the present invention may be employed for any function wherein audio information can be stored in a portable random access memory and then a specific portion thereof may be readily addressed and outputted in a random access mode in response to selection inputs. The selection inputs may be provided directly by a user, using key inputs 32 (Fig. 2) or alternatively by any suitable selection input device. A preferred device is a code reader 23 (Fig. 2) such as a bar code reader. Such a bar code reader may read codes on a map or guidebook and thus the system may provide corresponding audio information. Similarly, bar codes may be located adjacent individual pictures in a museum and be read to activate a corresponding commentary. Alternatively wireless commands may provide selection inputs. It is noted that entry of audio information need not be in the individual units that it is read out or in the same order. Audio information may be supplied to the system via data interface 26 in a conventional manner or directly via audio inputs to the analog front end 18 of the DSP circuitry 12 (Fig. 2) . As seen in Fig. 13, system initialization is followed by start and idle modes which may alternate with record and playback modes, each of which has its - 6 - internal subroutine including check functions. Fig. 14 illustrates the use of the system together with a map bearing bar codes which are read by a code reader mounted in housing 10 to provide audio information corresponding to a location identified by the bar code which is read. Fig. 15 illustrates the use of the system in a museum environment wherein bar codes may be placed alongside individual pictures. Fig. 16 illustrates the use of the system in language study, wherein the bar codes may be placed alongside individual paragraphs, sentences, words or pictures. It is appreciated that the system of the invention may have a fixed memory which can be loaded as convenient or alternatively may be provided with modular replaceable memory modules. In either embodiment, the system may be usable for multiple environments, such as both museums and maps. It can also be used by itself as a dictating/transcribing machine that enables creating of documents in a random order (replace/insert/delete/ record segments) . It will be appreciated by persons skilled in the art that the present invention is not limited by what has been particularly shown and described hereinabove. Rather the scope of the present invention is defined only by the claims which follow: ANNEX 1 PNS $code Sxref {symbols pns: do; Sinclude(c:\espro\tooIs\51\reg51.dcl) declare( s_start, s_idle, s_self_test ) byte constant( lb, lib, 111b ); dcclare( s_record, s_record_a ) byte constant( 1111b, 11111b ); declare( s_play, s_play_a ) byte constant( 111111b, 1111111b ); declare( s~error )~byte constant( 10101010b ); declare( keys_mask ) byte constant( 00111111b ); /* only 6 lsb relevant */ declare( cr ) byte constant ( Odh ); dcclare( max_bars ) byte constant( 8 ); declare( state, error, keys, key, leds ) byte; declare( dsp_command_I, dsp_command h, dsp_status 1, dsp_status_h ) byte; declare( valid_msgs, next_to_record, next to_play ) byte; declarc( dsp_wait, bar_wait, end_of_pIay, dsp_int ) byte; declare( last_digit, new_digit, digit i ) byte; declare( bar_detected, bar_i, bar_sum, bar_found ) byte; declare digits(30) byte; declare bars(8) byte; dec!arc( dsp_I, dsp_h ) byte at( 2000h ) auxiliary; declare( ppl_a, ppl_b, ppl_c, ppl_controI ) byte at( 4000h ) auxiliary; delay: procedure; declare ( dl, d2 ) byte; do l = l to 32; do d2=l to 220; end; end; end delay; disp: procedure; pi = leds; call delay; call delay; pi = 0 ; call delay; call delay; pi = leds; call delay; call delay; pi = 0 ; call delay; call delay; pi = leds; call delay; call delay; pi = 0 ; call delay; call delay; end disp; disp_state: procedure; pi = state; call delay; call delay; call delay; call delay; end disp_state; disp_roll: procedure; pi = rol( pi, 1 ) ; call delay, call delay; end dispjroU; poll_keys: procedure; keys = p3 and keys_mask; if ( keys < > keys_mask ) then do; if ( keys = 00111110b ) then key = 1; else if ( keys = 00111101b ) then key = 2: else if ( keys = 00111011b ) then key = 3 else if ( keys = 00110111b ) then key = 4; else if ( keys = 00101111b ) then key = 5; else if ( keys = 00011111b ) then key = 6; end; end poll keys; poll_bar: procedure; new_digit = ppl_a; if ( πew_digit < > last digit ) then /* bar start */ do; bar_de.ected = 1; digit j = 0; last digit = new_digit; end; end poll_bar; read_bar: procedure; bar_ ait = 1; do while ( bar_wait = 1 ); digits( digit_i ) = last_digit; digitj = digitj + 1; new digit = ppl_a; if ( new_digit = cr ) then /* terminator */ do; digits( digit_i ) = new_digit; bar_wait = 0; end; last_digit = new_digit; end; /* while */ bar sum = 0; do digitj = 0 to 5; bar_sum = bar_sum + digits( digit_i ); end; end read_bar; disp_valid_msgs: procedure; leds = valid_msgs; call disp; call disp_state; end disp_valid_msgs; disp_dsp_status: procedure; leds = ( ( dsp_status_h and OfOh ) or ( dsp_status_l and Ofh ) ); call disp; end disp dsp tatus; dsp -ommand: procedure; dsp_l = dspj-ommand 1; άspja = dsp j -ommandj..; call delay, end dsp j -ommand; dsp status: procedure; dsp j -tatusj * = dsp_l; dspjitatusj- = dspji; end dsp tatus; waitjOrjisp: procedure; dsp wait = 1; do while ( dsp ait = 1 ); dspjnt = ( shr( pplj, 2) and 01 h ); if ( dsp j nt = OOh ) then dsp v ait = 0; call disp oll; end; call dsp tatus; end waitjOr isp; poll ispj)lay procedure; dsp j iommandj^ = OOlOOOOOb; dsp ommand_l = (next oj lay - 1); call dsp command; call waitjOrjisp; if ( ( dsp_staϊus_h and llllOOOOb ) < > OOlOOOOOb ) then error = 6; eπd of j piay = ( dsp j itatusj and 00010000b ); end poll dsp play; (next oj lay - 1); call ) then error = 4; OOOOOOOOb; call dsp_command; ) then error = 5; dsp ecord: procedure; dspj-ommandji = OOOlOOOOb; dspj-ommandj = OOOOOOOOb; call dsp -ommand; call wait Jor jisp; if ( ( dsp ' stalus _h and llllOOOOb ) < > OOOlOOOOb ) then error = 3; end dsp j ecord; dspjdle: procedure; dspj-ommandjh = Oh; dsp j -ommand 1 = Oh; call dsp command; call wait Or isp; if ( ( dsp~staTusjH and llllOOOOb ) < > Oh ) then error = 2; end dspjdle; dsp_self_test: procedure; dsp commandji = 10110000b; dsp commandj" = OOOOOOOOb; call dsp command; call wait for dsp; if ( ( dsp~status h and llllOOOOb ) < > lOllOOOOb ) then error = 1; end dsp j >elf est; task j ϊrror: procedure; leds = 01010101b; call disp; leds = error; call disp; leds - 01010101b; call disp; state = s j start; end task j ϊrror; taskj-Iay i: procedure; call dsp lay call disp isp tatus; call disp_state; if ( error <> 0 ) then state = s j -rror; do while ( state = s j _lay j _ ); call delay; call delay; call poll isp play; if ( eπdj_f_play <> 0 ) then state = s j play; call disp roll; end; / • while */ end task )lay_a; taskjjlay. procedure; call dspjdle; call disp _dsp _stat us; call disp tate; if ( error <> 0 ) then state = sjirror; do while ( state = sjjlay ); call polHeys; if ( key < > 0 ) then do; if ( key = 3 ) then state = s ecord; else if ( key = 2 ) then do; if ( next to j lay > 1 ) then do; next ojjlay = next o >lay - 1; state = sjj)Iay_a; end; else do; error = 7; state = s j ;rror; end; end; else if ( key = 5 ) then state = s lay a; else if ( key = 4 ) then do; if ( next o ilay < v alid j nsgs ) then do; next ojlay = next ojlay + 1; state = sjlay i; end; else do; - 11 - error = 8; state = SJΪΓΓOΓ; end; end; else if ( key = 6 ) then state = sjdle; key = 0; end; call pollj ar; if ( bar jietected = 1 ) then do; call readj ar; barjOund = 0; barj = 0; do while ( barjOund = 0 ); barj = bar j + 1; if ( bars( bar i ) = bar_sum ) then bar found = 1; end; /* while " */ next oj lay = barj; barjietected = 0; state = sj)lay_a; end; . call disp roll; end; /* while */ end taskjplay; task recordji: procedure; call dsp jecord; call disp jisp tatus; call disp tate; if ( error < > 0 ) then state = sjϊrror; do while ( state = sjecordj. ); call poll ceys; if ( key < > 0 ) then do; if ( key = 6 ) then do; valid jnsgs = valid jnsgs + 1; next Jo jecord = valid jnsgs + 1; state = s ecord; end; key = 0; end; call disp roll; end; /• while */ end task record jj; task jecord: procedure; call dspjdle; call disp jisp tatus; call disp tate; if ( error < > 0 ) then state = s error; do while ( state = sjecord ); call pol eys; if ( key < > 0 ) then do; if ( key = 5 ) then state = s j lay; else if ( key = 6 ) then state = s idle; key = 0; end; call poIlj_ar; if ( bar j ietected = 1 ) then do; call read _ar; bars( next o ecord ) = bar_sum; bar j ietected = 0; state = s ecord_a; end; call disp roll; end; /* while */ end task ecord; taskjdlc: procedure; call dsp j dle; call disp j isp tatus; call disp_state; if ( error < > 0 ) then state = SJΪΓΓOΓ; do while ( state = sjdle ); call pollj-βys; if ( key < > 0 ) then do; if ( key = 2 ) then call disp _tlid jnsgs; else if ( key = 3 ) then state = sjecord; else if ( key = 5 ) then state = sjjjlay; else if ( key = 6 ) then state = s_start; key = 0; end; call disp roll; end; /* while • / end task j dle; task ielf est: procedure; call dsp_selfjest; call disp jis j status; if ( error = 0 ) then do; validjnsgs = 0; nextjojecord = 1; next ojilay = 0; do barj = 0 to (max _ars-l); bars( barj ) = 0; end; state = sjdle; end; else state = SJΪΓΓOΓ; end task_self est; task_start: procedure; do while ( state = s_start ); call polMceys; if ( key <> 0 ) then do; if ( key = 1 ) then state = s self test; else if ( key = 6 ) then state = sjdle; key = 0; end; call disp oll; SHEET - 13 - end; /* while */ end task_start; init: sp = 50h; /* allocate stack */ ppl control = 11000001b; /* 8255 mode2 and modeO */ key = 0; /* no key pushed */ barjietected = 0; /* no bar code detected */ lastjiigit = ppl r, /* read bar digit reference */ error = 0; /* no error condition yet */ state « s_start; /* entry state value */ task cheduler: do while 1; call disp_state; if ( state = s_start ) then call task_start; else if ( state = s_self Jest ) then call task elf est; else if ( state = sjdle ) then call task dle; else if ( state = s j ecord ) then call task jecord; else if ( state •= s j ecord j_ ) then call task jecor j ι; else if ( state = s j play ) then call task j ϊay; else if ( state = s layj. ) then call task_play a; else if ( state = s error ) then call task error; end; /* while • / " end pπs; SUBSTITUTE SHEET - 14 - BAR Scode Sxref Ssymbols bar: do; Sinclude(c:\espro\tools\51\reg51.dcl) declare( s start, sj-eady fast, s ready slow, s jeading, s gotj ' t ) byte coπstant( 1, 3, 7, 15, 0 ); " declare( keysjnask ) byte constant( 00111111b ); /* only 6 lsb relevant */ declare( cr ) byte constant( Odh ); declare( state, keys, key, bar j ietected, last digit, ncw digit, digitj, disp delay ) byte; declare digits(20) byte; declare( ppl_a, ppl_b, ppl_c, ppI_coπtrol) byte at( 4000h) auxiliary; delay: procedure; declare ( dl, d2) byte; do dl = l to 32; do d2=l to 220; end; end; end delay; disp tate: procedure; pi = state; call delay; call delay; call delay; call delay; end disp state; poUJceys: procedure; keys = p3 and keysjnask; if ( keys < > keysjnask ) then do; if ( keys = OOlllllOb ) then key = 1; else if ( keys = 00111101b ) then key = 2 else if ( keys = 00111011b ) then key = 3 else if ( keys = 00110111b ) then key = 4: else if ( keys = 00101111b ) then key = 5: else if ( keys = 00011111b ) then key = 6 end; end pollj eys; actj-pon ey procedure; if ( ( key = 1 ) or ( key = 2 ) or ( key = 3 ) ) then dispjielay = 0; else if ( ( key = 4 ) or ( key = 5 ) or ( key = 6 ) ) then dispjielay = 1; end actjiponj-βy; poIlj_ar: procedure; new_digit = pplji; if ( new digit < > last digit ) then /* bar start */ do; barjietected = 1; last digit = newjiigit; end; end pollj-ar; task tart: procedure; key = 0; /* no key pushed */ bar j ietected = 0; digit j ' = 0; /* initialize bar digits array pointer */ last j iigit = pplji; /* read bar digit reference */ if ( dispjielay = 0 ) then do; state = s eady j._st; call disp tate; end; else do; state = s eady ?low; call disp tfate; end; end task tart; task jeady procedure; call pollj-cys; if ( key < > 0 ) then do; call actjjpon cey; state = sjtfart; call dispjtfate; end; else do; call pollj ar; if ( barjietected = 1 ) then do; state = s eading; call disp tate; end; end; end task jeady; task j eading: procedure; do while ( state = sjeading ); pi = lastjiigit; if ( disp j ielay = 1 ) then do; call delay call delay, call delay; call delay; end; digits( digitj ) = lastjiigit; digitj = digitj + 1; newjiigit = pplji; if ( newjiigit = cr ) then /* terminator */ do; digits( digitj ) = new j iigit; state = sj otjt; end; else do; lastjiigit = newjiigit; end; end; end task eading; task got it: procedure; pl~= call delay, pi = OOOOOOOOb; call delay UTE SHEET 26 - 16 - pi = 11111111b; call delay, pi = OOOOOOOOb; call delay pi = 11111111b; call delay; pi = OOOOOOOOb; call delay; state = s_start; call disp_state; end task j jotjt; iπit: sp = 50h; ppl_control = llOOOOOlb; /* 8255 mode2 and modeO */ dispjielay = 0; /* default is fast bar display */ state = s_start; call disp tate; taskjtcheduler: do while 1; if ( state = s .tart ) then call task .tart; else if ( state = s j eady_fast ) then call task jeady; else if ( state = s ready slow ) then call task jeady; else if ( state = s j eading ) then call task jeading; else if ( stale = s_gol j t ) then call task j jot j t; pi = rol( pi, 1 ) ; call delay; call delay, end; end bar; SUBSTITUTE SHEET DSP Scode Sxref Ssymbols dsp: do; $include(c:\espro\tools\51\reg51.dcl) declare( s start, s idle, s self test, s record, sj-Iay ) byte constant( lb, lib, 111b, 1111b, llfllb ); " declare( s vaitjOrjisp ) byte constant( 1111111b ); declare( cjione, cj ' dle, c_self_test, c_record, cj lay ) byte constant( 0, 1, 2, 3, 4); declare( keysjnask ) byte " constant( ); /* only 6 lsb relevant */ declare( state, prev state, command, keys, key, leds) byte; declarc( dsp command I, dsp commandj dsp tatusj\ dsp_statusj^, dspjvait, dsp vaitl ) byte; dcclare( valid j nsgs, nextjo j ecord, next Joj lay) byte; declare( dspjnt, play_count, temp) byte; declare( dspj, dspj^) byte at( 2000h) auxiliary; declare( pplj-, ppl_b, ppl _c, ppl j:ontrol) byte at( 4000h) auxiliary; delay: procedure; declare ( dl, d2) byte; do dl = l to 32; do d2= l to 220; end; end; end delay; disp tate: procedure; pi = state; call delay call delay; call delay; call delay, end disp tate; disp oll: procedure; pi = rol( pi, 1 ) ; call delay; call delay; end dispjoll; pollj-eys: procedure; keys = p3 and keysjnask; if ( keys < > keysjnask ) then do; if ( keys = 00111110b ) then key - 1; else if ( keys = 00111101b ) then key = 2 else if ( keys - 00111011b ) then key - 3 else if ( keys = 00110111b ) then key = 4 else if ( keys = 00101111b ) then key = 5 else if ( keys = 00011111b ) then key = 6 end; end pollj-βys; 6 - 18 - actjiponj ey procedure; if ( ( key = 1 ) ) then command = c elf est; else if ( ( key = 3 ) ) then command = cjecord; else if ( ( key = 5 ) ) then command = c p\ay; else if ( ( key = 6 ) ) then command = cjdle; else if ( ( key = 2 ) or ( key = 4 ) ) then command = c none; key = 0; end actjipon cey; dspj:ommaπd: procedure; dsp_l = dspj.ommand ; dspj- = dspj:ommandjV, call delay end dspjϊommand; dsp_status: procedure; disp: procedure; pi = leds; call delay; call delay; call delay; call delay; pi = 0 ; call delay, call delay; call delay; call delay, pi = leds; call delay; call delay; call delay; call delay pi = 0 ; call delay, call delay call delay; call delay; pi = leds; call delay call delay; call delay; call delay; pi = 0 ; call delay, call delay call delay; call delay; end disp; disp jisp jϊtatus: procedure; leds = ( ( dsp_statusj- and OfOh ) or ( dsp talusj and Of ) ); call disp; end disp jisp tatus; flag error: procedure; leds = 01010101b; call disp; end flagjirror; wait orjisp: procedure; prev tate = state; state = s vait_for_dsp; call disp_state; dspjvait = 1; do while ( dspjvait = 1 ); dspjnt = ( shr( ppl j ϊ, 2) and Olh ); if ( dspjnt = OOh ) then dspjvait = 0; call dispjoll; end; state * prey_state; call disp_state; call dsp tatus; end wait ΌΓ jisp; dspjdle: procedure; dspj-ommandj-: = Oh; dspj.omm.and 1 = Oh; call dsp command; call wait JOT jisp; temp = dsp tatus i and llllOOOOb; if ( temp < > Oh ) then call flagjirror; end dspjdle; dsp elf est: procedure; dsp command h = lOllOOOOb; dspj-ommandj = OOOOOOOOb; call dspjiommand; call wait j * orj_sp; temp = dsp juatus i and llllOOOOb; if ( temp < > 10110000b ) then call flagjirror; validjnsgs = 0; ncxtJoj.lay = 0; end dspj.elf_test; dsp jecord: procedure; dsp coramaπd h = OOOlOOOOb; dsp_command_l = OOOOOOOOb; call dsp command; call wait jOr isp; temp = dsp tatus iand llllOOOOb; if ( temp < > OOOlOOOOb ) then call flagjirror; end dsp jecord; dspj lay procedure; dsp .on.mand h = OOlOOOOOb; dsp j :ommand_l = next Jojplay; call dspj.ommand; call waitjOrjisp; temp = dsp tatus h and llllOOOOb; if ( temp < > OOlOOOOOb ) then call flagjirror; dsp j -ommandj^ = OOlOOOOOb; dspj:ommand_l = OOOOOOOOb; call dspj.om.mand; call wait j"orjlsp; temp = dspjtfatus i and llllOOOOb; if ( temp < > OOlOOOOOb ) then call flagjirror; dsp vaitl = 1; playj-ount = 0; do while ( dsp waitl = 1 ); call delay; call delay, call delay; call delay; call delay; call delay; call delay; call delay; playjiount = playjrount + 1; dsp ommandj. = OOlOOOOOb; dsp command I = next to j lay; call dspj:ommaπd; call wait jOr jisp; temp = dsp tatus i and llllOOOOb; if ( temp < > OOlOOOOOb ) then call flag j irror; temp = dsp_status_l and OOOlOOOOb; if ( temp = OOOlOOOOb ) then dspjvaitl = 0; end; end dspjjlay; task_selfjest: procedure; state = s_self_test; call disp tate; call dsp_self_test; call disp j isp tatus; call dspjdle; call disp jisp status; state = sjdle; call disp_state; end task elf Jest; taskjdle: procedure; call dspjdle; call disp jisp tatus; if ( state = s ecord ) then 6 - 20 - do; validjnsgs = validjnsgs + 1; leds = valid msgs; call disp; nextjojecord = validjnsgs + 1; leds = next o record; call disp; end; state = sjdle; call disρ_state; end taskjdle; task ecord: procedure; call dsp jecord; call disp jisp tatus; state = sj-ecord; call disp tate; end taskjecord; taskj lay procedure; leds = next oj-lay; call disp; state = sjilay; call disp tate; call dsp j lay call disp jisp tatus; call dspjdle; call dispjisp_status; state = s j dle; call disp tate; nextJoj>lay = next oj>lay + 1; end taskj_Iay init: sp = 50h; /* allocate stack */ ppl_control = llOOOOOlb; /* 8255 mode2 and modeO */ key = 0; /* no key pushed */ command = c j ione; /* no command pending */ state = s j start; call disp tate; . task_scheduler: do while 1; call polMceys; if ( key < > 0 ) then call actjjpon cey; if ( command < > c j ione ) then do; if ( command = c_self est ) then call task_self est; else if { command = cjdle ) then call task idle; else if ( command = c ecord ) then call task record; else if ( command = cjjilay ) then call task j lay; command = cjione; /* command has been obeyed */ end; call dispjoll; end; end dsp; - 21 - 18255 Scode Sxref {symbols .8255: do; delay: procedure; declare ( dl, d2) byte; do dl = l to 32; do d2= l to 220; end; end; end delay $include(c:\espro\tools\51\reg51.dcl) declare( new, last) byte; declare( ppl », ppl_b, pplji, pplj:ontrol) byte a l ( 4000h) auxiliary; pi = llOOOOOOb; new = p3; sp = 50h; ppl control = llOOOOOlb; call delay call delay; pi = ppl_a; do while 1; ppljj = 55h; ppl J) » Oaah; end; do while 1; call delay; pl = rol( pi, 1 ); end; end .8255; - 22 - SWITCH Scode Sxref {symbols switch: do; delay procedure; declare ( dl, d2) byte; do dl=l to 32; do d2=l to 220; end; end; end delay $include(c\espro\tools\51\reg51.dcl) declare( new, last) byte; pi = llOOOOOOb; new = p3; last = new; sp = 50h; do while 1; call delay new = p3; new = new and 00111111b; if ( new < > 00111111b ) then do; last = new; if new = 00111110b then pi = OOOOOOOlb; else if new = OOllllOlb then pi = OOOOOOllb; else if new = OOlllOllb then pi = OOOOOlllb; else if new = 00110111b then pi = 00001111b; else if new = OOlOllllb then pi = OOOlllllb else if new = OOOlllllb then pi = 00111111b; call delay call delay call delay call delay call delay call delay call delay call delay end; else do; pi = rol( pi, 1 ) ; end; end; end switch; BSTITUTE SHEET 6 - 23 - ANNEX 2 NetList No. 1 CPU poration ALL RIGHTS (cell root (status (Written (TimeStamp 1991 12 8 044 14) (comment "The ABOVE TimeStamp is local time") (comment " December 8, 1991") 626 - 24 - (comment "Sheet 2 of 7") (comment "DOCUMENT NUMBER E.S.PNS.BB1.02") (comment "REVISION 1.1") (comment TITLE PNS BB1 Controller Block") (comment "ESPRO computers ltd.") ) ) (view NETLIST root _NET (interface (define input port VCC) (define input port GND) (define input port VSS) ) (contents (instance (qualify INTEL LIB X 8031) X 8031 NET U301) (instance (qualify DEVICE LIB X_10K) X_10K_NET R301) (instance (qualify DEVICE " LIB SW PUSHBUTTON) SW PUSHBUTTON NET SW301) (instance (qualify TTL_LIB X_74HC373) X_74HC373_NET U302) (instance (qualify MEMORY LIB X_27256) X 27256 NET U303) (instance (qualify MEMORY~LIB X 43256) X~43256 NET U304) (instance (qualify DEVICE LΪB X_luK) X 10K NET~R302) (instance (qualify TTL LIB~X 74HC00) X 74HC00 NET U305A) (instance (qualify TT LIB X~74HC00) X~74HC_0~NET U305B) (instance (qualify TTL LIB X~74HC00) X~74HC00 NET U305C) (instance (qualify TTLjUB X~74HCO0) X~74HC_0~NET U305D) (joined (qualify R302 X 1) (qualify U301 EABARVP BAR) ) (joined (qualify SW301 X_1) (qualify R301 X 1) (qualify U301 RESET) ). (joined (qualify U301 PSEN) (qualify U305A II) (qualify U303 OE BAR) ) , (joined (qualify U301 ALEBARP_BAR) (qualify U302 G) ). (joined VSS (qualify U301 VSS) ) (joined (qualify U305A O) (qualify U305B 10) (qualify U305B U) ) (joined 6 - 25 - (qualify U305B O) (qualify U304 OE) ) (joined (qualify U304 CS) (qualify U305C O) ) (joined (qualify U305D VCC) (qualify U305C II) (qualify U305C VCC) (qualify U305B VCC) (qualify U305A VCC) (qualify U303 VCC) (qualify U302 VCC) (qualify U301 VCC) VCC (qualify SW 301 X 2) ) (joined (qualify U305D GND) (qualify U305C GND) (qualify U305B GND) (qualify U305A GND) (qualify U303 VPP) (qualify U303 GND) (qualify R301 X 2) (qualify U302 GND) (qualify U302 OC) GND qualify R302 X_2) SUBSTITUTE SHEET - 26 - NetList No. 2 User Interface Loading "C:\ORCAD\LIB\AVLLIB" Loading "C:\ORCAD\LIB\DEVICE.LIB" Loading "C:\ORCAD\LIB\DEVICEl.LIB" Loading "C:\ORCAD\LIB\DEVICE2.LIB" Loading "C:\ORCAD\LIB\INTERFACLIB" Loading "C:\ORCAD\LIB\MEMORY.LIB" Loading "C:\ORCAD\LIB\TTL.LIB" Loading "C:\ORCAD\LIB\TTLl.LIB" Loading "C:\ORCAD\LIB\ANALOG.LIB" Loading "C:\ORCAD\LIB\INTEL.LIB" Loading "C:\ORCAD \LIB\BAR.LIB" Opening "C:\ORCAD\SCH\pns bb 3" Opening "C:\ORCAD\SCH\pns~bb~3" Opening "C:\ORCAD\SCH\pns bb~3" (EDIF pns_bb_3 (status (EDIFVersion 1 10) (EDIFLevel O) (Written (TimeStamp 1991 1212 74732) (comment The ABOVE TimeStamp is local time") (accounting Program "NETLIST.EXE") (accounting Program Version " V3.10 15-Apr-88") (comment "(C) Copyright 1985,1986,1987 OrCAD Systems Corporation ALL RIGHTS RESERVED.") ) ) (external AVI LIB) (external DEVICE LIB) (external DEVICEΪ LIB) (external DEVICE2~LIB) (external INTERFAC LIB) (external MEMORY_LIB) (external TTL_LIB) ~ (external TTLΪ LIB) (external ANALOG LIB) (external INTEL LIB) (external BAR LΪB) (design pns_bb_3 (qualify lib root)) (library lib Building Network "pnsj b 3" Opening "C:\ORCAD\SC l\pns_bb 3" ........................ . < < - WARNING > > > Unconnected LABEL X= 7.00 Y= 1.40 "P3 (0..5)" < < < WARNING > > > Unconnected LABEL X = 7.00 Y = 4.40 "PI (0..7)" (cell root (status (Written (TimeStamp 1991 12 8 04532) (comment The ABOVE TimeStamp is local time") 26 - 27 - (comment " December 8, 1991") (comment "Sheet 3 of T) (comment "DOCUMENT NUMBER E.S.PNS.BB1.03") (comment "REVISION 1.1") (comment TITLE PNS BB1 User Interface Block") (comment "ESPRO computers ltd.") ) ) (view NETLIST root jNET (interface (define input port VCC) (define input port GND) ) (contents (define local signal P3 0 5 (rename P3__0_5_ "P3 (O.i)")) (define local signal P3 0 ' (rename P3_0 "P3.0")j " (define local signal P3 1 (rename P3_l "P3.1")J (define local signal P3 2 (rename P3_2 "P3.2") (define local signal P3 3 (rename P3_3 "P3.3")j " (define local signal P3 4 (rename P3_4 "P3.4") j " (define local signal P3 5 (rename P3_5 "P3.5")) " (define local signal PI 0 7 (rename Pl_0_7_ "PI (0..7)")) (instance (qualify DEVICE LIB X lOOK) X lOOK NET R104) (instance (qualify DEVICE~LIB X _ 100K) X~100K~NET R103) (instance (qualify DEVICE~LIB X " l00K) X~100K~NET R102) (instance (qualify DEVICE~LIB x ' lOOK) X~100K_NET R101) (instance (qualify DEVICE " LIB X ' lOOK) X~100K NET R105) (instance (qualify DEVICE~LIB X ' lOOK) X~100K~NET R106) (instance (qualify DEVICE~LIB SW SPST) SW SPST NET SW101) (instance (qualify DEVICE~LIB SW~SPST) SW _ SPST~NET SW102) (instance (qualify DEVICE~LIB SW~SPST) SW~SPST~NET SW103) (instance (qualify DEVICE~LIB SW~SPST) SW " SPST~NET SW104) (instance (qualify DEVICE~LIB SW~SPST) SW " SPST _ NET SW105) (instance (qualify DEVICE~LIB SW~SPST) SW~SPST~NET SW106) (instance (qualify DEVICE~LIB LED) LED NET D10~l) (instance (qualify DEVICE~LIB LED) LED~NET D102) (instance (qualify DEVICE~LIB LED) LED~NET D103) (instance (qualify DEVICE~LIB LED) LED~NET D104) (instance (qualify DEVICE~LIB LED) LED~NET D105) (instance (qualify DEVICE~LIB LED) LED NET D106) (instance (qualify DEVICE~LIB LED) LED~NET D107) (instance (qualify DEVICE JB LED) LEDjNET D108) (joined (qualify R101 X 2) (qualify SW101 NO) P3 0 626 - 28 - ) (joined (qualify R102 X 2) (qualify SW102 NO) P3 . ) (joined (qualify R103 X 2) (qualify SW103 NO) P3_2 ) . (joined (qualify R104 X 2) (qualify SW104 NO) P3_3 ) . (joined (qualify R105 X_2) (qualify SW105 NO) P3 4 ) ~ (joined (qualify R106 X 2) (qualify SW106 NO) P3_5 ) (joined (qualify SW101 COMMON) (qualify SW102 COMMON) (qualify SW103 COMMON) (qualify SW104 COMMON) (qualify SW105 COMMON) (qualify SW106 COMMON) GND (joined (qualify D101 ANODE) (qualify D102 ANODE) (qualify D103 ANODE) (qualify D104 ANODE) (qualify D105 ANODE) (qualify D106 ANODE) (qualify D107 ANODE) (qualify D108 ANODE) VCC (qualify R102 X 1) (qualify R101 X~l) (qualify R103 X~1) (qualify R104X_1) (qualify R105 X_1) (qualify R106 X 1) ) ) ) - 29 - ) ) ) SUBSTITUTE SHEET 626 - 30 - NetList No.3 Code reader (TimeStamp 1991 12 12 74753) (comment The ABOVE TimeStamp is local time") (accounting Program "NETLIST.EXE") (accounting Program Version " V3.10 15-Apr-88") (comment "(C) Copyright 1985,1986,1987 OrCAD Systems Corporation ALL RIGHTS RESERVED.") ) ) (external A VI LIB) (external DEVICE LIB) (external DEVICEΪ LIB) (external DEVICE2 LIB) (external INTERFAC LIB) (external MEMORY Ϊ.IB) (external TTLJLIB) (external TTL1 LIB) (external ANALOG LIB) (external INTEL LIB) (external BAR LIB) (design pns .b_4 (qualify lib root)) (library lib Building Network "pns bb T Opening "C:\ORCAD\SCH\pns_bb_4" .***.*.* ♦ *. , _*_, ♦ , ♦,♦*, < < <WARNING> > > Unconnected POWER X= 6.00 Y= 1.00 "GND" ******** (cell root (status (Written (TimeStamp 1991 12 8 14522) (comment The ABOVE TimeStamp is local time") (comment " December 8, 1991") (comment "Sheet 4 of 7") 26 - 31 - (comment "DOCUMENT NUMBER E.S.PNS.BB1.04") (comment "REVISION 1.1") (comment TITLE PNS BB1 Pen Decoder Block") (comment "ESPRO computers ltd.") ) ) (view NETLIST root _NET (interface (define input port VCC) (define input port GND) ) (contents (instance (qualify DEVICE LIB X 15 PF) X 15 PF NET C201) (instance (qualify DEVICE~LIB X~15~PF) X~15~PF~N__T C202) (instance (qualify DEVICE~LIB SW SPST) S " wj_PST NET SW201) (instance (qualify DEVICE~LIB X Ϊ00K) X lOOK NET R201) (instance (qualify TTL LIB~X 74157) X 74157 NET U202) (instance (qualify BAR~ LIB DL3) DL3 NET U201) (instance (qualify DEVICE LIB X 2K2) X 2K2 NET R202) (instance (qualify DEVICE~LIB X~470) X " 470 NET R203) (instance (qualify DEVICE~LIB X~1N4148J X " lN4148 NET D201) (instance (qualify DEVICE " LIB LED) LED NET D202) (instance (qualify DEVICE~LIB X 0U1) X 0U1 NET C203) (instance (qualify DEVICE~LIB X~1N4148) " X 1N4148 NET D203) (instance (qualify DEVICE " LIB X~1N4148) X " lN4148~NET D204) (instance (qualify DEVICE LIB X~1N4148) x " lN4148~NET D205) (instance (qualify DEVICE~LIB X~1N4148) X~1N4148~NET D206) (instance (qualify DEVICE~LIB X~1N4148) X~1N4148~NET D207) (instance (qualify DEVICE~LIB X~1N4148) X~1N4148~NET D208) (instance (qualify DEVICE~LIB X " lN4148) X " lN4148-NET D209) (instance (qualify DEVICE~LIB X~1N4148) X~1N4148~NET D210) (instance (qualify DEVICE _ LIB X " lN4148) X~1N4148~ NET D211) (instance (qualify DEVICE~LIB X~1N4148) X " lN4148~NET D212) (instance (qualify DEVICE~LIB X~1N4148) X~1N4148~NET D213) (instance (qualify DEVICE~LIB X~1N4148) X~1N4148~NET D214) (instance (qualify DEVTCE " LIB X " l00K) X 100K NET R206) (instance (qualify DEVICE JB X~100K) X~100K~NET R205) (instance (qualify DEVICE LIB X~100K) X~100K~NET R207) (instance (qualify DEVICE~LIB X~100K) X~lO0__~NET R208) (instance (qualify DEVICE~LIB SW SPST) SW SPST NET SW202) (instance (qualify DEVICE~LIB SW " SPST) SW~SPST~NET SW203) (instance (qualify DEVICE~LIB SW ' SPST) SW~SPST~NET SW204) (instance (qualify DEVICE~LIB SW " SPST) SW~SPST~NET SW205) (instance (qualify DEVICE~LIB SW~SPST) SW~SPST~NET SW206) (instance (qualify DEVICE~LIB SW~SPST) SW~SPST~NET SW207) (instance (qualify DEVICE~LIB SW~SPST) SW " SPST~NET SW208) (instance (qualify DEVICE~LIB SW~SPST) SW~SPST~NET SW209) (instance (qualify DEVICE~LIB SW~SPST) SW~SPST~NET SW210) (instance (qualify DEVICE~LIB SW " SPST) SW " SPST~NET SW211) (instance (qualify DEVICE~LIB SW~SPST) SW~SPST~NET SW212) (instance (qualify DEVICE~LIB SW " SPST) SW~SPST~NET SW213) (instance (qualify DEVICE~LIB X ΪCOK) X lOOK NET R204) (instance (qualify DEVICE~LIB x ' lOUF) X~ 10UF NET C204) (instance (qualify DEVICE~LIB X~4U7) X 4U7 NET C205) SUBSTITUTE SHEET 6 - 32 - (instance (qualify DEVICE LIB X 10K) X 10K NET R210) (instance (qualify DEVICEJLIB X~1N4148) X fN4148 NETD216) (instance (qualify DEVICE_LIBSW PUSHBUTTON) _ SW PUSHBUTTON NET SW214) (instance (qualify DEVICE LIBX 10K)X_10K NETR209) (instance (qualify DEVICE~LIB X~10K) X_10KjNET R211) (instance (qualify DEVICE~LIBX_49152jMHZ) X_4_9152 MHZ NETX201) (instance (qualify DEVICEJLIB X22) X22 NET R212) (instance (qualify DEVICE LIB BUZZER) BUZZERNET BZ201) (instance (qualify DEVICE _ LIB BC337) BC337 NET Q201) (instance (qualify DEVICE~LIB X_1N4148) X_ΪN4148jET D217) (instance (qualify DEVICELIBX 1N4148) X_1N4148 NETD215) (instance (qualify DEVICE LIBX .K7)X 4K7 NETR213) (instance (qualify BAR_LIB * PEN) PENjET PEN201) (joined (qualify R203X_2) (qualify D202 CATHODE) ) (joined (qualify U202 X I Y) (qualify U201VID) ) (joined (qualify U202X_2Y) (qualify U201 XBR) ) . (joined (qualify R204X_2) (qualify U202X_2B) ) (joined (qualify U202X 3Y) (qualify U201H4) ) ^ (joined (qualify D216 CATHODE) (qualify R209X 1) (qualify C205X~1) (qualify R210 X I) (qualify U201 RES) ) (joined (qualify D216 ANODE) (qualify R210X 2) (qualify C204X~1) (qualify U202 ABARB_BAR) ) (joined (qualify D215 ANODE) (qualify SW214X_2) ) (joined (qualify U201ISB) (qualify R211X_2) 6 - 33 - ) (joined (qualify X201 X 2) (qualify C201 X~l) (qualify U201 Xl) ) (joined (qualify X201 X 1) (qualify C202 X~2) (qualify U201 X2) ) (joined (qualify SW201 NO) (qualify R201 X 2) (qualify U201 SBARP) ) (joined (qualify U201 CBO) (qualify D206 ANODE) (qualify D210 ANODE) (qualify R208 X 2) (qualify D214 ANODE) ) (joined (qualify U201 CB1) (qualify D205 ANODE) (qualify D209 ANODE) (qualify R207 X 2) (qualify D213 ANODE) ) # (joined (qualify U201 CB2) (qualify D204 ANODE) (qualify D208 ANODE) (qualify R206 X 2) (qualify D212 ANODE) ) (joined (qualify U201 CB3) (qualify D203 ANODE) (qualify D207 ANODE) (qualify R205 X 2) (qualify D211 ANODE) ) . (joined (qualify U201 ES2) (qualify SW210 NO) (qualify SW211 NO) (qualify SW212 NO) (qualify SW213 NO) ) (joined (qualify U201 VCC) (qualify C203 X_l) SUBSTITUTE SHEET 26 - 34 - (qualify R212 X_l) (qualify R201 X_l) (qualify R205 X ) (qualify R206 X_l) (qualify R207 X_1) (qualify R208 X_l) (qualify U201 HI) (qualify U201 H2) (qualify U201 H3) (qualify R211 X 1) (qualify D215 CATHODE) (qualify R209 X 2) (qualify U202 VCC) (qualify R204 X_l) (qualify R202X 2) (qualify D201 CATHODE) (qualify D202 ANODE) ' VCC (qualify U202 X_1A) (qualify U202 X 2A) (qualify U202 X~3A) (qualify U202 X~3B) (qualify U202 X 4A) (qualify U202 XJ.B) ) (joined (qualify D203 CATHODE) (qualify SW202 COMMON) ) (joined (qualify D204 CATHODE) (qualify SW203 COMMON) ) , (joined (qualify SW204 COMMON) (qualify D205 CATHODE) ) . (joined (qualify D206 CATHODE) (qualify SW205 COMMON) ) (joined (qualify D207 CATHODE) (qualify SW206 COMMON) ) (joined (qualify D208 CATHODE) (qualify SW207 COMMON) ) (joined (qualify D209 CATHODE) (qualify SW208 COMMON) ) (joined 26 - 35 - (qualify D210 CATHODE) (qualify SW209 COMMON) ) (joined (qualify D211 CATHODE) (qualify SW210 COMMON) ) (joined (qualify SW211 COMMON) (qualify D212 CATHODE) ) t (joined (qualify SW212 COMMON) (qualify D213 CATHODE) ) (joined (qualify SW213 COMMON) (qualify D214 CATHODE) ) < (joined (qualify R212 X 2) (qualify BZ201 B) ) (joined (qualify SW202 NO) (qualify U201 ESI) (qualify SW203 NO) (qualify SW204 NO) (qualify SW205 NO) ) (joined (qualify SW206 NO) (qualify U201 ES3) (qualify SW207 NO) (qualify SW208 NO) (qualify SW209 NO) ) (joined (qualify BZ201 A) (qualify Q201 COLLECTOR) (qualify D217 ANODE) ) (joined (qualify Q201 BASE) (qualify R213 X 1) ) (joined (qualify R213 X_2) (qualify U201 FBC) ) t (joined (qualify Q201 EMITTER) (qualify C203 X 2) (qualify SW201 COMMON) SUBSTITUTE SHEET (qualify C202 X I) (qualify C201 X 2) (qualify U201 GND) (qualify SW214 X 1) (qualify U202G) ~ (qualify C204X 2) (qualify C205 X~2) (qualify U202 G D) GND ) ) - 37 - NetLlst No.4 Selector interface Loading "C:\ORCAD\LIB\AVI.LIB" Loading "C:\ORCAD\LIB\DEVICE.LIB" Loading "C:\ORCAD\LIB\DEVICEl.LIB" Loading "C:\ORCAD\LIB\DEVICE2XIB" Loading "C:\ORCAD\LIB\lNTERFAC.LIB" Loading "C:\ORCAD\LIB\MEMORY.LIB" Loading "C:\ORCAD\LIB\TTL.LIB" Loading "C:\ORCAD\LIB\TTLl.LIB" Loading "C:\ORCAD\LIB\ANALOG.LIB" Loading "C:\ORCAD\LIB\INTEL.LIB" Loading "C:\ORCAD\LIB\BAR.LIB" Opening "C:\ORCAD\SCH\pns_bb 5" Opening "C:\ORCAD\SCH\pns bb~5" Opening "C:\ORCAD\SCH\pns~bb 5" (EDIF pns_bb_5 (status (EDIFVersion 1 1 0) (EDIFLevel 0) (Written (TimeStamp 1991 12 12 748 17) (comment The ABOVE TimeStamp is local time") (accounting Program "NETLIST.EXE") (accounting Program Version " V3.10 15-Apr-88") (comment "(C) Copyright 1985,1986,1987 OrCAD Systems Corporation ALL RIGHTS RESERVED.") ) ) (external AVI LIB) (external DEVICE LIB) (external DEVICEΪ LIB) (external DEVICE2~LIB) (external INTERFAC LIB) (external MEMORY_LIB) (external TTL LIB) ~ (external TTLΪ LIB) (external ANALOG LIB) (external INTEL LIB) (external BAR LIB) (design pnsj b . (qualify lib root)) (library lib Building Network "pns bb 5" Opening "C:\ORCAD\SCH\pns_bb_5" ************************ ******** (cell root (status (Written (TimeStamp 1991 12 12 74038) (comment The ABOVE TimeStamp is local time") (comment " December 12, 1991") (comment "Sheet 5 of 7") (comment "DOCUMENT NUMBER E.S.PNS.BB1.05") (comment "REVISION 1.1") 26 - 38 - (comment TITLE PNS BB1 Decoder Interface Block") (comment "ESPRO computers ltd.") ) ) (view NETLIST rootjMET (interface (define input port VCC) (define input port GND) ) (contents (instance (qualify INTEL_LIB X 8255) X 8255 NET U401) (instance (qualify TTL_LIB X 74HC00) X 74HC00 NET U402B) (instance (qualify TTL LIB X~74HC00) XJ74HCO0 NET U402A) (instance (qualify DEVΪCEJ TB XJ.0K) X 10K NET R401) (joined (qualify U402B O) (qualify U401 CS_BAR) ) (joined (qualify U402B II) (qualify U402A O) ) (joined (qualify R401 X 2) (qualify U402AΪ0) ) (joined (qualify U402A VCC) (qualify R401 X 1) (qualify U402B VCC) VCC (qualify U401 VCC) ) (joined (qualify U402A GND) (qualify U401 GND) GND (qualify U402B GND) ) ) ) ) ) ) - 39 - NetList No. 5 DSP interface Loading "C:\ORCAD\LIB\AVLLIB" Loading "C:\ORCAD\LIB\DEVICE.LIB" Loading "C:\ORCAD\LIB\DEVICEl.LIB" Loading "C:\ORCAD\LIB\DEVICE2.LIB" Loading "C:\ORCAD\LIB\INTERFACLIB" Loading "C:\ORCAD\LIB\MEMORY.LIB" Loading "C:\ORCAD\LIB\TTL.LIB" Loading "C:\ORCAD\LIB\TTLl.LIB" Loading "C:\ORCAD\LIB\ANALOG.LIB" Loading "C:\ORCAD\LIB\INTEL.LIB" Loading "C:\ORCAD\LIB\BAR.LIB" Opening "C:\ORCAD\SCH\pns bb 6" Opening "C:\ORCAD\SCH\pns~bbj5" Opening "C:\ORCAD\SCH\pns~bb 6" (EDIF pns_bb_6 (status (EDIFVersion 1 1 0) (EDIFLevel O) (Written (TimeStamp 1991 12 12 74835) (comment The ABOVE TimeStamp is local time") (accounting Program "NETLIST.EXE") (accounting Program Version " V3.10 15-Apr-88") (comment "(C) Copyright 1985,1986,1987 OrCAD Systems Corporation ALL RIGHTS RESERVED.") ) ) (external AVI LIB) (external DEVICE LIB) (external DEVICEΪ LIB) (external DEVICE2~LIB) (external INTERFAC LIB) (external MEMORY_LIB) (external TTL LIB) ~ (external TTLΪ LIB) (external ANALOG LIB) (external INTEL_LIB) (external BAR LIB) (design pns_bb > (qualify lib root)) (library lib Building Network "pns bbj5" Opening "C:\ORCAD\SCH\pns_bb_6" * * ********************** ~ ~ ******** (cell root (status (Written (TimeStamp 1991 12 12 737 6) (comment The ABOVE TimeStamp is local time") (comment " December 12, 1991") (comment "Sheet 6 of 7") (comment "DOCUMENT NUMBER E.S.PNS.BB1.06") (comment "REVISION 1.1") SUBSTITUTE SHEET 6 - 40 - (comment TITLE PNS BB1 DSP Interface Block") (comment "ESPRO computers ltd.") ) ) (view NETLIST root _NET (interface (define input port VCC) (define input port GND) ) (contents (instance (qualify TTL LIB XJ74HC652) X 74HC652 NET U501) (instance (qualify TTL~LIB X 74HC652) X-74HC652_NET U502) (instance (qualify TTL_LIB X 74HC04) X 74HC04 NET U503A) (instance (qualify TTL LIB XJ74HCO0) X~74HCO0~NET U504A) (instance (qualify TTL LIB X 74HC32) X~74HC32~N__T U505A) (instance (qualify TTL LIB XJ74HC32) X 74HC32 NET U505B) (instance (qualify TTLj-JB X 74HC32) X~74HC32~NET U506A) (instance (qualify TTL_LIB X_74HC32) X~74HC32 " NET U506B) (instance (qualify TTL_LIB X 74HC32) X~74HC32 _ NET U506D) (instance (qualify TTL_LIB XJ74HC32) x " 74HC32~NET U506C) (instance (qualify DEVICE LIB X 10K) X 10K NET R501) (instance (qualify DEVICE _ LIB X~10K) X OKJ ET R502) (instance (qualify TTL_LIB " X 74HC04) X 74HC04 NET U503B) (instance (qualify TTL LIB XJ74HC74) X 74HC74JNET U507B) (instance (qualify TTLJLIB X_74HC74) X " 74HC74_NET U507A) (instance (qualify TTL LIB XJ74HC04) X 74HC04 NET U503C) (instance (qualify DEVΪCE LIB X 10K) X 10K NET R503) (instance (qualify DEVICE_LIB X_10K) X_10K~NET R504) (joined (qualify U506A O) (qualify U501 GBA) ) (joined (qualify U501 GAB) (qualify U502 GAB) (qualify U507A CL) (qualify U503C O) ) (joined (qualify U501 SAB) (qualify U501 SBA) (qualify R501 X_2) ) (joined (qualify U501 CBA) (qualify U502 CBA) (qualify U507B CLK) ) (joined (qualify U506B O) (qualify U501 CAB) ) (joined (qualify U505B O) - 41 - (qualify U506B II) (qualify U506C II) ) (joined (qualify U505B II) (qualify U504A O) (qualify U505A II) (joined (qualify U503A O) (qualify U504A 10) (joined (qualify U503B I) (qualify U506A 10) (qualify U506B 10) ) Coined (qualify U503B O) (qualify U506D 10) (qualify U506C 10) Coined (qualify U502 SAB) (qualify U502 SBA) (qualify R502 X 2) ) (joined (qualify U506D O) (qualify U502 GBA) ) (joined (qualify U507B PR) (qualify R504 X 2) (qualify U507B D) (joined (qualify U5 6C O) (qualify U502 CAB) (qualify U507A CLK) ) Coined (qualify U507A VCC) (qualify U503C VCC) (qualify U507B VCC) (qualify U506C VCC) (qualify R503 X 1) (qualify R504 X~l) (qualify R502 X~1) (qualify U506D VCC) (qualify U503B VCC) (qualify U502 VCC) (qualify U504A VCC) (qualify U503A VCC) SUBSTITUTE SHEET 6 - 42 - (qualify U505B VCC) (qualify U506B VCC) (qualify R501 X 1) (qualify U505A VCC) (qualify U506A VCC) (qualify U501 VCC) VCC ) (joined (qualify U507A D) (qualify U507A PR) (qualify R503 X_2) ) (joined (qualify U507B CL) (qualify U505A O) . (qualify U506D II) (qualify U506A II) ) (joined (qualify U507A GND) (qualify U507B GND) (qualify U506C GND) (qualify U503C GND) (qualify U502 GND) (qualify U506D GND) (qualify U503B GND) (qualify U504A GND) (qualify U503A GND) (qualify U505B GND) (qualify U506B GND) (qualify U501 GND) (qualify U505A GND) (qualify U506A GND) GND ) ) ) ) ) ) 6 - 43 - NctUst No.6 DSP Loading "C:\ORCAD\LIB\AVI.LIB" Loading "C:\ORCAD\LIB\DEVICE.LIB" Loading "C:\ORCAD\LIB\DEVICEl.LIB" Loading "C:\ORCAD\LIB\DEVICE2.LIB" Loading "C:\ORCAD\LIB\INTERFACLIB" Loading "C:\ORCAD\LIB\MEMORY.LIB" Loading "C:\ORCAD\UB\TTL.LIB" Loading "C:\ORCAD\LIB\TTLl.LIB" Loading "C:\ORCAD\LIB\ANALOG.LIB" Loading "C:\ORCAD\LIB\INTEL.LIB" Loading "C:\ORCAD\LIB\BAR.LIB" Opening "C:\ORCAD\SCH\pns bb 7" Opening "C:\ORCAD\SCH\pns~bb~7" Opening "C:\ORCAD\SCH\pns~bb~7" (EDIF pns_bb_7 (status (EDIFVersion 1 1 0) (EDIFLevel 0) (Written (TimeStamp 1991 12 12 74857) (comment The ABOVE TimeStamp is local time") (accounting Program "NETLIST.EXE") (accounting Program Version " V3.10 15-Apr-88") (comment "(C) Copyright 1985,1986,1987 OrCAD Systems Corporation ALL RIGHTS RESERVED.") ) ) (external AVI LIB) (external DEVICE LIB) (external DEVICEΪ LIB) (external DEVICE2~LIB) (external INTERFAC LIB) (external MEMORY_IlB) (external TTL LIB) (external TTLΪ LIB) (external ANALOG LIB) (external INTEL_LIB) (external BAR LIB) (design pnsjjbJ7 (qualify lib root)) (library lib Building Network "pns bb 7" Opening "C:\ORCAD\SCH\pns_bb_7" c*******************************- (cell root (status (Written (TimeStamp 1991 12 12 735 0) (comment The ABOVE TimeStamp is local time") (comment " December 12, 1991") (comment "Sheet 7 of 7") (comment "DOCUMENT NUMBER E.S.PNS.BB1.07") (comment "REVISION 1.1") 6 - 44 - (comment TITLE PNS BB1 DSP Block") (comment "ESPRO computers ltd.") ) ) (view NETLIST root _NET (interface ) (contents (instance (qualify BAR_LIB DSPG6005) DSPG6005_NET U701) (instance (qualify BARJLIB TAPE) TAPE NET TAPE701) (instance (qualify DEVICE LIB SPEAKER) SPEAKER NET SP701) ) ) ) ) )

Claims: C L A I M S 1. Portable random access audio recording and playback apparatus comprising: a portable enclosure; a random access solid state memory disposed in the enclosure for recording, storing and playing back audio information; and operator actuated means for selecting information to be played back. 2. Apparatus according to claim 1, and also comprising means for downloading compressed audio information from an.audio information source to said solid state memory. 3. Apparatus according to either of the preceding claims, and wherein said operator actuated means for selecting information include code reader apparatus. 4. Apparatus according to any of the preceding claims, and wherein said operator actuated means for selecting information includes wireless information communication means. 5. Apparatus according to any of the preceding claims, and also comprising means for up-loading compressed audio information from said solid state memory to audio information utilization apparatus. 6. Apparatus according to any of the preceding claims, and wherein said random access solid state memory comprises means for storing audio information in a compressed format.

Inventors: GOLDBERG SHMUEL, ORON GEORA, GOLDBERG, SHMUEL, ORON, GEORA
Applicants: GOLDBERG SHMUEL, ORON GAL, ORON GEORA, GOLDBERG, SHMUEL, ORON, GAL, ORON, GEORA
Application year: 1991
Main classification: G10K15
IPC codes: G11C7