home *** CD-ROM | disk | FTP | other *** search
/ World of A1200 / World_Of_A1200.iso / programs / develop / as65 / demo / s1 / statistik.asm < prev    next >
Assembly Source File  |  1995-02-27  |  5KB  |  206 lines

  1. ;**************************************************************************
  2. ;
  3. ; Filename : STATISTIK.ASM
  4. ; ------------------------
  5. ;
  6. ; (c) 1990 by Thomas Lehmann
  7. ;
  8. ;
  9. ; Jackophone V5.00
  10. ;
  11. ;
  12. ; Statistik Funktionen
  13. ;
  14. ;
  15. ;**************************************************************************
  16.  
  17. MODUL_START    set    *    ; Größe des Moduls berechnen
  18.  
  19. ; =========================================================================
  20. ;
  21. ; Funktion    : Statistik Anzeigen
  22. ;      die Statistik-Anzeige kann über Direkt-Wahl oder Kontrollmenu
  23. ;      eingeleitet werden
  24. ;
  25. ; Eingang    : ---------
  26. ;
  27. ; Ausgang    : Wähltasten umgeleitet
  28. ;    : Kontrolltaste umgeleitet
  29. ;    : erstes Statistikprg. eingestellt
  30. ;
  31. ; Register    : Accu
  32. ;
  33. ; (c) by Thomas Lehmann Mai 1990
  34. ;
  35. ; =========================================================================
  36.  
  37.     ; -------------------------
  38.     ; Einsprung bei Direkt-Wahl
  39.     ; -------------------------
  40. key_stat    jsr key_ende    ; Speichern/Kontrolle ausschalten
  41.     smb MOD_KO,modus    ; Kontrollmodus aktiv eintragen
  42.  
  43.     ldy #LD_L|LD_ON    ; LED-Wert laden
  44.     lda #KEY_KO    ; Tastenwert laden
  45.     jsr set_prgled    ; LED in Kontrolltaste einschalten
  46.  
  47.  
  48.     ; ------------------------------------
  49.     ; Einsprung bei Wahl über Kontrollmenu
  50.     ; ------------------------------------
  51. statistik    lda #WTA_STAT    ; Statistikprg. Nr. laden
  52.     sta wta_prg    ; und bei Wähl/Löschtaste ausführen
  53.     lda #MENU_STAT    ; Untermenu Statistik ist aktiv
  54.     sta menu    ; und bei Speicher/Kontrolltaste umleiten
  55.     stz akt_stat    ; erste Prg.Nr. für Statistik einstellen
  56.  
  57.     ldx #<stat_txt    ; Textadr. laden
  58.     ldy #>stat_txt
  59.     lda #ANZ_STTXT    ; Anzahl der Texte laden
  60.     jsr init_dsptxt    ; Textwahl initialisieren
  61.  
  62.     bra stat_out_1    ; und Statistik ausgeben
  63.  
  64.  
  65. stat_txt    byte    DSP_CLR
  66.     shift "Anrufe gesamt: "
  67.  
  68.     byte    DSP_CLR
  69.     shift "abgehende Gespr.: "
  70.  
  71.     byte    DSP_CLR
  72.     shift "Einh.:"
  73.  
  74.  
  75.  
  76. ; =========================================================================
  77. ;
  78. ; Funktion    : Prg. Verteiler für Statistikausgaben
  79. ;
  80. ; Eingang    : bei Wähltaste und eingeschaltetem Statistik-Modus
  81. ;    : Tastenwert (1 bis ...) im Accu
  82. ;    : Wähltasten nur für Löschfunktion umgeleitet !!!
  83. ;
  84. ; Ausgang    : Statistikwerte im Display
  85. ;    : Statistikdaten müßen 2 Byte groß sein
  86. ;
  87. ; Register    : Accu, X, Y
  88. ;
  89. ; (c) by Thomas Lehmann Mai 1990
  90. ;
  91. ; =========================================================================
  92.  
  93.     ; !! Tabelle muß als erstes alle "stat_val" ausführen
  94.     ; ---------------------------------------------------
  95. stat_tab    word stat_val    ; Anrufe gesamt
  96.     word stat_val    ; abgehende Gespräche
  97.     word stat_geb    ; Gebühreneinheiten
  98.     word statistik    ; Neustart
  99.  
  100. wta_stat    rts        ; Wähltasten nicht zugelassen, Ende
  101.  
  102.  
  103.     ; Einsprung bei Speicher/Kontrolltaste
  104.     ; ------------------------------------
  105. stat_out    jsr nxt_dsptxt    ; nächsten Text ausgeben
  106. stat_out_1    lda akt_stat    ; akt. Prg. Nr. für Statistikausgabe laden
  107.     inc akt_stat    ; nächste Prg. Nr. für Statistik einstellen
  108.     tay        ; zur weiteren Verwendung in Sub-Routinen
  109.     asl a        ; Offset auf Tabelle erzeugen
  110.     tax
  111.     jmp (stat_tab,x)    ; Programm ausführen
  112.  
  113.  
  114.  
  115.  
  116.  
  117. ; =========================================================================
  118. ;
  119. ; Funktion    : Ausgaben der Statistik Werte in 5-stellig dezimal
  120. ;
  121. ; Eingang    : Statistik Nr. in Y
  122. ;
  123. ; Ausgang    : -------
  124. ;
  125. ; Register    : Accu, X, Y
  126. ;
  127. ; (c) by Thomas Lehmann Mai 1990
  128. ;
  129. ; =========================================================================
  130.  
  131. stat_offs    byte STAT_ANR    ; Struktur Offset für Anzahl Anrufe
  132.     byte STAT_GSPR    ; Struktur Offset für Anzahl Gespräche
  133.     byte STAT_GEB    ; Struktur Offset für Gebühren
  134.  
  135.  
  136.     ; Statistikwert ausgeben
  137.     ; ----------------------
  138. stat_val    ldx stat_offs,y    ; Pointer auf Stuktur aus Tabelle holen
  139.     lda struct_stat,x    ; low Byte des Werts laden
  140.     pha
  141.     lda struct_stat+1,x ; dito high byte
  142.     plx        ; und für Ausgabe eintragen
  143.     jmp putdez16    ; und 5-stellig dezimal ausgeben
  144.  
  145.  
  146. ; =========================================================================
  147. ;
  148. ; Funktion    : Statistik Wert löschen
  149. ;
  150. ; Eingang    : bei Löschtaste und eingeschaltetem Statistik-Modus
  151. ;
  152. ; Ausgang    : -------
  153. ;
  154. ; Register    : X, Y
  155. ;
  156. ; (c) by Thomas Lehmann Mai 1990
  157. ;
  158. ; =========================================================================
  159.  
  160. stat_clr    ldy akt_stat    ; akt. Nr. für Statistik
  161.     dey
  162.     ldx stat_offs,y    ; Offset auf Speicherbereich aus Tabelle holen
  163.     stz struct_stat,x    ; low Byte des Werts laden
  164.     stz struct_stat+1,x ; dito high byte
  165.     bra stat_out    ; nächsten Text und Statistik Wert ausgeben
  166.  
  167.  
  168.  
  169.  
  170. ; =========================================================================
  171. ;
  172. ; Funktion    : Gebühreneinheiten und DM Betrag ausgeben
  173. ;
  174. ; Eingang    : Statistik Nr. in Y
  175. ;
  176. ; Ausgang    : -------
  177. ;
  178. ; Register    : Accu, X, Y
  179. ;
  180. ; (c) by Thomas Lehmann Oktober 1991
  181. ;
  182. ; =========================================================================
  183.  
  184. stat_geb    jsr stat_val    ; Anzahl Gebühreneinheiten ausgeben
  185.  
  186.     lda #12        ; Cursorposition für Text
  187.     jsr put_dm_txt    ; "DM:" ausgeben
  188.  
  189.     ; DM Betrag berechnen
  190.     ; -------------------
  191.     ldx struct_stat+STAT_GEB    ; low Byte des Werts laden
  192.     lda struct_stat+STAT_GEB+1    ; dito high byte
  193.     jsr calc_geb_dm    ; DM Betrag für Gebühren berrechnen
  194.             ; DM in Accu, X  Pfennige in Y
  195.     jmp put_dm    ; Betrag in DM.Pf ausgeben
  196.  
  197.  
  198.  
  199.  
  200.  
  201. ; --------------------------------------------------------------------------
  202.  
  203. HLP    set    *
  204. _STATISTIK    equ    HLP-MODUL_START        ; Größe des Moduls
  205.  
  206.