home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
World of A1200
/
World_Of_A1200.iso
/
programs
/
develop
/
as65
/
demo
/
s1
/
statistik.asm
< prev
next >
Wrap
Assembly Source File
|
1995-02-27
|
5KB
|
206 lines
;**************************************************************************
;
; Filename : STATISTIK.ASM
; ------------------------
;
; (c) 1990 by Thomas Lehmann
;
;
; Jackophone V5.00
;
;
; Statistik Funktionen
;
;
;**************************************************************************
MODUL_START set * ; Größe des Moduls berechnen
; =========================================================================
;
; Funktion : Statistik Anzeigen
; die Statistik-Anzeige kann über Direkt-Wahl oder Kontrollmenu
; eingeleitet werden
;
; Eingang : ---------
;
; Ausgang : Wähltasten umgeleitet
; : Kontrolltaste umgeleitet
; : erstes Statistikprg. eingestellt
;
; Register : Accu
;
; (c) by Thomas Lehmann Mai 1990
;
; =========================================================================
; -------------------------
; Einsprung bei Direkt-Wahl
; -------------------------
key_stat jsr key_ende ; Speichern/Kontrolle ausschalten
smb MOD_KO,modus ; Kontrollmodus aktiv eintragen
ldy #LD_L|LD_ON ; LED-Wert laden
lda #KEY_KO ; Tastenwert laden
jsr set_prgled ; LED in Kontrolltaste einschalten
; ------------------------------------
; Einsprung bei Wahl über Kontrollmenu
; ------------------------------------
statistik lda #WTA_STAT ; Statistikprg. Nr. laden
sta wta_prg ; und bei Wähl/Löschtaste ausführen
lda #MENU_STAT ; Untermenu Statistik ist aktiv
sta menu ; und bei Speicher/Kontrolltaste umleiten
stz akt_stat ; erste Prg.Nr. für Statistik einstellen
ldx #<stat_txt ; Textadr. laden
ldy #>stat_txt
lda #ANZ_STTXT ; Anzahl der Texte laden
jsr init_dsptxt ; Textwahl initialisieren
bra stat_out_1 ; und Statistik ausgeben
stat_txt byte DSP_CLR
shift "Anrufe gesamt: "
byte DSP_CLR
shift "abgehende Gespr.: "
byte DSP_CLR
shift "Einh.:"
; =========================================================================
;
; Funktion : Prg. Verteiler für Statistikausgaben
;
; Eingang : bei Wähltaste und eingeschaltetem Statistik-Modus
; : Tastenwert (1 bis ...) im Accu
; : Wähltasten nur für Löschfunktion umgeleitet !!!
;
; Ausgang : Statistikwerte im Display
; : Statistikdaten müßen 2 Byte groß sein
;
; Register : Accu, X, Y
;
; (c) by Thomas Lehmann Mai 1990
;
; =========================================================================
; !! Tabelle muß als erstes alle "stat_val" ausführen
; ---------------------------------------------------
stat_tab word stat_val ; Anrufe gesamt
word stat_val ; abgehende Gespräche
word stat_geb ; Gebühreneinheiten
word statistik ; Neustart
wta_stat rts ; Wähltasten nicht zugelassen, Ende
; Einsprung bei Speicher/Kontrolltaste
; ------------------------------------
stat_out jsr nxt_dsptxt ; nächsten Text ausgeben
stat_out_1 lda akt_stat ; akt. Prg. Nr. für Statistikausgabe laden
inc akt_stat ; nächste Prg. Nr. für Statistik einstellen
tay ; zur weiteren Verwendung in Sub-Routinen
asl a ; Offset auf Tabelle erzeugen
tax
jmp (stat_tab,x) ; Programm ausführen
; =========================================================================
;
; Funktion : Ausgaben der Statistik Werte in 5-stellig dezimal
;
; Eingang : Statistik Nr. in Y
;
; Ausgang : -------
;
; Register : Accu, X, Y
;
; (c) by Thomas Lehmann Mai 1990
;
; =========================================================================
stat_offs byte STAT_ANR ; Struktur Offset für Anzahl Anrufe
byte STAT_GSPR ; Struktur Offset für Anzahl Gespräche
byte STAT_GEB ; Struktur Offset für Gebühren
; Statistikwert ausgeben
; ----------------------
stat_val ldx stat_offs,y ; Pointer auf Stuktur aus Tabelle holen
lda struct_stat,x ; low Byte des Werts laden
pha
lda struct_stat+1,x ; dito high byte
plx ; und für Ausgabe eintragen
jmp putdez16 ; und 5-stellig dezimal ausgeben
; =========================================================================
;
; Funktion : Statistik Wert löschen
;
; Eingang : bei Löschtaste und eingeschaltetem Statistik-Modus
;
; Ausgang : -------
;
; Register : X, Y
;
; (c) by Thomas Lehmann Mai 1990
;
; =========================================================================
stat_clr ldy akt_stat ; akt. Nr. für Statistik
dey
ldx stat_offs,y ; Offset auf Speicherbereich aus Tabelle holen
stz struct_stat,x ; low Byte des Werts laden
stz struct_stat+1,x ; dito high byte
bra stat_out ; nächsten Text und Statistik Wert ausgeben
; =========================================================================
;
; Funktion : Gebühreneinheiten und DM Betrag ausgeben
;
; Eingang : Statistik Nr. in Y
;
; Ausgang : -------
;
; Register : Accu, X, Y
;
; (c) by Thomas Lehmann Oktober 1991
;
; =========================================================================
stat_geb jsr stat_val ; Anzahl Gebühreneinheiten ausgeben
lda #12 ; Cursorposition für Text
jsr put_dm_txt ; "DM:" ausgeben
; DM Betrag berechnen
; -------------------
ldx struct_stat+STAT_GEB ; low Byte des Werts laden
lda struct_stat+STAT_GEB+1 ; dito high byte
jsr calc_geb_dm ; DM Betrag für Gebühren berrechnen
; DM in Accu, X Pfennige in Y
jmp put_dm ; Betrag in DM.Pf ausgeben
; --------------------------------------------------------------------------
HLP set *
_STATISTIK equ HLP-MODUL_START ; Größe des Moduls