home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 011 / brutil.arc / LOG.ASM < prev    next >
Encoding:
Assembly Source File  |  1987-02-18  |  1.6 KB  |  121 lines

  1.     IF1
  2.     INCLUDE    MACRO.LIB
  3.     ENDIF
  4. DSEG    SEGMENT AT 40H
  5.     ORG    1AH
  6. BUFFER_HEAD    DW    ?
  7. BUFFER_TAIL    DW    ?
  8. KB_BUFFER    DW    16 DUP(?)
  9. KB_BUFFER_END    DW    ?
  10. DSEG    ENDS
  11. CODE    SEGMENT PARA PUBLIC
  12.     ASSUME    CS:CODE
  13.     ORG    100H
  14. START    PROC    NEAR
  15.     JMP    INITPGM
  16. LOGBYT    DB    0
  17. GARBUF    DB    1,0,0,0
  18. NEWO17: MOV    LOGBYT,1
  19. OLDI17:    DB    352Q
  20. OLDO17    DW    0
  21. OLDS17    DW    0
  22.     ASSUME    DS:CODE
  23. INITPGM:
  24.     MOV    AX,3517H
  25.     INT    21H
  26.     MOV    OLDO17,BX
  27.     MOV    BX,ES
  28.     MOV    OLDS17,BX
  29.     MOV    DX,OFFSET NEWO17
  30.     MOV    AX,2517H
  31.     INT    21H
  32.     CLCI    5DH,'ON '
  33.     JZ    LOGON
  34.     CLCI    5DH,'OFF '
  35.     JZ    LOGOFF
  36.     CALL    TSTLB
  37.     JZ    DSPOFF
  38.     CALL    DSPLY
  39.     DB    'LOG ON$'
  40. DSPOFF:    CALL    DSPLY
  41.     DB    'LOG OFF$'
  42. DSPLY:    CALL    UNHOOK
  43.     POP    DX
  44.     DOS    9
  45.     MOV    AL,LOGBYT
  46.     DOS    76
  47. LOGON:    CALL    SWLB
  48.     JZ    LOGON
  49.     JMP    PGMXIT
  50. LOGOFF:    CALL    SWLB
  51.     JNZ    LOGOFF
  52. PGMXIT:
  53. UNHOOK: PUSH    DS
  54.     MOV    DX,OLDO17
  55.     MOV    AX,OLDS17
  56.     MOV    DS,AX
  57.     MOV    AX,2517H
  58.     INT    21H
  59.     POP    DS
  60.     RET
  61.     ASSUME    DS:DSEG
  62. SWLB:    MOV    AX,40H
  63.     MOV    DS,AX
  64.     MOV    BX,BUFFER_TAIL
  65.     CLI
  66.     MOV    WORD PTR [BX],1910H
  67.     CALL    BUMP
  68.     MOV    WORD PTR [BX],1C0DH
  69.     CALL    BUMP
  70.     STI
  71.     MOV    AX,CS
  72.     MOV    DS,AX
  73.     ASSUME    DS:CODE
  74.     DOS    10,GARBUF
  75. TSTLB:    MOV    LOGBYT,0
  76.     MOV    DL,' '
  77.     DOS    2
  78.     MOV    DL,8
  79.     DOS    2
  80.     CMP    LOGBYT,0
  81.     RET
  82.     ASSUME    DS:DSEG
  83. BUMP:    INCM    BX,BX
  84.     CMP    BX,OFFSET KB_BUFFER_END
  85.     JNE    BUMPX
  86.     MOV    BX,OFFSET KB_BUFFER
  87. BUMPX:    MOV    BUFFER_TAIL,BX
  88.     RET
  89.     ASSUME    DS:CODE
  90. MSC142:    POP    BX
  91.     PUSHM    BX,DX
  92.     MOV    DL,CH
  93.     SUB    DH,DH
  94.     ADD    BX,DX
  95.     POP    DX
  96.     MOV    BP,SP
  97.     XCHG    BX,[BP]
  98. MSC143:    MOV    SI,DX
  99.     MOV    AL,[SI]
  100.     CMP    AL,[BX]
  101.     JZ    L_1
  102.     RET
  103. L_1:
  104.     INCM    DX,BX
  105.     DEC    CH
  106.     JNZ    MSC143
  107.     RET
  108. START    ENDP
  109. CODE    ENDS
  110.     END    START
  111. 
  112.     MOV    AL,[SI]
  113.     CMP    AL,[BX]
  114.     JZ    L_1
  115.     RET
  116. L_1:
  117.     INCM    DX,BX
  118.     DEC    CH
  119.     JNZ    MSC143
  120.     RET
  121. ST