home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
World of A1200
/
World_Of_A1200.iso
/
programs
/
develop
/
as65
/
demo
/
s1
/
util.asm
< prev
next >
Wrap
Assembly Source File
|
1995-02-27
|
4KB
|
161 lines
;**************************************************************************
;
; Filename : UTIL.ASM
; -------------------
;
; (c) 1990/91 by Thomas Lehmann
;
;
; Jackophone V5.00
;
;
; verschiedene Utility Routinen
;
;
;**************************************************************************
MODUL_START set * ; Größe des Moduls berechnen
; =========================================================================
;
; Funktion : RAM füllen
;
; Eingang : Füllwert im Accu
; : Startadresse in ind_adr
; : Endadr. low in X-Reg.
; : Endadr. high in Y-Reg.
;
; Ausgang : Bereich zwischen Start und Endadr. mit Wert beschrieben
;
; Register : ------
;
; (c) by Thomas Lehmann Feb. 1990
;
; =========================================================================
fill_ram sta (ind_adr) ; RAM mit Füllwert beschreiben
cpx ind_adr ; low Byte der Adresse erreicht ?
bne fill_1 ; nein
cpy ind_adr+1 ; high Byte der Adresse erreicht ?
bne fill_1 ; nein
rts
fill_1 ?inc16 ind_adr ; nächste Bank ($0100) einstellen
bra fill_ram
; =========================================================================
;
; Funktion : alle LED`s ausschalten, "Ende-Taste" ausführen
;
; Eingang : ---------
;
; Ausgang : ---------
;
; Register : Accu
;
; (c) by Thomas Lehmann Feb. 1990
;
; =========================================================================
ledoff_ende lda #00 ; Füllwert laden
jsr fill_ledram ; alle LED`s ausschalten
jmp key_ende ; Ende Taste ausführen
; =========================================================================
;
; Funktion : Wähltaste eintragen
;
; Eingang : Tastenwert im Accu
;
; Ausgang : Taste im Input-Buffer abgelegt und im Display ausgegeben
;
; Register : Accu
;
; (c) by Thomas Lehmann Feb. 1990
;
; =========================================================================
input phx ; Register retten
ldx input_po ; Pointer auf Buffer laden
sta input_buff,x ; Tastenwert ablegen
inc input_po ; Pointer auf Buffer+1
clc
adc #48 ; ASCII zur Taste addieren
jsr putchar ; und ins Display
plx ; Register zurück
rts
; =========================================================================
;
; Funktion : 2. stellige Eingabe aus Inputbuffer holen und in 1.Byte
; konvertieren
;
; Eingang : Pointer auf Eingabe in X-Reg.
;
; Ausgang : Wert im Accu
;
; Register : Accu
;
; (c) by Thomas Lehmann Feb. 1990
;
; =========================================================================
get_input phy ; Register retten
phx
txa ; Pointer auf Eingabe
asl ; 2 Byte Eingaben
tax
lda input_buff,x ; Wert high laden
ldy input_buff+1,x ; dito low
jsr merge_val ; 1 Byte erzeugen
plx ; Register zurück
ply
jmp deztohex ; dezimal in Hex wandeln
; =========================================================================
;
; Funktion : testen ob Wähltaste im Gültigkeitsbereich, 0-9
; Wähltaste "0" konvertieren
;
; Eingang : Tastenwert im Accu
;
; Ausgang : clc wenn Tastenwert 1-9
; : Accu 0 wenn es Taste "0" war
; : Tastenwert im Accu
;
; Register : Accu
;
; (c) by Thomas Lehmann Feb. 1990
;
; =========================================================================
check_wta cmp #11 ; Taste im Gültigkeitsbereich ?
bcs check_wta_e ; nein, Ende
cmp #10 ; ist es "0" ?
bne check_wta_1 ; nein, Taste gültig
lda #00 ; Tastenwert korrigieren
check_wta_1 clc ; Taste liegt im Gültigkeitbereich
check_wta_e rts
; --------------------------------------------------------------------------
HLP set *
_UTIL equ HLP-MODUL_START ; Größe des Moduls