PofoWiki

Die ultimative Informationsquelle zum ATARI Portfolio

Benutzer-Werkzeuge

Webseiten-Werkzeuge


software:diy:assembler:aes

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
software:diy:assembler:aes [09/12/2007 17:12]
uxt ergänzt.
software:diy:assembler:aes [13/12/2007 00:12] (aktuell)
Zeile 8: Zeile 8:
   * Meldungen\\   * Meldungen\\
   * Wählton\\   * Wählton\\
-  * Melodie-Töne FIXME\\+  * Melodie-Töne\\
   * DAT-Dateien FIXME\\   * DAT-Dateien FIXME\\
  
Zeile 541: Zeile 541:
 AESDIAL.COM ist 47 Bytes groß. Man könnte sich die wichtigsten Telefonnummern als Programme ablegen und nach Namen in der DOS-Eingabeauforderung aufrufen.\\ AESDIAL.COM ist 47 Bytes groß. Man könnte sich die wichtigsten Telefonnummern als Programme ablegen und nach Namen in der DOS-Eingabeauforderung aufrufen.\\
 \\ \\
 +
 +
 +
 +
  
 ===== Melodie-Töne ===== ===== Melodie-Töne =====
Zeile 550: Zeile 554:
 Im folgenden Beispiel werden die Ton-Codes und deren Dauer in der Variable MLDY gespeichert. Das Programm übergibt diese Werte nach und nach der Fn 16H  bis die NULL am Ende der Variable das Ende der Kette signalisiert.\\ Im folgenden Beispiel werden die Ton-Codes und deren Dauer in der Variable MLDY gespeichert. Das Programm übergibt diese Werte nach und nach der Fn 16H  bis die NULL am Ende der Variable das Ende der Kette signalisiert.\\
 \\ \\
-Alle meine Entchen:\\ +<code asm> 
- +    ;Die Hex-Zahlen stehen für die Ton-Codes, gefolgt von 
-    ;Alle meine Entchen: Die Hex-Zahlen stehen für die Ton-Codes, +    ;den Längen der Noten (mal 10ms) in Dezimal-Zahlen.
-    ;gefolgt von den Längen der Noten x10ms in Dezimal-Zahlen.+
          
     MLDY   DB  39h,20,29h,20,3Ch,20,3Dh,20,3Eh,40,3Eh,40     MLDY   DB  39h,20,29h,20,3Ch,20,3Dh,20,3Eh,40,3Eh,40
-           DB  3Fh,20,3Fh,20,3Fh,20,3Fh,20,3Eh,40,01h,40 +           DB  3Fh,20,3Fh,20,3Fh,20,3Fh,20,3Eh,40,80h,40 
-           DB  3Fh,20,3Fh,20,3Fh,20,3Fh,20,3Eh,40,01h,40+           DB  3Fh,20,3Fh,20,3Fh,20,3Fh,20,3Eh,40,80h,40
            DB  3Dh,20,3Dh,20,3Dh,20,3Dh,20,3Ch,40,3Ch,40            DB  3Dh,20,3Dh,20,3Dh,20,3Dh,20,3Ch,40,3Ch,40
            DB  3Eh,20,3Eh,20,3Eh,20,3Eh,20,39h,40,0            DB  3Eh,20,3Eh,20,3Eh,20,3Eh,20,39h,40,0
Zeile 566: Zeile 569:
     MOV CX,0 ;Länge zurücksetzen     MOV CX,0 ;Länge zurücksetzen
     MOV SI,0 ;Zeiger in Melodie-Folge     MOV SI,0 ;Zeiger in Melodie-Folge
-   MM0: +    MM0: 
-    MOV DL,MLDY[SI] ;Ton-Code nach DL +     MOV DL,MLDY[SI] ;Ton-Code nach DL 
-    CMP DL,0 ;Ende der Melodie? +     CMP DL,0 ;Ende der Melodie? 
-    JE MM9 ;dann Ende +     JE MM9 ;dann Ende 
-    INC SI ;nächstes Byte +     INC SI ;nächstes Byte 
-    MOV CL,MLDY[SI] ;Längen-Code +     MOV CL,MLDY[SI] ;Längen-Code 
-    MOV AH,16h ;Funktion Melodieton ausgeben +     MOV AH,16h ;Funktion Melodieton ausgeben 
-    INT 61h ;AES-Interrupt +     INT 61h ;AES-Interrupt 
-    INC SI ;nächstes Byte+     INC SI ;nächstes Byte
     JMP MM0 ;Schleife     JMP MM0 ;Schleife
-   MM9: +    MM9: 
-    MOV AH,4Ch ;Programm beenden +     MOV AH,4Ch ;Programm beenden 
-    MOV AL,0 ;Fehlernummer +     MOV AL,0 ;Fehlernummer 
-    INT 21h ;DOS-Interrupt +     INT 21h ;DOS-Interrupt 
-    +</code>
  
-Am Ende der zweiten und dritten Zeile der Melodie-Folge wird der Ton-Code 01h angegeben, es soll eigentlich eine Pause sein, man hört aber einen Klick. Leider gibt es scheinbar keinen "stummen" Ton-Code, Pausen müssten also eigentlich durch Warteschleifen realisiert werden.+==== Ton-Codes ====
 Hier die Tabelle der Ton-Codes mit den entsprehenden Noten:\\ Hier die Tabelle der Ton-Codes mit den entsprehenden Noten:\\
- 
- 
   Ton-Code  Note     Hz   Ton-Code  Note     Hz
      30H     D#   622,3      30H     D#   622,3
Zeile 613: Zeile 614:
      07H     D#  2489      07H     D#  2489
  
-Es gibt weitere, nicht dokumentierte Codes:\\ +Am Ende der zweiten und dritten Zeile der Melodie-Folge wird der Ton-Code 80h angegebener ist nicht dokumentiert, aber der "stummste" aller Ton-Codes (neben C0h). Weitere undokumentierte Ton-Codes weiter unten.
-\\ +
-  00H  = Klick +
-  01H  = Klick2 +
-  02H  = Klick2 +
-  03H  = Klick2 +
-  08H  = F5 (32Hgedämpft +
-  09H  = G5 (34H) timbre +
-  0AH  = zwischen G#5 (35H) und A5 (36H), gedämpft +
-  0BH  = A#5 (37H) timbre +
-  0CH  = zwischen D6 (29H) und D#6 (3BH), timbre +
-  0DH  = E6 (3Ch) timbre +
-  0FH  = zwischen G6 (3Eh) und G#6 (2CH), timbre +
-  10H  = DTMF +
-  11H  = DTMF +
-  12H  = DTMF +
-  13H  = DTMF +
-  14H  = DTMF +
-  15H  = DTMF +
-  16H  = DTMF +
-  17H  = DTMF +
-  18H  = DTMF +
-  19H  = DTMF +
-  20H  = Klick2 +
-  21H  = Klick2 +
-  22H  = Klick2 +
-  23H  = Klick2 +
-  24H  = zwischen D#6 (3Bh) und E6 (3Ch), timbre +
-  26H  = zwischen D6 (29h) und D#6 (3Bh), timbre +
-  27H  = zwischen C7 (25h) und C#7 (2Fh) +
-  28H  = B5 (38H) timbre +
-  2AH  = zwischen C6 (39h) und C#6 (3Ah) +
-  2BH  = zwischen D#6 (3B) und E6 (3Ch) +
-  2DH  = A#6 (04h) timbre +
-  2EH  = zwischen B6 (05h) und C7 (25h) +
-  40H  = Klick2 +
-  50H  = DTMF+
 \\ \\
  
 +==== Abspielgeschwindigkeit ====
 Um die Abspielgeschwindigkeit zu ändern, müsste man in obigen Beispiel alle Längenangaben in der Variable MLDY austauschen. Um dies zu verhindern, sollte die tatsächliche Länge erst zur Laufzeit ermittelt werden, in der Variable stünden dann nur die Längenverhältnisse in Bezug auf eine Konstante. Hier erweist sich die Angabe in 10ms-Schritten als etwas ungünstig, wenn man eine hohe Zeitauflösung braucht (16tel, 32stel oder gar 64stel Noten). Die Zahlen in der Tabelle sind Längencodes, wie sie in CX erwartet werden, die Spalte ganz links enthält die resultierende Taktgeschwindigkeit in BPM (Viertel-Noten pro Minute).\\ Um die Abspielgeschwindigkeit zu ändern, müsste man in obigen Beispiel alle Längenangaben in der Variable MLDY austauschen. Um dies zu verhindern, sollte die tatsächliche Länge erst zur Laufzeit ermittelt werden, in der Variable stünden dann nur die Längenverhältnisse in Bezug auf eine Konstante. Hier erweist sich die Angabe in 10ms-Schritten als etwas ungünstig, wenn man eine hohe Zeitauflösung braucht (16tel, 32stel oder gar 64stel Noten). Die Zahlen in der Tabelle sind Längencodes, wie sie in CX erwartet werden, die Spalte ganz links enthält die resultierende Taktgeschwindigkeit in BPM (Viertel-Noten pro Minute).\\
  
Zeile 744: Zeile 710:
 125, 120, 115, 111, 107, 103, 100, 97 und 94 BPM.\\ 125, 120, 115, 111, 107, 103, 100, 97 und 94 BPM.\\
  
-Beinhalted eine Melodie Triplets, ist darauf zu achten, dass die Viertel-Noten einen Längencode enthalten der auch durch drei teilbar ist. Dies engt die Verfügbarkeit an Abspielgeschwindigkeiten wieder ein.\\+Beinhaltet eine Melodie Triplets, ist darauf zu achten, dass die Viertel-Noten einen Längencode enthalten der auch durch drei teilbar ist. Dies engt die Verfügbarkeit an Abspielgeschwindigkeiten wieder ein.\\
  
 Vor dem Abspielen oder Programmieren einer Melodie, sollte man erst festlegen welche Auflösung man braucht (16tel, 32stel oder 64stel), dann alle Längenwerte als Vielfaches dieser kleinsten Einheit errechnen.\\ Vor dem Abspielen oder Programmieren einer Melodie, sollte man erst festlegen welche Auflösung man braucht (16tel, 32stel oder 64stel), dann alle Längenwerte als Vielfaches dieser kleinsten Einheit errechnen.\\
  
  
 +==== Undokumentierte Ton-Codes ====
 +\\
 +  00H  = Klick (dumpf)
 +  01H  = Klick
 +  02H  = Klick
 +  03H  = Klick
 +  08H  = F5 (32H) gedämpft
 +  09H  = G5 (34H) timbre
 +  0AH  = zwischen G#5 (35H) und A5 (36H), gedämpft
 +  0BH  = A#5 (37H) timbre
 +  0CH  = zwischen D6 (29H) und D#6 (3BH), timbre
 +  0DH  = E6 (3Ch) timbre
 +  0FH  = zwischen G6 (3Eh) und G#6 (2CH), timbre
 +  
 +  10H DTMF
 +  11H DTMF
 +  12H DTMF
 +  13H DTMF
 +  14H DTMF
 +  15H DTMF
 +  16H DTMF
 +  17H DTMF
 +  18H DTMF
 +  19H DTMF
 +  1AH DTMF
 +  1BH DTMF
 +  1CH DTMF
 +  1DH DTMF
 +  1EH DTMF
 +  1FH DTMF
 +  
 +  20H Klick
 +  21H Klick
 +  22H Klick
 +  23H Klick
 +  24H zwischen D#6 (3Bh) und E6 (3Ch), timbre
 +  26H zwischen D6 (29h) und D#6 (3Bh), timbre
 +  27H zwischen C7 (25h) und C#7 (2Fh)
 +  28H B5 (38H) timbre
 +  2AH zwischen C6 (39h) und C#6 (3Ah)
 +  2BH zwischen D#6 (3B) und E6 (3Ch)
 +  2DH A#6 (04h) timbre
 +  2EH zwischen B6 (05h) und C7 (25h)
 +  
 +  40H Klick
 +  41H Klick
 +  42H Klick
 +  43H Klick
 +  44H A#6 (=04h)
 +  45H B6 (=05h)
 +  46H D7 (=06h)
 +  47H D#7 (=07h)
 +  48H F5 (=32h)
 +  49H zwischen F#5 (33h) und G5 (34h)
 +  4AH zwischen G#5 (35h) und A5 (36h)
 +  4BH zwischen A#5 (37h) und B5 (38h)   =0Ah ?
 +  4CH zwischen D6 (29h) und D#6 (3Bh)   =26h ?
 +  4DH leicht unter E6 (3Ch)
 +  4EH F#6 (=0Eh)
 +  4FH leicht unter G#6 (2Ch)
 +  
 +  50H leicht unter E6 (3Ch)  =4Dh
 +  51H dual tone ? ca 1200 Hz
 +  52H dual tone ? ca 1330 Hz
 +  53H dual tone ? hat 1480 Hz
 +  54H dual tone ? ca 1200 Hz  =51h ?
 +  55H dual tone ? ca 1250 Hz
 +  56H dual tone ? ca 1500 Hz
 +  57H dual tone zwischen D6 (29h) und D#6 (3Bh)   =26h ?
 +  58H dual tone ? ca 1330 Hz
 +  59H dual tone ?  Tonhöhe wie 0Eh ?
 +  5AH dual tone ? ca 1650 Hz
 +  5BH dual tone ? ca 1650 Hz  5Ah ?
 +  5CH dual tone ? ca 1650 Hz  5Ah ? 
 +  5DH dual tone ? ca 1650 Hz  5Ah ?
 +  5EH dual tone zwischen D6 (29h) und D#6 (3Bh)   =26h ?
 +  5FH dual tone ?  Tonhöhe wie 0Eh ?
 +  
 +  60H Klick
 +  61H Klick
 +  62H Klick
 +  63H Klick
 +  64H zwischen D#6 (3Bh) und E6 (3Ch)  =24h ?
 +  65H C7 (=25h)
 +  66H zwischen D6 (29h) und D#6 (3Bh)    =26h ?
 +  67H leicht unter C#7 (2FH)
 +  68H leicht über B5 (38h)
 +  69H D6 (=29h)
 +  6AH zwischen C6 (39h) und C#6 (3Ah)
 +  6BH zwischen D#6 (3Bh) E6 und (3Ch)
 +  6CH G#6 (=2CH)
 +  6DH leicht unter A#6 (04h)
 +  6EH zwischen B6 (05h) und C7 (25h)
 +  6FH C#7 (=2FH)
 +  
 +  70H D#5 (=30h)
 +  71H E5 (=31h)
 +  72H F5 (=32h)
 +  73H F#5 (=33h)
 +  74H G5 (=34h)
 +  75H G#5 (=35h)
 +  76H A5 (=36h)
 +  77H A#5 (=37h)
 +  78H B5 (=38h)
 +  79H C6 (=39h)
 +  7AH C#6 (=49h)
 +  7BH D#6 (=3B)
 +  7CH E6 (=3Ch)
 +  7DH F6 (=3D)
 +  7EH G6 (=3EH)
 +  7FH A6 (=3FH)
 +  
 +  (80H...8FH = 40H..4FH)
 +  80H stumm
 +  81H Klick (leise)
 +  82H Klick (leise)
 +  83H Klick (leise)
 +  84H A#6 wie (04h), aber lauter
 +  85H B#6 wie (05h), aber lauter
 +  86H D7 (=06h)
 +  87H D#7 (=07h)
 +  88H F5 (=32h)
 +  89H zwischen F#5 (33h) und G5 (34h)
 +  8AH zwischen G#5 (35h) und A5 (36h)
 +  8BH zwischen A#5 (37h) und B5 (38h)   =0Ah ?
 +  8CH zwischen D6 (29h) und D#6 (3Bh)   =26h ?
 +  8DH leicht unter E6 (3Ch)
 +  8EH F#6 (=0Eh)
 +  8FH leicht unter G#6 (2Ch)
 +  
 +  (90H...9FH = 10H...1FH)
 +  90H DTMF (=10h)
 +  91H DTMF (=11h)
 +  92H DTMF (=12h)
 +  93H DTMF (=13h)
 +  94H DTMF (=14h)
 +  95H DTMF (=15h)
 +  96H DTMF (=16h)
 +  97H DTMF (=17h)
 +  98H DTMF (=18h)
 +  99H DTMF (=19h)
 +  9AH DTMF (=1Ah)
 +  9BH DTMF (=1Bh)
 +  9CH DTMF (=1Ch)
 +  9DH DTMF (=1Dh)
 +  9EH DTMF (=1EH)
 +  9FH DTMF (=1FH)
 +  
 +  A0H Klick (leise)
 +  A1H Klick (hell)
 +  A2H Klick
 +  A3H Klick (lauter)
 +  A4H Knattern
 +  A5H Klick (hell, doppelt)
 +  A6H Anschlag, pitch wie 26h (zwischen D6 (29h) und D#6 (3Bh))
 +  A7H Anschlag, pitch zwischen C7 (25h) und C#7 (2Fh)
 +  A8H Knattern wie A4h
 +  A9H Klick3 ?
 +  AAH Anschlag, pitch zwischen B5 (38h) und C5 (37h)
 +  ABH Anschlag, pitch zwischen D#6 (3BH) und E6 (3CH)
 +  ACH Anschlag, pitch wie G#6 (2Ch)
 +  ADH Anschlag, pitch zwischen A6 (3FH) und A#6 (04H)
 +  AEH Anschlag, pitch zwischen B6 (05h) und C7 (25h)
 +  AFH C#7 (=25h)
 +  
 +  B0H Knattern, wie A4h
 +  B1H Klick, wie A0h
 +  B2H Anschlag, F5 (32h)
 +  B3H Anschlag, F#5 (33h)
 +  B4H Anschlag, G5 (34h)
 +  B5H Anschlag, G#5 (35h)
 +  B6H Anschlag, A5 (36h)
 +  B7H Anschlag, A#5 (37h)
 +  B8H Anschlag, B5 (38h)
 +  B9H Anschlag, C6 (39h)
 +  BAH Anschlag, C#6 (3Ah)
 +  BBH Anschlag, D#6 (3Bh)
 +  BCH Anschlag, E6 (3Ch)
 +  BDH Anschlag, F6 (3Dh)
 +  BEH Anschlag, G#5 (3Eh)
 +  BFH Anschlag, A6 (3Fh)
 +  
 +  (C0H...CFH = 40H...4FH)
 +  C0H Stille
 +  C1H Klick, wie 01h
 +  C2H Klick, wie C1h
 +  C3H Klick, wie A0h
 +  C4H A#6 (=04h)
 +  C5H B6 (=05h)
 +  C6H D7 (=06h)
 +  C7H D#7 (=07h)
 +  C8H F5 (=32h)
 +  C9H zwischen F#5 (33h) und G5 (34h)
 +  CAH zwischen G#5 (35h) und A5 (36h)
 +  CBH zwischen A#5 (37h) und B5 (38h)
 +  CCH leicht über D6 (29h)
 +  CDH leicht über E6 (3Ch)
 +  CEH F#6 (=0Eh)
 +  CFH leicht unter G#6 (2Ch)
 +  
 +  (D0H...DFH = 10H...1FH)
 +  D0 DTMF
 +  D1 DTMF
 +  D2 DTMF
 +  D3 DTMF
 +  D4 DTMF
 +  D5 DTMF
 +  D6 DTMF
 +  D7 DTMF
 +  D8 DTMF
 +  D9 DTMF
 +  DA DTMF
 +  DB DTMF
 +  DC DTMF
 +  DD DTMF
 +  DE DTMF
 +  DF DTMF
 +  
 +  (E0H...EFH = A0H...AFH (außer Klicks))
 +  E0H Klick (leise)
 +  E1H Klick (hell)
 +  E2H Klick
 +  E3H Klick (lauter)
 +  E4H Knattern
 +  E5H Klick (hell, doppelt)
 +  E6H Anschlag, pitch wie 26h (zwischen D6 (29h) und D#6 (3Bh))
 +  E7H Anschlag, pitch zwischen C7 (25h) und C#7 (2Fh)
 +  E8H Knattern wie A4h
 +  E9H Klick3 ?
 +  EAH Anschlag, pitch zwischen B5 (38h) und C5 (37h)
 +  EBH Anschlag, pitch zwischen D#6 (3BH) und E6 (3CH)
 +  ECH Anschlag, pitch wie G#6 (2Ch)
 +  EDH Anschlag, pitch zwischen A6 (3FH) und A#6 (04H)
 +  EEH Anschlag, pitch zwischen B6 (05h) und C7 (25h)
 +  EFH C#7 (=25h)
 +  
 +  (F0H...FFH = B0H...BFH)
 +  F0H Knattern, wie A4h
 +  F1H Klick, wie A0h
 +  F2H Anschlag, F5 (32h)
 +  F3H Anschlag, F#5 (33h)
 +  F4H Anschlag, G5 (34h)
 +  F5H Anschlag, G#5 (35h)
 +  F6H Anschlag, A5 (36h)
 +  F7H Anschlag, A#5 (37h)
 +  F8H Anschlag, B5 (38h)
 +  F9H Anschlag, C6 (39h)
 +  FAH Anschlag, C#6 (3Ah)
 +  FBH Anschlag, D#6 (3Bh)
 +  FCH Anschlag, E6 (3Ch)
 +  FDH Anschlag, F6 (3Dh)
 +  FEH Anschlag, G#5 (3Eh)
 +  FFH Anschlag, A6 (3Fh)
 +
 +**Anmerkung:**
 +  C0H...CFH = 40H...4FH
 +  D0H...DFH = 10H...1FH
 +  E0H...EFH = A0H...AFH (außer Klicks)
 +  F0H...FFH = B0H...BFH
  
software/diy/assembler/aes.1197219155.txt.gz · Zuletzt geändert: 09/12/2007 00:12 (Externe Bearbeitung)