home *** CD-ROM | disk | FTP | other *** search
- ;* ------------------------------------------------------- *
- ;* TXTSR.ASM: Objektdatei zum Einbinden für TXTSR.PAS *
- ;* (c) 1990 TOOLBOX *
- ;* ------------------------------------------------------- *
- False EQU 0
- True EQU 1
- MsDos EQU 21h
- GetInt16 EQU 3516h
- SetInt16 EQU 2516h
-
- DATA SEGMENT BYTE PUBLIC
-
- EXTRN PopUpSS :WORD
- EXTRN PopUpSP :WORD
- EXTRN SaveSS :WORD
- EXTRN SaveSP :WORD
- EXTRN TempInt16 :DWORD
- EXTRN InUse :BYTE
- EXTRN HotKey_1 :WORD ; Ä n d e r u n g
- EXTRN HotKey_2 :WORD ; Ä n d e r u n g
- EXTRN HotKey_3 :WORD ; Ä n d e r u n g
- EXTRN HotKey_4 :WORD ; Ä n d e r u n g
- EXTRN HotKey_5 :WORD ; Ä n d e r u n g
- EXTRN PopUp_1 :DWORD ; Ä n d e r u n g
- EXTRN PopUp_2 :DWORD ; Ä n d e r u n g
- EXTRN PopUp_3 :DWORD ; Ä n d e r u n g
- EXTRN PopUp_4 :DWORD ; Ä n d e r u n g
- EXTRN PopUp_5 :DWORD ; Ä n d e r u n g
- EXTRN ProgramID :BYTE
- EXTRN PrefixSeg :WORD
- EXTRN SaveHotKey :WORD ; Ä n d e r u n g
-
- DATA ENDS
-
- CODE SEGMENT BYTE PUBLIC
-
- ASSUME CS:CODE,DS:DATA
-
- PUBLIC Int16,SaveInt16
-
- Int16 PROC FAR
-
- CMP AH,0h
- JE GetKey
-
- Identify:
- CMP AH,0F0h
- JNE GetSegment
- PUSH DS
- PUSH AX
- MOV AX,DATA
- MOV DS,AX
- PUSH CX
- MOV AX,1
- MOV CL,ProgramID
- DEC CL
- CMP CL,16
- JG UpperHalf
- SHL AX,CL
- OR BX,AX
- POP CX
- JMP SHORT Ready
- UpperHalf:
- SUB CL,16
- SHL AX,CL
- POP CX
- OR CX,AX
- Ready:
- POP AX
- POP DS
- ChainInt16:
- DB 0EAh
- SaveInt16 DD ?
- GetSegment:
- CMP AH,0F1h
- JNE ChainInt16
- PUSH DS
- PUSH AX
- MOV BX,AX
- MOV AX,DATA
- MOV DS,AX
- CMP BL,ProgramID
- JNE Ready
- MOV BX,PrefixSeg
- POP AX
- POP DS
- IRET
- GetKey:
- STI
- PUSH DS
- PUSH AX
- MOV AX,DATA
- MOV DS,AX
- POP AX
- CMP InUse,True
- JNE SwitchStack
- POP DS
- JMP SHORT ChainInt16
- SwitchStack:
- MOV SaveSS,SS
- MOV SaveSP,SP
- CLI
- MOV SS,PopUpSS
- MOV SP,PopUpSP
- STI
- PUSH BX
- PUSH CX
- PUSH DX
- PUSH SI
- PUSH DI
- PUSH BP
- PUSH ES
- CheckKey:
- XOR AH,AH
- PUSHF
- CALL CS:SaveInt16
-
- CMP AX,HOTKEY_1 ; Ä n d e r u n g
- JE OUTFWD ; Ä n d e r u n g
- CMP AX,HOTKEY_2 ; Ä n d e r u n g
- JE OUTFWD ; Ä n d e r u n g
- CMP AX,HOTKEY_3 ; Ä n d e r u n g
- JE OUTFWD ; Ä n d e r u n g
- CMP AX,HOTKEY_4 ; Ä n d e r u n g
- JE OUTFWD ; Ä n d e r u n g
- CMP AX,HOTKEY_5 ; Ä n d e r u n g
- JE OUTFWD ; Ä n d e r u n g
- JMP EXIT ; Ä n d e r u n g
-
- OUTFWD: MOV SaveHotKey,AX
-
- MOV InUse,TRUE
- MOV AX,GetInt16
- INT MsDos
- MOV WORD PTR TempInt16,BX
- MOV WORD PTR TempInt16+2,ES
- PUSH DS
- LDS DX,CS:SaveInt16
- MOV AX,SetInt16
- INT MsDos
- POP DS
-
- PUSH AX ; Ä n d e r u n g
- MOV AX,SaveHotKey ; Ä n d e r u n g
- ; Ä n d e r u n g
- CMP AX,HOTKEY_1 ; Ä n d e r u n g
- JNE L1 ; Ä n d e r u n g
- CALL POPUP_1 ; Ä n d e r u n g
- JMP Weiter ; Ä n d e r u n g
- L1: ; Ä n d e r u n g
- CMP AX,HOTKEY_2 ; Ä n d e r u n g
- JNE L2 ; Ä n d e r u n g
- CALL POPUP_2 ; Ä n d e r u n g
- JMP Weiter ; Ä n d e r u n g
- L2: ; Ä n d e r u n g
- CMP AX,HOTKEY_3 ; Ä n d e r u n g
- JNE L3 ; Ä n d e r u n g
- CALL POPUP_3 ; Ä n d e r u n g
- JMP Weiter ; Ä n d e r u n g
- L3: ; Ä n d e r u n g
- CMP AX,HOTKEY_3 ; Ä n d e r u n g
- JNE L4 ; Ä n d e r u n g
- CALL POPUP_3 ; Ä n d e r u n g
- JMP Weiter ; Ä n d e r u n g
- L4: ; Ä n d e r u n g
- CMP AX,HOTKEY_4 ; Ä n d e r u n g
- JNE L5 ; Ä n d e r u n g
- CALL POPUP_4 ; Ä n d e r u n g
- JMP Weiter ; Ä n d e r u n g
- L5: ; Ä n d e r u n g
- CMP AX,HOTKEY_5 ; Ä n d e r u n g
- JNE Weiter ; Ä n d e r u n g
- CALL POPUP_5 ; Ä n d e r u n g
- ; Ä n d e r u n g
- Weiter: POP AX ; Ä n d e r u n g
- PUSH DS
- POP ES
- MOV DX,WORD PTR TempInt16
- MOV DS,WORD PTR TempInt16+2
- MOV AX,SetInt16
- INT MsDos
- PUSH ES
- POP DS
- MOV InUse,False
- JMP CheckKey
- Exit:
- POP ES
- POP BP
- POP DI
- POP SI
- POP DX
- POP CX
- POP BX
- CLI
- MOV SS,SaveSS
- MOV SP,SaveSP
- POP DS
- STI
- IRET
-
- Int16 ENDP
-
- CODE ENDS
- END
- ;* ------------------------------------------------------- *
- ;* Ende von TXTSR.ASM *
-
-