        opt      l-
        SECTION  BLUE,CODE_C
        incdir   "include/"
        include  "exec/exec_lib.i"
        include  "intuition/intuition.i"
        include  "intuition/intuition_lib.i"
        include  "libraries/dos_lib.i"
        include  "libraries/dosextens.i"
        include  "devices/serial.i"
        include  "devices/timer.i"
        include  "graphics/graphics_lib.i"
        include  "graphics/text.i"

;---------------------------------------WB-Startup-Code
        movem.l  d0/a0,-(sp)            ;rette Kommandozeile
        clr.l    _WBenchMsg             ;sicherheitshalber
        sub.l    a1,a1                  ;a1=0 = eigener Task
        CALLEXEC FindTask               ;wo sind wir?
        move.l   d0,a4                  ;Adresse retten
        tst.l    pr_CLI(a4)             ;Laufen wir unter WB?
        beq.s    fromWB                 ;wenn so
        movem.l  (sp)+,d0/a0            ;Parms Kommandozeile holen
;-------                                ;CLI Parameter
        subq     #1,d0                  ;d0=anzahl
        beq      cli1
        lea      dialmsg,a1
cli     move.b   (a0)+,(a1)+            ;a0=adresse
        dbf      d0,cli
        move.b   #0,-(a1)               ;mit Nullbyte abschliessen
cli1
;-------
        bra      run                    ;und starten
fromWB  lea      pr_MsgPort(a4),a0
        CALLEXEC WaitPort               ;Warte auf Start-Message
        lea      pr_MsgPort(a4),a0      ;sie ist da
        CALLEXEC GetMsg                 ;hole sie
        move.l   d0,_WBenchMsg          ;immer Msg sichern!
        movem.l  (sp)+,d0/a0            ;bringe Stack i.O.
run     bsr.s    _main                  ;rufe unser Programm auf
        move.l   d0,-(sp)               ;rette seinen Return-Code
        tst.l    _WBenchMsg             ;gibt's eine WB-Message
        beq.s    _exit                  ;nein: dann war's CLI
        CALLEXEC Forbid                 ;keine Unterbrechung jetzt
        move.l   _WBenchMsg(pc),a1      ;hole die Message
        CALLEXEC ReplyMsg               ;und gib sie zurueck
_exit   move.l   (sp)+,d0               ;hole Return-Code
        rts                             ;das war's
_WBenchMsg       ds.l    1
        cnop     0,4
;---------------------------------------------------------------------
 
;

_main
        cmpi.b  #0,dialmsg
        beq     WB
        bsr     Reset
        bra     CLI
WB
        moveq   #0,d0
        lea     dos_name(pc),a1
        CALLEXEC OpenLibrary
        move.l  d0,_DOSBase
        moveq   #0,d0
        lea     int_name(pc),a1
        CALLEXEC OpenLibrary
        move.l  d0,_IntuitionBase
        moveq   #0,d0
        lea     graf_name(pc),a1
        CALLEXEC OpenLibrary
        move.l  d0,_GfxBase
;----------------------------------
        lea     windowdef(pc),a0
        CALLINT OpenWindow
        move.l  d0,windowptr
;----------------------------------
        move.l   windowptr,a1
        move.l   wd_RPort(a1),a1
        move.l   #1,d0
        CALLGRAF SetAPen

        moveq   #9,d5           ;Anzahl Zeilen -1
text    moveq   #20,d0          ;Text ausgeben
        move.l  yps,d1
        move.l  windowptr,a1
        move.l  wd_RPort(a1),a1
        CALLGRAF Move           ;Cursor setzen
        move.l  windowptr,a1
        move.l  wd_RPort(a1),a1
        move.l  tex,a0
        moveq   #20,d0
        CALLGRAF Text
        add.l   #10,yps         ;1 Zeile =10 Pixel hoch
        add.l   #20,tex         ;1 Zeile =20 Zeichen
        dbf     d5,text


;*********************************************************************
;ch 1 basis = dff0b0 , ch 2 = dff0c0

init    bsr     Reset

taste   move.l  windowptr,a0    ;RawKeyWert ueber IDCMP-Windowport holen
        move.l  wd_UserPort(a0),a0
        move.l  a0,a5
        move.b  MP_SIGBIT(a0),d1
        moveq   #0,d0
        bset    d1,d0
        CALLEXEC Wait           ;Stop bis was passiert (multitasking)

ll      move.l   a5,a0          ;hier gehts dann weiter
        CALLEXEC GetMsg         ;was hat mich geweckt?
        tst.l    d0
        beq      lll
        move.l   d0,a1
        move.l   im_Class(a1),d4
        move.w   im_Code(a1),d5 ;.Word!
        move.w   im_MouseY(a1),d6
        bra      ll

lll     btst     #7,d5          ;taste gedrueckt oder losgelassen?
        bne      taste          ;weiter wenn gedrueckt..

        cmpi.l  #CLOSEWINDOW,d4
        beq     ENDE
        cmpi.l  #MOUSEBUTTONS,d4
        beq     INPUT

        andi.l  #$7f,d5
;-------------------------------

        cmpi.b  #$50,d5
        bne     Dial

        bsr     CLI
        bra     init
Dial


        cmpi.b  #$51,d5         ;Seize Trunk
        bne     Funk
        CALLEXEC Forbid

        move.w  #428,$dff0a6    ;2070hz  = "0"
        move.w  #428,$dff0d6
        move.w  #$8009,$dff096  ;Ton ein kanal 1+2

        move.l  #20,d2
waitX
        bsr     Fu0    ;01110 = syncwort
        bsr     Fu1
        bsr     Fu1
        bsr     Fu1
        bsr     Fu0

        bsr     Fu1    ;10101010101 = schluss/trennsignal
        bsr     Fu0
        bsr     Fu1
        bsr     Fu0
        bsr     Fu1
        bsr     Fu0
        bsr     Fu1
        bsr     Fu0
        bsr     Fu1
        bsr     Fu0
        bsr     Fu1

        sub.l   #1,d2
        cmpi.l  #0,d2
        bne     waitX

        move.w  #0,$dff0a8
        move.w  #0,$dff0d8
        move.w  #$0009,$dff096  ;Ton aus
        CALLEXEC Permit
        bra     init
Funk


        cmpi.b  #$5f,d5         ;Seize Trunk
        bne     Trunk
        CALLEXEC Forbid

        move.w  #341,$dff0a6
        move.w  #369,$dff0d6
        move.w  #$8009,$dff096  ;Ton ein kanal 1+2
        bsr     swait
        move.w  #0,$dff0a8
        move.w  #0,$dff0d8
        bsr     swait
        move.w  #369,$dff0a6
        move.w  #369,$dff0d6
        move.w  #64,$dff0a8
        move.w  #64,$dff0d8
        bsr     swait
        move.w  #$0009,$dff096  ;Ton aus
        bsr     swait
        bsr     swait
        CALLEXEC Permit
        bra     init
Trunk

        cmpi.b  #$55,d5         ;auf F6 rechter kanal 10herz fuer 4 sec
        bne     hz10
        lea.l   PUFF2(pc),a0    ;Basis Wavepuffer
        move.l  a0,$dff0b0      ;-an Soundchip
        move.w  #180,$dff0b4    ;Wavelaenge
        move.w  #994,$dff0b6    ;Period
        move.w  #64,$dff0b8     ;max LAUT
        move.w  #$8002,$dff096  ;Ton ein
        move.l  #200,d1
        CALLDOS Delay
        move.w  #$0002,$dff096  ;Ton aus
hz10

        bsr     KEY

        move.w  #$8009,$dff096  ;Ton ein kanal 1+2

warte   move.l  windowptr,a0         ;auf "taste losgelassen" warten
        move.l  wd_UserPort(a0),a0
        move.l  a0,a5
        move.b  MP_SIGBIT(a0),d1
        moveq   #0,d0
        bset    d1,d0
        CALLEXEC Wait

kk      move.l   a5,a0
        CALLEXEC GetMsg
        tst.l    d0
        beq      kkk
        move.l   d0,a1
        move.l   im_Class(a1),d4
        move.l   im_Code(a1),d5
        bra      kk
kkk

war
        move.w  #0,$dff0a8
        move.w  #0,$dff0d8
        move.w  #$0009,$dff096  ;Ton aus
        bra     init            ;zum Start
;-------------------------------
Fu0
        move.w  #428,$dff0a6    ;2070hz  = "0" 10ms lang
        move.w  #428,$dff0d6
        move.l  #3000,d1
wait1   sub.l   #1,d1
        cmpi.l  #0,d1
        bne     wait1
        rts

Fu1
        move.w  #455,$dff0a6    ;1950hz  = "1" 10ms lang
        move.w  #455,$dff0d6
        move.l  #3000,d1
wait2   sub.l   #1,d1
        cmpi.l  #0,d1
        bne     wait2
        rts
;-------------------------------
          even
int_name        INTNAME
graf_name       GRAFNAME
dos_name        DOSNAME
          even
_IntuitionBase  dc.l  0
_GfxBase        dc.l  0
_DOSBase        dc.l  0
windowptr       dc.l  0
          cnop  0,4

msg       dc.b  "===================="
          dc.b  "USA:`L+0+ACN+......`"
          dc.b  "BRD:`G+49+0+NUM+...`"
          dc.b  "[F1]:[L]ocal[G]lobal"
          dc.b  "=====^=klick==here=^"
          dc.b  "[*]-KP    [ENTER]-ST"
          dc.b  "[HELP] seize-a-trunk"
          dc.b  "===================="
          dc.b  "0-9,*,# = TouchTones"
          dc.b  "===================="

tex       dc.l  msg ;Textzeiger aktueller AusgabeStand
yps       dc.l  20  ;y-Startwertwert des Cursors
          even
;--------------------------------
windowdef
          dc.w  200,0
          dc.w  200,120
          dc.b  2,3         ;3 = rote KopfZeile
          dc.l  CLOSEWINDOW!RAWKEY!MOUSEBUTTONS
          dc.l  W_Gadgets!W_Extras
          dc.l  0,0
          dc.l  W_Title
          dc.l  0,0
          dc.w  200,10
          dc.w  120,120
          dc.w  WBENCHSCREEN
          even
W_Title   dc.b  "(C) JUMP 1990",0,0  ;FensterTitel
          even
W_Gadgets equ   WINDOWSIZING!WINDOWDRAG!WINDOWDEPTH!WINDOWCLOSE
W_Extras  equ   SMART_REFRESH!ACTIVATE
;-----------------------------------
ENDE
        move.l   windowptr,a0
        CALLINT  CloseWindow
        move.l   _GfxBase,a1
        CALLEXEC CloseLibrary
        move.l   _IntuitionBase,a1
        CALLEXEC CloseLibrary
        move.l   _DOSBase,a1
        CALLEXEC CloseLibrary
        moveq    #0,d0               ;ReturnCode 0 = alles OK
        rts
;-----------------------------------------------------------------
INPUT
        cmpi.w  #42,d6
        bcs     IN2
        cmpi.w  #50,d6
        bcc     IN2

        move.l  #20,d0
        move.l  #50,d1
        bsr     MOVE
        lea     IN12,a0
        move.l  #20,d0
        bsr     TEXT

        move.l  #20,d0
        move.l  #50,d1
        bsr     MOVE
        lea     IN12,a0
        move.l  #5,d0
        bsr     TEXT

        move.l  #0,d6

IN2a
        bsr     INKEY
        move.l  #0,d7

        lea     Rawkeys,a0
IN2c
        cmp.b   (a0)+,d5
        beq     IN2b
        add.b   #1,d7
        cmpi.l  #13,d7  ;13 moegliche rawkeys
        bne     IN2c
IN2b
        lea     Zahlen,a0
        lea     dialnum,a1
        move.b  d5,(a1,d6)
        lea     (a0,d7),a0
        move.l  #1,d0
        bsr     TEXT
        addi.l  #1,d6
        cmpi.l  #15,d6  ;15 zahlen
        bne     IN2a

IN2
        bra     init

        cnop    0,4
dialmsg
dialnum dc.l    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
        cnop    0,4
Rawkeys dc.b    $1d,$1e,$1f,$2d,$2e,$2f,$3d,$3e,$3f,$0f,$3c,$24,$28
        cnop    0,4
Zahlen  dc.b    "1234567890.GL?"
        cnop    0,4
;---------------------------------------
swait
        move.l  #50000,d1
swait1  sub.l   #1,d1
        cmpi.l  #0,d1
        bne     swait1
        rts
;---------------------------------------
MOVE    ;d0=x d1=y
        move.l  windowptr,a1
        move.l  wd_RPort(a1),a1
        CALLGRAF Move
        rts

TEXT    ;a0^string d0=laenge
        move.l  windowptr,a1
        move.l  wd_RPort(a1),a1
        CALLGRAF Text
        rts
;--------------------------------------
INKEY
        move.l  windowptr,a0
        move.l  wd_UserPort(a0),a0
        move.l  a0,a5
        move.b  MP_SIGBIT(a0),d1
        moveq   #0,d0
        bset    d1,d0
        CALLEXEC Wait

llb     move.l   a5,a0
        CALLEXEC GetMsg
        move.l   d0,a1
        move.l   im_Class(a1),d4
        move.w   im_Code(a1),d5

        cmpi.l   #RAWKEY,d4
        bne      llb

        btst     #7,d5          ;taste gedrueckt oder losgelassen?
        bne      INKEY

        move.l  windowptr,a0         ;auf "taste losgelassen" warten
        move.l  wd_UserPort(a0),a0
        move.l  a0,a5
        move.b  MP_SIGBIT(a0),d1
        moveq   #0,d0
        bset    d1,d0
        CALLEXEC Wait

        move.l   a5,a0
        CALLEXEC GetMsg
        andi.l  #$7f,d5
        rts

IN12    dc.b    "[F1]:_______________"
        cnop    0,4
;-------------------------------
Reset   lea.l   PUFF(pc),a0     ;Basis Wavepuffer
        move.l  a0,$dff0a0      ;-an Soundchip
        move.l  a0,$dff0d0
        move.w  #2,$dff0a4      ;Wavelaenge
        move.w  #2,$dff0d4
        move.w  #369,$dff0a6    ;Period je Wavedata (X * 0.279365microsec)
        move.w  #369,$dff0d6    ;2400hz  369
        move.w  #64,$dff0a8     ;max LAUT
        move.w  #64,$dff0d8
        bset    #1,$bfe001      ;Audiofilter an
        rts
;-------------------------------
CLI
        CALLEXEC Forbid

        move.w  #341,$dff0a6    ;2600+2400
        move.w  #369,$dff0d6
        move.w  #$8009,$dff096  ;Ton ein kanal 1+2
        bsr     swait
        move.w  #0,$dff0a8
        move.w  #0,$dff0d8
        bsr     swait
        move.w  #369,$dff0a6
        move.w  #369,$dff0d6
        move.w  #64,$dff0a8
        move.w  #64,$dff0d8
        bsr     swait
        move.w  #$0009,$dff096  ;Ton aus
        bsr     swait
        bsr     swait
        bsr     swait
        bsr     swait
        bsr     swait
        bsr     swait
        bsr     swait
        bsr     swait

        lea     dialmsg,a0
Dial1
        move.b  (a0)+,d5
        cmpi.b  #$3c,d5  ;"."
        beq     DialX
        cmpi.b  #$00,d5
        beq     DialX

        bsr     KEY
        move.w  #$8009,$dff096  ;Ton ein kanal 1+2
        move.l  #30000,d1
Dial2   sub.l   #1,d1
        cmpi.l  #0,d1
        bne     Dial2
        move.w  #0,$dff0a8
        move.w  #0,$dff0d8
        move.l  #10000,d1
Dial3   sub.l   #1,d1
        cmpi.l  #0,d1
        bne     Dial3
        move.w  #64,$dff0a8
        move.w  #64,$dff0d8
        bra     Dial1
DialX
        move.l  #$43,d5  ;ST
        bsr     KEY
        move.l  #30000,d1
Dial4   sub.l   #1,d1
        cmpi.l  #0,d1
        bne     Dial4
        move.w  #0,$dff0a8
        move.w  #0,$dff0d8
        move.l  #10000,d1
Dial5   sub.l   #1,d1
        cmpi.l  #0,d1
        bne     Dial5
        move.w  #64,$dff0a8
        move.w  #64,$dff0d8

        move.w  #$0009,$dff096  ;Ton aus
        CALLEXEC Permit
        rts
;----------------------------------------------
        cnop    0,4
PUFF    dc.b    0,127,0,-127 ;Wavedata (Sinus)
        cnop    0,4
;--------------------------------------------------------------------
KEY
        cmpi.b  #$31,d5
        bne     ToneASC1
        move.w  #985,$dff0a6
        move.w  #1267,$dff0d6
ToneASC1
        cmpi.b  #$32,d5
        bne     ToneASC2
        move.w  #806,$dff0a6
        move.w  #1267,$dff0d6
ToneASC2
        cmpi.b  #$33,d5
        bne     ToneASC3
        move.w  #806,$dff0a6
        move.w  #985,$dff0d6
ToneASC3
        cmpi.b  #$34,d5
        bne     ToneASC4
        move.w  #682,$dff0a6
        move.w  #1267,$dff0d6
ToneASC4
        cmpi.b  #$35,d5
        bne     ToneASC5
        move.w  #682,$dff0a6
        move.w  #985,$dff0d6
ToneASC5
        cmpi.b  #$36,d5
        bne     ToneASC6
        move.w  #682,$dff0a6
        move.w  #806,$dff0d6
ToneASC6
        cmpi.b  #$37,d5
        bne     ToneASC7
        move.w  #591,$dff0a6
        move.w  #1267,$dff0d6
ToneASC7
        cmpi.b  #$38,d5
        bne     ToneASC8
        move.w  #591,$dff0a6
        move.w  #985,$dff0d6
ToneASC8
        cmpi.b  #$39,d5
        bne     ToneASC9
        move.w  #591,$dff0a6
        move.w  #806,$dff0d6
ToneASC9
        cmpi.b  #$30,d5
        bne     ToneASC0
        move.w  #591,$dff0a6
        move.w  #682,$dff0d6
ToneASC0
        cmpi.b  #"L",d5
        bne     ToneASCKP
        move.w  #521,$dff0a6
        move.w  #806,$dff0d6
ToneASCKP
        cmpi.b  #"G",d5
        bne     ToneASCKP2
        move.w  #521,$dff0a6
        move.w  #682,$dff0d6
ToneASCKP2
        cmpi.b  #"l",d5
        bne     ToneASCKPa
        move.w  #521,$dff0a6
        move.w  #806,$dff0d6
ToneASCKPa
        cmpi.b  #"g",d5
        bne     ToneASCKP2a
        move.w  #521,$dff0a6
        move.w  #682,$dff0d6
ToneASCKP2a


        cmpi.b  #$1d,d5
        bne     Tone1
        move.w  #985,$dff0a6
        move.w  #1267,$dff0d6
Tone1
        cmpi.b  #$1e,d5
        bne     Tone2
        move.w  #806,$dff0a6
        move.w  #1267,$dff0d6
Tone2
        cmpi.b  #$1f,d5
        bne     Tone3
        move.w  #806,$dff0a6
        move.w  #985,$dff0d6
Tone3
        cmpi.b  #$2d,d5
        bne     Tone4
        move.w  #682,$dff0a6
        move.w  #1267,$dff0d6
Tone4
        cmpi.b  #$2e,d5
        bne     Tone5
        move.w  #682,$dff0a6
        move.w  #985,$dff0d6
Tone5
        cmpi.b  #$2f,d5
        bne     Tone6
        move.w  #682,$dff0a6
        move.w  #806,$dff0d6
Tone6
        cmpi.b  #$3d,d5
        bne     Tone7
        move.w  #591,$dff0a6
        move.w  #1267,$dff0d6
Tone7
        cmpi.b  #$3e,d5
        bne     Tone8
        move.w  #591,$dff0a6
        move.w  #985,$dff0d6
Tone8
        cmpi.b  #$3f,d5
        bne     Tone9
        move.w  #591,$dff0a6
        move.w  #806,$dff0d6
Tone9
        cmpi.b  #$0f,d5
        bne     Tone0
        move.w  #591,$dff0a6
        move.w  #682,$dff0d6
Tone0
        cmpi.b  #$5a,d5
        bne     ToneSM
        move.w  #521,$dff0a6
        move.w  #1267,$dff0d6
ToneSM
        cmpi.b  #$5b,d5
        bne     ToneSTp
        move.w  #521,$dff0a6
        move.w  #985,$dff0d6
ToneSTp
        cmpi.b  #$5d,d5  ;"*"
        bne     ToneKP
        move.w  #521,$dff0a6
        move.w  #806,$dff0d6
ToneKP
        cmpi.b  #$5c,d5  ;"/"
        bne     ToneKP2
        move.w  #521,$dff0a6
        move.w  #682,$dff0d6
ToneKP2
        cmpi.b  #$28,d5  ;"L"
        bne     ToneKPa
        move.w  #521,$dff0a6
        move.w  #806,$dff0d6
ToneKPa
        cmpi.b  #$24,d5  ;"G"
        bne     ToneKP2a
        move.w  #521,$dff0a6
        move.w  #682,$dff0d6
ToneKP2a
        cmpi.b  #$43,d5
        bne     ToneST
        move.w  #521,$dff0a6
        move.w  #591,$dff0d6
ToneST
        cmpi.b  #$40,d5
        bne     Space
        move.w  #341,$dff0a6
        move.w  #369,$dff0d6
Space
        cmpi.b  #$01,d5
        bne     Touch1
        move.w  #733,$dff0a6
        move.w  #1271,$dff0d6
Touch1
        cmpi.b  #$02,d5
        bne     Touch2
        move.w  #663,$dff0a6
        move.w  #1271,$dff0d6
Touch2
        cmpi.b  #$03,d5
        bne     Touch3
        move.w  #600,$dff0a6
        move.w  #1271,$dff0d6
Touch3
        cmpi.b  #$04,d5
        bne     Touch4
        move.w  #733,$dff0a6
        move.w  #1151,$dff0d6
Touch4
        cmpi.b  #$05,d5
        bne     Touch5
        move.w  #663,$dff0a6
        move.w  #1151,$dff0d6
Touch5
        cmpi.b  #$06,d5
        bne     Touch6
        move.w  #600,$dff0a6
        move.w  #1151,$dff0d6
Touch6
        cmpi.b  #$07,d5
        bne     Touch7
        move.w  #733,$dff0a6
        move.w  #1040,$dff0d6
Touch7
        cmpi.b  #$08,d5
        bne     Touch8
        move.w  #663,$dff0a6
        move.w  #1040,$dff0d6
Touch8
        cmpi.b  #$09,d5
        bne     Touch9
        move.w  #600,$dff0a6
        move.w  #1040,$dff0d6
Touch9
        cmpi.b  #$0a,d5
        bne     Touch0
        move.w  #663,$dff0a6
        move.w  #941,$dff0d6
Touch0
        cmpi.b  #$1b,d5
        bne     TouchStar
        move.w  #733,$dff0a6
        move.w  #941,$dff0d6
TouchStar
        cmpi.b  #$2b,d5
        bne     TouchRaute
        move.w  #600,$dff0a6
        move.w  #941,$dff0d6
TouchRaute
        cmpi.b  #$0b,d5
        bne     TouchA
        move.w  #543,$dff0a6
        move.w  #1271,$dff0d6
TouchA
        cmpi.b  #$0c,d5
        bne     TouchB
        move.w  #543,$dff0a6
        move.w  #1151,$dff0d6
TouchB
        cmpi.b  #$0d,d5
        bne     TouchC
        move.w  #543,$dff0a6
        move.w  #1040,$dff0d6
TouchC
        cmpi.b  #$41,d5
        bne     TouchD
        move.w  #543,$dff0a6
        move.w  #941,$dff0d6
TouchD
        cmpi.b  #$45,d5  ;ESC
        bne     Touch3825
        move.w  #232,$dff0a6
        move.w  #232,$dff0d6
Touch3825

        rts
;--------------------------------------------fette Sinus-Wave
;                0   1   2   3   4   5   6   7   8   9
PUFF2   dc.b    000,002,004,007,009,011,013,015,018,020
        dc.b    022,024,026,029,031,033,035,037,039,041
        dc.b    043,046,048,050,052,054,056,058,060,062
        dc.b    064,065,067,069,071,073,075,076,078,080
        dc.b    082,083,085,087,088,090,091,093,094,096
        dc.b    097,099,100,101,103,104,105,107,108,109
        dc.b    110,111,112,113,114,115,116,117,118,119
        dc.b    119,120,121,121,122,123,123,124,124,125
        dc.b    125,125,126,126,126,127,127,127,127,127
        dc.b    127,127,127,127,127,127,126,126,126,125
        dc.b    125,125,124,124,123,123,122,121,121,120
        dc.b    119,119,118,117,116,115,114,113,112,111
        dc.b    110,109,108,107,105,104,103,101,100,099
        dc.b    097,096,094,093,091,090,088,087,085,083
        dc.b    082,080,078,076,075,073,071,069,067,065
        dc.b    064,062,060,058,056,054,052,050,048,046
        dc.b    043,041,039,037,035,033,031,029,026,024
        dc.b    022,020,018,015,013,011,009,007,004,002

        dc.b    -000,-002,-004,-007,-009,-011,-013,-015,-018,-020
        dc.b    -022,-024,-026,-029,-031,-033,-035,-037,-039,-041
        dc.b    -043,-046,-048,-050,-052,-054,-056,-058,-060,-062
        dc.b    -064,-065,-067,-069,-071,-073,-075,-076,-078,-080
        dc.b    -082,-083,-085,-087,-088,-090,-091,-093,-094,-096
        dc.b    -097,-099,-100,-101,-103,-104,-105,-107,-108,-109
        dc.b    -110,-111,-112,-113,-114,-115,-116,-117,-118,-119
        dc.b    -119,-120,-121,-121,-122,-123,-123,-124,-124,-125
        dc.b    -125,-125,-126,-126,-126,-127,-127,-127,-127,-127
        dc.b    -127,-127,-127,-127,-127,-127,-126,-126,-126,-125
        dc.b    -125,-125,-124,-124,-123,-123,-122,-121,-121,-120
        dc.b    -119,-119,-118,-117,-116,-115,-114,-113,-112,-111
        dc.b    -110,-109,-108,-107,-105,-104,-103,-101,-100,-099
        dc.b    -097,-096,-094,-093,-091,-090,-088,-087,-085,-083
        dc.b    -082,-080,-078,-076,-075,-073,-071,-069,-067,-065
        dc.b    -064,-062,-060,-058,-056,-054,-052,-050,-048,-046
        dc.b    -043,-041,-039,-037,-035,-033,-031,-029,-026,-024
        dc.b    -022,-020,-018,-015,-013,-011,-009,-007,-004,-002
        cnop    0,4

        END
;---------------CCITT MF`s
;700hz  = 1267 * 0.279365MycroSec mal 4 Wavedatas  PeriodenDauer
;900hz  = 985
;1100hz = 806
;1300hz = 682
;1500hz = 591
;1700hz = 521
;---------------Trunk-Signale
;2400hz = 369
;2600hz = 341
;---------------Touch-Tones (TM)
;697hz  = 1271
;770hz  = 1151
;852hz  = 1040
;941hz  = 941
;1209hz = 733
;1336hz = 663
;1477hz = 600
;1633hz = 543
;---------------kein plan..
;3825hz = 232
;2500hz = 354
;2700hz = 328
;2280hz =
;
;1950hz = 455
;2070hz = 428
;--------------------------------------
;      900 - 1100 - 1300 - 1500 - 1700
;700 -  1     2      4      7      11*
;900 -        3      5      8      12*
;1100-               6      9      KP
;1300-                      0      KP2*
;1500-                             ST
;* = nur intl. CCITT System5
;--------------------------------------
;
;empirisch ermittelt mit HP-5326B Timer-Counter-DVM
