home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / RCPM / CALLS2.ASM < prev    next >
Assembly Source File  |  2000-06-30  |  2KB  |  86 lines

  1. ;
  2. ;     CALLS.ASM    version 2.0  as of 05/11/82
  3. ;       By Dave Hardy
  4. ;
  5. ;
  6. ;  Print number of log-in attempts and log-ins.
  7. ;  For use with BYE.ASM to allow remote callers to
  8. ;  see number of log-ins and log-in attempts
  9. ;
  10. ;  Note that the addresses of the number of log-in attempts
  11. ;  and the number of log-ins must be hard coded into this program.
  12. ;
  13. ;Modification history
  14. ;05/10/82 Added "/R" option to allow number of callers to be reset
  15. ;      By Dave Hardy
  16. ;
  17. ;  Define some miscellaneous values:
  18. CR    EQU    0DH    ;ASCII carriage return
  19. LF    EQU    0AH    ;ASCII linefeed
  20. BDOS    EQU    5    ;CP/M BDOS jump address
  21. CONOUT    EQU    2    ;CP/M BDOS CONSOLE OUTPUT function
  22. PRNSTR    EQU    9    ;CP/M BDOS PRINT STRING function
  23. FCB    EQU    5CH    ;CP/M FUNCTION CONTROL BLOCK address
  24. ;
  25. ;  You'll have to get the addresses of OLDUSR and NEWUSR from your
  26. ;  version of the BYE program (from a .PRN file or a .SYM file).
  27. ;  Then, plug them in here...
  28. OLDUSR    EQU    0E6F4H    ;Address of LOG-IN attempts counter in BYE program
  29. NEWUSR    EQU    0E6F5H    ;Address of LOG-IN counter in BYE program
  30. ;
  31.     ORG    0100H    ;for standard CP/M, change if you have ALTCPM
  32. ;
  33. ;  Check for /R option on command - request to reset counters
  34.     LXI    H,FCB+1 ;Look for option
  35.     MOV    A,M
  36.     CPI    '/'    ;Is it there?
  37.     JNZ    TELL    ;Jump if not there
  38. ;  Option is there, so check to see if it's valid
  39.     INX    H    ;Point to option character
  40.     MOV    A,M
  41.     CPI    'R'    ;See if it's the right character
  42.     JNZ    TELL    ;Jump if no
  43. ;  Proper option given, so reset counters
  44.     XRA    A    ;Reset counters to 0
  45.     STA    OLDUSR
  46.     STA    NEWUSR
  47.     RET        ;Return to CP/M
  48. ;
  49. ;  Tell how many calls and attempts
  50. TELL    LDA    OLDUSR    ;Get number of log-in attempts
  51.     CALL    HXNUM    ;Print it
  52.     LXI    D,NATMP    ;Print message telling what it is
  53.     MVI    C,PRNSTR
  54.     CALL    BDOS
  55. ;
  56.     LDA    NEWUSR    ;Get number of log-ins
  57.     CALL    HXNUM    ;Print it
  58.     LXI    D,NCALL    ;Print message telling what it is
  59.     MVI    C,PRNSTR
  60.     CALL    BDOS
  61.     RET        ;Return to CP/M
  62. ;
  63. ;  Subroutine to print the number in A as 2 ASCII characters on the screen
  64. ;
  65. HXNUM    PUSH    PSW    ;Save the character for second part
  66.     ANI    0F0H    ;Get first digit of number
  67.     RRC
  68.     RRC
  69.     RRC
  70.     RRC
  71.     ADI    '0'    ;Make it ASCII 
  72.     MOV    E,A
  73.     MVI    C,CONOUT
  74.     CALL    BDOS    ;Print it via BDOS CONOUT function
  75.     POP    PSW    ;Get second digit of number
  76.     ANI    0FH
  77.     ADI    '0'    ;Make it ASCII
  78.     MOV    E,A
  79.     MVI    C,CONOUT
  80.     JMP    BDOS    ;Print it, too 
  81. ;
  82. NATMP    DB    ' attempted log-ins',CR,LF,'$'
  83. NCALL    DB    ' successful log-ins',CR,LF,'$'
  84. ;
  85.     END
  86.