Nintendo DMG-01 Manual - Page 21

Low-Power Mode

Page 21 highlights

Game BoyTM CPU Manual 2.7.3. Low-Power Mode FA FA 34 12 ld a,(34FA) ld (de),a 3) Finally an interesting side effect 76 halt 76 halt This combination hangs the cpu. The first HALT causes the second HALT to be repeated, which therefore causes the following command (=itself) to be repeated - again and again. Placing a NOP between the two halts would cause the NOP to be repeated once, the second HALT wouldn't lock the cpu. Below is suggested code for Game Boy programs: ; **** Main Game Loop **** Main: halt ; stop system clock ; return from halt when ; interrupted nop ; (See WARNING above.) ld a,(VblnkFlag) or a ; V-Blank interrupt ? jr z,Main ; No, some other ; interrupt xor a ld (VblnkFlag),a ; Clear V-Blank flag call call Controls Game ; button inputs ; game operation jr Main by DP Page 21

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139

Game Boy
TM
CPU Manual
2.7.3. Low-Power Mode
FA FA 34
ld
a,(34FA)
12
ld
(de),a
3) Finally an interesting side effect
76
halt
76
halt
This combination hangs the cpu.
The first HALT causes the second HALT to be
repeated, which therefore causes the following
command (=itself) to be repeated - again and again.
Placing a NOP between the two halts would cause the
NOP to be repeated once, the second HALT wouldn't
lock the cpu.
Below is suggested code for Game Boy programs:
; **** Main Game Loop ****
Main:
halt
; stop system clock
; return from halt when
; interrupted
nop
; (See WARNING above.)
ld
a,(VblnkFlag)
or
a
; V-Blank interrupt ?
jr
z,Main
; No, some other
; interrupt
xor
a
ld
(VblnkFlag),a
; Clear V-Blank flag
call
Controls
; button inputs
call
Game
; game operation
jr
Main
by DP
Page 21