home *** CD-ROM | disk | FTP | other *** search
- ; ----------------------------
- ; STRINGS1.DEM - Demoprogramm für die Routinen aus STRINGS1.LIB
- ; (für den A86)
- ;
- ; (c) Bernd Schemmer 1990 - 1992
- ; Letzter Update: 15.02.1992
- ;
- ; Übersetzen:
- ; A86 MACROS.MAC STRINGS1.DEM STRINGS1.LIB DEMOS.INC TO STRINGS1.COM
- ; ---------------------------
-
- jmp start ; Daten überspringen
-
- logo db CR,LF
- db 'STRINGS1.DEM - Demoprogramm für die Routinen aus STRINGS1.LIB'
- db CR,LF
- db '--------------------------------------------------------------'
- GETLENGTH logo
-
- zeile1 db 255,0,256 dup 0 ; Puffer für die Eingabe und Bearbeitung
- zeile2 db 255,0,256 dup 0
-
- msg1 db CR,LF,CR,LF
- db 'Bitte einen String eingeben (<CR> = Ende): '
- db CR,LF
- GETLENGTH msg1
-
- msg2 db CR,LF
- db CR,LF
- db 'Eingabe komprimiert und aufbereitet (#nnn = ASCII-Code, Länge: '
- laenge2 db '___): ->'
- db CR,LF
- GETLENGTH msg2
-
- msg3 db CR,LF
- db CR,LF
- db 'Eingabe wieder dekomprimiert (Länge: '
- laenge3 db '___): ->'
- db CR,LF
- GETLENGTH msg3
-
- msg4 db CR,LF,CR,LF
- db 'Nochmal? '
- GETLENGTH msg4
-
- start:
- call ShowLogo ; Logo ausgeben und Speicherblock verkleinern
- l0:
- WRITE_STRING msg1
- ; Eingabe lesen
- mov dx,offset zeile1
- mov ah,0Ah
- int 021h
- cmp b zeile1+1,0 ; leere Eingbe?
- jne >l1 ; nein
- jmp Ende ; ja, Ende
-
- l1: ; Eingabe komprimieren
- mov si,offset zeile1+1
- call KomprimiereString
-
- ; Komprimierten String aufbereiten
- mov si,offset zeile1+1
- mov di,offset zeile2+1
- call FormatiereASCIIString
-
- ; Komprimierten und aufbereiteten String
- ; ausgeben
- mov al,zeile1+1
- mov di,offset laenge2
- call Konvert_AL_To_Dezstring
-
- WRITE_STRING msg2
- mov dx,offset zeile2+2
- mov cl,zeile2+1
- xor ch,ch
- mov bx,01h
- mov ah,040h
- int 021h
-
- ; Eingabe wieder zurück-konvertieren
- mov si,offset zeile2+1
- mov di,offset zeile1+1
- call DeFormatiereASCIIString
-
- ; und dekomprimieren
- mov si,offset zeile1+1
- mov di,offset zeile2+1
- call DekomprimiereString
-
- mov al,zeile2+1
- mov di,offset laenge3
- call Konvert_AL_To_Dezstring
-
- WRITE_STRING msg3
- mov dx,offset zeile2+2
- mov cl,zeile2+1
- xor ch,ch
- mov bx,01h
- mov ah,040h
- int 021h
-
- WRITE_STRING msg4
- mov ah,08h
- int 021h
- push ax
- pop ax
- cmp al,'j'
- if e jmp l0
- cmp al,'J'
- if e jmp l0
- cmp al,CR
- if e jmp l0
-
- Ende:
- EndProcess 0
-
-