home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / assemblr / library / lib4a86 / lib / int24.lib < prev    next >
Text File  |  1992-02-02  |  2KB  |  129 lines

  1. #IF !LIB4A86
  2. #ELSE
  3. #IF !INTERN_LIB4A86_S
  4. INTERN_LIB4A86_S EQU 01
  5. JMP START
  6. #ENDIF
  7. #ENDIF
  8. INT24ERRORSELECT DB 0
  9. INT24DEVICEERROR DB 0
  10. INT24ERROR DB 0
  11. INT24DRIVENUMBER DB 0
  12. I000 DW 0,0
  13. RESETINT24HERRORVARS MACRO
  14. XOR AL,AL
  15. MOV CS:INT24DRIVENUMBER,AL
  16. MOV CS:INT24ERROR,AL
  17. MOV CS:INT24ERRORSELECT,AL
  18. XCHG CS:INT24ERROR,AL
  19. OR AL,AL
  20. #EM
  21. RESETINT24HVARS:
  22. RESETINT24HERRORVARS
  23. RET
  24. SETINT24H:
  25. PUSH ES,BX,DS
  26. MOV AX,03524H
  27. INT 021H
  28. PUSH ES
  29. PUSH BX
  30. MOV DX,OFFSET INT24H
  31. MOV DS,CS
  32. MOV AX,02524H
  33. INT 021H
  34. POP AX
  35. POP DX
  36. POP DS,BX,ES
  37. RET
  38. INT24H:
  39. STI
  40. MOV W CS:INT24DEVICEERROR,DI
  41. MOV CS:INT24ERROR,AH
  42. MOV CS:INT24ERRORSELECT, 1
  43. PUSH DS
  44. MOV DS,BP
  45. TEST W[SI+4],08000H
  46. POP DS
  47. JNZ NOTLWFEHLER
  48. INC CS:INT24ERRORSELECT, 1
  49. PUSH DX
  50. XOR AH,AH
  51. MOV DL,080H
  52. INT 013H
  53. XOR AH,AH
  54. MOV DL,081H
  55. INT 013H
  56. POP DX
  57. NOTLWFEHLER:
  58. MOV AL,3
  59. CMP W CS:I000+2,0
  60. JE >L1
  61. CALL DWORD PTR CS:[I000]
  62. L1:
  63. IRET
  64. GETSETINT24HROUTINE:
  65. OR AL,AL
  66. JNZ >L1
  67. CMP W CS:I000+2,0
  68. STC
  69. JZ >L91
  70. MOV DX,I000+2
  71. MOV BX,I000
  72. JMP >L9
  73. L1:
  74. DEC AL
  75. JNZ >L1
  76. OR DX,DX
  77. JZ >L8
  78. CLI
  79. MOV CS:I000+2,DX
  80. MOV CS:I000,BX
  81. STI
  82. JMP >L9
  83. L1:
  84. DEC AL
  85. JNZ >L8
  86. CLI
  87. XOR AX,AX
  88. MOV CS:I000+2,AX
  89. MOV CS:I000,AX
  90. STI
  91. L9:
  92. CLC
  93. L91:
  94. RET
  95. L8:
  96. MOV AL,0FFH
  97. STC
  98. RET
  99. #IF !INTERN_CMARK0
  100. INTERN_CMARK0 EQU 01H
  101. INTERN_CMARK1:
  102. PUSH BP
  103. MOV BP,SP
  104. MOV BX,06H
  105. SUB CH,[BP+SI]
  106. SUB AH,[BX+SI]
  107. DEC SP
  108. DEC CX
  109. INC DX
  110. XOR AL,041H
  111. CMP B[02820H],DH
  112. INC BX
  113. SUB W[BX+SI],SP
  114. INC DX
  115. CS AND B[BP+DI+043H],DL
  116. DEC AX
  117. INC BP
  118. DEC BP
  119. DEC BP
  120. INC BP
  121. PUSH DX
  122. AND B[BP+SI],CH
  123. SUB CH,[BP+SI]
  124. POP DX
  125. MOV SP,BP
  126. POP BP
  127. RET
  128. #ENDIF
  129.