* * * * * ORG 100H XEQ $ * COPY NPTDEFS * CHCR EQU 0DH CHLF EQU 0AH CHDEL EQU 7FH * * * XRA A STA COUNT * START LXI SP,STACK CALL CRLF LXI H,LOGMES CALL PRINT * LXI H,LOGBUF-1 * STRT INX H PUSH H CALL INPUT POP H MOV M,A * CPI CHDEL JNZ STRT0 * DCX H MOV A,M CPI 0FFH JZ STRT * MVI A,5FH DCX H * STRT0 PUSH H CALL CONOUT POP H * CPI CHCR JNZ STRT * LXI B,DATA STRT1 LXI H,LOGBUF * STRT2 MOV D,M LDAX B CMP D JZ STRT4 * STRT3 INX B LDAX B CPI 0FFH JNZ STRT3 INX B LDAX B CPI 0FFH JZ STRT8 JMP STRT1 * STRT4 INX H INX B CPI CHCR JNZ STRT2 * * Login #'s are the same * PUSH B CALL CRLF LXI H,PASMES CALL PRINT * LXI H,LOGBUF * STRT5 PUSH H CALL INPUT POP H MOV M,A INX H CPI CHCR JNZ STRT5 * POP H LXI B,LOGBUF * STRT6 MOV D,M LDAX B INX B INX H CMP D JNZ STRT7 * CPI CHCR JNZ STRT6 * PUSH H CALL CRLF * LXI H,0CC00H CLR MVI M,20H INX H MOV A,H CPI 0D0H JNZ CLR * LXI H,ACCMES CALL PRINT * POP H CALL PRINT CALL CRLF * CALL SYS Do a system call DB 0DH Reset the system * *---------------------------------* * Incorrect password, say so * *---------------------------------* * STRT7 CALL CRLF LXI H,INPMES CALL PRINT JMP START * STRT8 CALL CRLF LDA COUNT INR A STA COUNT ANI 3 JZ STRT9 * LXI H,INLMES CALL PRINT JMP START * STRT9 LXI H,SYSMES CALL PRINT * LOOP JMP LOOP * *---------------------------------* * Go get one character input. * *---------------------------------* * INPUT CALL CONTST JZ INPUT CALL CONIN * CPI CHCR RZ . * CPI CHDEL RZ . * CPI 20H JC INPUT CPI 'A' RC . ANI 5FH CPI 'Z' JNC INPUT RET . * *---------------------------------* * Print out the text message * * pointed to by the HL pair. * *---------------------------------* * PRINT MOV A,M ORA A RZ . PUSH H CALL CONOUT POP H INX H * LXI D,1000 PRT DCX D MOV A,E ORA D JNZ PRT * JMP PRINT * *---------------------------------* * Give a carriage return/linefeed * *---------------------------------* * CRLF MVI A,CHCR Send out the carriage return CALL CONOUT MVI A,CHLF Send out the linefeed JMP CONOUT * *---------------------------------* * This is a table of login #'s * * and their associated passwords * *---------------------------------* * DATA ASC "396628" DB CHCR ASC "MICRO" DB CHCR ASCZ 'Stephen Maguire' DB 0FFH * ASC "412399" DB CHCR ASC "COORS" DB CHCR ASCZ 'Ken "Kamikaze Kid" Eme' DB 0FFH * ASC "394620" DB CHCR ASC "GT-350" DB CHCR ASCZ 'William "Weed Hopper" Maley' DB 0FFH * ASC "392173" DB CHCR ASC "DRUGS" DB CHCR ASCZ 'Paul "Butcher" Eklund' DB 0FFH * ASC "394010" DB CHCR ASC "TREK80" DB CHCR ASCZ 'Philip "ROTC" Smith' DB 0FFH * DB 0FFH * *---------------------------------* * Various text messages. * *---------------------------------* * COUNT DS 1 * LOGMES ASCZ "Please login: " PASMES ASCZ "Password: " INLMES ASCZ "Invalid login number." INPMES ASCZ "Incorrect password, access denied." SYSMES ASCZ "Unauthorized user, system has been shutdown." ACCMES ASC "Access granted to Sol Terminal Computer." DB CHCR,CHLF ASC "Installation: University of Arizona, Tucson" DB CHCR,CHLF ASCZ "System user: " * DB 0FFH LOGBUF DS 50 DB 0FFH PASBUF DS 50 * DS 10 STACK EQU $ * END