;start here
push ax
push bx
push cx
push dx
jmp l04
jmp l02
l00:
;this may look a 'little' weird.. my assembler can only do one type at a time..
;which means, either do the 00,00,00,00 line like that, or normal text...
;beleive me, this looked a lot more complicated before i added the label
;controls.. (jumping and pointing)
db " Love is long suffering and kind. Love is not Jealous, it does not brag,"
db 0d,0a
db "does not get puffed up, does not behave indecently, does not look for"
db 0d,0a
db "it's own interests, does not become provoked. It does not keep account"
db 0d,0a
db "of the injury. It does not rejoice over unrighteousness, but rejoices"
db 0d,0a
db "with the truth. It bears all things, beleives all things, hopes all"
db 0d,0a
db "things, endures all things. Love never fails. - 1 CORINTHIANS 13:4-7"
$s00
; probably something like this?
; s00 equ $-l00
; does this look right? It's too complex for me.. or, is it? j/k :)
l01:
db 00,08,F9,F3,0E,00,00,00,00,02,00,06,01,49,FB,F2,BA,07,0A,00
db FC,B2,0D,48,04,00,BC,41,B5,0B,F7,0F,46,0C,D4,F7,F9,0D,00,0B
db F5,4F,05,F6,AC,57,1E,0A,BF,FC,F2,01,F2,F4,46,00,F3,55,0E,F6
db FF,AD,49,06,B1,FB,55,12,BC,CD,B9,35,57,5A,BC,00,09,9A,EA,07
db FF,00,49,05,BB,F5,54,B0,F8,FF,FF,0F,0F,00,FF,F8,39,00,FF,F9
db FC,FF,41,F5,05,F1,52,BE,14,07,14,AA,12,41,05,06,CA,C9,CB,BB
db 05,F5,01,F7,40,45,C8,B1,10,00,49,00,F8,AC,54,FC,F6,B1,D7,2C
db BA,F2,01,13,6A,FF,F1,F9,F6,4E,F7,F8,FF,52,F8,06,F5,0A,FC,DD
db D5,AC,F6,47,00,FD,FD,12,EE,59,05,B1,FE,45,11,00,11,B1,07,0A
db 00,C0,BE,B1,FD,00,B5,04,10,F2,44,26,F1,53,0A,B8,0F,AD,48,F3
db FF,02,45,B5,FE,03,F1,4E,02,02,10,B1,FF,01,AC,63,6B,05,BA,55
db FC,B8,0F,48,FC,B2,FB,FD,00,F6,44,00,1D,F8,41,03,04,C9,9A,EA
db D3,FF,F0,00,F4,0A,08,B1,F8,09,07,00,05,F2,0A,01,45,AB,01,02
db FF,FE,0A,AC,0B,03,FA,F4,04,FC,FA,FA,39,52,11,B7,AC,54,F6,04
db 09,B1,0E,FE,0E,AD,60,57,ED,FC,AC,FA,59,AC,05,14,00,FB,05,F9
db AC,FB,41,4D,27,F5,4C,03,0D,BF,CF,DB,24,AC,9E,01,59,AC,07,0E
db 00,B9,EE,47,53,03,08,F6,07,FC,FC,C9,BB,00,E8,B4,FC,4F,FC,FD
db B7,0B,08,02,F4,45,06,FB,FF,14,AD,49,13,B4,CE,1C,16,D5,FE,B7
db 0B,08,02,F4,57,FC,00,10,B7,AE,04,AD,43,00,02,B4,45,04,08,03
db F3,02,FB,F2,48,23,08,AA,0F,48,FB,0E,97,A5,05,4F,0C,0A,0A,B4
db F6,40,00,40,4F,41,45,DD,15,13,2B,13,15,24,E5,DF,F7,1F,41,EF
db FA,E6,06,00,F2
l02:
mov cx,s00 ;set looping for length of messages.. (Both have to be same size)
                 ;here, it is 425 bytes.. but not limited to that with it's current code
l03:
mov ax,l00  ;starting point (first letter)
add ax,cx   ;put to right position
mov bx,ax   ;--
mov al,[bx] ;grab first letter
mov dl,al   ;assign value
mov ax,l01  ; start point (second letter)
add ax,cx   ;put to right position
mov bx,ax   ;--
mov al,[bx] ;grab change
mov dh,al   ; assign value
mov ax,l00  ;back to first letter..
add ax,cx   ;
mov bl,dh   ;prepair for loop
mov bh,00   ;clear other side
add bl,dl   ;loop - finding the real character..
mov dh,bl   ;move back for transfer
mov bx,ax   ;get real value
mov al,dh   ;prepair transfer to first letter
mov [bx],al ;change for first letter letter
            ;here's that move thing.. i would have done mov [bx],dh
            ;but my assembler wouldn't take it.. so, just a code or
            ;two extra
loop l03    ;loop till end
l04:
mov bx,0001 ;function?
mov dx,l00  ;location of letter
mov cx,s00  ;size of letter
mov ah,40   ;print function
int 21      ;activate function
pop dx      ;return original value
pop cx      ;return original value
pop bx      ;return original value
pop ax      ;return original value
ret         ;return to dos :)
;add cx,s00     ;@-->-->---
;mov dl,[cx]     ;  @    @
;add bl,dl       ;   \ @/
;sub cx,s00      ;   @\|
;mov [cx],bl     ;     \||
;sub cx,s00      ;      |/
;loop l03:       ;      |
;i couldn't dare part without my roses :)
;end of program

    Source: geocities.com/siliconvalley/haven/2635

               ( geocities.com/siliconvalley/haven)                   ( geocities.com/siliconvalley)