home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol009 / userlst.asm < prev    next >
Assembly Source File  |  1984-04-29  |  2KB  |  83 lines

  1. ;  --- PATCH TO CP/M 2.X TO LIST USER # IN DRIVE PROMPT ---
  2. ;        ( VALID FOR CP/M 2.0, 2.1, AND 2.2)
  3. ;        BY BRUCE KENDALL (TKI)
  4. ;              7/12/80
  5. ;        TIGHTENED UP BY BRUCE RATOFF
  6. ;             11/17/80
  7. ;
  8. ;    IF YOU HAVE TRIED PLAYING WITH THE  'USER' COMMAND
  9. ;    IN CP/M 2.X, YOU MAY HAVE BECOME ANNOYED THAT THERE
  10. ;    WAS NO WAY OF TELLING WHAT USER AREA YOU WERE IN.  THIS
  11. ;    PATCH SOLVES THIS PROBLEM BY DISPLAYING THE USER NUMBER
  12. ;    IN HEX ( A SINGLE CHARACTER SINCE USER # : 0-15 ARE VALID)
  13. ;    BETWEEN THE DRIVE NAME LETTER AND THE '>'. THAT IS, A USER
  14. ;    LOGGED INTO USER AREA #4 WOULD SEE THE STANDARD CP/M 
  15. ;    PROMPT (MODIFIED BY THIS PATCH) AS:
  16. ;        A4>       ( INSTEAD OF JUST A>)
  17. ;
  18. ;
  19. MSIZE    EQU    64    ; CP/M SYSTEM SIZE IN KB
  20. ;
  21. DELTA    EQU    000H    ; OFFSET FROM STD CP/M SIZE
  22.             ; THIS WOULD BE SET TO 400H IF
  23.             ; THE 20K CP/M WAS ACTUALLY A 19K
  24.             ; CP/M (WHEN COMPARED TO THE STD
  25.             ; 20K CP/M DESCRIBED IN THE CP/M
  26.             ; MANUALS FROM DIGITAL RESEARCH).
  27. ;
  28. BIAS    EQU    (MSIZE-20)*1024-DELTA ; OFFSET FROM 20K CP/M
  29. CCP    EQU    3400H+BIAS
  30. ;
  31. OFFSET    EQU    980H-CCP ; OFFSET USED WITH  DDT IN 
  32.             ; SYSTEM CONFIGURATION (ASSUMES
  33.             ; THAT 'CCP' OCCURES AT 980H IN THE
  34.             ; SYSGEN MEMORY IMAGE).
  35. ;
  36. COUT    EQU    CCP+8CH ; CCP CONSOLE OUTPUT ROUTINE
  37. GTUSR    EQU    CCP+113H ; CCP GET USER # ROUTINE
  38. ;
  39. ;
  40.     ORG    CCP+38DH
  41. ;
  42.     CALL    PATCH    ; THIS WAS A   CALL  COUT
  43. ;
  44. ;
  45. ; -----------------------------------------------
  46. ; NOTE THE CODE IN THE NEIGHBORHOOD OF THIS PATCH WAS
  47. ; USED TO PRINT OUT THE 'A>' PROMPT:
  48. ;
  49. ; CCP+382H:
  50. ;    LXI SP,----
  51. ;    CALL    FLUSH    ; RESET BUFFERS
  52. ;    CALL    GTDRV    ; GET DRIVE #
  53. ;    ADI    'A'    ; ADD IN ASCII BIAS
  54. ;    CALL    COUT    ; <--- MAKE PATCH HERE
  55. ;    MVI    A,'>'    ; GET '>'
  56. ;    CALL    COUT    ; PRINT IT OUT
  57. ;    CALL    GTCOMD    ; GET CONSOLE COMMAND
  58. ;      .
  59. ;      .
  60. ;      .
  61. ; -------------------------------------------------
  62. ;
  63. ;
  64.     ORG    CCP+15F0H    ; PATCH AREA AT END OF BDOS
  65. ;
  66. PATCH:    CALL    COUT    ; OUTPUT CHAR. IN ACC TO CONSOLE
  67.     CALL    GTUSR    ; GET USER #
  68.     ADI    90H    ; USE INTEL HEX/ASCII TRICK
  69.     DAA
  70.     ACI    40H
  71.     DAA
  72.     JMP    COUT    ; PRINT OUT AND RETURN
  73. ;
  74. ; ------------------------------------------------------
  75. ; NOTE: THE 'GTUSR' COMMAND IS JUST A SHORT ROUTINE:
  76. ;
  77. ;GTUSR:    MVI    E,0FFH
  78. ;    MVI    C,32
  79. ;    JMP    05
  80. ; ------------------------------------------------------
  81. ;
  82.     END
  83.