Category : Assembly Language Source Code
Archive   : ASMSUB2.ZIP
Filename : PASSWORD.ASM

 
Output of file : PASSWORD.ASM contained in archive : ASMSUB2.ZIP
;
; Program for password protection of the system
; Written by Dave Staehlin
; 5430 Candleglow NE
; Albuquerque,NM 87111
; (505) 822-1889
;
; Enter the password desired at the 'psw' label. Note that this routine
; is set up for a 20 character maximum length password.
;
; Use this program by entering your password below and assembling this
; program into a .COM type file by using EXE2BIN. Then place the command
; PASSWORD as the first line in your AUTOEXEC.BAT file. This program
; will not keep anyone that knows what their doing off your system but
; it will keep the kids, wifey, and nosey secretaries from gaining
; unauthorized access to your system. It serves its purpose on a hard
; disk system. I don't know how useful it would be on a floppy based system
; however.
;
; Since this is my first attempt at 8088 assembler, I assume no responsibility
; for my oddball way of coding this! I've still got a lot to learn!
;
; Dave
;
;
password segment ;set up code and data section
assume cs:password,ds:password,es:password ;tell assembler about conditions at entry
org 100h ;com programs begin here
main: jmp begin ;skip area for data
;
; *** DATA AREA ***
;
; *** Put your password between the quotes in the line below. ***
;
psw db 'Put Password Here ' ;room for 20 byte password
;
inpsw db ' ' ;store user input password here
prompt db 1bh,'[2J',1bh,'[32;40mPlease enter system password: $'
match db 13,10,10,1bh,'[2JPassword Accepted - Initializing system.....',13,10,'$'
;
; *** PROGRAM STARTS HERE ***
begin: mov dx,offset prompt ;output the prompt to the consol
call stringout
mov cl,20 ;maximum length of password
mov bx,offset inpsw ;put input password here
inloop: call charin ;consol input w/o echo
cmp al,08h ;backspace?
jnz goon ;go on if not
cmp cl,20 ;at the beginning?
jz inloop ;ignore if so
inc cl ;else increment the counter
dec bx ;and decrement the memory pointer
mov al,' '
mov [bx],al ;erase last char in input string
call backspc ;output a backspace to console
jmp inloop
;
;
goon: cmp al,0dh ;carriage return?
jz checkit ;done with input if so
dec cl ;count one input done
jz checkit ;done if 20 chars input
mov [bx],al ;else save the char
inc bx ;increment save address by one
echo: mov dl,'.' ;output a period echo
call charout
jmp inloop ;and get another
;
checkit: mov cx,20 ;set up counter for string compare
mov dx,offset match ;assume a match
mov si,offset psw ;compare the strings
mov di,offset inpsw
cld ;clear the df flag for compare
repe cmpsb
cmp cx,0 ;did cl reach zero?
jz gotmatch ;if they match
jmp inloop ;oops - bomb system
;
; we have a match - return system to the user
;
gotmatch: mov ah,9
int 21h
ret ;return to system
;
; subroutines
;
stringout: mov ah,9 ;output a string to the console
int 21h
ret
charout: mov ah,2 ;output a character to the console
int 21h
ret
charin: mov ah,7 ;input console char w/o echo
int 21h
ret
backspc: mov dl,08h ;output a backspace
call charout
mov dl,' ' ;output a backspace
call charout
mov dl,08h ;output a backspace
call charout
ret
;
password ends ;end of code and data section
end main


  3 Responses to “Category : Assembly Language Source Code
Archive   : ASMSUB2.ZIP
Filename : PASSWORD.ASM

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/