![]() |
Routines |
| Prev: DD97 | Up: Map | Next: DE00 |
|
|
||||
| ChooseControlType | DDC0 | LD DE,$FF2F | DE=FF2F. | |
| DDC3 | LD BC,$FEFE | BC=FEFE. | ||
| ReadKeyboard_Loop | DDC6 | IN A,(C) | Read from the keyboard. | |
| DDC8 | CPL | Invert the bits in A. | ||
| DDC9 | AND %00011111 | Keep only bits 0-4. | ||
| DDCB | JR Z,ChooseControlType_1 | Jump to ChooseControlType_1 if there's no match. | ||
| DDCD | INC D | Increment D by one. | ||
| DDCE | RET NZ | Return if D is not zero. | ||
| DDCF | LD H,A | H=A. | ||
| DDD0 | LD A,E | A=E. | ||
| ChooseControlType_0 | DDD1 | SUB $08 | A-=08. | |
| DDD3 | SRL H | Shift H right. | ||
| DDD5 | JR NC,ChooseControlType_0 | Jump to ChooseControlType_0 if {} is higher. | ||
| DDD7 | RET NZ | Return if {} is not zero. | ||
| DDD8 | LD D,A | D=A. | ||
| DDD9 | LD L,B | L=B. | ||
| ChooseControlType_1 | DDDA | DEC E | Decrease E by one. | |
| DDDB | RLC B | Rotate B left (with carry). | ||
| DDDD | JR C,ReadKeyboard_Loop | Jump to ReadKeyboard_Loop if {} is lower. | ||
| DDDF | LD A,D | A=D. | ||
| DDE0 | AND %00111000 | Keep only bits 3-5. | ||
| DDE2 | RRCA | Rotate A right three positions (bits 3 to 5 are now in positions 0 to 2). | ||
| DDE3 | RRCA | |||
| DDE4 | RRCA | |||
| DDE5 | PUSH HL | Stash HL on the stack. | ||
| DDE6 | LD HL,$DDF2 | HL=DDF2. | ||
| DDE9 | LD B,$00 | B=00. | ||
| DDEB | LD C,A | C=A. | ||
| DDEC | ADD HL,BC | HL+=BC. | ||
| DDED | LD B,(HL) | B=*HL. | ||
| DDEE | POP HL | Restore HL from the stack. | ||
| DDEF | LD H,B | H=B. | ||
| DDF0 | XOR A | A=00. | ||
| DDF1 | RET | Return. | ||
| DDF2 | DEFB $10,$08,$04,$02,$01,$00,$00,$00 | |||
| DDFA | DEFB $00,$00,$00,$00,$00,$00 | |||
| Prev: DD97 | Up: Map | Next: DE00 |