home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / sigm / vol090 / sud.mac < prev    next >
Encoding:
Text File  |  1984-04-29  |  1.4 KB  |  103 lines

  1. ;
  2. ; SYSLIB Module Name:  SUD
  3. ; Author:  Richard Conn
  4. ; SYSLIB Version Number:  2.0
  5. ; Module Version Number:  1.0
  6. ; Module Entry Points:
  7. ;    GETUD        PUTUD        LOGUD        RETUD
  8. ; Module External References:
  9. ;    BDOS
  10. ;
  11.  
  12. ;
  13. ;  EXTERNALS
  14. ;
  15.     EXT    BDOS
  16.  
  17. ;
  18. ;  PUTUD -- SAVE CURRENT USER/DISK FOR LATER RESTORE
  19. ;    NO REGS AFFECTED
  20. ;
  21. PUTUD::
  22.     PUSH    B    ; SAVE REGS
  23.     PUSH    PSW
  24.     CALL    RETUD    ; GET CURRENT USER AND DISK
  25.     MOV    A,B    ; GET DISK
  26.     STA    CDISK    ; SET CURRENT DISK
  27.     MOV    A,C    ; GET USER
  28.     STA    CUSER    ; SET CURRENT USER
  29.     POP    PSW    ; RESTORE REGS
  30.     POP    B
  31.     RET
  32.  
  33. ;
  34. ;  BUFFERS
  35. ;
  36. CDISK:
  37.     DS    1    ; CURRENT DISK
  38. CUSER:
  39.     DS    1    ; CURRENT USER
  40.  
  41. ;
  42. ;  GETUD -- RESTORE USER/DISK FROM PREVIOUS PUTUD
  43. ;
  44. GETUD::
  45.     PUSH    H    ; SAVE REGS
  46.     PUSH    D
  47.     PUSH    B
  48.     PUSH    PSW
  49.     LDA    CDISK    ; SELECT DISK
  50.     MOV    E,A
  51.     MVI    C,14    ; SELECT
  52.     CALL    BDOS
  53.     LDA    CUSER    ; SELECT USER
  54.     MOV    E,A
  55.     MVI    C,32    ; SELECT
  56.     CALL    BDOS
  57. DONE:
  58.     POP    PSW    ; GET REGS
  59.     POP    B
  60.     POP    D
  61.     POP    H
  62.     RET
  63.  
  64. ;
  65. ;  LOGUD -- LOG IN USER/DISK, WHICH C=USER AND B=DISK
  66. ;
  67. LOGUD::
  68.     PUSH    H    ; SAVE REGS
  69.     PUSH    D
  70.     PUSH    B
  71.     PUSH    PSW
  72.     MOV    E,C    ; SELECT USER
  73.     MVI    C,32
  74.     CALL    BDOS
  75.     MOV    E,B    ; SELECT DISK
  76.     MVI    C,14
  77.     CALL    BDOS
  78.     JMP    DONE
  79.  
  80. ;
  81. ;  RETUD -- RETURN CURRENT USER AND DISK IN C AND B, RESP
  82. ;    AFFECT ONLY BC
  83. ;
  84. RETUD::
  85.     PUSH    H    ; SAVE REGS
  86.     PUSH    D
  87.     PUSH    PSW
  88.     MVI    C,25    ; GET CURRENT DISK
  89.     CALL    BDOS
  90.     PUSH    PSW    ; SAVE IT
  91.     MVI    E,0FFH    ; GET CURRENT USER
  92.     MVI    C,32
  93.     CALL    BDOS
  94.     MOV    C,A    ; USER IN C
  95.     POP    PSW    ; GET DISK
  96.     MOV    B,A    ; DISK IN B
  97.     POP    PSW    ; GET REGS
  98.     POP    D
  99.     POP    H
  100.     RET
  101.  
  102.     END
  103.