Category : Dbase (Clipper, FoxBase, etc) Languages Source Code
Archive   : ASMFILE.ZIP
Filename : 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
Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!
This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.
But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/