; ; File: MEINIT.ASM ; ; This file can be used as a starting point for an initialization ; routine file Metal/Z-Msg versions 1.40xx..SUBJECT TO CHANGE!!! ; ; This is an entirely optional insert file. ; ; An initialization routine is handy for setting up other remote ; access system programs (eg. bye). The following information is ; passed to this routine from the message system: ; ; . Whether or not BYE is active ; . a pointer to the 'user structure' which contains the user ; name, where they are from, etc.. ; . a pointer to the 'user status' parameter block coresponding ; to the current user. This will give things like the max ; amount of time allowed on the system, max user, max drive, etc.. ; ; The init routine is called after the user name and password have ; been verified by the system. ; ; *** This routine must not excede 251 bytes in length !! *** ; === org 384h ; fixed location to put it at.. db 0ffh ; flag to tell message system init routine ; is installed... bye: db 00 ; passed flag if bye is active.. user: dw 0000 ; pointer to user structure status: dw 0000 ; pointer to user status info db 00,00,00,00,00,00 ; reserved for later.. ; The following are offsets from 'user' above unumber equ 0 ; user number (also seek pos into users file) (2 bytes) uname equ 3 ; full name of user (0 terminated string) upass equ 30 ; password (0 terminated string) ucity equ 39 ; city of user (0 terminated string) udate equ 66 ; date last on (BCD coded MMDDYY - 3 bytes) utime equ 69 ; time last on (BCD coded HHMM - 2 bytes) ulastrd equ 71 ; message at last login (2 bytes) ustatus equ 73 ; user status character (+snXxabc) (1 byte) ujmpos equ 74 ; auto jump to OS on login? (bit 1 ON=yes) (1 byte) uflags equ 75 ; flags as follows: bit 1=expert mode ; bit 3=bell enable ; bit 4=read new msgs flag unulls equ 76 ; nulls (1 byte) uwidth equ 77 ; terminal width (1 byte) uheight equ 78 ; terminal height (1 byte) umins equ 79 ; minutes on today (1 byte) --not used yet-- tothour equ 80 ; total hours on system (2 byte, --not used yet--) totmins equ 82 ; remainder total mins on system (1 byte --NUY--) ucalls equ 83 ; unsigned number of calls (2 byte) uupload equ 85 ; upload file count (2 byte) --not used yet-- udnload equ 87 ; download file count (2 byte) --not used yet-- udef equ 124 ; You can actually use these locs.. (124-127) ; The following offsets are from 'status' above... ; (these are same as version 1.3xx) sstatus equ 0 ; status char (+snXxabc) smaxdrv equ 1 ; max drive smaxusr equ 2 ; max user sacttout equ 3 ; activity timeout in mins (timeout if not typing) skillflg equ 4 ; kill messages flag.. szcprflg equ 5 ; wheel privs? sreadprv equ 6 ; read private msgs? spostmsg equ 7 ; allowed to post messages? stimeout equ 8 ; logoff timeout in minutes sz3flags equ 9 ; 2 byte commands file flag (zcpr3 only) ; ********************************************************* ; * Insert your routine here.. IT MUST PRESERVE REGISTERS * ; v v v v v v v v v v v ; ; ret ; simple return ends routine ; Last byte in routine must not be at an address over 047FH...