Prev: 27927 Up: Map Next: 28070
27982: Print 'HUNGRY' or 'HORACE' on the title screen
Used by the routine at 24576.
Input
BC 160 (number of tiles to draw)
DE Display file address
HL 28303 (HUNGRY) or 28463 (HORACE)
27982 PUSH BC Save the tile counter.
27983 LD A,(HL) Pick up a data byte.
27984 AND 48 Keep only bits 4 and 5.
27986 CP 0 Are bits 4 and 5 both reset?
27988 JR Z,28010 Jump if so.
27990 CP 16 Is bit 4 set and bit 5 reset?
27992 JR Z,28006 Jump if so.
27994 CP 32 Is bit 4 reset and bit 5 set?
27996 JR Z,28002 Jump if so.
27998 LD C,%11111111 Bits 5 and 4 of A are both set.
28000 JR 28012
28002 LD C,%00001111 Bit 5 of A is reset and bit 4 is set.
28004 JR 28012
28006 LD C,%11110000 Bit 5 of A is set and bit 4 is reset.
28008 JR 28012
28010 LD C,%00000000 Bits 5 and 4 of A are both reset.
28012 LD B,4 Draw the top four pixel rows of the character cell using the bit pattern in C.
28014 LD A,C
28015 LD (DE),A
28016 INC D
28017 DJNZ 28015
28019 LD A,(HL) Pick up the data byte again.
28020 AND 3 Keep only bits 0 and 1.
28022 CP 0 Are bits 0 and 1 both reset?
28024 JR Z,28046 Jump if so.
28026 CP 1 Is bit 0 set and bit 1 reset?
28028 JR Z,28042 Jump if so.
28030 CP 2 Is bit 0 reset and bit 1 set?
28032 JR Z,28038 Jump if so.
28034 LD C,%11111111 Bits 1 and 0 of A are both set.
28036 JR 28048
28038 LD C,%00001111 Bit 1 of A is reset and bit 0 is set.
28040 JR 28048
28042 LD C,%11110000 Bit 1 of A is set and bit 0 is reset.
28044 JR 28048
28046 LD C,%00000000 Bits 1 and 0 of A are both reset.
28048 LD B,4 Draw the bottom four pixel rows of the character cell using the bit pattern in C.
28050 LD A,C
28051 LD (DE),A
28052 INC D
28053 DJNZ 28051
28055 INC E Set DE to the display file address of the next cell to the right.
28056 JR Z,28062
28058 LD A,D
28059 SUB 8
28061 LD D,A
28062 INC HL Point HL at the next data byte.
28063 POP BC Restore the tile counter to BC.
28064 DEC BC Decrement the tile counter.
28065 LD A,B Is it zero now?
28066 OR C
28067 JR NZ,27982 Jump back if not.
28069 RET
Prev: 27927 Up: Map Next: 28070