Anda di halaman 1dari 16

TITLE MASM Template (main.

asm)
; Description: PROJECT GROUP: THE3

.686
.MODEL FLAT, STDCALL
.STACK

INCLUDE Irvine32.inc
.data
color DWORD ?
line1 byte " ",0
line2 byte " __________________________________
",0
line3 byte " __________________ | | ",0
line4 byte " | | | | ",0
line5 byte " | __ __ __ | | | ",0
line6 byte " || | | | | || |SELAMAT DATANG KE MESIN LAYAN
DIRI| ",0
line7 byte " | |__| |__| |__| | | | ",0
line8 byte " | __ __ __ | | | ",0
line9 byte " | | | | | | | | |
__________________________________| ",0
line10 byte " | |__| |__| |__| | ",0dh, 0ah
byte " | __ __ __ | ",0dh, 0ah
byte " || | | | | ||
",0
line11 byte " | |__| |__| |__| | ",0
line12 byte " | |
__________________________________ ",0
line13 byte " | | | | ",0
line14 byte " | ________________ | | | ",0
line15 byte " || || | | ",0
line16 byte " ||________________|| | MESIN LAYAN DIRI CS
Go | ",0
line17 byte " | | | | ",0
line18 byte " |__________________| | | ",0
line19 byte " |
__________________________________| ",0
line20 byte " ",0

q2 BYTE " ________________________ ",0dh,


0ah
BYTE " | | ",0dh, 0ah
BYTE " | Masukkan Pilihan Anda: | ",0dh, 0ah
BYTE " | 1. Beli : | ",0dh, 0ah
BYTE " | 2. Arahan : | ",0dh,0ah
BYTE " | 3. Keluar : | ",0dh, 0ah
BYTE " |________________________| ",0

D1 BYTE "
_____________________________________ " ,0
D2 BYTE " | 1. Yoyic RM6 | " ,0
D3 BYTE " | 2. Lemon Tea RM4 | " ,0
D4 BYTE " | 3. Cincau RM5 | " ,0
D5 BYTE " | 4. Milo RM3 | " ,0
D6 BYTE " | 5. Starbucks Double Shot RM10 | " ,0
D7 BYTE " | 6. Coffee Milk RM4 | " ,0
D8 BYTE " | 7. Pepsi RM3 | " ,0
D9 BYTE " | 8. Coca Cola RM3 | " ,0
D10 BYTE " | 9. Evian RM12 | " ,0
D11 BYTE " | 10. Yougurt RM4 | " ,0
D12 BYTE " |
_____________________________________| " ,0

ho byte " _________________________________


",0dh, 0ah
byte " | | ",0dh, 0ah
byte " |Cara Menggunakan Mesin Layan Diri| ",0dh,
0ah
byte " |_________________________________| ",0
ho1 byte " 1. Tekan 'Beli' ",0
ho2 byte " 2. Masukkan Duit Mengikut Harga Air
",0
ho3 byte " 3. Jumlah Duit Dipaparkan dan Pilih Variasi
Air ",0
ho4 byte " SEDIA UNTUK MEMBUAT PEMBELIAN? 1 - YA
/ 2 - TIDAK : ",0

item1 BYTE " Sila ambil minuman anda : Yoyic


",0
item2 BYTE " Sila ambil minuman anda : Lemon Tea
",0
item3 BYTE " Sila ambil minuman anda : Cincau
",0
item4 BYTE " Sila ambil minuman anda : Milo
",0
item5 BYTE " Sila ambil minuman anda : Fresh Milk
",0
item6 BYTE " Sila ambil minuman anda : Coffee Milk
",0
item7 BYTE " Sila ambil minuman anda : Pepsi
",0
item8 BYTE " Sila ambil minuman anda : Coca Cola
",0
item9 BYTE " Sila ambil minuman anda : Evian
",0
item10 BYTE " Sila ambil minuman anda : Yougurt
",0

str1 BYTE " Sila masukkan duit (RM) : ",0


str2 BYTE " RM1: ",0
str3 BYTE " RM5: ",0
str4 BYTE " RM10: ",0
str5 BYTE " Jumlah duit dimasukkan adalah RM: ",0
str6 BYTE " Sila pilih air anda : ",0
str7 BYTE " Baki anda RM: ",0
str8 BYTE "
___________________________________________________________ ", 0dh, 0ah
BYTE " | | ", 0dh,
0ah
BYTE " | | ", 0dh,
0ah
BYTE " |Terima Kasih Kerana Sudah Menggunakan
Kemudahan Dengan Baik| ", 0dh, 0ah
BYTE " | | ", 0dh,
0ah
BYTE " |
___________________________________________________________| ", 0

q1 BYTE " Anda ingin menambah sebarang air? (Ya:1 /


Tidak: 0) : ",0
sry BYTE " DUIT TIDAK MENCUKUPI !!! SILA CUBA
LAGI !! ",0

RM BYTE " ",0


flavour DWORD 0
input1 DWORD 0
input2 DWORD 0
input3 DWORD 0
input4 DWORD 0
input5 DWORD 0
input6 DWORD 0
input7 DWORD 0
input8 DWORD 0
input9 DWORD 0

total DWORD 0
change DWORD 0
choice DWORD 0
one DWORD 1
five DWORD 5
ten DWORD 10

cost1 DWORD 6
cost2 DWORD 4
cost3 DWORD 5
cost4 DWORD 3
cost5 DWORD 10
cost6 DWORD 4
cost7 DWORD 3
cost8 DWORD 3
cost9 DWORD 12
cost10 DWORD 4

.code
main PROC
call clrscr
call colour1 ;set the initial colour for the text
call ani ;proc for colour animation
;jmp prompt

call Crlf
call Crlf
;call D5 ;call user prompt
;call ReadDec ;input from user

;call Clrscr

prompt:
call crlf
mov edx, OFFSET q2
call WriteString
call crlf
call ReadDec
;mov choice, eax
call crlf
call crlf
;cmp choice,0
cmp eax,1 ;if input 1
je L1
cmp eax,2 ;if input 2
je how
cmp eax,3
je stop
;jmp Stop ;if input 3

how: ;proc display all how to play instructions


call Clrscr
mov eax,green
call SetTextColor
mov eax,300
call Delay
mov edx,offset ho
call Writestring
call Crlf
call Crlf
mov edx,offset ho1
call Writestring
call Crlf
mov edx,offset ho2
call Writestring
call Crlf
mov edx,offset ho3
call Writestring
call Crlf
call Crlf
mov edx,offset ho4
call Writestring
call ReadDec
call clrscr
cmp eax,1
je L1
cmp eax,2
je stop ;jmp luar if user enter 2

L1:
call clrscr
mov edx, OFFSET D1
call WriteString
call crlf
mov edx, OFFSET D2
call WriteString
call crlf
mov edx, OFFSET D3
call WriteString
call crlf
mov edx, OFFSET D4
call WriteString
call crlf
mov edx, OFFSET D5
call WriteString
call crlf
mov edx, OFFSET D6
call WriteString
call crlf
mov edx, OFFSET D7
call WriteString
call crlf
mov edx, OFFSET D8
call WriteString
call crlf
mov edx, OFFSET D9
call WriteString
call crlf
mov edx, OFFSET D10
call WriteString
call crlf
mov edx, OFFSET D11
call WriteString
call crlf
mov edx, OFFSET D12
call WriteString
call crlf
jmp L2

L2:
call crlf
call crlf
mov edx, OFFSET str1
call WriteString
call crlf
mov edx, OFFSET str2
call WriteString
call ReadDec
mov input1, eax
mov eax, input1
mul one
mov total, eax
call crlf
mov edx, OFFSET str3
call WriteString
call ReadDec
mov input2, eax
mov eax,input2
mul five
add total, eax
call crlf
mov edx, OFFSET str4
call WriteString
call ReadDec
mov input3, eax
mov eax,input3
mul ten
add total, eax
call crlf
mov edx, OFFSET str5
call WriteString
mov eax, total
call WriteDec
mov edx, OFFSET RM
call WriteString
call crlf
jmp FLAV

FLAV:
mov edx, OFFSET str6
call WriteString
call ReadDec
mov flavour, eax
cmp flavour,1
jz F1
cmp flavour,2
jz F2
cmp flavour,3
jz F3
cmp flavour,4
jz F4
cmp flavour,5
jz F5
cmp flavour,6
jz F6
cmp flavour,7
jz F7
cmp flavour,8
jz F8
cmp flavour,9
jz F9
cmp flavour,10
jz F10
jmp FLAV

F1:
cmp total, 2
jge Cal1
jl SR

Cal1:
mov edx, OFFSET item1
call WriteString
call crlf
mov eax, total
sub eax, cost1
mov change, eax
mov edx, OFFSET str7
call WriteString
mov eax, change
call WriteDec
mov edx, OFFSET RM
call WriteString
call crlf
jmp ASK

F2:
cmp total, 3
jge Cal2
jl SR
Cal2:
mov edx, OFFSET item2
call WriteString
call crlf
mov eax, total
sub eax, cost2
mov change, eax
mov edx, OFFSET str7
call WriteString
mov eax, change
call WriteDec
mov edx, OFFSET RM
call WriteString
call crlf
jmp ASK

F3:
cmp total, 2
jge Cal3
jl SR

Cal3:
mov edx, OFFSET item3
call WriteString
call crlf
mov eax, total
sub eax, cost3
mov change, eax
mov edx, OFFSET str7
call WriteString
mov eax, change
call WriteDec
mov edx, OFFSET RM
call WriteString
call crlf
jmp ASK

F4:
cmp total, 2
jge Cal4
jl SR
Cal4:
mov edx, OFFSET item4
call WriteString
call crlf
mov eax, total
sub eax, cost4
mov change, eax
mov edx, OFFSET str7
call WriteString
mov eax, change
call WriteDec
mov edx, OFFSET RM
call WriteString
call crlf
jmp ASK

F5:
cmp total, 2
jge Cal5
jl SR

Cal5:
mov edx, OFFSET item4
call WriteString
call crlf
mov eax, total
sub eax, cost5
mov change, eax
mov edx, OFFSET str7
call WriteString
mov eax, change
call WriteDec
mov edx, OFFSET RM
call WriteString
call crlf
jmp ASK

F6:
cmp total, 2
jge Cal4
jl SR

Cal6:
mov edx, OFFSET item6
call WriteString
call crlf
mov eax, total
sub eax, cost6
mov change, eax
mov edx, OFFSET str7
call WriteString
mov eax, change
call WriteDec
mov edx, OFFSET RM
call WriteString
call crlf
jmp ASK

F7:
cmp total, 2
jge Cal7
jl SR

Cal7:
mov edx, OFFSET item7
call WriteString
call crlf
mov eax, total
sub eax, cost7
mov change, eax
mov edx, OFFSET str7
call WriteString
mov eax, change
call WriteDec
mov edx, OFFSET RM
call WriteString
call crlf
jmp ASK

F8:
cmp total, 2
jge Cal8
jl SR

Cal8:
mov edx, OFFSET item8
call WriteString
call crlf
mov eax, total
sub eax, cost8
mov change, eax
mov edx, OFFSET str7
call WriteString
mov eax, change
call WriteDec
mov edx, OFFSET RM
call WriteString
call crlf
jmp ASK

F9:
cmp total, 2
jge Cal9
jl SR

Cal9:
mov edx, OFFSET item9
call WriteString
call crlf
mov eax, total
sub eax, cost9
mov change, eax
mov edx, OFFSET str7
call WriteString
mov eax, change
call WriteDec
mov edx, OFFSET RM
call WriteString
call crlf
jmp ASK

F10:
cmp total, 2
jge Cal10
jl SR

Cal10:
mov edx, OFFSET item10
call WriteString
call crlf
mov eax, total
sub eax, cost10
mov change, eax
mov edx, OFFSET str7
call WriteString
mov eax, change
call WriteDec
mov edx, OFFSET RM
call WriteString
call crlf
jmp ASK

ASK:
call crlf
mov edx, OFFSET q1
call WriteString
call ReadDec
mov choice, eax
call crlf
call crlf
cmp choice,1
jz Continue
jmp Stop

Continue:
jmp L1

SR:
mov edx, OFFSET sry
call WriteString
call crlf
call crlf
JMP L2
; Your code here

jmp Stop

; Rest of your code


Stop:
call clrscr
mov edx, OFFSET str8
call WriteString
call Crlf
exit

main ENDP

colour1 proc
mov ebx,green+7
mov eax,ebx
call SetTextColor
ret
colour1 endp

ani proc ;animation proc


mov ecx,6
L1:
call maintitle ;proc print the PERPLEX CRATE title
mov eax,900
call Delay ;screen delay for 900 miliseconds
call Clrscr
add ebx,1
mov eax,ebx
call SetTextColor ;set new text colour
loop L1
ani endp

maintitle proc ;proc print the title

mov edx,offset line1


call Writestring
call Crlf
mov edx,offset line2
call Writestring
call Crlf
mov edx,offset line3
call Writestring
call Crlf
mov edx,offset line4
call Writestring
call Crlf
mov edx,offset line5
call Writestring
call Crlf
mov edx,offset line6
call Writestring
call Crlf
mov edx,offset line7
call Writestring
call Crlf
mov edx,offset line8
call Writestring
call Crlf
mov edx,offset line9
call Writestring
call Crlf
mov edx,offset line10
call Writestring
call Crlf
mov edx,offset line11
call Writestring
call Crlf
mov edx,offset line12
call Writestring
call Crlf
mov edx,offset line13
call Writestring
call Crlf
mov edx,offset line14
call Writestring
call Crlf
mov edx,offset line15
call Writestring
call Crlf
mov edx,offset line16
call Writestring
call Crlf
mov edx,offset line17
call Writestring
call Crlf
mov edx,offset line18
call Writestring
call Crlf
mov edx,offset line19
call Writestring
call Crlf
mov edx,offset line20
call Writestring
call Crlf
call Crlf
ret
maintitle endp

END main

Anda mungkin juga menyukai