;THIS PROJECT CREATED BY SYED DANISH AHMAD & MUHAMMAD USMAN
org 100h

;_______UNIQUE OUTPUT MACRO________

PRINT MACRO VAR

MOV AX,VAR
CALL OUTPUT
ENDM

;_________PRINT STRING MACRO______

MESSAGE MACRO STR

LEA DX,STR
MOV AH,9
INT 21H

ENDM

;________CASH WITHDRW MACRO______

WITHDRAW MACRO TOTAL_CASH,CASH

CALL CLEAR_SCREEN
CALL NEW_LINE
MESSAGE B2
CALL NEW_LINE
MESSAGE S16

MOV CASH,0
MOV BL,10

INPUT:
MOV AH,1
INT 21H
CMP AL,13
JE TERMINATE

SUB AL,30H
MOV AH,0
MOV CX,AX
MOV AX,CASH
MUL BL
ADD AX,CX
MOV CASH,AX

JMP INPUT

TERMINATE:

MOV BX,0
MOV BX,TOTAL_CASH
SUB BX,CASH
MOV TOTAL_CASH,BX

ENDM

;________CASH DEPOSIT MACRO______

DEPOSIT MACRO TOTAL_CASH,CASH

CALL CLEAR_SCREEN
CALL NEW_LINE
MESSAGE B3
CALL NEW_LINE
MESSAGE S16

MOV CASH,0
MOV BL,10

INPUT1:
MOV AH,1
INT 21H
CMP AL,13
JE TERMINATE1

SUB AL,30H
MOV AH,0
MOV CX,AX
MOV AX,CASH
MUL BL
ADD AX,CX
MOV CASH,AX

JMP INPUT1

TERMINATE1:

MOV BX,0
MOV BX,TOTAL_CASH
ADD BX,CASH
MOV TOTAL_CASH,BX

ENDM

;__________TRANSFER AMOUNT MACRO_____

AMOUNT_TRANSFER MACRO TOTAL_CASH,CASH

CALL CLEAR_SCREEN
CALL NEW_LINE
MESSAGE C4
CALL NEW_LINE
MESSAGE C5

MOV SI,OFFSET ACCOUNT_NO
INPUT_ACCOUNT_NO:

MOV AH,1
INT 21H
MOV [SI],AL
CMP [SI],13
JE TERMINATE2
INC SI

JMP INPUT_ACCOUNT_NO
TERMINATE2:

MESSAGE S16

MOV CASH,0
MOV BL,10

INPUT2:
MOV AH,1
INT 21H
CMP AL,13
JE TERMINATE3

SUB AL,30H
MOV AH,0
MOV CX,AX
MOV AX,CASH
MUL BL
ADD AX,CX
MOV CASH,AX

JMP INPUT2

TERMINATE3:

MOV BX,0
MOV BX,TOTAL_CASH
SUB BX,CASH
MOV TOTAL_CASH,BX

ENDM

;__________BILL PAYMENT MACRO_____

PAYMENT_BILL MACRO TOTAL_CASH,CASH

CALL CLEAR_SCREEN
CALL NEW_LINE
MESSAGE B5
CALL NEW_LINE
MESSAGE C8

MOV SI,OFFSET REF_NO
INPUT_REF_NO:

MOV AH,1
INT 21H
MOV [SI],AL
CMP [SI],13
JE TERMINATE4
INC SI

JMP INPUT_REF_NO
TERMINATE4:

CALL NEW_LINE
MESSAGE C6

MOV CASH,0
MOV BL,10

INPUT3:
MOV AH,1
INT 21H
CMP AL,13
JE TERMINATE5

SUB AL,30H
MOV AH,0
MOV CX,AX
MOV AX,CASH
MUL BL
ADD AX,CX
MOV CASH,AX

JMP INPUT3

TERMINATE5:

MOV BX,0
MOV BX,TOTAL_CASH
SUB BX,CASH
MOV TOTAL_CASH,BX

ENDM




.MODEL LARGE
.STACK 100H
.DATA

S1 DB 10,13," WELCOME TO ATM $"
S2 DB 10,13," 1: LOGIN $"
S3 DB 10,13," 2: CREATE ACCOUNT $"
S4 DB 10,13," ENTER CHOICE : $"
S5 DB 10,13," LOGIN $ "
S6 DB 10,13," CREATE NEW ACCOUNT $"
S7 DB 10,13," CONFORM PASSWORD NOT MATCH !!!$"
S8 DB 10,13," PLEASE ENTER !!! $"
S9 DB 10,13," WRONG CHOICE !!!$"

S10 DB 10,13," WRONG EMAIL !! LOGIN FAILED !! TARY AGAIN ANY KEY TO CONTINUE$"
S11 DB 10,13," WRONG PASSWORD !! LOGIN FAILED !! TRY AGAIN$"
S12 DB 10,13," ACCOUNT CREATED SUCCESSFULLY...PRESS ANY KEY TO CONTINUE$."
S13 DB 10,13," LOGIN SUCCESSFULLY...PRESS ANY KEY TO CONTINUE$."
S17 DB 10,13," PRESS 0: BACK $"

S14 DB 10,13," WELCOME TO $"
S15 DB 10,13," 3: EXIT$"
S16 DB 10,13," ENTER AMOUNT : $"

B1 DB 10,13," 1: BLANCE INQUARY $"
B2 DB 10,13," 2: CASH WITHDRAW $"
B3 DB 10,13," 3: CASH DEPOSIT $"
B4 DB 10,13," 4: TRANSFOR AMOUNT $"
B5 DB 10,13," 5: BILL PAYMENT $"
B6 DB 10,13," 6: LOGOUT $"

C1 DB 10,13," CASH WITHDRAW : $"
C2 DB 10,13," CASH DEPOSIT : $"
C3 DB 10,13," CURRENT AMOUNT : $"
C4 DB 10,13," TRANSFER AMOUNT : $"
C5 DB 10,13," ACCOUNT NO. : $"
C6 DB 10,13," BILL PAYMENT : $"
C8 DB 10,13," BILL REF NO. : $"
C7 DB 10,13," PRESS ANY KEY TO CONTINUE... $"


S_NAME DB 10,13," USERNAME : $"
S_PASS DB 10,13," PASSWORD : $"
S_CONFORM DB 10,13," CONFORM PASSWORD : $"
S_AMOUNT DB 10,13," DEPOSIT AMOUNT : $"
S_EMAIL DB 10,13," EMAIL : $"

LOAD DB "LOADING...$"


L_EMAIL DB 50 DUP("$")
L_PASSWORD DB 50 DUP("$")

USERNAME DB 50 DUP("$")
EMAIL DB 50 DUP("$")
AMOUNT DW ?
PASSWORD DB 50 DUP("$")
CONFORM DB 50 DUP("$")

ACCOUNT_NO DB 100 DUP("$")
REF_NO DB 100 DUP("$")

CHOICE DB ?
COUNT DW 0
COUNT1 DW 0

WITHDRAW_CASH DW ?
DEPOSIT_CASH DW ?
TRANSFER_CASH DW ?
PAYMENT DW ?

.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX

CALL LOADING

START:

CALL CLEAR_SCREEN

MESSAGE S1
CALL NEW_LINE
MESSAGE S2
CALL NEW_LINE
MESSAGE S3
CALL NEW_LINE
MESSAGE S15
CALL NEW_LINE
COICE_DISPLAY:
CALL SELECT_CHOICE

CMP CHOICE,1
JE LOGIN_F

CMP CHOICE,2
JE CREATE_NEW_F

CMP CHOICE,3
JE EXIT
JNE AGAIN

AGAIN:
MESSAGE S9
JMP COICE_DISPLAY


LOGIN_F:
CALL LOGIN

CREATE_NEW_F:
CALL CREATE_NEW


MENU:
CALL CLEAR_SCREEN
CALL NEW_LINE
MESSAGE S14
MESSAGE USERNAME

CALL MAIN_MENU

RELOAD:
CALL SELECT_CHOICE

CMP CHOICE,1
JE BLANCE_INQUARY

CMP CHOICE,2
JE CASH_WITHDRAW

CMP CHOICE,3
JE CASH_DEPOSIT

CMP CHOICE,4
JE TRANSFOR_AMOUNT

CMP CHOICE,5
JE BILL_PAYMENT

CMP CHOICE,6
JE LOGOUT
JNE WRONG_SELECT

WRONG_SELECT:
CALL NEW_LINE
MESSAGE S9
JMP RELOAD

BLANCE_INQUARY:
CALL CLEAR_SCREEN
CALL NEW_LINE
MESSAGE S_NAME
MESSAGE USERNAME
CALL NEW_LINE
MESSAGE B1
PRINT AMOUNT
MESSAGE C7
MOV AH,1
INT 21H
CALL CLEAR_SCREEN
CALL MAIN_MENU
JMP RELOAD

CASH_WITHDRAW:
WITHDRAW AMOUNT,WITHDRAW_CASH
CALL CLEAR_SCREEN
CALL NEW_LINE
MESSAGE S_NAME
MESSAGE USERNAME
CALL NEW_LINE
MESSAGE C1
PRINT WITHDRAW_CASH
CALL NEW_LINE
MESSAGE C3
PRINT AMOUNT
CALL NEW_LINE
MESSAGE C7
MOV AH,1
INT 21H
CALL CLEAR_SCREEN
CALL MAIN_MENU
JMP RELOAD

CASH_DEPOSIT:
DEPOSIT AMOUNT,DEPOSIT_CASH
CALL CLEAR_SCREEN
CALL NEW_LINE
MESSAGE S_NAME
MESSAGE USERNAME
CALL NEW_LINE
MESSAGE C2
PRINT DEPOSIT_CASH
CALL NEW_LINE
MESSAGE C3
PRINT AMOUNT
CALL NEW_LINE
MESSAGE C7
MOV AH,1
INT 21H
CALL CLEAR_SCREEN
CALL MAIN_MENU
JMP RELOAD

TRANSFOR_AMOUNT:
AMOUNT_TRANSFER AMOUNT,TRANSFER_CASH
CALL CLEAR_SCREEN
CALL NEW_LINE
MESSAGE S_NAME
MESSAGE USERNAME
CALL NEW_LINE
MESSAGE C5
MESSAGE ACCOUNT_NO
CALL NEW_LINE
MESSAGE C4
PRINT TRANSFER_CASH
CALL NEW_LINE
MESSAGE C3
PRINT AMOUNT
CALL NEW_LINE
MESSAGE C7
MOV AH,1
INT 21H
CALL CLEAR_SCREEN
CALL MAIN_MENU
JMP RELOAD

BILL_PAYMENT:
PAYMENT_BILL AMOUNT,PAYMENT
CALL CLEAR_SCREEN
CALL NEW_LINE
MESSAGE S_NAME
MESSAGE USERNAME
CALL NEW_LINE
MESSAGE C8
MESSAGE REF_NO
CALL NEW_LINE
MESSAGE C6
PRINT PAYMENT
CALL NEW_LINE
MESSAGE C3
PRINT AMOUNT
CALL NEW_LINE
MESSAGE C7
MOV AH,1
INT 21H
CALL CLEAR_SCREEN
CALL MAIN_MENU
JMP RELOAD

LOGOUT:
JMP START

EXIT:
MOV AH,4CH
INT 21H
RET
MAIN ENDP

;______LOADING PROC______

LOADING PROC

CALL CLEAR_SCREEN
MOV AH,06H
MOV AL,10H
MOV CH,12 ;UPPER ROW
MOV CL,25 ;LEFT COLUMN
MOV DH,12 ;BOTTOM ROW
MOV DL,44 ;RIGHT COLUMN
MOV BH,11110010B
INT 10H

MOV AH,2H
MOV BH,0
MOV DH,10
MOV DL,31
INT 10H

MESSAGE LOAD

MOV AH,2H
MOV BH,0
MOV DH,12 ;ROW
MOV DL,25 ;COLUMN
INT 10H

MOV CX,20
L:
PUSH CX
MOV AL,219
MOV DL,AL
MOV AH,2
INT 21H
MOV CX, 5
MOV AH, 86H
INT 15H
POP CX
LOOP L

RET
LOADING ENDP

;_______CLEAR SECREEN PROC_______

CLEAR_SCREEN PROC
;---GET CURRENT VIDEO MODE---
MOV AH, 0FH
INT 10H

;---SET VIDEO MODE---
MOV AH, 0
INT 10H

MOV AH,6
MOV AL,0
MOV CL,0
MOV CH,0
MOV DL,79
MOV DH,24
MOV BH,00011111B
INT 10H

RET

CLEAR_SCREEN ENDP

;________NEW LINE PROC________

NEW_LINE PROC

MOV DL,10
MOV AH,2
INT 21H

MOV DL,13
MOV AH,2
INT 21H

RET
NEW_LINE ENDP

;_______MAIN MENU PROC________

MAIN_MENU PROC

CALL NEW_LINE
MESSAGE B1
CALL NEW_LINE
MESSAGE B2
CALL NEW_LINE
MESSAGE B3
CALL NEW_LINE
MESSAGE B4
CALL NEW_LINE
MESSAGE B5
CALL NEW_LINE
MESSAGE B6
CALL NEW_LINE
RET
MAIN_MENU ENDP

;_________SELECT CHOICE PROC_____

SELECT_CHOICE PROC
CALL NEW_LINE
MESSAGE S4

MOV AH,1
INT 21H
SUB AL,48
MOV CHOICE,AL

RET
SELECT_CHOICE ENDP

;_________LOGIN PROC__________

LOGIN PROC

CALL CLEAR_SCREEN
CALL NEW_LINE
MESSAGE S5
CALL NEW_LINE
MESSAGE S_EMAIL

MOV SI,OFFSET L_EMAIL

INPUTL_EMAIL:

MOV AH,1
INT 21H
MOV [SI],AL

CMP [SI],13
JE NEXT

INC SI

JMP INPUTL_EMAIL

NEXT:
CALL NEW_LINE
MESSAGE S_PASS

MOV SI,OFFSET L_PASSWORD

INPUTL_PASSWORD:

MOV AH,1
INT 21H
MOV [SI],AL

CMP [SI],13
JE NEXT1

INC SI

JMP INPUTL_PASSWORD

NEXT1:
MOV SI,OFFSET L_EMAIL
MOV DI,OFFSET EMAIL
MOV CX,COUNT1

CHECK_EMAIL:

MOV BL,[SI]
CMP BL,[DI]
JNE WRONG_EMAIL

INC SI
INC DI

LOOP CHECK_EMAIL


MOV SI,OFFSET L_PASSWORD
MOV DI,OFFSET PASSWORD
MOV CX,COUNT

CHECK_PASS:

MOV BL,[SI]
CMP BL,[DI]
JNE WRONG_PASS

INC SI
INC DI

LOOP CHECK_PASS
CALL NEW_LINE
MESSAGE S13
MOV AH,1
INT 21H

JMP MENU

RET

WRONG_EMAIL:
CALL NEW_LINE
MESSAGE S10
CALL NEW_LINE
MESSAGE S17
MOV AH,1
INT 21H
SUB AL,48
CMP AL,0
JZ START

CALL LOGIN
RET

WRONG_PASS:
CALL NEW_LINE
MESSAGE S11
CALL NEW_LINE
MESSAGE S17
MOV AH,1
INT 21H
SUB AL,48
CMP AL,0
JZ START

CALL LOGIN

RET
LOGIN ENDP

;_______CREATE NEW ACCOUNT PROC______

CREATE_NEW PROC

CALL CLEAR_SCREEN
CALL NEW_LINE
MESSAGE S6
CALL NEW_LINE
MESSAGE S_NAME

MOV SI,OFFSET USERNAME

INPUT_USERNAME:

MOV AH,1
INT 21H
MOV [SI],AL

CMP [SI],13
JE NEXT2

INC SI

JMP INPUT_USERNAME

NEXT2:
CALL NEW_LINE
MESSAGE S_EMAIL

MOV SI,OFFSET EMAIL

INPUT_EMAIL:

MOV AH,1
INT 21H
MOV [SI],AL

CMP [SI],13
JE NEXT3

INC COUNT1
INC SI

JMP INPUT_EMAIL

NEXT3:
CALL NEW_LINE
MESSAGE S_AMOUNT

MOV AMOUNT,0
MOV BL,10

INPUT_AMOUNT:
MOV AH,1
INT 21H
CMP AL,13
JE NEXT4

SUB AL,30H
MOV AH,0
MOV CX,AX
MOV AX,AMOUNT
MUL BL
ADD AX,CX
MOV AMOUNT,AX

JMP INPUT_AMOUNT

NEXT4:
CALL NEW_LINE
MESSAGE S_PASS

MOV SI,OFFSET PASSWORD

INPUT_PASSWORD:

MOV AH,1
INT 21H
MOV [SI],AL

CMP [SI],13
JE NEXT5

INC SI
INC COUNT

JMP INPUT_PASSWORD

CORRECT:
MESSAGE S7

NEXT5:
CALL NEW_LINE
MESSAGE S_CONFORM

MOV SI,OFFSET CONFORM

INPUT_CONFORM:

MOV AH,1
INT 21H
MOV [SI],AL

CMP [SI],13
JE NEXT6

INC SI

JMP INPUT_CONFORM

NEXT6:

MOV SI,OFFSET PASSWORD
MOV DI,OFFSET CONFORM
MOV CX,COUNT
CHECK:

MOV BL,[SI]
CMP BL,[DI]
JNE CORRECT
INC SI
INC DI

LOOP CHECK

CALL NEW_LINE
MESSAGE S12
MOV AH,1
INT 21H

CALL LOGIN

RET
CREATE_NEW ENDP

;_______OUTPUT PROC_______

OUTPUT PROC
MOV DX,0
MOV BX,10
MOV CX,0
L1:
DIV BX
PUSH DX

MOV DX,0
INC CX
CMP AX,0

JNE L1

MOV AH,2
L2:

POP DX
ADD DX,48
INT 21h

LOOP L2

RET
OUTPUT ENDP


END MAIN

 

Contact us - WSP Tech - World Solution Point Technologies

Contact Details for Assembly Projects

If you want any Project then contact our Customer support

Email: support@wsptech.pk

Mobile no: +92 304 5180559

You can contact any time on Mobile Number.