home *** CD-ROM | disk | FTP | other *** search
- ; Datei <IdeBeisp.ASM>
- ; Beispielprogramm im Ideal-Modus,
- ; um eine Zeile in Großbuchstaben umzuwandeln
- IDEAL ; #1
- %TITLE "Beispielprogramm Ideal-Modus" ; #2
- P286N ; #3
- PufferGroesse = 128
-
- MACRO DOS intnum ; #4
- mov ah,intnum
- int 21h
- ENDM
-
- SEGMENT Stk STACK ; #5
- db 100h DUP (?)
- ENDS ; #6
-
- SEGMENT Data WORD ; #7
- EingabePuffer DB PufferGroesse DUP (?)
- AusgabePuffer DB PufferGroesse DUP (?)
- ENDS Data ; #8
-
- GROUP DGroup Stk, Data ; #9
-
- SEGMENT Code WORD ; #10
- ASSUME cs:CODE
- Anfang:
- mov ax,DGROUP
- mov ds,ax
- ASSUME ds:DGROUP
- mov dx,OFFSET EingabePuffer ; #11
- xor bx,bx
- call ZeileLesen
- mov bx,ax
- mov [EingabePuffer+bx],0 ; #12
- push ax
- call GrossBuchStabe
- pop cx
- mov dx,OFFSET AusgabePuffer ; #13
- mov bx,1
- DOS 40h
- DOS 4Ch
-
- ; Eine Zeile einlesen, DS zeigt auf Puffer, liefert Anzahl in AX
- PROC ZeileLesen NEAR ; #14
- mov cx,Puffergroesse
- DOS 3Fh
- and ax,ax
- ret
- ENDP ; #15
-
- ; Zeile in Großbuchstaben umwandeln
- PROC GrossBuchStabe NEAR ; #16
- mov si,OFFSET EingabePuffer ; #17
- mov di,0
- @@UmwandelnSchleife:
- cmp [BYTE si],0 ; #18
- je @@Fertig
- mov al,[si]
- and al,NOT 'a' - 'A'
- mov [AusgabePuffer+di],al ; #19
- inc si
- inc di
- jmp @@UmwandelnSchleife
- @@Fertig:
- ret
- ENDP GrossBuchStabe ; #20
- ENDS ; #21
- END Anfang
-