home *** CD-ROM | disk | FTP | other *** search
- ;
- ; SYSLIB Module Name: SUD
- ; Author: Richard Conn
- ; SYSLIB Version Number: 2.0
- ; Module Version Number: 1.0
- ; Module Entry Points:
- ; GETUD PUTUD LOGUD RETUD
- ; Module External References:
- ; BDOS
- ;
-
- ;
- ; EXTERNALS
- ;
- EXT BDOS
-
- ;
- ; PUTUD -- SAVE CURRENT USER/DISK FOR LATER RESTORE
- ; NO REGS AFFECTED
- ;
- PUTUD::
- PUSH B ; SAVE REGS
- PUSH PSW
- CALL RETUD ; GET CURRENT USER AND DISK
- MOV A,B ; GET DISK
- STA CDISK ; SET CURRENT DISK
- MOV A,C ; GET USER
- STA CUSER ; SET CURRENT USER
- POP PSW ; RESTORE REGS
- POP B
- RET
-
- ;
- ; BUFFERS
- ;
- CDISK:
- DS 1 ; CURRENT DISK
- CUSER:
- DS 1 ; CURRENT USER
-
- ;
- ; GETUD -- RESTORE USER/DISK FROM PREVIOUS PUTUD
- ;
- GETUD::
- PUSH H ; SAVE REGS
- PUSH D
- PUSH B
- PUSH PSW
- LDA CDISK ; SELECT DISK
- MOV E,A
- MVI C,14 ; SELECT
- CALL BDOS
- LDA CUSER ; SELECT USER
- MOV E,A
- MVI C,32 ; SELECT
- CALL BDOS
- DONE:
- POP PSW ; GET REGS
- POP B
- POP D
- POP H
- RET
-
- ;
- ; LOGUD -- LOG IN USER/DISK, WHICH C=USER AND B=DISK
- ;
- LOGUD::
- PUSH H ; SAVE REGS
- PUSH D
- PUSH B
- PUSH PSW
- MOV E,C ; SELECT USER
- MVI C,32
- CALL BDOS
- MOV E,B ; SELECT DISK
- MVI C,14
- CALL BDOS
- JMP DONE
-
- ;
- ; RETUD -- RETURN CURRENT USER AND DISK IN C AND B, RESP
- ; AFFECT ONLY BC
- ;
- RETUD::
- PUSH H ; SAVE REGS
- PUSH D
- PUSH PSW
- MVI C,25 ; GET CURRENT DISK
- CALL BDOS
- PUSH PSW ; SAVE IT
- MVI E,0FFH ; GET CURRENT USER
- MVI C,32
- CALL BDOS
- MOV C,A ; USER IN C
- POP PSW ; GET DISK
- MOV B,A ; DISK IN B
- POP PSW ; GET REGS
- POP D
- POP H
- RET
-
- END
-