TITLE UPCASE ENTRY UPCASE ; ; Verwandlung in von Klein- in Grossbuchstaben ; ; Aufruf: CALL UPCASE(buffer,count) ; ; <buffer> = Startadresse des Textpuffers ; <count> = Anzahl Bytes (2-Byte-Integer !) ; UPCASE: LD (BUFADR),HL ; Startadresse sichern LD (CADR),DE ; Count-Adresse sichern LD A,(DE) LD L,A INC DE LD A,(DE) LD H,A ; HL = <count> LD (COUNT),HL ; <count> sichern LD BC,0 AND A ; Carry-Flag loeschen SBC HL,BC ; <count> = 0 ? JR Z,ENDE ; Ja: fertig ! LD HL,(COUNT) ; Nein: weiter LD BC,(BUFADR) ; BC = Pointer LD DE,1 LOOP: LD A,(BC) ; ein Zeichen lesen BIT 6,A ; Buchstabe? JR Z,CONT ; Nein: weiter AND 11011111B ; Ja: Bit 5 loeschen LD (BC),A ; zurueckschreiben CONT: AND A SBC HL,DE ; <count> = <count> - 1 JR Z,ENDE ; fertig ? INC BC ; Nein: Pointer = Pointer+ 1 JR LOOP ; Weiter ENDE: LD HL,1 RET ; RETURN-STATUS ; ; Arbeitsspeicher: ; BUFADR: DS 2 ; Startadresse CADR: DS 2 ; Count-Adresse COUNT: DS 2 ; Count ; END
Bild 6. Aus kleinen Buchstaben werden große
|