home *** CD-ROM | disk | FTP | other *** search
- ; WR.ASM
- ;
- ; procedure wr(y,x,att: byte; text: string);
- ; procedure wrm(y,x,att: byte; text: string);
- ; procedure wrr(y,x,att: byte; text: string);
-
- public wr
- public wrm
- public wrr
-
- data segment word public
- assume ds:data
-
- extrn crt_screen: dword
-
- data ends
-
-
- code segment word public
- assume cs:code
-
- wr proc far
-
- lng equ 6 ; BP + Rücksprung-AD
- text equ ss:[bp+lng]
- att equ byte ptr ss:[bp+lng+4]
- x equ byte ptr ss:[bp+lng+6]
- y equ byte ptr ss:[bp+lng+8]
- param_bytes equ 10
-
- push bp
- mov bp,sp
- do_wr:
- push ds
- cld
-
- les di,crt_screen
- assume es:nothing
- mov al,x
- xor ah,ah
- shl ax,1
- add di,ax
- mov al,y
- mov bx,160
- mul bx
- add di,ax ; ES:DI zeigt auf Bildschirm
-
- lds si,text
- lodsb
- mov cl,al
- xor ch,ch
- or cx,cx
- jz do_nothing
-
- mov ah,att
- copy_schleife:
- lodsb
- stosw
- loop copy_schleife
-
- do_nothing:
- pop ds
- pop bp
- ret param_bytes
-
- wr endp
-
-
- wrm proc far
-
- push bp
- mov bp,sp
- push ds
- cld
-
- lds si,text
- lodsb
- shr al,1
- mov bl,x
- sub bl,al
- mov x,bl
- pop ds
- jmp short do_wr
-
- wrm endp
-
- wrr proc far
-
- push bp
- mov bp,sp
- push ds
- cld
-
- lds si,text
- lodsb
- mov bl,x
- sub bl,al
- inc bl
- mov x,bl
- pop ds
- jmp short do_wr
-
- wrr endp
-
- code ends
- end