Kode rahasia handphone (Nokia dan Sony Ericsson)


Kode rahasia handphone ini wajib di ketahui kalau emang mau jadi pakar preak hp, juga paling umum di gunakan selain harus tahu istilah handphone, entah untuk pemilik counter hape, makelar hape atau sebagai panduan membeli handphone second. Dan bila kurang puas lainya bisa di download disini. Jadi tahu cara merawat batrei handphone saja tidak cukup, apalagi kalo kamu demen maen hack hape.


Kode akses Nokia


*#30# : Menampilkan ‘private number’ yang menghubungi anda.
*#73# : Mereset timer ponsel dan skor game (pada beberapa ponsel).
*#7780# : Mengembalikan ke setting pabrik (factory setting).
*#2820# : Alamat IP perangkat Bluetooth (untuk ponsel yang mempunyai Bluetooth).
xx# : Akses cepat ke nama/nomer telepon di phone book ponsel, misalnya 20#.
Tombol off : Menekan dengan singkat, untuk berpindah antar profile.
*3370# : Mengaktifkan EFR(Enhanced Full Rate) Codec (tidak berlaku di ponsel Symbian).
#3370# : Menonaktifkan EFR Codec.
*#4270# : Mengaktifkan Half Rate Codec.
*#4270# : Menonaktifkan Half Rate Codec.
*#0000# : Menampilkan versi software ponsel.
*#9999# : Kode alternatif jika *#0000# tidak bekerja.
*#06# : Melihat nomor IMEI (Internasional Mobile Equipment Identity).
*#21# : Mengecek nomor pengalihan “All Call” yang digunakan.
*#2640# : Menampilkan kode keamanan ponsel yang digunakan.
*#43# : Mengecek status “Call Waiting”.
*#61# : Untuk mengecek nomor pemanggil yang dialihkan ketika tak anda jawab.
*#62# : Mengecek nomor pemanggil yang dialihkan ketika ponsel anda di luar jangkauan.
*#67# : Mengecek nomor pemanggil yang dialihkan ketika ponsel anda sedang sibuk.
**21*number# : Menghidupkan pengalihan “All Call” pada nomor yang diisi.
**61*number# : Menghidupkan pengalihan “No Reply” pada nomor yang diisi.
**67*number# : Menghidupkan pengalihan “On Bussy” pada nomor yang diisi.
*#67705646# : Mengganti logo operator logo pada Nokia 3310 dan 3330.
*#746025625# : Menampilkan status SIM Clock.
*#7760# : Menampilkan kode pabrikan (sebagian besar ponsel tipe lama).
*#92702689# : Memunculkan : 1. Serial Number, 2. Date Made, 3. Purchase Date, 4. Date of last repair, 5.Transfer user data. Keluar dari mode ini harus merestart ponsel ( pada beberapa ponsel ).


Kode akses Sony Ericsson

*#06# : Melihat nomor IMEI (Internasional Mobile Equipment Identity).
*#0000# : Mereset bahasa kembali ke English.
> * < < * < * : Service Menu - menampilkan versi software ponsel. Tekan “Yes” berulang-ulang untuk melihat semua data software dan tekan “>” untuk melihat semua teks yang terdapat pada ponsel.
< * * < : Mengunci SIM Card.
Sortcuts :
1. Menyimpan nomor “Missed Call” di direktori ponsel.
Cari menu “Missed Call”, tekan “Yes” untuk menampilkan nomor yang dituju. Tekan nomor apa saja ( 0 sampai 9 ), kemudian tekan “clear” sekali untuk memblok nomor tersebut, kemudian tekan dan tahan “<” sampai muncul “Store”, tekan “Yes”.
2. Menyembunyikan nomor.
Setelah menekan nomor yang dituju dan sebelum menekan “Yes”, tekan ‘ > ‘ 2 kali untuk memilih “Hide Id?” dan tekan ‘Yes’.
3. Mengecek level batere ketika ponsel mati (off ).
Tekan ‘No’ secara cepat 1 x dan tunggu hingga tampilan baterai terlihat.
4. Menyimpan nomor di memori ponsel (bukan SIM Card).
Ikuti prosedur normal untuk menyimpan nomor. Ketika tampilan untuk menyimpan terlihat tekan ‘#’ sekali dan lokasi yang diinginkan, atau tekan ‘#’ 2 kali untuk melihat posisi lanjutan.
5. Menghubungi nomor dari pesan SMS.
Mengarahkan kursor pada nomor yang tertulis, kemudian tekan “Yes”.

Shortcut Penampilan Gambar :
(Berlaku di sebagian besar ponsel Symbian).
Ketika melihat image atau gambar di galeri, tekan :
1 : untuk memutar gambar ke kiri.
2 : untuk memutar gambar ke kanan.
5 atau 7 : untuk memperbesar (zoom) gambar.
* : untuk tampilan fullscreen atau non fullscreen.
Catatan : perintah angka di atas bisa berbeda di setiap ponsel.
Hard Reset :
Peringatan !!! Semua data ponsel akan hilang.
Dalam keadaan ponsel mati (off), tekan secara bersamaan tombol telepon (bicara), angka 3, dan tombol * (bintang). Kemudian dalam keadaan menekan ketiga tombol tersebut, tekan tombol On. Trik ini berlaku di sebagian besar ponsel Nokia.

Update Tambahan Nokia GSM
 
Nokia 21xx
Kode Penjelasan


*#06# Kode IMEI
*#3283# Minggu Produksi/Bulan & Tahun
*#9999# Versi Software
 
Nokia 32xx
Kode Penjelasan


*#06# Kode IMEI
*#0000# Versi Software
*#92702689# Menu Layanan
*#746025625# Sim Clock Stop
*3370# EFR aktif, suara lebih jernih, baterai cepat habis.
#3370# EFR inactive.
*4720# HR aktif, suara tidak lebih jernih, baterai tahan lama.
#4720# HR OFF.
 
Nokia 51xx
Kode Penjelasan

*#06# Kode IMEI
*#0000# Versi Software
*#92702689# Menu layanan
*3370# EFR aktif, suara lebih jernih, baterai cepat habis.
#3370# EFR inactive.
*4720# HR aktif, suara tidak lebih jernih, baterai tahan lama.
#4720# HR OFF.
 
Nokia 61xx
Kode Penjelasan

*#06# Kode IMEI
*#0000# Versi Software
*#92702689# Menu layanan
*3370# EFR aktif, suara lebih jernih, baterai cepat habis.
#3370# EFR inactive.

Nokia 81xx


Kode Penjelasan

*#06# Kode IMEI
*#8110# Versi Software, tanggal produksi & nomor model
*#92702689# Menu layanan
Nokia 88xx
Kode Penjelasan
*#06# Kode IMEI
*#0000# Versi Software
*#92702689# Menu Layanan
*3370# EFR aktif, suara lebih jernih, baterai cepat habis.
#3370# EFR inactive.
Nokia 90xx

Kode Penjelasan

*#06# Kode IMEI
*#6823711
58412125# Versi Software
*#3283# Tanggal Produksi

Selasa, 19 Juli 2011 di 10.37 , 0 Comments

Assembly Menggunakan DEBUG.com

Assembly Menggunakan DEBUG.COM
           Dalam sebuah komputer, prosesor (processor) merupakan otak yang memproses segala informasi yang masuk serta mengontrol perangkat keras lainnya.Kita mungkin sudah pernah membuat berbagai macam program yang pada prinsipnya adalah memerintah komputer untuk melakukan pekerjaan yang kita ingin kan. Tapi apakah kita secara langsung memerintah komputer tersebut??? Jika kita menggunakan bahasa Pemrograman Tingkat Tinggi maka jawabannya adalah TIDAK. Sebab yang kita lakukan adalah membuat sederetan perintah dalam bahasa tingkat tinggi yang tidak dimengerti oleh komputer, sebab komputer adalah sebuah MESIN dan bukan “Seorang Mesin” , maka disini lah tugas Compiler dari sebuah bahasa pemrograman tingkat tinggi untuk menterjemahkan perintah kita kedalam bahasa yang dimengerti oleh mesin.

           Nah jika kita ingin mencoba untuk memerintah mesin ini secara langsung tanpa perantara Compiler kita bisa gunakan Bahasa Assembly. Bahasa ini pada dasarnya adalah bahasa mesin yang dibentuk menjadi mnemonik oleh pembuat prosesor (pabrik). Maka dari itu mnemonik tiap prosesor akan berbeda tergantung jenis. Misal nya yang umum dipakai adalah x86 dari INTEL berbeda dengan SPARC dari SUN atau MAC dari Apple. Baiklah, mari kita coba untuk memerintah prosesor langsung dengan tangan kita
“Just You and Your Computer”.
Kita akan membuat sebuah program sederhana untuk
menampilkan sebuah huruf “A” dilayar. Tools yang diperlukan
hanyalah DEBUG.COM yang merupakan bawaan
dari Windows.
Let’s Do…. . . .. . . . .
  1. Start pada komputer
  2. pilih menu RUN atau
  3. kemudian ketik CMD dan klik  OK.
  4. Tuiing.. muncul Command Shell nya dengan warna latar hitam.
  5. kemudian ketik DEBUG.  setelah itu akan muncul tanda  (  -  ) yang artinyaartinya sesi debug sudah diaktifkan dan kita siap memerintah prosesor.
atau Cara cepat nya bisa dengan :
  1. Tekan lambang windows disebelah kanan pada windows, + R
  2. ketikan debug
  3. kemudian enter maka akan tampil seperti gambar dibawah ini
ketik seperti pict dibawah ini
Assembly Menggunakan DEBUG.COM
Keterangan
a100        ;Untuk memulai program di alamat offset 100
mov ah,02   ;Memasukkan nilai 02h ke register AH sebagai nilai Service
mov dl,41   ;Memasukkan nilai 41 ( "A" ) ke register DL
int 21      ;Eksekusi
int 20      ;Program dihentikan
rcx         ;mengetahui dan memperbaiki isi register cx
8
njohan-jm.blogspot.com  ;nama file yang kita buat
w                       ;untuk menulis program ke media penyimpanan
q                       ;untuk keluar dari debug.exe


OK selesai. Hasilnya

serch nama file yang kita buat di drive C:\ 

jalankan file tersebut

Selasa, 21 Juni 2011 di 06.48 , 0 Comments

Program Bahasa Rakitan with DEBUG.com

  DEBUG adalah alat bantu dalam perancangan peralatan berbasis mikro-prosesor, karena daoat mencapai tingkat perangkat keras yang paling dalam dari suatu komputer, misal menulis informasi ke dalam boot sector, direktori, FAT, menjalankan interupsi BIOS atau DOS.

Hal-hal penting dalam Debug :
· Hanya mengenal dan selalu bekerja dengan bilangan-bilangan heksadesimal
· Bekerja dengan penunjukan ke alamat-alamat memori memakai format segment : offset.
· Kemampuan mengakses daerah "very low level access" (software / hardware).
Setiap jenis komputer (mainframe, minicomputer, microcomputer) memiliki
sarana debugging berbeda.

Langkah mengaktifkan DEBUG.EXE / DEBUG.COM :
a> Debug (enter)
-


Perintah DEBUG
1. R (Register)
Untuk menampilkan informasi komposisi register-register di dalam
mikroprosesor, alamat memori, serta isi dari alamat memori tersebut
yang mungkin berupa instruksi yang akan dilaksanakan oleh komputer,
atau data.
Contoh :
A:\>DEBUG (enter)
r (enter)
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=29E7 ES=29E7 SS=29E7 CS=29E7 IP=0100 NV UP EI PL NZ NA PO NC
29E7:0100 0114 ADD[SI],DX DS:0000=20CD

AX, BX, CX, DX, SP, BP, SI, DI, DS, ES, SS, CS, dan IP adalah register
internal mikroprosesor yang dipakai dalam CPU.
NV, UP, EI, PL, NZ, NA, PO, dan NC adalah output dari sebuah register
yang disebut register status atau register flag.
Angka 29E7:0100 adalah alamat lokasi memori dengan format segment:offset.
Kedua nilai tersebut merupakan kombinas antara register CS (Code Segment)
dengan IP (Instruction Pointer).
0114 adalah isi alamat memori bersangkutan, byte ke-1 berisi nilai '01',
dan byte ke-2 berisi nilai '14'. Karena setiap alamat memori berisi satu
byte, tentunya nilai 01 itulah yang berdiam pada alamat offset 0100,
sedangkan nilai 14 ada di alamat 0101 ADD[SI],DX adalah terjemahan
intruksi dari alamat memori bersangkutan.

Untuk mengubah nilai-nilai register internal dapat menggunakan perintah :
· RAX = mengubah nilai register AX
· RBX = mengubah nilai register BX
· RCX = mengubah nilai register CX
· RDX = mengubah nilai register DX
· RSP = mengubah nilai register SP
· RBP = mengubah nilai register BP
· RSI = mengubah nilai register SI
· RDI = mengubah nilai register DI
· RDS = mengubah nilai register DS
· RES = mengubah nilai register ES
· RSS = mengubah nilai register SS
· RCS = mengubah nilai register CS
· RIP = mengubah nilai register IP

Sebagai contoh untuk mengubah nilai register AX dari nilai '0000' ke nilai '1111' :
A:\>Debug (enter)
-RAX (enter)
AX 0000
: 1111 (diisi setelah ':' dan enter)

Contoh diatas juga berlaku untuk register internal lainnya dan untuk diperhatikan bahwa angka-angka yang dimasukkan kedalam register harus nilai heksadesimal.

2. D (Dump)
Berfungsi untuk melihat isi blok memori.
Contoh :
A:\>Debug (enter)
-d 0100 (enter)

Hasil yang diperoleh : (import dari sidekick ke text !)

Dari tampilan tersebut, terbagi menjadi 3 bagian, yaitu :
· Bagian kiri : menampilkan alamat-alamat memori dengan format segment:offset
· Bagian tengah : menampilkan angka-angka dalam heksadesimal sebagai isi dari alamat-alamat memori
· Bagian kanan : menampilkan kode-kode karakter ASCII sebagai terjemahan dari angka heksadesimal tersebut
Debug hanya akan memperlihatkan 96 jenis karakter ASCII tercetak (printable character), mulai dari nilai desimal 33 - 127. Di luar nilai itu, karakter yang ditampilkan hanyalah berupa tanda titik (dot atau period).

Beberapa parameter yang dapat digunakan :
· L (length / panjang)
Memiliki arti menampilkan data sepanjang 2 byte, bila parameter 'L' tidak diberikan, maka otomatis akan ditampilkan 128 byte data.
-D 0100 L 2 (enter)
· Alamat awal - alamat akhir
-D 0100 01FF (enter)
· Alamat segment:offset
-D FFFF:0000 (enter)
· Alamat segment:offset sampai segment:offset
-D F000:E000 F000:E000 (enter)

3. U (Unassemble)
Berfungsi untuk menampilkan listring dari suatu program bahasa mesin.
Contoh :
A:\>Debug (enter)
-U FFFF:0000 (enter)

Hasil : import dari sidekick ke text !

Beberapa bentuk perintah 'U' :
· U F000:E05B (enter)

4. E (enter)
Berfungsi untuk mengisi atau mengubah data dalam memori.
Contoh :
A:\>Debug (enter)
-E 0100 (enter)

Hasil :
-E 0100
29E7:0100 01.

Setelah angka 01, dapat dimasukkan nilai untuk mengganti angkat tersebut langsung di belakangnya yang diakhir dengan menekan ENTER atau menekan SPACE BAR untuk berpindah ke alamat berikutnya atau menekan tanda '-' (Hyphen) untuk mundur ke lokasi sebelumnya.

5. F (Fill)
Berfungsi untuk mengisi lokasi memori. Perbedaan dengan perintah 'E (Enter)', yang menawarkan modifikasi memori secara satu alamt demi satu alamat, sedang 'F (Fill" untuk mengubah isi alamat memori dalam jumlah besar, sesuai dengan rentang (range) yang dikehendaki.
Contoh :
A:\>Debug (enter)
-F 0100 017F 58 (enter)
Berarti isilah mulai alamat offset 0100 sampai offset 017F dengan nilai heksa 58 (karakter ASCII 'x').
atau
- F F 0100 017F 'x' (enter)


Beberapa bentuk perintah 'F' :
· F 0100 L 1 41 (enter)
Arti : mulai offset 0100 sebanyak 1 byte diisi dengan nilai heksa 41 (karakter ASCII 'A').

6. C (Compare)
Berfungsi untuk membandingkan isi sebuah blok memori dengan isi blok memori lainnya.
Format perintah : C alamat1 panjang alamat2
Contoh :
A:\>Debug (enter)
-C 0100 L 10 0200 (enter)
Berarti mulai offset 0100 sebanyak 16 byte (10 heksa) bandingkan dengan offset 0200. Hasil yang dimunculkan hanyalah nilai-nilai yang berbeda setiap alamat.
Apabila dilayar tidak memberikan reaksi apapun selain kembali ke prompt '-' atau hyphen, berarti kedua blok memori persis sama.

7. S (Search)
Berfungsi untuk mencari data baik yang berupa karakter maupun untaian karakter (string) di dalam suatu blok memori tertentu.
Apabila dalam pencarian, data yang dicari diketemukan, maka akan ditampilkan semua alamat dari data tersebut lengkap dengan nilai segment dan offsetnya, sebaliknya bila tidak diketemukan akan kembali ke prompt '-'.

Format perintah : S alamat awal panjang alamat akhir

Contoh :
A:\>Debug (enter)
-S F000:E000 L FF "IBM" (enter)
Berarti mulai alamat F000:E000 sebanyak FFh byte cari string "IBM".
-S F000:E000 L FF "A" (enter)
Berarti mulai alamat F000:E000 sebanyak FFh byte cari string "A"..

8. M (Move)
Berfungsi untuk memindahkan atau menyalin data yang ada di suatu lokasi memori ke alamat memori lainnya.
Format perintah : M alamat asal panjang alamat tujuan

Contoh :
A:\>Debug (enter)
-M 0100 L 7F 0200 (enter)
Berarti mulai alamat offset 0100 sebanyak 7Fh byte isi memorinya pindahkan atau kopikan ke offset 0200.

Dari pembahasan perintah-perintah DEBUG dapat disimpulkan bahwa DEBUG dibuat
dengan tujuan untuk dapat mengeksplorasi program-program yang sudah
dibuat berikut segala dampaknya terhadap sistem dan aplikasi,
sedangkan ASSEMBLY diadakan dengan untuk mempermudah seorang programmer
dalam menyusun instruksi-instruksi pada sebuah program yang sedang dibuat.


INSTRUKSI-INSTRUKSI MIKROPROSESOR

Untuk dapat mempergunakan serta memanfaatkan sebuah mikroprosesor,
kita harus mengenal terlebih dahulu instruksi-instruksi yang bisa
dijalankan oleh mikroprosesor yang bersangkutan. Karena pada hakekatnya,
seluruh kemampuan yang ada pada mikroprosesor terletak pada kecanggihan
perintah-perintah yang terdapat didalamnya.
Tanpa adanya instruksi-instruksi yang membentuk sebuah program,
mikroprosesor tidak lebih hanya merupakan serpihan tanpa guna.
Setiap mikroprosesor mempunyai perbendaharaan instruksi sendiri-sendiri,
yang disebut dengan 'Set Instruksi' atau 'Instruction Set'.

Operasi, Operator dan Operand
Pada dasarnya mikroprosesor mampu melakukan beberapa jenis operasi,
antara lain operasi perhitungan (arithmetic), operasi logika
(logical operation), operasi transfer data (data transfer operation),
manipulasi string serta kendali prosesor.
Masing-masing jenis instruksi tersebut adalah sebagai berikut :
a. Perhitungan
ADD (penjumlahan), SUB (pengurangan), MUL (perkalian), DIV (pembagian)
b. Logika
AND (logika DAN), OR (logika OR), XOR (logika Exclusive OR)
c. Transfer Data
MOV (pindahkan/salin), IN (Input), OUT (Output), dan sebagainya.
d. Transfer Kendali
JMP (loncat), CALL (panggil), RET (kembali), INT (interupsi), dsb
e. Manipulasi String
MOVS (pindahkan/salin string), CMPS (bandingkan string), LODS (muatkan byte/word ke register AX), dan sebagainya.
f. Kendali Prosesor
CLC (hilangkan bawaan/carry), CLI (hilangkan interupsi), dan sebagainya.

Pada instruksi-instruksi komputeri, operator diterapkan sebagai
Operation-Code (Op-Code), sedangkan bilangan disebut Operand (adalah
obyek dari suatu operasi).

Operasi Transfer Data
1. Pemindahan data dari data register ke register
Format : MOV register, register
Contoh :
-a 0100 (enter)
xxxx : 0100 mov AX,DX (enter)
xxxx : 0102 (enter)

2. Pemindahan data dari memori ke register
Format : MOV register, memori
Contoh :
-a 0100 (enter)
xxxx : 0100 mov BX,[0200] (enter)
xxxx : 0104 (enter)

3. Memindahkan data langsung ke dalam register
Format : MOV register, bilangan
Contoh :
-a 0100 (enter)
xxxx : 0100 mov AX,1111 (enter)
xxxx : 0103 mov BX,2222 (enter)
xxxx : 0106 mov CX,3333 (enter)
xxxx : 0109 mov DX,4444 (enter)
xxxx : 010C (enter)

-a 0100
xxxx : 0100 mov AH,FFFF (enter)
xxxx : 010C (enter)
Apa yang terjadi ? Beri alasan !

4. Memindahkan data dari register ke memori
Format : MOV memori, register
Contoh :
-a 0100
xxxx : 0100 mov [0200],AX (enter)
xxxx : 0103 (enter)

5. Pertukaran data antar register
Format : XCHG register, register
Contoh :
-a 0100
xxxx : 0100 xchg AX,BX (enter)
xxxx : 0102 (enter)

Operasi Aritmatik
1. Menjumlahkan dua bilangan dengan perintah ADD
            Format : ADD register,register
2. Mengurangkan dua bilangan dengan perintah SUB
          Format : SUB register,register
3. Perkalian dua bilangan dengan perintah MUL
         Format : MUL register
4. Membagi dua bilangan dengan perintah DIV
        Format : DIV register

Operasi Logika
1. Instruksi logika AND
        Format : AND register,register
2. Instruksi logika OR
       Format : OR register,register
3. Instruksi logika XOR
      Format : XOR register,register

di 06.42 , 0 Comments

RunninG LED progRam "interface"

Pada tulisan VMLAB – Running LED, tidak ada penjelasan khusus tentang program assemblernya. Nah, pada tulisan ini akan dibahas secara mendetail (semampu saya) mengenai program Running LED pada tulisan tersebut.
; **********************************
; LED1.ASM
; Program Running LED Example
; Microcontroller: ATmega8
; Output: 8 Common-Anode LEDs on PORTB0..PORTB7
; **********************************
.include “C:\Microcontrollers\VMLAB\include\m8def.inc”
Enam baris awal program hanyalah komentar yang berisi nama file program dan sekelumit deskripsi. Biasanya ada nama programmer atau author, tapi nggak ah, nggak usah, hehehe…
Baris selanjutnya adalah sebuah directive INCLUDE yang berfungsi untuk mengikutsertakan file m8def.inc pada proses assembling. Bisa jadi direktori tempat file m8def.inc pada komputer Anda tidak sama dengan punya saya, jadi lakukan penyesuaian jika diperlukan.
File m8def.inc adalah file yang mendefinisikan register-register, alamat memori, dan lain-lain sepersis mungkin dengan yang ada di datasheet ATmega8.
Bisakah kita tidak menyertakan file m8def.inc dalam program assembler kita? Jawabnya, bisa. Akan tetapi dengan konsekuensi, Anda harus menuliskan register-register dalam bentuk alamat memorinya. Tuh, lebih repot kan? Jadi menyertakan file definisi dalam program assembler kita akan sangat membantu kita dalam menulis program.
.def acc = r16
.def temp1 = r17
Dua baris di atas ini adalah directive DEF yang berfungsi untuk memberikan nama pada register. R16 diberi nama acc (accumulator), dan R17 diberi nama temp1. Penamaan ini berfungsi untuk membuat program kita menjadi lebih mudah dibaca dan dipahami maksudnya. Penamaan disesuaikan dengan fungsi register tersebut dalam program.
Baiklah, baris program selanjutnya adalah sebagai berikut.
reset:
rjmp start
reti

reti
reset adalah label yang menyatakan alamat awal program yakni 0000. Alamat ini merupakan alamat vektor untuk RESET. Sesaat setelah proses mikrokontroler direset, maka CPU akan mengeksekusi program mulai alamat 0000.
Any question? Yes. How about CSEG and ORG Directives? I’ve seen people using ‘em in their programs?
Good question! Sebenarnya kita juga bisa menuliskan program di atas sebagai berikut:
.cseg
.org 0000
rjmp start
reti

reti
CSEG (Code Segment) adalah directive untuk menyatakan alamat awal dari segmen kode. Dan ORG (Origin) adalah directive untuk menyatakan alamat absolut program atau data dalam memori. Jika directive ORG berada dalam segmen kode, maka alamat yang ditunjukkan adalah alamat dalam memori program. Jika directive ORG berada dalam segmen data (DSEG), maka alamat yang ditunjukkan adalah alamat dalam memori data (SRAM). Dan jika directive ORG berada dalam segmen EEPROM (ESEG), maka alamat yang ditunjukkan adalah alamat dalam memori EEPROM.
Dengan directive CSEG dan ORG tersebut, maka dipastikan assembler akan menempatkan instruksi RJMP START pada alamat 0000 dalam memori program.
Lha, kita kok gak pake? Begini. Nilai default segmen adalah segmen kode, sehingga tanpa directive CSEG pun, assembler akan menempatkan RJMP START pada alamat 0000 dalam memori program. Namun demikian, praktek penggunaan directive CSEG dan ORG adalah praktek yang lebih baik.
Instruksi RETI (Return from Interrupt) yang jumlahnya 18 biji adalah sekedar untuk mengisi memori program alamat 0001 hexa hingga 0012 hexa yang merupakan alamat vektor interupsi untuk ATmega8. ATmega8 memiliki total 19 vektor interupsi.
Barisan instruksi RETI tersebut untuk meyakinkan bahwa program utama akan berada pada alamat awal yang tepat. Pencantuman instruksi-instruksi RETI ini tidak harus dilakukan. Program akan tetap berjalan mulus meskipun menerjang (menempati) alamat vektor interupsi. Trus, apa gunanya? Lagi-lagi, hal tersebut adalah praktek penulisan program yang baik dan menunjukkan pemahaman tentang struktur memori program. Jadi untuk pemula sebaiknya hal ini dilakukan.
Tapi perlu ditekankan bahwa kita bisa menggunakan alamat-alamat vektor interupsi tersebut untuk keperluan lain jika diperlukan.
Nah, sekarang kita memasuki bagian program selanjutnya yakni bagian program dimana inisialisasi dilakukan.
; Awal program setelah RESET
start:
;set alamat awal STACK
ldi acc, low (ramend)
out spl, acc
ldi acc, high (ramend)
out sph, acc
Label start adalah alamat yang dituju oleh instruksi rjmp start. Pertama-tama dilakukan pengesetan alamat puncak STACK. STACK digunakan untuk menyimpan data sementara, untuk menyimpan nilai variabel lokal, dan untuk menyimpan alamat kembali (return address) setelah pemanggilan interupsi dan subrutin. Stack Area harus didefinisikan oleh program sebelum adanya instruksi pemanggilan subrutin atau interupsi. Stack Pointer harus menunjuk pada alamat di atas 60 hexa.
Stack Pointer diimplementasikan oleh dua buah register 8-bit yang ada di area memori I/O yakni SPH (8-bit high) dan SPL (8-bit low). Pada beberapa tipe AVR, tidak terdapat SPH karena kapasitas SRAM yang kecil sehingga hanya membutuhkan SPL saja, misalnya ATtiny2313.
Instruksi LDI (Load Immediate) berfungsi untuk mengisi register (R16 – R31) dengan suatu nilai konstanta. RAMEND adalah konstanta yang didefinisikan pada file m8def.inc. Konstanta ini bernilai 045F hexa. Fungsi LOW mengembalikan 8-bit terendah dan fungsi HIGH mengembalikan 8-bit teratas dari suatu nilai/ekspresi. LOW (RAMEND) = 5F hexa, dan HIGH (RAMEND) = 04 hexa.
Instruksi OUT berfungsi menyimpan nilai register ke dalam alamat I/O. Jadi instruksi LDI dan OUT pertama berfungsi untuk mengisi SPL dengan 05F hexa (SPL = 0x5F), dan pasangan instruksi LDI dan OUT yang kedua berfungsi untuk mengisi SPH dengan 04 hexa (SPH = 0×04). Sehingga, alamat puncak STACK adalah 0x045F yang merupakan alamat teratas dari Internal RAM ATmega8.
;set PORTB0..PORTB7 sebagai output
ser acc
out ddrb, acc
Selanjutnya, program melakukan inisialisasi terhadap PORTB. Instruksi SER (Set all bits in Register) akan mengeset semua bit dalam suatu register (R16 – R31) menjadi berlogika 1. Instruksi SER ACC identik dengan instruksi LDI ACC, $FF. Sama-sama membutuhkan 1 word memori, sama-sama dieksekusi dalam 1 siklus, dan sama-sama tidak mempengaruhi Register Status (SREG).
Instruksi OUT DDRB, ACC berfungsi mengeset semua bit dalam DDRB (Data Direction Register Port B), yang berarti PORTB difungsikan sebagai output.
Ambil nafas sejenak….. Oke, kita sampai dibagian looping utama program, yakni bagian program yang akan dieksekusi berulang-ulang tanpa henti.
;awal looping utama program
forever:
;putar komposisi bit acc ke kiri dengan Carry
;Carry <- acc.7 <- .. <- acc.0 <- Carry
rol acc
Label forever menjadi penanda alamat awal dari looping program utama. Ke alamat inilah, nantinya program akan melompat secara terus-menerus.
Instruksi ROL (Rotate Left through Carry) berfungsi untuk memutar komposisi bit pada suatu register dengan melalui Carry. Bit ke-7 digeser ke Carry, dan Carry digeser ke bit ke-0. Instruksi ROLL ACC, akan memutar komposisi bit ACC (R16). Perlu diketahui bahwa pada awalnya nilai Carry adalah nol, sehingga setelah di-ROL, maka ACC yang sebelumnya bernilai 11111111B akan bernilai 11111110B dan Carry akan bernilai 1.
;apakah acc=255 ?
cpi acc, 255
Selanjutnya, nilai ACC dicek, apakah bernilai 255 (11111111B). Pengecekan dilakukan menggunakan instruksi CPI (Compare with Immediate). Instruksi ini berfungsi untuk membandingkan nilai dalam register (R16 – R31) dengan suatu nilai konstanta. Nilai dalam register tidak berubah. Jika nilai register sama dengan nilai konstanta, maka bit status ZERO akan diset berlogika 1. Jika nilai register lebih dari nilai konstanta, maka bit status CARRY akan diset berlogika 1. Akan tetapi hal itu tidak mungkin terjadi karena nilai paling besar dalam byte adalah 255. Oleh sebab itu, aman-aman saja jika dalam kasus kita ini, kita menggunakan instruksi CPI karena tidak akan merubah nilai bit status CARRY.
Mengapa mesti mempertimbangkan bit status Carry? Karena kita menggunakan Carry dalam proses pergeseran komposisi bit dalam ACC. Jika terjadi perubahan nilai CARRY, maka dapat dipastikan Running LED tidak akan berjalan sempurna. Sebenarnya hal tersebut dapat diatasi dengan menyimpan register status (SREG) ke dalam Stack menggunakan instruksi PUSH sebelum instruksi CPI untuk kemudian di POP setelah proses pembandingan selesai dilakukan. Dalam program ini, kita tidak perlu menyelamatkan register status karena dipastikan tidak berubah.
;lompat ke go_on jika acc <> 255
brne go_on
;jika acc=255, putar bit ke kiri sekali lagi
rol acc
Setelah instruksi CPI yang akan menghasilkan ZERO jika ACC=255, maka kondisi bit status ZERO ini dicek menggunakan instruksi pencabangan BRNE (Branch if Not Equal). Instruksi BRNE go_on berarti melompat ke label go_on jika ZERO=0, atau dalam hal ini ACC tidak sama dengan 255. Jika ZERO=1 (ACC sama dengan 255), maka dilakukan pergeseran sekali lagi menggunakan instruksi ROL ACC. Hal ini perlu dilakukan karena setelah 8 kali pergeseran, maka nilai ACC kembali seperti semula yakni 255 (11111111B), dan CARRY=0. Oleh karenanya perlu dilakukan pergeseran sekali lagi jika ACC bernilai 255 agar tampilan Running LED tidak terputus.
go_on:
;update tampilan LED
out portb, acc
Selanjutnya, program akan meng-update tampilan LED dengan mengeluarkan komposisi bit pada ACC ke PORTB. Sesaat setelah instruksi ini dieksekusi, maka LED dengan bit berlogika 0 akan menyala dan yang lain akan mati. Ingat, LED terhubung dengan konfigurasi Common-Anode.
;panggil subrutin delay
rcall delay
Agar tampilan Running LED nyaman dilihat, maka perlu adanya waktu tunda (delay). Penundaan dilakukan dengan memanggil subrutin delay. Dalam contoh program ini, subrutin delay hanyalah delay sederhana semata untuk keperluan simulasi. Jika diterapkan pada hardware yang sesungguhnya, maka perlu dilakukan modifikasi untuk menghasilkan waktu tunda yang sesuai.
;looping selama-lamanya
rjmp forever
Instruksi RJMP forever akan menyebabkan Program Counter kembali lagi ke awal looping program. Perulangan ini berlangsung terus-menerus sehingga menyebabkan efek Running LED.
; subrutin delay
; Warning: non-practical delay
; Used for simulation purpose only
delay:
ldi temp1, 3
satu:
dec temp1
brne satu
ret

di 06.33 , 0 Comments

ProGram RunninG LED

Pemrograman Running LED pada PIC16F877A
Berikut akan diberikan contoh program untuk membuat sistem sederhana untuk menjalankan RUNNING LED. Aplikasi ini merupakan sebuah runtunan menyalakan dan mematikan sebuah LED yang teratur sehingga tampak seperti RUNNING LED. Pada aplikasi ini PORT D merupakan sebuah PORT outputan yang tidak berpengaruh pada suatu inputan apapun dan akan diumpankan dengan sejumlah LED untuk melihat tampilan urutan nyalanya. Bentuk schema rangkaiannya dapat dilihat pada gambar berikut dibawah ini.


Listing programnya dapat dilihat pada beberapa baris dibawah ini.

;==========================================================
;PROGRAM LED RUNNING
;==========================================================
            list            p=16f877A                                    ; List untuk mejelaskan processor
            #include    p16f877A.inc>                 ; Speksifikasi variable pada processor
           
            __CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _HS_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF

            TRISD               EQU      0X0088             ; Pengatur Port D
            PORTD              EQU      0X0008             ; Port D
            HITUNG0           EQU      0X0020             ; Variabel Hiung0
            HITUNG1           EQU      0X0021             ; Variabel Hiung1
            MAJU                 EQU      0X0022             ; Variabel Maju
            MUNDUR            EQU      0X0023             ;Variabel Mundur
MULAI
            BSF                   STATUS,RP0                  ; Bank 1
            MOVLW              B'00000000'                  ;Memindahkan Literal ke W
            MOVWF             TRISD                           ;Menset Port D sebagai Output
            BCF                  STATUS,RP0                  ; Bank 0
            CLRF                 PORTD                         ;Clear Port D

LOOP    MOVLW             D'22'                             ; Memindahkan nilai D’22’ ke W
            MOVWF             MUNDUR                       ; Mengisi Mundur dengan Nilai W
            MOVLW             D'0'                              ; Memindahkan nilai D’0’ ke W
            MOVWF             MAJU                            ; Mengisi Majudengan Nilai W

LOOP1   CALL                TABLE                          ;Memanggil Prosedur Table
            MOVWF             PORTD                         ; Mengeluarkan Outputan di PORT D
            CALL                 DELAY                         ;Memanggil Prosedur Delay
            INCF                 MAJU                           ;Meng-Increment Variable Maju
            MOVF                MAJU,0                        ;Memindahkan Nilai Maju ke W
            DECFSZ            MUNDUR,1                   ;Meng-Decrementkan Nilai Mundur
            GOTO                LOOP1                        ;Lompat ke Prosedur Loop 1
            GOTO                LOOP                         ;Lompat ke Prosedur Loop

DELAY
            MOVLW             d'255'
            MOVWF             HITUNG0
LOOP3   MOVLW             d'255'                          ;Merupakan prosedur Delay
            MOVWF             HITUNG1
LOOP4   DECFSZ            HITUNG1,1                               
            GOTO                LOOP4
            DECFSZ            HITUNG0,1
            GOTO                LOOP3                                      
            RETURN
TABLE                                                                                                  
            ADDWF             PCL,1
            RETLW              B'10000000'
            RETLW              B'01000000'
            RETLW              B'00100000'
            RETLW              B'00010000'                                                      
            RETLW              B'00001000'
            RETLW              B'00000100'
            RETLW              B'00000010'
            RETLW              B'00000001'
            RETLW              B'00000010'
            RETLW              B'00000100'
            RETLW              B'00001000'
            RETLW              B'00010000'                                         
            RETLW              B'00100000'
            RETLW              B'01000000'
            RETLW              B'10000000'
            RETLW              B'00011000'                                          
            RETLW              B'00100100'
            RETLW              B'01000010'
            RETLW              B'10000001'
            RETLW              B'01000010'
            RETLW              B'00100100'
            RETLW              B'00011000'
END                                                            ; Akhir dari sebuah Program
Program diatas harus anda ketik dalam MPLAB editor. Pertama anda buka program MPLAB, setelah muncul, kemudian anda pilih menu FILE, kemudian pilih sub menu NEW, selanjutnya akan tampil lembaran putih kosong tempat anda menuliskan code text program assembler diatas. Setelah selesai  kemudian anda simpan dengan nama tertentu sesuai keinginan anda, misalnya "LED_RUNNING" , secara otomatis file akan tersimpan dengan ekstension .asm .
Langkah selanjutnya setelah anda melakukan proses penyimpanan yaitu melakukan proses kompilasi. Untuk melakukan proses kompilasi ini anda bisa memulainya dengan cara klik pada menu PROJECT kemudian pilih QUICKBUILD , apabila program yang kita buat diatas tidak terdapat error maka hasil kompilasi akan dinyatakan Sukses, dan apabila terdapat error maka hasil kompilasi akan menyatakan ada error yang harus anda betulkan terlebih dahulu.
Sebelum melakukan proses kompilasi ada baiknya jika anda memilih dahulu tipe mikrokontroller yang anda gunakan, dengan cara klik pada menu CONFIGURE kemudian pilih DEVICE dan selanjutnya anda pilih tipe mikrokontroller yang anda gunakan misalnya PIC16F877A.
Apabila hasil kompilasi tidak ada error maka akan dihasilkan sebuah file yang berekstensi .HEX yang nantinya anda masukkan/download (Burning) pada mikrokontroler PIC16F877A. Cara mendownload file .HEX ini kedalam IC anda bisa gunakan program winpic800 seperti yang telah dibahas pada bagian sebelumnya,
Setelah program diatas didownload kedalam PIC16F877A maka langkah selanjutnya anda bisa merangkai sebuah circuit rangkaian seperti pada gambar aplikasi diatas. Dan anda akan bisa melihat nyala setiap LED yang anda hubungkan dengan PORTD sesuai dengan yang anda buat pada program assemblernya.

di 06.31 , 0 Comments

kisAh gReen dAy band


Green Day adalah sebuah kelompok musik bergenre punk rock yang berasal dari California, Amerika Serikat dan terdiri atas Billie Joe Armstrong (penyanyi utama, gitaris), Mike Dirnt (basis, penyanyi pendukung), dan Tré Cool (pemain drum, penyanyi pendukung). Green Day telah diakui di dunia musik karena keberhasilan mereka dalam mengembalikan dan membuat genre punk rock kembali terkenal, bersama-sama dengan grup musik tahun 1990-an seperti The Offspring dan Rancid.




Musik mereka telah mempengaruhi banyak kelompok musik beraliran punk lain, seperti Blink 182 dan Good Charlotte.

Grup musik ini telah menjual lebih dari 24.2 juta album di Amerika Serikat dan lebih dari 53.1 juta album di seluruh dunia. Green Day telah memenangkan berbagai penghargaan, seperti MTV Video Music Awards dan Nickelodeon Kids’ Choice Awards, juga berbagai penghargaan lainnya, serta telah memenangkan 3 Grammy Awards (Best Alternative ALbum untuk Dookie, Best Rock Album untuk American Idiot dan Record of the Year untuk Boulevard of Broken Dreams).

ALBUM-ALBUM GREEN DAY
1) 1,039/Smoothed Out Slappy Hours
* Terbit: 1 Juli 1991
* Penjualan: Worldwide: RIAA certification: Gold
* Label: Lookout! Records
* Produser: Green Day dan Andy Ernst
Tracks: At the Library, Don’t Leave Me, I Was There, Disappearing Boy, Green Day, Going to Pasalacqua, 16, Road to Acceptance, Rest, The Judge’s Daughter, Paper Lanterns, Why Do You Want Him?, 409 in Your Coffeemaker, Knowledge, 1000 Hours, Dry Ice, Only of You, The One I Want, I Want to Be Alone

2)Kerplunk!
* Terbit: 7 Januari 1992
* Penjualan: RIAA certification: Platinum
* Label: Lookout! Records
* Produser: Green Day dan Andy Ernst
Tracks: 2000 Light Years Away, One For the Razorbacks, Welcome to Paradise, Christie Road, Private Ale, Dominated Love Slave, One of My Lies, 80, Android, No One Knows, Who Wrote Holden Caulfield, Words I Might Have Ate, Sweet Children, Best Thing in Town, Strangeland, My Generation

3)Dookie
* Terbit: 1 Februari 1994
* Grammy Award for Best Alternative Music Album 1995
* Chart positions: #2 US, #13 UK, #4 GER
* Sales: Worldwide: 15 million[1], RIAA certification: 10x Platinum (Diamond), UK 2x Platinum (600,000)
* Label: Reprise Records
* Produser: Green Day dan Rob Cavallo
Tracks: Burnout, Having a Blast, Chump, Longview, Welcome to Paradise, Pulling Teeth, Basket Case, She, Sassafras Roots, When I Come Around, Coming Clean, Emenius Sleepus, In the End, F.O.D./All By Myself

4)Insomniac
* Terbit: 10 Oktober 1995
* Chart positions: #2 US, #8 UK, #12 GER
* Penjualan: Worldwide: RIAA certification: 2x Platinum, UK: Silver (60,000)
* Label: Reprise Records
* Produser: Green Day dan Rob Cavallo
Lagu: Armatage Shanks, Brat, Stuck With Me, Geek Stink Breath, No Pride, Babs Uvula Who?, 86, Panic Song, Stuart and the Ave., Brain Stew, Jaded, Westbound Sign, Tight Wad Hill, Walking Contradiction

5)nimrod.
* Terbit: 14 Oktober 1997
* Chart positions: #10 US, #3 AUS, #11 UK, #31 GER
* Penjualan: RIAA certification: 2x Platinum, UK: Silver
* Label: Reprise Records
* Produser: Green Day dan Rob Cavallo
Tracks: Nice Guys Finish Last, Hitchin’ a Ride, The Grouch, Redundant, Scattered, All the Time, Worry Rock, Platypus (I Hate You), Uptight, Last Ride in, Jinx, Haushinka, Walking Alone, Reject, Take Back, King for a Day, Good Riddance (Time of Your Life), Prosthetic Head

6)Warning:
* Terbit: 3 Oktober 2000
* Chart position: #4 US, #4 UK, #7 AUS, #21 GER
* Penjualan: Worldwide: RIAA certification: Platinum, UK: Gold (100,000)
* Label: Reprise Records
* Produser: Green Day
Tracks: Warning, Blood, Sex, and Booze, Church on Sunday, Fashion Victim, Castaway, Misery, Deadbeat Holiday, Hold On, Jackass, Waiting, Minority, Macy’s Day Parade

7)International Superhits!
* Terbit: 13 November 2001
* Chart position: #40 US, #15 UK, #11 AUS, #67 GER
* Penjualan: Worldwide: RIAA certification: Platinum, UK: Platinum (300,000)
* Label: Reprise Records
* Produser: Tracks 1-2 by Jerry Finn and Green Day, Tracks 3-15 by Rob Cavallo and Green Day, Tracks 16-21 by Green Day
Tracks: Maria, Poprocks and Coke, Longview, Welcome to Paradise, Basket Case, When I Come Around, She, J.A.R. (Jason Andrew Relva), Geek Stink Breath, Brain Stew, Jaded, Walking Contradiction, Stuck With Me, Hitchin’ a Ride, Good Riddance (Time of Your Life), Redundant, Nice Guys Finish Last, Minority, Warning, Waiting, Macy’s Day Parade

8)Shenanigans
* Terbit: 2 Juli 2002
* Chart position: #27 US, #32 UK, #100 GER
* Penjualan: Worldwide: 2 million
* Label: Reprise Records
* Produser: Green Day and Rob Cavallo
Tracks: Suffocate, Desensitized, You Lied, Outsider, Don’t Wanna Fall in Love, Espionage, I Want to Be on TV, Scumbag, Tired of Waiting for You, Sick of Me, Rotting, Do Da Da, On The Wagon, Ha Ha You’re Dead

9)American Idiot
* Terbit: 21 September 2004
* Grammy Awards for Best Rock Album 2005 and Record of the Year 2006 for “Boulevard of Broken Dreams”
* Chart position: #1 US, #1 UK, #1 AUS, #1 Japan, #1 Sweden, #1 Switzerland, #1 Austria, #3 Germany
* Penjualan: Worldwide: 10 million[2], RIAA certification: 5x Platinum, UK: 3x Platinum (900,000)
* Label: Reprise Records
* Producers: Green Day and Rob Cavallo
Lagu: American Idiot, Jesus of Suburbia, Holiday, Boulevard of Broken Dreams, Are We The Waiting, St. Jimmy, Give Me Novacaine, She’s a Rebel, Extraordinary Girl, Letterbomb, Wake Me Up When September Ends, Homecoming, Whatsername

10) 21 st Century Breakdown
Terbit: 2009
 
 
 
 

Rabu, 15 Juni 2011 di 14.35 , 0 Comments

PoHon d tenGah Lapangan Bola. . :)

Pohon Ditengah Lapangan Bola Yang Tidak Boleh DItebang ! 

di 14.25 , 0 Comments

Connect With Us

Texts

Total Pageviews

Instructions

Recent Posts

Labels

Labels

Download

Blogger Tricks

Blogger Themes

Poll

Recomended

Popular Posts

Followers