home *** CD-ROM | disk | FTP | other *** search
- ;Interface Turbo Pascal 5.0 with MultiLink Advanced
- ;Version 1.0
- ;Assembled with TASM 1.0
-
- ;Donald M. DeLapp
- ;485 S. Sheridan Ave.
- ;Sheridan, WY 82801
- ;307-674-6841
-
- LOCALS
- .MODEL TPASCAL
- .CODE
-
- MultiLinkINT EQU 7Fh
-
- MultiLinkLoaded PROC FAR
- PUBLIC MultiLinkLoaded
- XOR AX,AX
- MOV ES,AX
- MOV ES,ES:[01FEH]
- MOV DX,ES
- CMP AX,DX
- JE NOTFOUND
- CMP BYTE PTR ES:[0],0E9H
- JNE NOTFOUND
- MOV AL,1
- JMP SHORT @@EXIT
- NOTFOUND:
- XOR AL,AL
- @@EXIT: RET
- MultiLinkLoaded ENDP
-
- Enque PROC FAR What:WORD,WaitFlag:WORD,Result:DWORD
- PUBLIC Enque
- MOV BX,WORD PTR What
- XOR AH,AH
- MOV AL,BYTE PTR WaitFlag
- INT MultiLinkINT
- XOR AH,AH
- LES DI,DWORD PTR Result
- MOV WORD PTR ES:[DI],AX
- RET
- Enque ENDP
-
- Deque PROC FAR What:WORD,Result:DWORD
- PUBLIC Deque
- MOV BX,WORD PTR What
- MOV AH,1
- INT MultiLinkINT
- XOR AH,AH
- LES DI,DWORD PTR Result
- MOV WORD PTR ES:[DI],AX
- RET
- Deque ENDP
-
- SetTaskPriority PROC FAR N:WORD
- PUBLIC SetTaskPriority
- MOV AL,BYTE PTR N
- MOV AH,9
- INT MultiLinkINT
- RET
- SetTaskPriority ENDP
-
- SetKbdTest PROC FAR N:WORD
- PUBLIC SetKbdTest
- MOV AL,BYTE PTR N
- MOV AH,10
- INT MultiLinkINT
- RET
- SetKbdTest ENDP
-
- MLVIDRAMActive PROC FAR
- PUBLIC MLVIDRAMActive
- XOR AX,AX
- MOV ES,AX
- MOV ES,WORD PTR ES:[01FEH]
- MOV DI,WORD PTR ES:[58H] ;TASK INDEX
- MOV AL,BYTE PTR ES:[DI+0D6H];video I/O buffer flag
- AND AL,00000001B
- JZ @@FALSE
- MOV AL,1
- JMP SHORT @@EXIT
- @@FALSE:
- XOR AL,AL
- @@EXIT: RET
- MLVIDRAMActive ENDP
-
- GetMultiLinkVideoSegment PROC FAR
- PUBLIC GetMultiLinkVideoSegment
- XOR AX,AX
- MOV ES,AX
- MOV ES,WORD PTR ES:[01FEH]
- MOV DI,WORD PTR ES:[58H] ;TASK INDEX
- MOV AX,WORD PTR ES:[DI+0D4H];video I/O buffer segment address
- RET
- GetMultiLinkVideoSegment ENDP
-
- SetTaskTimeSlice PROC FAR N:WORD
- PUBLIC SetTaskTimeSlice
- XOR AX,AX
- MOV ES,AX
- MOV ES,WORD PTR ES:[01FEH]
- MOV DI,WORD PTR ES:[58H] ;TASK INDEX
- MOV AL,BYTE PTR N
- MOV BYTE PTR ES:[DI+0E3H],AL;timer ticks for partition
- RET
- SetTaskTimeSlice ENDP
-
- GetPartitionNo PROC FAR
- PUBLIC GetPartitionNo
- XOR AX,AX
- MOV DX,AX
- MOV ES,AX
- MOV ES,WORD PTR ES:[01FEH]
- MOV BX,WORD PTR ES:[54H] ;RTSIZE
- MOV AX,WORD PTR ES:[58H] ;TASK INDEX
- DIV BX
- RET
- GetPartitionNo ENDP
-
- END
-