home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turbo Toolbox
/
Turbo_Toolbox.iso
/
1991
/
04
/
tricks
/
cheapcrt.asm
next >
Wrap
Assembly Source File
|
1991-01-08
|
3KB
|
212 lines
;* ------------------------------------------------------- *
;* CHEAPCRT.ASM *
;* (c) 1989 Hanno-Ekkehard Müller & TOOLBOX *
;* ------------------------------------------------------- *
TITLE "Cheap" CRT Library
DATA Segment Word Public
ASSUME ds:DATA
DATA ends
CODE Segment Byte Public
ASSUME cs:CODE
PUBLIC TextMode
PUBLIC GotoXY
PUBLIC WhereX
PUBLIC WhereY
PUBLIC ClrScr
PUBLIC KeyPressed
PUBLIC ReadKey
PUBLIC Sound
PUBLIC NoSound
TextMode PROC FAR
Mode EQU BYTE PTR [bp+4]
MOV cx,bp
MOV bp,sp
XOR ax,ax
MOV al,Mode
INT 10h
MOV bp,cx
RET 2
TextMode ENDP
GotoXY PROC FAR
X EQU BYTE PTR [bp+6]
Y EQU BYTE PTR [bp+4]
MOV cx,bp
MOV bp,sp
MOV ah,02h
XOR bx,bx
MOV dl,X
DEC dl
MOV dh,Y
DEC dh
INT 10h
MOV bp,cx
RET 4
GotoXY ENDP
WhereX PROC FAR
MOV ah,03h
XOR bx,bx
INT 10h
MOV al,dl
INC al
RET
WhereX ENDP
WhereY PROC FAR
MOV ah,03h
XOR bx,bx
INT 10h
MOV al,dh
INC al
RET
WhereY ENDP
ClrScr PROC FAR
MOV ah,0fh
INT 10h
XOR ah,ah
INT 10h
RET
ClrScr ENDP
WaitExtended db 0
ExtendedCode db 0
KeyPressed PROC FAR
MOV al,[WaitExtended]
OR al,al
JNZ KeyIsPressed
MOV ax,0100h
INT 16h
JNZ KeyIsPressed
XOR ax,ax
RET
KeyIsPressed:
MOV ax,1
RET
KeyPressed ENDP
ReadKey PROC FAR
MOV al,[WaitExtended]
OR al,al
JZ NoWait
XOR ax,ax
MOV [WaitExtended],al
MOV al,ExtendedCode
RET
NoWait:
XOR ax,ax
INT 16h
OR al,al
JNZ EndJump
MOV [WaitExtended],1
MOV [ExtendedCode],ah
EndJump:
RET
ReadKey ENDP
Sound PROC FAR
Hertz EQU WORD PTR [bp+4]
MOV cx,bp
MOV bp,sp
MOV dx,12h
MOV ax,34ddh
MOV bx,Hertz
CMP bx,dx
JB DivisionByZero
DIV bx
MOV bx,ax
IN al,61h
TEST al,00000011b
JNZ SoundActive
OR al,00000011b
OUT 61h,al
MOV al,182
OUT 43h,al
SoundActive:
MOV ax,bx
OUT 42h,al
MOV al,ah
OUT 42h,al
MOV bp,cx
DivisionByZero:
RET 2
Sound ENDP
NoSound PROC FAR
IN al,61h
AND al,11111100b
OUT 61h,al
RET
NoSound ENDP
CODE ENDS
END
;* ------------------------------------------------------- *
;* Ende von CHEAPCRT.ASM *