;           Super Slower for any model IBM PC         
;  (c) Copyright 1990 by Gurtjak D. ( USSR, Donetsk ) 
;
;   IBM PC XT - installed on Time clock (08h)         
;   IBM PC AT - installed on Real-Time clock (70h)    
;
; All Right Reserved     Version 1.0 from May 26 1990 
;
main            segment
                assume  cs:main,ds:main
                org     100h
start:          jmp     install
Counter         dw      0

SLOWER          PROC    FAR
                push    cx

                cmp     ax,'SL'
                jne     No
                cmp     bx,'OW'
                jne     No

                mov     ax,Counter
                mov     cs:Counter,ax
                xor     ax,ax

No:
                mov     cx,cs:Counter
sl1:            cli
		push	cx
		mov	cx,20
		loop	$
		pop	cx
		sti		
                loop    sl1

                pop     cx

                db      0eah    ; jmp far
OldOfs          dw      0
OldSeg          dw      0

SLOWER          ENDP

Install:
                push    cs
                pop     ds

                mov     si,offset text
                mov     bl,0
in1:            lodsb
                add     bl,al
                cmp     al,'$'
                jne     in1

                cmp     bl,07bh                   ; summ
                je      Ok
                int     20h

Ok:             mov     ah,9
                mov     dx,offset Text
                int     21h

                mov     NumInt,8

		push	cs
		pop	es
                mov     bx,81h
                mov     di,offset EndPr
;       ®ç¥à¥¤­®© ¯ à ¬¥âà ¨§ ª®¬.áâà®ª¨ (bx) -> di
;	®ª ­ç¨¢ ¥âáï 0.
scan1:		mov	cx,bx
		sub	cx,81h
		mov	bp,80h
		cmp	cl,[bp]
		jge	exit_sc
		mov	al,[bx]
		inc	bx
		cmp	al,' '
		jz	scan1
rp12:
		stosb
		jmp	short scan1
exit_sc:	xor	al,al
		stosb


                mov     di,offset EndPr
                mov     ax,0
		mov	bp,di
		mov	bx,10
next_a:		mov	cl,[bp]
		cmp	cl,0
		jz	loc_b
		cmp	cl,'0'
		jl	loc_e
		cmp	cl,'9'
		jg	loc_e
		sub	cl,'0'
		mul	bx
		add	al,cl
		adc	ah,0
		inc	bp
		jmp 	short next_a

loc_e:		mov	ah,9
		mov	dx,offset text1
		int	21h
		int	20h

loc_b:		cmp	ax,0
		je	loc_e
		mov	Counter,ax

                mov     ax,0f000h
                mov     es,ax
                cmp     byte ptr es:0fffeh,0fch
                jne     NoAt

                mov     NumInt,70h
;        §à¥è¥­¨¥ ¯¥à¨®¤¨ç¥áª¨å ¯à¥àë¢ ­¨© 70h


NoAt:           mov     ax,'SL'
                mov     bx,'OW'
                db      0cdh            ; int
NumInt          db      8h

                or      ax,ax
                jne     First

                int     20h

First:          mov     ah,35h
                mov     al,NumInt
                int     21h
                mov     OldSeg,es
                mov     OldOfs,bx

                mov     al,NumInt
                mov     ah,25h
                mov     dx,offset Slower
                int     21h

                mov     al,0bh
                out     70h,al
                jmp     $+2
                in      al,71h
                or      al,40h
                mov     ah,al
                mov     al,0bh
                out     70h,al
                jmp     $+2
                mov     al,ah
                out     71h,al


                lea     dx,install
                int     27h

text            db      'ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿',13,10
                db      '³           Super Slower for any model IBM PC         ³',13,10
                db      '³  (c) Copyright 1990 by Gurtjak D. ( USSR, Donetsk ) ³',13,10
                db      'ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´',13,10
                db      '³   IBM PC XT - installed on Time clock (08h)         ³',13,10
                db      '³   IBM PC AT - installed on Real-Time clock (70h)    ³',13,10
                db      '³ All Right Reserved     Version 1.0 from May 26 1990 ³',13,10
                db      'ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ',13,10,10,'$'
text1           db      'Incorrect parameter,  SLOWER < Counter >',13,10,'$'
EndPr           db      0

Main            ends
                end     start


