-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathATPAKOL8.ASM
94 lines (74 loc) · 1.88 KB
/
ATPAKOL8.ASM
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
; CDW kep nyomtatashoz 8-tus atpakolo
; TP5-hoz TASM formatumban
;
.MODEL TPASCAL
.CODE
public atpakol8
public buffnegal
public buffnegalw
ATPAKOL8 proc near tombcim: dword, fontcim: dword, xnovel: word, xmennyit: word, ymagas: word, ymennyit: word
; mutato mutato tomb max. szelessege 10/20 5/10
; byte-okban
push ds
push es
cld
lds si,tombcim
les di,fontcim
add di,158h ; '!' elso sora
nagyhur:
push di
push si
mov cx,xmennyit ; hany byte-ot atrakni vizszintesen
kishur:
mov ax,ds:[si] ; AX := elso es masodik byte balra igazitva
inc SI ;
mov es:[di],ax ; ES:DI = elso ket byte
add DI,ymagas
dec cx
jz kishur_vege
lodsw ; AX := masodik es harmadik byte, jobbra igazitva
shl ah,1
rcl al,1
shl ah,1
rcl al,1
shl ah,1
rcl al,1
shl ah,1
rcl al,1
mov es:[di],ax
add DI,ymagas
dec cx
jz kishur_vege
dec cx ; !!!!!!! 3-byte-bol 2 karakter sor
jnz kishur
kishur_vege:
pop si
pop di
add di,2 ; next char line
add si,xnovel
dec ymennyit
jnz nagyhur
pop es
pop ds
ret
atpakol8 endp
;---------------------------------------
buffnegal proc near puffercim: dword, hossza: word
les di,puffercim
mov cx,hossza
bnhur: not byte ptr es:[di]
inc di
loop bnhur
ret
buffnegal endp
buffnegalw proc near puffercim: dword, hossza: word
les di,puffercim
mov cx,hossza
shr cx,1
bnhurw: not word ptr es:[di]
inc di
inc di
loop bnhurw
ret
buffnegalw endp
END