Advertisement
Guest User

Untitled

a guest
May 25th, 2016
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.90 KB | None | 0 0
  1. Ideal
  2. Model tiny
  3. Dataseg
  4.  
  5. FirstStart db "First start", 10, 13, '$'
  6. AccessDenied db "Access denied", 10, 13, '$'
  7. AccessGranted db "Access granted", 10, 13, '$'
  8. FirstTime db 0
  9. FirstVsn dw 0, 0
  10. FirstPathLength db 0
  11. FirstPath db 256 dup(0)
  12. Vsn dw 0, 0
  13. Path db 256 dup(0)
  14. PathLength db 0
  15. DiskInfo dw 64 dup(0)
  16.  
  17.  
  18. Codeseg
  19. org 100h
  20.  
  21. proc main
  22. mov ds, [2ch]
  23. mov bx, 0
  24.  
  25. SEARCH_START:
  26. add bx, 1
  27. mov al, [bx]
  28. cmp al, 0
  29. jne SEARCH_START
  30. mov al, [bx + 1]
  31. cmp al, 1
  32. jne SEARCH_START
  33.  
  34. add bx, 2
  35. mov di, -1
  36. lea bp, cs:Path
  37.  
  38. SAVE:
  39. add bx, 1
  40. add di, 1
  41. mov al, [bx]
  42. mov [bp +di], al
  43. cmp al, 0
  44. jne SAVE
  45. mov ax, di
  46. mov cs:PathLength, al
  47. push cs
  48. pop ds
  49.  
  50. mov ax, 6900h
  51. xor bl, bl
  52. lea dx, DiskInfo
  53. int 21h
  54.  
  55. mov ax, DiskInfo + 2
  56. mov Vsn, ax
  57. mov ax, DiskInfo + 4
  58. mov Vsn + 2, ax
  59.  
  60. cmp FirstTime, 0
  61. jne NOTFIRST
  62.  
  63.  
  64. mov ax, 3d00h
  65. lea dx, Path
  66. int 21h
  67. mov bx, ax
  68.  
  69. mov ax, 4301h
  70. mov cx, 0
  71. int 21h
  72.  
  73. mov ah, 3eh
  74. int 21h
  75.  
  76. mov ax, 3d02h
  77. int 21h
  78. mov bx, ax
  79.  
  80. mov dx, 12dh
  81. mov ax, 4201h
  82. int 21h
  83.  
  84. mov FirstTime, 1
  85.  
  86. mov ah, 40h
  87. mov cx, 1
  88. lea dx, FirstTime
  89. int 21h
  90.  
  91. mov ah, 40h
  92. mov cx, 4
  93. lea dx, Vsn
  94. int 21h
  95.  
  96. mov ah, 40h
  97. mov cx, 1
  98. lea dx, PathLength
  99. int 21h
  100.  
  101. xor cx, cx
  102. mov cl, PathLength
  103. mov ah, 40h
  104. lea dx, Path
  105. int 21h
  106.  
  107. mov ah, 3Eh
  108. int 21h
  109.  
  110. mov ah, 9
  111. lea dx, FirstStart
  112. int 21h
  113.  
  114. jmp KONEC
  115.  
  116. NOTFIRST:
  117.  
  118. mov ax, Vsn
  119. cmp ax, FirstVsn
  120. jne NOACCESS
  121. mov ax, Vsn + 2
  122. cmp ax, FirstVsn + 2
  123. jne NOACCESS
  124.  
  125. mov al, PathLength
  126. cmp al, FirstPathLength
  127. jne NOACCESS
  128.  
  129. mov cl, PathLength
  130. xor di, di
  131.  
  132. COMPARE:
  133. mov al, FirstPath + di
  134. cmp al, Path + di
  135. jne NOACCESS
  136. inc di
  137. loop COMPARE
  138.  
  139. mov ah, 9
  140. lea dx, AccessGranted
  141. int 21h
  142.  
  143. jmp KONEC
  144.  
  145. NOACCESS:
  146.  
  147. mov ah, 9
  148. lea dx, AccessDenied
  149. int 21h
  150.  
  151. KONEC:
  152. mov ah, 1
  153. int 21h
  154.  
  155. mov ah, 4ch
  156. int 21h
  157. endp main
  158. end main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement