Upload
This commit is contained in:
commit
43352ff262
1291 changed files with 220976 additions and 0 deletions
322
PAM/ASMYT.ASM
Normal file
322
PAM/ASMYT.ASM
Normal file
|
|
@ -0,0 +1,322 @@
|
|||
IDEAL
|
||||
MODEL large
|
||||
P386
|
||||
|
||||
CODESEG
|
||||
|
||||
aseg dw 0
|
||||
|
||||
;ntaulu db 1000b,1100b,1110b,1111b
|
||||
;taulu db 1111b,0111b,0011b,0001b
|
||||
|
||||
ntaulu db 0001b,0011b,0111b,1111b
|
||||
taulu db 1111b,1110b,1100b,1000b
|
||||
|
||||
ptaulu db 1,2,4,8
|
||||
|
||||
PUBLIC C init_uframe, C ulosta_frame
|
||||
|
||||
PROC C init_uframe
|
||||
|
||||
ARG fseg:word
|
||||
|
||||
mov ax, [fseg]
|
||||
mov [cs:aseg], ax
|
||||
ret
|
||||
ENDP
|
||||
|
||||
PROC C ulosta_frame
|
||||
|
||||
ARG scseg:word
|
||||
|
||||
push ds di si
|
||||
|
||||
xor di, di
|
||||
xor si, si
|
||||
mov ax, [scseg]
|
||||
mov es, ax
|
||||
mov ds, [cs:aseg]
|
||||
mov dx, 03c4h ; map mask... 03c4h, 02..
|
||||
|
||||
@@looppi:
|
||||
lodsb
|
||||
cmp al, 0d
|
||||
jg @@outtaa
|
||||
je @@over
|
||||
@@skip:
|
||||
cbw
|
||||
sub di, ax
|
||||
|
||||
lodsb
|
||||
cmp al, 0d
|
||||
jl @@skip
|
||||
je @@over
|
||||
|
||||
@@outtaa:
|
||||
dec al
|
||||
jz @@single
|
||||
|
||||
cbw
|
||||
mov bx, di
|
||||
and bx, 3d
|
||||
add bx, ax
|
||||
shr bx, 2d
|
||||
or bx, bx
|
||||
jz @@samebyte
|
||||
cmp bx, 1d
|
||||
je @@twobytes
|
||||
|
||||
mov cx, ax
|
||||
mov bx, di
|
||||
and bx, 3d
|
||||
mov ah, [cs:taulu+bx]
|
||||
mov al, 2d
|
||||
out dx, ax
|
||||
mov al, [ds:si]
|
||||
mov bx, di
|
||||
shr bx, 2d
|
||||
mov [es:bx], al
|
||||
|
||||
push di cx
|
||||
|
||||
mov ax, di
|
||||
add cx, ax
|
||||
shr cx, 2d
|
||||
sub cx, bx
|
||||
dec cx
|
||||
shr di, 2d
|
||||
inc di
|
||||
|
||||
mov ax, 0f02h
|
||||
out dx, ax
|
||||
mov al, [ds:si]
|
||||
mov ah, al
|
||||
shr cx, 1d
|
||||
jnc @@l1
|
||||
stosb
|
||||
@@l1: jcxz @@l2
|
||||
rep stosw
|
||||
|
||||
@@l2: pop cx di
|
||||
add di, cx
|
||||
mov bx, di
|
||||
and bx, 3d
|
||||
mov ah, [cs:ntaulu+bx]
|
||||
mov al, 2d
|
||||
out dx, ax
|
||||
lodsb
|
||||
mov bx, di
|
||||
shr bx, 2d
|
||||
mov [es:bx], al
|
||||
|
||||
inc di
|
||||
|
||||
lodsb
|
||||
cmp al, 0d
|
||||
jl @@skip
|
||||
jg @@outtaa
|
||||
je @@over
|
||||
|
||||
@@twobytes:
|
||||
mov bx, di
|
||||
and bx, 3d
|
||||
mov cl, [cs:taulu+bx]
|
||||
add di, ax
|
||||
mov bx, di
|
||||
and bx, 3d
|
||||
mov ch, [cs:ntaulu+bx]
|
||||
mov ah, cl
|
||||
mov al, 2d
|
||||
out dx, ax
|
||||
mov cl, [ds:si]
|
||||
mov bx, di
|
||||
shr bx, 2d
|
||||
mov [es:bx-1], cl
|
||||
mov ah, ch
|
||||
out dx, ax
|
||||
mov [es:bx], cl
|
||||
inc di
|
||||
inc si
|
||||
|
||||
lodsb
|
||||
cmp al, 0d
|
||||
jl @@skip
|
||||
jg @@outtaa
|
||||
je @@over
|
||||
|
||||
|
||||
@@samebyte:
|
||||
mov bx, di
|
||||
and bx, 3d
|
||||
mov cl, [cs:taulu+bx]
|
||||
add di, ax
|
||||
mov bx, di
|
||||
and bx, 3d
|
||||
and cl, [cs:ntaulu+bx]
|
||||
mov ah, cl
|
||||
mov al, 02h
|
||||
out dx, ax
|
||||
lodsb
|
||||
mov bx, di
|
||||
shr bx, 2d
|
||||
mov [es:bx], al
|
||||
inc di
|
||||
|
||||
lodsb
|
||||
cmp al, 0d
|
||||
jl @@skip
|
||||
jg @@outtaa
|
||||
je @@over
|
||||
|
||||
|
||||
@@single:
|
||||
mov bx, di
|
||||
and bx, 3d
|
||||
mov ah, [cs:ptaulu+bx]
|
||||
mov al, 2d
|
||||
out dx, ax
|
||||
lodsb
|
||||
mov bx, di
|
||||
shr bx, 2d
|
||||
mov [es:bx], al
|
||||
inc di
|
||||
|
||||
;-------------
|
||||
lodsb
|
||||
cmp al, 0d
|
||||
jl @@skip
|
||||
jg @@outtaa
|
||||
je @@over
|
||||
|
||||
@@over:
|
||||
mov di, si
|
||||
shr si, 4d
|
||||
mov ax, ds
|
||||
add ax, si
|
||||
and di, 15d
|
||||
jz @@exit
|
||||
inc ax
|
||||
@@exit:
|
||||
mov [cs:aseg], ax
|
||||
|
||||
pop si di ds
|
||||
|
||||
ret
|
||||
ENDP
|
||||
|
||||
PROC ruudulle
|
||||
|
||||
dec al
|
||||
jz @@single
|
||||
|
||||
cbw
|
||||
mov bx, di
|
||||
and bx, 3d
|
||||
add bx, ax
|
||||
shr bx, 2d
|
||||
or bx, bx
|
||||
jz @@samebyte
|
||||
cmp bx, 1d
|
||||
je @@twobytes
|
||||
|
||||
mov cx, ax
|
||||
mov bx, di
|
||||
and bx, 3d
|
||||
mov ah, [cs:taulu+bx]
|
||||
mov al, 2d
|
||||
out dx, ax
|
||||
mov al, [ds:si]
|
||||
mov bx, di
|
||||
shr bx, 2d
|
||||
mov [es:bx], al
|
||||
|
||||
push di cx
|
||||
|
||||
mov ax, di
|
||||
add cx, ax
|
||||
shr cx, 2d
|
||||
sub cx, bx
|
||||
dec cx
|
||||
shr di, 2d
|
||||
inc di
|
||||
|
||||
mov ax, 0f02h
|
||||
out dx, ax
|
||||
mov al, [ds:si]
|
||||
mov ah, al
|
||||
shr cx, 1d
|
||||
jnc @@l1
|
||||
stosb
|
||||
@@l1: jcxz @@l2
|
||||
rep stosw
|
||||
|
||||
@@l2: pop cx di
|
||||
add di, cx
|
||||
mov bx, di
|
||||
and bx, 3d
|
||||
mov ah, [cs:ntaulu+bx]
|
||||
mov al, 2d
|
||||
out dx, ax
|
||||
lodsb
|
||||
mov bx, di
|
||||
shr bx, 2d
|
||||
mov [es:bx], al
|
||||
|
||||
inc di
|
||||
ret
|
||||
|
||||
@@twobytes:
|
||||
mov bx, di
|
||||
and bx, 3d
|
||||
mov cl, [cs:taulu+bx]
|
||||
add di, ax
|
||||
mov bx, di
|
||||
and bx, 3d
|
||||
mov ch, [cs:ntaulu+bx]
|
||||
mov ah, cl
|
||||
mov al, 2d
|
||||
out dx, ax
|
||||
mov cl, [ds:si]
|
||||
mov bx, di
|
||||
shr bx, 2d
|
||||
mov [es:bx-1], cl
|
||||
mov ah, ch
|
||||
out dx, ax
|
||||
mov [es:bx], cl
|
||||
inc di
|
||||
inc si
|
||||
ret
|
||||
|
||||
@@samebyte:
|
||||
mov bx, di
|
||||
and bx, 3d
|
||||
mov cl, [cs:taulu+bx]
|
||||
add di, ax
|
||||
mov bx, di
|
||||
and bx, 3d
|
||||
and cl, [cs:ntaulu+bx]
|
||||
mov ah, cl
|
||||
mov al, 02h
|
||||
out dx, ax
|
||||
lodsb
|
||||
mov bx, di
|
||||
shr bx, 2d
|
||||
mov [es:bx], al
|
||||
inc di
|
||||
ret
|
||||
|
||||
@@single:
|
||||
mov bx, di
|
||||
and bx, 3d
|
||||
mov ah, [cs:ptaulu+bx]
|
||||
mov al, 2d
|
||||
out dx, ax
|
||||
lodsb
|
||||
mov bx, di
|
||||
shr bx, 2d
|
||||
mov [es:bx], al
|
||||
inc di
|
||||
ret
|
||||
ENDP
|
||||
|
||||
END
|
||||
Loading…
Reference in a new issue