c. TEORI DASAR
-
Input
: Nada loudspeaker
Input
Output
: Nada loudspeaker.
Output
: Jika RAM ada dan pelaksaaan simpannya baik bit zero flag akan
menjadi satu. Jika pada address tersebut pelaksanaan simpannya
jelek atau tudak ada RAM-nya maka bit zero flagnya menjadi nol.
: CP 1
JP PE, Check RAM
RST
d. LANGKAH KERJA
PROGRAM I
ADDR
1800
1802
1803
1805
1808
180B
180D
1810
KOMENTAR
B
SP
C
HL
0BH
BC
D3H
0008H
C 8CH
HL 0012H
SBR. TONE
1813
1814
1816
1818
181C
181F
1820
1822
C1
10 EC
16 FF
LD
DD 21 00 19
CD 24 06 TAMP
15
20
FA
C3 00 18
1900
1903
00 8F 23
A3 1F 00
POP
BC
DJNZ
LOOP
D, FFH
LD
IX, 1900H
CALL SCAN 1
DEC
D
JRNZ
TAMP
JP
1800H
ORG 1900H
DEFW
PONE
BC SP
D FFH
IX 1900H
SBR. Scan 1
D D1
KEMBALI KE AWAL
Pada program di atas frekuensi bunyi pertama adalah 320 Hz dan lamanya 25 msec,
sedangkan bunyi kedua frekuensinya 480 Hz dan lamanya 25 msec.
PROGRAM II
ADDR
1800
1803
1805
1808
180B
180F
1810
1811
1814
1818
181B
181E
181F
1820
1821
1823
1824
1826
182A
182C
182F
06 24
CD 24 06
10 FB
SUBROUTINE TAMPILAN
ORG 122AH
LD
B, 64H
TAMP. CALL SCAN1
DJNZ TAMP.
KOMENTAR
SBR. CLEAR
C 0AH
BC 0000H
HL 1850H
IX 1900H
A (HL)
SP HL
(IX) A
IX 1900H
SBR. TAMPILAN
SBR. CLEAR
HL SP
HL HL + 1
DE + 1
IX IX + DE
C C1
B 64H
SBR. SCAN1
1813
C9
RET1
SUBROUTINE CLEAR
ORG. 183AH
LD
B, 10H
LD
HL, 1900H
XOR
A
CLEAR LD (HL), A
INC
HL
DJNZ CLEAR
RET
183A
183C
183F
1840
1841
1842
1844
06 10
21 00 19
AF
77
23
10 FC
C9
1850
A7 A7 A7 A7 A7 A7 DEFB
KEMBALI KE
PROGRAM INDUK
B
HL
A
(HL)
HL
10H
1900H
A XOR A
A
HL + 1
KEMBALI KE
PROGRAM INDUK
DATA
Program di atas adalah menampilkan karakter pada buffer yang address awalnya
adalah 1900H. Sebelum menampilkan maka pada address tersebut di-clear setelah
itu diisi data yang ada pada register HL ke register IX untuk menampilkan, lalu dari
address 1900H di clear, kemudian register IX dan register HL diincreament, begitu
seterusnya.
PROGRAM III
ADDR OP. CODE LABEL MNEMONIC OPERAND KOMENTAR
ORG 1800H
1800
DD 21 50 18
LD
IX, Not/Nada ; isi alamat untuk nada
1804
FD 21 00 19
LD
IY, Durasi
; isi alamat untuk durasi
1808
DD 4E 00 LOOP LD
C, (IX+00H) ; salin data nada pada IX ke C
180B FD 66 00
LD
H, (IY+00H) ; salin frek nada pada IY ke H
180E 2E 00
LD
L, 00H
; salin periode nada ke L
1810
CD E4 05 SBR
CALL TONE
; panggil SBR Tone
1813
0e 01
LD
C, 01H
; isikan data 01H ke C
1815
21 00 01
LD
HL, 0100H
; isikan frek & periode ke HL
1818
CD E4 05 SBR
CALL TONE
; panggil SBR Tone
181B AF
XOR A
; Xor-kan data di A
181C DD 23
INC IX
; tambah 1 pada IX untuk data
berikutnya
181E FD 23
INC IY
; tambah 1 pada IY untuk data
isi A
1823
C2 08 18
JPNZ bunyi nada
; ulangi program sampai habis
1826
76
HALT
Program di atas adalah untuk membunyikan suatu lagu dengan nada dan waktu
sesuai lagu yang dipilih. Sebelum membuat program lengkap terutama untuk
menyatakan nilai frekuensi nada maupun durasinya perlu terlebih dahulu mencatat
judul lagu, nada dasar yang dipakai beserta not dan ketukannya. Sesudah itu baru
ditulis pada kolom alamat yang ditentukan baik frekuensi nadanya maupun durasi
setiap nadanya. Setelah diketikkan semua ke MPF Z80 eksekusilah program Saudara
dan dengarkan vis speaker di MPF 80. Apabila belum cocok datanya dapat
diperbaiki sesuai yang benar. Selamat mencoba.