Sponsored by BoysStuff.co.uk

                      MPO, The Morse Practice Oscillator.

  Hi there again, it's your resident AMIGA nutter... :)


  This is a simple home made Morse 'Key' along with a Practice Oscillator
  using ANY Classic AMIGA OR WinUAE, (using the special Games Port Adaptor
  Cable as described in Issue 51 of 'www.thecryptmag.com'). The accompanying
  Morse Code article to this one is to aid you to learning Morse Code and
  'sending' the code to someone else.

  Now start building and then practicing your Morse Code. :)


  Absolute Minimum Requirements:-

  1) ANY Classic AMIGA, (even a bog standard A500).
  2) OS1.3x or greater.
  3) WinUAE with a PC Games Port and the special Games Port Adaptor Cable
     as described in  Issue 51, AND, full
     sound enabled.
  4) OCS.
  5) The extremely simple home built hardware and matching software.
  6) Any suitable image displaying software. Both HAM and JPG formats
     will be in the finalised full archive.
  7) This is GPL, (and InsultWare :).



                   |                          |
                   |                          |
  Pin 6. O---------+                          |
                                              * /
  SK1, 9 pin ~D~ type socket.                  / SW1, momentary close.
  Pin 8. O---------+                          |
                   |                          |
                   |                          |

  Parts List:-

  1) SW1...........................  Momentary close switch. Example:-
                                     Farnell 108-2438 or equivalent.
  2) SK1...........................  9 pin ~D~ type socket.
  3) Shell.........................  9 pin ~D~ type cover/shell.
  4) Box...........................  Small plastic box.
  5) Twin Connecting Wire..........  As required.
  6) Stick On Rubber Feet..........  4 off.
  7) Length Of Wire................  Any.
  8) Small Grommet.................  Any.

  All components obtained from any source.

  See attached photographs for the construction method.
  Click on the images for a larger version.




  1) Cheap.
  2) Childishly simple.
  3) Is this the only one available for the AMIGA!?!...




  1) Small battery drill.
  2) Drill bits suitable for the two holes in the plastic box.
  3) Small sutable screwdriver(s).
  4) Lead free solder.
  5) Soldering iron. USE WITH CAUTION.
  6) Pliers.
  7) Wire cutters.


  1) Open up the plastic box and using suitable drill bits, drill two
     holes, one at one end for the small grommet and one in the top/bottom
     for the switch.
  2) Fit the small grommet into the end hole and the switch into the
     top/bottom hole. Tighten the switch into place.
  3) Feed the twin wire through the grommet, strip, tin and solder to each
     of the tags on the switch.
  4) At the other end strip, tin and solder one part of the twin wire to
     pin 8 of the ~D~ type socket. This is the computer Ground, GND,
  5) Also strip, tin and solder the other part of the twin wire to pin 6 of
     the ~D~ type socket. This is the 'FIRE' button connection.
  6) Check your construction.
  7) CHECK IT AGAIN. Check for short circuit(s) on the socket.
  8) Check it a third time. REMEMBER, ANY error at this point can damage
     the computer.
  9) When you are happy that all is correct fit the cover onto the box with
     the four screws provided.
 10) Fit the four stick on feet
 11) Finally fit the cover assembly over the ~D~ type socket.
 12) You are now ready to roll... :)


  Using The Morse Practice Oscillator:-

  2) Connect the Morse 'Key' to the games port.
  3) Power UP the AMIGA.
  4) Go to the drawer where MPO is residing.
  5) Double click on MPO and......

  6) On program startup there will be a window as follows:-

  Morse Practice Oscillator. [This is in the window title bar.]

         (C)2007, B.Walker, G0LCU.

  (Q) to Quit, any other key to continue.

  7) On pressing ~Q~ or ~q~ the program will close down.
  8) On pressing any other key the window will change to as follows:-

  Morse Practice Oscillator. [This is in the window title bar.]

         (C)2007, B.Walker, G0LCU.

    Push the button to generate a tone.

    Push the Left Mouse Button to quit. [This is in a different colour.]

  9) Pressing the Morse 'Key' button will generate a tone. Releasing the
     button will silence the tone.
 10) When the Left Mouse Button is pressed you will be sent back to
     Part 6) again until you completely Quit the program.
 11) When you have finished switch OFF the AMIGA and disconnect the
     home built hardware.
     AS AN ADDENDUM......
 12) The software also works using a standard AMIGA digital joystick using
     the 'FIRE' button as the 'Key' so there is no need to build the simple
     hardware if you don't want to do so.

  Enjoy... :)


  ACE Basic Compiler GPL Code, MPO.b:-

REM MPO, Morse Practice Oscillator.
REM (C)2007, B.Walker, G0LCU.
REM ACE Basic Compiler, (C)David Benn.
REM Originally written for  the online magazine.
REM $VER: MPO_Version_0.52.00_(C)2007_B.Walker_G0LCU.

REM Setup a simple window.
  WINDOW 2,"Morse Practice Oscillator.",(0,0)-(320,100),6
  FONT "topaz.font",8
  COLOR 1,0
  LET a$="(C)2007, B.Walker, G0LCU."
  LOCATE 2,8
  PRINT a$
  LOCATE 6,1
  PRINT "(Q) to Quit, any other key to continue."

REM Hold using KB.
  IF a$="Q" OR a$="q" THEN GOTO safeclosedown:
  IF a$="" THEN GOTO keyloop:

REM Main operating instructions.
  LOCATE 2,8
  PRINT "(C)2007, B.Walker, G0LCU."
  LOCATE 5,3
  PRINT "Push the button to generate a tone."
  COLOR 2,0
  LOCATE 8,3
  PRINT "Push the Left Mouse Button to Quit."
  COLOR 1,0

REM The multitasking assembler routine.
	movem.l	d0-d7/a0-a6,-(sp)	;Save all registers just in case.
	movea.l	$4,a6			;Set ~execbase~.
	moveq	#16,d0			;Length of sine wave data.
	moveq	#2,d1			;Set to chip ram.
	jsr	-198(a6)		;Allocate memory for the task.
	beq	getout			;On error, Quit.
	move.l	d0,a0			;Set address in chip ram.
	lea.l	audiodata,a1		;Set pointer for data.
	moveq	#15,d1			;Set counter for data.
	move.b	(a1)+,(a0)+		;Move data to chip ram.
	dbf	d1,loop			;Do it.
	lea	$dff000,a5		;Set HW register base.
	move.w	#$000f,$96(a5)		;Disable audio DMA.
	move.l	d0,$a0(a5)		;Set address of audio data.
	move.w	#8,$a4(a5)		;Set length in words.
	move.w	#64,$a8(a5)		;Set volume to maximun.
	move.w	#250,$a6(a5)		;Set the period.
	move.w	#$00ff,$9e(a5)		;Disable any modulation.
	move.w	#$8201,$96(a5)		;Enable audio DMA.
	move.w	#0,$a8(a5)		;Set volume to minimum.
	btst	#6,$bfe001		;If LMB pressed then Quit.
	beq.s	closeme			;Do it.
	btst	#7,$bfe001		;If morse key not pressed...
	bne.s	wait			;Wait until it is then...
	move.w	#64,$a8(a5)		;Set volume to maximum.
	btst	#7,$bfe001		;If button is pressed...
	beq.s	tone			;play the tone until it is released...
	bra.s	notone			;then return to notone mode.
	move.w	#$000f,$96(a5)		;Disable audio DMA.
	move.l	d0,a1			;Address of the sine wave data.
	moveq	#16,d0			;The data length to recover.
	jsr	-210(a6)		;Free assigned memory.
	bra.s	getout			;Always go to a clean exit.
	dc.b	0,49
	dc.b	90,117
	dc.b	127,117
	dc.b	90,49
	dc.b	0,-49
	dc.b	-90,-117
	dc.b	-127,-117
	dc.b	-90,-49
	movem.l	(sp)+,d0-d7/a0-a6	;Restore all registers.
	clr.l	d0			;Set returm code OK.
  GOTO start:



  The Archive:-

  Until the full archive is released to AMINET you will have to compile
  the source code yourself using ACE Basic Compiler an excellent AmigaBASIC
  compiler, (C) David Benn. It is free on AMINET in the 'dev/basic/' drawer.

  It only requires OS2.0x and WILL compile for OS1.3x if required.

  The code is shown above and you will have to extract it from this text to
  be able to compile it. It is licenced under GPL and WILL be released as
  a proper code segment when the whole archive is uploaded to AMINET.
  The full archive will include the source code and compiled executeable.

  I hope you find/have found this simple project enjoyable and interesting.



    The Legal Stuff:-

    These programs are Freeware and no profit will be made from them,
    also all of the files must remain unaltered and intact including this
    one. The author is not responsible for any damage to, or loss of, or
    failure of equipment or data caused in any way by the use of these
    programs. There is NO warranty with the use of these software releases


    Testing Evaluation:-

    An A1200(HD) in 2MB, 6MB and 10MB modes using trapdoor memory AND/OR
    PCMCIA memory expansions. Also tested on an A600(HD) in 2MB and 6MB
    modes. All test conditions were/are running STANDARD KS2.0x to 3.1x,
    and using standard ~topaz 8~ fonts throughout.

    I have no idea what a strange configuration setup will create so refer
    to the ~The Legal Stuff~ above.



  1) DISCONNECT any faulty equipment under test from the MAINS supply.
  2) If a DC supply is used do NOT reverse polarity the connections.
  3) Do NOT power up any electronic item until it is safe to do so.
  4) CHECK and RECHECK all of your construction and repair work thoroughly.
  5) Handle ALL tools used with care.
  6) Beware of ALL types of solvents, glues and etching fluids.
  7) NEVER leave a soldering iron switched on unattended.
  8) KEEP everything OUT of the reach of small children.
  9) Switch OFF the AMIGA before disconnecting or connecting any hardware.
 10) And finally read 1) to 9) again.



   Mr Barry Walker, G0LCU.

   Email:-     wisecracker@tesco.net
   URL:-       http://homepages.tesco.net/wisecracker/G0LCU.HTM

   Author of the ~TestGear?~ projects in the ~docs/hard~ drawer of AMINET.


   A very useful HardWare related site, (C) Anthony Hoffman, for
   modifications, schematics, repairs and the like is:-




RIYAN Productions

AmigaZ Logo
Amiga Roundtable Podcast