home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Overload
/
ShartewareOverload.cdr
/
games
/
speedset.zip
/
VARISLOW.ASM
next >
Wrap
Assembly Source File
|
1986-06-24
|
2KB
|
113 lines
SLOW SEGMENT PUBLIC PARA
ASSUME CS:SLOW; DS:SLOW ;ES:SLOW
ORG 100H
START:
JMP TEMP
EXIT DW 0
DW 0
LOOPDATA DW 150
ACK DB 13,10,10,'VARISLOW by Ray Usher [To slow AT down to play games]',13,10,10
DB 'Left Shift: Slows down action',13,10,10
DB 'Right Shift: Speeds up action',13,10,10
DB 'Left Shift & Right Shift together: Exits program',13,10,'$'
EXITMES DB 'Computer is back to full speed',13,10
START2:
PUSH AX
PUSH BX
PUSH CX
PUSH DX
PUSH DS
MOV AX,40H ;GET KEYBOARD BYTE
MOV DS,AX
MOV BX,17H
MOV DL,[BX]
MOV DH,DL ;SAVE IT IN DH
MOV AX,CS ;SET UP DS
MOV DS,AX
AND DL,1 ;CK FOR R SHIFT
JZ CK_L_SHIFT
MOV DL,DH ;CK FOR BOTH SHIFTS
AND DL,2
JNZ CANCEL ;YES GO
MOV AX,LOOPDATA ;SHORTEN LOOP FOR FASTER
SUB AX,10
CMP AX,10
JB LOOP
MOV LOOPDATA,AX
JMP LOOP
CK_L_SHIFT:
MOV DL,DH ;CH FOR L SHIFT
AND DL,02
JZ LOOP
MOV AX,LOOPDATA ;LENGTHEN LOOP FOR SLOWER COMPUTER
ADD AX,10
CMP AX,300
JA LOOP
MOV LOOPDATA,AX ;GET LOOP LENGTH
LOOP:
MOV CX,LOOPDATA
LOOP1:
PUSH CX
MOV CX,100
HERE:
LOOP HERE
POP CX
LOOP LOOP1
POP DS
POP DX
POP CX
POP BX
POP AX
JMP DWORD PTR EXIT
CANCEL:
CLI
MOV DX,EXIT ;RETURN OLD HOOK
MOV DS,EXIT+2
MOV AX,251CH
INT 21H
STI
PUSH SI
XOR SI,SI ;DISPLAY EXIT MESSAGE
LOOP2:
MOV AL,EXITMES [SI]
MOV AH,14
XOR BH,BH
INT 16 ;USING INT 16 (A MUST)
INC SI
CMP SI,32
JB LOOP2
POP SI
POP DS
POP DX
POP CX
POP BX
POP AX
IRET
END_OF_PROG EQU THIS BYTE
TEMP:
MOV DX, OFFSET ACK ;DISPLAY INSTRUCTIONS
MOV AH,9H
INT 21H
CLI
MOV AX,351CH ;GET 1C HOOK
INT 21H
MOV EXIT,BX
MOV AX,ES
MOV EXIT+2,AX
MOV AX,CS
MOV DS,AX
MOV DX,OFFSET START2 ;CHANGE 1C HOOK TO HERE
MOV AX,251CH
INT 21H
STI
MOV DX,OFFSET END_OF_PROG
INT 27H ;TERMINATE AND STAY RESIDENT
SLOW ENDS
END START