]>
wirehaze git hosting - MS-DOS.git/blob - v4.0/src/DOS/CRIT.ASM
1 ; SCCSID = @(#)crit.asm 1.1 85/04/10
2 TITLE CRIT
- Critical
Section Routines
5 ; Critical Section Routines
7 ; Critical section handlers
9 ; Modification history:
11 ; Created: ARR 30 March 1983
16 ; get the appropriate segment definitions
20 CODE SEGMENT BYTE PUBLIC 'CODE'
21 ASSUME
SS:NOTHING
,CS:DOSGROUP
28 I_need User_In_AX
,WORD
29 i_need CurrentPDB
,WORD
36 Break <Critical
section handlers
>
39 ; Each handler must leave everything untouched; including flags!
41 ; Sleaze for time savings: first instruction is a return. This is patched
42 ; by the sharer to be a PUSH AX to complete the correct routines.
44 Procedure EcritDisk
,NEAR
51 fmt TypSect
,LevReq
,<"PDB $x entering $x">,<CurrentPDB
,sect
>
58 Procedure LcritDisk
,NEAR
65 fmt TypSect
,LevReq
,<"PDB $x entering $x">,<CurrentPDB
,sect
>
72 Procedure EcritDevice
,NEAR
75 fmt TypSect
,LevReq
,<"PDB $x entering $x">,<CurrentPDB
,sect
>
76 MOV AX,8000h
+critDevice
82 Procedure LcritDevice
,NEAR
85 MOV AX,8100h
+critDevice