
 1000  *---------------------------------
 1010  *      MORSE CODE OUTPUT
 1020  *---------------------------------
 1030  SPEAKER    .EQ $C030
 1040  DUMMY      .EQ $C000
 1050  *---------------------------------
 1060  SAVEX  .BS 1
 1070  SAVEY  .BS 1
 1080  EL.COUNT .BS 1
 1090  EL.CODE  .BS 1
 1100  EL.SPEED .EQ 120
 1110  EL.PITCH .EQ 80
 1120  *---------------------------------
 1130  CODES  .HS FD7D3D1D0D0585C5E5F5  0, 1-9
 1140         .HS 000000000000
 1150         .HS 004284A4830124C3040274A344C2  @, A-M
 1160         .HS 82E364D443038123146394B4C4    N-Z
 1170         .HS 000000000000
 1180  *---------------------------------
 1190  SETUP.MORSE
 1200         LDA #MORSE
 1210         STA $36
 1220         LDA /MORSE
 1230         STA $37
 1240         JMP $3EA
 1250  *---------------------------------
 1260  MORSE  CMP #$B0     SEE IF PRINTING CHAR
 1270         BCC .1       NO
 1280         PHA          SAVE CHAR ON STACK
 1290         JSR SEND.CHAR
 1300         PLA          GET CHAR OFF STACK
 1310  .1     JMP $FDF0
 1320  *---------------------------------
 1330  SEND.CHAR
 1340         STX SAVEX
 1350         STY SAVEY
 1360         SEC
 1370         SBC #$B0
 1380         TAX
 1390         LDA CODES,X
 1400         STA EL.CODE
 1410         AND #7       GET ELEMENT COUNT
 1420         BEQ .4       NO CODE
 1430         STA EL.COUNT
 1440  .1     ASL EL.CODE   PUT NEXT ELEMENT INTO CARRY
 1450         BCC .2       MAKE 'DIT'
 1460         JSR EL.DIT   MAKE 'DAH' FROM 3 DITS
 1470         JSR EL.DIT
 1480  .2     JSR EL.DIT   MAKE 'DIT'
 1490         JSR EL.SPACE
 1500         DEC EL.COUNT
 1510         BNE .1
 1520  .3     JSR CH.SPACE
 1530         LDX SAVEX
 1540         LDY SAVEY
 1550         RTS
 1560  .4     JSR CH.SPACE
 1570         JSR CH.SPACE
 1580         JMP .3
 1590  *---------------------------------
 1600  CH.SPACE
 1610         JSR EL.SPACE
 1620         JSR EL.SPACE
 1630  EL.SPACE
 1640         LDY #EL.SPEED
 1650  .1     LDX #EL.PITCH
 1660         LDA DUMMY
 1670  .2     DEX
 1680         BNE .2
 1690         DEY
 1700         BNE .1
 1710         RTS
 1720  *---------------------------------
 1730  EL.DIT LDY #EL.SPEED
 1740  .1     LDX #EL.PITCH
 1750         LDA SPEAKER
 1760  .2     DEX
 1770         BNE .2
 1780         DEY
 1790         BNE .1
 1800         RTS

