Notes
Notes - notes.io |
.STACK 100H
ORG 100H
.DATA
PETUN DB 'A = DO; S = RE; D = MI; F = FA; G = SOL; H = LA; J = SI; K = DO1; >> 0 KELUAR', 13,10, '$'
STOR DW 0 ; memory
.CODE
.STARTUP
MAIN :
MOV AX, @DATA
MOV DS, AX
MOV DX, OFFSET PETUN
MOV AH, 09H
INT 21H
NADA MACRO PAR
MOV AX, PAR
MOV STOR, AX
CALL SOUNDER
JMP GET_INPUT
ENDM
JMP START ;JUMP KE START
START:
CALL CURS_OFF ;MATIKAN CURSOR
;SCAN INPUT KEYBOARD
GET_INPUT:
MOV AH, 01H ;SCAN IMPUT USER
INT 21H
CMP AL,"0" ;JIKA USER MASUKAN 0 > EXIT
JE EXIT2
CMP AL,"a" ;JIKA USER MASUKAN A > DO
JE NDO
CMP AL,"s" ;JIKA USER MASUKAN S > MI
JE NRE
CMP AL,"d" ;JIKA USER MASUKAN a > DO
JE NMI
CMP AL,"f" ;JIKA USER MASUKAN d > SOL
JE NFA
CMP AL,"g"
JE NSOL
CMP AL,"h"
JE NLA
CMP AL,"j"
JE NSI
CMP AL,"k"
JE NDO1
JMP GET_INPUT ;LOOPING AMBIL INPUT SELANJUTNYA
EXIT2:
JMP EXIT1
NDO:
NADA 9121
NRE:
NADA 8126
NMI:
NADA 7239
NFA:
NADA 6833
NSOL:
NADA 6087
NLA:
NADA 5423
NSI:
NADA 4831
NDO1:
NADA 4560
;FUNGSI MATIKAN CURSOR
CURS_OFF:
MOV CH, 10h ;SET BIT UNTUK MATIKAN CURSOR
MOV AH, 01H ;MASUKAN FUNGSI KURSOR
INT 10h ;PANGGIL ROM BIOS VIDEO SERVICE
RET ;RETURN
;FUNGSI NYALAKAN CURSOR
CURS_ON:
MOV CX, 0506h ;SET BIT UNTUK NYALAKAN CURSOR
MOV AH, 01H ;MASUKAN FUNGSI KURSOR
INT 10H ;PANGGIL ROM BIOS VIDEO SERVICE
RET ;RETURN
EXIT1:
JMP EXIT
;GENERATE SOUND
SOUNDER:
MOV AL, 0B6H ;LOAD CONTROL
OUT 43H, Al ;SEND
MOV AX, STOR ;MASUKAN FREKUENSI KE AX
OUT 42H, AL ;SEND LSB
MOV AL, AH ;MOVE MSB KE AL
OUT 42H, AL ;SEND MSB
IN AL, 061H ;DAPATKAN STATE PORT 61H
OR AL, 03H ;NYALAKAN SPEAKER
OUT 61H, AL ;SPEAKER MENYALA
CALL DELAY ;DELAY
AND AL, 0FCH ;MATIKAN SPEAKER
OUT 61H, AL ;SPEAKER MATI
CALL CLR_KEYB ;PANGGIL FUNGSI CLEAR KEYBOARD
RET ;RETURN
;DELAY NADA
DELAY:
MOV AH, 00H ;FUNGSI 0H - DAPATKAN SYSTEM TIMER
INT 01AH ;PANGIL ROM BIOS TIME-OF-DAY SERVICES
ADD DX, 4 ;MASUKAN NILAI DELAY
MOV BX, DX ;STORE HASILNYA KE BX
PZ:
INT 01AH ;PANGGIL ROM BIOS TIME-OF-DAY SERVICES
CMP DX, BX ;COMPARE DENGAN BX, APAKAH SUDAH SELESAI DELAY ?
JL PZ ;JIKA BELUM LOOPING
RET ;RETURN
;CLEAR KEYBOARD BUFFER
CLR_KEYB:
PUSH ES ;SIMPAN ES
PUSH DI ;SIMPAN DI
MOV AX, 40H ;BIOS SEGMEN DIDALAM AX
MOV ES, AX ;TRANSFER KE ES
MOV AX, 1AH ;KEYBOARD POINTER DIDALAM AX
MOV DI, AX ;MASUKAN KE DI
MOV AX, 1EH ;KEYBOARD BUFFER MULAI DARI AX
MOV ES: WORD PTR [DI], AX ;PINDAHKAN KE HEAD POINTER
INC DI ;PINDAHKAN POINTER KE KEYBOARD TAIL POINTER
INC DI
MOV ES: WORD PTR [DI], AX ;PINDAHKAN KE TAIL POINTER
POP DI ;RESTORE DI
POP ES ;RESTORE ES
RET ;RETURN
;PROGRAM TERMINATE
EXIT:
CALL CURS_ON ;NYALAKAN KURSOR
;INT 20h ;KELUAR KE DOS
.EXIT
END
|
Notes.io is a web-based application for taking notes. You can take your notes and share with others people. If you like taking long notes, notes.io is designed for you. To date, over 8,000,000,000 notes created and continuing...
With notes.io;
- * You can take a note from anywhere and any device with internet connection.
- * You can share the notes in social platforms (YouTube, Facebook, Twitter, instagram etc.).
- * You can quickly share your contents without website, blog and e-mail.
- * You don't need to create any Account to share a note. As you wish you can use quick, easy and best shortened notes with sms, websites, e-mail, or messaging services (WhatsApp, iMessage, Telegram, Signal).
- * Notes.io has fabulous infrastructure design for a short link and allows you to share the note as an easy and understandable link.
Fast: Notes.io is built for speed and performance. You can take a notes quickly and browse your archive.
Easy: Notes.io doesn’t require installation. Just write and share note!
Short: Notes.io’s url just 8 character. You’ll get shorten link of your note when you want to share. (Ex: notes.io/q )
Free: Notes.io works for 12 years and has been free since the day it was started.
You immediately create your first note and start sharing with the ones you wish. If you want to contact us, you can use the following communication channels;
Email: [email protected]
Twitter: http://twitter.com/notesio
Instagram: http://instagram.com/notes.io
Facebook: http://facebook.com/notesio
Regards;
Notes.io Team