PROGRAMME => PASSWORD.ASM --------------------------- This programme has been written to run under CP/M 2.2, but it may also run under earlier versions. I'm not sure as I only own CP/M 2.2 so I can't test it against the other versions. It uses Function 6 for input from the keyboard, which is not echoed to the screen during the time data is being input. This means that no-one can (easily) see what has been entered by the operator when the disk is first logged on. The purpose of the programme is to make a user enter both his/her name, then a code, before the disk will boot up. If either the name of the user is not authorised or he/she fails to enter the correct code number (Note: 3 tries are allowed for each), then the computer keyboard is locked up and no further entries are possible without A. Turning off the terminal, and then turning it on again to unlock the keyboard; or B. Re-booting the computer with RESET. In the first instance, the PASSWORD programme will be found to be still active, so the user gains nothing unless he/she can work out the passwords required. In the second instance the keyboard is still locked-up so no data entries can be made. Note the reason why this was done is because it is necessary to install PASSWORD.COM to be called up on "autoboot" both from a cold start and from a warm start. If this wasn't done then a knowlegable CP/M user could just turn off the terminal when it locks up....turn it on again and bypass PASSWORD by using CONTROL-C. The sample programme supplied as PASSWORD.COM uses the entry "NAME" (or "name", either case is admissible [Line 224]) in answer to the first question and "123" ("number", Line 225) in answer to the second. You can change either one, in PASSWORD.ASM, to suit your own requirements and then re-assemble the programme with ASM.COM. I have used ASM because EVERYBODY has this, it comes "free" with CP/M 2.2. Only those who have purchased them separately have macro assemblers such as "MAC". Please yourself how many digits (or digits and letters) you use for the code number (Line 225), but 3 or 4 should be more than enough. This gives thousands of possible combinations so that it would take a lot of time for some-one to crack the code randomly. One thing I have done, because you don't want to go through the hassle of entering both your name and a code number each time a warm boot is performed, is to give a "bypass" code. In the demonstration case it is CONTROL-Z (Line 10). You will want to change it to something a bit more obscure to stop the casual user from accidently by-passing the entry sequence. The last thing to note about the programme is that I have used some "tricks" to save it from performing a warm boot on (successful) exit. It is OK to do this because it doesn't overwrite the CCP so you won't clobber anything by calling up PASSWORD on autoboot. To install PASSWORD.COM in your BIOS so it will be called up on autoboot, the best method is to use "DUU.COM" to make the change. A very good explanation on this can be found in User's Guide to CP/M Systems and Software, Volume 1, No. 4, June 1983; pages 62 and 63 To those who don't own a copy the procedure is to put your system disk in drive A, and the disk to be PASSWORD-ed into drive B. It should have PASSWORD.COM on it. Single disk system users (ARE there any?) will have to do it all in drive A. Then enter duu lb (load drive B) t2;s1;d (view Track 2, sector 1. See the Attachment [hard copy only, its too long to type into this note] to see what this looks like on my system) ca8,PASSWORD<0>;w (write PASSWORD into the 8 spaces from 08h to 0fh, and a full stop at 10h) ch7,8;w (write "8" into byte 06h) d (view the changes) x (return to CP/M) At the moment the programme is only for ONE user but it would be very easy to alter the first section to allow several users to log on, each with his/her own ID number. All you need is a look-up table for the ID number depending on which user's name is correct. Either that, or allow multiple names to log on but only have the one ID number. If either scheme is done, then it might be better to log on each user into a different user area. It wouldn't take much effort to put all the system files in the "USER 0" area, and then have User 1, User 2,...User n, each with pointers to the system files so they could call up the COM files from their individual areas. Anyway, I haven't done this but it could be done if anyone has a multiple-user system and wants to keep things separate. Use LIST.COM to print out this file if you want a hard copy. I've supplied a copy with the disk I am submitting to the User Group. I hope the programme proves useful. It is freely available for NON-COMMERCIAL use, but I'd appreciate getting paid for my efforts if anyone wants to use it in a commercial package. Phil Cogar, P.O. Box 364, 39 Kalang Road, Narrabeen, Elanora Heights, N.S.W. AUSTRALIA 2101 ------------------------ Telephone: 913-7118