home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power-Programmierung
/
CD1.mdf
/
assemblr
/
library
/
lib4a86
/
demo
/
strings1.dem
< prev
next >
Wrap
Text File
|
1992-02-16
|
3KB
|
118 lines
; ----------------------------
; 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