home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 2 BBS
/
02-BBS.zip
/
MSGDP206.SZH
/
NORMAL.ASM
< prev
next >
Wrap
Assembly Source File
|
1990-07-30
|
6KB
|
172 lines
;
;
; assembler implementation of normalize for speed
;
; PUBLIC DOMAIN
;
;
EXTRN _rot13:word
public NORMALIZE
.model large
.code
ROT00 DB 000h, 001h, 002h, 003h, 004h, 005h, 006h, 007h
DB 008h, 009h, 00ah, 00bh, 00ch, 00dh, 00eh, 00fh
DB 010h, 011h, 012h, 013h, 014h, 015h, 016h, 017h
DB 018h, 019h, 01ah, 01bh, 01ch, 01dh, 01eh, 01fh
DB 020h, 021h, 022h, 023h, 024h, 025h, 026h, 027h
DB 028h, 029h, 02ah, 02bh, 02ch, 02dh, 02eh, 02fh
DB 030h, 031h, 032h, 033h, 034h, 035h, 036h, 037h
DB 038h, 039h, 03ah, 03bh, 03ch, 03dh, 03eh, 03fh
DB 040h, 041h, 042h, 043h, 044h, 045h, 046h, 047h
DB 048h, 049h, 04ah, 04bh, 04ch, 04dh, 04eh, 04fh
DB 050h, 051h, 052h, 053h, 054h, 055h, 056h, 057h
DB 058h, 059h, 05ah, 05bh, 05ch, 05dh, 05eh, 05fh
DB 060h, 061h, 062h, 063h, 064h, 065h, 066h, 067h
DB 068h, 069h, 06ah, 06bh, 06ch, 06dh, 06eh, 06fh
DB 070h, 071h, 072h, 073h, 074h, 075h, 076h, 077h
DB 078h, 079h, 07ah, 07bh, 07ch, 07dh, 07eh, 07fh
DB 080h, 081h, 082h, 083h, 084h, 085h, 086h, 087h
DB 088h, 089h, 08ah, 08bh, 08ch, 08dh, 08eh, 08fh
DB 090h, 091h, 092h, 093h, 094h, 095h, 096h, 097h
DB 098h, 099h, 09ah, 09bh, 09ch, 09dh, 09eh, 09fh
DB 0a0h, 0a1h, 0a2h, 0a3h, 0a4h, 0a5h, 0a6h, 0a7h
DB 0a8h, 0a9h, 0aah, 0abh, 0ach, 0adh, 0aeh, 0afh
DB 0b0h, 0b1h, 0b2h, 0b3h, 0b4h, 0b5h, 0b6h, 0b7h
DB 0b8h, 0b9h, 0bah, 0bbh, 0bch, 0bdh, 0beh, 0bfh
DB 0c0h, 0c1h, 0c2h, 0c3h, 0c4h, 0c5h, 0c6h, 0c7h
DB 0c8h, 0c9h, 0cah, 0cbh, 0cch, 0cdh, 0ceh, 0cfh
DB 0d0h, 0d1h, 0d2h, 0d3h, 0d4h, 0d5h, 0d6h, 0d7h
DB 0d8h, 0d9h, 0dah, 0dbh, 0dch, 0ddh, 0deh, 0dfh
DB 0e0h, 0e1h, 0e2h, 0e3h, 0e4h, 0e5h, 0e6h, 0e7h
DB 0e8h, 0e9h, 0eah, 0ebh, 0ech, 0edh, 0eeh, 0efh
DB 0f0h, 0f1h, 0f2h, 0f3h, 0f4h, 0f5h, 0f6h, 0f7h
DB 0f8h, 0f9h, 0fah, 0fbh, 0fch, 0fdh, 0feh, 0ffh
ROT13 DB 000h, 001h, 002h, 003h, 004h, 005h, 006h, 007h
DB 008h, 009h, 00ah, 00bh, 00ch, 00dh, 00eh, 00fh
DB 010h, 011h, 012h, 013h, 014h, 015h, 016h, 017h
DB 018h, 019h, 01ah, 01bh, 01ch, 01dh, 01eh, 01fh
DB 020h, 021h, 022h, 023h, 024h, 025h, 026h, 027h
DB 028h, 029h, 02ah, 02bh, 02ch, 02dh, 02eh, 02fh
DB 030h, 031h, 032h, 033h, 034h, 035h, 036h, 037h
DB 038h, 039h, 03ah, 03bh, 03ch, 03dh, 03eh, 03fh
DB 040h, 04eh, 04fh, 050h, 051h, 052h, 053h, 054h
DB 055h, 056h, 057h, 058h, 059h, 05ah, 041h, 042h
DB 043h, 044h, 045h, 046h, 047h, 048h, 049h, 04ah
DB 04bh, 04ch, 04dh, 05bh, 05ch, 05dh, 05eh, 05fh
DB 060h, 06eh, 06fh, 070h, 071h, 072h, 073h, 074h
DB 075h, 076h, 077h, 078h, 079h, 07ah, 061h, 062h
DB 063h, 064h, 065h, 066h, 067h, 068h, 069h, 06ah
DB 06bh, 06ch, 06dh, 07bh, 07ch, 07dh, 07eh, 07fh
DB 080h, 081h, 082h, 083h, 084h, 085h, 086h, 087h
DB 088h, 089h, 08ah, 08bh, 08ch, 08dh, 08eh, 08fh
DB 090h, 091h, 092h, 093h, 094h, 095h, 096h, 097h
DB 098h, 099h, 09ah, 09bh, 09ch, 09dh, 09eh, 09fh
DB 0a0h, 0a1h, 0a2h, 0a3h, 0a4h, 0a5h, 0a6h, 0a7h
DB 0a8h, 0a9h, 0aah, 0abh, 0ach, 0adh, 0aeh, 0afh
DB 0b0h, 0b1h, 0b2h, 0b3h, 0b4h, 0b5h, 0b6h, 0b7h
DB 0b8h, 0b9h, 0bah, 0bbh, 0bch, 0bdh, 0beh, 0bfh
DB 0c0h, 0c1h, 0c2h, 0c3h, 0c4h, 0c5h, 0c6h, 0c7h
DB 0c8h, 0c9h, 0cah, 0cbh, 0cch, 0cdh, 0ceh, 0cfh
DB 0d0h, 0d1h, 0d2h, 0d3h, 0d4h, 0d5h, 0d6h, 0d7h
DB 0d8h, 0d9h, 0dah, 0dbh, 0dch, 0ddh, 0deh, 0dfh
DB 0e0h, 0e1h, 0e2h, 0e3h, 0e4h, 0e5h, 0e6h, 0e7h
DB 0e8h, 0e9h, 0eah, 0ebh, 0ech, 0edh, 0eeh, 0efh
DB 0f0h, 0f1h, 0f2h, 0f3h, 0f4h, 0f5h, 0f6h, 0f7h
DB 0f8h, 0f9h, 0fah, 0fbh, 0fch, 0fdh, 0feh, 0ffh
ROT10 DB 000h, 001h, 002h, 003h, 004h, 005h, 006h, 007h
DB 008h, 009h, 00ah, 00bh, 00ch, 00dh, 00eh, 00fh
DB 010h, 011h, 012h, 013h, 014h, 015h, 016h, 017h
DB 018h, 019h, 01ah, 01bh, 01ch, 01dh, 01eh, 01fh
DB 020h, 050h, 051h, 052h, 053h, 054h, 055h, 056h
DB 057h, 058h, 059h, 05ah, 05bh, 05ch, 05dh, 05eh
DB 05fh, 060h, 061h, 062h, 063h, 064h, 065h, 066h
DB 067h, 068h, 069h, 06ah, 06bh, 06ch, 06dh, 06eh
DB 06fh, 070h, 071h, 072h, 073h, 074h, 075h, 076h
DB 077h, 078h, 079h, 07ah, 07bh, 07ch, 07dh, 07eh
DB 021h, 022h, 023h, 024h, 025h, 026h, 027h, 028h
DB 029h, 02ah, 02bh, 02ch, 02dh, 02eh, 02fh, 030h
DB 031h, 032h, 033h, 034h, 035h, 036h, 037h, 038h
DB 039h, 03ah, 03bh, 03ch, 03dh, 03eh, 03fh, 040h
DB 041h, 042h, 043h, 044h, 045h, 046h, 047h, 048h
DB 049h, 04ah, 04bh, 04ch, 04dh, 04eh, 04fh, 050h
DB 051h, 052h, 053h, 054h, 055h, 056h, 057h, 058h
DB 059h, 05ah, 05bh, 05ch, 05dh, 05eh, 05fh, 060h
DB 061h, 062h, 063h, 064h, 065h, 066h, 067h, 068h
DB 069h, 06ah, 06bh, 06ch, 06dh, 06eh, 06fh, 070h
DB 071h, 072h, 073h, 074h, 075h, 076h, 077h, 078h
DB 079h, 07ah, 07bh, 07ch, 07dh, 07eh, 07fh, 080h
DB 081h, 082h, 083h, 084h, 085h, 086h, 087h, 088h
DB 089h, 08ah, 08bh, 08ch, 08dh, 08eh, 08fh, 090h
DB 091h, 092h, 093h, 094h, 095h, 096h, 097h, 098h
DB 099h, 09ah, 09bh, 09ch, 09dh, 09eh, 09fh, 0a0h
DB 0a1h, 0a2h, 0a3h, 0a4h, 0a5h, 0a6h, 0a7h, 0a8h
DB 0a9h, 0aah, 0abh, 0ach, 0adh, 0aeh, 0afh, 0b0h
DB 0b1h, 0b2h, 0b3h, 0b4h, 0b5h, 0b6h, 0b7h, 0b8h
DB 0b9h, 0bah, 0bbh, 0bch, 0bdh, 0beh, 0bfh, 0c0h
DB 0c1h, 0c2h, 0c3h, 0c4h, 0c5h, 0c6h, 0c7h, 0c8h
DB 0c9h, 0cah, 0cbh, 0cch, 0cdh, 0ceh, 0cfh, 0d0h
NORMALIZE proc far
push bp
mov bp,sp
push di
push si
push ds
cmp _rot13,1
je drot13
cmp _rot13,2
je drot10
mov bx,offset ROT00
jmp start
drot13: mov bx,offset ROT13
jmp start
drot10: mov bx,offset ROT10
start: les di,[bp+6]
push es
pop ds
mov si,di
l1: lodsb
cmp al,0
jz l3
cmp al,8dh
je l1
cmp al,0ah
je l1
cmp al,0dh
je l2
xlat cs:ROT00
stosb
jmp l1
l2: mov al,0ah
xlat cs:ROT00
stosb
jmp l1
l3: stosb
pop ds
pop si
pop di
pop bp
ret 4
NORMALIZE endp
end