home *** CD-ROM | disk | FTP | other *** search
- ;* ------------------------------------------------------- *
- ;* 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 *
-