home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Simtel MSDOS 1992 September
/
Simtel20_Sept92.cdr
/
msdos
/
clipper
/
nannws12.arc
/
ROLLSCRN.ASM
< prev
next >
Wrap
Assembly Source File
|
1986-07-08
|
3KB
|
148 lines
; Title: ROLLSCRN.ASM
; Author: F. Ho
; Date: sometime 1985
; Syntax: DO ROLLUP WITH 1,2,3,4
; DO ROLLDN WITH 1,2,3,4
; Note: - rollup = rolls UP that part of the screen specified by the coordinates
; - rolldn = rolls DOWN that part of the screen specified by the coordinates
;
public ROLLUP ; declare as public
public ROLLDN ;
;
extrn _PARNI:far ; declare as external of type far
extrn _RET:far ;
;
;
datasg segment para 'DATA' ; start of data segment
;
TOP db 0h ; top -
LEFT db 0h ; left corner
BOTTOM db 0h ; bottom -
RIGHT db 0h ; right corner
;
datasg ends ; end of data segment
;
;
_prog segment byte ; start of code segment
assume cs:_prog,ds:datasg,es:_prog
;
ROLLUP proc far ; start of ROLLUP process
push bp ; preserve return address
mov bp,sp
push ds ; save registers
push es ;
mov ax,1 ; take 1st para
push ax
call _PARNI
add sp,2 ; restore stack
mov TOP,al ; assign 1st para to TOP
mov ax,2 ; take 2nd para
push ax
call _PARNI
add sp,2
mov LEFT,al ; assign to LEFT
mov ax,3 ; take 3rd para
push ax
call _PARNI
add sp,2
mov BOTTOM,al ; assign to BOTTOM
mov ax,4 ; take 4th para
push ax
call _PARNI
add sp,2
mov RIGHT,al ; assign to right
push cx ; preserve coordinate
push dx ; registers
mov ch,TOP ; assign TOP to high CX
mov cl,LEFT ; assign LEFT to low CX
mov dh,BOTTOM ; assign BOTTOM to high DX
mov dl,RIGHT ; assign RIGHT to low DX
xor ax,ax ; zero out AX
push ax
mov ax,0601h ; request roll up service
mov bh,07 ; normal attribute
int 10h ; issue video int
pop ax ; restore registers
pop dx ; before calling RETs
pop cx ; |
pop es ; |
pop ds ; |
pop bp ; |
call _RET ; Clipper return (actual cleaning)
ret ; actual physical return
ROLLUP endp ; end of process
;
;
ROLLDN proc far
push bp
mov bp,sp
push ds
push es
mov ax,1
push ax
call _PARNI
add sp,2
mov TOP,al
mov ax,2
push ax
call _PARNI
add sp,2
mov LEFT,al
mov ax,3
push ax
call _PARNI
add sp,2
mov BOTTOM,al
mov ax,4
push ax
call _PARNI
add sp,2
mov RIGHT,al
push cx
push dx
mov ch,TOP
mov cl,LEFT
mov dh,BOTTOM
mov dl,RIGHT
xor ax,ax
push ax
mov ax,0701h ; request roll down service
mov bh,07
int 10h
pop ax
pop dx
pop cx
pop es
pop ds
pop bp
call _RET
ret
ROLLDN endp
;
_prog ends
end